From 4c0ed478d9f836fe7ac8b85ab2b534d32f239ebd Mon Sep 17 00:00:00 2001 From: pdfjsbot Date: Mon, 13 Mar 2017 15:53:52 +0000 Subject: [PATCH] gh-pages site created via make.js script PDF.js version 1.7.365 - See mozilla/pdf.js@2b17188998036df02f6413795714f89a552d31f5 --- LICENSE | 177 + api/draft/AnnotationFactory.html | 376 + api/draft/PDFDataRangeTransport.html | 234 + api/draft/PDFDocumentLoadingTask.html | 1647 + api/draft/PDFDocumentProxy.html | 163 + api/draft/PDFJS.html | 243 + api/draft/PDFPageProxy.html | 162 + api/draft/PageViewport.html | 162 + api/draft/RenderTask.html | 162 + api/draft/core_annotation.js.html | 1120 + api/draft/display_api.js.html | 2295 + api/draft/display_global.js.html | 369 + api/draft/doc_helper.js.html | 96 + api/draft/external-Promise.html | 137 + api/draft/fonts/OpenSans-Bold-webfont.eot | Bin 0 -> 19544 bytes api/draft/fonts/OpenSans-Bold-webfont.svg | 1830 + api/draft/fonts/OpenSans-Bold-webfont.woff | Bin 0 -> 22432 bytes .../fonts/OpenSans-BoldItalic-webfont.eot | Bin 0 -> 20133 bytes .../fonts/OpenSans-BoldItalic-webfont.svg | 1830 + .../fonts/OpenSans-BoldItalic-webfont.woff | Bin 0 -> 23048 bytes api/draft/fonts/OpenSans-Italic-webfont.eot | Bin 0 -> 20265 bytes api/draft/fonts/OpenSans-Italic-webfont.svg | 1830 + api/draft/fonts/OpenSans-Italic-webfont.woff | Bin 0 -> 23188 bytes api/draft/fonts/OpenSans-Light-webfont.eot | Bin 0 -> 19514 bytes api/draft/fonts/OpenSans-Light-webfont.svg | 1831 + api/draft/fonts/OpenSans-Light-webfont.woff | Bin 0 -> 22248 bytes .../fonts/OpenSans-LightItalic-webfont.eot | Bin 0 -> 20535 bytes .../fonts/OpenSans-LightItalic-webfont.svg | 1835 + .../fonts/OpenSans-LightItalic-webfont.woff | Bin 0 -> 23400 bytes api/draft/fonts/OpenSans-Regular-webfont.eot | Bin 0 -> 19836 bytes api/draft/fonts/OpenSans-Regular-webfont.svg | 1831 + api/draft/fonts/OpenSans-Regular-webfont.woff | Bin 0 -> 22660 bytes api/draft/global.html | 2274 + api/draft/index.html | 65 + api/draft/scripts/linenumber.js | 25 + .../scripts/prettify/Apache-License-2.0.txt | 202 + api/draft/scripts/prettify/lang-css.js | 2 + api/draft/scripts/prettify/prettify.js | 28 + api/draft/shared_util.js.html | 1530 + api/draft/styles/jsdoc-default.css | 354 + api/draft/styles/prettify-jsdoc.css | 111 + api/draft/styles/prettify-tomorrow.css | 132 + api/index.html | 49 + build/pdf.js | 9895 +++ build/pdf.worker.js | 51088 ++++++++++++++++ css/bootstrap.min.css | 7 + css/main.css | 119 + examples/index.html | 101 + extensions/chromium/install.rdf | 252 + extensions/chromium/update.rdf | 39 + extensions/firefox/install.rdf | 252 + extensions/firefox/pdf.js.xpi | Bin 0 -> 1895736 bytes extensions/firefox/update.rdf | 39 + features/index.html | 116 + features/tests.js | 656 + features/worker-stub.js | 37 + getting_started/index.html | 139 + images/favicon.ico | Bin 0 -> 32988 bytes images/logo.svg | 41 + index.html | 55 + js/bootstrap.min.js | 6 + js/jquery-2.1.0.min.js | 4 + web/cmaps/78-EUC-H.bcmap | Bin 0 -> 2404 bytes web/cmaps/78-EUC-V.bcmap | Bin 0 -> 173 bytes web/cmaps/78-H.bcmap | Bin 0 -> 2379 bytes web/cmaps/78-RKSJ-H.bcmap | Bin 0 -> 2398 bytes web/cmaps/78-RKSJ-V.bcmap | Bin 0 -> 173 bytes web/cmaps/78-V.bcmap | Bin 0 -> 169 bytes web/cmaps/78ms-RKSJ-H.bcmap | Bin 0 -> 2651 bytes web/cmaps/78ms-RKSJ-V.bcmap | Bin 0 -> 290 bytes web/cmaps/83pv-RKSJ-H.bcmap | Bin 0 -> 905 bytes web/cmaps/90ms-RKSJ-H.bcmap | Bin 0 -> 721 bytes web/cmaps/90ms-RKSJ-V.bcmap | Bin 0 -> 290 bytes web/cmaps/90msp-RKSJ-H.bcmap | Bin 0 -> 715 bytes web/cmaps/90msp-RKSJ-V.bcmap | Bin 0 -> 291 bytes web/cmaps/90pv-RKSJ-H.bcmap | Bin 0 -> 982 bytes web/cmaps/90pv-RKSJ-V.bcmap | Bin 0 -> 260 bytes web/cmaps/Add-H.bcmap | Bin 0 -> 2419 bytes web/cmaps/Add-RKSJ-H.bcmap | Bin 0 -> 2413 bytes web/cmaps/Add-RKSJ-V.bcmap | Bin 0 -> 287 bytes web/cmaps/Add-V.bcmap | Bin 0 -> 282 bytes web/cmaps/Adobe-CNS1-0.bcmap | Bin 0 -> 317 bytes web/cmaps/Adobe-CNS1-1.bcmap | Bin 0 -> 371 bytes web/cmaps/Adobe-CNS1-2.bcmap | Bin 0 -> 376 bytes web/cmaps/Adobe-CNS1-3.bcmap | Bin 0 -> 401 bytes web/cmaps/Adobe-CNS1-4.bcmap | Bin 0 -> 405 bytes web/cmaps/Adobe-CNS1-5.bcmap | Bin 0 -> 406 bytes web/cmaps/Adobe-CNS1-6.bcmap | Bin 0 -> 406 bytes web/cmaps/Adobe-CNS1-UCS2.bcmap | Bin 0 -> 41193 bytes web/cmaps/Adobe-GB1-0.bcmap | Bin 0 -> 217 bytes web/cmaps/Adobe-GB1-1.bcmap | Bin 0 -> 250 bytes web/cmaps/Adobe-GB1-2.bcmap | Bin 0 -> 465 bytes web/cmaps/Adobe-GB1-3.bcmap | Bin 0 -> 470 bytes web/cmaps/Adobe-GB1-4.bcmap | Bin 0 -> 601 bytes web/cmaps/Adobe-GB1-5.bcmap | Bin 0 -> 625 bytes web/cmaps/Adobe-GB1-UCS2.bcmap | Bin 0 -> 33974 bytes web/cmaps/Adobe-Japan1-0.bcmap | Bin 0 -> 225 bytes web/cmaps/Adobe-Japan1-1.bcmap | Bin 0 -> 226 bytes web/cmaps/Adobe-Japan1-2.bcmap | Bin 0 -> 233 bytes web/cmaps/Adobe-Japan1-3.bcmap | Bin 0 -> 242 bytes web/cmaps/Adobe-Japan1-4.bcmap | Bin 0 -> 337 bytes web/cmaps/Adobe-Japan1-5.bcmap | Bin 0 -> 430 bytes web/cmaps/Adobe-Japan1-6.bcmap | Bin 0 -> 485 bytes web/cmaps/Adobe-Japan1-UCS2.bcmap | Bin 0 -> 40951 bytes web/cmaps/Adobe-Korea1-0.bcmap | Bin 0 -> 241 bytes web/cmaps/Adobe-Korea1-1.bcmap | Bin 0 -> 386 bytes web/cmaps/Adobe-Korea1-2.bcmap | Bin 0 -> 391 bytes web/cmaps/Adobe-Korea1-UCS2.bcmap | Bin 0 -> 23293 bytes web/cmaps/B5-H.bcmap | Bin 0 -> 1086 bytes web/cmaps/B5-V.bcmap | Bin 0 -> 142 bytes web/cmaps/B5pc-H.bcmap | Bin 0 -> 1099 bytes web/cmaps/B5pc-V.bcmap | Bin 0 -> 144 bytes web/cmaps/CNS-EUC-H.bcmap | Bin 0 -> 1780 bytes web/cmaps/CNS-EUC-V.bcmap | Bin 0 -> 1920 bytes web/cmaps/CNS1-H.bcmap | Bin 0 -> 706 bytes web/cmaps/CNS1-V.bcmap | Bin 0 -> 143 bytes web/cmaps/CNS2-H.bcmap | Bin 0 -> 504 bytes web/cmaps/CNS2-V.bcmap | 3 + web/cmaps/ETHK-B5-H.bcmap | Bin 0 -> 4426 bytes web/cmaps/ETHK-B5-V.bcmap | Bin 0 -> 158 bytes web/cmaps/ETen-B5-H.bcmap | Bin 0 -> 1125 bytes web/cmaps/ETen-B5-V.bcmap | Bin 0 -> 158 bytes web/cmaps/ETenms-B5-H.bcmap | 3 + web/cmaps/ETenms-B5-V.bcmap | Bin 0 -> 172 bytes web/cmaps/EUC-H.bcmap | Bin 0 -> 578 bytes web/cmaps/EUC-V.bcmap | Bin 0 -> 170 bytes web/cmaps/Ext-H.bcmap | Bin 0 -> 2536 bytes web/cmaps/Ext-RKSJ-H.bcmap | Bin 0 -> 2542 bytes web/cmaps/Ext-RKSJ-V.bcmap | Bin 0 -> 218 bytes web/cmaps/Ext-V.bcmap | Bin 0 -> 215 bytes web/cmaps/GB-EUC-H.bcmap | Bin 0 -> 549 bytes web/cmaps/GB-EUC-V.bcmap | Bin 0 -> 179 bytes web/cmaps/GB-H.bcmap | 4 + web/cmaps/GB-V.bcmap | Bin 0 -> 175 bytes web/cmaps/GBK-EUC-H.bcmap | Bin 0 -> 14692 bytes web/cmaps/GBK-EUC-V.bcmap | Bin 0 -> 180 bytes web/cmaps/GBK2K-H.bcmap | Bin 0 -> 19662 bytes web/cmaps/GBK2K-V.bcmap | Bin 0 -> 219 bytes web/cmaps/GBKp-EUC-H.bcmap | Bin 0 -> 14686 bytes web/cmaps/GBKp-EUC-V.bcmap | Bin 0 -> 181 bytes web/cmaps/GBT-EUC-H.bcmap | Bin 0 -> 7290 bytes web/cmaps/GBT-EUC-V.bcmap | Bin 0 -> 180 bytes web/cmaps/GBT-H.bcmap | Bin 0 -> 7269 bytes web/cmaps/GBT-V.bcmap | Bin 0 -> 176 bytes web/cmaps/GBTpc-EUC-H.bcmap | Bin 0 -> 7298 bytes web/cmaps/GBTpc-EUC-V.bcmap | Bin 0 -> 182 bytes web/cmaps/GBpc-EUC-H.bcmap | Bin 0 -> 557 bytes web/cmaps/GBpc-EUC-V.bcmap | Bin 0 -> 181 bytes web/cmaps/H.bcmap | Bin 0 -> 553 bytes web/cmaps/HKdla-B5-H.bcmap | Bin 0 -> 2654 bytes web/cmaps/HKdla-B5-V.bcmap | Bin 0 -> 148 bytes web/cmaps/HKdlb-B5-H.bcmap | Bin 0 -> 2414 bytes web/cmaps/HKdlb-B5-V.bcmap | Bin 0 -> 148 bytes web/cmaps/HKgccs-B5-H.bcmap | Bin 0 -> 2292 bytes web/cmaps/HKgccs-B5-V.bcmap | Bin 0 -> 149 bytes web/cmaps/HKm314-B5-H.bcmap | Bin 0 -> 1772 bytes web/cmaps/HKm314-B5-V.bcmap | Bin 0 -> 149 bytes web/cmaps/HKm471-B5-H.bcmap | Bin 0 -> 2171 bytes web/cmaps/HKm471-B5-V.bcmap | Bin 0 -> 149 bytes web/cmaps/HKscs-B5-H.bcmap | Bin 0 -> 4437 bytes web/cmaps/HKscs-B5-V.bcmap | Bin 0 -> 159 bytes web/cmaps/Hankaku.bcmap | Bin 0 -> 132 bytes web/cmaps/Hiragana.bcmap | Bin 0 -> 124 bytes web/cmaps/KSC-EUC-H.bcmap | Bin 0 -> 1848 bytes web/cmaps/KSC-EUC-V.bcmap | Bin 0 -> 164 bytes web/cmaps/KSC-H.bcmap | Bin 0 -> 1831 bytes web/cmaps/KSC-Johab-H.bcmap | Bin 0 -> 16791 bytes web/cmaps/KSC-Johab-V.bcmap | Bin 0 -> 166 bytes web/cmaps/KSC-V.bcmap | Bin 0 -> 160 bytes web/cmaps/KSCms-UHC-H.bcmap | Bin 0 -> 2787 bytes web/cmaps/KSCms-UHC-HW-H.bcmap | Bin 0 -> 2789 bytes web/cmaps/KSCms-UHC-HW-V.bcmap | Bin 0 -> 169 bytes web/cmaps/KSCms-UHC-V.bcmap | Bin 0 -> 166 bytes web/cmaps/KSCpc-EUC-H.bcmap | Bin 0 -> 2024 bytes web/cmaps/KSCpc-EUC-V.bcmap | Bin 0 -> 166 bytes web/cmaps/Katakana.bcmap | Bin 0 -> 100 bytes web/cmaps/LICENSE | 36 + web/cmaps/NWP-H.bcmap | Bin 0 -> 2765 bytes web/cmaps/NWP-V.bcmap | Bin 0 -> 252 bytes web/cmaps/RKSJ-H.bcmap | Bin 0 -> 534 bytes web/cmaps/RKSJ-V.bcmap | Bin 0 -> 170 bytes web/cmaps/Roman.bcmap | Bin 0 -> 96 bytes web/cmaps/UniCNS-UCS2-H.bcmap | Bin 0 -> 48280 bytes web/cmaps/UniCNS-UCS2-V.bcmap | Bin 0 -> 156 bytes web/cmaps/UniCNS-UTF16-H.bcmap | Bin 0 -> 50419 bytes web/cmaps/UniCNS-UTF16-V.bcmap | Bin 0 -> 156 bytes web/cmaps/UniCNS-UTF32-H.bcmap | Bin 0 -> 52679 bytes web/cmaps/UniCNS-UTF32-V.bcmap | Bin 0 -> 160 bytes web/cmaps/UniCNS-UTF8-H.bcmap | Bin 0 -> 53629 bytes web/cmaps/UniCNS-UTF8-V.bcmap | Bin 0 -> 157 bytes web/cmaps/UniGB-UCS2-H.bcmap | Bin 0 -> 43366 bytes web/cmaps/UniGB-UCS2-V.bcmap | Bin 0 -> 193 bytes web/cmaps/UniGB-UTF16-H.bcmap | Bin 0 -> 44086 bytes web/cmaps/UniGB-UTF16-V.bcmap | Bin 0 -> 178 bytes web/cmaps/UniGB-UTF32-H.bcmap | Bin 0 -> 45738 bytes web/cmaps/UniGB-UTF32-V.bcmap | Bin 0 -> 182 bytes web/cmaps/UniGB-UTF8-H.bcmap | Bin 0 -> 46837 bytes web/cmaps/UniGB-UTF8-V.bcmap | Bin 0 -> 181 bytes web/cmaps/UniJIS-UCS2-H.bcmap | Bin 0 -> 25439 bytes web/cmaps/UniJIS-UCS2-HW-H.bcmap | Bin 0 -> 119 bytes web/cmaps/UniJIS-UCS2-HW-V.bcmap | Bin 0 -> 680 bytes web/cmaps/UniJIS-UCS2-V.bcmap | Bin 0 -> 664 bytes web/cmaps/UniJIS-UTF16-H.bcmap | Bin 0 -> 39443 bytes web/cmaps/UniJIS-UTF16-V.bcmap | Bin 0 -> 643 bytes web/cmaps/UniJIS-UTF32-H.bcmap | Bin 0 -> 40539 bytes web/cmaps/UniJIS-UTF32-V.bcmap | Bin 0 -> 677 bytes web/cmaps/UniJIS-UTF8-H.bcmap | Bin 0 -> 41695 bytes web/cmaps/UniJIS-UTF8-V.bcmap | Bin 0 -> 678 bytes web/cmaps/UniJIS2004-UTF16-H.bcmap | Bin 0 -> 39534 bytes web/cmaps/UniJIS2004-UTF16-V.bcmap | Bin 0 -> 647 bytes web/cmaps/UniJIS2004-UTF32-H.bcmap | Bin 0 -> 40630 bytes web/cmaps/UniJIS2004-UTF32-V.bcmap | Bin 0 -> 681 bytes web/cmaps/UniJIS2004-UTF8-H.bcmap | Bin 0 -> 41779 bytes web/cmaps/UniJIS2004-UTF8-V.bcmap | Bin 0 -> 682 bytes web/cmaps/UniJISPro-UCS2-HW-V.bcmap | Bin 0 -> 705 bytes web/cmaps/UniJISPro-UCS2-V.bcmap | Bin 0 -> 689 bytes web/cmaps/UniJISPro-UTF8-V.bcmap | Bin 0 -> 726 bytes web/cmaps/UniJISX0213-UTF32-H.bcmap | Bin 0 -> 40517 bytes web/cmaps/UniJISX0213-UTF32-V.bcmap | Bin 0 -> 684 bytes web/cmaps/UniJISX02132004-UTF32-H.bcmap | Bin 0 -> 40608 bytes web/cmaps/UniJISX02132004-UTF32-V.bcmap | Bin 0 -> 688 bytes web/cmaps/UniKS-UCS2-H.bcmap | Bin 0 -> 25783 bytes web/cmaps/UniKS-UCS2-V.bcmap | Bin 0 -> 178 bytes web/cmaps/UniKS-UTF16-H.bcmap | Bin 0 -> 26327 bytes web/cmaps/UniKS-UTF16-V.bcmap | Bin 0 -> 164 bytes web/cmaps/UniKS-UTF32-H.bcmap | Bin 0 -> 26451 bytes web/cmaps/UniKS-UTF32-V.bcmap | Bin 0 -> 168 bytes web/cmaps/UniKS-UTF8-H.bcmap | Bin 0 -> 27790 bytes web/cmaps/UniKS-UTF8-V.bcmap | Bin 0 -> 169 bytes web/cmaps/V.bcmap | Bin 0 -> 166 bytes web/cmaps/WP-Symbol.bcmap | Bin 0 -> 179 bytes web/compressed.tracemonkey-pldi-09.pdf | Bin 0 -> 1016315 bytes web/debugger.js | 620 + web/images/annotation-check.svg | 11 + web/images/annotation-comment.svg | 16 + web/images/annotation-help.svg | 26 + web/images/annotation-insert.svg | 10 + web/images/annotation-key.svg | 11 + web/images/annotation-newparagraph.svg | 11 + web/images/annotation-noicon.svg | 7 + web/images/annotation-note.svg | 42 + web/images/annotation-paragraph.svg | 16 + web/images/findbarButton-next-rtl.png | Bin 0 -> 199 bytes web/images/findbarButton-next-rtl@2x.png | Bin 0 -> 304 bytes web/images/findbarButton-next.png | Bin 0 -> 193 bytes web/images/findbarButton-next@2x.png | Bin 0 -> 296 bytes web/images/findbarButton-previous-rtl.png | Bin 0 -> 193 bytes web/images/findbarButton-previous-rtl@2x.png | Bin 0 -> 296 bytes web/images/findbarButton-previous.png | Bin 0 -> 199 bytes web/images/findbarButton-previous@2x.png | Bin 0 -> 304 bytes web/images/grab.cur | Bin 0 -> 326 bytes web/images/grabbing.cur | Bin 0 -> 326 bytes web/images/loading-icon.gif | Bin 0 -> 2545 bytes web/images/loading-small.png | Bin 0 -> 7402 bytes web/images/loading-small@2x.png | Bin 0 -> 16131 bytes ...ondaryToolbarButton-documentProperties.png | Bin 0 -> 403 bytes ...aryToolbarButton-documentProperties@2x.png | Bin 0 -> 933 bytes .../secondaryToolbarButton-firstPage.png | Bin 0 -> 179 bytes .../secondaryToolbarButton-firstPage@2x.png | Bin 0 -> 266 bytes .../secondaryToolbarButton-handTool.png | Bin 0 -> 301 bytes .../secondaryToolbarButton-handTool@2x.png | Bin 0 -> 583 bytes .../secondaryToolbarButton-lastPage.png | Bin 0 -> 175 bytes .../secondaryToolbarButton-lastPage@2x.png | Bin 0 -> 276 bytes .../secondaryToolbarButton-rotateCcw.png | Bin 0 -> 360 bytes .../secondaryToolbarButton-rotateCcw@2x.png | Bin 0 -> 731 bytes .../secondaryToolbarButton-rotateCw.png | Bin 0 -> 359 bytes .../secondaryToolbarButton-rotateCw@2x.png | Bin 0 -> 714 bytes web/images/shadow.png | Bin 0 -> 290 bytes web/images/texture.png | Bin 0 -> 2417 bytes web/images/toolbarButton-bookmark.png | Bin 0 -> 174 bytes web/images/toolbarButton-bookmark@2x.png | Bin 0 -> 260 bytes web/images/toolbarButton-download.png | Bin 0 -> 259 bytes web/images/toolbarButton-download@2x.png | Bin 0 -> 425 bytes web/images/toolbarButton-menuArrows.png | Bin 0 -> 107 bytes web/images/toolbarButton-menuArrows@2x.png | Bin 0 -> 152 bytes web/images/toolbarButton-openFile.png | Bin 0 -> 295 bytes web/images/toolbarButton-openFile@2x.png | Bin 0 -> 550 bytes web/images/toolbarButton-pageDown-rtl.png | Bin 0 -> 242 bytes web/images/toolbarButton-pageDown-rtl@2x.png | Bin 0 -> 398 bytes web/images/toolbarButton-pageDown.png | Bin 0 -> 238 bytes web/images/toolbarButton-pageDown@2x.png | Bin 0 -> 396 bytes web/images/toolbarButton-pageUp-rtl.png | Bin 0 -> 245 bytes web/images/toolbarButton-pageUp-rtl@2x.png | Bin 0 -> 405 bytes web/images/toolbarButton-pageUp.png | Bin 0 -> 246 bytes web/images/toolbarButton-pageUp@2x.png | Bin 0 -> 403 bytes web/images/toolbarButton-presentationMode.png | Bin 0 -> 321 bytes .../toolbarButton-presentationMode@2x.png | Bin 0 -> 586 bytes web/images/toolbarButton-print.png | Bin 0 -> 257 bytes web/images/toolbarButton-print@2x.png | Bin 0 -> 464 bytes web/images/toolbarButton-search.png | Bin 0 -> 309 bytes web/images/toolbarButton-search@2x.png | Bin 0 -> 653 bytes ...olbarButton-secondaryToolbarToggle-rtl.png | Bin 0 -> 246 bytes ...arButton-secondaryToolbarToggle-rtl@2x.png | Bin 0 -> 456 bytes .../toolbarButton-secondaryToolbarToggle.png | Bin 0 -> 243 bytes ...oolbarButton-secondaryToolbarToggle@2x.png | Bin 0 -> 458 bytes .../toolbarButton-sidebarToggle-rtl.png | Bin 0 -> 225 bytes .../toolbarButton-sidebarToggle-rtl@2x.png | Bin 0 -> 344 bytes web/images/toolbarButton-sidebarToggle.png | Bin 0 -> 225 bytes web/images/toolbarButton-sidebarToggle@2x.png | Bin 0 -> 331 bytes web/images/toolbarButton-viewAttachments.png | Bin 0 -> 384 bytes .../toolbarButton-viewAttachments@2x.png | Bin 0 -> 859 bytes web/images/toolbarButton-viewOutline-rtl.png | Bin 0 -> 177 bytes .../toolbarButton-viewOutline-rtl@2x.png | Bin 0 -> 394 bytes web/images/toolbarButton-viewOutline.png | Bin 0 -> 178 bytes web/images/toolbarButton-viewOutline@2x.png | Bin 0 -> 331 bytes web/images/toolbarButton-viewThumbnail.png | Bin 0 -> 185 bytes web/images/toolbarButton-viewThumbnail@2x.png | Bin 0 -> 219 bytes web/images/toolbarButton-zoomIn.png | Bin 0 -> 136 bytes web/images/toolbarButton-zoomIn@2x.png | Bin 0 -> 160 bytes web/images/toolbarButton-zoomOut.png | Bin 0 -> 88 bytes web/images/toolbarButton-zoomOut@2x.png | Bin 0 -> 109 bytes web/images/treeitem-collapsed-rtl.png | Bin 0 -> 143 bytes web/images/treeitem-collapsed-rtl@2x.png | Bin 0 -> 167 bytes web/images/treeitem-collapsed.png | Bin 0 -> 128 bytes web/images/treeitem-collapsed@2x.png | Bin 0 -> 149 bytes web/images/treeitem-expanded.png | Bin 0 -> 125 bytes web/images/treeitem-expanded@2x.png | Bin 0 -> 172 bytes web/l10n.js | 1034 + web/locale/ach/viewer.properties | 181 + web/locale/af/viewer.properties | 182 + web/locale/ak/viewer.properties | 132 + web/locale/an/viewer.properties | 182 + web/locale/ar/viewer.properties | 182 + web/locale/as/viewer.properties | 173 + web/locale/ast/viewer.properties | 182 + web/locale/az/viewer.properties | 182 + web/locale/be/viewer.properties | 182 + web/locale/bg/viewer.properties | 182 + web/locale/bn-BD/viewer.properties | 182 + web/locale/bn-IN/viewer.properties | 182 + web/locale/br/viewer.properties | 182 + web/locale/bs/viewer.properties | 182 + web/locale/ca/viewer.properties | 182 + web/locale/cs/viewer.properties | 182 + web/locale/csb/viewer.properties | 134 + web/locale/cy/viewer.properties | 182 + web/locale/da/viewer.properties | 182 + web/locale/de/viewer.properties | 182 + web/locale/el/viewer.properties | 182 + web/locale/en-GB/viewer.properties | 174 + web/locale/en-US/viewer.properties | 184 + web/locale/en-ZA/viewer.properties | 175 + web/locale/eo/viewer.properties | 182 + web/locale/es-AR/viewer.properties | 182 + web/locale/es-CL/viewer.properties | 182 + web/locale/es-ES/viewer.properties | 115 + web/locale/es-MX/viewer.properties | 182 + web/locale/et/viewer.properties | 182 + web/locale/eu/viewer.properties | 182 + web/locale/fa/viewer.properties | 182 + web/locale/ff/viewer.properties | 182 + web/locale/fi/viewer.properties | 182 + web/locale/fr/viewer.properties | 182 + web/locale/fy-NL/viewer.properties | 182 + web/locale/ga-IE/viewer.properties | 182 + web/locale/gd/viewer.properties | 182 + web/locale/gl/viewer.properties | 173 + web/locale/gu-IN/viewer.properties | 168 + web/locale/he/viewer.properties | 182 + web/locale/hi-IN/viewer.properties | 182 + web/locale/hr/viewer.properties | 182 + web/locale/hu/viewer.properties | 182 + web/locale/hy-AM/viewer.properties | 182 + web/locale/id/viewer.properties | 182 + web/locale/is/viewer.properties | 182 + web/locale/it/viewer.properties | 115 + web/locale/ja/viewer.properties | 182 + web/locale/ka/viewer.properties | 174 + web/locale/kk/viewer.properties | 182 + web/locale/km/viewer.properties | 182 + web/locale/kn/viewer.properties | 175 + web/locale/ko/viewer.properties | 182 + web/locale/ku/viewer.properties | 148 + web/locale/lg/viewer.properties | 113 + web/locale/lij/viewer.properties | 182 + web/locale/locale.properties | 312 + web/locale/lt/viewer.properties | 182 + web/locale/lv/viewer.properties | 182 + web/locale/mai/viewer.properties | 174 + web/locale/mk/viewer.properties | 134 + web/locale/ml/viewer.properties | 174 + web/locale/mn/viewer.properties | 83 + web/locale/mr/viewer.properties | 182 + web/locale/ms/viewer.properties | 182 + web/locale/my/viewer.properties | 182 + web/locale/nb-NO/viewer.properties | 182 + web/locale/nl/viewer.properties | 183 + web/locale/nn-NO/viewer.properties | 182 + web/locale/nso/viewer.properties | 132 + web/locale/oc/viewer.properties | 176 + web/locale/or/viewer.properties | 173 + web/locale/pa-IN/viewer.properties | 174 + web/locale/pl/viewer.properties | 129 + web/locale/pt-BR/viewer.properties | 182 + web/locale/pt-PT/viewer.properties | 182 + web/locale/rm/viewer.properties | 174 + web/locale/ro/viewer.properties | 182 + web/locale/ru/viewer.properties | 182 + web/locale/rw/viewer.properties | 83 + web/locale/sah/viewer.properties | 172 + web/locale/si/viewer.properties | 173 + web/locale/sk/viewer.properties | 182 + web/locale/sl/viewer.properties | 182 + web/locale/son/viewer.properties | 182 + web/locale/sq/viewer.properties | 182 + web/locale/sr/viewer.properties | 182 + web/locale/sv-SE/viewer.properties | 184 + web/locale/sw/viewer.properties | 130 + web/locale/ta-LK/viewer.properties | 77 + web/locale/ta/viewer.properties | 179 + web/locale/te/viewer.properties | 182 + web/locale/th/viewer.properties | 182 + web/locale/tl/viewer.properties | 95 + web/locale/tn/viewer.properties | 86 + web/locale/tr/viewer.properties | 182 + web/locale/uk/viewer.properties | 182 + web/locale/ur/viewer.properties | 182 + web/locale/vi/viewer.properties | 175 + web/locale/wo/viewer.properties | 125 + web/locale/xh/viewer.properties | 182 + web/locale/zh-CN/viewer.properties | 182 + web/locale/zh-TW/viewer.properties | 182 + web/locale/zu/viewer.properties | 133 + web/viewer.css | 2213 + web/viewer.html | 359 + web/viewer.js | 7901 +++ 426 files changed, 116247 insertions(+) create mode 100644 LICENSE create mode 100644 api/draft/AnnotationFactory.html create mode 100644 api/draft/PDFDataRangeTransport.html create mode 100644 api/draft/PDFDocumentLoadingTask.html create mode 100644 api/draft/PDFDocumentProxy.html create mode 100644 api/draft/PDFJS.html create mode 100644 api/draft/PDFPageProxy.html create mode 100644 api/draft/PageViewport.html create mode 100644 api/draft/RenderTask.html create mode 100644 api/draft/core_annotation.js.html create mode 100644 api/draft/display_api.js.html create mode 100644 api/draft/display_global.js.html create mode 100644 api/draft/doc_helper.js.html create mode 100644 api/draft/external-Promise.html create mode 100644 api/draft/fonts/OpenSans-Bold-webfont.eot create mode 100644 api/draft/fonts/OpenSans-Bold-webfont.svg create mode 100644 api/draft/fonts/OpenSans-Bold-webfont.woff create mode 100644 api/draft/fonts/OpenSans-BoldItalic-webfont.eot create mode 100644 api/draft/fonts/OpenSans-BoldItalic-webfont.svg create mode 100644 api/draft/fonts/OpenSans-BoldItalic-webfont.woff create mode 100644 api/draft/fonts/OpenSans-Italic-webfont.eot create mode 100644 api/draft/fonts/OpenSans-Italic-webfont.svg create mode 100644 api/draft/fonts/OpenSans-Italic-webfont.woff create mode 100644 api/draft/fonts/OpenSans-Light-webfont.eot create mode 100644 api/draft/fonts/OpenSans-Light-webfont.svg create mode 100644 api/draft/fonts/OpenSans-Light-webfont.woff create mode 100644 api/draft/fonts/OpenSans-LightItalic-webfont.eot create mode 100644 api/draft/fonts/OpenSans-LightItalic-webfont.svg create mode 100644 api/draft/fonts/OpenSans-LightItalic-webfont.woff create mode 100644 api/draft/fonts/OpenSans-Regular-webfont.eot create mode 100644 api/draft/fonts/OpenSans-Regular-webfont.svg create mode 100644 api/draft/fonts/OpenSans-Regular-webfont.woff create mode 100644 api/draft/global.html create mode 100644 api/draft/index.html create mode 100644 api/draft/scripts/linenumber.js create mode 100644 api/draft/scripts/prettify/Apache-License-2.0.txt create mode 100644 api/draft/scripts/prettify/lang-css.js create mode 100644 api/draft/scripts/prettify/prettify.js create mode 100644 api/draft/shared_util.js.html create mode 100644 api/draft/styles/jsdoc-default.css create mode 100644 api/draft/styles/prettify-jsdoc.css create mode 100644 api/draft/styles/prettify-tomorrow.css create mode 100644 api/index.html create mode 100644 build/pdf.js create mode 100644 build/pdf.worker.js create mode 100644 css/bootstrap.min.css create mode 100644 css/main.css create mode 100644 examples/index.html create mode 100644 extensions/chromium/install.rdf create mode 100644 extensions/chromium/update.rdf create mode 100644 extensions/firefox/install.rdf create mode 100644 extensions/firefox/pdf.js.xpi create mode 100644 extensions/firefox/update.rdf create mode 100644 features/index.html create mode 100644 features/tests.js create mode 100644 features/worker-stub.js create mode 100644 getting_started/index.html create mode 100644 images/favicon.ico create mode 100644 images/logo.svg create mode 100644 index.html create mode 100644 js/bootstrap.min.js create mode 100644 js/jquery-2.1.0.min.js create mode 100644 web/cmaps/78-EUC-H.bcmap create mode 100644 web/cmaps/78-EUC-V.bcmap create mode 100644 web/cmaps/78-H.bcmap create mode 100644 web/cmaps/78-RKSJ-H.bcmap create mode 100644 web/cmaps/78-RKSJ-V.bcmap create mode 100644 web/cmaps/78-V.bcmap create mode 100644 web/cmaps/78ms-RKSJ-H.bcmap create mode 100644 web/cmaps/78ms-RKSJ-V.bcmap create mode 100644 web/cmaps/83pv-RKSJ-H.bcmap create mode 100644 web/cmaps/90ms-RKSJ-H.bcmap create mode 100644 web/cmaps/90ms-RKSJ-V.bcmap create mode 100644 web/cmaps/90msp-RKSJ-H.bcmap create mode 100644 web/cmaps/90msp-RKSJ-V.bcmap create mode 100644 web/cmaps/90pv-RKSJ-H.bcmap create mode 100644 web/cmaps/90pv-RKSJ-V.bcmap create mode 100644 web/cmaps/Add-H.bcmap create mode 100644 web/cmaps/Add-RKSJ-H.bcmap create mode 100644 web/cmaps/Add-RKSJ-V.bcmap create mode 100644 web/cmaps/Add-V.bcmap create mode 100644 web/cmaps/Adobe-CNS1-0.bcmap create mode 100644 web/cmaps/Adobe-CNS1-1.bcmap create mode 100644 web/cmaps/Adobe-CNS1-2.bcmap create mode 100644 web/cmaps/Adobe-CNS1-3.bcmap create mode 100644 web/cmaps/Adobe-CNS1-4.bcmap create mode 100644 web/cmaps/Adobe-CNS1-5.bcmap create mode 100644 web/cmaps/Adobe-CNS1-6.bcmap create mode 100644 web/cmaps/Adobe-CNS1-UCS2.bcmap create mode 100644 web/cmaps/Adobe-GB1-0.bcmap create mode 100644 web/cmaps/Adobe-GB1-1.bcmap create mode 100644 web/cmaps/Adobe-GB1-2.bcmap create mode 100644 web/cmaps/Adobe-GB1-3.bcmap create mode 100644 web/cmaps/Adobe-GB1-4.bcmap create mode 100644 web/cmaps/Adobe-GB1-5.bcmap create mode 100644 web/cmaps/Adobe-GB1-UCS2.bcmap create mode 100644 web/cmaps/Adobe-Japan1-0.bcmap create mode 100644 web/cmaps/Adobe-Japan1-1.bcmap create mode 100644 web/cmaps/Adobe-Japan1-2.bcmap create mode 100644 web/cmaps/Adobe-Japan1-3.bcmap create mode 100644 web/cmaps/Adobe-Japan1-4.bcmap create mode 100644 web/cmaps/Adobe-Japan1-5.bcmap create mode 100644 web/cmaps/Adobe-Japan1-6.bcmap create mode 100644 web/cmaps/Adobe-Japan1-UCS2.bcmap create mode 100644 web/cmaps/Adobe-Korea1-0.bcmap create mode 100644 web/cmaps/Adobe-Korea1-1.bcmap create mode 100644 web/cmaps/Adobe-Korea1-2.bcmap create mode 100644 web/cmaps/Adobe-Korea1-UCS2.bcmap create mode 100644 web/cmaps/B5-H.bcmap create mode 100644 web/cmaps/B5-V.bcmap create mode 100644 web/cmaps/B5pc-H.bcmap create mode 100644 web/cmaps/B5pc-V.bcmap create mode 100644 web/cmaps/CNS-EUC-H.bcmap create mode 100644 web/cmaps/CNS-EUC-V.bcmap create mode 100644 web/cmaps/CNS1-H.bcmap create mode 100644 web/cmaps/CNS1-V.bcmap create mode 100644 web/cmaps/CNS2-H.bcmap create mode 100644 web/cmaps/CNS2-V.bcmap create mode 100644 web/cmaps/ETHK-B5-H.bcmap create mode 100644 web/cmaps/ETHK-B5-V.bcmap create mode 100644 web/cmaps/ETen-B5-H.bcmap create mode 100644 web/cmaps/ETen-B5-V.bcmap create mode 100644 web/cmaps/ETenms-B5-H.bcmap create mode 100644 web/cmaps/ETenms-B5-V.bcmap create mode 100644 web/cmaps/EUC-H.bcmap create mode 100644 web/cmaps/EUC-V.bcmap create mode 100644 web/cmaps/Ext-H.bcmap create mode 100644 web/cmaps/Ext-RKSJ-H.bcmap create mode 100644 web/cmaps/Ext-RKSJ-V.bcmap create mode 100644 web/cmaps/Ext-V.bcmap create mode 100644 web/cmaps/GB-EUC-H.bcmap create mode 100644 web/cmaps/GB-EUC-V.bcmap create mode 100644 web/cmaps/GB-H.bcmap create mode 100644 web/cmaps/GB-V.bcmap create mode 100644 web/cmaps/GBK-EUC-H.bcmap create mode 100644 web/cmaps/GBK-EUC-V.bcmap create mode 100644 web/cmaps/GBK2K-H.bcmap create mode 100644 web/cmaps/GBK2K-V.bcmap create mode 100644 web/cmaps/GBKp-EUC-H.bcmap create mode 100644 web/cmaps/GBKp-EUC-V.bcmap create mode 100644 web/cmaps/GBT-EUC-H.bcmap create mode 100644 web/cmaps/GBT-EUC-V.bcmap create mode 100644 web/cmaps/GBT-H.bcmap create mode 100644 web/cmaps/GBT-V.bcmap create mode 100644 web/cmaps/GBTpc-EUC-H.bcmap create mode 100644 web/cmaps/GBTpc-EUC-V.bcmap create mode 100644 web/cmaps/GBpc-EUC-H.bcmap create mode 100644 web/cmaps/GBpc-EUC-V.bcmap create mode 100644 web/cmaps/H.bcmap create mode 100644 web/cmaps/HKdla-B5-H.bcmap create mode 100644 web/cmaps/HKdla-B5-V.bcmap create mode 100644 web/cmaps/HKdlb-B5-H.bcmap create mode 100644 web/cmaps/HKdlb-B5-V.bcmap create mode 100644 web/cmaps/HKgccs-B5-H.bcmap create mode 100644 web/cmaps/HKgccs-B5-V.bcmap create mode 100644 web/cmaps/HKm314-B5-H.bcmap create mode 100644 web/cmaps/HKm314-B5-V.bcmap create mode 100644 web/cmaps/HKm471-B5-H.bcmap create mode 100644 web/cmaps/HKm471-B5-V.bcmap create mode 100644 web/cmaps/HKscs-B5-H.bcmap create mode 100644 web/cmaps/HKscs-B5-V.bcmap create mode 100644 web/cmaps/Hankaku.bcmap create mode 100644 web/cmaps/Hiragana.bcmap create mode 100644 web/cmaps/KSC-EUC-H.bcmap create mode 100644 web/cmaps/KSC-EUC-V.bcmap create mode 100644 web/cmaps/KSC-H.bcmap create mode 100644 web/cmaps/KSC-Johab-H.bcmap create mode 100644 web/cmaps/KSC-Johab-V.bcmap create mode 100644 web/cmaps/KSC-V.bcmap create mode 100644 web/cmaps/KSCms-UHC-H.bcmap create mode 100644 web/cmaps/KSCms-UHC-HW-H.bcmap create mode 100644 web/cmaps/KSCms-UHC-HW-V.bcmap create mode 100644 web/cmaps/KSCms-UHC-V.bcmap create mode 100644 web/cmaps/KSCpc-EUC-H.bcmap create mode 100644 web/cmaps/KSCpc-EUC-V.bcmap create mode 100644 web/cmaps/Katakana.bcmap create mode 100644 web/cmaps/LICENSE create mode 100644 web/cmaps/NWP-H.bcmap create mode 100644 web/cmaps/NWP-V.bcmap create mode 100644 web/cmaps/RKSJ-H.bcmap create mode 100644 web/cmaps/RKSJ-V.bcmap create mode 100644 web/cmaps/Roman.bcmap create mode 100644 web/cmaps/UniCNS-UCS2-H.bcmap create mode 100644 web/cmaps/UniCNS-UCS2-V.bcmap create mode 100644 web/cmaps/UniCNS-UTF16-H.bcmap create mode 100644 web/cmaps/UniCNS-UTF16-V.bcmap create mode 100644 web/cmaps/UniCNS-UTF32-H.bcmap create mode 100644 web/cmaps/UniCNS-UTF32-V.bcmap create mode 100644 web/cmaps/UniCNS-UTF8-H.bcmap create mode 100644 web/cmaps/UniCNS-UTF8-V.bcmap create mode 100644 web/cmaps/UniGB-UCS2-H.bcmap create mode 100644 web/cmaps/UniGB-UCS2-V.bcmap create mode 100644 web/cmaps/UniGB-UTF16-H.bcmap create mode 100644 web/cmaps/UniGB-UTF16-V.bcmap create mode 100644 web/cmaps/UniGB-UTF32-H.bcmap create mode 100644 web/cmaps/UniGB-UTF32-V.bcmap create mode 100644 web/cmaps/UniGB-UTF8-H.bcmap create mode 100644 web/cmaps/UniGB-UTF8-V.bcmap create mode 100644 web/cmaps/UniJIS-UCS2-H.bcmap create mode 100644 web/cmaps/UniJIS-UCS2-HW-H.bcmap create mode 100644 web/cmaps/UniJIS-UCS2-HW-V.bcmap create mode 100644 web/cmaps/UniJIS-UCS2-V.bcmap create mode 100644 web/cmaps/UniJIS-UTF16-H.bcmap create mode 100644 web/cmaps/UniJIS-UTF16-V.bcmap create mode 100644 web/cmaps/UniJIS-UTF32-H.bcmap create mode 100644 web/cmaps/UniJIS-UTF32-V.bcmap create mode 100644 web/cmaps/UniJIS-UTF8-H.bcmap create mode 100644 web/cmaps/UniJIS-UTF8-V.bcmap create mode 100644 web/cmaps/UniJIS2004-UTF16-H.bcmap create mode 100644 web/cmaps/UniJIS2004-UTF16-V.bcmap create mode 100644 web/cmaps/UniJIS2004-UTF32-H.bcmap create mode 100644 web/cmaps/UniJIS2004-UTF32-V.bcmap create mode 100644 web/cmaps/UniJIS2004-UTF8-H.bcmap create mode 100644 web/cmaps/UniJIS2004-UTF8-V.bcmap create mode 100644 web/cmaps/UniJISPro-UCS2-HW-V.bcmap create mode 100644 web/cmaps/UniJISPro-UCS2-V.bcmap create mode 100644 web/cmaps/UniJISPro-UTF8-V.bcmap create mode 100644 web/cmaps/UniJISX0213-UTF32-H.bcmap create mode 100644 web/cmaps/UniJISX0213-UTF32-V.bcmap create mode 100644 web/cmaps/UniJISX02132004-UTF32-H.bcmap create mode 100644 web/cmaps/UniJISX02132004-UTF32-V.bcmap create mode 100644 web/cmaps/UniKS-UCS2-H.bcmap create mode 100644 web/cmaps/UniKS-UCS2-V.bcmap create mode 100644 web/cmaps/UniKS-UTF16-H.bcmap create mode 100644 web/cmaps/UniKS-UTF16-V.bcmap create mode 100644 web/cmaps/UniKS-UTF32-H.bcmap create mode 100644 web/cmaps/UniKS-UTF32-V.bcmap create mode 100644 web/cmaps/UniKS-UTF8-H.bcmap create mode 100644 web/cmaps/UniKS-UTF8-V.bcmap create mode 100644 web/cmaps/V.bcmap create mode 100644 web/cmaps/WP-Symbol.bcmap create mode 100644 web/compressed.tracemonkey-pldi-09.pdf create mode 100644 web/debugger.js create mode 100644 web/images/annotation-check.svg create mode 100644 web/images/annotation-comment.svg create mode 100644 web/images/annotation-help.svg create mode 100644 web/images/annotation-insert.svg create mode 100644 web/images/annotation-key.svg create mode 100644 web/images/annotation-newparagraph.svg create mode 100644 web/images/annotation-noicon.svg create mode 100644 web/images/annotation-note.svg create mode 100644 web/images/annotation-paragraph.svg create mode 100644 web/images/findbarButton-next-rtl.png create mode 100644 web/images/findbarButton-next-rtl@2x.png create mode 100644 web/images/findbarButton-next.png create mode 100644 web/images/findbarButton-next@2x.png create mode 100644 web/images/findbarButton-previous-rtl.png create mode 100644 web/images/findbarButton-previous-rtl@2x.png create mode 100644 web/images/findbarButton-previous.png create mode 100644 web/images/findbarButton-previous@2x.png create mode 100644 web/images/grab.cur create mode 100644 web/images/grabbing.cur create mode 100644 web/images/loading-icon.gif create mode 100644 web/images/loading-small.png create mode 100644 web/images/loading-small@2x.png create mode 100644 web/images/secondaryToolbarButton-documentProperties.png create mode 100644 web/images/secondaryToolbarButton-documentProperties@2x.png create mode 100644 web/images/secondaryToolbarButton-firstPage.png create mode 100644 web/images/secondaryToolbarButton-firstPage@2x.png create mode 100644 web/images/secondaryToolbarButton-handTool.png create mode 100644 web/images/secondaryToolbarButton-handTool@2x.png create mode 100644 web/images/secondaryToolbarButton-lastPage.png create mode 100644 web/images/secondaryToolbarButton-lastPage@2x.png create mode 100644 web/images/secondaryToolbarButton-rotateCcw.png create mode 100644 web/images/secondaryToolbarButton-rotateCcw@2x.png create mode 100644 web/images/secondaryToolbarButton-rotateCw.png create mode 100644 web/images/secondaryToolbarButton-rotateCw@2x.png create mode 100644 web/images/shadow.png create mode 100644 web/images/texture.png create mode 100644 web/images/toolbarButton-bookmark.png create mode 100644 web/images/toolbarButton-bookmark@2x.png create mode 100644 web/images/toolbarButton-download.png create mode 100644 web/images/toolbarButton-download@2x.png create mode 100644 web/images/toolbarButton-menuArrows.png create mode 100644 web/images/toolbarButton-menuArrows@2x.png create mode 100644 web/images/toolbarButton-openFile.png create mode 100644 web/images/toolbarButton-openFile@2x.png create mode 100644 web/images/toolbarButton-pageDown-rtl.png create mode 100644 web/images/toolbarButton-pageDown-rtl@2x.png create mode 100644 web/images/toolbarButton-pageDown.png create mode 100644 web/images/toolbarButton-pageDown@2x.png create mode 100644 web/images/toolbarButton-pageUp-rtl.png create mode 100644 web/images/toolbarButton-pageUp-rtl@2x.png create mode 100644 web/images/toolbarButton-pageUp.png create mode 100644 web/images/toolbarButton-pageUp@2x.png create mode 100644 web/images/toolbarButton-presentationMode.png create mode 100644 web/images/toolbarButton-presentationMode@2x.png create mode 100644 web/images/toolbarButton-print.png create mode 100644 web/images/toolbarButton-print@2x.png create mode 100644 web/images/toolbarButton-search.png create mode 100644 web/images/toolbarButton-search@2x.png create mode 100644 web/images/toolbarButton-secondaryToolbarToggle-rtl.png create mode 100644 web/images/toolbarButton-secondaryToolbarToggle-rtl@2x.png create mode 100644 web/images/toolbarButton-secondaryToolbarToggle.png create mode 100644 web/images/toolbarButton-secondaryToolbarToggle@2x.png create mode 100644 web/images/toolbarButton-sidebarToggle-rtl.png create mode 100644 web/images/toolbarButton-sidebarToggle-rtl@2x.png create mode 100644 web/images/toolbarButton-sidebarToggle.png create mode 100644 web/images/toolbarButton-sidebarToggle@2x.png create mode 100644 web/images/toolbarButton-viewAttachments.png create mode 100644 web/images/toolbarButton-viewAttachments@2x.png create mode 100644 web/images/toolbarButton-viewOutline-rtl.png create mode 100644 web/images/toolbarButton-viewOutline-rtl@2x.png create mode 100644 web/images/toolbarButton-viewOutline.png create mode 100644 web/images/toolbarButton-viewOutline@2x.png create mode 100644 web/images/toolbarButton-viewThumbnail.png create mode 100644 web/images/toolbarButton-viewThumbnail@2x.png create mode 100644 web/images/toolbarButton-zoomIn.png create mode 100644 web/images/toolbarButton-zoomIn@2x.png create mode 100644 web/images/toolbarButton-zoomOut.png create mode 100644 web/images/toolbarButton-zoomOut@2x.png create mode 100644 web/images/treeitem-collapsed-rtl.png create mode 100644 web/images/treeitem-collapsed-rtl@2x.png create mode 100644 web/images/treeitem-collapsed.png create mode 100644 web/images/treeitem-collapsed@2x.png create mode 100644 web/images/treeitem-expanded.png create mode 100644 web/images/treeitem-expanded@2x.png create mode 100644 web/l10n.js create mode 100644 web/locale/ach/viewer.properties create mode 100644 web/locale/af/viewer.properties create mode 100644 web/locale/ak/viewer.properties create mode 100644 web/locale/an/viewer.properties create mode 100644 web/locale/ar/viewer.properties create mode 100644 web/locale/as/viewer.properties create mode 100644 web/locale/ast/viewer.properties create mode 100644 web/locale/az/viewer.properties create mode 100644 web/locale/be/viewer.properties create mode 100644 web/locale/bg/viewer.properties create mode 100644 web/locale/bn-BD/viewer.properties create mode 100644 web/locale/bn-IN/viewer.properties create mode 100644 web/locale/br/viewer.properties create mode 100644 web/locale/bs/viewer.properties create mode 100644 web/locale/ca/viewer.properties create mode 100644 web/locale/cs/viewer.properties create mode 100644 web/locale/csb/viewer.properties create mode 100644 web/locale/cy/viewer.properties create mode 100644 web/locale/da/viewer.properties create mode 100644 web/locale/de/viewer.properties create mode 100644 web/locale/el/viewer.properties create mode 100644 web/locale/en-GB/viewer.properties create mode 100644 web/locale/en-US/viewer.properties create mode 100644 web/locale/en-ZA/viewer.properties create mode 100644 web/locale/eo/viewer.properties create mode 100644 web/locale/es-AR/viewer.properties create mode 100644 web/locale/es-CL/viewer.properties create mode 100644 web/locale/es-ES/viewer.properties create mode 100644 web/locale/es-MX/viewer.properties create mode 100644 web/locale/et/viewer.properties create mode 100644 web/locale/eu/viewer.properties create mode 100644 web/locale/fa/viewer.properties create mode 100644 web/locale/ff/viewer.properties create mode 100644 web/locale/fi/viewer.properties create mode 100644 web/locale/fr/viewer.properties create mode 100644 web/locale/fy-NL/viewer.properties create mode 100644 web/locale/ga-IE/viewer.properties create mode 100644 web/locale/gd/viewer.properties create mode 100644 web/locale/gl/viewer.properties create mode 100644 web/locale/gu-IN/viewer.properties create mode 100644 web/locale/he/viewer.properties create mode 100644 web/locale/hi-IN/viewer.properties create mode 100644 web/locale/hr/viewer.properties create mode 100644 web/locale/hu/viewer.properties create mode 100644 web/locale/hy-AM/viewer.properties create mode 100644 web/locale/id/viewer.properties create mode 100644 web/locale/is/viewer.properties create mode 100644 web/locale/it/viewer.properties create mode 100644 web/locale/ja/viewer.properties create mode 100644 web/locale/ka/viewer.properties create mode 100644 web/locale/kk/viewer.properties create mode 100644 web/locale/km/viewer.properties create mode 100644 web/locale/kn/viewer.properties create mode 100644 web/locale/ko/viewer.properties create mode 100644 web/locale/ku/viewer.properties create mode 100644 web/locale/lg/viewer.properties create mode 100644 web/locale/lij/viewer.properties create mode 100644 web/locale/locale.properties create mode 100644 web/locale/lt/viewer.properties create mode 100644 web/locale/lv/viewer.properties create mode 100644 web/locale/mai/viewer.properties create mode 100644 web/locale/mk/viewer.properties create mode 100644 web/locale/ml/viewer.properties create mode 100644 web/locale/mn/viewer.properties create mode 100644 web/locale/mr/viewer.properties create mode 100644 web/locale/ms/viewer.properties create mode 100644 web/locale/my/viewer.properties create mode 100644 web/locale/nb-NO/viewer.properties create mode 100644 web/locale/nl/viewer.properties create mode 100644 web/locale/nn-NO/viewer.properties create mode 100644 web/locale/nso/viewer.properties create mode 100644 web/locale/oc/viewer.properties create mode 100644 web/locale/or/viewer.properties create mode 100644 web/locale/pa-IN/viewer.properties create mode 100644 web/locale/pl/viewer.properties create mode 100644 web/locale/pt-BR/viewer.properties create mode 100644 web/locale/pt-PT/viewer.properties create mode 100644 web/locale/rm/viewer.properties create mode 100644 web/locale/ro/viewer.properties create mode 100644 web/locale/ru/viewer.properties create mode 100644 web/locale/rw/viewer.properties create mode 100644 web/locale/sah/viewer.properties create mode 100644 web/locale/si/viewer.properties create mode 100644 web/locale/sk/viewer.properties create mode 100644 web/locale/sl/viewer.properties create mode 100644 web/locale/son/viewer.properties create mode 100644 web/locale/sq/viewer.properties create mode 100644 web/locale/sr/viewer.properties create mode 100644 web/locale/sv-SE/viewer.properties create mode 100644 web/locale/sw/viewer.properties create mode 100644 web/locale/ta-LK/viewer.properties create mode 100644 web/locale/ta/viewer.properties create mode 100644 web/locale/te/viewer.properties create mode 100644 web/locale/th/viewer.properties create mode 100644 web/locale/tl/viewer.properties create mode 100644 web/locale/tn/viewer.properties create mode 100644 web/locale/tr/viewer.properties create mode 100644 web/locale/uk/viewer.properties create mode 100644 web/locale/ur/viewer.properties create mode 100644 web/locale/vi/viewer.properties create mode 100644 web/locale/wo/viewer.properties create mode 100644 web/locale/xh/viewer.properties create mode 100644 web/locale/zh-CN/viewer.properties create mode 100644 web/locale/zh-TW/viewer.properties create mode 100644 web/locale/zu/viewer.properties create mode 100644 web/viewer.css create mode 100644 web/viewer.html create mode 100644 web/viewer.js diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..f433b1a5 --- /dev/null +++ b/LICENSE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/api/draft/AnnotationFactory.html b/api/draft/AnnotationFactory.html new file mode 100644 index 00000000..14ada795 --- /dev/null +++ b/api/draft/AnnotationFactory.html @@ -0,0 +1,376 @@ + + + + + JSDoc: Class: AnnotationFactory + + + + + + + + + + +
+ +

Class: AnnotationFactory

+ + + + + + +
+ +
+ +

AnnotationFactory

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

new AnnotationFactory()

+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +

Methods

+ + + + + + +

create(xref, ref, pdfManager, idFactory) → {Annotation}

+ + + + + + + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
xref + + +XRef + + + +
ref + + +Object + + + +
pdfManager + + +PDFManager + + + +
idFactory + + +Object + + + +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +Annotation + + +
+
+ + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/api/draft/PDFDataRangeTransport.html b/api/draft/PDFDataRangeTransport.html new file mode 100644 index 00000000..8ad6b614 --- /dev/null +++ b/api/draft/PDFDataRangeTransport.html @@ -0,0 +1,234 @@ + + + + + JSDoc: Class: PDFDataRangeTransport + + + + + + + + + + +
+ +

Class: PDFDataRangeTransport

+ + + + + + +
+ +
+ +

PDFDataRangeTransport

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

new PDFDataRangeTransport(length, initialData)

+ + + + + +
+ Abstract class to support range requests file loading. +
+ + + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
length + + +number + + + +
initialData + + +Uint8Array + + + +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/api/draft/PDFDocumentLoadingTask.html b/api/draft/PDFDocumentLoadingTask.html new file mode 100644 index 00000000..b1ab535e --- /dev/null +++ b/api/draft/PDFDocumentLoadingTask.html @@ -0,0 +1,1647 @@ + + + + + JSDoc: Class: PDFDocumentLoadingTask + + + + + + + + + + +
+ +

Class: PDFDocumentLoadingTask

+ + + + + + +
+ +
+ +

PDFDocumentLoadingTask

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

new PDFDocumentLoadingTask()

+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +

Members

+ + + +

destroyed :boolean

+ + + + +
+ Shows if loading task is destroyed. +
+ + + +
Type:
+
    +
  • + +boolean + + +
  • +
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

docId :string

+ + + + +
+ Unique document loading task id -- used in MessageHandlers. +
+ + + +
Type:
+
    +
  • + +string + + +
  • +
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

onPassword

+ + + + +
+ Callback to request a password if wrong or no password was provided. +The callback receives two parameters: function that needs to be called +with new password and reason (see {PasswordResponses}). +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

onProgress

+ + + + +
+ Callback to be able to monitor the loading progress of the PDF file +(necessary to implement e.g. a loading bar). The callback receives +an {Object} with the properties: {number} loaded and {number} total. +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

onUnsupportedFeature

+ + + + +
+ Callback to when unsupported feature is used. The callback receives +an {UNSUPPORTED_FEATURES} argument. +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

promise

+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + +

Methods

+ + + + + + +

destroy() → {Promise}

+ + + + + +
+ Aborts all network requests and destroys worker. +
+ + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+ A promise that is resolved after destruction activity + is completed. +
+ + + +
+
+ Type +
+
+ +Promise + + +
+
+ + + + + + + + + + +

then(onFulfilled, onRejected) → {Promise}

+ + + + + +
+ Registers callbacks to indicate the document loading completion. +
+ + + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
onFulfilled + + +function + + + + The callback for the loading completion.
onRejected + + +function + + + + The callback for the loading failure.
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+ A promise that is resolved after the onFulfilled or + onRejected callback. +
+ + + +
+
+ Type +
+
+ +Promise + + +
+
+ + + + + + + + + + + +
+ +
+ + + + + + + +
+ +
+ +

PDFDocumentLoadingTask

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

new PDFDocumentLoadingTask()

+ + + + + +
+ PDF document loading operation. +
+ + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +

Members

+ + + +

destroyed :boolean

+ + + + +
+ Shows if loading task is destroyed. +
+ + + +
Type:
+
    +
  • + +boolean + + +
  • +
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

docId :string

+ + + + +
+ Unique document loading task id -- used in MessageHandlers. +
+ + + +
Type:
+
    +
  • + +string + + +
  • +
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

onPassword

+ + + + +
+ Callback to request a password if wrong or no password was provided. +The callback receives two parameters: function that needs to be called +with new password and reason (see {PasswordResponses}). +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

onProgress

+ + + + +
+ Callback to be able to monitor the loading progress of the PDF file +(necessary to implement e.g. a loading bar). The callback receives +an {Object} with the properties: {number} loaded and {number} total. +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

onUnsupportedFeature

+ + + + +
+ Callback to when unsupported feature is used. The callback receives +an {UNSUPPORTED_FEATURES} argument. +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

promise

+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + +

Methods

+ + + + + + +

destroy() → {Promise}

+ + + + + +
+ Aborts all network requests and destroys worker. +
+ + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+ A promise that is resolved after destruction activity + is completed. +
+ + + +
+
+ Type +
+
+ +Promise + + +
+
+ + + + + + + + + + +

then(onFulfilled, onRejected) → {Promise}

+ + + + + +
+ Registers callbacks to indicate the document loading completion. +
+ + + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
onFulfilled + + +function + + + + The callback for the loading completion.
onRejected + + +function + + + + The callback for the loading failure.
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+ A promise that is resolved after the onFulfilled or + onRejected callback. +
+ + + +
+
+ Type +
+
+ +Promise + + +
+
+ + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/api/draft/PDFDocumentProxy.html b/api/draft/PDFDocumentProxy.html new file mode 100644 index 00000000..b91fcec7 --- /dev/null +++ b/api/draft/PDFDocumentProxy.html @@ -0,0 +1,163 @@ + + + + + JSDoc: Class: PDFDocumentProxy + + + + + + + + + + +
+ +

Class: PDFDocumentProxy

+ + + + + + +
+ +
+ +

PDFDocumentProxy

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

new PDFDocumentProxy()

+ + + + + +
+ Proxy to a PDFDocument in the worker thread. Also, contains commonly used +properties that can be read synchronously. +
+ + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/api/draft/PDFJS.html b/api/draft/PDFJS.html new file mode 100644 index 00000000..c309fdb2 --- /dev/null +++ b/api/draft/PDFJS.html @@ -0,0 +1,243 @@ + + + + + JSDoc: Class: PDFJS + + + + + + + + + + +
+ +

Class: PDFJS

+ + + + + + +
+ +
+ +

PDFJS

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

new PDFJS()

+ + + + + +
+ PDFJS scope object that contains all functions, objects and variables related +to the PDF.js. +
+ + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +

Members

+ + + +

(static) verbosity :number

+ + + + +
+ Controls the logging level. +The constants from PDFJS.VERBOSITY_LEVELS should be used: +- errors +- warnings [default] +- infos +
+ + + +
Type:
+
    +
  • + +number + + +
  • +
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/api/draft/PDFPageProxy.html b/api/draft/PDFPageProxy.html new file mode 100644 index 00000000..f21fb087 --- /dev/null +++ b/api/draft/PDFPageProxy.html @@ -0,0 +1,162 @@ + + + + + JSDoc: Class: PDFPageProxy + + + + + + + + + + +
+ +

Class: PDFPageProxy

+ + + + + + +
+ +
+ +

PDFPageProxy

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

new PDFPageProxy()

+ + + + + +
+ Proxy to a PDFPage in the worker thread. +
+ + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/api/draft/PageViewport.html b/api/draft/PageViewport.html new file mode 100644 index 00000000..ebe7481a --- /dev/null +++ b/api/draft/PageViewport.html @@ -0,0 +1,162 @@ + + + + + JSDoc: Class: PageViewport + + + + + + + + + + +
+ +

Class: PageViewport

+ + + + + + +
+ +
+ +

PageViewport

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

new PageViewport()

+ + + + + +
+ PDF page viewport created based on scale, rotation and offset. +
+ + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/api/draft/RenderTask.html b/api/draft/RenderTask.html new file mode 100644 index 00000000..63148b5b --- /dev/null +++ b/api/draft/RenderTask.html @@ -0,0 +1,162 @@ + + + + + JSDoc: Class: RenderTask + + + + + + + + + + +
+ +

Class: RenderTask

+ + + + + + +
+ +
+ +

RenderTask

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

new RenderTask()

+ + + + + +
+ Allows controlling of the rendering tasks. +
+ + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/api/draft/core_annotation.js.html b/api/draft/core_annotation.js.html new file mode 100644 index 00000000..1d000dce --- /dev/null +++ b/api/draft/core_annotation.js.html @@ -0,0 +1,1120 @@ + + + + + JSDoc: Source: core/annotation.js + + + + + + + + + + +
+ +

Source: core/annotation.js

+ + + + + + +
+
+
/* Copyright 2012 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+'use strict';
+
+(function (root, factory) {
+  if (typeof define === 'function' && define.amd) {
+    define('pdfjs/core/annotation', ['exports', 'pdfjs/shared/util',
+      'pdfjs/core/primitives', 'pdfjs/core/stream', 'pdfjs/core/colorspace',
+      'pdfjs/core/obj', 'pdfjs/core/evaluator'], factory);
+  } else if (typeof exports !== 'undefined') {
+    factory(exports, require('../shared/util.js'), require('./primitives.js'),
+      require('./stream.js'), require('./colorspace.js'), require('./obj.js'),
+      require('./evaluator.js'));
+  } else {
+    factory((root.pdfjsCoreAnnotation = {}), root.pdfjsSharedUtil,
+      root.pdfjsCorePrimitives, root.pdfjsCoreStream, root.pdfjsCoreColorSpace,
+      root.pdfjsCoreObj, root.pdfjsCoreEvaluator);
+  }
+}(this, function (exports, sharedUtil, corePrimitives, coreStream,
+                  coreColorSpace, coreObj, coreEvaluator) {
+
+var AnnotationBorderStyleType = sharedUtil.AnnotationBorderStyleType;
+var AnnotationFieldFlag = sharedUtil.AnnotationFieldFlag;
+var AnnotationFlag = sharedUtil.AnnotationFlag;
+var AnnotationType = sharedUtil.AnnotationType;
+var OPS = sharedUtil.OPS;
+var Util = sharedUtil.Util;
+var isArray = sharedUtil.isArray;
+var isInt = sharedUtil.isInt;
+var stringToBytes = sharedUtil.stringToBytes;
+var stringToPDFString = sharedUtil.stringToPDFString;
+var warn = sharedUtil.warn;
+var Dict = corePrimitives.Dict;
+var isDict = corePrimitives.isDict;
+var isName = corePrimitives.isName;
+var isRef = corePrimitives.isRef;
+var isStream = corePrimitives.isStream;
+var Stream = coreStream.Stream;
+var ColorSpace = coreColorSpace.ColorSpace;
+var Catalog = coreObj.Catalog;
+var ObjectLoader = coreObj.ObjectLoader;
+var FileSpec = coreObj.FileSpec;
+var OperatorList = coreEvaluator.OperatorList;
+
+/**
+ * @class
+ * @alias AnnotationFactory
+ */
+function AnnotationFactory() {}
+AnnotationFactory.prototype = /** @lends AnnotationFactory.prototype */ {
+  /**
+   * @param {XRef} xref
+   * @param {Object} ref
+   * @param {PDFManager} pdfManager
+   * @param {Object} idFactory
+   * @returns {Annotation}
+   */
+  create: function AnnotationFactory_create(xref, ref, pdfManager, idFactory) {
+    var dict = xref.fetchIfRef(ref);
+    if (!isDict(dict)) {
+      return;
+    }
+    var id = isRef(ref) ? ref.toString() : 'annot_' + idFactory.createObjId();
+
+    // Determine the annotation's subtype.
+    var subtype = dict.get('Subtype');
+    subtype = isName(subtype) ? subtype.name : null;
+
+    // Return the right annotation object based on the subtype and field type.
+    var parameters = {
+      xref: xref,
+      dict: dict,
+      ref: isRef(ref) ? ref : null,
+      subtype: subtype,
+      id: id,
+      pdfManager: pdfManager,
+    };
+
+    switch (subtype) {
+      case 'Link':
+        return new LinkAnnotation(parameters);
+
+      case 'Text':
+        return new TextAnnotation(parameters);
+
+      case 'Widget':
+        var fieldType = Util.getInheritableProperty(dict, 'FT');
+        fieldType = isName(fieldType) ? fieldType.name : null;
+
+        switch (fieldType) {
+          case 'Tx':
+            return new TextWidgetAnnotation(parameters);
+          case 'Btn':
+            return new ButtonWidgetAnnotation(parameters);
+          case 'Ch':
+            return new ChoiceWidgetAnnotation(parameters);
+        }
+        warn('Unimplemented widget field type "' + fieldType + '", ' +
+             'falling back to base field type.');
+        return new WidgetAnnotation(parameters);
+
+      case 'Popup':
+        return new PopupAnnotation(parameters);
+
+      case 'Highlight':
+        return new HighlightAnnotation(parameters);
+
+      case 'Underline':
+        return new UnderlineAnnotation(parameters);
+
+      case 'Squiggly':
+        return new SquigglyAnnotation(parameters);
+
+      case 'StrikeOut':
+        return new StrikeOutAnnotation(parameters);
+
+      case 'FileAttachment':
+        return new FileAttachmentAnnotation(parameters);
+
+      default:
+        if (!subtype) {
+          warn('Annotation is missing the required /Subtype.');
+        } else {
+          warn('Unimplemented annotation type "' + subtype + '", ' +
+               'falling back to base annotation.');
+        }
+        return new Annotation(parameters);
+    }
+  }
+};
+
+var Annotation = (function AnnotationClosure() {
+  // 12.5.5: Algorithm: Appearance streams
+  function getTransformMatrix(rect, bbox, matrix) {
+    var bounds = Util.getAxialAlignedBoundingBox(bbox, matrix);
+    var minX = bounds[0];
+    var minY = bounds[1];
+    var maxX = bounds[2];
+    var maxY = bounds[3];
+
+    if (minX === maxX || minY === maxY) {
+      // From real-life file, bbox was [0, 0, 0, 0]. In this case,
+      // just apply the transform for rect
+      return [1, 0, 0, 1, rect[0], rect[1]];
+    }
+
+    var xRatio = (rect[2] - rect[0]) / (maxX - minX);
+    var yRatio = (rect[3] - rect[1]) / (maxY - minY);
+    return [
+      xRatio,
+      0,
+      0,
+      yRatio,
+      rect[0] - minX * xRatio,
+      rect[1] - minY * yRatio
+    ];
+  }
+
+  function Annotation(params) {
+    var dict = params.dict;
+
+    this.setFlags(dict.get('F'));
+    this.setRectangle(dict.getArray('Rect'));
+    this.setColor(dict.getArray('C'));
+    this.setBorderStyle(dict);
+    this.setAppearance(dict);
+
+    // Expose public properties using a data object.
+    this.data = {};
+    this.data.id = params.id;
+    this.data.subtype = params.subtype;
+    this.data.annotationFlags = this.flags;
+    this.data.rect = this.rectangle;
+    this.data.color = this.color;
+    this.data.borderStyle = this.borderStyle;
+    this.data.hasAppearance = !!this.appearance;
+  }
+
+  Annotation.prototype = {
+    /**
+     * @private
+     */
+    _hasFlag: function Annotation_hasFlag(flags, flag) {
+      return !!(flags & flag);
+    },
+
+    /**
+     * @private
+     */
+    _isViewable: function Annotation_isViewable(flags) {
+      return !this._hasFlag(flags, AnnotationFlag.INVISIBLE) &&
+             !this._hasFlag(flags, AnnotationFlag.HIDDEN) &&
+             !this._hasFlag(flags, AnnotationFlag.NOVIEW);
+    },
+
+    /**
+     * @private
+     */
+    _isPrintable: function AnnotationFlag_isPrintable(flags) {
+      return this._hasFlag(flags, AnnotationFlag.PRINT) &&
+             !this._hasFlag(flags, AnnotationFlag.INVISIBLE) &&
+             !this._hasFlag(flags, AnnotationFlag.HIDDEN);
+    },
+
+    /**
+     * @return {boolean}
+     */
+    get viewable() {
+      if (this.flags === 0) {
+        return true;
+      }
+      return this._isViewable(this.flags);
+    },
+
+    /**
+     * @return {boolean}
+     */
+    get printable() {
+      if (this.flags === 0) {
+        return false;
+      }
+      return this._isPrintable(this.flags);
+    },
+
+    /**
+     * Set the flags.
+     *
+     * @public
+     * @memberof Annotation
+     * @param {number} flags - Unsigned 32-bit integer specifying annotation
+     *                         characteristics
+     * @see {@link shared/util.js}
+     */
+    setFlags: function Annotation_setFlags(flags) {
+      this.flags = (isInt(flags) && flags > 0) ? flags : 0;
+    },
+
+    /**
+     * Check if a provided flag is set.
+     *
+     * @public
+     * @memberof Annotation
+     * @param {number} flag - Hexadecimal representation for an annotation
+     *                        characteristic
+     * @return {boolean}
+     * @see {@link shared/util.js}
+     */
+    hasFlag: function Annotation_hasFlag(flag) {
+      return this._hasFlag(this.flags, flag);
+    },
+
+    /**
+     * Set the rectangle.
+     *
+     * @public
+     * @memberof Annotation
+     * @param {Array} rectangle - The rectangle array with exactly four entries
+     */
+    setRectangle: function Annotation_setRectangle(rectangle) {
+      if (isArray(rectangle) && rectangle.length === 4) {
+        this.rectangle = Util.normalizeRect(rectangle);
+      } else {
+        this.rectangle = [0, 0, 0, 0];
+      }
+    },
+
+    /**
+     * Set the color and take care of color space conversion.
+     *
+     * @public
+     * @memberof Annotation
+     * @param {Array} color - The color array containing either 0
+     *                        (transparent), 1 (grayscale), 3 (RGB) or
+     *                        4 (CMYK) elements
+     */
+    setColor: function Annotation_setColor(color) {
+      var rgbColor = new Uint8Array(3); // Black in RGB color space (default)
+      if (!isArray(color)) {
+        this.color = rgbColor;
+        return;
+      }
+
+      switch (color.length) {
+        case 0: // Transparent, which we indicate with a null value
+          this.color = null;
+          break;
+
+        case 1: // Convert grayscale to RGB
+          ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0);
+          this.color = rgbColor;
+          break;
+
+        case 3: // Convert RGB percentages to RGB
+          ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0);
+          this.color = rgbColor;
+          break;
+
+        case 4: // Convert CMYK to RGB
+          ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0);
+          this.color = rgbColor;
+          break;
+
+        default:
+          this.color = rgbColor;
+          break;
+      }
+    },
+
+    /**
+     * Set the border style (as AnnotationBorderStyle object).
+     *
+     * @public
+     * @memberof Annotation
+     * @param {Dict} borderStyle - The border style dictionary
+     */
+    setBorderStyle: function Annotation_setBorderStyle(borderStyle) {
+      this.borderStyle = new AnnotationBorderStyle();
+      if (!isDict(borderStyle)) {
+        return;
+      }
+      if (borderStyle.has('BS')) {
+        var dict = borderStyle.get('BS');
+        var dictType = dict.get('Type');
+
+        if (!dictType || isName(dictType, 'Border')) {
+          this.borderStyle.setWidth(dict.get('W'));
+          this.borderStyle.setStyle(dict.get('S'));
+          this.borderStyle.setDashArray(dict.getArray('D'));
+        }
+      } else if (borderStyle.has('Border')) {
+        var array = borderStyle.getArray('Border');
+        if (isArray(array) && array.length >= 3) {
+          this.borderStyle.setHorizontalCornerRadius(array[0]);
+          this.borderStyle.setVerticalCornerRadius(array[1]);
+          this.borderStyle.setWidth(array[2]);
+
+          if (array.length === 4) { // Dash array available
+            this.borderStyle.setDashArray(array[3]);
+          }
+        }
+      } else {
+        // There are no border entries in the dictionary. According to the
+        // specification, we should draw a solid border of width 1 in that
+        // case, but Adobe Reader did not implement that part of the
+        // specification and instead draws no border at all, so we do the same.
+        // See also https://github.com/mozilla/pdf.js/issues/6179.
+        this.borderStyle.setWidth(0);
+      }
+    },
+
+    /**
+     * Set the (normal) appearance.
+     *
+     * @public
+     * @memberof Annotation
+     * @param {Dict} dict - The annotation's data dictionary
+     */
+    setAppearance: function Annotation_setAppearance(dict) {
+      this.appearance = null;
+
+      var appearanceStates = dict.get('AP');
+      if (!isDict(appearanceStates)) {
+        return;
+      }
+
+      // In case the normal appearance is a stream, then it is used directly.
+      var normalAppearanceState = appearanceStates.get('N');
+      if (isStream(normalAppearanceState)) {
+        this.appearance = normalAppearanceState;
+        return;
+      }
+      if (!isDict(normalAppearanceState)) {
+        return;
+      }
+
+      // In case the normal appearance is a dictionary, the `AS` entry provides
+      // the key of the stream in this dictionary.
+      var as = dict.get('AS');
+      if (!isName(as) || !normalAppearanceState.has(as.name)) {
+        return;
+      }
+      this.appearance = normalAppearanceState.get(as.name);
+    },
+
+    /**
+     * Prepare the annotation for working with a popup in the display layer.
+     *
+     * @private
+     * @memberof Annotation
+     * @param {Dict} dict - The annotation's data dictionary
+     */
+    _preparePopup: function Annotation_preparePopup(dict) {
+      if (!dict.has('C')) {
+        // Fall back to the default background color.
+        this.data.color = null;
+      }
+
+      this.data.hasPopup = dict.has('Popup');
+      this.data.title = stringToPDFString(dict.get('T') || '');
+      this.data.contents = stringToPDFString(dict.get('Contents') || '');
+    },
+
+    loadResources: function Annotation_loadResources(keys) {
+      return new Promise(function (resolve, reject) {
+        this.appearance.dict.getAsync('Resources').then(function (resources) {
+          if (!resources) {
+            resolve();
+            return;
+          }
+          var objectLoader = new ObjectLoader(resources.map,
+                                              keys,
+                                              resources.xref);
+          objectLoader.load().then(function() {
+            resolve(resources);
+          }, reject);
+        }, reject);
+      }.bind(this));
+    },
+
+    getOperatorList: function Annotation_getOperatorList(evaluator, task,
+                                                         renderForms) {
+      if (!this.appearance) {
+        return Promise.resolve(new OperatorList());
+      }
+
+      var data = this.data;
+      var appearanceDict = this.appearance.dict;
+      var resourcesPromise = this.loadResources([
+        'ExtGState',
+        'ColorSpace',
+        'Pattern',
+        'Shading',
+        'XObject',
+        'Font'
+        // ProcSet
+        // Properties
+      ]);
+      var bbox = appearanceDict.getArray('BBox') || [0, 0, 1, 1];
+      var matrix = appearanceDict.getArray('Matrix') || [1, 0, 0, 1, 0, 0];
+      var transform = getTransformMatrix(data.rect, bbox, matrix);
+      var self = this;
+
+      return resourcesPromise.then(function(resources) {
+          var opList = new OperatorList();
+          opList.addOp(OPS.beginAnnotation, [data.rect, transform, matrix]);
+          return evaluator.getOperatorList(self.appearance, task,
+                                           resources, opList).
+            then(function () {
+              opList.addOp(OPS.endAnnotation, []);
+              self.appearance.reset();
+              return opList;
+            });
+        });
+    }
+  };
+
+  return Annotation;
+})();
+
+/**
+ * Contains all data regarding an annotation's border style.
+ *
+ * @class
+ */
+var AnnotationBorderStyle = (function AnnotationBorderStyleClosure() {
+  /**
+   * @constructor
+   * @private
+   */
+  function AnnotationBorderStyle() {
+    this.width = 1;
+    this.style = AnnotationBorderStyleType.SOLID;
+    this.dashArray = [3];
+    this.horizontalCornerRadius = 0;
+    this.verticalCornerRadius = 0;
+  }
+
+  AnnotationBorderStyle.prototype = {
+    /**
+     * Set the width.
+     *
+     * @public
+     * @memberof AnnotationBorderStyle
+     * @param {integer} width - The width
+     */
+    setWidth: function AnnotationBorderStyle_setWidth(width) {
+      if (width === (width | 0)) {
+        this.width = width;
+      }
+    },
+
+    /**
+     * Set the style.
+     *
+     * @public
+     * @memberof AnnotationBorderStyle
+     * @param {Object} style - The style object
+     * @see {@link shared/util.js}
+     */
+    setStyle: function AnnotationBorderStyle_setStyle(style) {
+      if (!style) {
+        return;
+      }
+      switch (style.name) {
+        case 'S':
+          this.style = AnnotationBorderStyleType.SOLID;
+          break;
+
+        case 'D':
+          this.style = AnnotationBorderStyleType.DASHED;
+          break;
+
+        case 'B':
+          this.style = AnnotationBorderStyleType.BEVELED;
+          break;
+
+        case 'I':
+          this.style = AnnotationBorderStyleType.INSET;
+          break;
+
+        case 'U':
+          this.style = AnnotationBorderStyleType.UNDERLINE;
+          break;
+
+        default:
+          break;
+      }
+    },
+
+    /**
+     * Set the dash array.
+     *
+     * @public
+     * @memberof AnnotationBorderStyle
+     * @param {Array} dashArray - The dash array with at least one element
+     */
+    setDashArray: function AnnotationBorderStyle_setDashArray(dashArray) {
+      // We validate the dash array, but we do not use it because CSS does not
+      // allow us to change spacing of dashes. For more information, visit
+      // http://www.w3.org/TR/css3-background/#the-border-style.
+      if (isArray(dashArray) && dashArray.length > 0) {
+        // According to the PDF specification: the elements in a dashArray
+        // shall be numbers that are nonnegative and not all equal to zero.
+        var isValid = true;
+        var allZeros = true;
+        for (var i = 0, len = dashArray.length; i < len; i++) {
+          var element = dashArray[i];
+          var validNumber = (+element >= 0);
+          if (!validNumber) {
+            isValid = false;
+            break;
+          } else if (element > 0) {
+            allZeros = false;
+          }
+        }
+        if (isValid && !allZeros) {
+          this.dashArray = dashArray;
+        } else {
+          this.width = 0; // Adobe behavior when the array is invalid.
+        }
+      } else if (dashArray) {
+        this.width = 0; // Adobe behavior when the array is invalid.
+      }
+    },
+
+    /**
+     * Set the horizontal corner radius (from a Border dictionary).
+     *
+     * @public
+     * @memberof AnnotationBorderStyle
+     * @param {integer} radius - The horizontal corner radius
+     */
+    setHorizontalCornerRadius:
+        function AnnotationBorderStyle_setHorizontalCornerRadius(radius) {
+      if (radius === (radius | 0)) {
+        this.horizontalCornerRadius = radius;
+      }
+    },
+
+    /**
+     * Set the vertical corner radius (from a Border dictionary).
+     *
+     * @public
+     * @memberof AnnotationBorderStyle
+     * @param {integer} radius - The vertical corner radius
+     */
+    setVerticalCornerRadius:
+        function AnnotationBorderStyle_setVerticalCornerRadius(radius) {
+      if (radius === (radius | 0)) {
+        this.verticalCornerRadius = radius;
+      }
+    }
+  };
+
+  return AnnotationBorderStyle;
+})();
+
+var WidgetAnnotation = (function WidgetAnnotationClosure() {
+  function WidgetAnnotation(params) {
+    Annotation.call(this, params);
+
+    var dict = params.dict;
+    var data = this.data;
+
+    data.annotationType = AnnotationType.WIDGET;
+    data.fieldName = this._constructFieldName(dict);
+    data.fieldValue = Util.getInheritableProperty(dict, 'V',
+                                                  /* getArray = */ true);
+    data.alternativeText = stringToPDFString(dict.get('TU') || '');
+    data.defaultAppearance = Util.getInheritableProperty(dict, 'DA') || '';
+    var fieldType = Util.getInheritableProperty(dict, 'FT');
+    data.fieldType = isName(fieldType) ? fieldType.name : null;
+    this.fieldResources = Util.getInheritableProperty(dict, 'DR') || Dict.empty;
+
+    data.fieldFlags = Util.getInheritableProperty(dict, 'Ff');
+    if (!isInt(data.fieldFlags) || data.fieldFlags < 0) {
+      data.fieldFlags = 0;
+    }
+
+    data.readOnly = this.hasFieldFlag(AnnotationFieldFlag.READONLY);
+
+    // Hide signatures because we cannot validate them.
+    if (data.fieldType === 'Sig') {
+      this.setFlags(AnnotationFlag.HIDDEN);
+    }
+  }
+
+  Util.inherit(WidgetAnnotation, Annotation, {
+    /**
+     * Construct the (fully qualified) field name from the (partial) field
+     * names of the field and its ancestors.
+     *
+     * @private
+     * @memberof WidgetAnnotation
+     * @param {Dict} dict - Complete widget annotation dictionary
+     * @return {string}
+     */
+    _constructFieldName: function WidgetAnnotation_constructFieldName(dict) {
+      // Both the `Parent` and `T` fields are optional. While at least one of
+      // them should be provided, bad PDF generators may fail to do so.
+      if (!dict.has('T') && !dict.has('Parent')) {
+        warn('Unknown field name, falling back to empty field name.');
+        return '';
+      }
+
+      // If no parent exists, the partial and fully qualified names are equal.
+      if (!dict.has('Parent')) {
+        return stringToPDFString(dict.get('T'));
+      }
+
+      // Form the fully qualified field name by appending the partial name to
+      // the parent's fully qualified name, separated by a period.
+      var fieldName = [];
+      if (dict.has('T')) {
+        fieldName.unshift(stringToPDFString(dict.get('T')));
+      }
+
+      var loopDict = dict;
+      while (loopDict.has('Parent')) {
+        loopDict = loopDict.get('Parent');
+        if (!isDict(loopDict)) {
+          // Even though it is not allowed according to the PDF specification,
+          // bad PDF generators may provide a `Parent` entry that is not a
+          // dictionary, but `null` for example (issue 8143).
+          break;
+        }
+
+        if (loopDict.has('T')) {
+          fieldName.unshift(stringToPDFString(loopDict.get('T')));
+        }
+      }
+      return fieldName.join('.');
+    },
+
+    /**
+     * Check if a provided field flag is set.
+     *
+     * @public
+     * @memberof WidgetAnnotation
+     * @param {number} flag - Hexadecimal representation for an annotation
+     *                        field characteristic
+     * @return {boolean}
+     * @see {@link shared/util.js}
+     */
+    hasFieldFlag: function WidgetAnnotation_hasFieldFlag(flag) {
+      return !!(this.data.fieldFlags & flag);
+    },
+  });
+
+  return WidgetAnnotation;
+})();
+
+var TextWidgetAnnotation = (function TextWidgetAnnotationClosure() {
+  function TextWidgetAnnotation(params) {
+    WidgetAnnotation.call(this, params);
+
+    // The field value is always a string.
+    this.data.fieldValue = stringToPDFString(this.data.fieldValue || '');
+
+    // Determine the alignment of text in the field.
+    var alignment = Util.getInheritableProperty(params.dict, 'Q');
+    if (!isInt(alignment) || alignment < 0 || alignment > 2) {
+      alignment = null;
+    }
+    this.data.textAlignment = alignment;
+
+    // Determine the maximum length of text in the field.
+    var maximumLength = Util.getInheritableProperty(params.dict, 'MaxLen');
+    if (!isInt(maximumLength) || maximumLength < 0) {
+      maximumLength = null;
+    }
+    this.data.maxLen = maximumLength;
+
+    // Process field flags for the display layer.
+    this.data.multiLine = this.hasFieldFlag(AnnotationFieldFlag.MULTILINE);
+    this.data.comb = this.hasFieldFlag(AnnotationFieldFlag.COMB) &&
+                     !this.hasFieldFlag(AnnotationFieldFlag.MULTILINE) &&
+                     !this.hasFieldFlag(AnnotationFieldFlag.PASSWORD) &&
+                     !this.hasFieldFlag(AnnotationFieldFlag.FILESELECT) &&
+                     this.data.maxLen !== null;
+  }
+
+  Util.inherit(TextWidgetAnnotation, WidgetAnnotation, {
+    getOperatorList:
+        function TextWidgetAnnotation_getOperatorList(evaluator, task,
+                                                      renderForms) {
+      var operatorList = new OperatorList();
+
+      // Do not render form elements on the canvas when interactive forms are
+      // enabled. The display layer is responsible for rendering them instead.
+      if (renderForms) {
+        return Promise.resolve(operatorList);
+      }
+
+      if (this.appearance) {
+        return Annotation.prototype.getOperatorList.call(this, evaluator, task,
+                                                         renderForms);
+      }
+
+      // Even if there is an appearance stream, ignore it. This is the
+      // behaviour used by Adobe Reader.
+      if (!this.data.defaultAppearance) {
+        return Promise.resolve(operatorList);
+      }
+
+      var stream = new Stream(stringToBytes(this.data.defaultAppearance));
+      return evaluator.getOperatorList(stream, task, this.fieldResources,
+                                       operatorList).
+        then(function () {
+          return operatorList;
+        });
+    }
+  });
+
+  return TextWidgetAnnotation;
+})();
+
+var ButtonWidgetAnnotation = (function ButtonWidgetAnnotationClosure() {
+  function ButtonWidgetAnnotation(params) {
+    WidgetAnnotation.call(this, params);
+
+    this.data.checkBox = !this.hasFieldFlag(AnnotationFieldFlag.RADIO) &&
+                         !this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);
+    if (this.data.checkBox) {
+      if (!isName(this.data.fieldValue)) {
+        return;
+      }
+      this.data.fieldValue = this.data.fieldValue.name;
+    }
+
+    this.data.radioButton = this.hasFieldFlag(AnnotationFieldFlag.RADIO) &&
+                            !this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);
+    if (this.data.radioButton) {
+      this.data.fieldValue = this.data.buttonValue = null;
+
+      // The parent field's `V` entry holds a `Name` object with the appearance
+      // state of whichever child field is currently in the "on" state.
+      var fieldParent = params.dict.get('Parent');
+      if (isDict(fieldParent) && fieldParent.has('V')) {
+        var fieldParentValue = fieldParent.get('V');
+        if (isName(fieldParentValue)) {
+          this.data.fieldValue = fieldParentValue.name;
+        }
+      }
+
+      // The button's value corresponds to its appearance state.
+      var appearanceStates = params.dict.get('AP');
+      if (!isDict(appearanceStates)) {
+        return;
+      }
+      var normalAppearanceState = appearanceStates.get('N');
+      if (!isDict(normalAppearanceState)) {
+        return;
+      }
+      var keys = normalAppearanceState.getKeys();
+      for (var i = 0, ii = keys.length; i < ii; i++) {
+        if (keys[i] !== 'Off') {
+          this.data.buttonValue = keys[i];
+          break;
+        }
+      }
+    }
+  }
+
+  Util.inherit(ButtonWidgetAnnotation, WidgetAnnotation, {
+    getOperatorList:
+        function ButtonWidgetAnnotation_getOperatorList(evaluator, task,
+                                                        renderForms) {
+      var operatorList = new OperatorList();
+
+      // Do not render form elements on the canvas when interactive forms are
+      // enabled. The display layer is responsible for rendering them instead.
+      if (renderForms) {
+        return Promise.resolve(operatorList);
+      }
+
+      if (this.appearance) {
+        return Annotation.prototype.getOperatorList.call(this, evaluator, task,
+                                                         renderForms);
+      }
+      return Promise.resolve(operatorList);
+    }
+  });
+
+  return ButtonWidgetAnnotation;
+})();
+
+var ChoiceWidgetAnnotation = (function ChoiceWidgetAnnotationClosure() {
+  function ChoiceWidgetAnnotation(params) {
+    WidgetAnnotation.call(this, params);
+
+    // Determine the options. The options array may consist of strings or
+    // arrays. If the array consists of arrays, then the first element of
+    // each array is the export value and the second element of each array is
+    // the display value. If the array consists of strings, then these
+    // represent both the export and display value. In this case, we convert
+    // it to an array of arrays as well for convenience in the display layer.
+    // Note that the specification does not state that the `Opt` field is
+    // inheritable, but in practice PDF generators do make annotations
+    // inherit the options from a parent annotation (issue 8094).
+    this.data.options = [];
+
+    var options = Util.getInheritableProperty(params.dict, 'Opt');
+    if (isArray(options)) {
+      var xref = params.xref;
+      for (var i = 0, ii = options.length; i < ii; i++) {
+        var option = xref.fetchIfRef(options[i]);
+        var isOptionArray = isArray(option);
+
+        this.data.options[i] = {
+          exportValue: isOptionArray ? xref.fetchIfRef(option[0]) : option,
+          displayValue: isOptionArray ? xref.fetchIfRef(option[1]) : option,
+        };
+      }
+    }
+
+    // Determine the field value. In this case, it may be a string or an
+    // array of strings. For convenience in the display layer, convert the
+    // string to an array of one string as well.
+    if (!isArray(this.data.fieldValue)) {
+      this.data.fieldValue = [this.data.fieldValue];
+    }
+
+    // Process field flags for the display layer.
+    this.data.combo = this.hasFieldFlag(AnnotationFieldFlag.COMBO);
+    this.data.multiSelect = this.hasFieldFlag(AnnotationFieldFlag.MULTISELECT);
+  }
+
+  Util.inherit(ChoiceWidgetAnnotation, WidgetAnnotation, {
+    getOperatorList:
+        function ChoiceWidgetAnnotation_getOperatorList(evaluator, task,
+                                                        renderForms) {
+      var operatorList = new OperatorList();
+
+      // Do not render form elements on the canvas when interactive forms are
+      // enabled. The display layer is responsible for rendering them instead.
+      if (renderForms) {
+        return Promise.resolve(operatorList);
+      }
+
+      return Annotation.prototype.getOperatorList.call(this, evaluator, task,
+                                                       renderForms);
+    }
+  });
+
+  return ChoiceWidgetAnnotation;
+})();
+
+var TextAnnotation = (function TextAnnotationClosure() {
+  var DEFAULT_ICON_SIZE = 22; // px
+
+  function TextAnnotation(parameters) {
+    Annotation.call(this, parameters);
+
+    this.data.annotationType = AnnotationType.TEXT;
+
+    if (this.data.hasAppearance) {
+      this.data.name = 'NoIcon';
+    } else {
+      this.data.rect[1] = this.data.rect[3] - DEFAULT_ICON_SIZE;
+      this.data.rect[2] = this.data.rect[0] + DEFAULT_ICON_SIZE;
+      this.data.name = parameters.dict.has('Name') ?
+                       parameters.dict.get('Name').name : 'Note';
+    }
+    this._preparePopup(parameters.dict);
+  }
+
+  Util.inherit(TextAnnotation, Annotation, {});
+
+  return TextAnnotation;
+})();
+
+var LinkAnnotation = (function LinkAnnotationClosure() {
+  function LinkAnnotation(params) {
+    Annotation.call(this, params);
+
+    var data = this.data;
+    data.annotationType = AnnotationType.LINK;
+
+    Catalog.parseDestDictionary({
+      destDict: params.dict,
+      resultObj: data,
+      docBaseUrl: params.pdfManager.docBaseUrl,
+    });
+  }
+
+  Util.inherit(LinkAnnotation, Annotation, {});
+
+  return LinkAnnotation;
+})();
+
+var PopupAnnotation = (function PopupAnnotationClosure() {
+  function PopupAnnotation(parameters) {
+    Annotation.call(this, parameters);
+
+    this.data.annotationType = AnnotationType.POPUP;
+
+    var dict = parameters.dict;
+    var parentItem = dict.get('Parent');
+    if (!parentItem) {
+      warn('Popup annotation has a missing or invalid parent annotation.');
+      return;
+    }
+
+    this.data.parentId = dict.getRaw('Parent').toString();
+    this.data.title = stringToPDFString(parentItem.get('T') || '');
+    this.data.contents = stringToPDFString(parentItem.get('Contents') || '');
+
+    if (!parentItem.has('C')) {
+      // Fall back to the default background color.
+      this.data.color = null;
+    } else {
+      this.setColor(parentItem.getArray('C'));
+      this.data.color = this.color;
+    }
+
+    // If the Popup annotation is not viewable, but the parent annotation is,
+    // that is most likely a bug. Fallback to inherit the flags from the parent
+    // annotation (this is consistent with the behaviour in Adobe Reader).
+    if (!this.viewable) {
+      var parentFlags = parentItem.get('F');
+      if (this._isViewable(parentFlags)) {
+        this.setFlags(parentFlags);
+      }
+    }
+  }
+
+  Util.inherit(PopupAnnotation, Annotation, {});
+
+  return PopupAnnotation;
+})();
+
+var HighlightAnnotation = (function HighlightAnnotationClosure() {
+  function HighlightAnnotation(parameters) {
+    Annotation.call(this, parameters);
+
+    this.data.annotationType = AnnotationType.HIGHLIGHT;
+    this._preparePopup(parameters.dict);
+
+    // PDF viewers completely ignore any border styles.
+    this.data.borderStyle.setWidth(0);
+  }
+
+  Util.inherit(HighlightAnnotation, Annotation, {});
+
+  return HighlightAnnotation;
+})();
+
+var UnderlineAnnotation = (function UnderlineAnnotationClosure() {
+  function UnderlineAnnotation(parameters) {
+    Annotation.call(this, parameters);
+
+    this.data.annotationType = AnnotationType.UNDERLINE;
+    this._preparePopup(parameters.dict);
+
+    // PDF viewers completely ignore any border styles.
+    this.data.borderStyle.setWidth(0);
+  }
+
+  Util.inherit(UnderlineAnnotation, Annotation, {});
+
+  return UnderlineAnnotation;
+})();
+
+var SquigglyAnnotation = (function SquigglyAnnotationClosure() {
+  function SquigglyAnnotation(parameters) {
+    Annotation.call(this, parameters);
+
+    this.data.annotationType = AnnotationType.SQUIGGLY;
+    this._preparePopup(parameters.dict);
+
+    // PDF viewers completely ignore any border styles.
+    this.data.borderStyle.setWidth(0);
+  }
+
+  Util.inherit(SquigglyAnnotation, Annotation, {});
+
+  return SquigglyAnnotation;
+})();
+
+var StrikeOutAnnotation = (function StrikeOutAnnotationClosure() {
+  function StrikeOutAnnotation(parameters) {
+    Annotation.call(this, parameters);
+
+    this.data.annotationType = AnnotationType.STRIKEOUT;
+    this._preparePopup(parameters.dict);
+
+    // PDF viewers completely ignore any border styles.
+    this.data.borderStyle.setWidth(0);
+  }
+
+  Util.inherit(StrikeOutAnnotation, Annotation, {});
+
+  return StrikeOutAnnotation;
+})();
+
+var FileAttachmentAnnotation = (function FileAttachmentAnnotationClosure() {
+  function FileAttachmentAnnotation(parameters) {
+    Annotation.call(this, parameters);
+
+    var file = new FileSpec(parameters.dict.get('FS'), parameters.xref);
+
+    this.data.annotationType = AnnotationType.FILEATTACHMENT;
+    this.data.file = file.serializable;
+    this._preparePopup(parameters.dict);
+  }
+
+  Util.inherit(FileAttachmentAnnotation, Annotation, {});
+
+  return FileAttachmentAnnotation;
+})();
+
+exports.Annotation = Annotation;
+exports.AnnotationBorderStyle = AnnotationBorderStyle;
+exports.AnnotationFactory = AnnotationFactory;
+}));
+
+
+
+ + + + +
+ + + +
+ + + + + + + diff --git a/api/draft/display_api.js.html b/api/draft/display_api.js.html new file mode 100644 index 00000000..44a73c59 --- /dev/null +++ b/api/draft/display_api.js.html @@ -0,0 +1,2295 @@ + + + + + JSDoc: Source: display/api.js + + + + + + + + + + +
+ +

Source: display/api.js

+ + + + + + +
+
+
/* Copyright 2012 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/* globals requirejs, __pdfjsdev_webpack__ */
+
+'use strict';
+
+(function (root, factory) {
+  if (typeof define === 'function' && define.amd) {
+    define('pdfjs/display/api', ['exports', 'pdfjs/shared/util',
+      'pdfjs/display/font_loader', 'pdfjs/display/canvas',
+      'pdfjs/display/metadata', 'pdfjs/display/dom_utils',
+      'require'], factory);
+  } else if (typeof exports !== 'undefined') {
+    factory(exports, require('../shared/util.js'), require('./font_loader.js'),
+      require('./canvas.js'), require('./metadata.js'),
+      require('./dom_utils.js'));
+  } else {
+    factory((root.pdfjsDisplayAPI = {}), root.pdfjsSharedUtil,
+      root.pdfjsDisplayFontLoader, root.pdfjsDisplayCanvas,
+      root.pdfjsDisplayMetadata, root.pdfjsDisplayDOMUtils);
+  }
+}(this, function (exports, sharedUtil, displayFontLoader, displayCanvas,
+                  displayMetadata, displayDOMUtils, amdRequire) {
+
+var InvalidPDFException = sharedUtil.InvalidPDFException;
+var MessageHandler = sharedUtil.MessageHandler;
+var MissingPDFException = sharedUtil.MissingPDFException;
+var PageViewport = sharedUtil.PageViewport;
+var PasswordException = sharedUtil.PasswordException;
+var StatTimer = sharedUtil.StatTimer;
+var UnexpectedResponseException = sharedUtil.UnexpectedResponseException;
+var UnknownErrorException = sharedUtil.UnknownErrorException;
+var Util = sharedUtil.Util;
+var createPromiseCapability = sharedUtil.createPromiseCapability;
+var error = sharedUtil.error;
+var deprecated = sharedUtil.deprecated;
+var getVerbosityLevel = sharedUtil.getVerbosityLevel;
+var info = sharedUtil.info;
+var isInt = sharedUtil.isInt;
+var isArray = sharedUtil.isArray;
+var isArrayBuffer = sharedUtil.isArrayBuffer;
+var isSameOrigin = sharedUtil.isSameOrigin;
+var loadJpegStream = sharedUtil.loadJpegStream;
+var stringToBytes = sharedUtil.stringToBytes;
+var globalScope = sharedUtil.globalScope;
+var warn = sharedUtil.warn;
+var FontFaceObject = displayFontLoader.FontFaceObject;
+var FontLoader = displayFontLoader.FontLoader;
+var CanvasGraphics = displayCanvas.CanvasGraphics;
+var Metadata = displayMetadata.Metadata;
+var getDefaultSetting = displayDOMUtils.getDefaultSetting;
+var DOMCanvasFactory = displayDOMUtils.DOMCanvasFactory;
+var DOMCMapReaderFactory = displayDOMUtils.DOMCMapReaderFactory;
+
+var DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536
+
+var isWorkerDisabled = false;
+var workerSrc;
+var isPostMessageTransfersDisabled = false;
+
+var pdfjsFilePath =
+  typeof PDFJSDev !== 'undefined' &&
+  PDFJSDev.test('PRODUCTION && !(MOZCENTRAL || FIREFOX)') &&
+  typeof document !== 'undefined' && document.currentScript ?
+    document.currentScript.src : null;
+
+var fakeWorkerFilesLoader = null;
+var useRequireEnsure = false;
+// The if below protected by __pdfjsdev_webpack__ check from webpack parsing.
+if (typeof PDFJSDev !== 'undefined' &&
+    PDFJSDev.test('GENERIC && !SINGLE_FILE') &&
+    typeof __pdfjsdev_webpack__ === 'undefined') {
+  // For GENERIC build we need add support of different fake file loaders
+  // for different  frameworks.
+  if (typeof window === 'undefined') {
+    // node.js - disable worker and set require.ensure.
+    isWorkerDisabled = true;
+    if (typeof require.ensure === 'undefined') {
+      require.ensure = require('node-ensure');
+    }
+    useRequireEnsure = true;
+  } else if (typeof require !== 'undefined' &&
+             typeof require.ensure === 'function') {
+    useRequireEnsure = true;
+  }
+  if (typeof requirejs !== 'undefined' && requirejs.toUrl) {
+    workerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js');
+  }
+  var dynamicLoaderSupported =
+    typeof requirejs !== 'undefined' && requirejs.load;
+  fakeWorkerFilesLoader = useRequireEnsure ? (function (callback) {
+    require.ensure([], function () {
+      var worker = require('./pdf.worker.js');
+      callback(worker.WorkerMessageHandler);
+    });
+  }) : dynamicLoaderSupported ? (function (callback) {
+    requirejs(['pdfjs-dist/build/pdf.worker'], function (worker) {
+      callback(worker.WorkerMessageHandler);
+    });
+  }) : null;
+}
+
+/**
+ * Document initialization / loading parameters object.
+ *
+ * @typedef {Object} DocumentInitParameters
+ * @property {string}     url   - The URL of the PDF.
+ * @property {TypedArray|Array|string} data - Binary PDF data. Use typed arrays
+ *   (Uint8Array) to improve the memory usage. If PDF data is BASE64-encoded,
+ *   use atob() to convert it to a binary string first.
+ * @property {Object}     httpHeaders - Basic authentication headers.
+ * @property {boolean}    withCredentials - Indicates whether or not cross-site
+ *   Access-Control requests should be made using credentials such as cookies
+ *   or authorization headers. The default is false.
+ * @property {string}     password - For decrypting password-protected PDFs.
+ * @property {TypedArray} initialData - A typed array with the first portion or
+ *   all of the pdf data. Used by the extension since some data is already
+ *   loaded before the switch to range requests.
+ * @property {number}     length - The PDF file length. It's used for progress
+ *   reports and range requests operations.
+ * @property {PDFDataRangeTransport} range
+ * @property {number}     rangeChunkSize - Optional parameter to specify
+ *   maximum number of bytes fetched per range request. The default value is
+ *   2^16 = 65536.
+ * @property {PDFWorker}  worker - The worker that will be used for the loading
+ *   and parsing of the PDF data.
+ * @property {string} docBaseUrl - (optional) The base URL of the document,
+ *   used when attempting to recover valid absolute URLs for annotations, and
+ *   outline items, that (incorrectly) only specify relative URLs.
+ * @property {boolean} disableNativeImageDecoder - (optional) Disable decoding
+ *   of certain (simple) JPEG images in the browser. This is useful for
+ *   environments without DOM image support, such as e.g. Node.js.
+ *   The default value is `false`.
+ * @property {Object} CMapReaderFactory - (optional) The factory that will be
+ *   used when reading built-in CMap files. Providing a custom factory is useful
+ *   for environments without `XMLHttpRequest` support, such as e.g. Node.js.
+ *   The default value is {DOMCMapReaderFactory}.
+ */
+
+/**
+ * @typedef {Object} PDFDocumentStats
+ * @property {Array} streamTypes - Used stream types in the document (an item
+ *   is set to true if specific stream ID was used in the document).
+ * @property {Array} fontTypes - Used font type in the document (an item is set
+ *   to true if specific font ID was used in the document).
+ */
+
+/**
+ * This is the main entry point for loading a PDF and interacting with it.
+ * NOTE: If a URL is used to fetch the PDF data a standard XMLHttpRequest(XHR)
+ * is used, which means it must follow the same origin rules that any XHR does
+ * e.g. No cross domain requests without CORS.
+ *
+ * @param {string|TypedArray|DocumentInitParameters|PDFDataRangeTransport} src
+ * Can be a url to where a PDF is located, a typed array (Uint8Array)
+ * already populated with data or parameter object.
+ *
+ * @param {PDFDataRangeTransport} pdfDataRangeTransport (deprecated) It is used
+ * if you want to manually serve range requests for data in the PDF.
+ *
+ * @param {function} passwordCallback (deprecated) It is used to request a
+ * password if wrong or no password was provided. The callback receives two
+ * parameters: function that needs to be called with new password and reason
+ * (see {PasswordResponses}).
+ *
+ * @param {function} progressCallback (deprecated) It is used to be able to
+ * monitor the loading progress of the PDF file (necessary to implement e.g.
+ * a loading bar). The callback receives an {Object} with the properties:
+ * {number} loaded and {number} total.
+ *
+ * @return {PDFDocumentLoadingTask}
+ */
+function getDocument(src, pdfDataRangeTransport,
+                     passwordCallback, progressCallback) {
+  var task = new PDFDocumentLoadingTask();
+
+  // Support of the obsolete arguments (for compatibility with API v1.0)
+  if (arguments.length > 1) {
+    deprecated('getDocument is called with pdfDataRangeTransport, ' +
+               'passwordCallback or progressCallback argument');
+  }
+  if (pdfDataRangeTransport) {
+    if (!(pdfDataRangeTransport instanceof PDFDataRangeTransport)) {
+      // Not a PDFDataRangeTransport instance, trying to add missing properties.
+      pdfDataRangeTransport = Object.create(pdfDataRangeTransport);
+      pdfDataRangeTransport.length = src.length;
+      pdfDataRangeTransport.initialData = src.initialData;
+      if (!pdfDataRangeTransport.abort) {
+        pdfDataRangeTransport.abort = function () {};
+      }
+    }
+    src = Object.create(src);
+    src.range = pdfDataRangeTransport;
+  }
+  task.onPassword = passwordCallback || null;
+  task.onProgress = progressCallback || null;
+
+  var source;
+  if (typeof src === 'string') {
+    source = { url: src };
+  } else if (isArrayBuffer(src)) {
+    source = { data: src };
+  } else if (src instanceof PDFDataRangeTransport) {
+    source = { range: src };
+  } else {
+    if (typeof src !== 'object') {
+      error('Invalid parameter in getDocument, need either Uint8Array, ' +
+        'string or a parameter object');
+    }
+    if (!src.url && !src.data && !src.range) {
+      error('Invalid parameter object: need either .data, .range or .url');
+    }
+
+    source = src;
+  }
+
+  var params = {};
+  var rangeTransport = null;
+  var worker = null;
+  for (var key in source) {
+    if (key === 'url' && typeof window !== 'undefined') {
+      // The full path is required in the 'url' field.
+      params[key] = new URL(source[key], window.location).href;
+      continue;
+    } else if (key === 'range') {
+      rangeTransport = source[key];
+      continue;
+    } else if (key === 'worker') {
+      worker = source[key];
+      continue;
+    } else if (key === 'data' && !(source[key] instanceof Uint8Array)) {
+      // Converting string or array-like data to Uint8Array.
+      var pdfBytes = source[key];
+      if (typeof pdfBytes === 'string') {
+        params[key] = stringToBytes(pdfBytes);
+      } else if (typeof pdfBytes === 'object' && pdfBytes !== null &&
+                 !isNaN(pdfBytes.length)) {
+        params[key] = new Uint8Array(pdfBytes);
+      } else if (isArrayBuffer(pdfBytes)) {
+        params[key] = new Uint8Array(pdfBytes);
+      } else {
+        error('Invalid PDF binary data: either typed array, string or ' +
+              'array-like object is expected in the data property.');
+      }
+      continue;
+    }
+    params[key] = source[key];
+  }
+
+  params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;
+  params.disableNativeImageDecoder = params.disableNativeImageDecoder === true;
+  var CMapReaderFactory = params.CMapReaderFactory || DOMCMapReaderFactory;
+
+  if (!worker) {
+    // Worker was not provided -- creating and owning our own. If message port
+    // is specified in global settings, using it.
+    var workerPort = getDefaultSetting('workerPort');
+    worker = workerPort ? new PDFWorker(null, workerPort) : new PDFWorker();
+    task._worker = worker;
+  }
+  var docId = task.docId;
+  worker.promise.then(function () {
+    if (task.destroyed) {
+      throw new Error('Loading aborted');
+    }
+    return _fetchDocument(worker, params, rangeTransport, docId).then(
+        function (workerId) {
+      if (task.destroyed) {
+        throw new Error('Loading aborted');
+      }
+      var messageHandler = new MessageHandler(docId, workerId, worker.port);
+      var transport = new WorkerTransport(messageHandler, task, rangeTransport,
+                                          CMapReaderFactory);
+      task._transport = transport;
+      messageHandler.send('Ready', null);
+    });
+  }).catch(task._capability.reject);
+
+  return task;
+}
+
+/**
+ * Starts fetching of specified PDF document/data.
+ * @param {PDFWorker} worker
+ * @param {Object} source
+ * @param {PDFDataRangeTransport} pdfDataRangeTransport
+ * @param {string} docId Unique document id, used as MessageHandler id.
+ * @returns {Promise} The promise, which is resolved when worker id of
+ *                    MessageHandler is known.
+ * @private
+ */
+function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {
+  if (worker.destroyed) {
+    return Promise.reject(new Error('Worker was destroyed'));
+  }
+
+  source.disableAutoFetch = getDefaultSetting('disableAutoFetch');
+  source.disableStream = getDefaultSetting('disableStream');
+  source.chunkedViewerLoading = !!pdfDataRangeTransport;
+  if (pdfDataRangeTransport) {
+    source.length = pdfDataRangeTransport.length;
+    source.initialData = pdfDataRangeTransport.initialData;
+  }
+  return worker.messageHandler.sendWithPromise('GetDocRequest', {
+    docId: docId,
+    source: source,
+    disableRange: getDefaultSetting('disableRange'),
+    maxImageSize: getDefaultSetting('maxImageSize'),
+    disableFontFace: getDefaultSetting('disableFontFace'),
+    disableCreateObjectURL: getDefaultSetting('disableCreateObjectURL'),
+    postMessageTransfers: getDefaultSetting('postMessageTransfers') &&
+                          !isPostMessageTransfersDisabled,
+    docBaseUrl: source.docBaseUrl,
+    disableNativeImageDecoder: source.disableNativeImageDecoder,
+  }).then(function (workerId) {
+    if (worker.destroyed) {
+      throw new Error('Worker was destroyed');
+    }
+    return workerId;
+  });
+}
+
+/**
+ * PDF document loading operation.
+ * @class
+ * @alias PDFDocumentLoadingTask
+ */
+var PDFDocumentLoadingTask = (function PDFDocumentLoadingTaskClosure() {
+  var nextDocumentId = 0;
+
+  /** @constructs PDFDocumentLoadingTask */
+  function PDFDocumentLoadingTask() {
+    this._capability = createPromiseCapability();
+    this._transport = null;
+    this._worker = null;
+
+    /**
+     * Unique document loading task id -- used in MessageHandlers.
+     * @type {string}
+     */
+    this.docId = 'd' + (nextDocumentId++);
+
+    /**
+     * Shows if loading task is destroyed.
+     * @type {boolean}
+     */
+    this.destroyed = false;
+
+    /**
+     * Callback to request a password if wrong or no password was provided.
+     * The callback receives two parameters: function that needs to be called
+     * with new password and reason (see {PasswordResponses}).
+     */
+    this.onPassword = null;
+
+    /**
+     * Callback to be able to monitor the loading progress of the PDF file
+     * (necessary to implement e.g. a loading bar). The callback receives
+     * an {Object} with the properties: {number} loaded and {number} total.
+     */
+    this.onProgress = null;
+
+    /**
+     * Callback to when unsupported feature is used. The callback receives
+     * an {UNSUPPORTED_FEATURES} argument.
+     */
+    this.onUnsupportedFeature = null;
+  }
+
+  PDFDocumentLoadingTask.prototype =
+      /** @lends PDFDocumentLoadingTask.prototype */ {
+    /**
+     * @return {Promise}
+     */
+    get promise() {
+      return this._capability.promise;
+    },
+
+    /**
+     * Aborts all network requests and destroys worker.
+     * @return {Promise} A promise that is resolved after destruction activity
+     *                   is completed.
+     */
+    destroy: function () {
+      this.destroyed = true;
+
+      var transportDestroyed = !this._transport ? Promise.resolve() :
+        this._transport.destroy();
+      return transportDestroyed.then(function () {
+        this._transport = null;
+        if (this._worker) {
+          this._worker.destroy();
+          this._worker = null;
+        }
+      }.bind(this));
+    },
+
+    /**
+     * Registers callbacks to indicate the document loading completion.
+     *
+     * @param {function} onFulfilled The callback for the loading completion.
+     * @param {function} onRejected The callback for the loading failure.
+     * @return {Promise} A promise that is resolved after the onFulfilled or
+     *                   onRejected callback.
+     */
+    then: function PDFDocumentLoadingTask_then(onFulfilled, onRejected) {
+      return this.promise.then.apply(this.promise, arguments);
+    }
+  };
+
+  return PDFDocumentLoadingTask;
+})();
+
+/**
+ * Abstract class to support range requests file loading.
+ * @class
+ * @alias PDFDataRangeTransport
+ * @param {number} length
+ * @param {Uint8Array} initialData
+ */
+var PDFDataRangeTransport = (function pdfDataRangeTransportClosure() {
+  function PDFDataRangeTransport(length, initialData) {
+    this.length = length;
+    this.initialData = initialData;
+
+    this._rangeListeners = [];
+    this._progressListeners = [];
+    this._progressiveReadListeners = [];
+    this._readyCapability = createPromiseCapability();
+  }
+  PDFDataRangeTransport.prototype =
+      /** @lends PDFDataRangeTransport.prototype */ {
+    addRangeListener:
+        function PDFDataRangeTransport_addRangeListener(listener) {
+      this._rangeListeners.push(listener);
+    },
+
+    addProgressListener:
+        function PDFDataRangeTransport_addProgressListener(listener) {
+      this._progressListeners.push(listener);
+    },
+
+    addProgressiveReadListener:
+        function PDFDataRangeTransport_addProgressiveReadListener(listener) {
+      this._progressiveReadListeners.push(listener);
+    },
+
+    onDataRange: function PDFDataRangeTransport_onDataRange(begin, chunk) {
+      var listeners = this._rangeListeners;
+      for (var i = 0, n = listeners.length; i < n; ++i) {
+        listeners[i](begin, chunk);
+      }
+    },
+
+    onDataProgress: function PDFDataRangeTransport_onDataProgress(loaded) {
+      this._readyCapability.promise.then(function () {
+        var listeners = this._progressListeners;
+        for (var i = 0, n = listeners.length; i < n; ++i) {
+          listeners[i](loaded);
+        }
+      }.bind(this));
+    },
+
+    onDataProgressiveRead:
+        function PDFDataRangeTransport_onDataProgress(chunk) {
+      this._readyCapability.promise.then(function () {
+        var listeners = this._progressiveReadListeners;
+        for (var i = 0, n = listeners.length; i < n; ++i) {
+          listeners[i](chunk);
+        }
+      }.bind(this));
+    },
+
+    transportReady: function PDFDataRangeTransport_transportReady() {
+      this._readyCapability.resolve();
+    },
+
+    requestDataRange:
+        function PDFDataRangeTransport_requestDataRange(begin, end) {
+      throw new Error('Abstract method PDFDataRangeTransport.requestDataRange');
+    },
+
+    abort: function PDFDataRangeTransport_abort() {
+    }
+  };
+  return PDFDataRangeTransport;
+})();
+
+/**
+ * Proxy to a PDFDocument in the worker thread. Also, contains commonly used
+ * properties that can be read synchronously.
+ * @class
+ * @alias PDFDocumentProxy
+ */
+var PDFDocumentProxy = (function PDFDocumentProxyClosure() {
+  function PDFDocumentProxy(pdfInfo, transport, loadingTask) {
+    this.pdfInfo = pdfInfo;
+    this.transport = transport;
+    this.loadingTask = loadingTask;
+  }
+  PDFDocumentProxy.prototype = /** @lends PDFDocumentProxy.prototype */ {
+    /**
+     * @return {number} Total number of pages the PDF contains.
+     */
+    get numPages() {
+      return this.pdfInfo.numPages;
+    },
+    /**
+     * @return {string} A unique ID to identify a PDF. Not guaranteed to be
+     * unique.
+     */
+    get fingerprint() {
+      return this.pdfInfo.fingerprint;
+    },
+    /**
+     * @param {number} pageNumber The page number to get. The first page is 1.
+     * @return {Promise} A promise that is resolved with a {@link PDFPageProxy}
+     * object.
+     */
+    getPage: function PDFDocumentProxy_getPage(pageNumber) {
+      return this.transport.getPage(pageNumber);
+    },
+    /**
+     * @param {{num: number, gen: number}} ref The page reference. Must have
+     *   the 'num' and 'gen' properties.
+     * @return {Promise} A promise that is resolved with the page index that is
+     * associated with the reference.
+     */
+    getPageIndex: function PDFDocumentProxy_getPageIndex(ref) {
+      return this.transport.getPageIndex(ref);
+    },
+    /**
+     * @return {Promise} A promise that is resolved with a lookup table for
+     * mapping named destinations to reference numbers.
+     *
+     * This can be slow for large documents: use getDestination instead
+     */
+    getDestinations: function PDFDocumentProxy_getDestinations() {
+      return this.transport.getDestinations();
+    },
+    /**
+     * @param {string} id The named destination to get.
+     * @return {Promise} A promise that is resolved with all information
+     * of the given named destination.
+     */
+    getDestination: function PDFDocumentProxy_getDestination(id) {
+      return this.transport.getDestination(id);
+    },
+    /**
+     * @return {Promise} A promise that is resolved with:
+     *   an Array containing the pageLabels that correspond to the pageIndexes,
+     *   or `null` when no pageLabels are present in the PDF file.
+     */
+    getPageLabels: function PDFDocumentProxy_getPageLabels() {
+      return this.transport.getPageLabels();
+    },
+    /**
+     * @return {Promise} A promise that is resolved with a lookup table for
+     * mapping named attachments to their content.
+     */
+    getAttachments: function PDFDocumentProxy_getAttachments() {
+      return this.transport.getAttachments();
+    },
+    /**
+     * @return {Promise} A promise that is resolved with an array of all the
+     * JavaScript strings in the name tree.
+     */
+    getJavaScript: function PDFDocumentProxy_getJavaScript() {
+      return this.transport.getJavaScript();
+    },
+    /**
+     * @return {Promise} A promise that is resolved with an {Array} that is a
+     * tree outline (if it has one) of the PDF. The tree is in the format of:
+     * [
+     *  {
+     *   title: string,
+     *   bold: boolean,
+     *   italic: boolean,
+     *   color: rgb Uint8Array,
+     *   dest: dest obj,
+     *   url: string,
+     *   items: array of more items like this
+     *  },
+     *  ...
+     * ].
+     */
+    getOutline: function PDFDocumentProxy_getOutline() {
+      return this.transport.getOutline();
+    },
+    /**
+     * @return {Promise} A promise that is resolved with an {Object} that has
+     * info and metadata properties.  Info is an {Object} filled with anything
+     * available in the information dictionary and similarly metadata is a
+     * {Metadata} object with information from the metadata section of the PDF.
+     */
+    getMetadata: function PDFDocumentProxy_getMetadata() {
+      return this.transport.getMetadata();
+    },
+    /**
+     * @return {Promise} A promise that is resolved with a TypedArray that has
+     * the raw data from the PDF.
+     */
+    getData: function PDFDocumentProxy_getData() {
+      return this.transport.getData();
+    },
+    /**
+     * @return {Promise} A promise that is resolved when the document's data
+     * is loaded. It is resolved with an {Object} that contains the length
+     * property that indicates size of the PDF data in bytes.
+     */
+    getDownloadInfo: function PDFDocumentProxy_getDownloadInfo() {
+      return this.transport.downloadInfoCapability.promise;
+    },
+    /**
+     * @return {Promise} A promise this is resolved with current stats about
+     * document structures (see {@link PDFDocumentStats}).
+     */
+    getStats: function PDFDocumentProxy_getStats() {
+      return this.transport.getStats();
+    },
+    /**
+     * Cleans up resources allocated by the document, e.g. created @font-face.
+     */
+    cleanup: function PDFDocumentProxy_cleanup() {
+      this.transport.startCleanup();
+    },
+    /**
+     * Destroys current document instance and terminates worker.
+     */
+    destroy: function PDFDocumentProxy_destroy() {
+      return this.loadingTask.destroy();
+    }
+  };
+  return PDFDocumentProxy;
+})();
+
+/**
+ * Page getTextContent parameters.
+ *
+ * @typedef {Object} getTextContentParameters
+ * @property {boolean} normalizeWhitespace - replaces all occurrences of
+ *   whitespace with standard spaces (0x20). The default value is `false`.
+ * @property {boolean} disableCombineTextItems - do not attempt to combine
+ *   same line {@link TextItem}'s. The default value is `false`.
+ */
+
+/**
+ * Page text content.
+ *
+ * @typedef {Object} TextContent
+ * @property {array} items - array of {@link TextItem}
+ * @property {Object} styles - {@link TextStyles} objects, indexed by font name.
+ */
+
+/**
+ * Page text content part.
+ *
+ * @typedef {Object} TextItem
+ * @property {string} str - text content.
+ * @property {string} dir - text direction: 'ttb', 'ltr' or 'rtl'.
+ * @property {array} transform - transformation matrix.
+ * @property {number} width - width in device space.
+ * @property {number} height - height in device space.
+ * @property {string} fontName - font name used by pdf.js for converted font.
+ */
+
+/**
+ * Text style.
+ *
+ * @typedef {Object} TextStyle
+ * @property {number} ascent - font ascent.
+ * @property {number} descent - font descent.
+ * @property {boolean} vertical - text is in vertical mode.
+ * @property {string} fontFamily - possible font family
+ */
+
+/**
+ * Page annotation parameters.
+ *
+ * @typedef {Object} GetAnnotationsParameters
+ * @property {string} intent - Determines the annotations that will be fetched,
+ *                    can be either 'display' (viewable annotations) or 'print'
+ *                    (printable annotations).
+ *                    If the parameter is omitted, all annotations are fetched.
+ */
+
+/**
+ * Page render parameters.
+ *
+ * @typedef {Object} RenderParameters
+ * @property {Object} canvasContext - A 2D context of a DOM Canvas object.
+ * @property {PageViewport} viewport - Rendering viewport obtained by
+ *                                calling of PDFPage.getViewport method.
+ * @property {string} intent - Rendering intent, can be 'display' or 'print'
+ *                    (default value is 'display').
+ * @property {boolean} renderInteractiveForms - (optional) Whether or not
+ *                     interactive form elements are rendered in the display
+ *                     layer. If so, we do not render them on canvas as well.
+ * @property {Array}  transform - (optional) Additional transform, applied
+ *                    just before viewport transform.
+ * @property {Object} imageLayer - (optional) An object that has beginLayout,
+ *                    endLayout and appendImage functions.
+ * @property {function} continueCallback - (deprecated) A function that will be
+ *                      called each time the rendering is paused.  To continue
+ *                      rendering call the function that is the first argument
+ *                      to the callback.
+ * @property {Object} canvasFactory - (optional) The factory that will be used
+ *                    when creating canvases. The default value is
+ *                    {DOMCanvasFactory}.
+ */
+
+/**
+ * PDF page operator list.
+ *
+ * @typedef {Object} PDFOperatorList
+ * @property {Array} fnArray - Array containing the operator functions.
+ * @property {Array} argsArray - Array containing the arguments of the
+ *                               functions.
+ */
+
+/**
+ * Proxy to a PDFPage in the worker thread.
+ * @class
+ * @alias PDFPageProxy
+ */
+var PDFPageProxy = (function PDFPageProxyClosure() {
+  function PDFPageProxy(pageIndex, pageInfo, transport) {
+    this.pageIndex = pageIndex;
+    this.pageInfo = pageInfo;
+    this.transport = transport;
+    this.stats = new StatTimer();
+    this.stats.enabled = getDefaultSetting('enableStats');
+    this.commonObjs = transport.commonObjs;
+    this.objs = new PDFObjects();
+    this.cleanupAfterRender = false;
+    this.pendingCleanup = false;
+    this.intentStates = Object.create(null);
+    this.destroyed = false;
+  }
+  PDFPageProxy.prototype = /** @lends PDFPageProxy.prototype */ {
+    /**
+     * @return {number} Page number of the page. First page is 1.
+     */
+    get pageNumber() {
+      return this.pageIndex + 1;
+    },
+    /**
+     * @return {number} The number of degrees the page is rotated clockwise.
+     */
+    get rotate() {
+      return this.pageInfo.rotate;
+    },
+    /**
+     * @return {Object} The reference that points to this page. It has 'num' and
+     * 'gen' properties.
+     */
+    get ref() {
+      return this.pageInfo.ref;
+    },
+    /**
+     * @return {number} The default size of units in 1/72nds of an inch.
+     */
+    get userUnit() {
+      return this.pageInfo.userUnit;
+    },
+    /**
+     * @return {Array} An array of the visible portion of the PDF page in the
+     * user space units - [x1, y1, x2, y2].
+     */
+    get view() {
+      return this.pageInfo.view;
+    },
+    /**
+     * @param {number} scale The desired scale of the viewport.
+     * @param {number} rotate Degrees to rotate the viewport. If omitted this
+     * defaults to the page rotation.
+     * @return {PageViewport} Contains 'width' and 'height' properties
+     * along with transforms required for rendering.
+     */
+    getViewport: function PDFPageProxy_getViewport(scale, rotate) {
+      if (arguments.length < 2) {
+        rotate = this.rotate;
+      }
+      return new PageViewport(this.view, scale, rotate, 0, 0);
+    },
+    /**
+     * @param {GetAnnotationsParameters} params - Annotation parameters.
+     * @return {Promise} A promise that is resolved with an {Array} of the
+     * annotation objects.
+     */
+    getAnnotations: function PDFPageProxy_getAnnotations(params) {
+      var intent = (params && params.intent) || null;
+
+      if (!this.annotationsPromise || this.annotationsIntent !== intent) {
+        this.annotationsPromise = this.transport.getAnnotations(this.pageIndex,
+                                                                intent);
+        this.annotationsIntent = intent;
+      }
+      return this.annotationsPromise;
+    },
+    /**
+     * Begins the process of rendering a page to the desired context.
+     * @param {RenderParameters} params Page render parameters.
+     * @return {RenderTask} An object that contains the promise, which
+     *                      is resolved when the page finishes rendering.
+     */
+    render: function PDFPageProxy_render(params) {
+      var stats = this.stats;
+      stats.time('Overall');
+
+      // If there was a pending destroy cancel it so no cleanup happens during
+      // this call to render.
+      this.pendingCleanup = false;
+
+      var renderingIntent = (params.intent === 'print' ? 'print' : 'display');
+      var renderInteractiveForms = (params.renderInteractiveForms === true ?
+                                    true : /* Default */ false);
+      var canvasFactory = params.canvasFactory || new DOMCanvasFactory();
+
+      if (!this.intentStates[renderingIntent]) {
+        this.intentStates[renderingIntent] = Object.create(null);
+      }
+      var intentState = this.intentStates[renderingIntent];
+
+      // If there's no displayReadyCapability yet, then the operatorList
+      // was never requested before. Make the request and create the promise.
+      if (!intentState.displayReadyCapability) {
+        intentState.receivingOperatorList = true;
+        intentState.displayReadyCapability = createPromiseCapability();
+        intentState.operatorList = {
+          fnArray: [],
+          argsArray: [],
+          lastChunk: false
+        };
+
+        this.stats.time('Page Request');
+        this.transport.messageHandler.send('RenderPageRequest', {
+          pageIndex: this.pageNumber - 1,
+          intent: renderingIntent,
+          renderInteractiveForms: renderInteractiveForms,
+        });
+      }
+
+      var internalRenderTask = new InternalRenderTask(complete, params,
+                                                      this.objs,
+                                                      this.commonObjs,
+                                                      intentState.operatorList,
+                                                      this.pageNumber,
+                                                      canvasFactory);
+      internalRenderTask.useRequestAnimationFrame = renderingIntent !== 'print';
+      if (!intentState.renderTasks) {
+        intentState.renderTasks = [];
+      }
+      intentState.renderTasks.push(internalRenderTask);
+      var renderTask = internalRenderTask.task;
+
+      // Obsolete parameter support
+      if (params.continueCallback) {
+        deprecated('render is used with continueCallback parameter');
+        renderTask.onContinue = params.continueCallback;
+      }
+
+      var self = this;
+      intentState.displayReadyCapability.promise.then(
+        function pageDisplayReadyPromise(transparency) {
+          if (self.pendingCleanup) {
+            complete();
+            return;
+          }
+          stats.time('Rendering');
+          internalRenderTask.initializeGraphics(transparency);
+          internalRenderTask.operatorListChanged();
+        },
+        function pageDisplayReadPromiseError(reason) {
+          complete(reason);
+        }
+      );
+
+      function complete(error) {
+        var i = intentState.renderTasks.indexOf(internalRenderTask);
+        if (i >= 0) {
+          intentState.renderTasks.splice(i, 1);
+        }
+
+        if (self.cleanupAfterRender) {
+          self.pendingCleanup = true;
+        }
+        self._tryCleanup();
+
+        if (error) {
+          internalRenderTask.capability.reject(error);
+        } else {
+          internalRenderTask.capability.resolve();
+        }
+        stats.timeEnd('Rendering');
+        stats.timeEnd('Overall');
+      }
+
+      return renderTask;
+    },
+
+    /**
+     * @return {Promise} A promise resolved with an {@link PDFOperatorList}
+     * object that represents page's operator list.
+     */
+    getOperatorList: function PDFPageProxy_getOperatorList() {
+      function operatorListChanged() {
+        if (intentState.operatorList.lastChunk) {
+          intentState.opListReadCapability.resolve(intentState.operatorList);
+
+          var i = intentState.renderTasks.indexOf(opListTask);
+          if (i >= 0) {
+            intentState.renderTasks.splice(i, 1);
+          }
+        }
+      }
+
+      var renderingIntent = 'oplist';
+      if (!this.intentStates[renderingIntent]) {
+        this.intentStates[renderingIntent] = Object.create(null);
+      }
+      var intentState = this.intentStates[renderingIntent];
+      var opListTask;
+
+      if (!intentState.opListReadCapability) {
+        opListTask = {};
+        opListTask.operatorListChanged = operatorListChanged;
+        intentState.receivingOperatorList = true;
+        intentState.opListReadCapability = createPromiseCapability();
+        intentState.renderTasks = [];
+        intentState.renderTasks.push(opListTask);
+        intentState.operatorList = {
+          fnArray: [],
+          argsArray: [],
+          lastChunk: false
+        };
+
+        this.transport.messageHandler.send('RenderPageRequest', {
+          pageIndex: this.pageIndex,
+          intent: renderingIntent
+        });
+      }
+      return intentState.opListReadCapability.promise;
+    },
+
+    /**
+     * @param {getTextContentParameters} params - getTextContent parameters.
+     * @return {Promise} That is resolved a {@link TextContent}
+     * object that represent the page text content.
+     */
+    getTextContent: function PDFPageProxy_getTextContent(params) {
+      return this.transport.messageHandler.sendWithPromise('GetTextContent', {
+        pageIndex: this.pageNumber - 1,
+        normalizeWhitespace: (params && params.normalizeWhitespace === true ?
+                              true : /* Default */ false),
+        combineTextItems: (params && params.disableCombineTextItems === true ?
+                           false : /* Default */ true),
+      });
+    },
+
+    /**
+     * Destroys page object.
+     */
+    _destroy: function PDFPageProxy_destroy() {
+      this.destroyed = true;
+      this.transport.pageCache[this.pageIndex] = null;
+
+      var waitOn = [];
+      Object.keys(this.intentStates).forEach(function(intent) {
+        if (intent === 'oplist') {
+          // Avoid errors below, since the renderTasks are just stubs.
+          return;
+        }
+        var intentState = this.intentStates[intent];
+        intentState.renderTasks.forEach(function(renderTask) {
+          var renderCompleted = renderTask.capability.promise.
+            catch(function () {}); // ignoring failures
+          waitOn.push(renderCompleted);
+          renderTask.cancel();
+        });
+      }, this);
+      this.objs.clear();
+      this.annotationsPromise = null;
+      this.pendingCleanup = false;
+      return Promise.all(waitOn);
+    },
+
+    /**
+     * Cleans up resources allocated by the page. (deprecated)
+     */
+    destroy: function() {
+      deprecated('page destroy method, use cleanup() instead');
+      this.cleanup();
+    },
+
+    /**
+     * Cleans up resources allocated by the page.
+     */
+    cleanup: function PDFPageProxy_cleanup() {
+      this.pendingCleanup = true;
+      this._tryCleanup();
+    },
+    /**
+     * For internal use only. Attempts to clean up if rendering is in a state
+     * where that's possible.
+     * @ignore
+     */
+    _tryCleanup: function PDFPageProxy_tryCleanup() {
+      if (!this.pendingCleanup ||
+          Object.keys(this.intentStates).some(function(intent) {
+            var intentState = this.intentStates[intent];
+            return (intentState.renderTasks.length !== 0 ||
+                    intentState.receivingOperatorList);
+          }, this)) {
+        return;
+      }
+
+      Object.keys(this.intentStates).forEach(function(intent) {
+        delete this.intentStates[intent];
+      }, this);
+      this.objs.clear();
+      this.annotationsPromise = null;
+      this.pendingCleanup = false;
+    },
+    /**
+     * For internal use only.
+     * @ignore
+     */
+    _startRenderPage: function PDFPageProxy_startRenderPage(transparency,
+                                                            intent) {
+      var intentState = this.intentStates[intent];
+      // TODO Refactor RenderPageRequest to separate rendering
+      // and operator list logic
+      if (intentState.displayReadyCapability) {
+        intentState.displayReadyCapability.resolve(transparency);
+      }
+    },
+    /**
+     * For internal use only.
+     * @ignore
+     */
+    _renderPageChunk: function PDFPageProxy_renderPageChunk(operatorListChunk,
+                                                            intent) {
+      var intentState = this.intentStates[intent];
+      var i, ii;
+      // Add the new chunk to the current operator list.
+      for (i = 0, ii = operatorListChunk.length; i < ii; i++) {
+        intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);
+        intentState.operatorList.argsArray.push(
+          operatorListChunk.argsArray[i]);
+      }
+      intentState.operatorList.lastChunk = operatorListChunk.lastChunk;
+
+      // Notify all the rendering tasks there are more operators to be consumed.
+      for (i = 0; i < intentState.renderTasks.length; i++) {
+        intentState.renderTasks[i].operatorListChanged();
+      }
+
+      if (operatorListChunk.lastChunk) {
+        intentState.receivingOperatorList = false;
+        this._tryCleanup();
+      }
+    }
+  };
+  return PDFPageProxy;
+})();
+
+/**
+ * PDF.js web worker abstraction, it controls instantiation of PDF documents and
+ * WorkerTransport for them.  If creation of a web worker is not possible,
+ * a "fake" worker will be used instead.
+ * @class
+ */
+var PDFWorker = (function PDFWorkerClosure() {
+  var nextFakeWorkerId = 0;
+
+  function getWorkerSrc() {
+    if (typeof workerSrc !== 'undefined') {
+      return workerSrc;
+    }
+    if (getDefaultSetting('workerSrc')) {
+      return getDefaultSetting('workerSrc');
+    }
+    if (typeof PDFJSDev !== 'undefined' &&
+        PDFJSDev.test('PRODUCTION && !(MOZCENTRAL || FIREFOX)') &&
+        pdfjsFilePath) {
+      return pdfjsFilePath.replace(/\.js$/i, '.worker.js');
+    }
+    error('No PDFJS.workerSrc specified');
+  }
+
+  var fakeWorkerFilesLoadedCapability;
+
+  // Loads worker code into main thread.
+  function setupFakeWorkerGlobal() {
+    var WorkerMessageHandler;
+    if (fakeWorkerFilesLoadedCapability) {
+      return fakeWorkerFilesLoadedCapability.promise;
+    }
+    fakeWorkerFilesLoadedCapability = createPromiseCapability();
+    // In the developer build load worker_loader which in turn loads all the
+    // other files and resolves the promise. In production only the
+    // pdf.worker.js file is needed.
+    if (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('PRODUCTION')) {
+      if (typeof amdRequire === 'function') {
+        amdRequire(['pdfjs/core/network', 'pdfjs/core/worker'],
+            function (network, worker) {
+          WorkerMessageHandler = worker.WorkerMessageHandler;
+          fakeWorkerFilesLoadedCapability.resolve(WorkerMessageHandler);
+        });
+      } else if (typeof require === 'function') {
+        var worker = require('../core/worker.js');
+        WorkerMessageHandler = worker.WorkerMessageHandler;
+        fakeWorkerFilesLoadedCapability.resolve(WorkerMessageHandler);
+      } else {
+        throw new Error('AMD or CommonJS must be used to load fake worker.');
+      }
+    } else if (PDFJSDev.test('SINGLE_FILE')) {
+      var pdfjsCoreWorker = require('../core/worker.js');
+      require('../core/network.js');
+      WorkerMessageHandler = pdfjsCoreWorker.WorkerMessageHandler;
+      fakeWorkerFilesLoadedCapability.resolve(WorkerMessageHandler);
+    } else {
+      var loader = fakeWorkerFilesLoader || function (callback) {
+        Util.loadScript(getWorkerSrc(), function () {
+          callback(window.pdfjsDistBuildPdfWorker.WorkerMessageHandler);
+        });
+      };
+      loader(fakeWorkerFilesLoadedCapability.resolve);
+    }
+    return fakeWorkerFilesLoadedCapability.promise;
+  }
+
+  function FakeWorkerPort(defer) {
+    this._listeners = [];
+    this._defer = defer;
+    this._deferred = Promise.resolve(undefined);
+  }
+  FakeWorkerPort.prototype = {
+    postMessage: function (obj, transfers) {
+      function cloneValue(value) {
+        // Trying to perform a structured clone close to the spec, including
+        // transfers.
+        if (typeof value !== 'object' || value === null) {
+          return value;
+        }
+        if (cloned.has(value)) { // already cloned the object
+          return cloned.get(value);
+        }
+        var result;
+        var buffer;
+        if ((buffer = value.buffer) && isArrayBuffer(buffer)) {
+          // We found object with ArrayBuffer (typed array).
+          var transferable = transfers && transfers.indexOf(buffer) >= 0;
+          if (value === buffer) {
+            // Special case when we are faking typed arrays in compatibility.js.
+            result = value;
+          } else if (transferable) {
+            result = new value.constructor(buffer, value.byteOffset,
+                                           value.byteLength);
+          } else {
+            result = new value.constructor(value);
+          }
+          cloned.set(value, result);
+          return result;
+        }
+        result = isArray(value) ? [] : {};
+        cloned.set(value, result); // adding to cache now for cyclic references
+        // Cloning all value and object properties, however ignoring properties
+        // defined via getter.
+        for (var i in value) {
+          var desc, p = value;
+          while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {
+            p = Object.getPrototypeOf(p);
+          }
+          if (typeof desc.value === 'undefined' ||
+              typeof desc.value === 'function') {
+            continue;
+          }
+          result[i] = cloneValue(desc.value);
+        }
+        return result;
+      }
+
+      if (!this._defer) {
+        this._listeners.forEach(function (listener) {
+          listener.call(this, {data: obj});
+        }, this);
+        return;
+      }
+
+      var cloned = new WeakMap();
+      var e = {data: cloneValue(obj)};
+      this._deferred.then(function () {
+        this._listeners.forEach(function (listener) {
+          listener.call(this, e);
+        }, this);
+      }.bind(this));
+    },
+    addEventListener: function (name, listener) {
+      this._listeners.push(listener);
+    },
+    removeEventListener: function (name, listener) {
+      var i = this._listeners.indexOf(listener);
+      this._listeners.splice(i, 1);
+    },
+    terminate: function () {
+      this._listeners = [];
+    }
+  };
+
+  function createCDNWrapper(url) {
+    // We will rely on blob URL's property to specify origin.
+    // We want this function to fail in case if createObjectURL or Blob do not
+    // exist or fail for some reason -- our Worker creation will fail anyway.
+    var wrapper = 'importScripts(\'' + url + '\');';
+    return URL.createObjectURL(new Blob([wrapper]));
+  }
+
+  function PDFWorker(name, port) {
+    this.name = name;
+    this.destroyed = false;
+
+    this._readyCapability = createPromiseCapability();
+    this._port = null;
+    this._webWorker = null;
+    this._messageHandler = null;
+
+    if (port) {
+      this._initializeFromPort(port);
+      return;
+    }
+
+    this._initialize();
+  }
+
+  PDFWorker.prototype =  /** @lends PDFWorker.prototype */ {
+    get promise() {
+      return this._readyCapability.promise;
+    },
+
+    get port() {
+      return this._port;
+    },
+
+    get messageHandler() {
+      return this._messageHandler;
+    },
+
+    _initializeFromPort: function PDFWorker_initializeFromPort(port) {
+      this._port = port;
+      this._messageHandler = new MessageHandler('main', 'worker', port);
+      this._messageHandler.on('ready', function () {
+        // Ignoring 'ready' event -- MessageHandler shall be already initialized
+        // and ready to accept the messages.
+      });
+      this._readyCapability.resolve();
+    },
+
+    _initialize: function PDFWorker_initialize() {
+      // If worker support isn't disabled explicit and the browser has worker
+      // support, create a new web worker and test if it/the browser fulfills
+      // all requirements to run parts of pdf.js in a web worker.
+      // Right now, the requirement is, that an Uint8Array is still an
+      // Uint8Array as it arrives on the worker. (Chrome added this with v.15.)
+      if ((typeof PDFJSDev === 'undefined' || !PDFJSDev.test('SINGLE_FILE')) &&
+          !isWorkerDisabled && !getDefaultSetting('disableWorker') &&
+          typeof Worker !== 'undefined') {
+        var workerSrc = getWorkerSrc();
+
+        try {
+          // Wraps workerSrc path into blob URL, if the former does not belong
+          // to the same origin.
+          if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC') &&
+              !isSameOrigin(window.location.href, workerSrc)) {
+            workerSrc = createCDNWrapper(
+              new URL(workerSrc, window.location).href);
+          }
+
+          // Some versions of FF can't create a worker on localhost, see:
+          // https://bugzilla.mozilla.org/show_bug.cgi?id=683280
+          var worker = new Worker(workerSrc);
+          var messageHandler = new MessageHandler('main', 'worker', worker);
+          var terminateEarly = function() {
+            worker.removeEventListener('error', onWorkerError);
+            messageHandler.destroy();
+            worker.terminate();
+            if (this.destroyed) {
+              this._readyCapability.reject(new Error('Worker was destroyed'));
+            } else {
+              // Fall back to fake worker if the termination is caused by an
+              // error (e.g. NetworkError / SecurityError).
+              this._setupFakeWorker();
+            }
+          }.bind(this);
+
+          var onWorkerError = function(event) {
+            if (!this._webWorker) {
+              // Worker failed to initialize due to an error. Clean up and fall
+              // back to the fake worker.
+              terminateEarly();
+            }
+          }.bind(this);
+          worker.addEventListener('error', onWorkerError);
+
+          messageHandler.on('test', function PDFWorker_test(data) {
+            worker.removeEventListener('error', onWorkerError);
+            if (this.destroyed) {
+              terminateEarly();
+              return; // worker was destroyed
+            }
+            var supportTypedArray = data && data.supportTypedArray;
+            if (supportTypedArray) {
+              this._messageHandler = messageHandler;
+              this._port = worker;
+              this._webWorker = worker;
+              if (!data.supportTransfers) {
+                isPostMessageTransfersDisabled = true;
+              }
+              this._readyCapability.resolve();
+              // Send global setting, e.g. verbosity level.
+              messageHandler.send('configure', {
+                verbosity: getVerbosityLevel()
+              });
+            } else {
+              this._setupFakeWorker();
+              messageHandler.destroy();
+              worker.terminate();
+            }
+          }.bind(this));
+
+          messageHandler.on('console_log', function (data) {
+            console.log.apply(console, data);
+          });
+          messageHandler.on('console_error', function (data) {
+            console.error.apply(console, data);
+          });
+
+          messageHandler.on('ready', function (data) {
+            worker.removeEventListener('error', onWorkerError);
+            if (this.destroyed) {
+              terminateEarly();
+              return; // worker was destroyed
+            }
+            try {
+              sendTest();
+            } catch (e) {
+              // We need fallback to a faked worker.
+              this._setupFakeWorker();
+            }
+          }.bind(this));
+
+          var sendTest = function () {
+            var postMessageTransfers =
+              getDefaultSetting('postMessageTransfers') &&
+              !isPostMessageTransfersDisabled;
+            var testObj = new Uint8Array([postMessageTransfers ? 255 : 0]);
+            // Some versions of Opera throw a DATA_CLONE_ERR on serializing the
+            // typed array. Also, checking if we can use transfers.
+            try {
+              messageHandler.send('test', testObj, [testObj.buffer]);
+            } catch (ex) {
+              info('Cannot use postMessage transfers');
+              testObj[0] = 0;
+              messageHandler.send('test', testObj);
+            }
+          };
+
+          // It might take time for worker to initialize (especially when AMD
+          // loader is used). We will try to send test immediately, and then
+          // when 'ready' message will arrive. The worker shall process only
+          // first received 'test'.
+          sendTest();
+          return;
+        } catch (e) {
+          info('The worker has been disabled.');
+        }
+      }
+      // Either workers are disabled, not supported or have thrown an exception.
+      // Thus, we fallback to a faked worker.
+      this._setupFakeWorker();
+    },
+
+    _setupFakeWorker: function PDFWorker_setupFakeWorker() {
+      if (!isWorkerDisabled && !getDefaultSetting('disableWorker')) {
+        warn('Setting up fake worker.');
+        isWorkerDisabled = true;
+      }
+
+      setupFakeWorkerGlobal().then(function (WorkerMessageHandler) {
+        if (this.destroyed) {
+          this._readyCapability.reject(new Error('Worker was destroyed'));
+          return;
+        }
+
+        // We cannot turn on proper fake port simulation (this includes
+        // structured cloning) when typed arrays are not supported. Relying
+        // on a chance that messages will be sent in proper order.
+        var isTypedArraysPresent = Uint8Array !== Float32Array;
+        var port = new FakeWorkerPort(isTypedArraysPresent);
+        this._port = port;
+
+        // All fake workers use the same port, making id unique.
+        var id = 'fake' + (nextFakeWorkerId++);
+
+        // If the main thread is our worker, setup the handling for the
+        // messages -- the main thread sends to it self.
+        var workerHandler = new MessageHandler(id + '_worker', id, port);
+        WorkerMessageHandler.setup(workerHandler, port);
+
+        var messageHandler = new MessageHandler(id, id + '_worker', port);
+        this._messageHandler = messageHandler;
+        this._readyCapability.resolve();
+      }.bind(this));
+    },
+
+    /**
+     * Destroys the worker instance.
+     */
+    destroy: function PDFWorker_destroy() {
+      this.destroyed = true;
+      if (this._webWorker) {
+        // We need to terminate only web worker created resource.
+        this._webWorker.terminate();
+        this._webWorker = null;
+      }
+      this._port = null;
+      if (this._messageHandler) {
+        this._messageHandler.destroy();
+        this._messageHandler = null;
+      }
+    }
+  };
+
+  return PDFWorker;
+})();
+
+/**
+ * For internal use only.
+ * @ignore
+ */
+var WorkerTransport = (function WorkerTransportClosure() {
+  function WorkerTransport(messageHandler, loadingTask, pdfDataRangeTransport,
+                           CMapReaderFactory) {
+    this.messageHandler = messageHandler;
+    this.loadingTask = loadingTask;
+    this.pdfDataRangeTransport = pdfDataRangeTransport;
+    this.commonObjs = new PDFObjects();
+    this.fontLoader = new FontLoader(loadingTask.docId);
+    this.CMapReaderFactory = new CMapReaderFactory({
+      baseUrl: getDefaultSetting('cMapUrl'),
+      isCompressed: getDefaultSetting('cMapPacked'),
+    });
+
+    this.destroyed = false;
+    this.destroyCapability = null;
+    this._passwordCapability = null;
+
+    this.pageCache = [];
+    this.pagePromises = [];
+    this.downloadInfoCapability = createPromiseCapability();
+
+    this.setupMessageHandler();
+  }
+  WorkerTransport.prototype = {
+    destroy: function WorkerTransport_destroy() {
+      if (this.destroyCapability) {
+        return this.destroyCapability.promise;
+      }
+
+      this.destroyed = true;
+      this.destroyCapability = createPromiseCapability();
+
+      if (this._passwordCapability) {
+        this._passwordCapability.reject(
+          new Error('Worker was destroyed during onPassword callback'));
+      }
+
+      var waitOn = [];
+      // We need to wait for all renderings to be completed, e.g.
+      // timeout/rAF can take a long time.
+      this.pageCache.forEach(function (page) {
+        if (page) {
+          waitOn.push(page._destroy());
+        }
+      });
+      this.pageCache = [];
+      this.pagePromises = [];
+      var self = this;
+      // We also need to wait for the worker to finish its long running tasks.
+      var terminated = this.messageHandler.sendWithPromise('Terminate', null);
+      waitOn.push(terminated);
+      Promise.all(waitOn).then(function () {
+        self.fontLoader.clear();
+        if (self.pdfDataRangeTransport) {
+          self.pdfDataRangeTransport.abort();
+          self.pdfDataRangeTransport = null;
+        }
+        if (self.messageHandler) {
+          self.messageHandler.destroy();
+          self.messageHandler = null;
+        }
+        self.destroyCapability.resolve();
+      }, this.destroyCapability.reject);
+      return this.destroyCapability.promise;
+    },
+
+    setupMessageHandler: function WorkerTransport_setupMessageHandler() {
+      var messageHandler = this.messageHandler;
+      var loadingTask = this.loadingTask;
+
+      var pdfDataRangeTransport = this.pdfDataRangeTransport;
+      if (pdfDataRangeTransport) {
+        pdfDataRangeTransport.addRangeListener(function(begin, chunk) {
+          messageHandler.send('OnDataRange', {
+            begin: begin,
+            chunk: chunk
+          });
+        });
+
+        pdfDataRangeTransport.addProgressListener(function(loaded) {
+          messageHandler.send('OnDataProgress', {
+            loaded: loaded
+          });
+        });
+
+        pdfDataRangeTransport.addProgressiveReadListener(function(chunk) {
+          messageHandler.send('OnDataRange', {
+            chunk: chunk
+          });
+        });
+
+        messageHandler.on('RequestDataRange',
+          function transportDataRange(data) {
+            pdfDataRangeTransport.requestDataRange(data.begin, data.end);
+          }, this);
+      }
+
+      messageHandler.on('GetDoc', function transportDoc(data) {
+        var pdfInfo = data.pdfInfo;
+        this.numPages = data.pdfInfo.numPages;
+        var loadingTask = this.loadingTask;
+        var pdfDocument = new PDFDocumentProxy(pdfInfo, this, loadingTask);
+        this.pdfDocument = pdfDocument;
+        loadingTask._capability.resolve(pdfDocument);
+      }, this);
+
+      messageHandler.on('PasswordRequest',
+                        function transportPasswordRequest(exception) {
+        this._passwordCapability = createPromiseCapability();
+
+        if (loadingTask.onPassword) {
+          var updatePassword = function (password) {
+            this._passwordCapability.resolve({
+              password: password,
+            });
+          }.bind(this);
+
+          loadingTask.onPassword(updatePassword, exception.code);
+        } else {
+          this._passwordCapability.reject(
+            new PasswordException(exception.message, exception.code));
+        }
+        return this._passwordCapability.promise;
+      }, this);
+
+      messageHandler.on('PasswordException',
+                        function transportPasswordException(exception) {
+        loadingTask._capability.reject(
+          new PasswordException(exception.message, exception.code));
+      }, this);
+
+      messageHandler.on('InvalidPDF', function transportInvalidPDF(exception) {
+        this.loadingTask._capability.reject(
+          new InvalidPDFException(exception.message));
+      }, this);
+
+      messageHandler.on('MissingPDF', function transportMissingPDF(exception) {
+        this.loadingTask._capability.reject(
+          new MissingPDFException(exception.message));
+      }, this);
+
+      messageHandler.on('UnexpectedResponse',
+                        function transportUnexpectedResponse(exception) {
+        this.loadingTask._capability.reject(
+          new UnexpectedResponseException(exception.message, exception.status));
+      }, this);
+
+      messageHandler.on('UnknownError',
+                        function transportUnknownError(exception) {
+        this.loadingTask._capability.reject(
+          new UnknownErrorException(exception.message, exception.details));
+      }, this);
+
+      messageHandler.on('DataLoaded', function transportPage(data) {
+        this.downloadInfoCapability.resolve(data);
+      }, this);
+
+      messageHandler.on('PDFManagerReady', function transportPage(data) {
+        if (this.pdfDataRangeTransport) {
+          this.pdfDataRangeTransport.transportReady();
+        }
+      }, this);
+
+      messageHandler.on('StartRenderPage', function transportRender(data) {
+        if (this.destroyed) {
+          return; // Ignore any pending requests if the worker was terminated.
+        }
+        var page = this.pageCache[data.pageIndex];
+
+        page.stats.timeEnd('Page Request');
+        page._startRenderPage(data.transparency, data.intent);
+      }, this);
+
+      messageHandler.on('RenderPageChunk', function transportRender(data) {
+        if (this.destroyed) {
+          return; // Ignore any pending requests if the worker was terminated.
+        }
+        var page = this.pageCache[data.pageIndex];
+
+        page._renderPageChunk(data.operatorList, data.intent);
+      }, this);
+
+      messageHandler.on('commonobj', function transportObj(data) {
+        if (this.destroyed) {
+          return; // Ignore any pending requests if the worker was terminated.
+        }
+
+        var id = data[0];
+        var type = data[1];
+        if (this.commonObjs.hasData(id)) {
+          return;
+        }
+
+        switch (type) {
+          case 'Font':
+            var exportedData = data[2];
+
+            if ('error' in exportedData) {
+              var exportedError = exportedData.error;
+              warn('Error during font loading: ' + exportedError);
+              this.commonObjs.resolve(id, exportedError);
+              break;
+            }
+            var fontRegistry = null;
+            if (getDefaultSetting('pdfBug') && globalScope.FontInspector &&
+                globalScope['FontInspector'].enabled) {
+              fontRegistry = {
+                registerFont: function (font, url) {
+                  globalScope['FontInspector'].fontAdded(font, url);
+                }
+              };
+            }
+            var font = new FontFaceObject(exportedData, {
+              isEvalSuported: getDefaultSetting('isEvalSupported'),
+              disableFontFace: getDefaultSetting('disableFontFace'),
+              fontRegistry: fontRegistry
+            });
+
+            this.fontLoader.bind(
+              [font],
+              function fontReady(fontObjs) {
+                this.commonObjs.resolve(id, font);
+              }.bind(this)
+            );
+            break;
+          case 'FontPath':
+            this.commonObjs.resolve(id, data[2]);
+            break;
+          default:
+            error('Got unknown common object type ' + type);
+        }
+      }, this);
+
+      messageHandler.on('obj', function transportObj(data) {
+        if (this.destroyed) {
+          return; // Ignore any pending requests if the worker was terminated.
+        }
+
+        var id = data[0];
+        var pageIndex = data[1];
+        var type = data[2];
+        var pageProxy = this.pageCache[pageIndex];
+        var imageData;
+        if (pageProxy.objs.hasData(id)) {
+          return;
+        }
+
+        switch (type) {
+          case 'JpegStream':
+            imageData = data[3];
+            loadJpegStream(id, imageData, pageProxy.objs);
+            break;
+          case 'Image':
+            imageData = data[3];
+            pageProxy.objs.resolve(id, imageData);
+
+            // heuristics that will allow not to store large data
+            var MAX_IMAGE_SIZE_TO_STORE = 8000000;
+            if (imageData && 'data' in imageData &&
+                imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {
+              pageProxy.cleanupAfterRender = true;
+            }
+            break;
+          default:
+            error('Got unknown object type ' + type);
+        }
+      }, this);
+
+      messageHandler.on('DocProgress', function transportDocProgress(data) {
+        if (this.destroyed) {
+          return; // Ignore any pending requests if the worker was terminated.
+        }
+
+        var loadingTask = this.loadingTask;
+        if (loadingTask.onProgress) {
+          loadingTask.onProgress({
+            loaded: data.loaded,
+            total: data.total
+          });
+        }
+      }, this);
+
+      messageHandler.on('PageError', function transportError(data) {
+        if (this.destroyed) {
+          return; // Ignore any pending requests if the worker was terminated.
+        }
+
+        var page = this.pageCache[data.pageNum - 1];
+        var intentState = page.intentStates[data.intent];
+
+        if (intentState.displayReadyCapability) {
+          intentState.displayReadyCapability.reject(data.error);
+        } else {
+          error(data.error);
+        }
+
+        if (intentState.operatorList) {
+          // Mark operator list as complete.
+          intentState.operatorList.lastChunk = true;
+          for (var i = 0; i < intentState.renderTasks.length; i++) {
+            intentState.renderTasks[i].operatorListChanged();
+          }
+        }
+      }, this);
+
+      messageHandler.on('UnsupportedFeature',
+          function transportUnsupportedFeature(data) {
+        if (this.destroyed) {
+          return; // Ignore any pending requests if the worker was terminated.
+        }
+        var featureId = data.featureId;
+        var loadingTask = this.loadingTask;
+        if (loadingTask.onUnsupportedFeature) {
+          loadingTask.onUnsupportedFeature(featureId);
+        }
+        _UnsupportedManager.notify(featureId);
+      }, this);
+
+      messageHandler.on('JpegDecode', function(data) {
+        if (this.destroyed) {
+          return Promise.reject(new Error('Worker was destroyed'));
+        }
+
+        if (typeof document === 'undefined') {
+          // Make sure that this code is not executing in node.js, as
+          // it's using DOM image, and there is no library to support that.
+          return Promise.reject(new Error('"document" is not defined.'));
+        }
+
+        var imageUrl = data[0];
+        var components = data[1];
+        if (components !== 3 && components !== 1) {
+          return Promise.reject(
+            new Error('Only 3 components or 1 component can be returned'));
+        }
+
+        return new Promise(function (resolve, reject) {
+          var img = new Image();
+          img.onload = function () {
+            var width = img.width;
+            var height = img.height;
+            var size = width * height;
+            var rgbaLength = size * 4;
+            var buf = new Uint8Array(size * components);
+            var tmpCanvas = document.createElement('canvas');
+            tmpCanvas.width = width;
+            tmpCanvas.height = height;
+            var tmpCtx = tmpCanvas.getContext('2d');
+            tmpCtx.drawImage(img, 0, 0);
+            var data = tmpCtx.getImageData(0, 0, width, height).data;
+            var i, j;
+
+            if (components === 3) {
+              for (i = 0, j = 0; i < rgbaLength; i += 4, j += 3) {
+                buf[j] = data[i];
+                buf[j + 1] = data[i + 1];
+                buf[j + 2] = data[i + 2];
+              }
+            } else if (components === 1) {
+              for (i = 0, j = 0; i < rgbaLength; i += 4, j++) {
+                buf[j] = data[i];
+              }
+            }
+            resolve({ data: buf, width: width, height: height});
+          };
+          img.onerror = function () {
+            reject(new Error('JpegDecode failed to load image'));
+          };
+          img.src = imageUrl;
+        });
+      }, this);
+
+      messageHandler.on('FetchBuiltInCMap', function (data) {
+        if (this.destroyed) {
+          return Promise.reject(new Error('Worker was destroyed'));
+        }
+        return this.CMapReaderFactory.fetch({
+          name: data.name,
+        });
+      }, this);
+    },
+
+    getData: function WorkerTransport_getData() {
+      return this.messageHandler.sendWithPromise('GetData', null);
+    },
+
+    getPage: function WorkerTransport_getPage(pageNumber, capability) {
+      if (!isInt(pageNumber) || pageNumber <= 0 || pageNumber > this.numPages) {
+        return Promise.reject(new Error('Invalid page request'));
+      }
+
+      var pageIndex = pageNumber - 1;
+      if (pageIndex in this.pagePromises) {
+        return this.pagePromises[pageIndex];
+      }
+      var promise = this.messageHandler.sendWithPromise('GetPage', {
+        pageIndex: pageIndex
+      }).then(function (pageInfo) {
+        if (this.destroyed) {
+          throw new Error('Transport destroyed');
+        }
+        var page = new PDFPageProxy(pageIndex, pageInfo, this);
+        this.pageCache[pageIndex] = page;
+        return page;
+      }.bind(this));
+      this.pagePromises[pageIndex] = promise;
+      return promise;
+    },
+
+    getPageIndex: function WorkerTransport_getPageIndexByRef(ref) {
+      return this.messageHandler.sendWithPromise('GetPageIndex', {
+        ref: ref,
+      }).catch(function (reason) {
+        return Promise.reject(new Error(reason));
+      });
+    },
+
+    getAnnotations: function WorkerTransport_getAnnotations(pageIndex, intent) {
+      return this.messageHandler.sendWithPromise('GetAnnotations', {
+        pageIndex: pageIndex,
+        intent: intent,
+      });
+    },
+
+    getDestinations: function WorkerTransport_getDestinations() {
+      return this.messageHandler.sendWithPromise('GetDestinations', null);
+    },
+
+    getDestination: function WorkerTransport_getDestination(id) {
+      return this.messageHandler.sendWithPromise('GetDestination', { id: id });
+    },
+
+    getPageLabels: function WorkerTransport_getPageLabels() {
+      return this.messageHandler.sendWithPromise('GetPageLabels', null);
+    },
+
+    getAttachments: function WorkerTransport_getAttachments() {
+      return this.messageHandler.sendWithPromise('GetAttachments', null);
+    },
+
+    getJavaScript: function WorkerTransport_getJavaScript() {
+      return this.messageHandler.sendWithPromise('GetJavaScript', null);
+    },
+
+    getOutline: function WorkerTransport_getOutline() {
+      return this.messageHandler.sendWithPromise('GetOutline', null);
+    },
+
+    getMetadata: function WorkerTransport_getMetadata() {
+      return this.messageHandler.sendWithPromise('GetMetadata', null).
+        then(function transportMetadata(results) {
+        return {
+          info: results[0],
+          metadata: (results[1] ? new Metadata(results[1]) : null)
+        };
+      });
+    },
+
+    getStats: function WorkerTransport_getStats() {
+      return this.messageHandler.sendWithPromise('GetStats', null);
+    },
+
+    startCleanup: function WorkerTransport_startCleanup() {
+      this.messageHandler.sendWithPromise('Cleanup', null).
+        then(function endCleanup() {
+        for (var i = 0, ii = this.pageCache.length; i < ii; i++) {
+          var page = this.pageCache[i];
+          if (page) {
+            page.cleanup();
+          }
+        }
+        this.commonObjs.clear();
+        this.fontLoader.clear();
+      }.bind(this));
+    }
+  };
+  return WorkerTransport;
+
+})();
+
+/**
+ * A PDF document and page is built of many objects. E.g. there are objects
+ * for fonts, images, rendering code and such. These objects might get processed
+ * inside of a worker. The `PDFObjects` implements some basic functions to
+ * manage these objects.
+ * @ignore
+ */
+var PDFObjects = (function PDFObjectsClosure() {
+  function PDFObjects() {
+    this.objs = Object.create(null);
+  }
+
+  PDFObjects.prototype = {
+    /**
+     * Internal function.
+     * Ensures there is an object defined for `objId`.
+     */
+    ensureObj: function PDFObjects_ensureObj(objId) {
+      if (this.objs[objId]) {
+        return this.objs[objId];
+      }
+
+      var obj = {
+        capability: createPromiseCapability(),
+        data: null,
+        resolved: false
+      };
+      this.objs[objId] = obj;
+
+      return obj;
+    },
+
+    /**
+     * If called *without* callback, this returns the data of `objId` but the
+     * object needs to be resolved. If it isn't, this function throws.
+     *
+     * If called *with* a callback, the callback is called with the data of the
+     * object once the object is resolved. That means, if you call this
+     * function and the object is already resolved, the callback gets called
+     * right away.
+     */
+    get: function PDFObjects_get(objId, callback) {
+      // If there is a callback, then the get can be async and the object is
+      // not required to be resolved right now
+      if (callback) {
+        this.ensureObj(objId).capability.promise.then(callback);
+        return null;
+      }
+
+      // If there isn't a callback, the user expects to get the resolved data
+      // directly.
+      var obj = this.objs[objId];
+
+      // If there isn't an object yet or the object isn't resolved, then the
+      // data isn't ready yet!
+      if (!obj || !obj.resolved) {
+        error('Requesting object that isn\'t resolved yet ' + objId);
+      }
+
+      return obj.data;
+    },
+
+    /**
+     * Resolves the object `objId` with optional `data`.
+     */
+    resolve: function PDFObjects_resolve(objId, data) {
+      var obj = this.ensureObj(objId);
+
+      obj.resolved = true;
+      obj.data = data;
+      obj.capability.resolve(data);
+    },
+
+    isResolved: function PDFObjects_isResolved(objId) {
+      var objs = this.objs;
+
+      if (!objs[objId]) {
+        return false;
+      }
+      return objs[objId].resolved;
+    },
+
+    hasData: function PDFObjects_hasData(objId) {
+      return this.isResolved(objId);
+    },
+
+    /**
+     * Returns the data of `objId` if object exists, null otherwise.
+     */
+    getData: function PDFObjects_getData(objId) {
+      var objs = this.objs;
+      if (!objs[objId] || !objs[objId].resolved) {
+        return null;
+      }
+      return objs[objId].data;
+    },
+
+    clear: function PDFObjects_clear() {
+      this.objs = Object.create(null);
+    }
+  };
+  return PDFObjects;
+})();
+
+/**
+ * Allows controlling of the rendering tasks.
+ * @class
+ * @alias RenderTask
+ */
+var RenderTask = (function RenderTaskClosure() {
+  function RenderTask(internalRenderTask) {
+    this._internalRenderTask = internalRenderTask;
+
+    /**
+     * Callback for incremental rendering -- a function that will be called
+     * each time the rendering is paused.  To continue rendering call the
+     * function that is the first argument to the callback.
+     * @type {function}
+     */
+    this.onContinue = null;
+  }
+
+  RenderTask.prototype = /** @lends RenderTask.prototype */ {
+    /**
+     * Promise for rendering task completion.
+     * @return {Promise}
+     */
+    get promise() {
+      return this._internalRenderTask.capability.promise;
+    },
+
+    /**
+     * Cancels the rendering task. If the task is currently rendering it will
+     * not be cancelled until graphics pauses with a timeout. The promise that
+     * this object extends will resolved when cancelled.
+     */
+    cancel: function RenderTask_cancel() {
+      this._internalRenderTask.cancel();
+    },
+
+    /**
+     * Registers callbacks to indicate the rendering task completion.
+     *
+     * @param {function} onFulfilled The callback for the rendering completion.
+     * @param {function} onRejected The callback for the rendering failure.
+     * @return {Promise} A promise that is resolved after the onFulfilled or
+     *                   onRejected callback.
+     */
+    then: function RenderTask_then(onFulfilled, onRejected) {
+      return this.promise.then.apply(this.promise, arguments);
+    }
+  };
+
+  return RenderTask;
+})();
+
+/**
+ * For internal use only.
+ * @ignore
+ */
+var InternalRenderTask = (function InternalRenderTaskClosure() {
+
+  function InternalRenderTask(callback, params, objs, commonObjs, operatorList,
+                              pageNumber, canvasFactory) {
+    this.callback = callback;
+    this.params = params;
+    this.objs = objs;
+    this.commonObjs = commonObjs;
+    this.operatorListIdx = null;
+    this.operatorList = operatorList;
+    this.pageNumber = pageNumber;
+    this.canvasFactory = canvasFactory;
+    this.running = false;
+    this.graphicsReadyCallback = null;
+    this.graphicsReady = false;
+    this.useRequestAnimationFrame = false;
+    this.cancelled = false;
+    this.capability = createPromiseCapability();
+    this.task = new RenderTask(this);
+    // caching this-bound methods
+    this._continueBound = this._continue.bind(this);
+    this._scheduleNextBound = this._scheduleNext.bind(this);
+    this._nextBound = this._next.bind(this);
+  }
+
+  InternalRenderTask.prototype = {
+
+    initializeGraphics:
+        function InternalRenderTask_initializeGraphics(transparency) {
+
+      if (this.cancelled) {
+        return;
+      }
+      if (getDefaultSetting('pdfBug') && globalScope.StepperManager &&
+          globalScope.StepperManager.enabled) {
+        this.stepper = globalScope.StepperManager.create(this.pageNumber - 1);
+        this.stepper.init(this.operatorList);
+        this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();
+      }
+
+      var params = this.params;
+      this.gfx = new CanvasGraphics(params.canvasContext, this.commonObjs,
+                                    this.objs, this.canvasFactory,
+                                    params.imageLayer);
+
+      this.gfx.beginDrawing(params.transform, params.viewport, transparency);
+      this.operatorListIdx = 0;
+      this.graphicsReady = true;
+      if (this.graphicsReadyCallback) {
+        this.graphicsReadyCallback();
+      }
+    },
+
+    cancel: function InternalRenderTask_cancel() {
+      this.running = false;
+      this.cancelled = true;
+      this.callback('cancelled');
+    },
+
+    operatorListChanged: function InternalRenderTask_operatorListChanged() {
+      if (!this.graphicsReady) {
+        if (!this.graphicsReadyCallback) {
+          this.graphicsReadyCallback = this._continueBound;
+        }
+        return;
+      }
+
+      if (this.stepper) {
+        this.stepper.updateOperatorList(this.operatorList);
+      }
+
+      if (this.running) {
+        return;
+      }
+      this._continue();
+    },
+
+    _continue: function InternalRenderTask__continue() {
+      this.running = true;
+      if (this.cancelled) {
+        return;
+      }
+      if (this.task.onContinue) {
+        this.task.onContinue(this._scheduleNextBound);
+      } else {
+        this._scheduleNext();
+      }
+    },
+
+    _scheduleNext: function InternalRenderTask__scheduleNext() {
+      if (this.useRequestAnimationFrame && typeof window !== 'undefined') {
+        window.requestAnimationFrame(this._nextBound);
+      } else {
+        Promise.resolve(undefined).then(this._nextBound);
+      }
+    },
+
+    _next: function InternalRenderTask__next() {
+      if (this.cancelled) {
+        return;
+      }
+      this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList,
+                                        this.operatorListIdx,
+                                        this._continueBound,
+                                        this.stepper);
+      if (this.operatorListIdx === this.operatorList.argsArray.length) {
+        this.running = false;
+        if (this.operatorList.lastChunk) {
+          this.gfx.endDrawing();
+          this.callback();
+        }
+      }
+    }
+
+  };
+
+  return InternalRenderTask;
+})();
+
+/**
+ * (Deprecated) Global observer of unsupported feature usages. Use
+ * onUnsupportedFeature callback of the {PDFDocumentLoadingTask} instance.
+ */
+var _UnsupportedManager = (function UnsupportedManagerClosure() {
+  var listeners = [];
+  return {
+    listen: function (cb) {
+      deprecated('Global UnsupportedManager.listen is used: ' +
+                 ' use PDFDocumentLoadingTask.onUnsupportedFeature instead');
+      listeners.push(cb);
+    },
+    notify: function (featureId) {
+      for (var i = 0, ii = listeners.length; i < ii; i++) {
+        listeners[i](featureId);
+      }
+    }
+  };
+})();
+
+if (typeof PDFJSDev !== 'undefined') {
+  exports.version = PDFJSDev.eval('BUNDLE_VERSION');
+  exports.build = PDFJSDev.eval('BUNDLE_BUILD');
+}
+
+exports.getDocument = getDocument;
+exports.PDFDataRangeTransport = PDFDataRangeTransport;
+exports.PDFWorker = PDFWorker;
+exports.PDFDocumentProxy = PDFDocumentProxy;
+exports.PDFPageProxy = PDFPageProxy;
+exports._UnsupportedManager = _UnsupportedManager;
+}));
+
+
+
+ + + + +
+ + + +
+ + + + + + + diff --git a/api/draft/display_global.js.html b/api/draft/display_global.js.html new file mode 100644 index 00000000..c255abf8 --- /dev/null +++ b/api/draft/display_global.js.html @@ -0,0 +1,369 @@ + + + + + JSDoc: Source: display/global.js + + + + + + + + + + +
+ +

Source: display/global.js

+ + + + + + +
+
+
/* Copyright 2015 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+'use strict';
+
+(function (root, factory) {
+  if (typeof define === 'function' && define.amd) {
+    define('pdfjs/display/global', ['exports', 'pdfjs/shared/util',
+      'pdfjs/display/dom_utils', 'pdfjs/display/api',
+      'pdfjs/display/annotation_layer', 'pdfjs/display/text_layer',
+      'pdfjs/display/metadata', 'pdfjs/display/svg'], factory);
+  } else if (typeof exports !== 'undefined') {
+    factory(exports, require('../shared/util.js'), require('./dom_utils.js'),
+      require('./api.js'), require('./annotation_layer.js'),
+      require('./text_layer.js'), require('./metadata.js'),
+      require('./svg.js'));
+  } else {
+    factory((root.pdfjsDisplayGlobal = {}), root.pdfjsSharedUtil,
+      root.pdfjsDisplayDOMUtils, root.pdfjsDisplayAPI,
+      root.pdfjsDisplayAnnotationLayer, root.pdfjsDisplayTextLayer,
+      root.pdfjsDisplayMetadata, root.pdfjsDisplaySVG);
+  }
+}(this, function (exports, sharedUtil, displayDOMUtils, displayAPI,
+                  displayAnnotationLayer, displayTextLayer, displayMetadata,
+                  displaySVG) {
+
+  var globalScope = sharedUtil.globalScope;
+  var deprecated = sharedUtil.deprecated;
+  var warn = sharedUtil.warn;
+  var LinkTarget = displayDOMUtils.LinkTarget;
+  var DEFAULT_LINK_REL = displayDOMUtils.DEFAULT_LINK_REL;
+
+  var isWorker = (typeof window === 'undefined');
+
+  // The global PDFJS object is now deprecated and will not be supported in
+  // the future. The members below are maintained for backward  compatibility
+  // and shall not be extended or modified. If the global.js is included as
+  // a module, we will create a global PDFJS object instance or use existing.
+  if (!globalScope.PDFJS) {
+    globalScope.PDFJS = {};
+  }
+  var PDFJS = globalScope.PDFJS;
+
+  if (typeof PDFJSDev !== 'undefined') {
+    PDFJS.version = PDFJSDev.eval('BUNDLE_VERSION');
+    PDFJS.build = PDFJSDev.eval('BUNDLE_BUILD');
+  }
+
+  PDFJS.pdfBug = false;
+
+  if (PDFJS.verbosity !== undefined) {
+    sharedUtil.setVerbosityLevel(PDFJS.verbosity);
+  }
+  delete PDFJS.verbosity;
+  Object.defineProperty(PDFJS, 'verbosity', {
+    get: function () {
+      return sharedUtil.getVerbosityLevel();
+    },
+    set: function (level) {
+      sharedUtil.setVerbosityLevel(level);
+    },
+    enumerable: true,
+    configurable: true
+  });
+
+  PDFJS.VERBOSITY_LEVELS = sharedUtil.VERBOSITY_LEVELS;
+  PDFJS.OPS = sharedUtil.OPS;
+  PDFJS.UNSUPPORTED_FEATURES = sharedUtil.UNSUPPORTED_FEATURES;
+  PDFJS.isValidUrl = displayDOMUtils.isValidUrl;
+  PDFJS.shadow = sharedUtil.shadow;
+  PDFJS.createBlob = sharedUtil.createBlob;
+  PDFJS.createObjectURL = function PDFJS_createObjectURL(data, contentType) {
+    return sharedUtil.createObjectURL(data, contentType,
+                                      PDFJS.disableCreateObjectURL);
+  };
+  Object.defineProperty(PDFJS, 'isLittleEndian', {
+    configurable: true,
+    get: function PDFJS_isLittleEndian() {
+      var value = sharedUtil.isLittleEndian();
+      return sharedUtil.shadow(PDFJS, 'isLittleEndian', value);
+    }
+  });
+  PDFJS.removeNullCharacters = sharedUtil.removeNullCharacters;
+  PDFJS.PasswordResponses = sharedUtil.PasswordResponses;
+  PDFJS.PasswordException = sharedUtil.PasswordException;
+  PDFJS.UnknownErrorException = sharedUtil.UnknownErrorException;
+  PDFJS.InvalidPDFException = sharedUtil.InvalidPDFException;
+  PDFJS.MissingPDFException = sharedUtil.MissingPDFException;
+  PDFJS.UnexpectedResponseException = sharedUtil.UnexpectedResponseException;
+  PDFJS.Util = sharedUtil.Util;
+  PDFJS.PageViewport = sharedUtil.PageViewport;
+  PDFJS.createPromiseCapability = sharedUtil.createPromiseCapability;
+
+  /**
+   * The maximum allowed image size in total pixels e.g. width * height. Images
+   * above this value will not be drawn. Use -1 for no limit.
+   * @var {number}
+   */
+  PDFJS.maxImageSize = (PDFJS.maxImageSize === undefined ?
+                        -1 : PDFJS.maxImageSize);
+
+  /**
+   * The url of where the predefined Adobe CMaps are located. Include trailing
+   * slash.
+   * @var {string}
+   */
+  PDFJS.cMapUrl = (PDFJS.cMapUrl === undefined ? null : PDFJS.cMapUrl);
+
+  /**
+   * Specifies if CMaps are binary packed.
+   * @var {boolean}
+   */
+  PDFJS.cMapPacked = PDFJS.cMapPacked === undefined ? false : PDFJS.cMapPacked;
+
+  /**
+   * By default fonts are converted to OpenType fonts and loaded via font face
+   * rules. If disabled, the font will be rendered using a built in font
+   * renderer that constructs the glyphs with primitive path commands.
+   * @var {boolean}
+   */
+  PDFJS.disableFontFace = (PDFJS.disableFontFace === undefined ?
+                           false : PDFJS.disableFontFace);
+
+  /**
+   * Path for image resources, mainly for annotation icons. Include trailing
+   * slash.
+   * @var {string}
+   */
+  PDFJS.imageResourcesPath = (PDFJS.imageResourcesPath === undefined ?
+                              '' : PDFJS.imageResourcesPath);
+
+  /**
+   * Disable the web worker and run all code on the main thread. This will
+   * happen automatically if the browser doesn't support workers or sending
+   * typed arrays to workers.
+   * @var {boolean}
+   */
+  PDFJS.disableWorker = (PDFJS.disableWorker === undefined ?
+                         false : PDFJS.disableWorker);
+
+  /**
+   * Path and filename of the worker file. Required when the worker is enabled
+   * in development mode. If unspecified in the production build, the worker
+   * will be loaded based on the location of the pdf.js file. It is recommended
+   * that the workerSrc is set in a custom application to prevent issues caused
+   * by third-party frameworks and libraries.
+   * @var {string}
+   */
+  PDFJS.workerSrc = (PDFJS.workerSrc === undefined ? null : PDFJS.workerSrc);
+
+  /**
+   * Defines global port for worker process. Overrides workerSrc and
+   * disableWorker setting.
+   */
+  PDFJS.workerPort = (PDFJS.workerPort === undefined ? null : PDFJS.workerPort);
+
+  /**
+   * Disable range request loading of PDF files. When enabled and if the server
+   * supports partial content requests then the PDF will be fetched in chunks.
+   * Enabled (false) by default.
+   * @var {boolean}
+   */
+  PDFJS.disableRange = (PDFJS.disableRange === undefined ?
+                        false : PDFJS.disableRange);
+
+  /**
+   * Disable streaming of PDF file data. By default PDF.js attempts to load PDF
+   * in chunks. This default behavior can be disabled.
+   * @var {boolean}
+   */
+  PDFJS.disableStream = (PDFJS.disableStream === undefined ?
+                         false : PDFJS.disableStream);
+
+  /**
+   * Disable pre-fetching of PDF file data. When range requests are enabled
+   * PDF.js will automatically keep fetching more data even if it isn't needed
+   * to display the current page. This default behavior can be disabled.
+   *
+   * NOTE: It is also necessary to disable streaming, see above,
+   *       in order for disabling of pre-fetching to work correctly.
+   * @var {boolean}
+   */
+  PDFJS.disableAutoFetch = (PDFJS.disableAutoFetch === undefined ?
+                            false : PDFJS.disableAutoFetch);
+
+  /**
+   * Enables special hooks for debugging PDF.js.
+   * @var {boolean}
+   */
+  PDFJS.pdfBug = (PDFJS.pdfBug === undefined ? false : PDFJS.pdfBug);
+
+  /**
+   * Enables transfer usage in postMessage for ArrayBuffers.
+   * @var {boolean}
+   */
+  PDFJS.postMessageTransfers = (PDFJS.postMessageTransfers === undefined ?
+                                true : PDFJS.postMessageTransfers);
+
+  /**
+   * Disables URL.createObjectURL usage.
+   * @var {boolean}
+   */
+  PDFJS.disableCreateObjectURL = (PDFJS.disableCreateObjectURL === undefined ?
+                                  false : PDFJS.disableCreateObjectURL);
+
+  /**
+   * Disables WebGL usage.
+   * @var {boolean}
+   */
+  PDFJS.disableWebGL = (PDFJS.disableWebGL === undefined ?
+                        true : PDFJS.disableWebGL);
+
+  /**
+   * Specifies the |target| attribute for external links.
+   * The constants from PDFJS.LinkTarget should be used:
+   *  - NONE [default]
+   *  - SELF
+   *  - BLANK
+   *  - PARENT
+   *  - TOP
+   * @var {number}
+   */
+  PDFJS.externalLinkTarget = (PDFJS.externalLinkTarget === undefined ?
+                              LinkTarget.NONE : PDFJS.externalLinkTarget);
+
+  /**
+   * Specifies the |rel| attribute for external links. Defaults to stripping
+   * the referrer.
+   * @var {string}
+   */
+  PDFJS.externalLinkRel = (PDFJS.externalLinkRel === undefined ?
+                           DEFAULT_LINK_REL : PDFJS.externalLinkRel);
+
+  /**
+    * Determines if we can eval strings as JS. Primarily used to improve
+    * performance for font rendering.
+    * @var {boolean}
+    */
+  PDFJS.isEvalSupported = (PDFJS.isEvalSupported === undefined ?
+                           true : PDFJS.isEvalSupported);
+
+  if (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('MOZCENTRAL')) {
+    var savedOpenExternalLinksInNewWindow = PDFJS.openExternalLinksInNewWindow;
+    delete PDFJS.openExternalLinksInNewWindow;
+    Object.defineProperty(PDFJS, 'openExternalLinksInNewWindow', {
+      get: function () {
+        return PDFJS.externalLinkTarget === LinkTarget.BLANK;
+      },
+      set: function (value) {
+        if (value) {
+          deprecated('PDFJS.openExternalLinksInNewWindow, please use ' +
+            '"PDFJS.externalLinkTarget = PDFJS.LinkTarget.BLANK" instead.');
+        }
+        if (PDFJS.externalLinkTarget !== LinkTarget.NONE) {
+          warn('PDFJS.externalLinkTarget is already initialized');
+          return;
+        }
+        PDFJS.externalLinkTarget = value ? LinkTarget.BLANK : LinkTarget.NONE;
+      },
+      enumerable: true,
+      configurable: true
+    });
+    if (savedOpenExternalLinksInNewWindow) {
+      /**
+       * (Deprecated) Opens external links in a new window if enabled.
+       * The default behavior opens external links in the PDF.js window.
+       *
+       * NOTE: This property has been deprecated, please use
+       *       `PDFJS.externalLinkTarget = PDFJS.LinkTarget.BLANK` instead.
+       * @var {boolean}
+       */
+      PDFJS.openExternalLinksInNewWindow = savedOpenExternalLinksInNewWindow;
+    }
+  }
+
+  PDFJS.getDocument = displayAPI.getDocument;
+  PDFJS.PDFDataRangeTransport = displayAPI.PDFDataRangeTransport;
+  PDFJS.PDFWorker = displayAPI.PDFWorker;
+
+  Object.defineProperty(PDFJS, 'hasCanvasTypedArrays', {
+    configurable: true,
+    get: function PDFJS_hasCanvasTypedArrays() {
+      var value = displayDOMUtils.hasCanvasTypedArrays();
+      return sharedUtil.shadow(PDFJS, 'hasCanvasTypedArrays', value);
+    }
+  });
+  PDFJS.CustomStyle = displayDOMUtils.CustomStyle;
+  PDFJS.LinkTarget = LinkTarget;
+  PDFJS.addLinkAttributes = displayDOMUtils.addLinkAttributes;
+  PDFJS.getFilenameFromUrl = displayDOMUtils.getFilenameFromUrl;
+  PDFJS.isExternalLinkTargetSet = displayDOMUtils.isExternalLinkTargetSet;
+
+  PDFJS.AnnotationLayer = displayAnnotationLayer.AnnotationLayer;
+
+  PDFJS.renderTextLayer = displayTextLayer.renderTextLayer;
+
+  PDFJS.Metadata = displayMetadata.Metadata;
+
+  PDFJS.SVGGraphics = displaySVG.SVGGraphics;
+
+  PDFJS.UnsupportedManager = displayAPI._UnsupportedManager;
+
+  exports.globalScope = globalScope;
+  exports.isWorker = isWorker;
+  exports.PDFJS = globalScope.PDFJS;
+}));
+
+
+
+ + + + +
+ + + +
+ + + + + + + diff --git a/api/draft/doc_helper.js.html b/api/draft/doc_helper.js.html new file mode 100644 index 00000000..fd08b8c9 --- /dev/null +++ b/api/draft/doc_helper.js.html @@ -0,0 +1,96 @@ + + + + + JSDoc: Source: doc_helper.js + + + + + + + + + + +
+ +

Source: doc_helper.js

+ + + + + + +
+
+
/* Copyright 2012 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/* eslint-disable strict */
+
+/*
+ NOTE: This file is created as a helper to assist with JSDoc html files.
+       It is not for use in the executable code.
+*/
+
+/**
+ * PDFJS scope object that contains all functions, objects and variables related
+ * to the PDF.js.
+ * @constructor
+ */
+function PDFJS() {
+  // Mock class constructor. See src/display/api.js.
+}
+
+/**
+ * Controls the logging level.
+ * The constants from PDFJS.VERBOSITY_LEVELS should be used:
+ * - errors
+ * - warnings [default]
+ * - infos
+ * @var {number}
+ */
+PDFJS.verbosity = PDFJS.VERBOSITY_LEVELS.warnings;
+
+/**
+ * Represents the eventual result of an asynchronous operation.
+ * @external Promise
+ * @see {@link http://promisesaplus.com/ Promise/A+}
+ */
+
+
+
+ + + + +
+ + + +
+ + + + + + + diff --git a/api/draft/external-Promise.html b/api/draft/external-Promise.html new file mode 100644 index 00000000..3862570f --- /dev/null +++ b/api/draft/external-Promise.html @@ -0,0 +1,137 @@ + + + + + JSDoc: External: Promise + + + + + + + + + + +
+ +

External: Promise

+ + + + + + +
+ +
+ +

Promise

+ + +
+ +
+
+ + +
Represents the eventual result of an asynchronous operation.
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + +
See:
+
+ +
+ + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/api/draft/fonts/OpenSans-Bold-webfont.eot b/api/draft/fonts/OpenSans-Bold-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..5d20d916338a5890a033952e2e07ba7380f5a7d3 GIT binary patch literal 19544 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 literal 0 HcmV?d00001 diff --git a/api/draft/fonts/OpenSans-Bold-webfont.svg b/api/draft/fonts/OpenSans-Bold-webfont.svg new file mode 100644 index 00000000..3ed7be4b --- /dev/null +++ b/api/draft/fonts/OpenSans-Bold-webfont.svg @@ -0,0 +1,1830 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/draft/fonts/OpenSans-Bold-webfont.woff b/api/draft/fonts/OpenSans-Bold-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..1205787b0ed50db71ebd4f8a7f85d106721ff258 GIT binary patch literal 22432 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 ig3W + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/draft/fonts/OpenSans-BoldItalic-webfont.woff b/api/draft/fonts/OpenSans-BoldItalic-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..ed760c0628b6a0026041f5b8bba466a0471fd2e0 GIT binary patch literal 23048 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/draft/fonts/OpenSans-Italic-webfont.woff b/api/draft/fonts/OpenSans-Italic-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..ff652e64356b538c001423b6aedefcf1ee66cd17 GIT binary patch literal 23188 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 literal 0 HcmV?d00001 diff --git a/api/draft/fonts/OpenSans-Light-webfont.svg b/api/draft/fonts/OpenSans-Light-webfont.svg new file mode 100644 index 00000000..11a472ca --- /dev/null +++ b/api/draft/fonts/OpenSans-Light-webfont.svg @@ -0,0 +1,1831 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/draft/fonts/OpenSans-Light-webfont.woff b/api/draft/fonts/OpenSans-Light-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..e786074813a27d0a7a249047832988d5bf0fe756 GIT binary patch literal 22248 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 literal 0 HcmV?d00001 diff --git a/api/draft/fonts/OpenSans-LightItalic-webfont.eot b/api/draft/fonts/OpenSans-LightItalic-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..8f445929ffb03b50e98c2a2f7d831a0cb1b276a2 GIT binary patch literal 20535 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 Z%0#`NexefPFV?Xj51H#Y#AC7WXn+Jg($4?@ literal 0 HcmV?d00001 diff --git a/api/draft/fonts/OpenSans-LightItalic-webfont.svg b/api/draft/fonts/OpenSans-LightItalic-webfont.svg new file mode 100644 index 00000000..431d7e35 --- /dev/null +++ b/api/draft/fonts/OpenSans-LightItalic-webfont.svg @@ -0,0 +1,1835 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/draft/fonts/OpenSans-LightItalic-webfont.woff b/api/draft/fonts/OpenSans-LightItalic-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..43e8b9e6cc061ff17fd2903075cbde12715512b3 GIT binary patch literal 23400 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
+ +

Global

+ + + + + + +
+ +
+ +

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

Methods

+ + + + + + +

createPromiseCapability() → {PromiseCapability}

+ + + + + +
+ Creates a promise capability object. +
+ + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+ A capability object contains: +- a Promise, resolve and reject methods. +
+ + + +
+
+ Type +
+
+ +PromiseCapability + + +
+
+ + + + + + + + + +

Type Definitions

+ + + +

DocumentInitParameters

+ + + + +
+ Document initialization / loading parameters object. +
+ + + +
Type:
+
    +
  • + +Object + + +
  • +
+ + + + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
url + + +string + + + + The URL of the PDF.
data + + +TypedArray +| + +Array +| + +string + + + + Binary PDF data. Use typed arrays + (Uint8Array) to improve the memory usage. If PDF data is BASE64-encoded, + use atob() to convert it to a binary string first.
httpHeaders + + +Object + + + + Basic authentication headers.
withCredentials + + +boolean + + + + Indicates whether or not cross-site + Access-Control requests should be made using credentials such as cookies + or authorization headers. The default is false.
password + + +string + + + + For decrypting password-protected PDFs.
initialData + + +TypedArray + + + + A typed array with the first portion or + all of the pdf data. Used by the extension since some data is already + loaded before the switch to range requests.
length + + +number + + + + The PDF file length. It's used for progress + reports and range requests operations.
range + + +PDFDataRangeTransport + + + +
rangeChunkSize + + +number + + + + Optional parameter to specify + maximum number of bytes fetched per range request. The default value is + 2^16 = 65536.
worker + + +PDFWorker + + + + The worker that will be used for the loading + and parsing of the PDF data.
docBaseUrl + + +string + + + + (optional) The base URL of the document, + used when attempting to recover valid absolute URLs for annotations, and + outline items, that (incorrectly) only specify relative URLs.
disableNativeImageDecoder + + +boolean + + + + (optional) Disable decoding + of certain (simple) JPEG images in the browser. This is useful for + environments without DOM image support, such as e.g. Node.js. + The default value is `false`.
CMapReaderFactory + + +Object + + + + (optional) The factory that will be + used when reading built-in CMap files. Providing a custom factory is useful + for environments without `XMLHttpRequest` support, such as e.g. Node.js. + The default value is {DOMCMapReaderFactory}.
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

GetAnnotationsParameters

+ + + + +
+ Page annotation parameters. +
+ + + +
Type:
+
    +
  • + +Object + + +
  • +
+ + + + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
intent + + +string + + + + Determines the annotations that will be fetched, + can be either 'display' (viewable annotations) or 'print' + (printable annotations). + If the parameter is omitted, all annotations are fetched.
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

getTextContentParameters

+ + + + +
+ Page getTextContent parameters. +
+ + + +
Type:
+
    +
  • + +Object + + +
  • +
+ + + + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
normalizeWhitespace + + +boolean + + + + replaces all occurrences of + whitespace with standard spaces (0x20). The default value is `false`.
disableCombineTextItems + + +boolean + + + + do not attempt to combine + same line TextItem's. The default value is `false`.
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

PDFDocumentStats

+ + + + + + +
Type:
+
    +
  • + +Object + + +
  • +
+ + + + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
streamTypes + + +Array + + + + Used stream types in the document (an item + is set to true if specific stream ID was used in the document).
fontTypes + + +Array + + + + Used font type in the document (an item is set + to true if specific font ID was used in the document).
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

PDFOperatorList

+ + + + +
+ PDF page operator list. +
+ + + +
Type:
+
    +
  • + +Object + + +
  • +
+ + + + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
fnArray + + +Array + + + + Array containing the operator functions.
argsArray + + +Array + + + + Array containing the arguments of the + functions.
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

PromiseCapability

+ + + + +
+ Promise Capability object. +
+ + + +
Type:
+
    +
  • + +Object + + +
  • +
+ + + + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
promise + + +Promise + + + + A promise object.
resolve + + +function + + + + Fulfills the promise.
reject + + +function + + + + Rejects the promise.
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

RenderParameters

+ + + + +
+ Page render parameters. +
+ + + +
Type:
+
    +
  • + +Object + + +
  • +
+ + + + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
canvasContext + + +Object + + + + A 2D context of a DOM Canvas object.
viewport + + +PageViewport + + + + Rendering viewport obtained by + calling of PDFPage.getViewport method.
intent + + +string + + + + Rendering intent, can be 'display' or 'print' + (default value is 'display').
renderInteractiveForms + + +boolean + + + + (optional) Whether or not + interactive form elements are rendered in the display + layer. If so, we do not render them on canvas as well.
transform + + +Array + + + + (optional) Additional transform, applied + just before viewport transform.
imageLayer + + +Object + + + + (optional) An object that has beginLayout, + endLayout and appendImage functions.
continueCallback + + +function + + + + (deprecated) A function that will be + called each time the rendering is paused. To continue + rendering call the function that is the first argument + to the callback.
canvasFactory + + +Object + + + + (optional) The factory that will be used + when creating canvases. The default value is + {DOMCanvasFactory}.
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

TextContent

+ + + + +
+ Page text content. +
+ + + +
Type:
+
    +
  • + +Object + + +
  • +
+ + + + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
items + + +array + + + + array of TextItem
styles + + +Object + + + + TextStyles objects, indexed by font name.
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

TextItem

+ + + + +
+ Page text content part. +
+ + + +
Type:
+
    +
  • + +Object + + +
  • +
+ + + + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
str + + +string + + + + text content.
dir + + +string + + + + text direction: 'ttb', 'ltr' or 'rtl'.
transform + + +array + + + + transformation matrix.
width + + +number + + + + width in device space.
height + + +number + + + + height in device space.
fontName + + +string + + + + font name used by pdf.js for converted font.
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

TextStyle

+ + + + +
+ Text style. +
+ + + +
Type:
+
    +
  • + +Object + + +
  • +
+ + + + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
ascent + + +number + + + + font ascent.
descent + + +number + + + + font descent.
vertical + + +boolean + + + + text is in vertical mode.
fontFamily + + +string + + + + possible font family
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3.4.3 on Mon Mar 13 2017 15:52:29 GMT+0000 (Coordinated Universal Time) +
+ + + + + \ No newline at end of file diff --git a/api/draft/index.html b/api/draft/index.html new file mode 100644 index 00000000..2b615e9e --- /dev/null +++ b/api/draft/index.html @@ -0,0 +1,65 @@ + + + + + JSDoc: Home + + + + + + + + + + +
+ +

Home

+ + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3.4.3 on Mon Mar 13 2017 15:52:29 GMT+0000 (Coordinated Universal Time) +
+ + + + + \ No newline at end of file diff --git a/api/draft/scripts/linenumber.js b/api/draft/scripts/linenumber.js new file mode 100644 index 00000000..8d52f7ea --- /dev/null +++ b/api/draft/scripts/linenumber.js @@ -0,0 +1,25 @@ +/*global document */ +(function() { + var source = document.getElementsByClassName('prettyprint source linenums'); + var i = 0; + var lineNumber = 0; + var lineId; + var lines; + var totalLines; + var anchorHash; + + if (source && source[0]) { + anchorHash = document.location.hash.substring(1); + lines = source[0].getElementsByTagName('li'); + totalLines = lines.length; + + for (; i < totalLines; i++) { + lineNumber++; + lineId = 'line' + lineNumber; + lines[i].id = lineId; + if (lineId === anchorHash) { + lines[i].className += ' selected'; + } + } + } +})(); diff --git a/api/draft/scripts/prettify/Apache-License-2.0.txt b/api/draft/scripts/prettify/Apache-License-2.0.txt new file mode 100644 index 00000000..d6456956 --- /dev/null +++ b/api/draft/scripts/prettify/Apache-License-2.0.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/api/draft/scripts/prettify/lang-css.js b/api/draft/scripts/prettify/lang-css.js new file mode 100644 index 00000000..041e1f59 --- /dev/null +++ b/api/draft/scripts/prettify/lang-css.js @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n "]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com", +/^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]); diff --git a/api/draft/scripts/prettify/prettify.js b/api/draft/scripts/prettify/prettify.js new file mode 100644 index 00000000..eef5ad7e --- /dev/null +++ b/api/draft/scripts/prettify/prettify.js @@ -0,0 +1,28 @@ +var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; +(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a= +[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;ci[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m), +l=[],p={},d=0,g=e.length;d=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, +q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/, +q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g, +"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a), +a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e} +for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], +"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], +H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], +J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ +I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), +["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", +/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), +["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", +hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p=0){var k=k.match(g),f,b;if(b= +!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p + + + + JSDoc: Source: shared/util.js + + + + + + + + + + +
+ +

Source: shared/util.js

+ + + + + + +
+
+
/* Copyright 2012 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/* globals global, process, __pdfjsdev_webpack__ */
+
+'use strict';
+
+(function (root, factory) {
+  if (typeof define === 'function' && define.amd) {
+    define('pdfjs/shared/util', ['exports', 'pdfjs/shared/compatibility'],
+      factory);
+  } else if (typeof exports !== 'undefined') {
+    factory(exports, require('./compatibility.js'));
+  } else {
+    factory((root.pdfjsSharedUtil = {}), root.pdfjsSharedCompatibility);
+  }
+}(this, function (exports, compatibility) {
+
+var globalScope = (typeof window !== 'undefined') ? window :
+                  (typeof global !== 'undefined') ? global :
+                  (typeof self !== 'undefined') ? self : this;
+
+var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];
+
+var TextRenderingMode = {
+  FILL: 0,
+  STROKE: 1,
+  FILL_STROKE: 2,
+  INVISIBLE: 3,
+  FILL_ADD_TO_PATH: 4,
+  STROKE_ADD_TO_PATH: 5,
+  FILL_STROKE_ADD_TO_PATH: 6,
+  ADD_TO_PATH: 7,
+  FILL_STROKE_MASK: 3,
+  ADD_TO_PATH_FLAG: 4
+};
+
+var ImageKind = {
+  GRAYSCALE_1BPP: 1,
+  RGB_24BPP: 2,
+  RGBA_32BPP: 3
+};
+
+var AnnotationType = {
+  TEXT: 1,
+  LINK: 2,
+  FREETEXT: 3,
+  LINE: 4,
+  SQUARE: 5,
+  CIRCLE: 6,
+  POLYGON: 7,
+  POLYLINE: 8,
+  HIGHLIGHT: 9,
+  UNDERLINE: 10,
+  SQUIGGLY: 11,
+  STRIKEOUT: 12,
+  STAMP: 13,
+  CARET: 14,
+  INK: 15,
+  POPUP: 16,
+  FILEATTACHMENT: 17,
+  SOUND: 18,
+  MOVIE: 19,
+  WIDGET: 20,
+  SCREEN: 21,
+  PRINTERMARK: 22,
+  TRAPNET: 23,
+  WATERMARK: 24,
+  THREED: 25,
+  REDACT: 26
+};
+
+var AnnotationFlag = {
+  INVISIBLE: 0x01,
+  HIDDEN: 0x02,
+  PRINT: 0x04,
+  NOZOOM: 0x08,
+  NOROTATE: 0x10,
+  NOVIEW: 0x20,
+  READONLY: 0x40,
+  LOCKED: 0x80,
+  TOGGLENOVIEW: 0x100,
+  LOCKEDCONTENTS: 0x200
+};
+
+var AnnotationFieldFlag = {
+  READONLY: 0x0000001,
+  REQUIRED: 0x0000002,
+  NOEXPORT: 0x0000004,
+  MULTILINE: 0x0001000,
+  PASSWORD: 0x0002000,
+  NOTOGGLETOOFF: 0x0004000,
+  RADIO: 0x0008000,
+  PUSHBUTTON: 0x0010000,
+  COMBO: 0x0020000,
+  EDIT: 0x0040000,
+  SORT: 0x0080000,
+  FILESELECT: 0x0100000,
+  MULTISELECT: 0x0200000,
+  DONOTSPELLCHECK: 0x0400000,
+  DONOTSCROLL: 0x0800000,
+  COMB: 0x1000000,
+  RICHTEXT: 0x2000000,
+  RADIOSINUNISON: 0x2000000,
+  COMMITONSELCHANGE: 0x4000000,
+};
+
+var AnnotationBorderStyleType = {
+  SOLID: 1,
+  DASHED: 2,
+  BEVELED: 3,
+  INSET: 4,
+  UNDERLINE: 5
+};
+
+var StreamType = {
+  UNKNOWN: 0,
+  FLATE: 1,
+  LZW: 2,
+  DCT: 3,
+  JPX: 4,
+  JBIG: 5,
+  A85: 6,
+  AHX: 7,
+  CCF: 8,
+  RL: 9
+};
+
+var FontType = {
+  UNKNOWN: 0,
+  TYPE1: 1,
+  TYPE1C: 2,
+  CIDFONTTYPE0: 3,
+  CIDFONTTYPE0C: 4,
+  TRUETYPE: 5,
+  CIDFONTTYPE2: 6,
+  TYPE3: 7,
+  OPENTYPE: 8,
+  TYPE0: 9,
+  MMTYPE1: 10
+};
+
+var VERBOSITY_LEVELS = {
+  errors: 0,
+  warnings: 1,
+  infos: 5
+};
+
+var CMapCompressionType = {
+  NONE: 0,
+  BINARY: 1,
+  STREAM: 2,
+};
+
+// All the possible operations for an operator list.
+var OPS = {
+  // Intentionally start from 1 so it is easy to spot bad operators that will be
+  // 0's.
+  dependency: 1,
+  setLineWidth: 2,
+  setLineCap: 3,
+  setLineJoin: 4,
+  setMiterLimit: 5,
+  setDash: 6,
+  setRenderingIntent: 7,
+  setFlatness: 8,
+  setGState: 9,
+  save: 10,
+  restore: 11,
+  transform: 12,
+  moveTo: 13,
+  lineTo: 14,
+  curveTo: 15,
+  curveTo2: 16,
+  curveTo3: 17,
+  closePath: 18,
+  rectangle: 19,
+  stroke: 20,
+  closeStroke: 21,
+  fill: 22,
+  eoFill: 23,
+  fillStroke: 24,
+  eoFillStroke: 25,
+  closeFillStroke: 26,
+  closeEOFillStroke: 27,
+  endPath: 28,
+  clip: 29,
+  eoClip: 30,
+  beginText: 31,
+  endText: 32,
+  setCharSpacing: 33,
+  setWordSpacing: 34,
+  setHScale: 35,
+  setLeading: 36,
+  setFont: 37,
+  setTextRenderingMode: 38,
+  setTextRise: 39,
+  moveText: 40,
+  setLeadingMoveText: 41,
+  setTextMatrix: 42,
+  nextLine: 43,
+  showText: 44,
+  showSpacedText: 45,
+  nextLineShowText: 46,
+  nextLineSetSpacingShowText: 47,
+  setCharWidth: 48,
+  setCharWidthAndBounds: 49,
+  setStrokeColorSpace: 50,
+  setFillColorSpace: 51,
+  setStrokeColor: 52,
+  setStrokeColorN: 53,
+  setFillColor: 54,
+  setFillColorN: 55,
+  setStrokeGray: 56,
+  setFillGray: 57,
+  setStrokeRGBColor: 58,
+  setFillRGBColor: 59,
+  setStrokeCMYKColor: 60,
+  setFillCMYKColor: 61,
+  shadingFill: 62,
+  beginInlineImage: 63,
+  beginImageData: 64,
+  endInlineImage: 65,
+  paintXObject: 66,
+  markPoint: 67,
+  markPointProps: 68,
+  beginMarkedContent: 69,
+  beginMarkedContentProps: 70,
+  endMarkedContent: 71,
+  beginCompat: 72,
+  endCompat: 73,
+  paintFormXObjectBegin: 74,
+  paintFormXObjectEnd: 75,
+  beginGroup: 76,
+  endGroup: 77,
+  beginAnnotations: 78,
+  endAnnotations: 79,
+  beginAnnotation: 80,
+  endAnnotation: 81,
+  paintJpegXObject: 82,
+  paintImageMaskXObject: 83,
+  paintImageMaskXObjectGroup: 84,
+  paintImageXObject: 85,
+  paintInlineImageXObject: 86,
+  paintInlineImageXObjectGroup: 87,
+  paintImageXObjectRepeat: 88,
+  paintImageMaskXObjectRepeat: 89,
+  paintSolidColorImageMask: 90,
+  constructPath: 91
+};
+
+var verbosity = VERBOSITY_LEVELS.warnings;
+
+function setVerbosityLevel(level) {
+  verbosity = level;
+}
+
+function getVerbosityLevel() {
+  return verbosity;
+}
+
+// A notice for devs. These are good for things that are helpful to devs, such
+// as warning that Workers were disabled, which is important to devs but not
+// end users.
+function info(msg) {
+  if (verbosity >= VERBOSITY_LEVELS.infos) {
+    console.log('Info: ' + msg);
+  }
+}
+
+// Non-fatal warnings.
+function warn(msg) {
+  if (verbosity >= VERBOSITY_LEVELS.warnings) {
+    console.log('Warning: ' + msg);
+  }
+}
+
+// Deprecated API function -- display regardless of the PDFJS.verbosity setting.
+function deprecated(details) {
+  console.log('Deprecated API usage: ' + details);
+}
+
+// Fatal errors that should trigger the fallback UI and halt execution by
+// throwing an exception.
+function error(msg) {
+  if (verbosity >= VERBOSITY_LEVELS.errors) {
+    console.log('Error: ' + msg);
+    console.log(backtrace());
+  }
+  throw new Error(msg);
+}
+
+function backtrace() {
+  try {
+    throw new Error();
+  } catch (e) {
+    return e.stack ? e.stack.split('\n').slice(2).join('\n') : '';
+  }
+}
+
+function assert(cond, msg) {
+  if (!cond) {
+    error(msg);
+  }
+}
+
+var UNSUPPORTED_FEATURES = {
+  unknown: 'unknown',
+  forms: 'forms',
+  javaScript: 'javaScript',
+  smask: 'smask',
+  shadingPattern: 'shadingPattern',
+  font: 'font'
+};
+
+// Checks if URLs have the same origin. For non-HTTP based URLs, returns false.
+function isSameOrigin(baseUrl, otherUrl) {
+  try {
+    var base = new URL(baseUrl);
+    if (!base.origin || base.origin === 'null') {
+      return false; // non-HTTP url
+    }
+  } catch (e) {
+    return false;
+  }
+
+  var other = new URL(otherUrl, base);
+  return base.origin === other.origin;
+}
+
+// Checks if URLs use one of the whitelisted protocols, e.g. to avoid XSS.
+function isValidProtocol(url) {
+  if (!url) {
+    return false;
+  }
+  switch (url.protocol) {
+    case 'http:':
+    case 'https:':
+    case 'ftp:':
+    case 'mailto:':
+    case 'tel:':
+      return true;
+    default:
+      return false;
+  }
+}
+
+/**
+ * Attempts to create a valid absolute URL (utilizing `isValidProtocol`).
+ * @param {URL|string} url - An absolute, or relative, URL.
+ * @param {URL|string} baseUrl - An absolute URL.
+ * @returns Either a valid {URL}, or `null` otherwise.
+ */
+function createValidAbsoluteUrl(url, baseUrl) {
+  if (!url) {
+    return null;
+  }
+  try {
+    var absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);
+    if (isValidProtocol(absoluteUrl)) {
+      return absoluteUrl;
+    }
+  } catch (ex) { /* `new URL()` will throw on incorrect data. */ }
+  return null;
+}
+
+function shadow(obj, prop, value) {
+  Object.defineProperty(obj, prop, { value: value,
+                                     enumerable: true,
+                                     configurable: true,
+                                     writable: false });
+  return value;
+}
+
+function getLookupTableFactory(initializer) {
+  var lookup;
+  return function () {
+    if (initializer) {
+      lookup = Object.create(null);
+      initializer(lookup);
+      initializer = null;
+    }
+    return lookup;
+  };
+}
+
+var PasswordResponses = {
+  NEED_PASSWORD: 1,
+  INCORRECT_PASSWORD: 2
+};
+
+var PasswordException = (function PasswordExceptionClosure() {
+  function PasswordException(msg, code) {
+    this.name = 'PasswordException';
+    this.message = msg;
+    this.code = code;
+  }
+
+  PasswordException.prototype = new Error();
+  PasswordException.constructor = PasswordException;
+
+  return PasswordException;
+})();
+
+var UnknownErrorException = (function UnknownErrorExceptionClosure() {
+  function UnknownErrorException(msg, details) {
+    this.name = 'UnknownErrorException';
+    this.message = msg;
+    this.details = details;
+  }
+
+  UnknownErrorException.prototype = new Error();
+  UnknownErrorException.constructor = UnknownErrorException;
+
+  return UnknownErrorException;
+})();
+
+var InvalidPDFException = (function InvalidPDFExceptionClosure() {
+  function InvalidPDFException(msg) {
+    this.name = 'InvalidPDFException';
+    this.message = msg;
+  }
+
+  InvalidPDFException.prototype = new Error();
+  InvalidPDFException.constructor = InvalidPDFException;
+
+  return InvalidPDFException;
+})();
+
+var MissingPDFException = (function MissingPDFExceptionClosure() {
+  function MissingPDFException(msg) {
+    this.name = 'MissingPDFException';
+    this.message = msg;
+  }
+
+  MissingPDFException.prototype = new Error();
+  MissingPDFException.constructor = MissingPDFException;
+
+  return MissingPDFException;
+})();
+
+var UnexpectedResponseException =
+    (function UnexpectedResponseExceptionClosure() {
+  function UnexpectedResponseException(msg, status) {
+    this.name = 'UnexpectedResponseException';
+    this.message = msg;
+    this.status = status;
+  }
+
+  UnexpectedResponseException.prototype = new Error();
+  UnexpectedResponseException.constructor = UnexpectedResponseException;
+
+  return UnexpectedResponseException;
+})();
+
+var NotImplementedException = (function NotImplementedExceptionClosure() {
+  function NotImplementedException(msg) {
+    this.message = msg;
+  }
+
+  NotImplementedException.prototype = new Error();
+  NotImplementedException.prototype.name = 'NotImplementedException';
+  NotImplementedException.constructor = NotImplementedException;
+
+  return NotImplementedException;
+})();
+
+var MissingDataException = (function MissingDataExceptionClosure() {
+  function MissingDataException(begin, end) {
+    this.begin = begin;
+    this.end = end;
+    this.message = 'Missing data [' + begin + ', ' + end + ')';
+  }
+
+  MissingDataException.prototype = new Error();
+  MissingDataException.prototype.name = 'MissingDataException';
+  MissingDataException.constructor = MissingDataException;
+
+  return MissingDataException;
+})();
+
+var XRefParseException = (function XRefParseExceptionClosure() {
+  function XRefParseException(msg) {
+    this.message = msg;
+  }
+
+  XRefParseException.prototype = new Error();
+  XRefParseException.prototype.name = 'XRefParseException';
+  XRefParseException.constructor = XRefParseException;
+
+  return XRefParseException;
+})();
+
+var NullCharactersRegExp = /\x00/g;
+
+function removeNullCharacters(str) {
+  if (typeof str !== 'string') {
+    warn('The argument for removeNullCharacters must be a string.');
+    return str;
+  }
+  return str.replace(NullCharactersRegExp, '');
+}
+
+function bytesToString(bytes) {
+  assert(bytes !== null && typeof bytes === 'object' &&
+         bytes.length !== undefined, 'Invalid argument for bytesToString');
+  var length = bytes.length;
+  var MAX_ARGUMENT_COUNT = 8192;
+  if (length < MAX_ARGUMENT_COUNT) {
+    return String.fromCharCode.apply(null, bytes);
+  }
+  var strBuf = [];
+  for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {
+    var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);
+    var chunk = bytes.subarray(i, chunkEnd);
+    strBuf.push(String.fromCharCode.apply(null, chunk));
+  }
+  return strBuf.join('');
+}
+
+function stringToBytes(str) {
+  assert(typeof str === 'string', 'Invalid argument for stringToBytes');
+  var length = str.length;
+  var bytes = new Uint8Array(length);
+  for (var i = 0; i < length; ++i) {
+    bytes[i] = str.charCodeAt(i) & 0xFF;
+  }
+  return bytes;
+}
+
+/**
+ * Gets length of the array (Array, Uint8Array, or string) in bytes.
+ * @param {Array|Uint8Array|string} arr
+ * @returns {number}
+ */
+function arrayByteLength(arr) {
+  if (arr.length !== undefined) {
+    return arr.length;
+  }
+  assert(arr.byteLength !== undefined);
+  return arr.byteLength;
+}
+
+/**
+ * Combines array items (arrays) into single Uint8Array object.
+ * @param {Array} arr - the array of the arrays (Array, Uint8Array, or string).
+ * @returns {Uint8Array}
+ */
+function arraysToBytes(arr) {
+  // Shortcut: if first and only item is Uint8Array, return it.
+  if (arr.length === 1 && (arr[0] instanceof Uint8Array)) {
+    return arr[0];
+  }
+  var resultLength = 0;
+  var i, ii = arr.length;
+  var item, itemLength;
+  for (i = 0; i < ii; i++) {
+    item = arr[i];
+    itemLength = arrayByteLength(item);
+    resultLength += itemLength;
+  }
+  var pos = 0;
+  var data = new Uint8Array(resultLength);
+  for (i = 0; i < ii; i++) {
+    item = arr[i];
+    if (!(item instanceof Uint8Array)) {
+      if (typeof item === 'string') {
+        item = stringToBytes(item);
+      } else {
+        item = new Uint8Array(item);
+      }
+    }
+    itemLength = item.byteLength;
+    data.set(item, pos);
+    pos += itemLength;
+  }
+  return data;
+}
+
+function string32(value) {
+  return String.fromCharCode((value >> 24) & 0xff, (value >> 16) & 0xff,
+                             (value >> 8) & 0xff, value & 0xff);
+}
+
+function log2(x) {
+  var n = 1, i = 0;
+  while (x > n) {
+    n <<= 1;
+    i++;
+  }
+  return i;
+}
+
+function readInt8(data, start) {
+  return (data[start] << 24) >> 24;
+}
+
+function readUint16(data, offset) {
+  return (data[offset] << 8) | data[offset + 1];
+}
+
+function readUint32(data, offset) {
+  return ((data[offset] << 24) | (data[offset + 1] << 16) |
+         (data[offset + 2] << 8) | data[offset + 3]) >>> 0;
+}
+
+// Lazy test the endianness of the platform
+// NOTE: This will be 'true' for simulated TypedArrays
+function isLittleEndian() {
+  var buffer8 = new Uint8Array(2);
+  buffer8[0] = 1;
+  var buffer16 = new Uint16Array(buffer8.buffer);
+  return (buffer16[0] === 1);
+}
+
+// Checks if it's possible to eval JS expressions.
+function isEvalSupported() {
+  try {
+    new Function(''); // eslint-disable-line no-new, no-new-func
+    return true;
+  } catch (e) {
+    return false;
+  }
+}
+
+if (typeof PDFJSDev === 'undefined' ||
+    !PDFJSDev.test('FIREFOX || MOZCENTRAL || CHROME')) {
+  var Uint32ArrayView = (function Uint32ArrayViewClosure() {
+    function Uint32ArrayView(buffer, length) {
+      this.buffer = buffer;
+      this.byteLength = buffer.length;
+      this.length = length === undefined ? (this.byteLength >> 2) : length;
+      ensureUint32ArrayViewProps(this.length);
+    }
+    Uint32ArrayView.prototype = Object.create(null);
+
+    var uint32ArrayViewSetters = 0;
+    function createUint32ArrayProp(index) {
+      return {
+        get: function () {
+          var buffer = this.buffer, offset = index << 2;
+          return (buffer[offset] | (buffer[offset + 1] << 8) |
+            (buffer[offset + 2] << 16) | (buffer[offset + 3] << 24)) >>> 0;
+        },
+        set: function (value) {
+          var buffer = this.buffer, offset = index << 2;
+          buffer[offset] = value & 255;
+          buffer[offset + 1] = (value >> 8) & 255;
+          buffer[offset + 2] = (value >> 16) & 255;
+          buffer[offset + 3] = (value >>> 24) & 255;
+        }
+      };
+    }
+
+    function ensureUint32ArrayViewProps(length) {
+      while (uint32ArrayViewSetters < length) {
+        Object.defineProperty(Uint32ArrayView.prototype,
+          uint32ArrayViewSetters,
+          createUint32ArrayProp(uint32ArrayViewSetters));
+        uint32ArrayViewSetters++;
+      }
+    }
+
+    return Uint32ArrayView;
+  })();
+
+  exports.Uint32ArrayView = Uint32ArrayView;
+}
+
+var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];
+
+var Util = (function UtilClosure() {
+  function Util() {}
+
+  var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];
+
+  // makeCssRgb() can be called thousands of times. Using |rgbBuf| avoids
+  // creating many intermediate strings.
+  Util.makeCssRgb = function Util_makeCssRgb(r, g, b) {
+    rgbBuf[1] = r;
+    rgbBuf[3] = g;
+    rgbBuf[5] = b;
+    return rgbBuf.join('');
+  };
+
+  // Concatenates two transformation matrices together and returns the result.
+  Util.transform = function Util_transform(m1, m2) {
+    return [
+      m1[0] * m2[0] + m1[2] * m2[1],
+      m1[1] * m2[0] + m1[3] * m2[1],
+      m1[0] * m2[2] + m1[2] * m2[3],
+      m1[1] * m2[2] + m1[3] * m2[3],
+      m1[0] * m2[4] + m1[2] * m2[5] + m1[4],
+      m1[1] * m2[4] + m1[3] * m2[5] + m1[5]
+    ];
+  };
+
+  // For 2d affine transforms
+  Util.applyTransform = function Util_applyTransform(p, m) {
+    var xt = p[0] * m[0] + p[1] * m[2] + m[4];
+    var yt = p[0] * m[1] + p[1] * m[3] + m[5];
+    return [xt, yt];
+  };
+
+  Util.applyInverseTransform = function Util_applyInverseTransform(p, m) {
+    var d = m[0] * m[3] - m[1] * m[2];
+    var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;
+    var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;
+    return [xt, yt];
+  };
+
+  // Applies the transform to the rectangle and finds the minimum axially
+  // aligned bounding box.
+  Util.getAxialAlignedBoundingBox =
+    function Util_getAxialAlignedBoundingBox(r, m) {
+
+    var p1 = Util.applyTransform(r, m);
+    var p2 = Util.applyTransform(r.slice(2, 4), m);
+    var p3 = Util.applyTransform([r[0], r[3]], m);
+    var p4 = Util.applyTransform([r[2], r[1]], m);
+    return [
+      Math.min(p1[0], p2[0], p3[0], p4[0]),
+      Math.min(p1[1], p2[1], p3[1], p4[1]),
+      Math.max(p1[0], p2[0], p3[0], p4[0]),
+      Math.max(p1[1], p2[1], p3[1], p4[1])
+    ];
+  };
+
+  Util.inverseTransform = function Util_inverseTransform(m) {
+    var d = m[0] * m[3] - m[1] * m[2];
+    return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d,
+      (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];
+  };
+
+  // Apply a generic 3d matrix M on a 3-vector v:
+  //   | a b c |   | X |
+  //   | d e f | x | Y |
+  //   | g h i |   | Z |
+  // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],
+  // with v as [X,Y,Z]
+  Util.apply3dTransform = function Util_apply3dTransform(m, v) {
+    return [
+      m[0] * v[0] + m[1] * v[1] + m[2] * v[2],
+      m[3] * v[0] + m[4] * v[1] + m[5] * v[2],
+      m[6] * v[0] + m[7] * v[1] + m[8] * v[2]
+    ];
+  };
+
+  // This calculation uses Singular Value Decomposition.
+  // The SVD can be represented with formula A = USV. We are interested in the
+  // matrix S here because it represents the scale values.
+  Util.singularValueDecompose2dScale =
+    function Util_singularValueDecompose2dScale(m) {
+
+    var transpose = [m[0], m[2], m[1], m[3]];
+
+    // Multiply matrix m with its transpose.
+    var a = m[0] * transpose[0] + m[1] * transpose[2];
+    var b = m[0] * transpose[1] + m[1] * transpose[3];
+    var c = m[2] * transpose[0] + m[3] * transpose[2];
+    var d = m[2] * transpose[1] + m[3] * transpose[3];
+
+    // Solve the second degree polynomial to get roots.
+    var first = (a + d) / 2;
+    var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;
+    var sx = first + second || 1;
+    var sy = first - second || 1;
+
+    // Scale values are the square roots of the eigenvalues.
+    return [Math.sqrt(sx), Math.sqrt(sy)];
+  };
+
+  // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)
+  // For coordinate systems whose origin lies in the bottom-left, this
+  // means normalization to (BL,TR) ordering. For systems with origin in the
+  // top-left, this means (TL,BR) ordering.
+  Util.normalizeRect = function Util_normalizeRect(rect) {
+    var r = rect.slice(0); // clone rect
+    if (rect[0] > rect[2]) {
+      r[0] = rect[2];
+      r[2] = rect[0];
+    }
+    if (rect[1] > rect[3]) {
+      r[1] = rect[3];
+      r[3] = rect[1];
+    }
+    return r;
+  };
+
+  // Returns a rectangle [x1, y1, x2, y2] corresponding to the
+  // intersection of rect1 and rect2. If no intersection, returns 'false'
+  // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]
+  Util.intersect = function Util_intersect(rect1, rect2) {
+    function compare(a, b) {
+      return a - b;
+    }
+
+    // Order points along the axes
+    var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),
+        orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare),
+        result = [];
+
+    rect1 = Util.normalizeRect(rect1);
+    rect2 = Util.normalizeRect(rect2);
+
+    // X: first and second points belong to different rectangles?
+    if ((orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) ||
+        (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])) {
+      // Intersection must be between second and third points
+      result[0] = orderedX[1];
+      result[2] = orderedX[2];
+    } else {
+      return false;
+    }
+
+    // Y: first and second points belong to different rectangles?
+    if ((orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) ||
+        (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])) {
+      // Intersection must be between second and third points
+      result[1] = orderedY[1];
+      result[3] = orderedY[2];
+    } else {
+      return false;
+    }
+
+    return result;
+  };
+
+  Util.sign = function Util_sign(num) {
+    return num < 0 ? -1 : 1;
+  };
+
+  var ROMAN_NUMBER_MAP = [
+    '', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM',
+    '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC',
+    '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'
+  ];
+  /**
+   * Converts positive integers to (upper case) Roman numerals.
+   * @param {integer} number - The number that should be converted.
+   * @param {boolean} lowerCase - Indicates if the result should be converted
+   *   to lower case letters. The default is false.
+   * @return {string} The resulting Roman number.
+   */
+  Util.toRoman = function Util_toRoman(number, lowerCase) {
+    assert(isInt(number) && number > 0,
+           'The number should be a positive integer.');
+    var pos, romanBuf = [];
+    // Thousands
+    while (number >= 1000) {
+      number -= 1000;
+      romanBuf.push('M');
+    }
+    // Hundreds
+    pos = (number / 100) | 0;
+    number %= 100;
+    romanBuf.push(ROMAN_NUMBER_MAP[pos]);
+    // Tens
+    pos = (number / 10) | 0;
+    number %= 10;
+    romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);
+    // Ones
+    romanBuf.push(ROMAN_NUMBER_MAP[20 + number]);
+
+    var romanStr = romanBuf.join('');
+    return (lowerCase ? romanStr.toLowerCase() : romanStr);
+  };
+
+  Util.appendToArray = function Util_appendToArray(arr1, arr2) {
+    Array.prototype.push.apply(arr1, arr2);
+  };
+
+  Util.prependToArray = function Util_prependToArray(arr1, arr2) {
+    Array.prototype.unshift.apply(arr1, arr2);
+  };
+
+  Util.extendObj = function extendObj(obj1, obj2) {
+    for (var key in obj2) {
+      obj1[key] = obj2[key];
+    }
+  };
+
+  Util.getInheritableProperty =
+      function Util_getInheritableProperty(dict, name, getArray) {
+    while (dict && !dict.has(name)) {
+      dict = dict.get('Parent');
+    }
+    if (!dict) {
+      return null;
+    }
+    return getArray ? dict.getArray(name) : dict.get(name);
+  };
+
+  Util.inherit = function Util_inherit(sub, base, prototype) {
+    sub.prototype = Object.create(base.prototype);
+    sub.prototype.constructor = sub;
+    for (var prop in prototype) {
+      sub.prototype[prop] = prototype[prop];
+    }
+  };
+
+  Util.loadScript = function Util_loadScript(src, callback) {
+    var script = document.createElement('script');
+    var loaded = false;
+    script.setAttribute('src', src);
+    if (callback) {
+      script.onload = function() {
+        if (!loaded) {
+          callback();
+        }
+        loaded = true;
+      };
+    }
+    document.getElementsByTagName('head')[0].appendChild(script);
+  };
+
+  return Util;
+})();
+
+/**
+ * PDF page viewport created based on scale, rotation and offset.
+ * @class
+ * @alias PageViewport
+ */
+var PageViewport = (function PageViewportClosure() {
+  /**
+   * @constructor
+   * @private
+   * @param viewBox {Array} xMin, yMin, xMax and yMax coordinates.
+   * @param scale {number} scale of the viewport.
+   * @param rotation {number} rotations of the viewport in degrees.
+   * @param offsetX {number} offset X
+   * @param offsetY {number} offset Y
+   * @param dontFlip {boolean} if true, axis Y will not be flipped.
+   */
+  function PageViewport(viewBox, scale, rotation, offsetX, offsetY, dontFlip) {
+    this.viewBox = viewBox;
+    this.scale = scale;
+    this.rotation = rotation;
+    this.offsetX = offsetX;
+    this.offsetY = offsetY;
+
+    // creating transform to convert pdf coordinate system to the normal
+    // canvas like coordinates taking in account scale and rotation
+    var centerX = (viewBox[2] + viewBox[0]) / 2;
+    var centerY = (viewBox[3] + viewBox[1]) / 2;
+    var rotateA, rotateB, rotateC, rotateD;
+    rotation = rotation % 360;
+    rotation = rotation < 0 ? rotation + 360 : rotation;
+    switch (rotation) {
+      case 180:
+        rotateA = -1; rotateB = 0; rotateC = 0; rotateD = 1;
+        break;
+      case 90:
+        rotateA = 0; rotateB = 1; rotateC = 1; rotateD = 0;
+        break;
+      case 270:
+        rotateA = 0; rotateB = -1; rotateC = -1; rotateD = 0;
+        break;
+      // case 0:
+      default:
+        rotateA = 1; rotateB = 0; rotateC = 0; rotateD = -1;
+        break;
+    }
+
+    if (dontFlip) {
+      rotateC = -rotateC; rotateD = -rotateD;
+    }
+
+    var offsetCanvasX, offsetCanvasY;
+    var width, height;
+    if (rotateA === 0) {
+      offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;
+      offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;
+      width = Math.abs(viewBox[3] - viewBox[1]) * scale;
+      height = Math.abs(viewBox[2] - viewBox[0]) * scale;
+    } else {
+      offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;
+      offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;
+      width = Math.abs(viewBox[2] - viewBox[0]) * scale;
+      height = Math.abs(viewBox[3] - viewBox[1]) * scale;
+    }
+    // creating transform for the following operations:
+    // translate(-centerX, -centerY), rotate and flip vertically,
+    // scale, and translate(offsetCanvasX, offsetCanvasY)
+    this.transform = [
+      rotateA * scale,
+      rotateB * scale,
+      rotateC * scale,
+      rotateD * scale,
+      offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY,
+      offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY
+    ];
+
+    this.width = width;
+    this.height = height;
+    this.fontScale = scale;
+  }
+  PageViewport.prototype = /** @lends PageViewport.prototype */ {
+    /**
+     * Clones viewport with additional properties.
+     * @param args {Object} (optional) If specified, may contain the 'scale' or
+     * 'rotation' properties to override the corresponding properties in
+     * the cloned viewport.
+     * @returns {PageViewport} Cloned viewport.
+     */
+    clone: function PageViewPort_clone(args) {
+      args = args || {};
+      var scale = 'scale' in args ? args.scale : this.scale;
+      var rotation = 'rotation' in args ? args.rotation : this.rotation;
+      return new PageViewport(this.viewBox.slice(), scale, rotation,
+                              this.offsetX, this.offsetY, args.dontFlip);
+    },
+    /**
+     * Converts PDF point to the viewport coordinates. For examples, useful for
+     * converting PDF location into canvas pixel coordinates.
+     * @param x {number} X coordinate.
+     * @param y {number} Y coordinate.
+     * @returns {Object} Object that contains 'x' and 'y' properties of the
+     * point in the viewport coordinate space.
+     * @see {@link convertToPdfPoint}
+     * @see {@link convertToViewportRectangle}
+     */
+    convertToViewportPoint: function PageViewport_convertToViewportPoint(x, y) {
+      return Util.applyTransform([x, y], this.transform);
+    },
+    /**
+     * Converts PDF rectangle to the viewport coordinates.
+     * @param rect {Array} xMin, yMin, xMax and yMax coordinates.
+     * @returns {Array} Contains corresponding coordinates of the rectangle
+     * in the viewport coordinate space.
+     * @see {@link convertToViewportPoint}
+     */
+    convertToViewportRectangle:
+      function PageViewport_convertToViewportRectangle(rect) {
+      var tl = Util.applyTransform([rect[0], rect[1]], this.transform);
+      var br = Util.applyTransform([rect[2], rect[3]], this.transform);
+      return [tl[0], tl[1], br[0], br[1]];
+    },
+    /**
+     * Converts viewport coordinates to the PDF location. For examples, useful
+     * for converting canvas pixel location into PDF one.
+     * @param x {number} X coordinate.
+     * @param y {number} Y coordinate.
+     * @returns {Object} Object that contains 'x' and 'y' properties of the
+     * point in the PDF coordinate space.
+     * @see {@link convertToViewportPoint}
+     */
+    convertToPdfPoint: function PageViewport_convertToPdfPoint(x, y) {
+      return Util.applyInverseTransform([x, y], this.transform);
+    }
+  };
+  return PageViewport;
+})();
+
+var PDFStringTranslateTable = [
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+  0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0,
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014,
+  0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C,
+  0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160,
+  0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC
+];
+
+function stringToPDFString(str) {
+  var i, n = str.length, strBuf = [];
+  if (str[0] === '\xFE' && str[1] === '\xFF') {
+    // UTF16BE BOM
+    for (i = 2; i < n; i += 2) {
+      strBuf.push(String.fromCharCode(
+        (str.charCodeAt(i) << 8) | str.charCodeAt(i + 1)));
+    }
+  } else {
+    for (i = 0; i < n; ++i) {
+      var code = PDFStringTranslateTable[str.charCodeAt(i)];
+      strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));
+    }
+  }
+  return strBuf.join('');
+}
+
+function stringToUTF8String(str) {
+  return decodeURIComponent(escape(str));
+}
+
+function utf8StringToString(str) {
+  return unescape(encodeURIComponent(str));
+}
+
+function isEmptyObj(obj) {
+  for (var key in obj) {
+    return false;
+  }
+  return true;
+}
+
+function isBool(v) {
+  return typeof v === 'boolean';
+}
+
+function isInt(v) {
+  return typeof v === 'number' && ((v | 0) === v);
+}
+
+function isNum(v) {
+  return typeof v === 'number';
+}
+
+function isString(v) {
+  return typeof v === 'string';
+}
+
+function isArray(v) {
+  return v instanceof Array;
+}
+
+function isArrayBuffer(v) {
+  return typeof v === 'object' && v !== null && v.byteLength !== undefined;
+}
+
+// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.
+function isSpace(ch) {
+  return (ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A);
+}
+
+function isNodeJS() {
+  // The if below protected by __pdfjsdev_webpack__ check from webpack parsing.
+  if (typeof __pdfjsdev_webpack__ === 'undefined') {
+    return typeof process === 'object' && process + '' === '[object process]';
+  }
+  return false;
+}
+
+/**
+ * Promise Capability object.
+ *
+ * @typedef {Object} PromiseCapability
+ * @property {Promise} promise - A promise object.
+ * @property {function} resolve - Fulfills the promise.
+ * @property {function} reject - Rejects the promise.
+ */
+
+/**
+ * Creates a promise capability object.
+ * @alias createPromiseCapability
+ *
+ * @return {PromiseCapability} A capability object contains:
+ * - a Promise, resolve and reject methods.
+ */
+function createPromiseCapability() {
+  var capability = {};
+  capability.promise = new Promise(function (resolve, reject) {
+    capability.resolve = resolve;
+    capability.reject = reject;
+  });
+  return capability;
+}
+
+var StatTimer = (function StatTimerClosure() {
+  function rpad(str, pad, length) {
+    while (str.length < length) {
+      str += pad;
+    }
+    return str;
+  }
+  function StatTimer() {
+    this.started = Object.create(null);
+    this.times = [];
+    this.enabled = true;
+  }
+  StatTimer.prototype = {
+    time: function StatTimer_time(name) {
+      if (!this.enabled) {
+        return;
+      }
+      if (name in this.started) {
+        warn('Timer is already running for ' + name);
+      }
+      this.started[name] = Date.now();
+    },
+    timeEnd: function StatTimer_timeEnd(name) {
+      if (!this.enabled) {
+        return;
+      }
+      if (!(name in this.started)) {
+        warn('Timer has not been started for ' + name);
+      }
+      this.times.push({
+        'name': name,
+        'start': this.started[name],
+        'end': Date.now()
+      });
+      // Remove timer from started so it can be called again.
+      delete this.started[name];
+    },
+    toString: function StatTimer_toString() {
+      var i, ii;
+      var times = this.times;
+      var out = '';
+      // Find the longest name for padding purposes.
+      var longest = 0;
+      for (i = 0, ii = times.length; i < ii; ++i) {
+        var name = times[i]['name'];
+        if (name.length > longest) {
+          longest = name.length;
+        }
+      }
+      for (i = 0, ii = times.length; i < ii; ++i) {
+        var span = times[i];
+        var duration = span.end - span.start;
+        out += rpad(span['name'], ' ', longest) + ' ' + duration + 'ms\n';
+      }
+      return out;
+    }
+  };
+  return StatTimer;
+})();
+
+var createBlob = function createBlob(data, contentType) {
+  if (typeof Blob !== 'undefined') {
+    return new Blob([data], { type: contentType });
+  }
+  warn('The "Blob" constructor is not supported.');
+};
+
+var createObjectURL = (function createObjectURLClosure() {
+  // Blob/createObjectURL is not available, falling back to data schema.
+  var digits =
+    'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
+
+  return function createObjectURL(data, contentType, forceDataSchema) {
+    if (!forceDataSchema &&
+        typeof URL !== 'undefined' && URL.createObjectURL) {
+      var blob = createBlob(data, contentType);
+      return URL.createObjectURL(blob);
+    }
+
+    var buffer = 'data:' + contentType + ';base64,';
+    for (var i = 0, ii = data.length; i < ii; i += 3) {
+      var b1 = data[i] & 0xFF;
+      var b2 = data[i + 1] & 0xFF;
+      var b3 = data[i + 2] & 0xFF;
+      var d1 = b1 >> 2, d2 = ((b1 & 3) << 4) | (b2 >> 4);
+      var d3 = i + 1 < ii ? ((b2 & 0xF) << 2) | (b3 >> 6) : 64;
+      var d4 = i + 2 < ii ? (b3 & 0x3F) : 64;
+      buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];
+    }
+    return buffer;
+  };
+})();
+
+function MessageHandler(sourceName, targetName, comObj) {
+  this.sourceName = sourceName;
+  this.targetName = targetName;
+  this.comObj = comObj;
+  this.callbackIndex = 1;
+  this.postMessageTransfers = true;
+  var callbacksCapabilities = this.callbacksCapabilities = Object.create(null);
+  var ah = this.actionHandler = Object.create(null);
+
+  this._onComObjOnMessage = function messageHandlerComObjOnMessage(event) {
+    var data = event.data;
+    if (data.targetName !== this.sourceName) {
+      return;
+    }
+    if (data.isReply) {
+      var callbackId = data.callbackId;
+      if (data.callbackId in callbacksCapabilities) {
+        var callback = callbacksCapabilities[callbackId];
+        delete callbacksCapabilities[callbackId];
+        if ('error' in data) {
+          callback.reject(data.error);
+        } else {
+          callback.resolve(data.data);
+        }
+      } else {
+        error('Cannot resolve callback ' + callbackId);
+      }
+    } else if (data.action in ah) {
+      var action = ah[data.action];
+      if (data.callbackId) {
+        var sourceName = this.sourceName;
+        var targetName = data.sourceName;
+        Promise.resolve().then(function () {
+          return action[0].call(action[1], data.data);
+        }).then(function (result) {
+          comObj.postMessage({
+            sourceName: sourceName,
+            targetName: targetName,
+            isReply: true,
+            callbackId: data.callbackId,
+            data: result
+          });
+        }, function (reason) {
+          if (reason instanceof Error) {
+            // Serialize error to avoid "DataCloneError"
+            reason = reason + '';
+          }
+          comObj.postMessage({
+            sourceName: sourceName,
+            targetName: targetName,
+            isReply: true,
+            callbackId: data.callbackId,
+            error: reason
+          });
+        });
+      } else {
+        action[0].call(action[1], data.data);
+      }
+    } else {
+      error('Unknown action from worker: ' + data.action);
+    }
+  }.bind(this);
+  comObj.addEventListener('message', this._onComObjOnMessage);
+}
+
+MessageHandler.prototype = {
+  on: function messageHandlerOn(actionName, handler, scope) {
+    var ah = this.actionHandler;
+    if (ah[actionName]) {
+      error('There is already an actionName called "' + actionName + '"');
+    }
+    ah[actionName] = [handler, scope];
+  },
+  /**
+   * Sends a message to the comObj to invoke the action with the supplied data.
+   * @param {String} actionName Action to call.
+   * @param {JSON} data JSON data to send.
+   * @param {Array} [transfers] Optional list of transfers/ArrayBuffers
+   */
+  send: function messageHandlerSend(actionName, data, transfers) {
+    var message = {
+      sourceName: this.sourceName,
+      targetName: this.targetName,
+      action: actionName,
+      data: data
+    };
+    this.postMessage(message, transfers);
+  },
+  /**
+   * Sends a message to the comObj to invoke the action with the supplied data.
+   * Expects that other side will callback with the response.
+   * @param {String} actionName Action to call.
+   * @param {JSON} data JSON data to send.
+   * @param {Array} [transfers] Optional list of transfers/ArrayBuffers.
+   * @returns {Promise} Promise to be resolved with response data.
+   */
+  sendWithPromise:
+    function messageHandlerSendWithPromise(actionName, data, transfers) {
+    var callbackId = this.callbackIndex++;
+    var message = {
+      sourceName: this.sourceName,
+      targetName: this.targetName,
+      action: actionName,
+      data: data,
+      callbackId: callbackId
+    };
+    var capability = createPromiseCapability();
+    this.callbacksCapabilities[callbackId] = capability;
+    try {
+      this.postMessage(message, transfers);
+    } catch (e) {
+      capability.reject(e);
+    }
+    return capability.promise;
+  },
+  /**
+   * Sends raw message to the comObj.
+   * @private
+   * @param message {Object} Raw message.
+   * @param transfers List of transfers/ArrayBuffers, or undefined.
+   */
+  postMessage: function (message, transfers) {
+    if (transfers && this.postMessageTransfers) {
+      this.comObj.postMessage(message, transfers);
+    } else {
+      this.comObj.postMessage(message);
+    }
+  },
+
+  destroy: function () {
+    this.comObj.removeEventListener('message', this._onComObjOnMessage);
+  }
+};
+
+function loadJpegStream(id, imageUrl, objs) {
+  var img = new Image();
+  img.onload = (function loadJpegStream_onloadClosure() {
+    objs.resolve(id, img);
+  });
+  img.onerror = (function loadJpegStream_onerrorClosure() {
+    objs.resolve(id, null);
+    warn('Error during JPEG image loading');
+  });
+  img.src = imageUrl;
+}
+
+exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;
+exports.IDENTITY_MATRIX = IDENTITY_MATRIX;
+exports.OPS = OPS;
+exports.VERBOSITY_LEVELS = VERBOSITY_LEVELS;
+exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;
+exports.AnnotationBorderStyleType = AnnotationBorderStyleType;
+exports.AnnotationFieldFlag = AnnotationFieldFlag;
+exports.AnnotationFlag = AnnotationFlag;
+exports.AnnotationType = AnnotationType;
+exports.FontType = FontType;
+exports.ImageKind = ImageKind;
+exports.CMapCompressionType = CMapCompressionType;
+exports.InvalidPDFException = InvalidPDFException;
+exports.MessageHandler = MessageHandler;
+exports.MissingDataException = MissingDataException;
+exports.MissingPDFException = MissingPDFException;
+exports.NotImplementedException = NotImplementedException;
+exports.PageViewport = PageViewport;
+exports.PasswordException = PasswordException;
+exports.PasswordResponses = PasswordResponses;
+exports.StatTimer = StatTimer;
+exports.StreamType = StreamType;
+exports.TextRenderingMode = TextRenderingMode;
+exports.UnexpectedResponseException = UnexpectedResponseException;
+exports.UnknownErrorException = UnknownErrorException;
+exports.Util = Util;
+exports.XRefParseException = XRefParseException;
+exports.arrayByteLength = arrayByteLength;
+exports.arraysToBytes = arraysToBytes;
+exports.assert = assert;
+exports.bytesToString = bytesToString;
+exports.createBlob = createBlob;
+exports.createPromiseCapability = createPromiseCapability;
+exports.createObjectURL = createObjectURL;
+exports.deprecated = deprecated;
+exports.error = error;
+exports.getLookupTableFactory = getLookupTableFactory;
+exports.getVerbosityLevel = getVerbosityLevel;
+exports.globalScope = globalScope;
+exports.info = info;
+exports.isArray = isArray;
+exports.isArrayBuffer = isArrayBuffer;
+exports.isBool = isBool;
+exports.isEmptyObj = isEmptyObj;
+exports.isInt = isInt;
+exports.isNum = isNum;
+exports.isString = isString;
+exports.isSpace = isSpace;
+exports.isNodeJS = isNodeJS;
+exports.isSameOrigin = isSameOrigin;
+exports.createValidAbsoluteUrl = createValidAbsoluteUrl;
+exports.isLittleEndian = isLittleEndian;
+exports.isEvalSupported = isEvalSupported;
+exports.loadJpegStream = loadJpegStream;
+exports.log2 = log2;
+exports.readInt8 = readInt8;
+exports.readUint16 = readUint16;
+exports.readUint32 = readUint32;
+exports.removeNullCharacters = removeNullCharacters;
+exports.setVerbosityLevel = setVerbosityLevel;
+exports.shadow = shadow;
+exports.string32 = string32;
+exports.stringToBytes = stringToBytes;
+exports.stringToPDFString = stringToPDFString;
+exports.stringToUTF8String = stringToUTF8String;
+exports.utf8StringToString = utf8StringToString;
+exports.warn = warn;
+}));
+
+
+
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3.4.3 on Mon Mar 13 2017 15:52:29 GMT+0000 (Coordinated Universal Time) +
+ + + + + diff --git a/api/draft/styles/jsdoc-default.css b/api/draft/styles/jsdoc-default.css new file mode 100644 index 00000000..ede19194 --- /dev/null +++ b/api/draft/styles/jsdoc-default.css @@ -0,0 +1,354 @@ +@font-face { + font-family: 'Open Sans'; + font-weight: normal; + font-style: normal; + src: url('../fonts/OpenSans-Regular-webfont.eot'); + src: + local('Open Sans'), + local('OpenSans'), + url('../fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/OpenSans-Regular-webfont.woff') format('woff'), + url('../fonts/OpenSans-Regular-webfont.svg#open_sansregular') format('svg'); +} + +@font-face { + font-family: 'Open Sans Light'; + font-weight: normal; + font-style: normal; + src: url('../fonts/OpenSans-Light-webfont.eot'); + src: + local('Open Sans Light'), + local('OpenSans Light'), + url('../fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/OpenSans-Light-webfont.woff') format('woff'), + url('../fonts/OpenSans-Light-webfont.svg#open_sanslight') format('svg'); +} + +html +{ + overflow: auto; + background-color: #fff; + font-size: 14px; +} + +body +{ + font-family: 'Open Sans', sans-serif; + line-height: 1.5; + color: #4d4e53; + background-color: white; +} + +a, a:visited, a:active { + color: #0095dd; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +header +{ + display: block; + padding: 0px 4px; +} + +tt, code, kbd, samp { + font-family: Consolas, Monaco, 'Andale Mono', monospace; +} + +.class-description { + font-size: 130%; + line-height: 140%; + margin-bottom: 1em; + margin-top: 1em; +} + +.class-description:empty { + margin: 0; +} + +#main { + float: left; + width: 70%; +} + +article dl { + margin-bottom: 40px; +} + +section +{ + display: block; + background-color: #fff; + padding: 12px 24px; + border-bottom: 1px solid #ccc; + margin-right: 30px; +} + +.variation { + display: none; +} + +.signature-attributes { + font-size: 60%; + color: #aaa; + font-style: italic; + font-weight: lighter; +} + +nav +{ + display: block; + float: right; + margin-top: 28px; + width: 30%; + box-sizing: border-box; + border-left: 1px solid #ccc; + padding-left: 16px; +} + +nav ul { + font-family: 'Lucida Grande', 'Lucida Sans Unicode', arial, sans-serif; + font-size: 100%; + line-height: 17px; + padding: 0; + margin: 0; + list-style-type: none; +} + +nav ul a, nav ul a:visited, nav ul a:active { + font-family: Consolas, Monaco, 'Andale Mono', monospace; + line-height: 18px; + color: #4D4E53; +} + +nav h3 { + margin-top: 12px; +} + +nav li { + margin-top: 6px; +} + +footer { + display: block; + padding: 6px; + margin-top: 12px; + font-style: italic; + font-size: 90%; +} + +h1, h2, h3, h4 { + font-weight: 200; + margin: 0; +} + +h1 +{ + font-family: 'Open Sans Light', sans-serif; + font-size: 48px; + letter-spacing: -2px; + margin: 12px 24px 20px; +} + +h2, h3.subsection-title +{ + font-size: 30px; + font-weight: 700; + letter-spacing: -1px; + margin-bottom: 12px; +} + +h3 +{ + font-size: 24px; + letter-spacing: -0.5px; + margin-bottom: 12px; +} + +h4 +{ + font-size: 18px; + letter-spacing: -0.33px; + margin-bottom: 12px; + color: #4d4e53; +} + +h5, .container-overview .subsection-title +{ + font-size: 120%; + font-weight: bold; + letter-spacing: -0.01em; + margin: 8px 0 3px 0; +} + +h6 +{ + font-size: 100%; + letter-spacing: -0.01em; + margin: 6px 0 3px 0; + font-style: italic; +} + +table +{ + border-spacing: 0; + border: 0; + border-collapse: collapse; +} + +td, th +{ + border: 1px solid #ddd; + margin: 0px; + text-align: left; + vertical-align: top; + padding: 4px 6px; + display: table-cell; +} + +thead tr +{ + background-color: #ddd; + font-weight: bold; +} + +th { border-right: 1px solid #aaa; } +tr > th:last-child { border-right: 1px solid #ddd; } + +.ancestors { color: #999; } +.ancestors a +{ + color: #999 !important; + text-decoration: none; +} + +.clear +{ + clear: both; +} + +.important +{ + font-weight: bold; + color: #950B02; +} + +.yes-def { + text-indent: -1000px; +} + +.type-signature { + color: #aaa; +} + +.name, .signature { + font-family: Consolas, Monaco, 'Andale Mono', monospace; +} + +.details { margin-top: 14px; border-left: 2px solid #DDD; } +.details dt { width: 120px; float: left; padding-left: 10px; padding-top: 6px; } +.details dd { margin-left: 70px; } +.details ul { margin: 0; } +.details ul { list-style-type: none; } +.details li { margin-left: 30px; padding-top: 6px; } +.details pre.prettyprint { margin: 0 } +.details .object-value { padding-top: 0; } + +.description { + margin-bottom: 1em; + margin-top: 1em; +} + +.code-caption +{ + font-style: italic; + font-size: 107%; + margin: 0; +} + +.prettyprint +{ + border: 1px solid #ddd; + width: 80%; + overflow: auto; +} + +.prettyprint.source { + width: inherit; +} + +.prettyprint code +{ + font-size: 100%; + line-height: 18px; + display: block; + padding: 4px 12px; + margin: 0; + background-color: #fff; + color: #4D4E53; +} + +.prettyprint code span.line +{ + display: inline-block; +} + +.prettyprint.linenums +{ + padding-left: 70px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.prettyprint.linenums ol +{ + padding-left: 0; +} + +.prettyprint.linenums li +{ + border-left: 3px #ddd solid; +} + +.prettyprint.linenums li.selected, +.prettyprint.linenums li.selected * +{ + background-color: lightyellow; +} + +.prettyprint.linenums li * +{ + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; +} + +.params .name, .props .name, .name code { + color: #4D4E53; + font-family: Consolas, Monaco, 'Andale Mono', monospace; + font-size: 100%; +} + +.params td.description > p:first-child, +.props td.description > p:first-child +{ + margin-top: 0; + padding-top: 0; +} + +.params td.description > p:last-child, +.props td.description > p:last-child +{ + margin-bottom: 0; + padding-bottom: 0; +} + +.disabled { + color: #454545; +} diff --git a/api/draft/styles/prettify-jsdoc.css b/api/draft/styles/prettify-jsdoc.css new file mode 100644 index 00000000..5a2526e3 --- /dev/null +++ b/api/draft/styles/prettify-jsdoc.css @@ -0,0 +1,111 @@ +/* JSDoc prettify.js theme */ + +/* plain text */ +.pln { + color: #000000; + font-weight: normal; + font-style: normal; +} + +/* string content */ +.str { + color: #006400; + font-weight: normal; + font-style: normal; +} + +/* a keyword */ +.kwd { + color: #000000; + font-weight: bold; + font-style: normal; +} + +/* a comment */ +.com { + font-weight: normal; + font-style: italic; +} + +/* a type name */ +.typ { + color: #000000; + font-weight: normal; + font-style: normal; +} + +/* a literal value */ +.lit { + color: #006400; + font-weight: normal; + font-style: normal; +} + +/* punctuation */ +.pun { + color: #000000; + font-weight: bold; + font-style: normal; +} + +/* lisp open bracket */ +.opn { + color: #000000; + font-weight: bold; + font-style: normal; +} + +/* lisp close bracket */ +.clo { + color: #000000; + font-weight: bold; + font-style: normal; +} + +/* a markup tag name */ +.tag { + color: #006400; + font-weight: normal; + font-style: normal; +} + +/* a markup attribute name */ +.atn { + color: #006400; + font-weight: normal; + font-style: normal; +} + +/* a markup attribute value */ +.atv { + color: #006400; + font-weight: normal; + font-style: normal; +} + +/* a declaration */ +.dec { + color: #000000; + font-weight: bold; + font-style: normal; +} + +/* a variable name */ +.var { + color: #000000; + font-weight: normal; + font-style: normal; +} + +/* a function name */ +.fun { + color: #000000; + font-weight: bold; + font-style: normal; +} + +/* Specify class=linenums on a pre to get line numbering */ +ol.linenums { + margin-top: 0; + margin-bottom: 0; +} diff --git a/api/draft/styles/prettify-tomorrow.css b/api/draft/styles/prettify-tomorrow.css new file mode 100644 index 00000000..b6f92a78 --- /dev/null +++ b/api/draft/styles/prettify-tomorrow.css @@ -0,0 +1,132 @@ +/* Tomorrow Theme */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* Pretty printing styles. Used with prettify.js. */ +/* SPAN elements with the classes below are added by prettyprint. */ +/* plain text */ +.pln { + color: #4d4d4c; } + +@media screen { + /* string content */ + .str { + color: #718c00; } + + /* a keyword */ + .kwd { + color: #8959a8; } + + /* a comment */ + .com { + color: #8e908c; } + + /* a type name */ + .typ { + color: #4271ae; } + + /* a literal value */ + .lit { + color: #f5871f; } + + /* punctuation */ + .pun { + color: #4d4d4c; } + + /* lisp open bracket */ + .opn { + color: #4d4d4c; } + + /* lisp close bracket */ + .clo { + color: #4d4d4c; } + + /* a markup tag name */ + .tag { + color: #c82829; } + + /* a markup attribute name */ + .atn { + color: #f5871f; } + + /* a markup attribute value */ + .atv { + color: #3e999f; } + + /* a declaration */ + .dec { + color: #f5871f; } + + /* a variable name */ + .var { + color: #c82829; } + + /* a function name */ + .fun { + color: #4271ae; } } +/* Use higher contrast and text-weight for printable form. */ +@media print, projection { + .str { + color: #060; } + + .kwd { + color: #006; + font-weight: bold; } + + .com { + color: #600; + font-style: italic; } + + .typ { + color: #404; + font-weight: bold; } + + .lit { + color: #044; } + + .pun, .opn, .clo { + color: #440; } + + .tag { + color: #006; + font-weight: bold; } + + .atn { + color: #404; } + + .atv { + color: #060; } } +/* Style */ +/* +pre.prettyprint { + background: white; + font-family: Consolas, Monaco, 'Andale Mono', monospace; + font-size: 12px; + line-height: 1.5; + border: 1px solid #ccc; + padding: 10px; } +*/ + +/* Specify class=linenums on a pre to get line numbering */ +ol.linenums { + margin-top: 0; + margin-bottom: 0; } + +/* IE indents via margin-left */ +li.L0, +li.L1, +li.L2, +li.L3, +li.L4, +li.L5, +li.L6, +li.L7, +li.L8, +li.L9 { + /* */ } + +/* Alternate shading for lines */ +li.L1, +li.L3, +li.L5, +li.L7, +li.L9 { + /* */ } diff --git a/api/index.html b/api/index.html new file mode 100644 index 00000000..9ffa9408 --- /dev/null +++ b/api/index.html @@ -0,0 +1,49 @@ + + + + + + + + + API + + + + + + + +
+
+

API

+

We’re currently working on better API docs, but the API is well documented in api.js.

+
+
+
+
+
+

©Mozilla and individual contributors

PDF.js is licensed under Apache, +documentation is licensed under CC BY-SA 2.5

+
+
+ + + + + \ No newline at end of file diff --git a/build/pdf.js b/build/pdf.js new file mode 100644 index 00000000..c1ea632e --- /dev/null +++ b/build/pdf.js @@ -0,0 +1,9895 @@ +/* Copyright 2017 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define("pdfjs-dist/build/pdf", [], factory); + else if(typeof exports === 'object') + exports["pdfjs-dist/build/pdf"] = factory(); + else + root["pdfjs-dist/build/pdf"] = root.pdfjsDistBuildPdf = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __w_pdfjs_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; +/******/ +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __w_pdfjs_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __w_pdfjs_require__.c = installedModules; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __w_pdfjs_require__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __w_pdfjs_require__.d = function(exports, name, getter) { +/******/ if(!__w_pdfjs_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __w_pdfjs_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __w_pdfjs_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __w_pdfjs_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __w_pdfjs_require__(__w_pdfjs_require__.s = 14); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) { +var compatibility = __w_pdfjs_require__(13); +var globalScope = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : this; +var FONT_IDENTITY_MATRIX = [ + 0.001, + 0, + 0, + 0.001, + 0, + 0 +]; +var TextRenderingMode = { + FILL: 0, + STROKE: 1, + FILL_STROKE: 2, + INVISIBLE: 3, + FILL_ADD_TO_PATH: 4, + STROKE_ADD_TO_PATH: 5, + FILL_STROKE_ADD_TO_PATH: 6, + ADD_TO_PATH: 7, + FILL_STROKE_MASK: 3, + ADD_TO_PATH_FLAG: 4 +}; +var ImageKind = { + GRAYSCALE_1BPP: 1, + RGB_24BPP: 2, + RGBA_32BPP: 3 +}; +var AnnotationType = { + TEXT: 1, + LINK: 2, + FREETEXT: 3, + LINE: 4, + SQUARE: 5, + CIRCLE: 6, + POLYGON: 7, + POLYLINE: 8, + HIGHLIGHT: 9, + UNDERLINE: 10, + SQUIGGLY: 11, + STRIKEOUT: 12, + STAMP: 13, + CARET: 14, + INK: 15, + POPUP: 16, + FILEATTACHMENT: 17, + SOUND: 18, + MOVIE: 19, + WIDGET: 20, + SCREEN: 21, + PRINTERMARK: 22, + TRAPNET: 23, + WATERMARK: 24, + THREED: 25, + REDACT: 26 +}; +var AnnotationFlag = { + INVISIBLE: 0x01, + HIDDEN: 0x02, + PRINT: 0x04, + NOZOOM: 0x08, + NOROTATE: 0x10, + NOVIEW: 0x20, + READONLY: 0x40, + LOCKED: 0x80, + TOGGLENOVIEW: 0x100, + LOCKEDCONTENTS: 0x200 +}; +var AnnotationFieldFlag = { + READONLY: 0x0000001, + REQUIRED: 0x0000002, + NOEXPORT: 0x0000004, + MULTILINE: 0x0001000, + PASSWORD: 0x0002000, + NOTOGGLETOOFF: 0x0004000, + RADIO: 0x0008000, + PUSHBUTTON: 0x0010000, + COMBO: 0x0020000, + EDIT: 0x0040000, + SORT: 0x0080000, + FILESELECT: 0x0100000, + MULTISELECT: 0x0200000, + DONOTSPELLCHECK: 0x0400000, + DONOTSCROLL: 0x0800000, + COMB: 0x1000000, + RICHTEXT: 0x2000000, + RADIOSINUNISON: 0x2000000, + COMMITONSELCHANGE: 0x4000000 +}; +var AnnotationBorderStyleType = { + SOLID: 1, + DASHED: 2, + BEVELED: 3, + INSET: 4, + UNDERLINE: 5 +}; +var StreamType = { + UNKNOWN: 0, + FLATE: 1, + LZW: 2, + DCT: 3, + JPX: 4, + JBIG: 5, + A85: 6, + AHX: 7, + CCF: 8, + RL: 9 +}; +var FontType = { + UNKNOWN: 0, + TYPE1: 1, + TYPE1C: 2, + CIDFONTTYPE0: 3, + CIDFONTTYPE0C: 4, + TRUETYPE: 5, + CIDFONTTYPE2: 6, + TYPE3: 7, + OPENTYPE: 8, + TYPE0: 9, + MMTYPE1: 10 +}; +var VERBOSITY_LEVELS = { + errors: 0, + warnings: 1, + infos: 5 +}; +var CMapCompressionType = { + NONE: 0, + BINARY: 1, + STREAM: 2 +}; +var OPS = { + dependency: 1, + setLineWidth: 2, + setLineCap: 3, + setLineJoin: 4, + setMiterLimit: 5, + setDash: 6, + setRenderingIntent: 7, + setFlatness: 8, + setGState: 9, + save: 10, + restore: 11, + transform: 12, + moveTo: 13, + lineTo: 14, + curveTo: 15, + curveTo2: 16, + curveTo3: 17, + closePath: 18, + rectangle: 19, + stroke: 20, + closeStroke: 21, + fill: 22, + eoFill: 23, + fillStroke: 24, + eoFillStroke: 25, + closeFillStroke: 26, + closeEOFillStroke: 27, + endPath: 28, + clip: 29, + eoClip: 30, + beginText: 31, + endText: 32, + setCharSpacing: 33, + setWordSpacing: 34, + setHScale: 35, + setLeading: 36, + setFont: 37, + setTextRenderingMode: 38, + setTextRise: 39, + moveText: 40, + setLeadingMoveText: 41, + setTextMatrix: 42, + nextLine: 43, + showText: 44, + showSpacedText: 45, + nextLineShowText: 46, + nextLineSetSpacingShowText: 47, + setCharWidth: 48, + setCharWidthAndBounds: 49, + setStrokeColorSpace: 50, + setFillColorSpace: 51, + setStrokeColor: 52, + setStrokeColorN: 53, + setFillColor: 54, + setFillColorN: 55, + setStrokeGray: 56, + setFillGray: 57, + setStrokeRGBColor: 58, + setFillRGBColor: 59, + setStrokeCMYKColor: 60, + setFillCMYKColor: 61, + shadingFill: 62, + beginInlineImage: 63, + beginImageData: 64, + endInlineImage: 65, + paintXObject: 66, + markPoint: 67, + markPointProps: 68, + beginMarkedContent: 69, + beginMarkedContentProps: 70, + endMarkedContent: 71, + beginCompat: 72, + endCompat: 73, + paintFormXObjectBegin: 74, + paintFormXObjectEnd: 75, + beginGroup: 76, + endGroup: 77, + beginAnnotations: 78, + endAnnotations: 79, + beginAnnotation: 80, + endAnnotation: 81, + paintJpegXObject: 82, + paintImageMaskXObject: 83, + paintImageMaskXObjectGroup: 84, + paintImageXObject: 85, + paintInlineImageXObject: 86, + paintInlineImageXObjectGroup: 87, + paintImageXObjectRepeat: 88, + paintImageMaskXObjectRepeat: 89, + paintSolidColorImageMask: 90, + constructPath: 91 +}; +var verbosity = VERBOSITY_LEVELS.warnings; +function setVerbosityLevel(level) { + verbosity = level; +} +function getVerbosityLevel() { + return verbosity; +} +function info(msg) { + if (verbosity >= VERBOSITY_LEVELS.infos) { + console.log('Info: ' + msg); + } +} +function warn(msg) { + if (verbosity >= VERBOSITY_LEVELS.warnings) { + console.log('Warning: ' + msg); + } +} +function deprecated(details) { + console.log('Deprecated API usage: ' + details); +} +function error(msg) { + if (verbosity >= VERBOSITY_LEVELS.errors) { + console.log('Error: ' + msg); + console.log(backtrace()); + } + throw new Error(msg); +} +function backtrace() { + try { + throw new Error(); + } catch (e) { + return e.stack ? e.stack.split('\n').slice(2).join('\n') : ''; + } +} +function assert(cond, msg) { + if (!cond) { + error(msg); + } +} +var UNSUPPORTED_FEATURES = { + unknown: 'unknown', + forms: 'forms', + javaScript: 'javaScript', + smask: 'smask', + shadingPattern: 'shadingPattern', + font: 'font' +}; +function isSameOrigin(baseUrl, otherUrl) { + try { + var base = new URL(baseUrl); + if (!base.origin || base.origin === 'null') { + return false; + } + } catch (e) { + return false; + } + var other = new URL(otherUrl, base); + return base.origin === other.origin; +} +function isValidProtocol(url) { + if (!url) { + return false; + } + switch (url.protocol) { + case 'http:': + case 'https:': + case 'ftp:': + case 'mailto:': + case 'tel:': + return true; + default: + return false; + } +} +function createValidAbsoluteUrl(url, baseUrl) { + if (!url) { + return null; + } + try { + var absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url); + if (isValidProtocol(absoluteUrl)) { + return absoluteUrl; + } + } catch (ex) { + } + return null; +} +function shadow(obj, prop, value) { + Object.defineProperty(obj, prop, { + value: value, + enumerable: true, + configurable: true, + writable: false + }); + return value; +} +function getLookupTableFactory(initializer) { + var lookup; + return function () { + if (initializer) { + lookup = Object.create(null); + initializer(lookup); + initializer = null; + } + return lookup; + }; +} +var PasswordResponses = { + NEED_PASSWORD: 1, + INCORRECT_PASSWORD: 2 +}; +var PasswordException = function PasswordExceptionClosure() { + function PasswordException(msg, code) { + this.name = 'PasswordException'; + this.message = msg; + this.code = code; + } + PasswordException.prototype = new Error(); + PasswordException.constructor = PasswordException; + return PasswordException; +}(); +var UnknownErrorException = function UnknownErrorExceptionClosure() { + function UnknownErrorException(msg, details) { + this.name = 'UnknownErrorException'; + this.message = msg; + this.details = details; + } + UnknownErrorException.prototype = new Error(); + UnknownErrorException.constructor = UnknownErrorException; + return UnknownErrorException; +}(); +var InvalidPDFException = function InvalidPDFExceptionClosure() { + function InvalidPDFException(msg) { + this.name = 'InvalidPDFException'; + this.message = msg; + } + InvalidPDFException.prototype = new Error(); + InvalidPDFException.constructor = InvalidPDFException; + return InvalidPDFException; +}(); +var MissingPDFException = function MissingPDFExceptionClosure() { + function MissingPDFException(msg) { + this.name = 'MissingPDFException'; + this.message = msg; + } + MissingPDFException.prototype = new Error(); + MissingPDFException.constructor = MissingPDFException; + return MissingPDFException; +}(); +var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() { + function UnexpectedResponseException(msg, status) { + this.name = 'UnexpectedResponseException'; + this.message = msg; + this.status = status; + } + UnexpectedResponseException.prototype = new Error(); + UnexpectedResponseException.constructor = UnexpectedResponseException; + return UnexpectedResponseException; +}(); +var NotImplementedException = function NotImplementedExceptionClosure() { + function NotImplementedException(msg) { + this.message = msg; + } + NotImplementedException.prototype = new Error(); + NotImplementedException.prototype.name = 'NotImplementedException'; + NotImplementedException.constructor = NotImplementedException; + return NotImplementedException; +}(); +var MissingDataException = function MissingDataExceptionClosure() { + function MissingDataException(begin, end) { + this.begin = begin; + this.end = end; + this.message = 'Missing data [' + begin + ', ' + end + ')'; + } + MissingDataException.prototype = new Error(); + MissingDataException.prototype.name = 'MissingDataException'; + MissingDataException.constructor = MissingDataException; + return MissingDataException; +}(); +var XRefParseException = function XRefParseExceptionClosure() { + function XRefParseException(msg) { + this.message = msg; + } + XRefParseException.prototype = new Error(); + XRefParseException.prototype.name = 'XRefParseException'; + XRefParseException.constructor = XRefParseException; + return XRefParseException; +}(); +var NullCharactersRegExp = /\x00/g; +function removeNullCharacters(str) { + if (typeof str !== 'string') { + warn('The argument for removeNullCharacters must be a string.'); + return str; + } + return str.replace(NullCharactersRegExp, ''); +} +function bytesToString(bytes) { + assert(bytes !== null && typeof bytes === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString'); + var length = bytes.length; + var MAX_ARGUMENT_COUNT = 8192; + if (length < MAX_ARGUMENT_COUNT) { + return String.fromCharCode.apply(null, bytes); + } + var strBuf = []; + for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) { + var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); + var chunk = bytes.subarray(i, chunkEnd); + strBuf.push(String.fromCharCode.apply(null, chunk)); + } + return strBuf.join(''); +} +function stringToBytes(str) { + assert(typeof str === 'string', 'Invalid argument for stringToBytes'); + var length = str.length; + var bytes = new Uint8Array(length); + for (var i = 0; i < length; ++i) { + bytes[i] = str.charCodeAt(i) & 0xFF; + } + return bytes; +} +function arrayByteLength(arr) { + if (arr.length !== undefined) { + return arr.length; + } + assert(arr.byteLength !== undefined); + return arr.byteLength; +} +function arraysToBytes(arr) { + if (arr.length === 1 && arr[0] instanceof Uint8Array) { + return arr[0]; + } + var resultLength = 0; + var i, ii = arr.length; + var item, itemLength; + for (i = 0; i < ii; i++) { + item = arr[i]; + itemLength = arrayByteLength(item); + resultLength += itemLength; + } + var pos = 0; + var data = new Uint8Array(resultLength); + for (i = 0; i < ii; i++) { + item = arr[i]; + if (!(item instanceof Uint8Array)) { + if (typeof item === 'string') { + item = stringToBytes(item); + } else { + item = new Uint8Array(item); + } + } + itemLength = item.byteLength; + data.set(item, pos); + pos += itemLength; + } + return data; +} +function string32(value) { + return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); +} +function log2(x) { + var n = 1, i = 0; + while (x > n) { + n <<= 1; + i++; + } + return i; +} +function readInt8(data, start) { + return data[start] << 24 >> 24; +} +function readUint16(data, offset) { + return data[offset] << 8 | data[offset + 1]; +} +function readUint32(data, offset) { + return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0; +} +function isLittleEndian() { + var buffer8 = new Uint8Array(2); + buffer8[0] = 1; + var buffer16 = new Uint16Array(buffer8.buffer); + return buffer16[0] === 1; +} +function isEvalSupported() { + try { + new Function(''); + return true; + } catch (e) { + return false; + } +} +var Uint32ArrayView = function Uint32ArrayViewClosure() { + function Uint32ArrayView(buffer, length) { + this.buffer = buffer; + this.byteLength = buffer.length; + this.length = length === undefined ? this.byteLength >> 2 : length; + ensureUint32ArrayViewProps(this.length); + } + Uint32ArrayView.prototype = Object.create(null); + var uint32ArrayViewSetters = 0; + function createUint32ArrayProp(index) { + return { + get: function () { + var buffer = this.buffer, offset = index << 2; + return (buffer[offset] | buffer[offset + 1] << 8 | buffer[offset + 2] << 16 | buffer[offset + 3] << 24) >>> 0; + }, + set: function (value) { + var buffer = this.buffer, offset = index << 2; + buffer[offset] = value & 255; + buffer[offset + 1] = value >> 8 & 255; + buffer[offset + 2] = value >> 16 & 255; + buffer[offset + 3] = value >>> 24 & 255; + } + }; + } + function ensureUint32ArrayViewProps(length) { + while (uint32ArrayViewSetters < length) { + Object.defineProperty(Uint32ArrayView.prototype, uint32ArrayViewSetters, createUint32ArrayProp(uint32ArrayViewSetters)); + uint32ArrayViewSetters++; + } + } + return Uint32ArrayView; +}(); +exports.Uint32ArrayView = Uint32ArrayView; +var IDENTITY_MATRIX = [ + 1, + 0, + 0, + 1, + 0, + 0 +]; +var Util = function UtilClosure() { + function Util() { + } + var rgbBuf = [ + 'rgb(', + 0, + ',', + 0, + ',', + 0, + ')' + ]; + Util.makeCssRgb = function Util_makeCssRgb(r, g, b) { + rgbBuf[1] = r; + rgbBuf[3] = g; + rgbBuf[5] = b; + return rgbBuf.join(''); + }; + Util.transform = function Util_transform(m1, m2) { + return [ + m1[0] * m2[0] + m1[2] * m2[1], + m1[1] * m2[0] + m1[3] * m2[1], + m1[0] * m2[2] + m1[2] * m2[3], + m1[1] * m2[2] + m1[3] * m2[3], + m1[0] * m2[4] + m1[2] * m2[5] + m1[4], + m1[1] * m2[4] + m1[3] * m2[5] + m1[5] + ]; + }; + Util.applyTransform = function Util_applyTransform(p, m) { + var xt = p[0] * m[0] + p[1] * m[2] + m[4]; + var yt = p[0] * m[1] + p[1] * m[3] + m[5]; + return [ + xt, + yt + ]; + }; + Util.applyInverseTransform = function Util_applyInverseTransform(p, m) { + var d = m[0] * m[3] - m[1] * m[2]; + var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; + var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; + return [ + xt, + yt + ]; + }; + Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) { + var p1 = Util.applyTransform(r, m); + var p2 = Util.applyTransform(r.slice(2, 4), m); + var p3 = Util.applyTransform([ + r[0], + r[3] + ], m); + var p4 = Util.applyTransform([ + r[2], + r[1] + ], m); + return [ + Math.min(p1[0], p2[0], p3[0], p4[0]), + Math.min(p1[1], p2[1], p3[1], p4[1]), + Math.max(p1[0], p2[0], p3[0], p4[0]), + Math.max(p1[1], p2[1], p3[1], p4[1]) + ]; + }; + Util.inverseTransform = function Util_inverseTransform(m) { + var d = m[0] * m[3] - m[1] * m[2]; + return [ + m[3] / d, + -m[1] / d, + -m[2] / d, + m[0] / d, + (m[2] * m[5] - m[4] * m[3]) / d, + (m[4] * m[1] - m[5] * m[0]) / d + ]; + }; + Util.apply3dTransform = function Util_apply3dTransform(m, v) { + return [ + m[0] * v[0] + m[1] * v[1] + m[2] * v[2], + m[3] * v[0] + m[4] * v[1] + m[5] * v[2], + m[6] * v[0] + m[7] * v[1] + m[8] * v[2] + ]; + }; + Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) { + var transpose = [ + m[0], + m[2], + m[1], + m[3] + ]; + var a = m[0] * transpose[0] + m[1] * transpose[2]; + var b = m[0] * transpose[1] + m[1] * transpose[3]; + var c = m[2] * transpose[0] + m[3] * transpose[2]; + var d = m[2] * transpose[1] + m[3] * transpose[3]; + var first = (a + d) / 2; + var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2; + var sx = first + second || 1; + var sy = first - second || 1; + return [ + Math.sqrt(sx), + Math.sqrt(sy) + ]; + }; + Util.normalizeRect = function Util_normalizeRect(rect) { + var r = rect.slice(0); + if (rect[0] > rect[2]) { + r[0] = rect[2]; + r[2] = rect[0]; + } + if (rect[1] > rect[3]) { + r[1] = rect[3]; + r[3] = rect[1]; + } + return r; + }; + Util.intersect = function Util_intersect(rect1, rect2) { + function compare(a, b) { + return a - b; + } + var orderedX = [ + rect1[0], + rect1[2], + rect2[0], + rect2[2] + ].sort(compare), orderedY = [ + rect1[1], + rect1[3], + rect2[1], + rect2[3] + ].sort(compare), result = []; + rect1 = Util.normalizeRect(rect1); + rect2 = Util.normalizeRect(rect2); + if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) { + result[0] = orderedX[1]; + result[2] = orderedX[2]; + } else { + return false; + } + if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) { + result[1] = orderedY[1]; + result[3] = orderedY[2]; + } else { + return false; + } + return result; + }; + Util.sign = function Util_sign(num) { + return num < 0 ? -1 : 1; + }; + var ROMAN_NUMBER_MAP = [ + '', + 'C', + 'CC', + 'CCC', + 'CD', + 'D', + 'DC', + 'DCC', + 'DCCC', + 'CM', + '', + 'X', + 'XX', + 'XXX', + 'XL', + 'L', + 'LX', + 'LXX', + 'LXXX', + 'XC', + '', + 'I', + 'II', + 'III', + 'IV', + 'V', + 'VI', + 'VII', + 'VIII', + 'IX' + ]; + Util.toRoman = function Util_toRoman(number, lowerCase) { + assert(isInt(number) && number > 0, 'The number should be a positive integer.'); + var pos, romanBuf = []; + while (number >= 1000) { + number -= 1000; + romanBuf.push('M'); + } + pos = number / 100 | 0; + number %= 100; + romanBuf.push(ROMAN_NUMBER_MAP[pos]); + pos = number / 10 | 0; + number %= 10; + romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]); + romanBuf.push(ROMAN_NUMBER_MAP[20 + number]); + var romanStr = romanBuf.join(''); + return lowerCase ? romanStr.toLowerCase() : romanStr; + }; + Util.appendToArray = function Util_appendToArray(arr1, arr2) { + Array.prototype.push.apply(arr1, arr2); + }; + Util.prependToArray = function Util_prependToArray(arr1, arr2) { + Array.prototype.unshift.apply(arr1, arr2); + }; + Util.extendObj = function extendObj(obj1, obj2) { + for (var key in obj2) { + obj1[key] = obj2[key]; + } + }; + Util.getInheritableProperty = function Util_getInheritableProperty(dict, name, getArray) { + while (dict && !dict.has(name)) { + dict = dict.get('Parent'); + } + if (!dict) { + return null; + } + return getArray ? dict.getArray(name) : dict.get(name); + }; + Util.inherit = function Util_inherit(sub, base, prototype) { + sub.prototype = Object.create(base.prototype); + sub.prototype.constructor = sub; + for (var prop in prototype) { + sub.prototype[prop] = prototype[prop]; + } + }; + Util.loadScript = function Util_loadScript(src, callback) { + var script = document.createElement('script'); + var loaded = false; + script.setAttribute('src', src); + if (callback) { + script.onload = function () { + if (!loaded) { + callback(); + } + loaded = true; + }; + } + document.getElementsByTagName('head')[0].appendChild(script); + }; + return Util; +}(); +var PageViewport = function PageViewportClosure() { + function PageViewport(viewBox, scale, rotation, offsetX, offsetY, dontFlip) { + this.viewBox = viewBox; + this.scale = scale; + this.rotation = rotation; + this.offsetX = offsetX; + this.offsetY = offsetY; + var centerX = (viewBox[2] + viewBox[0]) / 2; + var centerY = (viewBox[3] + viewBox[1]) / 2; + var rotateA, rotateB, rotateC, rotateD; + rotation = rotation % 360; + rotation = rotation < 0 ? rotation + 360 : rotation; + switch (rotation) { + case 180: + rotateA = -1; + rotateB = 0; + rotateC = 0; + rotateD = 1; + break; + case 90: + rotateA = 0; + rotateB = 1; + rotateC = 1; + rotateD = 0; + break; + case 270: + rotateA = 0; + rotateB = -1; + rotateC = -1; + rotateD = 0; + break; + default: + rotateA = 1; + rotateB = 0; + rotateC = 0; + rotateD = -1; + break; + } + if (dontFlip) { + rotateC = -rotateC; + rotateD = -rotateD; + } + var offsetCanvasX, offsetCanvasY; + var width, height; + if (rotateA === 0) { + offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; + offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; + width = Math.abs(viewBox[3] - viewBox[1]) * scale; + height = Math.abs(viewBox[2] - viewBox[0]) * scale; + } else { + offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; + offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; + width = Math.abs(viewBox[2] - viewBox[0]) * scale; + height = Math.abs(viewBox[3] - viewBox[1]) * scale; + } + this.transform = [ + rotateA * scale, + rotateB * scale, + rotateC * scale, + rotateD * scale, + offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, + offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY + ]; + this.width = width; + this.height = height; + this.fontScale = scale; + } + PageViewport.prototype = { + clone: function PageViewPort_clone(args) { + args = args || {}; + var scale = 'scale' in args ? args.scale : this.scale; + var rotation = 'rotation' in args ? args.rotation : this.rotation; + return new PageViewport(this.viewBox.slice(), scale, rotation, this.offsetX, this.offsetY, args.dontFlip); + }, + convertToViewportPoint: function PageViewport_convertToViewportPoint(x, y) { + return Util.applyTransform([ + x, + y + ], this.transform); + }, + convertToViewportRectangle: function PageViewport_convertToViewportRectangle(rect) { + var tl = Util.applyTransform([ + rect[0], + rect[1] + ], this.transform); + var br = Util.applyTransform([ + rect[2], + rect[3] + ], this.transform); + return [ + tl[0], + tl[1], + br[0], + br[1] + ]; + }, + convertToPdfPoint: function PageViewport_convertToPdfPoint(x, y) { + return Util.applyInverseTransform([ + x, + y + ], this.transform); + } + }; + return PageViewport; +}(); +var PDFStringTranslateTable = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0x2D8, + 0x2C7, + 0x2C6, + 0x2D9, + 0x2DD, + 0x2DB, + 0x2DA, + 0x2DC, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0x2022, + 0x2020, + 0x2021, + 0x2026, + 0x2014, + 0x2013, + 0x192, + 0x2044, + 0x2039, + 0x203A, + 0x2212, + 0x2030, + 0x201E, + 0x201C, + 0x201D, + 0x2018, + 0x2019, + 0x201A, + 0x2122, + 0xFB01, + 0xFB02, + 0x141, + 0x152, + 0x160, + 0x178, + 0x17D, + 0x131, + 0x142, + 0x153, + 0x161, + 0x17E, + 0, + 0x20AC +]; +function stringToPDFString(str) { + var i, n = str.length, strBuf = []; + if (str[0] === '\xFE' && str[1] === '\xFF') { + for (i = 2; i < n; i += 2) { + strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1))); + } + } else { + for (i = 0; i < n; ++i) { + var code = PDFStringTranslateTable[str.charCodeAt(i)]; + strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); + } + } + return strBuf.join(''); +} +function stringToUTF8String(str) { + return decodeURIComponent(escape(str)); +} +function utf8StringToString(str) { + return unescape(encodeURIComponent(str)); +} +function isEmptyObj(obj) { + for (var key in obj) { + return false; + } + return true; +} +function isBool(v) { + return typeof v === 'boolean'; +} +function isInt(v) { + return typeof v === 'number' && (v | 0) === v; +} +function isNum(v) { + return typeof v === 'number'; +} +function isString(v) { + return typeof v === 'string'; +} +function isArray(v) { + return v instanceof Array; +} +function isArrayBuffer(v) { + return typeof v === 'object' && v !== null && v.byteLength !== undefined; +} +function isSpace(ch) { + return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A; +} +function isNodeJS() { + if (typeof __pdfjsdev_webpack__ === 'undefined') { + return typeof process === 'object' && process + '' === '[object process]'; + } + return false; +} +function createPromiseCapability() { + var capability = {}; + capability.promise = new Promise(function (resolve, reject) { + capability.resolve = resolve; + capability.reject = reject; + }); + return capability; +} +var StatTimer = function StatTimerClosure() { + function rpad(str, pad, length) { + while (str.length < length) { + str += pad; + } + return str; + } + function StatTimer() { + this.started = Object.create(null); + this.times = []; + this.enabled = true; + } + StatTimer.prototype = { + time: function StatTimer_time(name) { + if (!this.enabled) { + return; + } + if (name in this.started) { + warn('Timer is already running for ' + name); + } + this.started[name] = Date.now(); + }, + timeEnd: function StatTimer_timeEnd(name) { + if (!this.enabled) { + return; + } + if (!(name in this.started)) { + warn('Timer has not been started for ' + name); + } + this.times.push({ + 'name': name, + 'start': this.started[name], + 'end': Date.now() + }); + delete this.started[name]; + }, + toString: function StatTimer_toString() { + var i, ii; + var times = this.times; + var out = ''; + var longest = 0; + for (i = 0, ii = times.length; i < ii; ++i) { + var name = times[i]['name']; + if (name.length > longest) { + longest = name.length; + } + } + for (i = 0, ii = times.length; i < ii; ++i) { + var span = times[i]; + var duration = span.end - span.start; + out += rpad(span['name'], ' ', longest) + ' ' + duration + 'ms\n'; + } + return out; + } + }; + return StatTimer; +}(); +var createBlob = function createBlob(data, contentType) { + if (typeof Blob !== 'undefined') { + return new Blob([data], { type: contentType }); + } + warn('The "Blob" constructor is not supported.'); +}; +var createObjectURL = function createObjectURLClosure() { + var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + return function createObjectURL(data, contentType, forceDataSchema) { + if (!forceDataSchema && typeof URL !== 'undefined' && URL.createObjectURL) { + var blob = createBlob(data, contentType); + return URL.createObjectURL(blob); + } + var buffer = 'data:' + contentType + ';base64,'; + for (var i = 0, ii = data.length; i < ii; i += 3) { + var b1 = data[i] & 0xFF; + var b2 = data[i + 1] & 0xFF; + var b3 = data[i + 2] & 0xFF; + var d1 = b1 >> 2, d2 = (b1 & 3) << 4 | b2 >> 4; + var d3 = i + 1 < ii ? (b2 & 0xF) << 2 | b3 >> 6 : 64; + var d4 = i + 2 < ii ? b3 & 0x3F : 64; + buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4]; + } + return buffer; + }; +}(); +function MessageHandler(sourceName, targetName, comObj) { + this.sourceName = sourceName; + this.targetName = targetName; + this.comObj = comObj; + this.callbackIndex = 1; + this.postMessageTransfers = true; + var callbacksCapabilities = this.callbacksCapabilities = Object.create(null); + var ah = this.actionHandler = Object.create(null); + this._onComObjOnMessage = function messageHandlerComObjOnMessage(event) { + var data = event.data; + if (data.targetName !== this.sourceName) { + return; + } + if (data.isReply) { + var callbackId = data.callbackId; + if (data.callbackId in callbacksCapabilities) { + var callback = callbacksCapabilities[callbackId]; + delete callbacksCapabilities[callbackId]; + if ('error' in data) { + callback.reject(data.error); + } else { + callback.resolve(data.data); + } + } else { + error('Cannot resolve callback ' + callbackId); + } + } else if (data.action in ah) { + var action = ah[data.action]; + if (data.callbackId) { + var sourceName = this.sourceName; + var targetName = data.sourceName; + Promise.resolve().then(function () { + return action[0].call(action[1], data.data); + }).then(function (result) { + comObj.postMessage({ + sourceName: sourceName, + targetName: targetName, + isReply: true, + callbackId: data.callbackId, + data: result + }); + }, function (reason) { + if (reason instanceof Error) { + reason = reason + ''; + } + comObj.postMessage({ + sourceName: sourceName, + targetName: targetName, + isReply: true, + callbackId: data.callbackId, + error: reason + }); + }); + } else { + action[0].call(action[1], data.data); + } + } else { + error('Unknown action from worker: ' + data.action); + } + }.bind(this); + comObj.addEventListener('message', this._onComObjOnMessage); +} +MessageHandler.prototype = { + on: function messageHandlerOn(actionName, handler, scope) { + var ah = this.actionHandler; + if (ah[actionName]) { + error('There is already an actionName called "' + actionName + '"'); + } + ah[actionName] = [ + handler, + scope + ]; + }, + send: function messageHandlerSend(actionName, data, transfers) { + var message = { + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + data: data + }; + this.postMessage(message, transfers); + }, + sendWithPromise: function messageHandlerSendWithPromise(actionName, data, transfers) { + var callbackId = this.callbackIndex++; + var message = { + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + data: data, + callbackId: callbackId + }; + var capability = createPromiseCapability(); + this.callbacksCapabilities[callbackId] = capability; + try { + this.postMessage(message, transfers); + } catch (e) { + capability.reject(e); + } + return capability.promise; + }, + postMessage: function (message, transfers) { + if (transfers && this.postMessageTransfers) { + this.comObj.postMessage(message, transfers); + } else { + this.comObj.postMessage(message); + } + }, + destroy: function () { + this.comObj.removeEventListener('message', this._onComObjOnMessage); + } +}; +function loadJpegStream(id, imageUrl, objs) { + var img = new Image(); + img.onload = function loadJpegStream_onloadClosure() { + objs.resolve(id, img); + }; + img.onerror = function loadJpegStream_onerrorClosure() { + objs.resolve(id, null); + warn('Error during JPEG image loading'); + }; + img.src = imageUrl; +} +exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX; +exports.IDENTITY_MATRIX = IDENTITY_MATRIX; +exports.OPS = OPS; +exports.VERBOSITY_LEVELS = VERBOSITY_LEVELS; +exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES; +exports.AnnotationBorderStyleType = AnnotationBorderStyleType; +exports.AnnotationFieldFlag = AnnotationFieldFlag; +exports.AnnotationFlag = AnnotationFlag; +exports.AnnotationType = AnnotationType; +exports.FontType = FontType; +exports.ImageKind = ImageKind; +exports.CMapCompressionType = CMapCompressionType; +exports.InvalidPDFException = InvalidPDFException; +exports.MessageHandler = MessageHandler; +exports.MissingDataException = MissingDataException; +exports.MissingPDFException = MissingPDFException; +exports.NotImplementedException = NotImplementedException; +exports.PageViewport = PageViewport; +exports.PasswordException = PasswordException; +exports.PasswordResponses = PasswordResponses; +exports.StatTimer = StatTimer; +exports.StreamType = StreamType; +exports.TextRenderingMode = TextRenderingMode; +exports.UnexpectedResponseException = UnexpectedResponseException; +exports.UnknownErrorException = UnknownErrorException; +exports.Util = Util; +exports.XRefParseException = XRefParseException; +exports.arrayByteLength = arrayByteLength; +exports.arraysToBytes = arraysToBytes; +exports.assert = assert; +exports.bytesToString = bytesToString; +exports.createBlob = createBlob; +exports.createPromiseCapability = createPromiseCapability; +exports.createObjectURL = createObjectURL; +exports.deprecated = deprecated; +exports.error = error; +exports.getLookupTableFactory = getLookupTableFactory; +exports.getVerbosityLevel = getVerbosityLevel; +exports.globalScope = globalScope; +exports.info = info; +exports.isArray = isArray; +exports.isArrayBuffer = isArrayBuffer; +exports.isBool = isBool; +exports.isEmptyObj = isEmptyObj; +exports.isInt = isInt; +exports.isNum = isNum; +exports.isString = isString; +exports.isSpace = isSpace; +exports.isNodeJS = isNodeJS; +exports.isSameOrigin = isSameOrigin; +exports.createValidAbsoluteUrl = createValidAbsoluteUrl; +exports.isLittleEndian = isLittleEndian; +exports.isEvalSupported = isEvalSupported; +exports.loadJpegStream = loadJpegStream; +exports.log2 = log2; +exports.readInt8 = readInt8; +exports.readUint16 = readUint16; +exports.readUint32 = readUint32; +exports.removeNullCharacters = removeNullCharacters; +exports.setVerbosityLevel = setVerbosityLevel; +exports.shadow = shadow; +exports.string32 = string32; +exports.stringToBytes = stringToBytes; +exports.stringToPDFString = stringToPDFString; +exports.stringToUTF8String = stringToUTF8String; +exports.utf8StringToString = utf8StringToString; +exports.warn = warn; +/* WEBPACK VAR INJECTION */}.call(exports, __w_pdfjs_require__(6))) + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var assert = sharedUtil.assert; +var removeNullCharacters = sharedUtil.removeNullCharacters; +var warn = sharedUtil.warn; +var deprecated = sharedUtil.deprecated; +var createValidAbsoluteUrl = sharedUtil.createValidAbsoluteUrl; +var stringToBytes = sharedUtil.stringToBytes; +var CMapCompressionType = sharedUtil.CMapCompressionType; +var DEFAULT_LINK_REL = 'noopener noreferrer nofollow'; +function DOMCanvasFactory() { +} +DOMCanvasFactory.prototype = { + create: function DOMCanvasFactory_create(width, height) { + assert(width > 0 && height > 0, 'invalid canvas size'); + var canvas = document.createElement('canvas'); + var context = canvas.getContext('2d'); + canvas.width = width; + canvas.height = height; + return { + canvas: canvas, + context: context + }; + }, + reset: function DOMCanvasFactory_reset(canvasAndContextPair, width, height) { + assert(canvasAndContextPair.canvas, 'canvas is not specified'); + assert(width > 0 && height > 0, 'invalid canvas size'); + canvasAndContextPair.canvas.width = width; + canvasAndContextPair.canvas.height = height; + }, + destroy: function DOMCanvasFactory_destroy(canvasAndContextPair) { + assert(canvasAndContextPair.canvas, 'canvas is not specified'); + canvasAndContextPair.canvas.width = 0; + canvasAndContextPair.canvas.height = 0; + canvasAndContextPair.canvas = null; + canvasAndContextPair.context = null; + } +}; +var DOMCMapReaderFactory = function DOMCMapReaderFactoryClosure() { + function DOMCMapReaderFactory(params) { + this.baseUrl = params.baseUrl || null; + this.isCompressed = params.isCompressed || false; + } + DOMCMapReaderFactory.prototype = { + fetch: function (params) { + if (!params.name) { + return Promise.reject(new Error('CMap name must be specified.')); + } + return new Promise(function (resolve, reject) { + var url = this.baseUrl + params.name; + var request = new XMLHttpRequest(); + if (this.isCompressed) { + url += '.bcmap'; + request.responseType = 'arraybuffer'; + } + request.onreadystatechange = function () { + if (request.readyState === XMLHttpRequest.DONE && (request.status === 200 || request.status === 0)) { + var data; + if (this.isCompressed && request.response) { + data = new Uint8Array(request.response); + } else if (!this.isCompressed && request.responseText) { + data = stringToBytes(request.responseText); + } + if (data) { + resolve({ + cMapData: data, + compressionType: this.isCompressed ? CMapCompressionType.BINARY : CMapCompressionType.NONE + }); + return; + } + reject(new Error('Unable to load ' + (this.isCompressed ? 'binary' : '') + ' CMap at: ' + url)); + } + }.bind(this); + request.open('GET', url, true); + request.send(null); + }.bind(this)); + } + }; + return DOMCMapReaderFactory; +}(); +var CustomStyle = function CustomStyleClosure() { + var prefixes = [ + 'ms', + 'Moz', + 'Webkit', + 'O' + ]; + var _cache = Object.create(null); + function CustomStyle() { + } + CustomStyle.getProp = function get(propName, element) { + if (arguments.length === 1 && typeof _cache[propName] === 'string') { + return _cache[propName]; + } + element = element || document.documentElement; + var style = element.style, prefixed, uPropName; + if (typeof style[propName] === 'string') { + return _cache[propName] = propName; + } + uPropName = propName.charAt(0).toUpperCase() + propName.slice(1); + for (var i = 0, l = prefixes.length; i < l; i++) { + prefixed = prefixes[i] + uPropName; + if (typeof style[prefixed] === 'string') { + return _cache[propName] = prefixed; + } + } + return _cache[propName] = 'undefined'; + }; + CustomStyle.setProp = function set(propName, element, str) { + var prop = this.getProp(propName); + if (prop !== 'undefined') { + element.style[prop] = str; + } + }; + return CustomStyle; +}(); +var hasCanvasTypedArrays; +hasCanvasTypedArrays = function hasCanvasTypedArrays() { + var canvas = document.createElement('canvas'); + canvas.width = canvas.height = 1; + var ctx = canvas.getContext('2d'); + var imageData = ctx.createImageData(1, 1); + return typeof imageData.data.buffer !== 'undefined'; +}; +var LinkTarget = { + NONE: 0, + SELF: 1, + BLANK: 2, + PARENT: 3, + TOP: 4 +}; +var LinkTargetStringMap = [ + '', + '_self', + '_blank', + '_parent', + '_top' +]; +function addLinkAttributes(link, params) { + var url = params && params.url; + link.href = link.title = url ? removeNullCharacters(url) : ''; + if (url) { + var target = params.target; + if (typeof target === 'undefined') { + target = getDefaultSetting('externalLinkTarget'); + } + link.target = LinkTargetStringMap[target]; + var rel = params.rel; + if (typeof rel === 'undefined') { + rel = getDefaultSetting('externalLinkRel'); + } + link.rel = rel; + } +} +function getFilenameFromUrl(url) { + var anchor = url.indexOf('#'); + var query = url.indexOf('?'); + var end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length); + return url.substring(url.lastIndexOf('/', end) + 1, end); +} +function getDefaultSetting(id) { + var globalSettings = sharedUtil.globalScope.PDFJS; + switch (id) { + case 'pdfBug': + return globalSettings ? globalSettings.pdfBug : false; + case 'disableAutoFetch': + return globalSettings ? globalSettings.disableAutoFetch : false; + case 'disableStream': + return globalSettings ? globalSettings.disableStream : false; + case 'disableRange': + return globalSettings ? globalSettings.disableRange : false; + case 'disableFontFace': + return globalSettings ? globalSettings.disableFontFace : false; + case 'disableCreateObjectURL': + return globalSettings ? globalSettings.disableCreateObjectURL : false; + case 'disableWebGL': + return globalSettings ? globalSettings.disableWebGL : true; + case 'cMapUrl': + return globalSettings ? globalSettings.cMapUrl : null; + case 'cMapPacked': + return globalSettings ? globalSettings.cMapPacked : false; + case 'postMessageTransfers': + return globalSettings ? globalSettings.postMessageTransfers : true; + case 'workerPort': + return globalSettings ? globalSettings.workerPort : null; + case 'workerSrc': + return globalSettings ? globalSettings.workerSrc : null; + case 'disableWorker': + return globalSettings ? globalSettings.disableWorker : false; + case 'maxImageSize': + return globalSettings ? globalSettings.maxImageSize : -1; + case 'imageResourcesPath': + return globalSettings ? globalSettings.imageResourcesPath : ''; + case 'isEvalSupported': + return globalSettings ? globalSettings.isEvalSupported : true; + case 'externalLinkTarget': + if (!globalSettings) { + return LinkTarget.NONE; + } + switch (globalSettings.externalLinkTarget) { + case LinkTarget.NONE: + case LinkTarget.SELF: + case LinkTarget.BLANK: + case LinkTarget.PARENT: + case LinkTarget.TOP: + return globalSettings.externalLinkTarget; + } + warn('PDFJS.externalLinkTarget is invalid: ' + globalSettings.externalLinkTarget); + globalSettings.externalLinkTarget = LinkTarget.NONE; + return LinkTarget.NONE; + case 'externalLinkRel': + return globalSettings ? globalSettings.externalLinkRel : DEFAULT_LINK_REL; + case 'enableStats': + return !!(globalSettings && globalSettings.enableStats); + default: + throw new Error('Unknown default setting: ' + id); + } +} +function isExternalLinkTargetSet() { + var externalLinkTarget = getDefaultSetting('externalLinkTarget'); + switch (externalLinkTarget) { + case LinkTarget.NONE: + return false; + case LinkTarget.SELF: + case LinkTarget.BLANK: + case LinkTarget.PARENT: + case LinkTarget.TOP: + return true; + } +} +function isValidUrl(url, allowRelative) { + deprecated('isValidUrl(), please use createValidAbsoluteUrl() instead.'); + var baseUrl = allowRelative ? 'http://example.com' : null; + return createValidAbsoluteUrl(url, baseUrl) !== null; +} +exports.CustomStyle = CustomStyle; +exports.addLinkAttributes = addLinkAttributes; +exports.isExternalLinkTargetSet = isExternalLinkTargetSet; +exports.isValidUrl = isValidUrl; +exports.getFilenameFromUrl = getFilenameFromUrl; +exports.LinkTarget = LinkTarget; +exports.hasCanvasTypedArrays = hasCanvasTypedArrays; +exports.getDefaultSetting = getDefaultSetting; +exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL; +exports.DOMCanvasFactory = DOMCanvasFactory; +exports.DOMCMapReaderFactory = DOMCMapReaderFactory; + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var displayDOMUtils = __w_pdfjs_require__(1); +var AnnotationBorderStyleType = sharedUtil.AnnotationBorderStyleType; +var AnnotationType = sharedUtil.AnnotationType; +var stringToPDFString = sharedUtil.stringToPDFString; +var Util = sharedUtil.Util; +var addLinkAttributes = displayDOMUtils.addLinkAttributes; +var LinkTarget = displayDOMUtils.LinkTarget; +var getFilenameFromUrl = displayDOMUtils.getFilenameFromUrl; +var warn = sharedUtil.warn; +var CustomStyle = displayDOMUtils.CustomStyle; +var getDefaultSetting = displayDOMUtils.getDefaultSetting; +function AnnotationElementFactory() { +} +AnnotationElementFactory.prototype = { + create: function AnnotationElementFactory_create(parameters) { + var subtype = parameters.data.annotationType; + switch (subtype) { + case AnnotationType.LINK: + return new LinkAnnotationElement(parameters); + case AnnotationType.TEXT: + return new TextAnnotationElement(parameters); + case AnnotationType.WIDGET: + var fieldType = parameters.data.fieldType; + switch (fieldType) { + case 'Tx': + return new TextWidgetAnnotationElement(parameters); + case 'Btn': + if (parameters.data.radioButton) { + return new RadioButtonWidgetAnnotationElement(parameters); + } else if (parameters.data.checkBox) { + return new CheckboxWidgetAnnotationElement(parameters); + } + warn('Unimplemented button widget annotation: pushbutton'); + break; + case 'Ch': + return new ChoiceWidgetAnnotationElement(parameters); + } + return new WidgetAnnotationElement(parameters); + case AnnotationType.POPUP: + return new PopupAnnotationElement(parameters); + case AnnotationType.HIGHLIGHT: + return new HighlightAnnotationElement(parameters); + case AnnotationType.UNDERLINE: + return new UnderlineAnnotationElement(parameters); + case AnnotationType.SQUIGGLY: + return new SquigglyAnnotationElement(parameters); + case AnnotationType.STRIKEOUT: + return new StrikeOutAnnotationElement(parameters); + case AnnotationType.FILEATTACHMENT: + return new FileAttachmentAnnotationElement(parameters); + default: + return new AnnotationElement(parameters); + } + } +}; +var AnnotationElement = function AnnotationElementClosure() { + function AnnotationElement(parameters, isRenderable) { + this.isRenderable = isRenderable || false; + this.data = parameters.data; + this.layer = parameters.layer; + this.page = parameters.page; + this.viewport = parameters.viewport; + this.linkService = parameters.linkService; + this.downloadManager = parameters.downloadManager; + this.imageResourcesPath = parameters.imageResourcesPath; + this.renderInteractiveForms = parameters.renderInteractiveForms; + if (isRenderable) { + this.container = this._createContainer(); + } + } + AnnotationElement.prototype = { + _createContainer: function AnnotationElement_createContainer() { + var data = this.data, page = this.page, viewport = this.viewport; + var container = document.createElement('section'); + var width = data.rect[2] - data.rect[0]; + var height = data.rect[3] - data.rect[1]; + container.setAttribute('data-annotation-id', data.id); + var rect = Util.normalizeRect([ + data.rect[0], + page.view[3] - data.rect[1] + page.view[1], + data.rect[2], + page.view[3] - data.rect[3] + page.view[1] + ]); + CustomStyle.setProp('transform', container, 'matrix(' + viewport.transform.join(',') + ')'); + CustomStyle.setProp('transformOrigin', container, -rect[0] + 'px ' + -rect[1] + 'px'); + if (data.borderStyle.width > 0) { + container.style.borderWidth = data.borderStyle.width + 'px'; + if (data.borderStyle.style !== AnnotationBorderStyleType.UNDERLINE) { + width = width - 2 * data.borderStyle.width; + height = height - 2 * data.borderStyle.width; + } + var horizontalRadius = data.borderStyle.horizontalCornerRadius; + var verticalRadius = data.borderStyle.verticalCornerRadius; + if (horizontalRadius > 0 || verticalRadius > 0) { + var radius = horizontalRadius + 'px / ' + verticalRadius + 'px'; + CustomStyle.setProp('borderRadius', container, radius); + } + switch (data.borderStyle.style) { + case AnnotationBorderStyleType.SOLID: + container.style.borderStyle = 'solid'; + break; + case AnnotationBorderStyleType.DASHED: + container.style.borderStyle = 'dashed'; + break; + case AnnotationBorderStyleType.BEVELED: + warn('Unimplemented border style: beveled'); + break; + case AnnotationBorderStyleType.INSET: + warn('Unimplemented border style: inset'); + break; + case AnnotationBorderStyleType.UNDERLINE: + container.style.borderBottomStyle = 'solid'; + break; + default: + break; + } + if (data.color) { + container.style.borderColor = Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0); + } else { + container.style.borderWidth = 0; + } + } + container.style.left = rect[0] + 'px'; + container.style.top = rect[1] + 'px'; + container.style.width = width + 'px'; + container.style.height = height + 'px'; + return container; + }, + _createPopup: function AnnotationElement_createPopup(container, trigger, data) { + if (!trigger) { + trigger = document.createElement('div'); + trigger.style.height = container.style.height; + trigger.style.width = container.style.width; + container.appendChild(trigger); + } + var popupElement = new PopupElement({ + container: container, + trigger: trigger, + color: data.color, + title: data.title, + contents: data.contents, + hideWrapper: true + }); + var popup = popupElement.render(); + popup.style.left = container.style.width; + container.appendChild(popup); + }, + render: function AnnotationElement_render() { + throw new Error('Abstract method AnnotationElement.render called'); + } + }; + return AnnotationElement; +}(); +var LinkAnnotationElement = function LinkAnnotationElementClosure() { + function LinkAnnotationElement(parameters) { + AnnotationElement.call(this, parameters, true); + } + Util.inherit(LinkAnnotationElement, AnnotationElement, { + render: function LinkAnnotationElement_render() { + this.container.className = 'linkAnnotation'; + var link = document.createElement('a'); + addLinkAttributes(link, { + url: this.data.url, + target: this.data.newWindow ? LinkTarget.BLANK : undefined + }); + if (!this.data.url) { + if (this.data.action) { + this._bindNamedAction(link, this.data.action); + } else { + this._bindLink(link, this.data.dest); + } + } + this.container.appendChild(link); + return this.container; + }, + _bindLink: function LinkAnnotationElement_bindLink(link, destination) { + var self = this; + link.href = this.linkService.getDestinationHash(destination); + link.onclick = function () { + if (destination) { + self.linkService.navigateTo(destination); + } + return false; + }; + if (destination) { + link.className = 'internalLink'; + } + }, + _bindNamedAction: function LinkAnnotationElement_bindNamedAction(link, action) { + var self = this; + link.href = this.linkService.getAnchorUrl(''); + link.onclick = function () { + self.linkService.executeNamedAction(action); + return false; + }; + link.className = 'internalLink'; + } + }); + return LinkAnnotationElement; +}(); +var TextAnnotationElement = function TextAnnotationElementClosure() { + function TextAnnotationElement(parameters) { + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + AnnotationElement.call(this, parameters, isRenderable); + } + Util.inherit(TextAnnotationElement, AnnotationElement, { + render: function TextAnnotationElement_render() { + this.container.className = 'textAnnotation'; + var image = document.createElement('img'); + image.style.height = this.container.style.height; + image.style.width = this.container.style.width; + image.src = this.imageResourcesPath + 'annotation-' + this.data.name.toLowerCase() + '.svg'; + image.alt = '[{{type}} Annotation]'; + image.dataset.l10nId = 'text_annotation_type'; + image.dataset.l10nArgs = JSON.stringify({ type: this.data.name }); + if (!this.data.hasPopup) { + this._createPopup(this.container, image, this.data); + } + this.container.appendChild(image); + return this.container; + } + }); + return TextAnnotationElement; +}(); +var WidgetAnnotationElement = function WidgetAnnotationElementClosure() { + function WidgetAnnotationElement(parameters, isRenderable) { + AnnotationElement.call(this, parameters, isRenderable); + } + Util.inherit(WidgetAnnotationElement, AnnotationElement, { + render: function WidgetAnnotationElement_render() { + return this.container; + } + }); + return WidgetAnnotationElement; +}(); +var TextWidgetAnnotationElement = function TextWidgetAnnotationElementClosure() { + var TEXT_ALIGNMENT = [ + 'left', + 'center', + 'right' + ]; + function TextWidgetAnnotationElement(parameters) { + var isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue; + WidgetAnnotationElement.call(this, parameters, isRenderable); + } + Util.inherit(TextWidgetAnnotationElement, WidgetAnnotationElement, { + render: function TextWidgetAnnotationElement_render() { + this.container.className = 'textWidgetAnnotation'; + var element = null; + if (this.renderInteractiveForms) { + if (this.data.multiLine) { + element = document.createElement('textarea'); + element.textContent = this.data.fieldValue; + } else { + element = document.createElement('input'); + element.type = 'text'; + element.setAttribute('value', this.data.fieldValue); + } + element.disabled = this.data.readOnly; + if (this.data.maxLen !== null) { + element.maxLength = this.data.maxLen; + } + if (this.data.comb) { + var fieldWidth = this.data.rect[2] - this.data.rect[0]; + var combWidth = fieldWidth / this.data.maxLen; + element.classList.add('comb'); + element.style.letterSpacing = 'calc(' + combWidth + 'px - 1ch)'; + } + } else { + element = document.createElement('div'); + element.textContent = this.data.fieldValue; + element.style.verticalAlign = 'middle'; + element.style.display = 'table-cell'; + var font = null; + if (this.data.fontRefName) { + font = this.page.commonObjs.getData(this.data.fontRefName); + } + this._setTextStyle(element, font); + } + if (this.data.textAlignment !== null) { + element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment]; + } + this.container.appendChild(element); + return this.container; + }, + _setTextStyle: function TextWidgetAnnotationElement_setTextStyle(element, font) { + var style = element.style; + style.fontSize = this.data.fontSize + 'px'; + style.direction = this.data.fontDirection < 0 ? 'rtl' : 'ltr'; + if (!font) { + return; + } + style.fontWeight = font.black ? font.bold ? '900' : 'bold' : font.bold ? 'bold' : 'normal'; + style.fontStyle = font.italic ? 'italic' : 'normal'; + var fontFamily = font.loadedName ? '"' + font.loadedName + '", ' : ''; + var fallbackName = font.fallbackName || 'Helvetica, sans-serif'; + style.fontFamily = fontFamily + fallbackName; + } + }); + return TextWidgetAnnotationElement; +}(); +var CheckboxWidgetAnnotationElement = function CheckboxWidgetAnnotationElementClosure() { + function CheckboxWidgetAnnotationElement(parameters) { + WidgetAnnotationElement.call(this, parameters, parameters.renderInteractiveForms); + } + Util.inherit(CheckboxWidgetAnnotationElement, WidgetAnnotationElement, { + render: function CheckboxWidgetAnnotationElement_render() { + this.container.className = 'buttonWidgetAnnotation checkBox'; + var element = document.createElement('input'); + element.disabled = this.data.readOnly; + element.type = 'checkbox'; + if (this.data.fieldValue && this.data.fieldValue !== 'Off') { + element.setAttribute('checked', true); + } + this.container.appendChild(element); + return this.container; + } + }); + return CheckboxWidgetAnnotationElement; +}(); +var RadioButtonWidgetAnnotationElement = function RadioButtonWidgetAnnotationElementClosure() { + function RadioButtonWidgetAnnotationElement(parameters) { + WidgetAnnotationElement.call(this, parameters, parameters.renderInteractiveForms); + } + Util.inherit(RadioButtonWidgetAnnotationElement, WidgetAnnotationElement, { + render: function RadioButtonWidgetAnnotationElement_render() { + this.container.className = 'buttonWidgetAnnotation radioButton'; + var element = document.createElement('input'); + element.disabled = this.data.readOnly; + element.type = 'radio'; + element.name = this.data.fieldName; + if (this.data.fieldValue === this.data.buttonValue) { + element.setAttribute('checked', true); + } + this.container.appendChild(element); + return this.container; + } + }); + return RadioButtonWidgetAnnotationElement; +}(); +var ChoiceWidgetAnnotationElement = function ChoiceWidgetAnnotationElementClosure() { + function ChoiceWidgetAnnotationElement(parameters) { + WidgetAnnotationElement.call(this, parameters, parameters.renderInteractiveForms); + } + Util.inherit(ChoiceWidgetAnnotationElement, WidgetAnnotationElement, { + render: function ChoiceWidgetAnnotationElement_render() { + this.container.className = 'choiceWidgetAnnotation'; + var selectElement = document.createElement('select'); + selectElement.disabled = this.data.readOnly; + if (!this.data.combo) { + selectElement.size = this.data.options.length; + if (this.data.multiSelect) { + selectElement.multiple = true; + } + } + for (var i = 0, ii = this.data.options.length; i < ii; i++) { + var option = this.data.options[i]; + var optionElement = document.createElement('option'); + optionElement.textContent = option.displayValue; + optionElement.value = option.exportValue; + if (this.data.fieldValue.indexOf(option.displayValue) >= 0) { + optionElement.setAttribute('selected', true); + } + selectElement.appendChild(optionElement); + } + this.container.appendChild(selectElement); + return this.container; + } + }); + return ChoiceWidgetAnnotationElement; +}(); +var PopupAnnotationElement = function PopupAnnotationElementClosure() { + function PopupAnnotationElement(parameters) { + var isRenderable = !!(parameters.data.title || parameters.data.contents); + AnnotationElement.call(this, parameters, isRenderable); + } + Util.inherit(PopupAnnotationElement, AnnotationElement, { + render: function PopupAnnotationElement_render() { + this.container.className = 'popupAnnotation'; + var selector = '[data-annotation-id="' + this.data.parentId + '"]'; + var parentElement = this.layer.querySelector(selector); + if (!parentElement) { + return this.container; + } + var popup = new PopupElement({ + container: this.container, + trigger: parentElement, + color: this.data.color, + title: this.data.title, + contents: this.data.contents + }); + var parentLeft = parseFloat(parentElement.style.left); + var parentWidth = parseFloat(parentElement.style.width); + CustomStyle.setProp('transformOrigin', this.container, -(parentLeft + parentWidth) + 'px -' + parentElement.style.top); + this.container.style.left = parentLeft + parentWidth + 'px'; + this.container.appendChild(popup.render()); + return this.container; + } + }); + return PopupAnnotationElement; +}(); +var PopupElement = function PopupElementClosure() { + var BACKGROUND_ENLIGHT = 0.7; + function PopupElement(parameters) { + this.container = parameters.container; + this.trigger = parameters.trigger; + this.color = parameters.color; + this.title = parameters.title; + this.contents = parameters.contents; + this.hideWrapper = parameters.hideWrapper || false; + this.pinned = false; + } + PopupElement.prototype = { + render: function PopupElement_render() { + var wrapper = document.createElement('div'); + wrapper.className = 'popupWrapper'; + this.hideElement = this.hideWrapper ? wrapper : this.container; + this.hideElement.setAttribute('hidden', true); + var popup = document.createElement('div'); + popup.className = 'popup'; + var color = this.color; + if (color) { + var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0]; + var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1]; + var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2]; + popup.style.backgroundColor = Util.makeCssRgb(r | 0, g | 0, b | 0); + } + var contents = this._formatContents(this.contents); + var title = document.createElement('h1'); + title.textContent = this.title; + this.trigger.addEventListener('click', this._toggle.bind(this)); + this.trigger.addEventListener('mouseover', this._show.bind(this, false)); + this.trigger.addEventListener('mouseout', this._hide.bind(this, false)); + popup.addEventListener('click', this._hide.bind(this, true)); + popup.appendChild(title); + popup.appendChild(contents); + wrapper.appendChild(popup); + return wrapper; + }, + _formatContents: function PopupElement_formatContents(contents) { + var p = document.createElement('p'); + var lines = contents.split(/(?:\r\n?|\n)/); + for (var i = 0, ii = lines.length; i < ii; ++i) { + var line = lines[i]; + p.appendChild(document.createTextNode(line)); + if (i < ii - 1) { + p.appendChild(document.createElement('br')); + } + } + return p; + }, + _toggle: function PopupElement_toggle() { + if (this.pinned) { + this._hide(true); + } else { + this._show(true); + } + }, + _show: function PopupElement_show(pin) { + if (pin) { + this.pinned = true; + } + if (this.hideElement.hasAttribute('hidden')) { + this.hideElement.removeAttribute('hidden'); + this.container.style.zIndex += 1; + } + }, + _hide: function PopupElement_hide(unpin) { + if (unpin) { + this.pinned = false; + } + if (!this.hideElement.hasAttribute('hidden') && !this.pinned) { + this.hideElement.setAttribute('hidden', true); + this.container.style.zIndex -= 1; + } + } + }; + return PopupElement; +}(); +var HighlightAnnotationElement = function HighlightAnnotationElementClosure() { + function HighlightAnnotationElement(parameters) { + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + AnnotationElement.call(this, parameters, isRenderable); + } + Util.inherit(HighlightAnnotationElement, AnnotationElement, { + render: function HighlightAnnotationElement_render() { + this.container.className = 'highlightAnnotation'; + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + return this.container; + } + }); + return HighlightAnnotationElement; +}(); +var UnderlineAnnotationElement = function UnderlineAnnotationElementClosure() { + function UnderlineAnnotationElement(parameters) { + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + AnnotationElement.call(this, parameters, isRenderable); + } + Util.inherit(UnderlineAnnotationElement, AnnotationElement, { + render: function UnderlineAnnotationElement_render() { + this.container.className = 'underlineAnnotation'; + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + return this.container; + } + }); + return UnderlineAnnotationElement; +}(); +var SquigglyAnnotationElement = function SquigglyAnnotationElementClosure() { + function SquigglyAnnotationElement(parameters) { + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + AnnotationElement.call(this, parameters, isRenderable); + } + Util.inherit(SquigglyAnnotationElement, AnnotationElement, { + render: function SquigglyAnnotationElement_render() { + this.container.className = 'squigglyAnnotation'; + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + return this.container; + } + }); + return SquigglyAnnotationElement; +}(); +var StrikeOutAnnotationElement = function StrikeOutAnnotationElementClosure() { + function StrikeOutAnnotationElement(parameters) { + var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + AnnotationElement.call(this, parameters, isRenderable); + } + Util.inherit(StrikeOutAnnotationElement, AnnotationElement, { + render: function StrikeOutAnnotationElement_render() { + this.container.className = 'strikeoutAnnotation'; + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + return this.container; + } + }); + return StrikeOutAnnotationElement; +}(); +var FileAttachmentAnnotationElement = function FileAttachmentAnnotationElementClosure() { + function FileAttachmentAnnotationElement(parameters) { + AnnotationElement.call(this, parameters, true); + var file = this.data.file; + this.filename = getFilenameFromUrl(file.filename); + this.content = file.content; + this.linkService.onFileAttachmentAnnotation({ + id: stringToPDFString(file.filename), + filename: file.filename, + content: file.content + }); + } + Util.inherit(FileAttachmentAnnotationElement, AnnotationElement, { + render: function FileAttachmentAnnotationElement_render() { + this.container.className = 'fileAttachmentAnnotation'; + var trigger = document.createElement('div'); + trigger.style.height = this.container.style.height; + trigger.style.width = this.container.style.width; + trigger.addEventListener('dblclick', this._download.bind(this)); + if (!this.data.hasPopup && (this.data.title || this.data.contents)) { + this._createPopup(this.container, trigger, this.data); + } + this.container.appendChild(trigger); + return this.container; + }, + _download: function FileAttachmentAnnotationElement_download() { + if (!this.downloadManager) { + warn('Download cannot be started due to unavailable download manager'); + return; + } + this.downloadManager.downloadData(this.content, this.filename, ''); + } + }); + return FileAttachmentAnnotationElement; +}(); +var AnnotationLayer = function AnnotationLayerClosure() { + return { + render: function AnnotationLayer_render(parameters) { + var annotationElementFactory = new AnnotationElementFactory(); + for (var i = 0, ii = parameters.annotations.length; i < ii; i++) { + var data = parameters.annotations[i]; + if (!data) { + continue; + } + var element = annotationElementFactory.create({ + data: data, + layer: parameters.div, + page: parameters.page, + viewport: parameters.viewport, + linkService: parameters.linkService, + downloadManager: parameters.downloadManager, + imageResourcesPath: parameters.imageResourcesPath || getDefaultSetting('imageResourcesPath'), + renderInteractiveForms: parameters.renderInteractiveForms || false + }); + if (element.isRenderable) { + parameters.div.appendChild(element.render()); + } + } + }, + update: function AnnotationLayer_update(parameters) { + for (var i = 0, ii = parameters.annotations.length; i < ii; i++) { + var data = parameters.annotations[i]; + var element = parameters.div.querySelector('[data-annotation-id="' + data.id + '"]'); + if (element) { + CustomStyle.setProp('transform', element, 'matrix(' + parameters.viewport.transform.join(',') + ')'); + } + } + parameters.div.removeAttribute('hidden'); + } + }; +}(); +exports.AnnotationLayer = AnnotationLayer; + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var displayFontLoader = __w_pdfjs_require__(11); +var displayCanvas = __w_pdfjs_require__(10); +var displayMetadata = __w_pdfjs_require__(7); +var displayDOMUtils = __w_pdfjs_require__(1); +var amdRequire; +var InvalidPDFException = sharedUtil.InvalidPDFException; +var MessageHandler = sharedUtil.MessageHandler; +var MissingPDFException = sharedUtil.MissingPDFException; +var PageViewport = sharedUtil.PageViewport; +var PasswordException = sharedUtil.PasswordException; +var StatTimer = sharedUtil.StatTimer; +var UnexpectedResponseException = sharedUtil.UnexpectedResponseException; +var UnknownErrorException = sharedUtil.UnknownErrorException; +var Util = sharedUtil.Util; +var createPromiseCapability = sharedUtil.createPromiseCapability; +var error = sharedUtil.error; +var deprecated = sharedUtil.deprecated; +var getVerbosityLevel = sharedUtil.getVerbosityLevel; +var info = sharedUtil.info; +var isInt = sharedUtil.isInt; +var isArray = sharedUtil.isArray; +var isArrayBuffer = sharedUtil.isArrayBuffer; +var isSameOrigin = sharedUtil.isSameOrigin; +var loadJpegStream = sharedUtil.loadJpegStream; +var stringToBytes = sharedUtil.stringToBytes; +var globalScope = sharedUtil.globalScope; +var warn = sharedUtil.warn; +var FontFaceObject = displayFontLoader.FontFaceObject; +var FontLoader = displayFontLoader.FontLoader; +var CanvasGraphics = displayCanvas.CanvasGraphics; +var Metadata = displayMetadata.Metadata; +var getDefaultSetting = displayDOMUtils.getDefaultSetting; +var DOMCanvasFactory = displayDOMUtils.DOMCanvasFactory; +var DOMCMapReaderFactory = displayDOMUtils.DOMCMapReaderFactory; +var DEFAULT_RANGE_CHUNK_SIZE = 65536; +var isWorkerDisabled = false; +var workerSrc; +var isPostMessageTransfersDisabled = false; +var pdfjsFilePath = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : null; +var fakeWorkerFilesLoader = null; +var useRequireEnsure = false; +if (typeof __pdfjsdev_webpack__ === 'undefined') { + if (typeof window === 'undefined') { + isWorkerDisabled = true; + if (typeof require.ensure === 'undefined') { + require.ensure = require('node-ensure'); + } + useRequireEnsure = true; + } else if (typeof require !== 'undefined' && typeof require.ensure === 'function') { + useRequireEnsure = true; + } + if (typeof requirejs !== 'undefined' && requirejs.toUrl) { + workerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js'); + } + var dynamicLoaderSupported = typeof requirejs !== 'undefined' && requirejs.load; + fakeWorkerFilesLoader = useRequireEnsure ? function (callback) { + require.ensure([], function () { + var worker = require('./pdf.worker.js'); + callback(worker.WorkerMessageHandler); + }); + } : dynamicLoaderSupported ? function (callback) { + requirejs(['pdfjs-dist/build/pdf.worker'], function (worker) { + callback(worker.WorkerMessageHandler); + }); + } : null; +} +function getDocument(src, pdfDataRangeTransport, passwordCallback, progressCallback) { + var task = new PDFDocumentLoadingTask(); + if (arguments.length > 1) { + deprecated('getDocument is called with pdfDataRangeTransport, ' + 'passwordCallback or progressCallback argument'); + } + if (pdfDataRangeTransport) { + if (!(pdfDataRangeTransport instanceof PDFDataRangeTransport)) { + pdfDataRangeTransport = Object.create(pdfDataRangeTransport); + pdfDataRangeTransport.length = src.length; + pdfDataRangeTransport.initialData = src.initialData; + if (!pdfDataRangeTransport.abort) { + pdfDataRangeTransport.abort = function () { + }; + } + } + src = Object.create(src); + src.range = pdfDataRangeTransport; + } + task.onPassword = passwordCallback || null; + task.onProgress = progressCallback || null; + var source; + if (typeof src === 'string') { + source = { url: src }; + } else if (isArrayBuffer(src)) { + source = { data: src }; + } else if (src instanceof PDFDataRangeTransport) { + source = { range: src }; + } else { + if (typeof src !== 'object') { + error('Invalid parameter in getDocument, need either Uint8Array, ' + 'string or a parameter object'); + } + if (!src.url && !src.data && !src.range) { + error('Invalid parameter object: need either .data, .range or .url'); + } + source = src; + } + var params = {}; + var rangeTransport = null; + var worker = null; + for (var key in source) { + if (key === 'url' && typeof window !== 'undefined') { + params[key] = new URL(source[key], window.location).href; + continue; + } else if (key === 'range') { + rangeTransport = source[key]; + continue; + } else if (key === 'worker') { + worker = source[key]; + continue; + } else if (key === 'data' && !(source[key] instanceof Uint8Array)) { + var pdfBytes = source[key]; + if (typeof pdfBytes === 'string') { + params[key] = stringToBytes(pdfBytes); + } else if (typeof pdfBytes === 'object' && pdfBytes !== null && !isNaN(pdfBytes.length)) { + params[key] = new Uint8Array(pdfBytes); + } else if (isArrayBuffer(pdfBytes)) { + params[key] = new Uint8Array(pdfBytes); + } else { + error('Invalid PDF binary data: either typed array, string or ' + 'array-like object is expected in the data property.'); + } + continue; + } + params[key] = source[key]; + } + params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE; + params.disableNativeImageDecoder = params.disableNativeImageDecoder === true; + var CMapReaderFactory = params.CMapReaderFactory || DOMCMapReaderFactory; + if (!worker) { + var workerPort = getDefaultSetting('workerPort'); + worker = workerPort ? new PDFWorker(null, workerPort) : new PDFWorker(); + task._worker = worker; + } + var docId = task.docId; + worker.promise.then(function () { + if (task.destroyed) { + throw new Error('Loading aborted'); + } + return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) { + if (task.destroyed) { + throw new Error('Loading aborted'); + } + var messageHandler = new MessageHandler(docId, workerId, worker.port); + var transport = new WorkerTransport(messageHandler, task, rangeTransport, CMapReaderFactory); + task._transport = transport; + messageHandler.send('Ready', null); + }); + }).catch(task._capability.reject); + return task; +} +function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { + if (worker.destroyed) { + return Promise.reject(new Error('Worker was destroyed')); + } + source.disableAutoFetch = getDefaultSetting('disableAutoFetch'); + source.disableStream = getDefaultSetting('disableStream'); + source.chunkedViewerLoading = !!pdfDataRangeTransport; + if (pdfDataRangeTransport) { + source.length = pdfDataRangeTransport.length; + source.initialData = pdfDataRangeTransport.initialData; + } + return worker.messageHandler.sendWithPromise('GetDocRequest', { + docId: docId, + source: source, + disableRange: getDefaultSetting('disableRange'), + maxImageSize: getDefaultSetting('maxImageSize'), + disableFontFace: getDefaultSetting('disableFontFace'), + disableCreateObjectURL: getDefaultSetting('disableCreateObjectURL'), + postMessageTransfers: getDefaultSetting('postMessageTransfers') && !isPostMessageTransfersDisabled, + docBaseUrl: source.docBaseUrl, + disableNativeImageDecoder: source.disableNativeImageDecoder + }).then(function (workerId) { + if (worker.destroyed) { + throw new Error('Worker was destroyed'); + } + return workerId; + }); +} +var PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() { + var nextDocumentId = 0; + function PDFDocumentLoadingTask() { + this._capability = createPromiseCapability(); + this._transport = null; + this._worker = null; + this.docId = 'd' + nextDocumentId++; + this.destroyed = false; + this.onPassword = null; + this.onProgress = null; + this.onUnsupportedFeature = null; + } + PDFDocumentLoadingTask.prototype = { + get promise() { + return this._capability.promise; + }, + destroy: function () { + this.destroyed = true; + var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy(); + return transportDestroyed.then(function () { + this._transport = null; + if (this._worker) { + this._worker.destroy(); + this._worker = null; + } + }.bind(this)); + }, + then: function PDFDocumentLoadingTask_then(onFulfilled, onRejected) { + return this.promise.then.apply(this.promise, arguments); + } + }; + return PDFDocumentLoadingTask; +}(); +var PDFDataRangeTransport = function pdfDataRangeTransportClosure() { + function PDFDataRangeTransport(length, initialData) { + this.length = length; + this.initialData = initialData; + this._rangeListeners = []; + this._progressListeners = []; + this._progressiveReadListeners = []; + this._readyCapability = createPromiseCapability(); + } + PDFDataRangeTransport.prototype = { + addRangeListener: function PDFDataRangeTransport_addRangeListener(listener) { + this._rangeListeners.push(listener); + }, + addProgressListener: function PDFDataRangeTransport_addProgressListener(listener) { + this._progressListeners.push(listener); + }, + addProgressiveReadListener: function PDFDataRangeTransport_addProgressiveReadListener(listener) { + this._progressiveReadListeners.push(listener); + }, + onDataRange: function PDFDataRangeTransport_onDataRange(begin, chunk) { + var listeners = this._rangeListeners; + for (var i = 0, n = listeners.length; i < n; ++i) { + listeners[i](begin, chunk); + } + }, + onDataProgress: function PDFDataRangeTransport_onDataProgress(loaded) { + this._readyCapability.promise.then(function () { + var listeners = this._progressListeners; + for (var i = 0, n = listeners.length; i < n; ++i) { + listeners[i](loaded); + } + }.bind(this)); + }, + onDataProgressiveRead: function PDFDataRangeTransport_onDataProgress(chunk) { + this._readyCapability.promise.then(function () { + var listeners = this._progressiveReadListeners; + for (var i = 0, n = listeners.length; i < n; ++i) { + listeners[i](chunk); + } + }.bind(this)); + }, + transportReady: function PDFDataRangeTransport_transportReady() { + this._readyCapability.resolve(); + }, + requestDataRange: function PDFDataRangeTransport_requestDataRange(begin, end) { + throw new Error('Abstract method PDFDataRangeTransport.requestDataRange'); + }, + abort: function PDFDataRangeTransport_abort() { + } + }; + return PDFDataRangeTransport; +}(); +var PDFDocumentProxy = function PDFDocumentProxyClosure() { + function PDFDocumentProxy(pdfInfo, transport, loadingTask) { + this.pdfInfo = pdfInfo; + this.transport = transport; + this.loadingTask = loadingTask; + } + PDFDocumentProxy.prototype = { + get numPages() { + return this.pdfInfo.numPages; + }, + get fingerprint() { + return this.pdfInfo.fingerprint; + }, + getPage: function PDFDocumentProxy_getPage(pageNumber) { + return this.transport.getPage(pageNumber); + }, + getPageIndex: function PDFDocumentProxy_getPageIndex(ref) { + return this.transport.getPageIndex(ref); + }, + getDestinations: function PDFDocumentProxy_getDestinations() { + return this.transport.getDestinations(); + }, + getDestination: function PDFDocumentProxy_getDestination(id) { + return this.transport.getDestination(id); + }, + getPageLabels: function PDFDocumentProxy_getPageLabels() { + return this.transport.getPageLabels(); + }, + getAttachments: function PDFDocumentProxy_getAttachments() { + return this.transport.getAttachments(); + }, + getJavaScript: function PDFDocumentProxy_getJavaScript() { + return this.transport.getJavaScript(); + }, + getOutline: function PDFDocumentProxy_getOutline() { + return this.transport.getOutline(); + }, + getMetadata: function PDFDocumentProxy_getMetadata() { + return this.transport.getMetadata(); + }, + getData: function PDFDocumentProxy_getData() { + return this.transport.getData(); + }, + getDownloadInfo: function PDFDocumentProxy_getDownloadInfo() { + return this.transport.downloadInfoCapability.promise; + }, + getStats: function PDFDocumentProxy_getStats() { + return this.transport.getStats(); + }, + cleanup: function PDFDocumentProxy_cleanup() { + this.transport.startCleanup(); + }, + destroy: function PDFDocumentProxy_destroy() { + return this.loadingTask.destroy(); + } + }; + return PDFDocumentProxy; +}(); +var PDFPageProxy = function PDFPageProxyClosure() { + function PDFPageProxy(pageIndex, pageInfo, transport) { + this.pageIndex = pageIndex; + this.pageInfo = pageInfo; + this.transport = transport; + this.stats = new StatTimer(); + this.stats.enabled = getDefaultSetting('enableStats'); + this.commonObjs = transport.commonObjs; + this.objs = new PDFObjects(); + this.cleanupAfterRender = false; + this.pendingCleanup = false; + this.intentStates = Object.create(null); + this.destroyed = false; + } + PDFPageProxy.prototype = { + get pageNumber() { + return this.pageIndex + 1; + }, + get rotate() { + return this.pageInfo.rotate; + }, + get ref() { + return this.pageInfo.ref; + }, + get userUnit() { + return this.pageInfo.userUnit; + }, + get view() { + return this.pageInfo.view; + }, + getViewport: function PDFPageProxy_getViewport(scale, rotate) { + if (arguments.length < 2) { + rotate = this.rotate; + } + return new PageViewport(this.view, scale, rotate, 0, 0); + }, + getAnnotations: function PDFPageProxy_getAnnotations(params) { + var intent = params && params.intent || null; + if (!this.annotationsPromise || this.annotationsIntent !== intent) { + this.annotationsPromise = this.transport.getAnnotations(this.pageIndex, intent); + this.annotationsIntent = intent; + } + return this.annotationsPromise; + }, + render: function PDFPageProxy_render(params) { + var stats = this.stats; + stats.time('Overall'); + this.pendingCleanup = false; + var renderingIntent = params.intent === 'print' ? 'print' : 'display'; + var renderInteractiveForms = params.renderInteractiveForms === true ? true : false; + var canvasFactory = params.canvasFactory || new DOMCanvasFactory(); + if (!this.intentStates[renderingIntent]) { + this.intentStates[renderingIntent] = Object.create(null); + } + var intentState = this.intentStates[renderingIntent]; + if (!intentState.displayReadyCapability) { + intentState.receivingOperatorList = true; + intentState.displayReadyCapability = createPromiseCapability(); + intentState.operatorList = { + fnArray: [], + argsArray: [], + lastChunk: false + }; + this.stats.time('Page Request'); + this.transport.messageHandler.send('RenderPageRequest', { + pageIndex: this.pageNumber - 1, + intent: renderingIntent, + renderInteractiveForms: renderInteractiveForms + }); + } + var internalRenderTask = new InternalRenderTask(complete, params, this.objs, this.commonObjs, intentState.operatorList, this.pageNumber, canvasFactory); + internalRenderTask.useRequestAnimationFrame = renderingIntent !== 'print'; + if (!intentState.renderTasks) { + intentState.renderTasks = []; + } + intentState.renderTasks.push(internalRenderTask); + var renderTask = internalRenderTask.task; + if (params.continueCallback) { + deprecated('render is used with continueCallback parameter'); + renderTask.onContinue = params.continueCallback; + } + var self = this; + intentState.displayReadyCapability.promise.then(function pageDisplayReadyPromise(transparency) { + if (self.pendingCleanup) { + complete(); + return; + } + stats.time('Rendering'); + internalRenderTask.initializeGraphics(transparency); + internalRenderTask.operatorListChanged(); + }, function pageDisplayReadPromiseError(reason) { + complete(reason); + }); + function complete(error) { + var i = intentState.renderTasks.indexOf(internalRenderTask); + if (i >= 0) { + intentState.renderTasks.splice(i, 1); + } + if (self.cleanupAfterRender) { + self.pendingCleanup = true; + } + self._tryCleanup(); + if (error) { + internalRenderTask.capability.reject(error); + } else { + internalRenderTask.capability.resolve(); + } + stats.timeEnd('Rendering'); + stats.timeEnd('Overall'); + } + return renderTask; + }, + getOperatorList: function PDFPageProxy_getOperatorList() { + function operatorListChanged() { + if (intentState.operatorList.lastChunk) { + intentState.opListReadCapability.resolve(intentState.operatorList); + var i = intentState.renderTasks.indexOf(opListTask); + if (i >= 0) { + intentState.renderTasks.splice(i, 1); + } + } + } + var renderingIntent = 'oplist'; + if (!this.intentStates[renderingIntent]) { + this.intentStates[renderingIntent] = Object.create(null); + } + var intentState = this.intentStates[renderingIntent]; + var opListTask; + if (!intentState.opListReadCapability) { + opListTask = {}; + opListTask.operatorListChanged = operatorListChanged; + intentState.receivingOperatorList = true; + intentState.opListReadCapability = createPromiseCapability(); + intentState.renderTasks = []; + intentState.renderTasks.push(opListTask); + intentState.operatorList = { + fnArray: [], + argsArray: [], + lastChunk: false + }; + this.transport.messageHandler.send('RenderPageRequest', { + pageIndex: this.pageIndex, + intent: renderingIntent + }); + } + return intentState.opListReadCapability.promise; + }, + getTextContent: function PDFPageProxy_getTextContent(params) { + return this.transport.messageHandler.sendWithPromise('GetTextContent', { + pageIndex: this.pageNumber - 1, + normalizeWhitespace: params && params.normalizeWhitespace === true ? true : false, + combineTextItems: params && params.disableCombineTextItems === true ? false : true + }); + }, + _destroy: function PDFPageProxy_destroy() { + this.destroyed = true; + this.transport.pageCache[this.pageIndex] = null; + var waitOn = []; + Object.keys(this.intentStates).forEach(function (intent) { + if (intent === 'oplist') { + return; + } + var intentState = this.intentStates[intent]; + intentState.renderTasks.forEach(function (renderTask) { + var renderCompleted = renderTask.capability.promise.catch(function () { + }); + waitOn.push(renderCompleted); + renderTask.cancel(); + }); + }, this); + this.objs.clear(); + this.annotationsPromise = null; + this.pendingCleanup = false; + return Promise.all(waitOn); + }, + destroy: function () { + deprecated('page destroy method, use cleanup() instead'); + this.cleanup(); + }, + cleanup: function PDFPageProxy_cleanup() { + this.pendingCleanup = true; + this._tryCleanup(); + }, + _tryCleanup: function PDFPageProxy_tryCleanup() { + if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) { + var intentState = this.intentStates[intent]; + return intentState.renderTasks.length !== 0 || intentState.receivingOperatorList; + }, this)) { + return; + } + Object.keys(this.intentStates).forEach(function (intent) { + delete this.intentStates[intent]; + }, this); + this.objs.clear(); + this.annotationsPromise = null; + this.pendingCleanup = false; + }, + _startRenderPage: function PDFPageProxy_startRenderPage(transparency, intent) { + var intentState = this.intentStates[intent]; + if (intentState.displayReadyCapability) { + intentState.displayReadyCapability.resolve(transparency); + } + }, + _renderPageChunk: function PDFPageProxy_renderPageChunk(operatorListChunk, intent) { + var intentState = this.intentStates[intent]; + var i, ii; + for (i = 0, ii = operatorListChunk.length; i < ii; i++) { + intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]); + intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]); + } + intentState.operatorList.lastChunk = operatorListChunk.lastChunk; + for (i = 0; i < intentState.renderTasks.length; i++) { + intentState.renderTasks[i].operatorListChanged(); + } + if (operatorListChunk.lastChunk) { + intentState.receivingOperatorList = false; + this._tryCleanup(); + } + } + }; + return PDFPageProxy; +}(); +var PDFWorker = function PDFWorkerClosure() { + var nextFakeWorkerId = 0; + function getWorkerSrc() { + if (typeof workerSrc !== 'undefined') { + return workerSrc; + } + if (getDefaultSetting('workerSrc')) { + return getDefaultSetting('workerSrc'); + } + if (pdfjsFilePath) { + return pdfjsFilePath.replace(/\.js$/i, '.worker.js'); + } + error('No PDFJS.workerSrc specified'); + } + var fakeWorkerFilesLoadedCapability; + function setupFakeWorkerGlobal() { + var WorkerMessageHandler; + if (fakeWorkerFilesLoadedCapability) { + return fakeWorkerFilesLoadedCapability.promise; + } + fakeWorkerFilesLoadedCapability = createPromiseCapability(); + var loader = fakeWorkerFilesLoader || function (callback) { + Util.loadScript(getWorkerSrc(), function () { + callback(window.pdfjsDistBuildPdfWorker.WorkerMessageHandler); + }); + }; + loader(fakeWorkerFilesLoadedCapability.resolve); + return fakeWorkerFilesLoadedCapability.promise; + } + function FakeWorkerPort(defer) { + this._listeners = []; + this._defer = defer; + this._deferred = Promise.resolve(undefined); + } + FakeWorkerPort.prototype = { + postMessage: function (obj, transfers) { + function cloneValue(value) { + if (typeof value !== 'object' || value === null) { + return value; + } + if (cloned.has(value)) { + return cloned.get(value); + } + var result; + var buffer; + if ((buffer = value.buffer) && isArrayBuffer(buffer)) { + var transferable = transfers && transfers.indexOf(buffer) >= 0; + if (value === buffer) { + result = value; + } else if (transferable) { + result = new value.constructor(buffer, value.byteOffset, value.byteLength); + } else { + result = new value.constructor(value); + } + cloned.set(value, result); + return result; + } + result = isArray(value) ? [] : {}; + cloned.set(value, result); + for (var i in value) { + var desc, p = value; + while (!(desc = Object.getOwnPropertyDescriptor(p, i))) { + p = Object.getPrototypeOf(p); + } + if (typeof desc.value === 'undefined' || typeof desc.value === 'function') { + continue; + } + result[i] = cloneValue(desc.value); + } + return result; + } + if (!this._defer) { + this._listeners.forEach(function (listener) { + listener.call(this, { data: obj }); + }, this); + return; + } + var cloned = new WeakMap(); + var e = { data: cloneValue(obj) }; + this._deferred.then(function () { + this._listeners.forEach(function (listener) { + listener.call(this, e); + }, this); + }.bind(this)); + }, + addEventListener: function (name, listener) { + this._listeners.push(listener); + }, + removeEventListener: function (name, listener) { + var i = this._listeners.indexOf(listener); + this._listeners.splice(i, 1); + }, + terminate: function () { + this._listeners = []; + } + }; + function createCDNWrapper(url) { + var wrapper = 'importScripts(\'' + url + '\');'; + return URL.createObjectURL(new Blob([wrapper])); + } + function PDFWorker(name, port) { + this.name = name; + this.destroyed = false; + this._readyCapability = createPromiseCapability(); + this._port = null; + this._webWorker = null; + this._messageHandler = null; + if (port) { + this._initializeFromPort(port); + return; + } + this._initialize(); + } + PDFWorker.prototype = { + get promise() { + return this._readyCapability.promise; + }, + get port() { + return this._port; + }, + get messageHandler() { + return this._messageHandler; + }, + _initializeFromPort: function PDFWorker_initializeFromPort(port) { + this._port = port; + this._messageHandler = new MessageHandler('main', 'worker', port); + this._messageHandler.on('ready', function () { + }); + this._readyCapability.resolve(); + }, + _initialize: function PDFWorker_initialize() { + if (!isWorkerDisabled && !getDefaultSetting('disableWorker') && typeof Worker !== 'undefined') { + var workerSrc = getWorkerSrc(); + try { + if (!isSameOrigin(window.location.href, workerSrc)) { + workerSrc = createCDNWrapper(new URL(workerSrc, window.location).href); + } + var worker = new Worker(workerSrc); + var messageHandler = new MessageHandler('main', 'worker', worker); + var terminateEarly = function () { + worker.removeEventListener('error', onWorkerError); + messageHandler.destroy(); + worker.terminate(); + if (this.destroyed) { + this._readyCapability.reject(new Error('Worker was destroyed')); + } else { + this._setupFakeWorker(); + } + }.bind(this); + var onWorkerError = function (event) { + if (!this._webWorker) { + terminateEarly(); + } + }.bind(this); + worker.addEventListener('error', onWorkerError); + messageHandler.on('test', function PDFWorker_test(data) { + worker.removeEventListener('error', onWorkerError); + if (this.destroyed) { + terminateEarly(); + return; + } + var supportTypedArray = data && data.supportTypedArray; + if (supportTypedArray) { + this._messageHandler = messageHandler; + this._port = worker; + this._webWorker = worker; + if (!data.supportTransfers) { + isPostMessageTransfersDisabled = true; + } + this._readyCapability.resolve(); + messageHandler.send('configure', { verbosity: getVerbosityLevel() }); + } else { + this._setupFakeWorker(); + messageHandler.destroy(); + worker.terminate(); + } + }.bind(this)); + messageHandler.on('console_log', function (data) { + console.log.apply(console, data); + }); + messageHandler.on('console_error', function (data) { + console.error.apply(console, data); + }); + messageHandler.on('ready', function (data) { + worker.removeEventListener('error', onWorkerError); + if (this.destroyed) { + terminateEarly(); + return; + } + try { + sendTest(); + } catch (e) { + this._setupFakeWorker(); + } + }.bind(this)); + var sendTest = function () { + var postMessageTransfers = getDefaultSetting('postMessageTransfers') && !isPostMessageTransfersDisabled; + var testObj = new Uint8Array([postMessageTransfers ? 255 : 0]); + try { + messageHandler.send('test', testObj, [testObj.buffer]); + } catch (ex) { + info('Cannot use postMessage transfers'); + testObj[0] = 0; + messageHandler.send('test', testObj); + } + }; + sendTest(); + return; + } catch (e) { + info('The worker has been disabled.'); + } + } + this._setupFakeWorker(); + }, + _setupFakeWorker: function PDFWorker_setupFakeWorker() { + if (!isWorkerDisabled && !getDefaultSetting('disableWorker')) { + warn('Setting up fake worker.'); + isWorkerDisabled = true; + } + setupFakeWorkerGlobal().then(function (WorkerMessageHandler) { + if (this.destroyed) { + this._readyCapability.reject(new Error('Worker was destroyed')); + return; + } + var isTypedArraysPresent = Uint8Array !== Float32Array; + var port = new FakeWorkerPort(isTypedArraysPresent); + this._port = port; + var id = 'fake' + nextFakeWorkerId++; + var workerHandler = new MessageHandler(id + '_worker', id, port); + WorkerMessageHandler.setup(workerHandler, port); + var messageHandler = new MessageHandler(id, id + '_worker', port); + this._messageHandler = messageHandler; + this._readyCapability.resolve(); + }.bind(this)); + }, + destroy: function PDFWorker_destroy() { + this.destroyed = true; + if (this._webWorker) { + this._webWorker.terminate(); + this._webWorker = null; + } + this._port = null; + if (this._messageHandler) { + this._messageHandler.destroy(); + this._messageHandler = null; + } + } + }; + return PDFWorker; +}(); +var WorkerTransport = function WorkerTransportClosure() { + function WorkerTransport(messageHandler, loadingTask, pdfDataRangeTransport, CMapReaderFactory) { + this.messageHandler = messageHandler; + this.loadingTask = loadingTask; + this.pdfDataRangeTransport = pdfDataRangeTransport; + this.commonObjs = new PDFObjects(); + this.fontLoader = new FontLoader(loadingTask.docId); + this.CMapReaderFactory = new CMapReaderFactory({ + baseUrl: getDefaultSetting('cMapUrl'), + isCompressed: getDefaultSetting('cMapPacked') + }); + this.destroyed = false; + this.destroyCapability = null; + this._passwordCapability = null; + this.pageCache = []; + this.pagePromises = []; + this.downloadInfoCapability = createPromiseCapability(); + this.setupMessageHandler(); + } + WorkerTransport.prototype = { + destroy: function WorkerTransport_destroy() { + if (this.destroyCapability) { + return this.destroyCapability.promise; + } + this.destroyed = true; + this.destroyCapability = createPromiseCapability(); + if (this._passwordCapability) { + this._passwordCapability.reject(new Error('Worker was destroyed during onPassword callback')); + } + var waitOn = []; + this.pageCache.forEach(function (page) { + if (page) { + waitOn.push(page._destroy()); + } + }); + this.pageCache = []; + this.pagePromises = []; + var self = this; + var terminated = this.messageHandler.sendWithPromise('Terminate', null); + waitOn.push(terminated); + Promise.all(waitOn).then(function () { + self.fontLoader.clear(); + if (self.pdfDataRangeTransport) { + self.pdfDataRangeTransport.abort(); + self.pdfDataRangeTransport = null; + } + if (self.messageHandler) { + self.messageHandler.destroy(); + self.messageHandler = null; + } + self.destroyCapability.resolve(); + }, this.destroyCapability.reject); + return this.destroyCapability.promise; + }, + setupMessageHandler: function WorkerTransport_setupMessageHandler() { + var messageHandler = this.messageHandler; + var loadingTask = this.loadingTask; + var pdfDataRangeTransport = this.pdfDataRangeTransport; + if (pdfDataRangeTransport) { + pdfDataRangeTransport.addRangeListener(function (begin, chunk) { + messageHandler.send('OnDataRange', { + begin: begin, + chunk: chunk + }); + }); + pdfDataRangeTransport.addProgressListener(function (loaded) { + messageHandler.send('OnDataProgress', { loaded: loaded }); + }); + pdfDataRangeTransport.addProgressiveReadListener(function (chunk) { + messageHandler.send('OnDataRange', { chunk: chunk }); + }); + messageHandler.on('RequestDataRange', function transportDataRange(data) { + pdfDataRangeTransport.requestDataRange(data.begin, data.end); + }, this); + } + messageHandler.on('GetDoc', function transportDoc(data) { + var pdfInfo = data.pdfInfo; + this.numPages = data.pdfInfo.numPages; + var loadingTask = this.loadingTask; + var pdfDocument = new PDFDocumentProxy(pdfInfo, this, loadingTask); + this.pdfDocument = pdfDocument; + loadingTask._capability.resolve(pdfDocument); + }, this); + messageHandler.on('PasswordRequest', function transportPasswordRequest(exception) { + this._passwordCapability = createPromiseCapability(); + if (loadingTask.onPassword) { + var updatePassword = function (password) { + this._passwordCapability.resolve({ password: password }); + }.bind(this); + loadingTask.onPassword(updatePassword, exception.code); + } else { + this._passwordCapability.reject(new PasswordException(exception.message, exception.code)); + } + return this._passwordCapability.promise; + }, this); + messageHandler.on('PasswordException', function transportPasswordException(exception) { + loadingTask._capability.reject(new PasswordException(exception.message, exception.code)); + }, this); + messageHandler.on('InvalidPDF', function transportInvalidPDF(exception) { + this.loadingTask._capability.reject(new InvalidPDFException(exception.message)); + }, this); + messageHandler.on('MissingPDF', function transportMissingPDF(exception) { + this.loadingTask._capability.reject(new MissingPDFException(exception.message)); + }, this); + messageHandler.on('UnexpectedResponse', function transportUnexpectedResponse(exception) { + this.loadingTask._capability.reject(new UnexpectedResponseException(exception.message, exception.status)); + }, this); + messageHandler.on('UnknownError', function transportUnknownError(exception) { + this.loadingTask._capability.reject(new UnknownErrorException(exception.message, exception.details)); + }, this); + messageHandler.on('DataLoaded', function transportPage(data) { + this.downloadInfoCapability.resolve(data); + }, this); + messageHandler.on('PDFManagerReady', function transportPage(data) { + if (this.pdfDataRangeTransport) { + this.pdfDataRangeTransport.transportReady(); + } + }, this); + messageHandler.on('StartRenderPage', function transportRender(data) { + if (this.destroyed) { + return; + } + var page = this.pageCache[data.pageIndex]; + page.stats.timeEnd('Page Request'); + page._startRenderPage(data.transparency, data.intent); + }, this); + messageHandler.on('RenderPageChunk', function transportRender(data) { + if (this.destroyed) { + return; + } + var page = this.pageCache[data.pageIndex]; + page._renderPageChunk(data.operatorList, data.intent); + }, this); + messageHandler.on('commonobj', function transportObj(data) { + if (this.destroyed) { + return; + } + var id = data[0]; + var type = data[1]; + if (this.commonObjs.hasData(id)) { + return; + } + switch (type) { + case 'Font': + var exportedData = data[2]; + if ('error' in exportedData) { + var exportedError = exportedData.error; + warn('Error during font loading: ' + exportedError); + this.commonObjs.resolve(id, exportedError); + break; + } + var fontRegistry = null; + if (getDefaultSetting('pdfBug') && globalScope.FontInspector && globalScope['FontInspector'].enabled) { + fontRegistry = { + registerFont: function (font, url) { + globalScope['FontInspector'].fontAdded(font, url); + } + }; + } + var font = new FontFaceObject(exportedData, { + isEvalSuported: getDefaultSetting('isEvalSupported'), + disableFontFace: getDefaultSetting('disableFontFace'), + fontRegistry: fontRegistry + }); + this.fontLoader.bind([font], function fontReady(fontObjs) { + this.commonObjs.resolve(id, font); + }.bind(this)); + break; + case 'FontPath': + this.commonObjs.resolve(id, data[2]); + break; + default: + error('Got unknown common object type ' + type); + } + }, this); + messageHandler.on('obj', function transportObj(data) { + if (this.destroyed) { + return; + } + var id = data[0]; + var pageIndex = data[1]; + var type = data[2]; + var pageProxy = this.pageCache[pageIndex]; + var imageData; + if (pageProxy.objs.hasData(id)) { + return; + } + switch (type) { + case 'JpegStream': + imageData = data[3]; + loadJpegStream(id, imageData, pageProxy.objs); + break; + case 'Image': + imageData = data[3]; + pageProxy.objs.resolve(id, imageData); + var MAX_IMAGE_SIZE_TO_STORE = 8000000; + if (imageData && 'data' in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) { + pageProxy.cleanupAfterRender = true; + } + break; + default: + error('Got unknown object type ' + type); + } + }, this); + messageHandler.on('DocProgress', function transportDocProgress(data) { + if (this.destroyed) { + return; + } + var loadingTask = this.loadingTask; + if (loadingTask.onProgress) { + loadingTask.onProgress({ + loaded: data.loaded, + total: data.total + }); + } + }, this); + messageHandler.on('PageError', function transportError(data) { + if (this.destroyed) { + return; + } + var page = this.pageCache[data.pageNum - 1]; + var intentState = page.intentStates[data.intent]; + if (intentState.displayReadyCapability) { + intentState.displayReadyCapability.reject(data.error); + } else { + error(data.error); + } + if (intentState.operatorList) { + intentState.operatorList.lastChunk = true; + for (var i = 0; i < intentState.renderTasks.length; i++) { + intentState.renderTasks[i].operatorListChanged(); + } + } + }, this); + messageHandler.on('UnsupportedFeature', function transportUnsupportedFeature(data) { + if (this.destroyed) { + return; + } + var featureId = data.featureId; + var loadingTask = this.loadingTask; + if (loadingTask.onUnsupportedFeature) { + loadingTask.onUnsupportedFeature(featureId); + } + _UnsupportedManager.notify(featureId); + }, this); + messageHandler.on('JpegDecode', function (data) { + if (this.destroyed) { + return Promise.reject(new Error('Worker was destroyed')); + } + if (typeof document === 'undefined') { + return Promise.reject(new Error('"document" is not defined.')); + } + var imageUrl = data[0]; + var components = data[1]; + if (components !== 3 && components !== 1) { + return Promise.reject(new Error('Only 3 components or 1 component can be returned')); + } + return new Promise(function (resolve, reject) { + var img = new Image(); + img.onload = function () { + var width = img.width; + var height = img.height; + var size = width * height; + var rgbaLength = size * 4; + var buf = new Uint8Array(size * components); + var tmpCanvas = document.createElement('canvas'); + tmpCanvas.width = width; + tmpCanvas.height = height; + var tmpCtx = tmpCanvas.getContext('2d'); + tmpCtx.drawImage(img, 0, 0); + var data = tmpCtx.getImageData(0, 0, width, height).data; + var i, j; + if (components === 3) { + for (i = 0, j = 0; i < rgbaLength; i += 4, j += 3) { + buf[j] = data[i]; + buf[j + 1] = data[i + 1]; + buf[j + 2] = data[i + 2]; + } + } else if (components === 1) { + for (i = 0, j = 0; i < rgbaLength; i += 4, j++) { + buf[j] = data[i]; + } + } + resolve({ + data: buf, + width: width, + height: height + }); + }; + img.onerror = function () { + reject(new Error('JpegDecode failed to load image')); + }; + img.src = imageUrl; + }); + }, this); + messageHandler.on('FetchBuiltInCMap', function (data) { + if (this.destroyed) { + return Promise.reject(new Error('Worker was destroyed')); + } + return this.CMapReaderFactory.fetch({ name: data.name }); + }, this); + }, + getData: function WorkerTransport_getData() { + return this.messageHandler.sendWithPromise('GetData', null); + }, + getPage: function WorkerTransport_getPage(pageNumber, capability) { + if (!isInt(pageNumber) || pageNumber <= 0 || pageNumber > this.numPages) { + return Promise.reject(new Error('Invalid page request')); + } + var pageIndex = pageNumber - 1; + if (pageIndex in this.pagePromises) { + return this.pagePromises[pageIndex]; + } + var promise = this.messageHandler.sendWithPromise('GetPage', { pageIndex: pageIndex }).then(function (pageInfo) { + if (this.destroyed) { + throw new Error('Transport destroyed'); + } + var page = new PDFPageProxy(pageIndex, pageInfo, this); + this.pageCache[pageIndex] = page; + return page; + }.bind(this)); + this.pagePromises[pageIndex] = promise; + return promise; + }, + getPageIndex: function WorkerTransport_getPageIndexByRef(ref) { + return this.messageHandler.sendWithPromise('GetPageIndex', { ref: ref }).catch(function (reason) { + return Promise.reject(new Error(reason)); + }); + }, + getAnnotations: function WorkerTransport_getAnnotations(pageIndex, intent) { + return this.messageHandler.sendWithPromise('GetAnnotations', { + pageIndex: pageIndex, + intent: intent + }); + }, + getDestinations: function WorkerTransport_getDestinations() { + return this.messageHandler.sendWithPromise('GetDestinations', null); + }, + getDestination: function WorkerTransport_getDestination(id) { + return this.messageHandler.sendWithPromise('GetDestination', { id: id }); + }, + getPageLabels: function WorkerTransport_getPageLabels() { + return this.messageHandler.sendWithPromise('GetPageLabels', null); + }, + getAttachments: function WorkerTransport_getAttachments() { + return this.messageHandler.sendWithPromise('GetAttachments', null); + }, + getJavaScript: function WorkerTransport_getJavaScript() { + return this.messageHandler.sendWithPromise('GetJavaScript', null); + }, + getOutline: function WorkerTransport_getOutline() { + return this.messageHandler.sendWithPromise('GetOutline', null); + }, + getMetadata: function WorkerTransport_getMetadata() { + return this.messageHandler.sendWithPromise('GetMetadata', null).then(function transportMetadata(results) { + return { + info: results[0], + metadata: results[1] ? new Metadata(results[1]) : null + }; + }); + }, + getStats: function WorkerTransport_getStats() { + return this.messageHandler.sendWithPromise('GetStats', null); + }, + startCleanup: function WorkerTransport_startCleanup() { + this.messageHandler.sendWithPromise('Cleanup', null).then(function endCleanup() { + for (var i = 0, ii = this.pageCache.length; i < ii; i++) { + var page = this.pageCache[i]; + if (page) { + page.cleanup(); + } + } + this.commonObjs.clear(); + this.fontLoader.clear(); + }.bind(this)); + } + }; + return WorkerTransport; +}(); +var PDFObjects = function PDFObjectsClosure() { + function PDFObjects() { + this.objs = Object.create(null); + } + PDFObjects.prototype = { + ensureObj: function PDFObjects_ensureObj(objId) { + if (this.objs[objId]) { + return this.objs[objId]; + } + var obj = { + capability: createPromiseCapability(), + data: null, + resolved: false + }; + this.objs[objId] = obj; + return obj; + }, + get: function PDFObjects_get(objId, callback) { + if (callback) { + this.ensureObj(objId).capability.promise.then(callback); + return null; + } + var obj = this.objs[objId]; + if (!obj || !obj.resolved) { + error('Requesting object that isn\'t resolved yet ' + objId); + } + return obj.data; + }, + resolve: function PDFObjects_resolve(objId, data) { + var obj = this.ensureObj(objId); + obj.resolved = true; + obj.data = data; + obj.capability.resolve(data); + }, + isResolved: function PDFObjects_isResolved(objId) { + var objs = this.objs; + if (!objs[objId]) { + return false; + } + return objs[objId].resolved; + }, + hasData: function PDFObjects_hasData(objId) { + return this.isResolved(objId); + }, + getData: function PDFObjects_getData(objId) { + var objs = this.objs; + if (!objs[objId] || !objs[objId].resolved) { + return null; + } + return objs[objId].data; + }, + clear: function PDFObjects_clear() { + this.objs = Object.create(null); + } + }; + return PDFObjects; +}(); +var RenderTask = function RenderTaskClosure() { + function RenderTask(internalRenderTask) { + this._internalRenderTask = internalRenderTask; + this.onContinue = null; + } + RenderTask.prototype = { + get promise() { + return this._internalRenderTask.capability.promise; + }, + cancel: function RenderTask_cancel() { + this._internalRenderTask.cancel(); + }, + then: function RenderTask_then(onFulfilled, onRejected) { + return this.promise.then.apply(this.promise, arguments); + } + }; + return RenderTask; +}(); +var InternalRenderTask = function InternalRenderTaskClosure() { + function InternalRenderTask(callback, params, objs, commonObjs, operatorList, pageNumber, canvasFactory) { + this.callback = callback; + this.params = params; + this.objs = objs; + this.commonObjs = commonObjs; + this.operatorListIdx = null; + this.operatorList = operatorList; + this.pageNumber = pageNumber; + this.canvasFactory = canvasFactory; + this.running = false; + this.graphicsReadyCallback = null; + this.graphicsReady = false; + this.useRequestAnimationFrame = false; + this.cancelled = false; + this.capability = createPromiseCapability(); + this.task = new RenderTask(this); + this._continueBound = this._continue.bind(this); + this._scheduleNextBound = this._scheduleNext.bind(this); + this._nextBound = this._next.bind(this); + } + InternalRenderTask.prototype = { + initializeGraphics: function InternalRenderTask_initializeGraphics(transparency) { + if (this.cancelled) { + return; + } + if (getDefaultSetting('pdfBug') && globalScope.StepperManager && globalScope.StepperManager.enabled) { + this.stepper = globalScope.StepperManager.create(this.pageNumber - 1); + this.stepper.init(this.operatorList); + this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint(); + } + var params = this.params; + this.gfx = new CanvasGraphics(params.canvasContext, this.commonObjs, this.objs, this.canvasFactory, params.imageLayer); + this.gfx.beginDrawing(params.transform, params.viewport, transparency); + this.operatorListIdx = 0; + this.graphicsReady = true; + if (this.graphicsReadyCallback) { + this.graphicsReadyCallback(); + } + }, + cancel: function InternalRenderTask_cancel() { + this.running = false; + this.cancelled = true; + this.callback('cancelled'); + }, + operatorListChanged: function InternalRenderTask_operatorListChanged() { + if (!this.graphicsReady) { + if (!this.graphicsReadyCallback) { + this.graphicsReadyCallback = this._continueBound; + } + return; + } + if (this.stepper) { + this.stepper.updateOperatorList(this.operatorList); + } + if (this.running) { + return; + } + this._continue(); + }, + _continue: function InternalRenderTask__continue() { + this.running = true; + if (this.cancelled) { + return; + } + if (this.task.onContinue) { + this.task.onContinue(this._scheduleNextBound); + } else { + this._scheduleNext(); + } + }, + _scheduleNext: function InternalRenderTask__scheduleNext() { + if (this.useRequestAnimationFrame && typeof window !== 'undefined') { + window.requestAnimationFrame(this._nextBound); + } else { + Promise.resolve(undefined).then(this._nextBound); + } + }, + _next: function InternalRenderTask__next() { + if (this.cancelled) { + return; + } + this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper); + if (this.operatorListIdx === this.operatorList.argsArray.length) { + this.running = false; + if (this.operatorList.lastChunk) { + this.gfx.endDrawing(); + this.callback(); + } + } + } + }; + return InternalRenderTask; +}(); +var _UnsupportedManager = function UnsupportedManagerClosure() { + var listeners = []; + return { + listen: function (cb) { + deprecated('Global UnsupportedManager.listen is used: ' + ' use PDFDocumentLoadingTask.onUnsupportedFeature instead'); + listeners.push(cb); + }, + notify: function (featureId) { + for (var i = 0, ii = listeners.length; i < ii; i++) { + listeners[i](featureId); + } + } + }; +}(); +exports.version = '1.7.365'; +exports.build = '2b171889'; +exports.getDocument = getDocument; +exports.PDFDataRangeTransport = PDFDataRangeTransport; +exports.PDFWorker = PDFWorker; +exports.PDFDocumentProxy = PDFDocumentProxy; +exports.PDFPageProxy = PDFPageProxy; +exports._UnsupportedManager = _UnsupportedManager; + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var FONT_IDENTITY_MATRIX = sharedUtil.FONT_IDENTITY_MATRIX; +var IDENTITY_MATRIX = sharedUtil.IDENTITY_MATRIX; +var ImageKind = sharedUtil.ImageKind; +var OPS = sharedUtil.OPS; +var Util = sharedUtil.Util; +var isNum = sharedUtil.isNum; +var isArray = sharedUtil.isArray; +var warn = sharedUtil.warn; +var createObjectURL = sharedUtil.createObjectURL; +var SVG_DEFAULTS = { + fontStyle: 'normal', + fontWeight: 'normal', + fillColor: '#000000' +}; +var convertImgDataToPng = function convertImgDataToPngClosure() { + var PNG_HEADER = new Uint8Array([ + 0x89, + 0x50, + 0x4e, + 0x47, + 0x0d, + 0x0a, + 0x1a, + 0x0a + ]); + var CHUNK_WRAPPER_SIZE = 12; + var crcTable = new Int32Array(256); + for (var i = 0; i < 256; i++) { + var c = i; + for (var h = 0; h < 8; h++) { + if (c & 1) { + c = 0xedB88320 ^ c >> 1 & 0x7fffffff; + } else { + c = c >> 1 & 0x7fffffff; + } + } + crcTable[i] = c; + } + function crc32(data, start, end) { + var crc = -1; + for (var i = start; i < end; i++) { + var a = (crc ^ data[i]) & 0xff; + var b = crcTable[a]; + crc = crc >>> 8 ^ b; + } + return crc ^ -1; + } + function writePngChunk(type, body, data, offset) { + var p = offset; + var len = body.length; + data[p] = len >> 24 & 0xff; + data[p + 1] = len >> 16 & 0xff; + data[p + 2] = len >> 8 & 0xff; + data[p + 3] = len & 0xff; + p += 4; + data[p] = type.charCodeAt(0) & 0xff; + data[p + 1] = type.charCodeAt(1) & 0xff; + data[p + 2] = type.charCodeAt(2) & 0xff; + data[p + 3] = type.charCodeAt(3) & 0xff; + p += 4; + data.set(body, p); + p += body.length; + var crc = crc32(data, offset + 4, p); + data[p] = crc >> 24 & 0xff; + data[p + 1] = crc >> 16 & 0xff; + data[p + 2] = crc >> 8 & 0xff; + data[p + 3] = crc & 0xff; + } + function adler32(data, start, end) { + var a = 1; + var b = 0; + for (var i = start; i < end; ++i) { + a = (a + (data[i] & 0xff)) % 65521; + b = (b + a) % 65521; + } + return b << 16 | a; + } + function encode(imgData, kind, forceDataSchema) { + var width = imgData.width; + var height = imgData.height; + var bitDepth, colorType, lineSize; + var bytes = imgData.data; + switch (kind) { + case ImageKind.GRAYSCALE_1BPP: + colorType = 0; + bitDepth = 1; + lineSize = width + 7 >> 3; + break; + case ImageKind.RGB_24BPP: + colorType = 2; + bitDepth = 8; + lineSize = width * 3; + break; + case ImageKind.RGBA_32BPP: + colorType = 6; + bitDepth = 8; + lineSize = width * 4; + break; + default: + throw new Error('invalid format'); + } + var literals = new Uint8Array((1 + lineSize) * height); + var offsetLiterals = 0, offsetBytes = 0; + var y, i; + for (y = 0; y < height; ++y) { + literals[offsetLiterals++] = 0; + literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals); + offsetBytes += lineSize; + offsetLiterals += lineSize; + } + if (kind === ImageKind.GRAYSCALE_1BPP) { + offsetLiterals = 0; + for (y = 0; y < height; y++) { + offsetLiterals++; + for (i = 0; i < lineSize; i++) { + literals[offsetLiterals++] ^= 0xFF; + } + } + } + var ihdr = new Uint8Array([ + width >> 24 & 0xff, + width >> 16 & 0xff, + width >> 8 & 0xff, + width & 0xff, + height >> 24 & 0xff, + height >> 16 & 0xff, + height >> 8 & 0xff, + height & 0xff, + bitDepth, + colorType, + 0x00, + 0x00, + 0x00 + ]); + var len = literals.length; + var maxBlockLength = 0xFFFF; + var deflateBlocks = Math.ceil(len / maxBlockLength); + var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4); + var pi = 0; + idat[pi++] = 0x78; + idat[pi++] = 0x9c; + var pos = 0; + while (len > maxBlockLength) { + idat[pi++] = 0x00; + idat[pi++] = 0xff; + idat[pi++] = 0xff; + idat[pi++] = 0x00; + idat[pi++] = 0x00; + idat.set(literals.subarray(pos, pos + maxBlockLength), pi); + pi += maxBlockLength; + pos += maxBlockLength; + len -= maxBlockLength; + } + idat[pi++] = 0x01; + idat[pi++] = len & 0xff; + idat[pi++] = len >> 8 & 0xff; + idat[pi++] = ~len & 0xffff & 0xff; + idat[pi++] = (~len & 0xffff) >> 8 & 0xff; + idat.set(literals.subarray(pos), pi); + pi += literals.length - pos; + var adler = adler32(literals, 0, literals.length); + idat[pi++] = adler >> 24 & 0xff; + idat[pi++] = adler >> 16 & 0xff; + idat[pi++] = adler >> 8 & 0xff; + idat[pi++] = adler & 0xff; + var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length; + var data = new Uint8Array(pngLength); + var offset = 0; + data.set(PNG_HEADER, offset); + offset += PNG_HEADER.length; + writePngChunk('IHDR', ihdr, data, offset); + offset += CHUNK_WRAPPER_SIZE + ihdr.length; + writePngChunk('IDATA', idat, data, offset); + offset += CHUNK_WRAPPER_SIZE + idat.length; + writePngChunk('IEND', new Uint8Array(0), data, offset); + return createObjectURL(data, 'image/png', forceDataSchema); + } + return function convertImgDataToPng(imgData, forceDataSchema) { + var kind = imgData.kind === undefined ? ImageKind.GRAYSCALE_1BPP : imgData.kind; + return encode(imgData, kind, forceDataSchema); + }; +}(); +var SVGExtraState = function SVGExtraStateClosure() { + function SVGExtraState() { + this.fontSizeScale = 1; + this.fontWeight = SVG_DEFAULTS.fontWeight; + this.fontSize = 0; + this.textMatrix = IDENTITY_MATRIX; + this.fontMatrix = FONT_IDENTITY_MATRIX; + this.leading = 0; + this.x = 0; + this.y = 0; + this.lineX = 0; + this.lineY = 0; + this.charSpacing = 0; + this.wordSpacing = 0; + this.textHScale = 1; + this.textRise = 0; + this.fillColor = SVG_DEFAULTS.fillColor; + this.strokeColor = '#000000'; + this.fillAlpha = 1; + this.strokeAlpha = 1; + this.lineWidth = 1; + this.lineJoin = ''; + this.lineCap = ''; + this.miterLimit = 0; + this.dashArray = []; + this.dashPhase = 0; + this.dependencies = []; + this.activeClipUrl = null; + this.clipGroup = null; + this.maskId = ''; + } + SVGExtraState.prototype = { + clone: function SVGExtraState_clone() { + return Object.create(this); + }, + setCurrentPoint: function SVGExtraState_setCurrentPoint(x, y) { + this.x = x; + this.y = y; + } + }; + return SVGExtraState; +}(); +var SVGGraphics = function SVGGraphicsClosure() { + function opListToTree(opList) { + var opTree = []; + var tmp = []; + var opListLen = opList.length; + for (var x = 0; x < opListLen; x++) { + if (opList[x].fn === 'save') { + opTree.push({ + 'fnId': 92, + 'fn': 'group', + 'items': [] + }); + tmp.push(opTree); + opTree = opTree[opTree.length - 1].items; + continue; + } + if (opList[x].fn === 'restore') { + opTree = tmp.pop(); + } else { + opTree.push(opList[x]); + } + } + return opTree; + } + function pf(value) { + if (value === (value | 0)) { + return value.toString(); + } + var s = value.toFixed(10); + var i = s.length - 1; + if (s[i] !== '0') { + return s; + } + do { + i--; + } while (s[i] === '0'); + return s.substr(0, s[i] === '.' ? i : i + 1); + } + function pm(m) { + if (m[4] === 0 && m[5] === 0) { + if (m[1] === 0 && m[2] === 0) { + if (m[0] === 1 && m[3] === 1) { + return ''; + } + return 'scale(' + pf(m[0]) + ' ' + pf(m[3]) + ')'; + } + if (m[0] === m[3] && m[1] === -m[2]) { + var a = Math.acos(m[0]) * 180 / Math.PI; + return 'rotate(' + pf(a) + ')'; + } + } else { + if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) { + return 'translate(' + pf(m[4]) + ' ' + pf(m[5]) + ')'; + } + } + return 'matrix(' + pf(m[0]) + ' ' + pf(m[1]) + ' ' + pf(m[2]) + ' ' + pf(m[3]) + ' ' + pf(m[4]) + ' ' + pf(m[5]) + ')'; + } + function SVGGraphics(commonObjs, objs, forceDataSchema) { + this.current = new SVGExtraState(); + this.transformMatrix = IDENTITY_MATRIX; + this.transformStack = []; + this.extraStack = []; + this.commonObjs = commonObjs; + this.objs = objs; + this.pendingEOFill = false; + this.embedFonts = false; + this.embeddedFonts = Object.create(null); + this.cssStyle = null; + this.forceDataSchema = !!forceDataSchema; + } + var NS = 'http://www.w3.org/2000/svg'; + var XML_NS = 'http://www.w3.org/XML/1998/namespace'; + var XLINK_NS = 'http://www.w3.org/1999/xlink'; + var LINE_CAP_STYLES = [ + 'butt', + 'round', + 'square' + ]; + var LINE_JOIN_STYLES = [ + 'miter', + 'round', + 'bevel' + ]; + var clipCount = 0; + var maskCount = 0; + SVGGraphics.prototype = { + save: function SVGGraphics_save() { + this.transformStack.push(this.transformMatrix); + var old = this.current; + this.extraStack.push(old); + this.current = old.clone(); + }, + restore: function SVGGraphics_restore() { + this.transformMatrix = this.transformStack.pop(); + this.current = this.extraStack.pop(); + this.tgrp = null; + }, + group: function SVGGraphics_group(items) { + this.save(); + this.executeOpTree(items); + this.restore(); + }, + loadDependencies: function SVGGraphics_loadDependencies(operatorList) { + var fnArray = operatorList.fnArray; + var fnArrayLen = fnArray.length; + var argsArray = operatorList.argsArray; + var self = this; + for (var i = 0; i < fnArrayLen; i++) { + if (OPS.dependency === fnArray[i]) { + var deps = argsArray[i]; + for (var n = 0, nn = deps.length; n < nn; n++) { + var obj = deps[n]; + var common = obj.substring(0, 2) === 'g_'; + var promise; + if (common) { + promise = new Promise(function (resolve) { + self.commonObjs.get(obj, resolve); + }); + } else { + promise = new Promise(function (resolve) { + self.objs.get(obj, resolve); + }); + } + this.current.dependencies.push(promise); + } + } + } + return Promise.all(this.current.dependencies); + }, + transform: function SVGGraphics_transform(a, b, c, d, e, f) { + var transformMatrix = [ + a, + b, + c, + d, + e, + f + ]; + this.transformMatrix = Util.transform(this.transformMatrix, transformMatrix); + this.tgrp = null; + }, + getSVG: function SVGGraphics_getSVG(operatorList, viewport) { + this.viewport = viewport; + var svgElement = this._initialize(viewport); + return this.loadDependencies(operatorList).then(function () { + this.transformMatrix = IDENTITY_MATRIX; + var opTree = this.convertOpList(operatorList); + this.executeOpTree(opTree); + return svgElement; + }.bind(this)); + }, + convertOpList: function SVGGraphics_convertOpList(operatorList) { + var argsArray = operatorList.argsArray; + var fnArray = operatorList.fnArray; + var fnArrayLen = fnArray.length; + var REVOPS = []; + var opList = []; + for (var op in OPS) { + REVOPS[OPS[op]] = op; + } + for (var x = 0; x < fnArrayLen; x++) { + var fnId = fnArray[x]; + opList.push({ + 'fnId': fnId, + 'fn': REVOPS[fnId], + 'args': argsArray[x] + }); + } + return opListToTree(opList); + }, + executeOpTree: function SVGGraphics_executeOpTree(opTree) { + var opTreeLen = opTree.length; + for (var x = 0; x < opTreeLen; x++) { + var fn = opTree[x].fn; + var fnId = opTree[x].fnId; + var args = opTree[x].args; + switch (fnId | 0) { + case OPS.beginText: + this.beginText(); + break; + case OPS.setLeading: + this.setLeading(args); + break; + case OPS.setLeadingMoveText: + this.setLeadingMoveText(args[0], args[1]); + break; + case OPS.setFont: + this.setFont(args); + break; + case OPS.showText: + this.showText(args[0]); + break; + case OPS.showSpacedText: + this.showText(args[0]); + break; + case OPS.endText: + this.endText(); + break; + case OPS.moveText: + this.moveText(args[0], args[1]); + break; + case OPS.setCharSpacing: + this.setCharSpacing(args[0]); + break; + case OPS.setWordSpacing: + this.setWordSpacing(args[0]); + break; + case OPS.setHScale: + this.setHScale(args[0]); + break; + case OPS.setTextMatrix: + this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); + break; + case OPS.setLineWidth: + this.setLineWidth(args[0]); + break; + case OPS.setLineJoin: + this.setLineJoin(args[0]); + break; + case OPS.setLineCap: + this.setLineCap(args[0]); + break; + case OPS.setMiterLimit: + this.setMiterLimit(args[0]); + break; + case OPS.setFillRGBColor: + this.setFillRGBColor(args[0], args[1], args[2]); + break; + case OPS.setStrokeRGBColor: + this.setStrokeRGBColor(args[0], args[1], args[2]); + break; + case OPS.setDash: + this.setDash(args[0], args[1]); + break; + case OPS.setGState: + this.setGState(args[0]); + break; + case OPS.fill: + this.fill(); + break; + case OPS.eoFill: + this.eoFill(); + break; + case OPS.stroke: + this.stroke(); + break; + case OPS.fillStroke: + this.fillStroke(); + break; + case OPS.eoFillStroke: + this.eoFillStroke(); + break; + case OPS.clip: + this.clip('nonzero'); + break; + case OPS.eoClip: + this.clip('evenodd'); + break; + case OPS.paintSolidColorImageMask: + this.paintSolidColorImageMask(); + break; + case OPS.paintJpegXObject: + this.paintJpegXObject(args[0], args[1], args[2]); + break; + case OPS.paintImageXObject: + this.paintImageXObject(args[0]); + break; + case OPS.paintInlineImageXObject: + this.paintInlineImageXObject(args[0]); + break; + case OPS.paintImageMaskXObject: + this.paintImageMaskXObject(args[0]); + break; + case OPS.paintFormXObjectBegin: + this.paintFormXObjectBegin(args[0], args[1]); + break; + case OPS.paintFormXObjectEnd: + this.paintFormXObjectEnd(); + break; + case OPS.closePath: + this.closePath(); + break; + case OPS.closeStroke: + this.closeStroke(); + break; + case OPS.closeFillStroke: + this.closeFillStroke(); + break; + case OPS.nextLine: + this.nextLine(); + break; + case OPS.transform: + this.transform(args[0], args[1], args[2], args[3], args[4], args[5]); + break; + case OPS.constructPath: + this.constructPath(args[0], args[1]); + break; + case OPS.endPath: + this.endPath(); + break; + case 92: + this.group(opTree[x].items); + break; + default: + warn('Unimplemented operator ' + fn); + break; + } + } + }, + setWordSpacing: function SVGGraphics_setWordSpacing(wordSpacing) { + this.current.wordSpacing = wordSpacing; + }, + setCharSpacing: function SVGGraphics_setCharSpacing(charSpacing) { + this.current.charSpacing = charSpacing; + }, + nextLine: function SVGGraphics_nextLine() { + this.moveText(0, this.current.leading); + }, + setTextMatrix: function SVGGraphics_setTextMatrix(a, b, c, d, e, f) { + var current = this.current; + this.current.textMatrix = this.current.lineMatrix = [ + a, + b, + c, + d, + e, + f + ]; + this.current.x = this.current.lineX = 0; + this.current.y = this.current.lineY = 0; + current.xcoords = []; + current.tspan = document.createElementNS(NS, 'svg:tspan'); + current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); + current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px'); + current.tspan.setAttributeNS(null, 'y', pf(-current.y)); + current.txtElement = document.createElementNS(NS, 'svg:text'); + current.txtElement.appendChild(current.tspan); + }, + beginText: function SVGGraphics_beginText() { + this.current.x = this.current.lineX = 0; + this.current.y = this.current.lineY = 0; + this.current.textMatrix = IDENTITY_MATRIX; + this.current.lineMatrix = IDENTITY_MATRIX; + this.current.tspan = document.createElementNS(NS, 'svg:tspan'); + this.current.txtElement = document.createElementNS(NS, 'svg:text'); + this.current.txtgrp = document.createElementNS(NS, 'svg:g'); + this.current.xcoords = []; + }, + moveText: function SVGGraphics_moveText(x, y) { + var current = this.current; + this.current.x = this.current.lineX += x; + this.current.y = this.current.lineY += y; + current.xcoords = []; + current.tspan = document.createElementNS(NS, 'svg:tspan'); + current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); + current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px'); + current.tspan.setAttributeNS(null, 'y', pf(-current.y)); + }, + showText: function SVGGraphics_showText(glyphs) { + var current = this.current; + var font = current.font; + var fontSize = current.fontSize; + if (fontSize === 0) { + return; + } + var charSpacing = current.charSpacing; + var wordSpacing = current.wordSpacing; + var fontDirection = current.fontDirection; + var textHScale = current.textHScale * fontDirection; + var glyphsLength = glyphs.length; + var vertical = font.vertical; + var widthAdvanceScale = fontSize * current.fontMatrix[0]; + var x = 0, i; + for (i = 0; i < glyphsLength; ++i) { + var glyph = glyphs[i]; + if (glyph === null) { + x += fontDirection * wordSpacing; + continue; + } else if (isNum(glyph)) { + x += -glyph * fontSize * 0.001; + continue; + } + current.xcoords.push(current.x + x * textHScale); + var width = glyph.width; + var character = glyph.fontChar; + var charWidth = width * widthAdvanceScale + charSpacing * fontDirection; + x += charWidth; + current.tspan.textContent += character; + } + if (vertical) { + current.y -= x * textHScale; + } else { + current.x += x * textHScale; + } + current.tspan.setAttributeNS(null, 'x', current.xcoords.map(pf).join(' ')); + current.tspan.setAttributeNS(null, 'y', pf(-current.y)); + current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); + current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px'); + if (current.fontStyle !== SVG_DEFAULTS.fontStyle) { + current.tspan.setAttributeNS(null, 'font-style', current.fontStyle); + } + if (current.fontWeight !== SVG_DEFAULTS.fontWeight) { + current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight); + } + if (current.fillColor !== SVG_DEFAULTS.fillColor) { + current.tspan.setAttributeNS(null, 'fill', current.fillColor); + } + current.txtElement.setAttributeNS(null, 'transform', pm(current.textMatrix) + ' scale(1, -1)'); + current.txtElement.setAttributeNS(XML_NS, 'xml:space', 'preserve'); + current.txtElement.appendChild(current.tspan); + current.txtgrp.appendChild(current.txtElement); + this._ensureTransformGroup().appendChild(current.txtElement); + }, + setLeadingMoveText: function SVGGraphics_setLeadingMoveText(x, y) { + this.setLeading(-y); + this.moveText(x, y); + }, + addFontStyle: function SVGGraphics_addFontStyle(fontObj) { + if (!this.cssStyle) { + this.cssStyle = document.createElementNS(NS, 'svg:style'); + this.cssStyle.setAttributeNS(null, 'type', 'text/css'); + this.defs.appendChild(this.cssStyle); + } + var url = createObjectURL(fontObj.data, fontObj.mimetype, this.forceDataSchema); + this.cssStyle.textContent += '@font-face { font-family: "' + fontObj.loadedName + '";' + ' src: url(' + url + '); }\n'; + }, + setFont: function SVGGraphics_setFont(details) { + var current = this.current; + var fontObj = this.commonObjs.get(details[0]); + var size = details[1]; + this.current.font = fontObj; + if (this.embedFonts && fontObj.data && !this.embeddedFonts[fontObj.loadedName]) { + this.addFontStyle(fontObj); + this.embeddedFonts[fontObj.loadedName] = fontObj; + } + current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : FONT_IDENTITY_MATRIX; + var bold = fontObj.black ? fontObj.bold ? 'bolder' : 'bold' : fontObj.bold ? 'bold' : 'normal'; + var italic = fontObj.italic ? 'italic' : 'normal'; + if (size < 0) { + size = -size; + current.fontDirection = -1; + } else { + current.fontDirection = 1; + } + current.fontSize = size; + current.fontFamily = fontObj.loadedName; + current.fontWeight = bold; + current.fontStyle = italic; + current.tspan = document.createElementNS(NS, 'svg:tspan'); + current.tspan.setAttributeNS(null, 'y', pf(-current.y)); + current.xcoords = []; + }, + endText: function SVGGraphics_endText() { + }, + setLineWidth: function SVGGraphics_setLineWidth(width) { + this.current.lineWidth = width; + }, + setLineCap: function SVGGraphics_setLineCap(style) { + this.current.lineCap = LINE_CAP_STYLES[style]; + }, + setLineJoin: function SVGGraphics_setLineJoin(style) { + this.current.lineJoin = LINE_JOIN_STYLES[style]; + }, + setMiterLimit: function SVGGraphics_setMiterLimit(limit) { + this.current.miterLimit = limit; + }, + setStrokeRGBColor: function SVGGraphics_setStrokeRGBColor(r, g, b) { + var color = Util.makeCssRgb(r, g, b); + this.current.strokeColor = color; + }, + setFillRGBColor: function SVGGraphics_setFillRGBColor(r, g, b) { + var color = Util.makeCssRgb(r, g, b); + this.current.fillColor = color; + this.current.tspan = document.createElementNS(NS, 'svg:tspan'); + this.current.xcoords = []; + }, + setDash: function SVGGraphics_setDash(dashArray, dashPhase) { + this.current.dashArray = dashArray; + this.current.dashPhase = dashPhase; + }, + constructPath: function SVGGraphics_constructPath(ops, args) { + var current = this.current; + var x = current.x, y = current.y; + current.path = document.createElementNS(NS, 'svg:path'); + var d = []; + var opLength = ops.length; + for (var i = 0, j = 0; i < opLength; i++) { + switch (ops[i] | 0) { + case OPS.rectangle: + x = args[j++]; + y = args[j++]; + var width = args[j++]; + var height = args[j++]; + var xw = x + width; + var yh = y + height; + d.push('M', pf(x), pf(y), 'L', pf(xw), pf(y), 'L', pf(xw), pf(yh), 'L', pf(x), pf(yh), 'Z'); + break; + case OPS.moveTo: + x = args[j++]; + y = args[j++]; + d.push('M', pf(x), pf(y)); + break; + case OPS.lineTo: + x = args[j++]; + y = args[j++]; + d.push('L', pf(x), pf(y)); + break; + case OPS.curveTo: + x = args[j + 4]; + y = args[j + 5]; + d.push('C', pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y)); + j += 6; + break; + case OPS.curveTo2: + x = args[j + 2]; + y = args[j + 3]; + d.push('C', pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3])); + j += 4; + break; + case OPS.curveTo3: + x = args[j + 2]; + y = args[j + 3]; + d.push('C', pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y)); + j += 4; + break; + case OPS.closePath: + d.push('Z'); + break; + } + } + current.path.setAttributeNS(null, 'd', d.join(' ')); + current.path.setAttributeNS(null, 'stroke-miterlimit', pf(current.miterLimit)); + current.path.setAttributeNS(null, 'stroke-linecap', current.lineCap); + current.path.setAttributeNS(null, 'stroke-linejoin', current.lineJoin); + current.path.setAttributeNS(null, 'stroke-width', pf(current.lineWidth) + 'px'); + current.path.setAttributeNS(null, 'stroke-dasharray', current.dashArray.map(pf).join(' ')); + current.path.setAttributeNS(null, 'stroke-dashoffset', pf(current.dashPhase) + 'px'); + current.path.setAttributeNS(null, 'fill', 'none'); + this._ensureTransformGroup().appendChild(current.path); + current.element = current.path; + current.setCurrentPoint(x, y); + }, + endPath: function SVGGraphics_endPath() { + }, + clip: function SVGGraphics_clip(type) { + var current = this.current; + var clipId = 'clippath' + clipCount; + clipCount++; + var clipPath = document.createElementNS(NS, 'svg:clipPath'); + clipPath.setAttributeNS(null, 'id', clipId); + clipPath.setAttributeNS(null, 'transform', pm(this.transformMatrix)); + var clipElement = current.element.cloneNode(); + if (type === 'evenodd') { + clipElement.setAttributeNS(null, 'clip-rule', 'evenodd'); + } else { + clipElement.setAttributeNS(null, 'clip-rule', 'nonzero'); + } + clipPath.appendChild(clipElement); + this.defs.appendChild(clipPath); + if (current.activeClipUrl) { + current.clipGroup = null; + this.extraStack.forEach(function (prev) { + prev.clipGroup = null; + }); + } + current.activeClipUrl = 'url(#' + clipId + ')'; + this.tgrp = null; + }, + closePath: function SVGGraphics_closePath() { + var current = this.current; + var d = current.path.getAttributeNS(null, 'd'); + d += 'Z'; + current.path.setAttributeNS(null, 'd', d); + }, + setLeading: function SVGGraphics_setLeading(leading) { + this.current.leading = -leading; + }, + setTextRise: function SVGGraphics_setTextRise(textRise) { + this.current.textRise = textRise; + }, + setHScale: function SVGGraphics_setHScale(scale) { + this.current.textHScale = scale / 100; + }, + setGState: function SVGGraphics_setGState(states) { + for (var i = 0, ii = states.length; i < ii; i++) { + var state = states[i]; + var key = state[0]; + var value = state[1]; + switch (key) { + case 'LW': + this.setLineWidth(value); + break; + case 'LC': + this.setLineCap(value); + break; + case 'LJ': + this.setLineJoin(value); + break; + case 'ML': + this.setMiterLimit(value); + break; + case 'D': + this.setDash(value[0], value[1]); + break; + case 'Font': + this.setFont(value); + break; + default: + warn('Unimplemented graphic state ' + key); + break; + } + } + }, + fill: function SVGGraphics_fill() { + var current = this.current; + current.element.setAttributeNS(null, 'fill', current.fillColor); + }, + stroke: function SVGGraphics_stroke() { + var current = this.current; + current.element.setAttributeNS(null, 'stroke', current.strokeColor); + current.element.setAttributeNS(null, 'fill', 'none'); + }, + eoFill: function SVGGraphics_eoFill() { + var current = this.current; + current.element.setAttributeNS(null, 'fill', current.fillColor); + current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); + }, + fillStroke: function SVGGraphics_fillStroke() { + this.stroke(); + this.fill(); + }, + eoFillStroke: function SVGGraphics_eoFillStroke() { + this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); + this.fillStroke(); + }, + closeStroke: function SVGGraphics_closeStroke() { + this.closePath(); + this.stroke(); + }, + closeFillStroke: function SVGGraphics_closeFillStroke() { + this.closePath(); + this.fillStroke(); + }, + paintSolidColorImageMask: function SVGGraphics_paintSolidColorImageMask() { + var current = this.current; + var rect = document.createElementNS(NS, 'svg:rect'); + rect.setAttributeNS(null, 'x', '0'); + rect.setAttributeNS(null, 'y', '0'); + rect.setAttributeNS(null, 'width', '1px'); + rect.setAttributeNS(null, 'height', '1px'); + rect.setAttributeNS(null, 'fill', current.fillColor); + this._ensureTransformGroup().appendChild(rect); + }, + paintJpegXObject: function SVGGraphics_paintJpegXObject(objId, w, h) { + var imgObj = this.objs.get(objId); + var imgEl = document.createElementNS(NS, 'svg:image'); + imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgObj.src); + imgEl.setAttributeNS(null, 'width', imgObj.width + 'px'); + imgEl.setAttributeNS(null, 'height', imgObj.height + 'px'); + imgEl.setAttributeNS(null, 'x', '0'); + imgEl.setAttributeNS(null, 'y', pf(-h)); + imgEl.setAttributeNS(null, 'transform', 'scale(' + pf(1 / w) + ' ' + pf(-1 / h) + ')'); + this._ensureTransformGroup().appendChild(imgEl); + }, + paintImageXObject: function SVGGraphics_paintImageXObject(objId) { + var imgData = this.objs.get(objId); + if (!imgData) { + warn('Dependent image isn\'t ready yet'); + return; + } + this.paintInlineImageXObject(imgData); + }, + paintInlineImageXObject: function SVGGraphics_paintInlineImageXObject(imgData, mask) { + var width = imgData.width; + var height = imgData.height; + var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema); + var cliprect = document.createElementNS(NS, 'svg:rect'); + cliprect.setAttributeNS(null, 'x', '0'); + cliprect.setAttributeNS(null, 'y', '0'); + cliprect.setAttributeNS(null, 'width', pf(width)); + cliprect.setAttributeNS(null, 'height', pf(height)); + this.current.element = cliprect; + this.clip('nonzero'); + var imgEl = document.createElementNS(NS, 'svg:image'); + imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgSrc); + imgEl.setAttributeNS(null, 'x', '0'); + imgEl.setAttributeNS(null, 'y', pf(-height)); + imgEl.setAttributeNS(null, 'width', pf(width) + 'px'); + imgEl.setAttributeNS(null, 'height', pf(height) + 'px'); + imgEl.setAttributeNS(null, 'transform', 'scale(' + pf(1 / width) + ' ' + pf(-1 / height) + ')'); + if (mask) { + mask.appendChild(imgEl); + } else { + this._ensureTransformGroup().appendChild(imgEl); + } + }, + paintImageMaskXObject: function SVGGraphics_paintImageMaskXObject(imgData) { + var current = this.current; + var width = imgData.width; + var height = imgData.height; + var fillColor = current.fillColor; + current.maskId = 'mask' + maskCount++; + var mask = document.createElementNS(NS, 'svg:mask'); + mask.setAttributeNS(null, 'id', current.maskId); + var rect = document.createElementNS(NS, 'svg:rect'); + rect.setAttributeNS(null, 'x', '0'); + rect.setAttributeNS(null, 'y', '0'); + rect.setAttributeNS(null, 'width', pf(width)); + rect.setAttributeNS(null, 'height', pf(height)); + rect.setAttributeNS(null, 'fill', fillColor); + rect.setAttributeNS(null, 'mask', 'url(#' + current.maskId + ')'); + this.defs.appendChild(mask); + this._ensureTransformGroup().appendChild(rect); + this.paintInlineImageXObject(imgData, mask); + }, + paintFormXObjectBegin: function SVGGraphics_paintFormXObjectBegin(matrix, bbox) { + if (isArray(matrix) && matrix.length === 6) { + this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]); + } + if (isArray(bbox) && bbox.length === 4) { + var width = bbox[2] - bbox[0]; + var height = bbox[3] - bbox[1]; + var cliprect = document.createElementNS(NS, 'svg:rect'); + cliprect.setAttributeNS(null, 'x', bbox[0]); + cliprect.setAttributeNS(null, 'y', bbox[1]); + cliprect.setAttributeNS(null, 'width', pf(width)); + cliprect.setAttributeNS(null, 'height', pf(height)); + this.current.element = cliprect; + this.clip('nonzero'); + this.endPath(); + } + }, + paintFormXObjectEnd: function SVGGraphics_paintFormXObjectEnd() { + }, + _initialize: function SVGGraphics_initialize(viewport) { + var svg = document.createElementNS(NS, 'svg:svg'); + svg.setAttributeNS(null, 'version', '1.1'); + svg.setAttributeNS(null, 'width', viewport.width + 'px'); + svg.setAttributeNS(null, 'height', viewport.height + 'px'); + svg.setAttributeNS(null, 'preserveAspectRatio', 'none'); + svg.setAttributeNS(null, 'viewBox', '0 0 ' + viewport.width + ' ' + viewport.height); + var definitions = document.createElementNS(NS, 'svg:defs'); + svg.appendChild(definitions); + this.defs = definitions; + var rootGroup = document.createElementNS(NS, 'svg:g'); + rootGroup.setAttributeNS(null, 'transform', pm(viewport.transform)); + svg.appendChild(rootGroup); + this.svg = rootGroup; + return svg; + }, + _ensureClipGroup: function SVGGraphics_ensureClipGroup() { + if (!this.current.clipGroup) { + var clipGroup = document.createElementNS(NS, 'svg:g'); + clipGroup.setAttributeNS(null, 'clip-path', this.current.activeClipUrl); + this.svg.appendChild(clipGroup); + this.current.clipGroup = clipGroup; + } + return this.current.clipGroup; + }, + _ensureTransformGroup: function SVGGraphics_ensureTransformGroup() { + if (!this.tgrp) { + this.tgrp = document.createElementNS(NS, 'svg:g'); + this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix)); + if (this.current.activeClipUrl) { + this._ensureClipGroup().appendChild(this.tgrp); + } else { + this.svg.appendChild(this.tgrp); + } + } + return this.tgrp; + } + }; + return SVGGraphics; +}(); +exports.SVGGraphics = SVGGraphics; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var displayDOMUtils = __w_pdfjs_require__(1); +var Util = sharedUtil.Util; +var createPromiseCapability = sharedUtil.createPromiseCapability; +var CustomStyle = displayDOMUtils.CustomStyle; +var getDefaultSetting = displayDOMUtils.getDefaultSetting; +var renderTextLayer = function renderTextLayerClosure() { + var MAX_TEXT_DIVS_TO_RENDER = 100000; + var NonWhitespaceRegexp = /\S/; + function isAllWhitespace(str) { + return !NonWhitespaceRegexp.test(str); + } + var styleBuf = [ + 'left: ', + 0, + 'px; top: ', + 0, + 'px; font-size: ', + 0, + 'px; font-family: ', + '', + ';' + ]; + function appendText(task, geom, styles) { + var textDiv = document.createElement('div'); + var textDivProperties = { + style: null, + angle: 0, + canvasWidth: 0, + isWhitespace: false, + originalTransform: null, + paddingBottom: 0, + paddingLeft: 0, + paddingRight: 0, + paddingTop: 0, + scale: 1 + }; + task._textDivs.push(textDiv); + if (isAllWhitespace(geom.str)) { + textDivProperties.isWhitespace = true; + task._textDivProperties.set(textDiv, textDivProperties); + return; + } + var tx = Util.transform(task._viewport.transform, geom.transform); + var angle = Math.atan2(tx[1], tx[0]); + var style = styles[geom.fontName]; + if (style.vertical) { + angle += Math.PI / 2; + } + var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]); + var fontAscent = fontHeight; + if (style.ascent) { + fontAscent = style.ascent * fontAscent; + } else if (style.descent) { + fontAscent = (1 + style.descent) * fontAscent; + } + var left; + var top; + if (angle === 0) { + left = tx[4]; + top = tx[5] - fontAscent; + } else { + left = tx[4] + fontAscent * Math.sin(angle); + top = tx[5] - fontAscent * Math.cos(angle); + } + styleBuf[1] = left; + styleBuf[3] = top; + styleBuf[5] = fontHeight; + styleBuf[7] = style.fontFamily; + textDivProperties.style = styleBuf.join(''); + textDiv.setAttribute('style', textDivProperties.style); + textDiv.textContent = geom.str; + if (getDefaultSetting('pdfBug')) { + textDiv.dataset.fontName = geom.fontName; + } + if (angle !== 0) { + textDivProperties.angle = angle * (180 / Math.PI); + } + if (geom.str.length > 1) { + if (style.vertical) { + textDivProperties.canvasWidth = geom.height * task._viewport.scale; + } else { + textDivProperties.canvasWidth = geom.width * task._viewport.scale; + } + } + task._textDivProperties.set(textDiv, textDivProperties); + if (task._enhanceTextSelection) { + var angleCos = 1, angleSin = 0; + if (angle !== 0) { + angleCos = Math.cos(angle); + angleSin = Math.sin(angle); + } + var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale; + var divHeight = fontHeight; + var m, b; + if (angle !== 0) { + m = [ + angleCos, + angleSin, + -angleSin, + angleCos, + left, + top + ]; + b = Util.getAxialAlignedBoundingBox([ + 0, + 0, + divWidth, + divHeight + ], m); + } else { + b = [ + left, + top, + left + divWidth, + top + divHeight + ]; + } + task._bounds.push({ + left: b[0], + top: b[1], + right: b[2], + bottom: b[3], + div: textDiv, + size: [ + divWidth, + divHeight + ], + m: m + }); + } + } + function render(task) { + if (task._canceled) { + return; + } + var textLayerFrag = task._container; + var textDivs = task._textDivs; + var capability = task._capability; + var textDivsLength = textDivs.length; + if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) { + task._renderingDone = true; + capability.resolve(); + return; + } + var canvas = document.createElement('canvas'); + canvas.mozOpaque = true; + var ctx = canvas.getContext('2d', { alpha: false }); + var lastFontSize; + var lastFontFamily; + for (var i = 0; i < textDivsLength; i++) { + var textDiv = textDivs[i]; + var textDivProperties = task._textDivProperties.get(textDiv); + if (textDivProperties.isWhitespace) { + continue; + } + var fontSize = textDiv.style.fontSize; + var fontFamily = textDiv.style.fontFamily; + if (fontSize !== lastFontSize || fontFamily !== lastFontFamily) { + ctx.font = fontSize + ' ' + fontFamily; + lastFontSize = fontSize; + lastFontFamily = fontFamily; + } + var width = ctx.measureText(textDiv.textContent).width; + textLayerFrag.appendChild(textDiv); + var transform = ''; + if (textDivProperties.canvasWidth !== 0 && width > 0) { + textDivProperties.scale = textDivProperties.canvasWidth / width; + transform = 'scaleX(' + textDivProperties.scale + ')'; + } + if (textDivProperties.angle !== 0) { + transform = 'rotate(' + textDivProperties.angle + 'deg) ' + transform; + } + if (transform !== '') { + textDivProperties.originalTransform = transform; + CustomStyle.setProp('transform', textDiv, transform); + } + task._textDivProperties.set(textDiv, textDivProperties); + } + task._renderingDone = true; + capability.resolve(); + } + function expand(task) { + var bounds = task._bounds; + var viewport = task._viewport; + var expanded = expandBounds(viewport.width, viewport.height, bounds); + for (var i = 0; i < expanded.length; i++) { + var div = bounds[i].div; + var divProperties = task._textDivProperties.get(div); + if (divProperties.angle === 0) { + divProperties.paddingLeft = bounds[i].left - expanded[i].left; + divProperties.paddingTop = bounds[i].top - expanded[i].top; + divProperties.paddingRight = expanded[i].right - bounds[i].right; + divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom; + task._textDivProperties.set(div, divProperties); + continue; + } + var e = expanded[i], b = bounds[i]; + var m = b.m, c = m[0], s = m[1]; + var points = [ + [ + 0, + 0 + ], + [ + 0, + b.size[1] + ], + [ + b.size[0], + 0 + ], + b.size + ]; + var ts = new Float64Array(64); + points.forEach(function (p, i) { + var t = Util.applyTransform(p, m); + ts[i + 0] = c && (e.left - t[0]) / c; + ts[i + 4] = s && (e.top - t[1]) / s; + ts[i + 8] = c && (e.right - t[0]) / c; + ts[i + 12] = s && (e.bottom - t[1]) / s; + ts[i + 16] = s && (e.left - t[0]) / -s; + ts[i + 20] = c && (e.top - t[1]) / c; + ts[i + 24] = s && (e.right - t[0]) / -s; + ts[i + 28] = c && (e.bottom - t[1]) / c; + ts[i + 32] = c && (e.left - t[0]) / -c; + ts[i + 36] = s && (e.top - t[1]) / -s; + ts[i + 40] = c && (e.right - t[0]) / -c; + ts[i + 44] = s && (e.bottom - t[1]) / -s; + ts[i + 48] = s && (e.left - t[0]) / s; + ts[i + 52] = c && (e.top - t[1]) / -c; + ts[i + 56] = s && (e.right - t[0]) / s; + ts[i + 60] = c && (e.bottom - t[1]) / -c; + }); + var findPositiveMin = function (ts, offset, count) { + var result = 0; + for (var i = 0; i < count; i++) { + var t = ts[offset++]; + if (t > 0) { + result = result ? Math.min(t, result) : t; + } + } + return result; + }; + var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s)); + divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale; + divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale; + divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale; + divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale; + task._textDivProperties.set(div, divProperties); + } + } + function expandBounds(width, height, boxes) { + var bounds = boxes.map(function (box, i) { + return { + x1: box.left, + y1: box.top, + x2: box.right, + y2: box.bottom, + index: i, + x1New: undefined, + x2New: undefined + }; + }); + expandBoundsLTR(width, bounds); + var expanded = new Array(boxes.length); + bounds.forEach(function (b) { + var i = b.index; + expanded[i] = { + left: b.x1New, + top: 0, + right: b.x2New, + bottom: 0 + }; + }); + boxes.map(function (box, i) { + var e = expanded[i], b = bounds[i]; + b.x1 = box.top; + b.y1 = width - e.right; + b.x2 = box.bottom; + b.y2 = width - e.left; + b.index = i; + b.x1New = undefined; + b.x2New = undefined; + }); + expandBoundsLTR(height, bounds); + bounds.forEach(function (b) { + var i = b.index; + expanded[i].top = b.x1New; + expanded[i].bottom = b.x2New; + }); + return expanded; + } + function expandBoundsLTR(width, bounds) { + bounds.sort(function (a, b) { + return a.x1 - b.x1 || a.index - b.index; + }); + var fakeBoundary = { + x1: -Infinity, + y1: -Infinity, + x2: 0, + y2: Infinity, + index: -1, + x1New: 0, + x2New: 0 + }; + var horizon = [{ + start: -Infinity, + end: Infinity, + boundary: fakeBoundary + }]; + bounds.forEach(function (boundary) { + var i = 0; + while (i < horizon.length && horizon[i].end <= boundary.y1) { + i++; + } + var j = horizon.length - 1; + while (j >= 0 && horizon[j].start >= boundary.y2) { + j--; + } + var horizonPart, affectedBoundary; + var q, k, maxXNew = -Infinity; + for (q = i; q <= j; q++) { + horizonPart = horizon[q]; + affectedBoundary = horizonPart.boundary; + var xNew; + if (affectedBoundary.x2 > boundary.x1) { + xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1; + } else if (affectedBoundary.x2New === undefined) { + xNew = (affectedBoundary.x2 + boundary.x1) / 2; + } else { + xNew = affectedBoundary.x2New; + } + if (xNew > maxXNew) { + maxXNew = xNew; + } + } + boundary.x1New = maxXNew; + for (q = i; q <= j; q++) { + horizonPart = horizon[q]; + affectedBoundary = horizonPart.boundary; + if (affectedBoundary.x2New === undefined) { + if (affectedBoundary.x2 > boundary.x1) { + if (affectedBoundary.index > boundary.index) { + affectedBoundary.x2New = affectedBoundary.x2; + } + } else { + affectedBoundary.x2New = maxXNew; + } + } else if (affectedBoundary.x2New > maxXNew) { + affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2); + } + } + var changedHorizon = [], lastBoundary = null; + for (q = i; q <= j; q++) { + horizonPart = horizon[q]; + affectedBoundary = horizonPart.boundary; + var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary; + if (lastBoundary === useBoundary) { + changedHorizon[changedHorizon.length - 1].end = horizonPart.end; + } else { + changedHorizon.push({ + start: horizonPart.start, + end: horizonPart.end, + boundary: useBoundary + }); + lastBoundary = useBoundary; + } + } + if (horizon[i].start < boundary.y1) { + changedHorizon[0].start = boundary.y1; + changedHorizon.unshift({ + start: horizon[i].start, + end: boundary.y1, + boundary: horizon[i].boundary + }); + } + if (boundary.y2 < horizon[j].end) { + changedHorizon[changedHorizon.length - 1].end = boundary.y2; + changedHorizon.push({ + start: boundary.y2, + end: horizon[j].end, + boundary: horizon[j].boundary + }); + } + for (q = i; q <= j; q++) { + horizonPart = horizon[q]; + affectedBoundary = horizonPart.boundary; + if (affectedBoundary.x2New !== undefined) { + continue; + } + var used = false; + for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) { + used = horizon[k].boundary === affectedBoundary; + } + for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) { + used = horizon[k].boundary === affectedBoundary; + } + for (k = 0; !used && k < changedHorizon.length; k++) { + used = changedHorizon[k].boundary === affectedBoundary; + } + if (!used) { + affectedBoundary.x2New = maxXNew; + } + } + Array.prototype.splice.apply(horizon, [ + i, + j - i + 1 + ].concat(changedHorizon)); + }); + horizon.forEach(function (horizonPart) { + var affectedBoundary = horizonPart.boundary; + if (affectedBoundary.x2New === undefined) { + affectedBoundary.x2New = Math.max(width, affectedBoundary.x2); + } + }); + } + function TextLayerRenderTask(textContent, container, viewport, textDivs, enhanceTextSelection) { + this._textContent = textContent; + this._container = container; + this._viewport = viewport; + this._textDivs = textDivs || []; + this._textDivProperties = new WeakMap(); + this._renderingDone = false; + this._canceled = false; + this._capability = createPromiseCapability(); + this._renderTimer = null; + this._bounds = []; + this._enhanceTextSelection = !!enhanceTextSelection; + } + TextLayerRenderTask.prototype = { + get promise() { + return this._capability.promise; + }, + cancel: function TextLayer_cancel() { + this._canceled = true; + if (this._renderTimer !== null) { + clearTimeout(this._renderTimer); + this._renderTimer = null; + } + this._capability.reject('canceled'); + }, + _render: function TextLayer_render(timeout) { + var textItems = this._textContent.items; + var textStyles = this._textContent.styles; + for (var i = 0, len = textItems.length; i < len; i++) { + appendText(this, textItems[i], textStyles); + } + if (!timeout) { + render(this); + } else { + var self = this; + this._renderTimer = setTimeout(function () { + render(self); + self._renderTimer = null; + }, timeout); + } + }, + expandTextDivs: function TextLayer_expandTextDivs(expandDivs) { + if (!this._enhanceTextSelection || !this._renderingDone) { + return; + } + if (this._bounds !== null) { + expand(this); + this._bounds = null; + } + for (var i = 0, ii = this._textDivs.length; i < ii; i++) { + var div = this._textDivs[i]; + var divProperties = this._textDivProperties.get(div); + if (divProperties.isWhitespace) { + continue; + } + if (expandDivs) { + var transform = '', padding = ''; + if (divProperties.scale !== 1) { + transform = 'scaleX(' + divProperties.scale + ')'; + } + if (divProperties.angle !== 0) { + transform = 'rotate(' + divProperties.angle + 'deg) ' + transform; + } + if (divProperties.paddingLeft !== 0) { + padding += ' padding-left: ' + divProperties.paddingLeft / divProperties.scale + 'px;'; + transform += ' translateX(' + -divProperties.paddingLeft / divProperties.scale + 'px)'; + } + if (divProperties.paddingTop !== 0) { + padding += ' padding-top: ' + divProperties.paddingTop + 'px;'; + transform += ' translateY(' + -divProperties.paddingTop + 'px)'; + } + if (divProperties.paddingRight !== 0) { + padding += ' padding-right: ' + divProperties.paddingRight / divProperties.scale + 'px;'; + } + if (divProperties.paddingBottom !== 0) { + padding += ' padding-bottom: ' + divProperties.paddingBottom + 'px;'; + } + if (padding !== '') { + div.setAttribute('style', divProperties.style + padding); + } + if (transform !== '') { + CustomStyle.setProp('transform', div, transform); + } + } else { + div.style.padding = 0; + CustomStyle.setProp('transform', div, divProperties.originalTransform || ''); + } + } + } + }; + function renderTextLayer(renderParameters) { + var task = new TextLayerRenderTask(renderParameters.textContent, renderParameters.container, renderParameters.viewport, renderParameters.textDivs, renderParameters.enhanceTextSelection); + task._render(renderParameters.timeout); + return task; + } + return renderTextLayer; +}(); +exports.renderTextLayer = renderTextLayer; + +/***/ }), +/* 6 */ +/***/ (function(module, exports) { + +var g; +g = function () { + return this; +}(); +try { + g = g || Function("return this")() || (1, eval)("this"); +} catch (e) { + if (typeof window === "object") + g = window; +} +module.exports = g; + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var error = sharedUtil.error; +function fixMetadata(meta) { + return meta.replace(/>\\376\\377([^<]+)/g, function (all, codes) { + var bytes = codes.replace(/\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) { + return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1); + }); + var chars = ''; + for (var i = 0; i < bytes.length; i += 2) { + var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1); + chars += code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38 ? String.fromCharCode(code) : '&#x' + (0x10000 + code).toString(16).substring(1) + ';'; + } + return '>' + chars; + }); +} +function Metadata(meta) { + if (typeof meta === 'string') { + meta = fixMetadata(meta); + var parser = new DOMParser(); + meta = parser.parseFromString(meta, 'application/xml'); + } else if (!(meta instanceof Document)) { + error('Metadata: Invalid metadata object'); + } + this.metaDocument = meta; + this.metadata = Object.create(null); + this.parse(); +} +Metadata.prototype = { + parse: function Metadata_parse() { + var doc = this.metaDocument; + var rdf = doc.documentElement; + if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') { + rdf = rdf.firstChild; + while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') { + rdf = rdf.nextSibling; + } + } + var nodeName = rdf ? rdf.nodeName.toLowerCase() : null; + if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) { + return; + } + var children = rdf.childNodes, desc, entry, name, i, ii, length, iLength; + for (i = 0, length = children.length; i < length; i++) { + desc = children[i]; + if (desc.nodeName.toLowerCase() !== 'rdf:description') { + continue; + } + for (ii = 0, iLength = desc.childNodes.length; ii < iLength; ii++) { + if (desc.childNodes[ii].nodeName.toLowerCase() !== '#text') { + entry = desc.childNodes[ii]; + name = entry.nodeName.toLowerCase(); + this.metadata[name] = entry.textContent.trim(); + } + } + } + }, + get: function Metadata_get(name) { + return this.metadata[name] || null; + }, + has: function Metadata_has(name) { + return typeof this.metadata[name] !== 'undefined'; + } +}; +exports.Metadata = Metadata; + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var displayDOMUtils = __w_pdfjs_require__(1); +var shadow = sharedUtil.shadow; +var getDefaultSetting = displayDOMUtils.getDefaultSetting; +var WebGLUtils = function WebGLUtilsClosure() { + function loadShader(gl, code, shaderType) { + var shader = gl.createShader(shaderType); + gl.shaderSource(shader, code); + gl.compileShader(shader); + var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS); + if (!compiled) { + var errorMsg = gl.getShaderInfoLog(shader); + throw new Error('Error during shader compilation: ' + errorMsg); + } + return shader; + } + function createVertexShader(gl, code) { + return loadShader(gl, code, gl.VERTEX_SHADER); + } + function createFragmentShader(gl, code) { + return loadShader(gl, code, gl.FRAGMENT_SHADER); + } + function createProgram(gl, shaders) { + var program = gl.createProgram(); + for (var i = 0, ii = shaders.length; i < ii; ++i) { + gl.attachShader(program, shaders[i]); + } + gl.linkProgram(program); + var linked = gl.getProgramParameter(program, gl.LINK_STATUS); + if (!linked) { + var errorMsg = gl.getProgramInfoLog(program); + throw new Error('Error during program linking: ' + errorMsg); + } + return program; + } + function createTexture(gl, image, textureId) { + gl.activeTexture(textureId); + var texture = gl.createTexture(); + gl.bindTexture(gl.TEXTURE_2D, texture); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); + gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image); + return texture; + } + var currentGL, currentCanvas; + function generateGL() { + if (currentGL) { + return; + } + currentCanvas = document.createElement('canvas'); + currentGL = currentCanvas.getContext('webgl', { premultipliedalpha: false }); + } + var smaskVertexShaderCode = '\ + attribute vec2 a_position; \ + attribute vec2 a_texCoord; \ + \ + uniform vec2 u_resolution; \ + \ + varying vec2 v_texCoord; \ + \ + void main() { \ + vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \ + gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ + \ + v_texCoord = a_texCoord; \ + } '; + var smaskFragmentShaderCode = '\ + precision mediump float; \ + \ + uniform vec4 u_backdrop; \ + uniform int u_subtype; \ + uniform sampler2D u_image; \ + uniform sampler2D u_mask; \ + \ + varying vec2 v_texCoord; \ + \ + void main() { \ + vec4 imageColor = texture2D(u_image, v_texCoord); \ + vec4 maskColor = texture2D(u_mask, v_texCoord); \ + if (u_backdrop.a > 0.0) { \ + maskColor.rgb = maskColor.rgb * maskColor.a + \ + u_backdrop.rgb * (1.0 - maskColor.a); \ + } \ + float lum; \ + if (u_subtype == 0) { \ + lum = maskColor.a; \ + } else { \ + lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \ + maskColor.b * 0.11; \ + } \ + imageColor.a *= lum; \ + imageColor.rgb *= imageColor.a; \ + gl_FragColor = imageColor; \ + } '; + var smaskCache = null; + function initSmaskGL() { + var canvas, gl; + generateGL(); + canvas = currentCanvas; + currentCanvas = null; + gl = currentGL; + currentGL = null; + var vertexShader = createVertexShader(gl, smaskVertexShaderCode); + var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode); + var program = createProgram(gl, [ + vertexShader, + fragmentShader + ]); + gl.useProgram(program); + var cache = {}; + cache.gl = gl; + cache.canvas = canvas; + cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution'); + cache.positionLocation = gl.getAttribLocation(program, 'a_position'); + cache.backdropLocation = gl.getUniformLocation(program, 'u_backdrop'); + cache.subtypeLocation = gl.getUniformLocation(program, 'u_subtype'); + var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord'); + var texLayerLocation = gl.getUniformLocation(program, 'u_image'); + var texMaskLocation = gl.getUniformLocation(program, 'u_mask'); + var texCoordBuffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer); + gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 1.0, + 0.0, + 1.0, + 1.0, + 0.0, + 1.0, + 1.0 + ]), gl.STATIC_DRAW); + gl.enableVertexAttribArray(texCoordLocation); + gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0); + gl.uniform1i(texLayerLocation, 0); + gl.uniform1i(texMaskLocation, 1); + smaskCache = cache; + } + function composeSMask(layer, mask, properties) { + var width = layer.width, height = layer.height; + if (!smaskCache) { + initSmaskGL(); + } + var cache = smaskCache, canvas = cache.canvas, gl = cache.gl; + canvas.width = width; + canvas.height = height; + gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); + gl.uniform2f(cache.resolutionLocation, width, height); + if (properties.backdrop) { + gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1); + } else { + gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0); + } + gl.uniform1i(cache.subtypeLocation, properties.subtype === 'Luminosity' ? 1 : 0); + var texture = createTexture(gl, layer, gl.TEXTURE0); + var maskTexture = createTexture(gl, mask, gl.TEXTURE1); + var buffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, buffer); + gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ + 0, + 0, + width, + 0, + 0, + height, + 0, + height, + width, + 0, + width, + height + ]), gl.STATIC_DRAW); + gl.enableVertexAttribArray(cache.positionLocation); + gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); + gl.clearColor(0, 0, 0, 0); + gl.enable(gl.BLEND); + gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA); + gl.clear(gl.COLOR_BUFFER_BIT); + gl.drawArrays(gl.TRIANGLES, 0, 6); + gl.flush(); + gl.deleteTexture(texture); + gl.deleteTexture(maskTexture); + gl.deleteBuffer(buffer); + return canvas; + } + var figuresVertexShaderCode = '\ + attribute vec2 a_position; \ + attribute vec3 a_color; \ + \ + uniform vec2 u_resolution; \ + uniform vec2 u_scale; \ + uniform vec2 u_offset; \ + \ + varying vec4 v_color; \ + \ + void main() { \ + vec2 position = (a_position + u_offset) * u_scale; \ + vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \ + gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ + \ + v_color = vec4(a_color / 255.0, 1.0); \ + } '; + var figuresFragmentShaderCode = '\ + precision mediump float; \ + \ + varying vec4 v_color; \ + \ + void main() { \ + gl_FragColor = v_color; \ + } '; + var figuresCache = null; + function initFiguresGL() { + var canvas, gl; + generateGL(); + canvas = currentCanvas; + currentCanvas = null; + gl = currentGL; + currentGL = null; + var vertexShader = createVertexShader(gl, figuresVertexShaderCode); + var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode); + var program = createProgram(gl, [ + vertexShader, + fragmentShader + ]); + gl.useProgram(program); + var cache = {}; + cache.gl = gl; + cache.canvas = canvas; + cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution'); + cache.scaleLocation = gl.getUniformLocation(program, 'u_scale'); + cache.offsetLocation = gl.getUniformLocation(program, 'u_offset'); + cache.positionLocation = gl.getAttribLocation(program, 'a_position'); + cache.colorLocation = gl.getAttribLocation(program, 'a_color'); + figuresCache = cache; + } + function drawFigures(width, height, backgroundColor, figures, context) { + if (!figuresCache) { + initFiguresGL(); + } + var cache = figuresCache, canvas = cache.canvas, gl = cache.gl; + canvas.width = width; + canvas.height = height; + gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); + gl.uniform2f(cache.resolutionLocation, width, height); + var count = 0; + var i, ii, rows; + for (i = 0, ii = figures.length; i < ii; i++) { + switch (figures[i].type) { + case 'lattice': + rows = figures[i].coords.length / figures[i].verticesPerRow | 0; + count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6; + break; + case 'triangles': + count += figures[i].coords.length; + break; + } + } + var coords = new Float32Array(count * 2); + var colors = new Uint8Array(count * 3); + var coordsMap = context.coords, colorsMap = context.colors; + var pIndex = 0, cIndex = 0; + for (i = 0, ii = figures.length; i < ii; i++) { + var figure = figures[i], ps = figure.coords, cs = figure.colors; + switch (figure.type) { + case 'lattice': + var cols = figure.verticesPerRow; + rows = ps.length / cols | 0; + for (var row = 1; row < rows; row++) { + var offset = row * cols + 1; + for (var col = 1; col < cols; col++, offset++) { + coords[pIndex] = coordsMap[ps[offset - cols - 1]]; + coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1]; + coords[pIndex + 2] = coordsMap[ps[offset - cols]]; + coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1]; + coords[pIndex + 4] = coordsMap[ps[offset - 1]]; + coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1]; + colors[cIndex] = colorsMap[cs[offset - cols - 1]]; + colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1]; + colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2]; + colors[cIndex + 3] = colorsMap[cs[offset - cols]]; + colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1]; + colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2]; + colors[cIndex + 6] = colorsMap[cs[offset - 1]]; + colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1]; + colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2]; + coords[pIndex + 6] = coords[pIndex + 2]; + coords[pIndex + 7] = coords[pIndex + 3]; + coords[pIndex + 8] = coords[pIndex + 4]; + coords[pIndex + 9] = coords[pIndex + 5]; + coords[pIndex + 10] = coordsMap[ps[offset]]; + coords[pIndex + 11] = coordsMap[ps[offset] + 1]; + colors[cIndex + 9] = colors[cIndex + 3]; + colors[cIndex + 10] = colors[cIndex + 4]; + colors[cIndex + 11] = colors[cIndex + 5]; + colors[cIndex + 12] = colors[cIndex + 6]; + colors[cIndex + 13] = colors[cIndex + 7]; + colors[cIndex + 14] = colors[cIndex + 8]; + colors[cIndex + 15] = colorsMap[cs[offset]]; + colors[cIndex + 16] = colorsMap[cs[offset] + 1]; + colors[cIndex + 17] = colorsMap[cs[offset] + 2]; + pIndex += 12; + cIndex += 18; + } + } + break; + case 'triangles': + for (var j = 0, jj = ps.length; j < jj; j++) { + coords[pIndex] = coordsMap[ps[j]]; + coords[pIndex + 1] = coordsMap[ps[j] + 1]; + colors[cIndex] = colorsMap[cs[j]]; + colors[cIndex + 1] = colorsMap[cs[j] + 1]; + colors[cIndex + 2] = colorsMap[cs[j] + 2]; + pIndex += 2; + cIndex += 3; + } + break; + } + } + if (backgroundColor) { + gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0); + } else { + gl.clearColor(0, 0, 0, 0); + } + gl.clear(gl.COLOR_BUFFER_BIT); + var coordsBuffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer); + gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW); + gl.enableVertexAttribArray(cache.positionLocation); + gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); + var colorsBuffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer); + gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW); + gl.enableVertexAttribArray(cache.colorLocation); + gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0); + gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY); + gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY); + gl.drawArrays(gl.TRIANGLES, 0, count); + gl.flush(); + gl.deleteBuffer(coordsBuffer); + gl.deleteBuffer(colorsBuffer); + return canvas; + } + function cleanup() { + if (smaskCache && smaskCache.canvas) { + smaskCache.canvas.width = 0; + smaskCache.canvas.height = 0; + } + if (figuresCache && figuresCache.canvas) { + figuresCache.canvas.width = 0; + figuresCache.canvas.height = 0; + } + smaskCache = null; + figuresCache = null; + } + return { + get isEnabled() { + if (getDefaultSetting('disableWebGL')) { + return false; + } + var enabled = false; + try { + generateGL(); + enabled = !!currentGL; + } catch (e) { + } + return shadow(this, 'isEnabled', enabled); + }, + composeSMask: composeSMask, + drawFigures: drawFigures, + clear: cleanup + }; +}(); +exports.WebGLUtils = WebGLUtils; + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var displayDOMUtils = __w_pdfjs_require__(1); +var displayAPI = __w_pdfjs_require__(3); +var displayAnnotationLayer = __w_pdfjs_require__(2); +var displayTextLayer = __w_pdfjs_require__(5); +var displayMetadata = __w_pdfjs_require__(7); +var displaySVG = __w_pdfjs_require__(4); +var globalScope = sharedUtil.globalScope; +var deprecated = sharedUtil.deprecated; +var warn = sharedUtil.warn; +var LinkTarget = displayDOMUtils.LinkTarget; +var DEFAULT_LINK_REL = displayDOMUtils.DEFAULT_LINK_REL; +var isWorker = typeof window === 'undefined'; +if (!globalScope.PDFJS) { + globalScope.PDFJS = {}; +} +var PDFJS = globalScope.PDFJS; +PDFJS.version = '1.7.365'; +PDFJS.build = '2b171889'; +PDFJS.pdfBug = false; +if (PDFJS.verbosity !== undefined) { + sharedUtil.setVerbosityLevel(PDFJS.verbosity); +} +delete PDFJS.verbosity; +Object.defineProperty(PDFJS, 'verbosity', { + get: function () { + return sharedUtil.getVerbosityLevel(); + }, + set: function (level) { + sharedUtil.setVerbosityLevel(level); + }, + enumerable: true, + configurable: true +}); +PDFJS.VERBOSITY_LEVELS = sharedUtil.VERBOSITY_LEVELS; +PDFJS.OPS = sharedUtil.OPS; +PDFJS.UNSUPPORTED_FEATURES = sharedUtil.UNSUPPORTED_FEATURES; +PDFJS.isValidUrl = displayDOMUtils.isValidUrl; +PDFJS.shadow = sharedUtil.shadow; +PDFJS.createBlob = sharedUtil.createBlob; +PDFJS.createObjectURL = function PDFJS_createObjectURL(data, contentType) { + return sharedUtil.createObjectURL(data, contentType, PDFJS.disableCreateObjectURL); +}; +Object.defineProperty(PDFJS, 'isLittleEndian', { + configurable: true, + get: function PDFJS_isLittleEndian() { + var value = sharedUtil.isLittleEndian(); + return sharedUtil.shadow(PDFJS, 'isLittleEndian', value); + } +}); +PDFJS.removeNullCharacters = sharedUtil.removeNullCharacters; +PDFJS.PasswordResponses = sharedUtil.PasswordResponses; +PDFJS.PasswordException = sharedUtil.PasswordException; +PDFJS.UnknownErrorException = sharedUtil.UnknownErrorException; +PDFJS.InvalidPDFException = sharedUtil.InvalidPDFException; +PDFJS.MissingPDFException = sharedUtil.MissingPDFException; +PDFJS.UnexpectedResponseException = sharedUtil.UnexpectedResponseException; +PDFJS.Util = sharedUtil.Util; +PDFJS.PageViewport = sharedUtil.PageViewport; +PDFJS.createPromiseCapability = sharedUtil.createPromiseCapability; +PDFJS.maxImageSize = PDFJS.maxImageSize === undefined ? -1 : PDFJS.maxImageSize; +PDFJS.cMapUrl = PDFJS.cMapUrl === undefined ? null : PDFJS.cMapUrl; +PDFJS.cMapPacked = PDFJS.cMapPacked === undefined ? false : PDFJS.cMapPacked; +PDFJS.disableFontFace = PDFJS.disableFontFace === undefined ? false : PDFJS.disableFontFace; +PDFJS.imageResourcesPath = PDFJS.imageResourcesPath === undefined ? '' : PDFJS.imageResourcesPath; +PDFJS.disableWorker = PDFJS.disableWorker === undefined ? false : PDFJS.disableWorker; +PDFJS.workerSrc = PDFJS.workerSrc === undefined ? null : PDFJS.workerSrc; +PDFJS.workerPort = PDFJS.workerPort === undefined ? null : PDFJS.workerPort; +PDFJS.disableRange = PDFJS.disableRange === undefined ? false : PDFJS.disableRange; +PDFJS.disableStream = PDFJS.disableStream === undefined ? false : PDFJS.disableStream; +PDFJS.disableAutoFetch = PDFJS.disableAutoFetch === undefined ? false : PDFJS.disableAutoFetch; +PDFJS.pdfBug = PDFJS.pdfBug === undefined ? false : PDFJS.pdfBug; +PDFJS.postMessageTransfers = PDFJS.postMessageTransfers === undefined ? true : PDFJS.postMessageTransfers; +PDFJS.disableCreateObjectURL = PDFJS.disableCreateObjectURL === undefined ? false : PDFJS.disableCreateObjectURL; +PDFJS.disableWebGL = PDFJS.disableWebGL === undefined ? true : PDFJS.disableWebGL; +PDFJS.externalLinkTarget = PDFJS.externalLinkTarget === undefined ? LinkTarget.NONE : PDFJS.externalLinkTarget; +PDFJS.externalLinkRel = PDFJS.externalLinkRel === undefined ? DEFAULT_LINK_REL : PDFJS.externalLinkRel; +PDFJS.isEvalSupported = PDFJS.isEvalSupported === undefined ? true : PDFJS.isEvalSupported; +var savedOpenExternalLinksInNewWindow = PDFJS.openExternalLinksInNewWindow; +delete PDFJS.openExternalLinksInNewWindow; +Object.defineProperty(PDFJS, 'openExternalLinksInNewWindow', { + get: function () { + return PDFJS.externalLinkTarget === LinkTarget.BLANK; + }, + set: function (value) { + if (value) { + deprecated('PDFJS.openExternalLinksInNewWindow, please use ' + '"PDFJS.externalLinkTarget = PDFJS.LinkTarget.BLANK" instead.'); + } + if (PDFJS.externalLinkTarget !== LinkTarget.NONE) { + warn('PDFJS.externalLinkTarget is already initialized'); + return; + } + PDFJS.externalLinkTarget = value ? LinkTarget.BLANK : LinkTarget.NONE; + }, + enumerable: true, + configurable: true +}); +if (savedOpenExternalLinksInNewWindow) { + PDFJS.openExternalLinksInNewWindow = savedOpenExternalLinksInNewWindow; +} +PDFJS.getDocument = displayAPI.getDocument; +PDFJS.PDFDataRangeTransport = displayAPI.PDFDataRangeTransport; +PDFJS.PDFWorker = displayAPI.PDFWorker; +Object.defineProperty(PDFJS, 'hasCanvasTypedArrays', { + configurable: true, + get: function PDFJS_hasCanvasTypedArrays() { + var value = displayDOMUtils.hasCanvasTypedArrays(); + return sharedUtil.shadow(PDFJS, 'hasCanvasTypedArrays', value); + } +}); +PDFJS.CustomStyle = displayDOMUtils.CustomStyle; +PDFJS.LinkTarget = LinkTarget; +PDFJS.addLinkAttributes = displayDOMUtils.addLinkAttributes; +PDFJS.getFilenameFromUrl = displayDOMUtils.getFilenameFromUrl; +PDFJS.isExternalLinkTargetSet = displayDOMUtils.isExternalLinkTargetSet; +PDFJS.AnnotationLayer = displayAnnotationLayer.AnnotationLayer; +PDFJS.renderTextLayer = displayTextLayer.renderTextLayer; +PDFJS.Metadata = displayMetadata.Metadata; +PDFJS.SVGGraphics = displaySVG.SVGGraphics; +PDFJS.UnsupportedManager = displayAPI._UnsupportedManager; +exports.globalScope = globalScope; +exports.isWorker = isWorker; +exports.PDFJS = globalScope.PDFJS; + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var displayDOMUtils = __w_pdfjs_require__(1); +var displayPatternHelper = __w_pdfjs_require__(12); +var displayWebGL = __w_pdfjs_require__(8); +var FONT_IDENTITY_MATRIX = sharedUtil.FONT_IDENTITY_MATRIX; +var IDENTITY_MATRIX = sharedUtil.IDENTITY_MATRIX; +var ImageKind = sharedUtil.ImageKind; +var OPS = sharedUtil.OPS; +var TextRenderingMode = sharedUtil.TextRenderingMode; +var Uint32ArrayView = sharedUtil.Uint32ArrayView; +var Util = sharedUtil.Util; +var assert = sharedUtil.assert; +var info = sharedUtil.info; +var isNum = sharedUtil.isNum; +var isArray = sharedUtil.isArray; +var isLittleEndian = sharedUtil.isLittleEndian; +var error = sharedUtil.error; +var shadow = sharedUtil.shadow; +var warn = sharedUtil.warn; +var TilingPattern = displayPatternHelper.TilingPattern; +var getShadingPatternFromIR = displayPatternHelper.getShadingPatternFromIR; +var WebGLUtils = displayWebGL.WebGLUtils; +var hasCanvasTypedArrays = displayDOMUtils.hasCanvasTypedArrays; +var MIN_FONT_SIZE = 16; +var MAX_FONT_SIZE = 100; +var MAX_GROUP_SIZE = 4096; +var MIN_WIDTH_FACTOR = 0.65; +var COMPILE_TYPE3_GLYPHS = true; +var MAX_SIZE_TO_COMPILE = 1000; +var FULL_CHUNK_HEIGHT = 16; +var HasCanvasTypedArraysCached = { + get value() { + return shadow(HasCanvasTypedArraysCached, 'value', hasCanvasTypedArrays()); + } +}; +var IsLittleEndianCached = { + get value() { + return shadow(IsLittleEndianCached, 'value', isLittleEndian()); + } +}; +function addContextCurrentTransform(ctx) { + if (!ctx.mozCurrentTransform) { + ctx._originalSave = ctx.save; + ctx._originalRestore = ctx.restore; + ctx._originalRotate = ctx.rotate; + ctx._originalScale = ctx.scale; + ctx._originalTranslate = ctx.translate; + ctx._originalTransform = ctx.transform; + ctx._originalSetTransform = ctx.setTransform; + ctx._transformMatrix = ctx._transformMatrix || [ + 1, + 0, + 0, + 1, + 0, + 0 + ]; + ctx._transformStack = []; + Object.defineProperty(ctx, 'mozCurrentTransform', { + get: function getCurrentTransform() { + return this._transformMatrix; + } + }); + Object.defineProperty(ctx, 'mozCurrentTransformInverse', { + get: function getCurrentTransformInverse() { + var m = this._transformMatrix; + var a = m[0], b = m[1], c = m[2], d = m[3], e = m[4], f = m[5]; + var ad_bc = a * d - b * c; + var bc_ad = b * c - a * d; + return [ + d / ad_bc, + b / bc_ad, + c / bc_ad, + a / ad_bc, + (d * e - c * f) / bc_ad, + (b * e - a * f) / ad_bc + ]; + } + }); + ctx.save = function ctxSave() { + var old = this._transformMatrix; + this._transformStack.push(old); + this._transformMatrix = old.slice(0, 6); + this._originalSave(); + }; + ctx.restore = function ctxRestore() { + var prev = this._transformStack.pop(); + if (prev) { + this._transformMatrix = prev; + this._originalRestore(); + } + }; + ctx.translate = function ctxTranslate(x, y) { + var m = this._transformMatrix; + m[4] = m[0] * x + m[2] * y + m[4]; + m[5] = m[1] * x + m[3] * y + m[5]; + this._originalTranslate(x, y); + }; + ctx.scale = function ctxScale(x, y) { + var m = this._transformMatrix; + m[0] = m[0] * x; + m[1] = m[1] * x; + m[2] = m[2] * y; + m[3] = m[3] * y; + this._originalScale(x, y); + }; + ctx.transform = function ctxTransform(a, b, c, d, e, f) { + var m = this._transformMatrix; + this._transformMatrix = [ + m[0] * a + m[2] * b, + m[1] * a + m[3] * b, + m[0] * c + m[2] * d, + m[1] * c + m[3] * d, + m[0] * e + m[2] * f + m[4], + m[1] * e + m[3] * f + m[5] + ]; + ctx._originalTransform(a, b, c, d, e, f); + }; + ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) { + this._transformMatrix = [ + a, + b, + c, + d, + e, + f + ]; + ctx._originalSetTransform(a, b, c, d, e, f); + }; + ctx.rotate = function ctxRotate(angle) { + var cosValue = Math.cos(angle); + var sinValue = Math.sin(angle); + var m = this._transformMatrix; + this._transformMatrix = [ + m[0] * cosValue + m[2] * sinValue, + m[1] * cosValue + m[3] * sinValue, + m[0] * -sinValue + m[2] * cosValue, + m[1] * -sinValue + m[3] * cosValue, + m[4], + m[5] + ]; + this._originalRotate(angle); + }; + } +} +var CachedCanvases = function CachedCanvasesClosure() { + function CachedCanvases(canvasFactory) { + this.canvasFactory = canvasFactory; + this.cache = Object.create(null); + } + CachedCanvases.prototype = { + getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) { + var canvasEntry; + if (this.cache[id] !== undefined) { + canvasEntry = this.cache[id]; + this.canvasFactory.reset(canvasEntry, width, height); + canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0); + } else { + canvasEntry = this.canvasFactory.create(width, height); + this.cache[id] = canvasEntry; + } + if (trackTransform) { + addContextCurrentTransform(canvasEntry.context); + } + return canvasEntry; + }, + clear: function () { + for (var id in this.cache) { + var canvasEntry = this.cache[id]; + this.canvasFactory.destroy(canvasEntry); + delete this.cache[id]; + } + } + }; + return CachedCanvases; +}(); +function compileType3Glyph(imgData) { + var POINT_TO_PROCESS_LIMIT = 1000; + var width = imgData.width, height = imgData.height; + var i, j, j0, width1 = width + 1; + var points = new Uint8Array(width1 * (height + 1)); + var POINT_TYPES = new Uint8Array([ + 0, + 2, + 4, + 0, + 1, + 0, + 5, + 4, + 8, + 10, + 0, + 8, + 0, + 2, + 1, + 0 + ]); + var lineSize = width + 7 & ~7, data0 = imgData.data; + var data = new Uint8Array(lineSize * height), pos = 0, ii; + for (i = 0, ii = data0.length; i < ii; i++) { + var mask = 128, elem = data0[i]; + while (mask > 0) { + data[pos++] = elem & mask ? 0 : 255; + mask >>= 1; + } + } + var count = 0; + pos = 0; + if (data[pos] !== 0) { + points[0] = 1; + ++count; + } + for (j = 1; j < width; j++) { + if (data[pos] !== data[pos + 1]) { + points[j] = data[pos] ? 2 : 1; + ++count; + } + pos++; + } + if (data[pos] !== 0) { + points[j] = 2; + ++count; + } + for (i = 1; i < height; i++) { + pos = i * lineSize; + j0 = i * width1; + if (data[pos - lineSize] !== data[pos]) { + points[j0] = data[pos] ? 1 : 8; + ++count; + } + var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0); + for (j = 1; j < width; j++) { + sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0); + if (POINT_TYPES[sum]) { + points[j0 + j] = POINT_TYPES[sum]; + ++count; + } + pos++; + } + if (data[pos - lineSize] !== data[pos]) { + points[j0 + j] = data[pos] ? 2 : 4; + ++count; + } + if (count > POINT_TO_PROCESS_LIMIT) { + return null; + } + } + pos = lineSize * (height - 1); + j0 = i * width1; + if (data[pos] !== 0) { + points[j0] = 8; + ++count; + } + for (j = 1; j < width; j++) { + if (data[pos] !== data[pos + 1]) { + points[j0 + j] = data[pos] ? 4 : 8; + ++count; + } + pos++; + } + if (data[pos] !== 0) { + points[j0 + j] = 4; + ++count; + } + if (count > POINT_TO_PROCESS_LIMIT) { + return null; + } + var steps = new Int32Array([ + 0, + width1, + -1, + 0, + -width1, + 0, + 0, + 0, + 1 + ]); + var outlines = []; + for (i = 0; count && i <= height; i++) { + var p = i * width1; + var end = p + width; + while (p < end && !points[p]) { + p++; + } + if (p === end) { + continue; + } + var coords = [ + p % width1, + i + ]; + var type = points[p], p0 = p, pp; + do { + var step = steps[type]; + do { + p += step; + } while (!points[p]); + pp = points[p]; + if (pp !== 5 && pp !== 10) { + type = pp; + points[p] = 0; + } else { + type = pp & 0x33 * type >> 4; + points[p] &= type >> 2 | type << 2; + } + coords.push(p % width1); + coords.push(p / width1 | 0); + --count; + } while (p0 !== p); + outlines.push(coords); + --i; + } + var drawOutline = function (c) { + c.save(); + c.scale(1 / width, -1 / height); + c.translate(0, -height); + c.beginPath(); + for (var i = 0, ii = outlines.length; i < ii; i++) { + var o = outlines[i]; + c.moveTo(o[0], o[1]); + for (var j = 2, jj = o.length; j < jj; j += 2) { + c.lineTo(o[j], o[j + 1]); + } + } + c.fill(); + c.beginPath(); + c.restore(); + }; + return drawOutline; +} +var CanvasExtraState = function CanvasExtraStateClosure() { + function CanvasExtraState(old) { + this.alphaIsShape = false; + this.fontSize = 0; + this.fontSizeScale = 1; + this.textMatrix = IDENTITY_MATRIX; + this.textMatrixScale = 1; + this.fontMatrix = FONT_IDENTITY_MATRIX; + this.leading = 0; + this.x = 0; + this.y = 0; + this.lineX = 0; + this.lineY = 0; + this.charSpacing = 0; + this.wordSpacing = 0; + this.textHScale = 1; + this.textRenderingMode = TextRenderingMode.FILL; + this.textRise = 0; + this.fillColor = '#000000'; + this.strokeColor = '#000000'; + this.patternFill = false; + this.fillAlpha = 1; + this.strokeAlpha = 1; + this.lineWidth = 1; + this.activeSMask = null; + this.resumeSMaskCtx = null; + this.old = old; + } + CanvasExtraState.prototype = { + clone: function CanvasExtraState_clone() { + return Object.create(this); + }, + setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) { + this.x = x; + this.y = y; + } + }; + return CanvasExtraState; +}(); +var CanvasGraphics = function CanvasGraphicsClosure() { + var EXECUTION_TIME = 15; + var EXECUTION_STEPS = 10; + function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, imageLayer) { + this.ctx = canvasCtx; + this.current = new CanvasExtraState(); + this.stateStack = []; + this.pendingClip = null; + this.pendingEOFill = false; + this.res = null; + this.xobjs = null; + this.commonObjs = commonObjs; + this.objs = objs; + this.canvasFactory = canvasFactory; + this.imageLayer = imageLayer; + this.groupStack = []; + this.processingType3 = null; + this.baseTransform = null; + this.baseTransformStack = []; + this.groupLevel = 0; + this.smaskStack = []; + this.smaskCounter = 0; + this.tempSMask = null; + this.cachedCanvases = new CachedCanvases(this.canvasFactory); + if (canvasCtx) { + addContextCurrentTransform(canvasCtx); + } + this.cachedGetSinglePixelWidth = null; + } + function putBinaryImageData(ctx, imgData) { + if (typeof ImageData !== 'undefined' && imgData instanceof ImageData) { + ctx.putImageData(imgData, 0, 0); + return; + } + var height = imgData.height, width = imgData.width; + var partialChunkHeight = height % FULL_CHUNK_HEIGHT; + var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; + var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; + var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); + var srcPos = 0, destPos; + var src = imgData.data; + var dest = chunkImgData.data; + var i, j, thisChunkHeight, elemsInThisChunk; + if (imgData.kind === ImageKind.GRAYSCALE_1BPP) { + var srcLength = src.byteLength; + var dest32 = HasCanvasTypedArraysCached.value ? new Uint32Array(dest.buffer) : new Uint32ArrayView(dest); + var dest32DataLength = dest32.length; + var fullSrcDiff = width + 7 >> 3; + var white = 0xFFFFFFFF; + var black = IsLittleEndianCached.value || !HasCanvasTypedArraysCached.value ? 0xFF000000 : 0x000000FF; + for (i = 0; i < totalChunks; i++) { + thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; + destPos = 0; + for (j = 0; j < thisChunkHeight; j++) { + var srcDiff = srcLength - srcPos; + var k = 0; + var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7; + var kEndUnrolled = kEnd & ~7; + var mask = 0; + var srcByte = 0; + for (; k < kEndUnrolled; k += 8) { + srcByte = src[srcPos++]; + dest32[destPos++] = srcByte & 128 ? white : black; + dest32[destPos++] = srcByte & 64 ? white : black; + dest32[destPos++] = srcByte & 32 ? white : black; + dest32[destPos++] = srcByte & 16 ? white : black; + dest32[destPos++] = srcByte & 8 ? white : black; + dest32[destPos++] = srcByte & 4 ? white : black; + dest32[destPos++] = srcByte & 2 ? white : black; + dest32[destPos++] = srcByte & 1 ? white : black; + } + for (; k < kEnd; k++) { + if (mask === 0) { + srcByte = src[srcPos++]; + mask = 128; + } + dest32[destPos++] = srcByte & mask ? white : black; + mask >>= 1; + } + } + while (destPos < dest32DataLength) { + dest32[destPos++] = 0; + } + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); + } + } else if (imgData.kind === ImageKind.RGBA_32BPP) { + j = 0; + elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4; + for (i = 0; i < fullChunks; i++) { + dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); + srcPos += elemsInThisChunk; + ctx.putImageData(chunkImgData, 0, j); + j += FULL_CHUNK_HEIGHT; + } + if (i < totalChunks) { + elemsInThisChunk = width * partialChunkHeight * 4; + dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); + ctx.putImageData(chunkImgData, 0, j); + } + } else if (imgData.kind === ImageKind.RGB_24BPP) { + thisChunkHeight = FULL_CHUNK_HEIGHT; + elemsInThisChunk = width * thisChunkHeight; + for (i = 0; i < totalChunks; i++) { + if (i >= fullChunks) { + thisChunkHeight = partialChunkHeight; + elemsInThisChunk = width * thisChunkHeight; + } + destPos = 0; + for (j = elemsInThisChunk; j--;) { + dest[destPos++] = src[srcPos++]; + dest[destPos++] = src[srcPos++]; + dest[destPos++] = src[srcPos++]; + dest[destPos++] = 255; + } + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); + } + } else { + error('bad image kind: ' + imgData.kind); + } + } + function putBinaryImageMask(ctx, imgData) { + var height = imgData.height, width = imgData.width; + var partialChunkHeight = height % FULL_CHUNK_HEIGHT; + var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; + var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; + var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); + var srcPos = 0; + var src = imgData.data; + var dest = chunkImgData.data; + for (var i = 0; i < totalChunks; i++) { + var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; + var destPos = 3; + for (var j = 0; j < thisChunkHeight; j++) { + var mask = 0; + for (var k = 0; k < width; k++) { + if (!mask) { + var elem = src[srcPos++]; + mask = 128; + } + dest[destPos] = elem & mask ? 0 : 255; + destPos += 4; + mask >>= 1; + } + } + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); + } + } + function copyCtxState(sourceCtx, destCtx) { + var properties = [ + 'strokeStyle', + 'fillStyle', + 'fillRule', + 'globalAlpha', + 'lineWidth', + 'lineCap', + 'lineJoin', + 'miterLimit', + 'globalCompositeOperation', + 'font' + ]; + for (var i = 0, ii = properties.length; i < ii; i++) { + var property = properties[i]; + if (sourceCtx[property] !== undefined) { + destCtx[property] = sourceCtx[property]; + } + } + if (sourceCtx.setLineDash !== undefined) { + destCtx.setLineDash(sourceCtx.getLineDash()); + destCtx.lineDashOffset = sourceCtx.lineDashOffset; + } + } + function composeSMaskBackdrop(bytes, r0, g0, b0) { + var length = bytes.length; + for (var i = 3; i < length; i += 4) { + var alpha = bytes[i]; + if (alpha === 0) { + bytes[i - 3] = r0; + bytes[i - 2] = g0; + bytes[i - 1] = b0; + } else if (alpha < 255) { + var alpha_ = 255 - alpha; + bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8; + bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8; + bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8; + } + } + } + function composeSMaskAlpha(maskData, layerData, transferMap) { + var length = maskData.length; + var scale = 1 / 255; + for (var i = 3; i < length; i += 4) { + var alpha = transferMap ? transferMap[maskData[i]] : maskData[i]; + layerData[i] = layerData[i] * alpha * scale | 0; + } + } + function composeSMaskLuminosity(maskData, layerData, transferMap) { + var length = maskData.length; + for (var i = 3; i < length; i += 4) { + var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28; + layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16; + } + } + function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) { + var hasBackdrop = !!backdrop; + var r0 = hasBackdrop ? backdrop[0] : 0; + var g0 = hasBackdrop ? backdrop[1] : 0; + var b0 = hasBackdrop ? backdrop[2] : 0; + var composeFn; + if (subtype === 'Luminosity') { + composeFn = composeSMaskLuminosity; + } else { + composeFn = composeSMaskAlpha; + } + var PIXELS_TO_PROCESS = 1048576; + var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width)); + for (var row = 0; row < height; row += chunkSize) { + var chunkHeight = Math.min(chunkSize, height - row); + var maskData = maskCtx.getImageData(0, row, width, chunkHeight); + var layerData = layerCtx.getImageData(0, row, width, chunkHeight); + if (hasBackdrop) { + composeSMaskBackdrop(maskData.data, r0, g0, b0); + } + composeFn(maskData.data, layerData.data, transferMap); + maskCtx.putImageData(layerData, 0, row); + } + } + function composeSMask(ctx, smask, layerCtx) { + var mask = smask.canvas; + var maskCtx = smask.context; + ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY); + var backdrop = smask.backdrop || null; + if (!smask.transferMap && WebGLUtils.isEnabled) { + var composed = WebGLUtils.composeSMask(layerCtx.canvas, mask, { + subtype: smask.subtype, + backdrop: backdrop + }); + ctx.setTransform(1, 0, 0, 1, 0, 0); + ctx.drawImage(composed, smask.offsetX, smask.offsetY); + return; + } + genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap); + ctx.drawImage(mask, 0, 0); + } + var LINE_CAP_STYLES = [ + 'butt', + 'round', + 'square' + ]; + var LINE_JOIN_STYLES = [ + 'miter', + 'round', + 'bevel' + ]; + var NORMAL_CLIP = {}; + var EO_CLIP = {}; + CanvasGraphics.prototype = { + beginDrawing: function CanvasGraphics_beginDrawing(transform, viewport, transparency) { + var width = this.ctx.canvas.width; + var height = this.ctx.canvas.height; + this.ctx.save(); + this.ctx.fillStyle = 'rgb(255, 255, 255)'; + this.ctx.fillRect(0, 0, width, height); + this.ctx.restore(); + if (transparency) { + var transparentCanvas = this.cachedCanvases.getCanvas('transparent', width, height, true); + this.compositeCtx = this.ctx; + this.transparentCanvas = transparentCanvas.canvas; + this.ctx = transparentCanvas.context; + this.ctx.save(); + this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform); + } + this.ctx.save(); + if (transform) { + this.ctx.transform.apply(this.ctx, transform); + } + this.ctx.transform.apply(this.ctx, viewport.transform); + this.baseTransform = this.ctx.mozCurrentTransform.slice(); + if (this.imageLayer) { + this.imageLayer.beginLayout(); + } + }, + executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) { + var argsArray = operatorList.argsArray; + var fnArray = operatorList.fnArray; + var i = executionStartIdx || 0; + var argsArrayLen = argsArray.length; + if (argsArrayLen === i) { + return i; + } + var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === 'function'; + var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0; + var steps = 0; + var commonObjs = this.commonObjs; + var objs = this.objs; + var fnId; + while (true) { + if (stepper !== undefined && i === stepper.nextBreakPoint) { + stepper.breakIt(i, continueCallback); + return i; + } + fnId = fnArray[i]; + if (fnId !== OPS.dependency) { + this[fnId].apply(this, argsArray[i]); + } else { + var deps = argsArray[i]; + for (var n = 0, nn = deps.length; n < nn; n++) { + var depObjId = deps[n]; + var common = depObjId[0] === 'g' && depObjId[1] === '_'; + var objsPool = common ? commonObjs : objs; + if (!objsPool.isResolved(depObjId)) { + objsPool.get(depObjId, continueCallback); + return i; + } + } + } + i++; + if (i === argsArrayLen) { + return i; + } + if (chunkOperations && ++steps > EXECUTION_STEPS) { + if (Date.now() > endTime) { + continueCallback(); + return i; + } + steps = 0; + } + } + }, + endDrawing: function CanvasGraphics_endDrawing() { + if (this.current.activeSMask !== null) { + this.endSMaskGroup(); + } + this.ctx.restore(); + if (this.transparentCanvas) { + this.ctx = this.compositeCtx; + this.ctx.save(); + this.ctx.setTransform(1, 0, 0, 1, 0, 0); + this.ctx.drawImage(this.transparentCanvas, 0, 0); + this.ctx.restore(); + this.transparentCanvas = null; + } + this.cachedCanvases.clear(); + WebGLUtils.clear(); + if (this.imageLayer) { + this.imageLayer.endLayout(); + } + }, + setLineWidth: function CanvasGraphics_setLineWidth(width) { + this.current.lineWidth = width; + this.ctx.lineWidth = width; + }, + setLineCap: function CanvasGraphics_setLineCap(style) { + this.ctx.lineCap = LINE_CAP_STYLES[style]; + }, + setLineJoin: function CanvasGraphics_setLineJoin(style) { + this.ctx.lineJoin = LINE_JOIN_STYLES[style]; + }, + setMiterLimit: function CanvasGraphics_setMiterLimit(limit) { + this.ctx.miterLimit = limit; + }, + setDash: function CanvasGraphics_setDash(dashArray, dashPhase) { + var ctx = this.ctx; + if (ctx.setLineDash !== undefined) { + ctx.setLineDash(dashArray); + ctx.lineDashOffset = dashPhase; + } + }, + setRenderingIntent: function CanvasGraphics_setRenderingIntent(intent) { + }, + setFlatness: function CanvasGraphics_setFlatness(flatness) { + }, + setGState: function CanvasGraphics_setGState(states) { + for (var i = 0, ii = states.length; i < ii; i++) { + var state = states[i]; + var key = state[0]; + var value = state[1]; + switch (key) { + case 'LW': + this.setLineWidth(value); + break; + case 'LC': + this.setLineCap(value); + break; + case 'LJ': + this.setLineJoin(value); + break; + case 'ML': + this.setMiterLimit(value); + break; + case 'D': + this.setDash(value[0], value[1]); + break; + case 'RI': + this.setRenderingIntent(value); + break; + case 'FL': + this.setFlatness(value); + break; + case 'Font': + this.setFont(value[0], value[1]); + break; + case 'CA': + this.current.strokeAlpha = state[1]; + break; + case 'ca': + this.current.fillAlpha = state[1]; + this.ctx.globalAlpha = state[1]; + break; + case 'BM': + if (value && value.name && value.name !== 'Normal') { + var mode = value.name.replace(/([A-Z])/g, function (c) { + return '-' + c.toLowerCase(); + }).substring(1); + this.ctx.globalCompositeOperation = mode; + if (this.ctx.globalCompositeOperation !== mode) { + warn('globalCompositeOperation "' + mode + '" is not supported'); + } + } else { + this.ctx.globalCompositeOperation = 'source-over'; + } + break; + case 'SMask': + if (this.current.activeSMask) { + if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) { + this.suspendSMaskGroup(); + } else { + this.endSMaskGroup(); + } + } + this.current.activeSMask = value ? this.tempSMask : null; + if (this.current.activeSMask) { + this.beginSMaskGroup(); + } + this.tempSMask = null; + break; + } + } + }, + beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() { + var activeSMask = this.current.activeSMask; + var drawnWidth = activeSMask.canvas.width; + var drawnHeight = activeSMask.canvas.height; + var cacheId = 'smaskGroupAt' + this.groupLevel; + var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); + var currentCtx = this.ctx; + var currentTransform = currentCtx.mozCurrentTransform; + this.ctx.save(); + var groupCtx = scratchCanvas.context; + groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY); + groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY); + groupCtx.transform.apply(groupCtx, currentTransform); + activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse; + copyCtxState(currentCtx, groupCtx); + this.ctx = groupCtx; + this.setGState([ + [ + 'BM', + 'Normal' + ], + [ + 'ca', + 1 + ], + [ + 'CA', + 1 + ] + ]); + this.groupStack.push(currentCtx); + this.groupLevel++; + }, + suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() { + var groupCtx = this.ctx; + this.groupLevel--; + this.ctx = this.groupStack.pop(); + composeSMask(this.ctx, this.current.activeSMask, groupCtx); + this.ctx.restore(); + this.ctx.save(); + copyCtxState(groupCtx, this.ctx); + this.current.resumeSMaskCtx = groupCtx; + var deltaTransform = Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); + this.ctx.transform.apply(this.ctx, deltaTransform); + groupCtx.save(); + groupCtx.setTransform(1, 0, 0, 1, 0, 0); + groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height); + groupCtx.restore(); + }, + resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() { + var groupCtx = this.current.resumeSMaskCtx; + var currentCtx = this.ctx; + this.ctx = groupCtx; + this.groupStack.push(currentCtx); + this.groupLevel++; + }, + endSMaskGroup: function CanvasGraphics_endSMaskGroup() { + var groupCtx = this.ctx; + this.groupLevel--; + this.ctx = this.groupStack.pop(); + composeSMask(this.ctx, this.current.activeSMask, groupCtx); + this.ctx.restore(); + copyCtxState(groupCtx, this.ctx); + var deltaTransform = Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); + this.ctx.transform.apply(this.ctx, deltaTransform); + }, + save: function CanvasGraphics_save() { + this.ctx.save(); + var old = this.current; + this.stateStack.push(old); + this.current = old.clone(); + this.current.resumeSMaskCtx = null; + }, + restore: function CanvasGraphics_restore() { + if (this.current.resumeSMaskCtx) { + this.resumeSMaskGroup(); + } + if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) { + this.endSMaskGroup(); + } + if (this.stateStack.length !== 0) { + this.current = this.stateStack.pop(); + this.ctx.restore(); + this.pendingClip = null; + this.cachedGetSinglePixelWidth = null; + } + }, + transform: function CanvasGraphics_transform(a, b, c, d, e, f) { + this.ctx.transform(a, b, c, d, e, f); + this.cachedGetSinglePixelWidth = null; + }, + constructPath: function CanvasGraphics_constructPath(ops, args) { + var ctx = this.ctx; + var current = this.current; + var x = current.x, y = current.y; + for (var i = 0, j = 0, ii = ops.length; i < ii; i++) { + switch (ops[i] | 0) { + case OPS.rectangle: + x = args[j++]; + y = args[j++]; + var width = args[j++]; + var height = args[j++]; + if (width === 0) { + width = this.getSinglePixelWidth(); + } + if (height === 0) { + height = this.getSinglePixelWidth(); + } + var xw = x + width; + var yh = y + height; + this.ctx.moveTo(x, y); + this.ctx.lineTo(xw, y); + this.ctx.lineTo(xw, yh); + this.ctx.lineTo(x, yh); + this.ctx.lineTo(x, y); + this.ctx.closePath(); + break; + case OPS.moveTo: + x = args[j++]; + y = args[j++]; + ctx.moveTo(x, y); + break; + case OPS.lineTo: + x = args[j++]; + y = args[j++]; + ctx.lineTo(x, y); + break; + case OPS.curveTo: + x = args[j + 4]; + y = args[j + 5]; + ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y); + j += 6; + break; + case OPS.curveTo2: + ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]); + x = args[j + 2]; + y = args[j + 3]; + j += 4; + break; + case OPS.curveTo3: + x = args[j + 2]; + y = args[j + 3]; + ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y); + j += 4; + break; + case OPS.closePath: + ctx.closePath(); + break; + } + } + current.setCurrentPoint(x, y); + }, + closePath: function CanvasGraphics_closePath() { + this.ctx.closePath(); + }, + stroke: function CanvasGraphics_stroke(consumePath) { + consumePath = typeof consumePath !== 'undefined' ? consumePath : true; + var ctx = this.ctx; + var strokeColor = this.current.strokeColor; + ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth); + ctx.globalAlpha = this.current.strokeAlpha; + if (strokeColor && strokeColor.hasOwnProperty('type') && strokeColor.type === 'Pattern') { + ctx.save(); + ctx.strokeStyle = strokeColor.getPattern(ctx, this); + ctx.stroke(); + ctx.restore(); + } else { + ctx.stroke(); + } + if (consumePath) { + this.consumePath(); + } + ctx.globalAlpha = this.current.fillAlpha; + }, + closeStroke: function CanvasGraphics_closeStroke() { + this.closePath(); + this.stroke(); + }, + fill: function CanvasGraphics_fill(consumePath) { + consumePath = typeof consumePath !== 'undefined' ? consumePath : true; + var ctx = this.ctx; + var fillColor = this.current.fillColor; + var isPatternFill = this.current.patternFill; + var needRestore = false; + if (isPatternFill) { + ctx.save(); + if (this.baseTransform) { + ctx.setTransform.apply(ctx, this.baseTransform); + } + ctx.fillStyle = fillColor.getPattern(ctx, this); + needRestore = true; + } + if (this.pendingEOFill) { + ctx.fill('evenodd'); + this.pendingEOFill = false; + } else { + ctx.fill(); + } + if (needRestore) { + ctx.restore(); + } + if (consumePath) { + this.consumePath(); + } + }, + eoFill: function CanvasGraphics_eoFill() { + this.pendingEOFill = true; + this.fill(); + }, + fillStroke: function CanvasGraphics_fillStroke() { + this.fill(false); + this.stroke(false); + this.consumePath(); + }, + eoFillStroke: function CanvasGraphics_eoFillStroke() { + this.pendingEOFill = true; + this.fillStroke(); + }, + closeFillStroke: function CanvasGraphics_closeFillStroke() { + this.closePath(); + this.fillStroke(); + }, + closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() { + this.pendingEOFill = true; + this.closePath(); + this.fillStroke(); + }, + endPath: function CanvasGraphics_endPath() { + this.consumePath(); + }, + clip: function CanvasGraphics_clip() { + this.pendingClip = NORMAL_CLIP; + }, + eoClip: function CanvasGraphics_eoClip() { + this.pendingClip = EO_CLIP; + }, + beginText: function CanvasGraphics_beginText() { + this.current.textMatrix = IDENTITY_MATRIX; + this.current.textMatrixScale = 1; + this.current.x = this.current.lineX = 0; + this.current.y = this.current.lineY = 0; + }, + endText: function CanvasGraphics_endText() { + var paths = this.pendingTextPaths; + var ctx = this.ctx; + if (paths === undefined) { + ctx.beginPath(); + return; + } + ctx.save(); + ctx.beginPath(); + for (var i = 0; i < paths.length; i++) { + var path = paths[i]; + ctx.setTransform.apply(ctx, path.transform); + ctx.translate(path.x, path.y); + path.addToPath(ctx, path.fontSize); + } + ctx.restore(); + ctx.clip(); + ctx.beginPath(); + delete this.pendingTextPaths; + }, + setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) { + this.current.charSpacing = spacing; + }, + setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) { + this.current.wordSpacing = spacing; + }, + setHScale: function CanvasGraphics_setHScale(scale) { + this.current.textHScale = scale / 100; + }, + setLeading: function CanvasGraphics_setLeading(leading) { + this.current.leading = -leading; + }, + setFont: function CanvasGraphics_setFont(fontRefName, size) { + var fontObj = this.commonObjs.get(fontRefName); + var current = this.current; + if (!fontObj) { + error('Can\'t find font for ' + fontRefName); + } + current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : FONT_IDENTITY_MATRIX; + if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) { + warn('Invalid font matrix for font ' + fontRefName); + } + if (size < 0) { + size = -size; + current.fontDirection = -1; + } else { + current.fontDirection = 1; + } + this.current.font = fontObj; + this.current.fontSize = size; + if (fontObj.isType3Font) { + return; + } + var name = fontObj.loadedName || 'sans-serif'; + var bold = fontObj.black ? '900' : fontObj.bold ? 'bold' : 'normal'; + var italic = fontObj.italic ? 'italic' : 'normal'; + var typeface = '"' + name + '", ' + fontObj.fallbackName; + var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE : size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size; + this.current.fontSizeScale = size / browserFontSize; + var rule = italic + ' ' + bold + ' ' + browserFontSize + 'px ' + typeface; + this.ctx.font = rule; + }, + setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) { + this.current.textRenderingMode = mode; + }, + setTextRise: function CanvasGraphics_setTextRise(rise) { + this.current.textRise = rise; + }, + moveText: function CanvasGraphics_moveText(x, y) { + this.current.x = this.current.lineX += x; + this.current.y = this.current.lineY += y; + }, + setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) { + this.setLeading(-y); + this.moveText(x, y); + }, + setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) { + this.current.textMatrix = [ + a, + b, + c, + d, + e, + f + ]; + this.current.textMatrixScale = Math.sqrt(a * a + b * b); + this.current.x = this.current.lineX = 0; + this.current.y = this.current.lineY = 0; + }, + nextLine: function CanvasGraphics_nextLine() { + this.moveText(0, this.current.leading); + }, + paintChar: function CanvasGraphics_paintChar(character, x, y) { + var ctx = this.ctx; + var current = this.current; + var font = current.font; + var textRenderingMode = current.textRenderingMode; + var fontSize = current.fontSize / current.fontSizeScale; + var fillStrokeMode = textRenderingMode & TextRenderingMode.FILL_STROKE_MASK; + var isAddToPathSet = !!(textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG); + var addToPath; + if (font.disableFontFace || isAddToPathSet) { + addToPath = font.getPathGenerator(this.commonObjs, character); + } + if (font.disableFontFace) { + ctx.save(); + ctx.translate(x, y); + ctx.beginPath(); + addToPath(ctx, fontSize); + if (fillStrokeMode === TextRenderingMode.FILL || fillStrokeMode === TextRenderingMode.FILL_STROKE) { + ctx.fill(); + } + if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) { + ctx.stroke(); + } + ctx.restore(); + } else { + if (fillStrokeMode === TextRenderingMode.FILL || fillStrokeMode === TextRenderingMode.FILL_STROKE) { + ctx.fillText(character, x, y); + } + if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) { + ctx.strokeText(character, x, y); + } + } + if (isAddToPathSet) { + var paths = this.pendingTextPaths || (this.pendingTextPaths = []); + paths.push({ + transform: ctx.mozCurrentTransform, + x: x, + y: y, + fontSize: fontSize, + addToPath: addToPath + }); + } + }, + get isFontSubpixelAAEnabled() { + var ctx = this.canvasFactory.create(10, 10).context; + ctx.scale(1.5, 1); + ctx.fillText('I', 0, 10); + var data = ctx.getImageData(0, 0, 10, 10).data; + var enabled = false; + for (var i = 3; i < data.length; i += 4) { + if (data[i] > 0 && data[i] < 255) { + enabled = true; + break; + } + } + return shadow(this, 'isFontSubpixelAAEnabled', enabled); + }, + showText: function CanvasGraphics_showText(glyphs) { + var current = this.current; + var font = current.font; + if (font.isType3Font) { + return this.showType3Text(glyphs); + } + var fontSize = current.fontSize; + if (fontSize === 0) { + return; + } + var ctx = this.ctx; + var fontSizeScale = current.fontSizeScale; + var charSpacing = current.charSpacing; + var wordSpacing = current.wordSpacing; + var fontDirection = current.fontDirection; + var textHScale = current.textHScale * fontDirection; + var glyphsLength = glyphs.length; + var vertical = font.vertical; + var spacingDir = vertical ? 1 : -1; + var defaultVMetrics = font.defaultVMetrics; + var widthAdvanceScale = fontSize * current.fontMatrix[0]; + var simpleFillText = current.textRenderingMode === TextRenderingMode.FILL && !font.disableFontFace; + ctx.save(); + ctx.transform.apply(ctx, current.textMatrix); + ctx.translate(current.x, current.y + current.textRise); + if (current.patternFill) { + ctx.fillStyle = current.fillColor.getPattern(ctx, this); + } + if (fontDirection > 0) { + ctx.scale(textHScale, -1); + } else { + ctx.scale(textHScale, 1); + } + var lineWidth = current.lineWidth; + var scale = current.textMatrixScale; + if (scale === 0 || lineWidth === 0) { + var fillStrokeMode = current.textRenderingMode & TextRenderingMode.FILL_STROKE_MASK; + if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) { + this.cachedGetSinglePixelWidth = null; + lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR; + } + } else { + lineWidth /= scale; + } + if (fontSizeScale !== 1.0) { + ctx.scale(fontSizeScale, fontSizeScale); + lineWidth /= fontSizeScale; + } + ctx.lineWidth = lineWidth; + var x = 0, i; + for (i = 0; i < glyphsLength; ++i) { + var glyph = glyphs[i]; + if (isNum(glyph)) { + x += spacingDir * glyph * fontSize / 1000; + continue; + } + var restoreNeeded = false; + var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + var character = glyph.fontChar; + var accent = glyph.accent; + var scaledX, scaledY, scaledAccentX, scaledAccentY; + var width = glyph.width; + if (vertical) { + var vmetric, vx, vy; + vmetric = glyph.vmetric || defaultVMetrics; + vx = glyph.vmetric ? vmetric[1] : width * 0.5; + vx = -vx * widthAdvanceScale; + vy = vmetric[2] * widthAdvanceScale; + width = vmetric ? -vmetric[0] : width; + scaledX = vx / fontSizeScale; + scaledY = (x + vy) / fontSizeScale; + } else { + scaledX = x / fontSizeScale; + scaledY = 0; + } + if (font.remeasure && width > 0) { + var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale; + if (width < measuredWidth && this.isFontSubpixelAAEnabled) { + var characterScaleX = width / measuredWidth; + restoreNeeded = true; + ctx.save(); + ctx.scale(characterScaleX, 1); + scaledX /= characterScaleX; + } else if (width !== measuredWidth) { + scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale; + } + } + if (glyph.isInFont || font.missingFile) { + if (simpleFillText && !accent) { + ctx.fillText(character, scaledX, scaledY); + } else { + this.paintChar(character, scaledX, scaledY); + if (accent) { + scaledAccentX = scaledX + accent.offset.x / fontSizeScale; + scaledAccentY = scaledY - accent.offset.y / fontSizeScale; + this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY); + } + } + } + var charWidth = width * widthAdvanceScale + spacing * fontDirection; + x += charWidth; + if (restoreNeeded) { + ctx.restore(); + } + } + if (vertical) { + current.y -= x * textHScale; + } else { + current.x += x * textHScale; + } + ctx.restore(); + }, + showType3Text: function CanvasGraphics_showType3Text(glyphs) { + var ctx = this.ctx; + var current = this.current; + var font = current.font; + var fontSize = current.fontSize; + var fontDirection = current.fontDirection; + var spacingDir = font.vertical ? 1 : -1; + var charSpacing = current.charSpacing; + var wordSpacing = current.wordSpacing; + var textHScale = current.textHScale * fontDirection; + var fontMatrix = current.fontMatrix || FONT_IDENTITY_MATRIX; + var glyphsLength = glyphs.length; + var isTextInvisible = current.textRenderingMode === TextRenderingMode.INVISIBLE; + var i, glyph, width, spacingLength; + if (isTextInvisible || fontSize === 0) { + return; + } + this.cachedGetSinglePixelWidth = null; + ctx.save(); + ctx.transform.apply(ctx, current.textMatrix); + ctx.translate(current.x, current.y); + ctx.scale(textHScale, fontDirection); + for (i = 0; i < glyphsLength; ++i) { + glyph = glyphs[i]; + if (isNum(glyph)) { + spacingLength = spacingDir * glyph * fontSize / 1000; + this.ctx.translate(spacingLength, 0); + current.x += spacingLength * textHScale; + continue; + } + var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + var operatorList = font.charProcOperatorList[glyph.operatorListId]; + if (!operatorList) { + warn('Type3 character \"' + glyph.operatorListId + '\" is not available'); + continue; + } + this.processingType3 = glyph; + this.save(); + ctx.scale(fontSize, fontSize); + ctx.transform.apply(ctx, fontMatrix); + this.executeOperatorList(operatorList); + this.restore(); + var transformed = Util.applyTransform([ + glyph.width, + 0 + ], fontMatrix); + width = transformed[0] * fontSize + spacing; + ctx.translate(width, 0); + current.x += width * textHScale; + } + ctx.restore(); + this.processingType3 = null; + }, + setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) { + }, + setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) { + this.ctx.rect(llx, lly, urx - llx, ury - lly); + this.clip(); + this.endPath(); + }, + getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) { + var pattern; + if (IR[0] === 'TilingPattern') { + var color = IR[1]; + var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice(); + var self = this; + var canvasGraphicsFactory = { + createCanvasGraphics: function (ctx) { + return new CanvasGraphics(ctx, self.commonObjs, self.objs, self.canvasFactory); + } + }; + pattern = new TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform); + } else { + pattern = getShadingPatternFromIR(IR); + } + return pattern; + }, + setStrokeColorN: function CanvasGraphics_setStrokeColorN() { + this.current.strokeColor = this.getColorN_Pattern(arguments); + }, + setFillColorN: function CanvasGraphics_setFillColorN() { + this.current.fillColor = this.getColorN_Pattern(arguments); + this.current.patternFill = true; + }, + setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) { + var color = Util.makeCssRgb(r, g, b); + this.ctx.strokeStyle = color; + this.current.strokeColor = color; + }, + setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) { + var color = Util.makeCssRgb(r, g, b); + this.ctx.fillStyle = color; + this.current.fillColor = color; + this.current.patternFill = false; + }, + shadingFill: function CanvasGraphics_shadingFill(patternIR) { + var ctx = this.ctx; + this.save(); + var pattern = getShadingPatternFromIR(patternIR); + ctx.fillStyle = pattern.getPattern(ctx, this, true); + var inv = ctx.mozCurrentTransformInverse; + if (inv) { + var canvas = ctx.canvas; + var width = canvas.width; + var height = canvas.height; + var bl = Util.applyTransform([ + 0, + 0 + ], inv); + var br = Util.applyTransform([ + 0, + height + ], inv); + var ul = Util.applyTransform([ + width, + 0 + ], inv); + var ur = Util.applyTransform([ + width, + height + ], inv); + var x0 = Math.min(bl[0], br[0], ul[0], ur[0]); + var y0 = Math.min(bl[1], br[1], ul[1], ur[1]); + var x1 = Math.max(bl[0], br[0], ul[0], ur[0]); + var y1 = Math.max(bl[1], br[1], ul[1], ur[1]); + this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0); + } else { + this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10); + } + this.restore(); + }, + beginInlineImage: function CanvasGraphics_beginInlineImage() { + error('Should not call beginInlineImage'); + }, + beginImageData: function CanvasGraphics_beginImageData() { + error('Should not call beginImageData'); + }, + paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) { + this.save(); + this.baseTransformStack.push(this.baseTransform); + if (isArray(matrix) && matrix.length === 6) { + this.transform.apply(this, matrix); + } + this.baseTransform = this.ctx.mozCurrentTransform; + if (isArray(bbox) && bbox.length === 4) { + var width = bbox[2] - bbox[0]; + var height = bbox[3] - bbox[1]; + this.ctx.rect(bbox[0], bbox[1], width, height); + this.clip(); + this.endPath(); + } + }, + paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() { + this.restore(); + this.baseTransform = this.baseTransformStack.pop(); + }, + beginGroup: function CanvasGraphics_beginGroup(group) { + this.save(); + var currentCtx = this.ctx; + if (!group.isolated) { + info('TODO: Support non-isolated groups.'); + } + if (group.knockout) { + warn('Knockout groups not supported.'); + } + var currentTransform = currentCtx.mozCurrentTransform; + if (group.matrix) { + currentCtx.transform.apply(currentCtx, group.matrix); + } + assert(group.bbox, 'Bounding box is required.'); + var bounds = Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform); + var canvasBounds = [ + 0, + 0, + currentCtx.canvas.width, + currentCtx.canvas.height + ]; + bounds = Util.intersect(bounds, canvasBounds) || [ + 0, + 0, + 0, + 0 + ]; + var offsetX = Math.floor(bounds[0]); + var offsetY = Math.floor(bounds[1]); + var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1); + var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1); + var scaleX = 1, scaleY = 1; + if (drawnWidth > MAX_GROUP_SIZE) { + scaleX = drawnWidth / MAX_GROUP_SIZE; + drawnWidth = MAX_GROUP_SIZE; + } + if (drawnHeight > MAX_GROUP_SIZE) { + scaleY = drawnHeight / MAX_GROUP_SIZE; + drawnHeight = MAX_GROUP_SIZE; + } + var cacheId = 'groupAt' + this.groupLevel; + if (group.smask) { + cacheId += '_smask_' + this.smaskCounter++ % 2; + } + var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); + var groupCtx = scratchCanvas.context; + groupCtx.scale(1 / scaleX, 1 / scaleY); + groupCtx.translate(-offsetX, -offsetY); + groupCtx.transform.apply(groupCtx, currentTransform); + if (group.smask) { + this.smaskStack.push({ + canvas: scratchCanvas.canvas, + context: groupCtx, + offsetX: offsetX, + offsetY: offsetY, + scaleX: scaleX, + scaleY: scaleY, + subtype: group.smask.subtype, + backdrop: group.smask.backdrop, + transferMap: group.smask.transferMap || null, + startTransformInverse: null + }); + } else { + currentCtx.setTransform(1, 0, 0, 1, 0, 0); + currentCtx.translate(offsetX, offsetY); + currentCtx.scale(scaleX, scaleY); + } + copyCtxState(currentCtx, groupCtx); + this.ctx = groupCtx; + this.setGState([ + [ + 'BM', + 'Normal' + ], + [ + 'ca', + 1 + ], + [ + 'CA', + 1 + ] + ]); + this.groupStack.push(currentCtx); + this.groupLevel++; + this.current.activeSMask = null; + }, + endGroup: function CanvasGraphics_endGroup(group) { + this.groupLevel--; + var groupCtx = this.ctx; + this.ctx = this.groupStack.pop(); + if (this.ctx.imageSmoothingEnabled !== undefined) { + this.ctx.imageSmoothingEnabled = false; + } else { + this.ctx.mozImageSmoothingEnabled = false; + } + if (group.smask) { + this.tempSMask = this.smaskStack.pop(); + } else { + this.ctx.drawImage(groupCtx.canvas, 0, 0); + } + this.restore(); + }, + beginAnnotations: function CanvasGraphics_beginAnnotations() { + this.save(); + this.current = new CanvasExtraState(); + if (this.baseTransform) { + this.ctx.setTransform.apply(this.ctx, this.baseTransform); + } + }, + endAnnotations: function CanvasGraphics_endAnnotations() { + this.restore(); + }, + beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) { + this.save(); + if (isArray(rect) && rect.length === 4) { + var width = rect[2] - rect[0]; + var height = rect[3] - rect[1]; + this.ctx.rect(rect[0], rect[1], width, height); + this.clip(); + this.endPath(); + } + this.transform.apply(this, transform); + this.transform.apply(this, matrix); + }, + endAnnotation: function CanvasGraphics_endAnnotation() { + this.restore(); + }, + paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) { + var domImage = this.objs.get(objId); + if (!domImage) { + warn('Dependent image isn\'t ready yet'); + return; + } + this.save(); + var ctx = this.ctx; + ctx.scale(1 / w, -1 / h); + ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h); + if (this.imageLayer) { + var currentTransform = ctx.mozCurrentTransformInverse; + var position = this.getCanvasPosition(0, 0); + this.imageLayer.appendImage({ + objId: objId, + left: position[0], + top: position[1], + width: w / currentTransform[0], + height: h / currentTransform[3] + }); + } + this.restore(); + }, + paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) { + var ctx = this.ctx; + var width = img.width, height = img.height; + var fillColor = this.current.fillColor; + var isPatternFill = this.current.patternFill; + var glyph = this.processingType3; + if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) { + if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) { + glyph.compiled = compileType3Glyph({ + data: img.data, + width: width, + height: height + }); + } else { + glyph.compiled = null; + } + } + if (glyph && glyph.compiled) { + glyph.compiled(ctx); + return; + } + var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); + var maskCtx = maskCanvas.context; + maskCtx.save(); + putBinaryImageMask(maskCtx, img); + maskCtx.globalCompositeOperation = 'source-in'; + maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; + maskCtx.fillRect(0, 0, width, height); + maskCtx.restore(); + this.paintInlineImageXObject(maskCanvas.canvas); + }, + paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) { + var width = imgData.width; + var height = imgData.height; + var fillColor = this.current.fillColor; + var isPatternFill = this.current.patternFill; + var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); + var maskCtx = maskCanvas.context; + maskCtx.save(); + putBinaryImageMask(maskCtx, imgData); + maskCtx.globalCompositeOperation = 'source-in'; + maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; + maskCtx.fillRect(0, 0, width, height); + maskCtx.restore(); + var ctx = this.ctx; + for (var i = 0, ii = positions.length; i < ii; i += 2) { + ctx.save(); + ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]); + ctx.scale(1, -1); + ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); + ctx.restore(); + } + }, + paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) { + var ctx = this.ctx; + var fillColor = this.current.fillColor; + var isPatternFill = this.current.patternFill; + for (var i = 0, ii = images.length; i < ii; i++) { + var image = images[i]; + var width = image.width, height = image.height; + var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); + var maskCtx = maskCanvas.context; + maskCtx.save(); + putBinaryImageMask(maskCtx, image); + maskCtx.globalCompositeOperation = 'source-in'; + maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; + maskCtx.fillRect(0, 0, width, height); + maskCtx.restore(); + ctx.save(); + ctx.transform.apply(ctx, image.transform); + ctx.scale(1, -1); + ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); + ctx.restore(); + } + }, + paintImageXObject: function CanvasGraphics_paintImageXObject(objId) { + var imgData = this.objs.get(objId); + if (!imgData) { + warn('Dependent image isn\'t ready yet'); + return; + } + this.paintInlineImageXObject(imgData); + }, + paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) { + var imgData = this.objs.get(objId); + if (!imgData) { + warn('Dependent image isn\'t ready yet'); + return; + } + var width = imgData.width; + var height = imgData.height; + var map = []; + for (var i = 0, ii = positions.length; i < ii; i += 2) { + map.push({ + transform: [ + scaleX, + 0, + 0, + scaleY, + positions[i], + positions[i + 1] + ], + x: 0, + y: 0, + w: width, + h: height + }); + } + this.paintInlineImageXObjectGroup(imgData, map); + }, + paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) { + var width = imgData.width; + var height = imgData.height; + var ctx = this.ctx; + this.save(); + ctx.scale(1 / width, -1 / height); + var currentTransform = ctx.mozCurrentTransformInverse; + var a = currentTransform[0], b = currentTransform[1]; + var widthScale = Math.max(Math.sqrt(a * a + b * b), 1); + var c = currentTransform[2], d = currentTransform[3]; + var heightScale = Math.max(Math.sqrt(c * c + d * d), 1); + var imgToPaint, tmpCanvas; + if (imgData instanceof HTMLElement || !imgData.data) { + imgToPaint = imgData; + } else { + tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', width, height); + var tmpCtx = tmpCanvas.context; + putBinaryImageData(tmpCtx, imgData); + imgToPaint = tmpCanvas.canvas; + } + var paintWidth = width, paintHeight = height; + var tmpCanvasId = 'prescale1'; + while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) { + var newWidth = paintWidth, newHeight = paintHeight; + if (widthScale > 2 && paintWidth > 1) { + newWidth = Math.ceil(paintWidth / 2); + widthScale /= paintWidth / newWidth; + } + if (heightScale > 2 && paintHeight > 1) { + newHeight = Math.ceil(paintHeight / 2); + heightScale /= paintHeight / newHeight; + } + tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight); + tmpCtx = tmpCanvas.context; + tmpCtx.clearRect(0, 0, newWidth, newHeight); + tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight); + imgToPaint = tmpCanvas.canvas; + paintWidth = newWidth; + paintHeight = newHeight; + tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1'; + } + ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height); + if (this.imageLayer) { + var position = this.getCanvasPosition(0, -height); + this.imageLayer.appendImage({ + imgData: imgData, + left: position[0], + top: position[1], + width: width / currentTransform[0], + height: height / currentTransform[3] + }); + } + this.restore(); + }, + paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) { + var ctx = this.ctx; + var w = imgData.width; + var h = imgData.height; + var tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', w, h); + var tmpCtx = tmpCanvas.context; + putBinaryImageData(tmpCtx, imgData); + for (var i = 0, ii = map.length; i < ii; i++) { + var entry = map[i]; + ctx.save(); + ctx.transform.apply(ctx, entry.transform); + ctx.scale(1, -1); + ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1); + if (this.imageLayer) { + var position = this.getCanvasPosition(entry.x, entry.y); + this.imageLayer.appendImage({ + imgData: imgData, + left: position[0], + top: position[1], + width: w, + height: h + }); + } + ctx.restore(); + } + }, + paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() { + this.ctx.fillRect(0, 0, 1, 1); + }, + paintXObject: function CanvasGraphics_paintXObject() { + warn('Unsupported \'paintXObject\' command.'); + }, + markPoint: function CanvasGraphics_markPoint(tag) { + }, + markPointProps: function CanvasGraphics_markPointProps(tag, properties) { + }, + beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) { + }, + beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) { + }, + endMarkedContent: function CanvasGraphics_endMarkedContent() { + }, + beginCompat: function CanvasGraphics_beginCompat() { + }, + endCompat: function CanvasGraphics_endCompat() { + }, + consumePath: function CanvasGraphics_consumePath() { + var ctx = this.ctx; + if (this.pendingClip) { + if (this.pendingClip === EO_CLIP) { + ctx.clip('evenodd'); + } else { + ctx.clip(); + } + this.pendingClip = null; + } + ctx.beginPath(); + }, + getSinglePixelWidth: function CanvasGraphics_getSinglePixelWidth(scale) { + if (this.cachedGetSinglePixelWidth === null) { + this.ctx.save(); + var inverse = this.ctx.mozCurrentTransformInverse; + this.ctx.restore(); + this.cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3])); + } + return this.cachedGetSinglePixelWidth; + }, + getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) { + var transform = this.ctx.mozCurrentTransform; + return [ + transform[0] * x + transform[2] * y + transform[4], + transform[1] * x + transform[3] * y + transform[5] + ]; + } + }; + for (var op in OPS) { + CanvasGraphics.prototype[OPS[op]] = CanvasGraphics.prototype[op]; + } + return CanvasGraphics; +}(); +exports.CanvasGraphics = CanvasGraphics; + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var assert = sharedUtil.assert; +var bytesToString = sharedUtil.bytesToString; +var string32 = sharedUtil.string32; +var shadow = sharedUtil.shadow; +var warn = sharedUtil.warn; +function FontLoader(docId) { + this.docId = docId; + this.styleElement = null; + this.nativeFontFaces = []; + this.loadTestFontId = 0; + this.loadingContext = { + requests: [], + nextRequestId: 0 + }; +} +FontLoader.prototype = { + insertRule: function fontLoaderInsertRule(rule) { + var styleElement = this.styleElement; + if (!styleElement) { + styleElement = this.styleElement = document.createElement('style'); + styleElement.id = 'PDFJS_FONT_STYLE_TAG_' + this.docId; + document.documentElement.getElementsByTagName('head')[0].appendChild(styleElement); + } + var styleSheet = styleElement.sheet; + styleSheet.insertRule(rule, styleSheet.cssRules.length); + }, + clear: function fontLoaderClear() { + if (this.styleElement) { + this.styleElement.remove(); + this.styleElement = null; + } + this.nativeFontFaces.forEach(function (nativeFontFace) { + document.fonts.delete(nativeFontFace); + }); + this.nativeFontFaces.length = 0; + } +}; +var getLoadTestFont = function () { + return atob('T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQ' + 'AABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwA' + 'AAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbm' + 'FtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAA' + 'AADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6A' + 'ABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAA' + 'MQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAA' + 'AAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAA' + 'AAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQ' + 'AAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMA' + 'AQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAA' + 'EAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAA' + 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAA' + 'AAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgc' + 'A/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF' + 'hYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQA' + 'AAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAg' + 'ABAAAAAAAAAAAD6AAAAAAAAA=='); +}; +Object.defineProperty(FontLoader.prototype, 'loadTestFont', { + get: function () { + return shadow(this, 'loadTestFont', getLoadTestFont()); + }, + configurable: true +}); +FontLoader.prototype.addNativeFontFace = function fontLoader_addNativeFontFace(nativeFontFace) { + this.nativeFontFaces.push(nativeFontFace); + document.fonts.add(nativeFontFace); +}; +FontLoader.prototype.bind = function fontLoaderBind(fonts, callback) { + var rules = []; + var fontsToLoad = []; + var fontLoadPromises = []; + var getNativeFontPromise = function (nativeFontFace) { + return nativeFontFace.loaded.catch(function (e) { + warn('Failed to load font "' + nativeFontFace.family + '": ' + e); + }); + }; + var isFontLoadingAPISupported = FontLoader.isFontLoadingAPISupported && !FontLoader.isSyncFontLoadingSupported; + for (var i = 0, ii = fonts.length; i < ii; i++) { + var font = fonts[i]; + if (font.attached || font.loading === false) { + continue; + } + font.attached = true; + if (isFontLoadingAPISupported) { + var nativeFontFace = font.createNativeFontFace(); + if (nativeFontFace) { + this.addNativeFontFace(nativeFontFace); + fontLoadPromises.push(getNativeFontPromise(nativeFontFace)); + } + } else { + var rule = font.createFontFaceRule(); + if (rule) { + this.insertRule(rule); + rules.push(rule); + fontsToLoad.push(font); + } + } + } + var request = this.queueLoadingCallback(callback); + if (isFontLoadingAPISupported) { + Promise.all(fontLoadPromises).then(function () { + request.complete(); + }); + } else if (rules.length > 0 && !FontLoader.isSyncFontLoadingSupported) { + this.prepareFontLoadEvent(rules, fontsToLoad, request); + } else { + request.complete(); + } +}; +FontLoader.prototype.queueLoadingCallback = function FontLoader_queueLoadingCallback(callback) { + function LoadLoader_completeRequest() { + assert(!request.end, 'completeRequest() cannot be called twice'); + request.end = Date.now(); + while (context.requests.length > 0 && context.requests[0].end) { + var otherRequest = context.requests.shift(); + setTimeout(otherRequest.callback, 0); + } + } + var context = this.loadingContext; + var requestId = 'pdfjs-font-loading-' + context.nextRequestId++; + var request = { + id: requestId, + complete: LoadLoader_completeRequest, + callback: callback, + started: Date.now() + }; + context.requests.push(request); + return request; +}; +FontLoader.prototype.prepareFontLoadEvent = function fontLoaderPrepareFontLoadEvent(rules, fonts, request) { + function int32(data, offset) { + return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff; + } + function spliceString(s, offset, remove, insert) { + var chunk1 = s.substr(0, offset); + var chunk2 = s.substr(offset + remove); + return chunk1 + insert + chunk2; + } + var i, ii; + var canvas = document.createElement('canvas'); + canvas.width = 1; + canvas.height = 1; + var ctx = canvas.getContext('2d'); + var called = 0; + function isFontReady(name, callback) { + called++; + if (called > 30) { + warn('Load test font never loaded.'); + callback(); + return; + } + ctx.font = '30px ' + name; + ctx.fillText('.', 0, 20); + var imageData = ctx.getImageData(0, 0, 1, 1); + if (imageData.data[3] > 0) { + callback(); + return; + } + setTimeout(isFontReady.bind(null, name, callback)); + } + var loadTestFontId = 'lt' + Date.now() + this.loadTestFontId++; + var data = this.loadTestFont; + var COMMENT_OFFSET = 976; + data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId); + var CFF_CHECKSUM_OFFSET = 16; + var XXXX_VALUE = 0x58585858; + var checksum = int32(data, CFF_CHECKSUM_OFFSET); + for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) { + checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0; + } + if (i < loadTestFontId.length) { + checksum = checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i) | 0; + } + data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, string32(checksum)); + var url = 'url(data:font/opentype;base64,' + btoa(data) + ');'; + var rule = '@font-face { font-family:"' + loadTestFontId + '";src:' + url + '}'; + this.insertRule(rule); + var names = []; + for (i = 0, ii = fonts.length; i < ii; i++) { + names.push(fonts[i].loadedName); + } + names.push(loadTestFontId); + var div = document.createElement('div'); + div.setAttribute('style', 'visibility: hidden;' + 'width: 10px; height: 10px;' + 'position: absolute; top: 0px; left: 0px;'); + for (i = 0, ii = names.length; i < ii; ++i) { + var span = document.createElement('span'); + span.textContent = 'Hi'; + span.style.fontFamily = names[i]; + div.appendChild(span); + } + document.body.appendChild(div); + isFontReady(loadTestFontId, function () { + document.body.removeChild(div); + request.complete(); + }); +}; +FontLoader.isFontLoadingAPISupported = typeof document !== 'undefined' && !!document.fonts; +var isSyncFontLoadingSupported = function isSyncFontLoadingSupported() { + if (typeof navigator === 'undefined') { + return true; + } + var supported = false; + var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); + if (m && m[1] >= 14) { + supported = true; + } + return supported; +}; +Object.defineProperty(FontLoader, 'isSyncFontLoadingSupported', { + get: function () { + return shadow(FontLoader, 'isSyncFontLoadingSupported', isSyncFontLoadingSupported()); + }, + enumerable: true, + configurable: true +}); +var IsEvalSupportedCached = { + get value() { + return shadow(this, 'value', sharedUtil.isEvalSupported()); + } +}; +var FontFaceObject = function FontFaceObjectClosure() { + function FontFaceObject(translatedData, options) { + this.compiledGlyphs = Object.create(null); + for (var i in translatedData) { + this[i] = translatedData[i]; + } + this.options = options; + } + FontFaceObject.prototype = { + createNativeFontFace: function FontFaceObject_createNativeFontFace() { + if (!this.data) { + return null; + } + if (this.options.disableFontFace) { + this.disableFontFace = true; + return null; + } + var nativeFontFace = new FontFace(this.loadedName, this.data, {}); + if (this.options.fontRegistry) { + this.options.fontRegistry.registerFont(this); + } + return nativeFontFace; + }, + createFontFaceRule: function FontFaceObject_createFontFaceRule() { + if (!this.data) { + return null; + } + if (this.options.disableFontFace) { + this.disableFontFace = true; + return null; + } + var data = bytesToString(new Uint8Array(this.data)); + var fontName = this.loadedName; + var url = 'url(data:' + this.mimetype + ';base64,' + btoa(data) + ');'; + var rule = '@font-face { font-family:"' + fontName + '";src:' + url + '}'; + if (this.options.fontRegistry) { + this.options.fontRegistry.registerFont(this, url); + } + return rule; + }, + getPathGenerator: function FontFaceObject_getPathGenerator(objs, character) { + if (!(character in this.compiledGlyphs)) { + var cmds = objs.get(this.loadedName + '_path_' + character); + var current, i, len; + if (this.options.isEvalSupported && IsEvalSupportedCached.value) { + var args, js = ''; + for (i = 0, len = cmds.length; i < len; i++) { + current = cmds[i]; + if (current.args !== undefined) { + args = current.args.join(','); + } else { + args = ''; + } + js += 'c.' + current.cmd + '(' + args + ');\n'; + } + this.compiledGlyphs[character] = new Function('c', 'size', js); + } else { + this.compiledGlyphs[character] = function (c, size) { + for (i = 0, len = cmds.length; i < len; i++) { + current = cmds[i]; + if (current.cmd === 'scale') { + current.args = [ + size, + -size + ]; + } + c[current.cmd].apply(c, current.args); + } + }; + } + } + return this.compiledGlyphs[character]; + } + }; + return FontFaceObject; +}(); +exports.FontFaceObject = FontFaceObject; +exports.FontLoader = FontLoader; + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var displayWebGL = __w_pdfjs_require__(8); +var Util = sharedUtil.Util; +var info = sharedUtil.info; +var isArray = sharedUtil.isArray; +var error = sharedUtil.error; +var WebGLUtils = displayWebGL.WebGLUtils; +var ShadingIRs = {}; +ShadingIRs.RadialAxial = { + fromIR: function RadialAxial_fromIR(raw) { + var type = raw[1]; + var colorStops = raw[2]; + var p0 = raw[3]; + var p1 = raw[4]; + var r0 = raw[5]; + var r1 = raw[6]; + return { + type: 'Pattern', + getPattern: function RadialAxial_getPattern(ctx) { + var grad; + if (type === 'axial') { + grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]); + } else if (type === 'radial') { + grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1); + } + for (var i = 0, ii = colorStops.length; i < ii; ++i) { + var c = colorStops[i]; + grad.addColorStop(c[0], c[1]); + } + return grad; + } + }; + } +}; +var createMeshCanvas = function createMeshCanvasClosure() { + function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { + var coords = context.coords, colors = context.colors; + var bytes = data.data, rowSize = data.width * 4; + var tmp; + if (coords[p1 + 1] > coords[p2 + 1]) { + tmp = p1; + p1 = p2; + p2 = tmp; + tmp = c1; + c1 = c2; + c2 = tmp; + } + if (coords[p2 + 1] > coords[p3 + 1]) { + tmp = p2; + p2 = p3; + p3 = tmp; + tmp = c2; + c2 = c3; + c3 = tmp; + } + if (coords[p1 + 1] > coords[p2 + 1]) { + tmp = p1; + p1 = p2; + p2 = tmp; + tmp = c1; + c1 = c2; + c2 = tmp; + } + var x1 = (coords[p1] + context.offsetX) * context.scaleX; + var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY; + var x2 = (coords[p2] + context.offsetX) * context.scaleX; + var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY; + var x3 = (coords[p3] + context.offsetX) * context.scaleX; + var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY; + if (y1 >= y3) { + return; + } + var c1r = colors[c1], c1g = colors[c1 + 1], c1b = colors[c1 + 2]; + var c2r = colors[c2], c2g = colors[c2 + 1], c2b = colors[c2 + 2]; + var c3r = colors[c3], c3g = colors[c3 + 1], c3b = colors[c3 + 2]; + var minY = Math.round(y1), maxY = Math.round(y3); + var xa, car, cag, cab; + var xb, cbr, cbg, cbb; + var k; + for (var y = minY; y <= maxY; y++) { + if (y < y2) { + k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2); + xa = x1 - (x1 - x2) * k; + car = c1r - (c1r - c2r) * k; + cag = c1g - (c1g - c2g) * k; + cab = c1b - (c1b - c2b) * k; + } else { + k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3); + xa = x2 - (x2 - x3) * k; + car = c2r - (c2r - c3r) * k; + cag = c2g - (c2g - c3g) * k; + cab = c2b - (c2b - c3b) * k; + } + k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3); + xb = x1 - (x1 - x3) * k; + cbr = c1r - (c1r - c3r) * k; + cbg = c1g - (c1g - c3g) * k; + cbb = c1b - (c1b - c3b) * k; + var x1_ = Math.round(Math.min(xa, xb)); + var x2_ = Math.round(Math.max(xa, xb)); + var j = rowSize * y + x1_ * 4; + for (var x = x1_; x <= x2_; x++) { + k = (xa - x) / (xa - xb); + k = k < 0 ? 0 : k > 1 ? 1 : k; + bytes[j++] = car - (car - cbr) * k | 0; + bytes[j++] = cag - (cag - cbg) * k | 0; + bytes[j++] = cab - (cab - cbb) * k | 0; + bytes[j++] = 255; + } + } + } + function drawFigure(data, figure, context) { + var ps = figure.coords; + var cs = figure.colors; + var i, ii; + switch (figure.type) { + case 'lattice': + var verticesPerRow = figure.verticesPerRow; + var rows = Math.floor(ps.length / verticesPerRow) - 1; + var cols = verticesPerRow - 1; + for (i = 0; i < rows; i++) { + var q = i * verticesPerRow; + for (var j = 0; j < cols; j++, q++) { + drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]); + drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]); + } + } + break; + case 'triangles': + for (i = 0, ii = ps.length; i < ii; i += 3) { + drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]); + } + break; + default: + error('illigal figure'); + break; + } + } + function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases) { + var EXPECTED_SCALE = 1.1; + var MAX_PATTERN_SIZE = 3000; + var BORDER_SIZE = 2; + var offsetX = Math.floor(bounds[0]); + var offsetY = Math.floor(bounds[1]); + var boundsWidth = Math.ceil(bounds[2]) - offsetX; + var boundsHeight = Math.ceil(bounds[3]) - offsetY; + var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); + var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); + var scaleX = boundsWidth / width; + var scaleY = boundsHeight / height; + var context = { + coords: coords, + colors: colors, + offsetX: -offsetX, + offsetY: -offsetY, + scaleX: 1 / scaleX, + scaleY: 1 / scaleY + }; + var paddedWidth = width + BORDER_SIZE * 2; + var paddedHeight = height + BORDER_SIZE * 2; + var canvas, tmpCanvas, i, ii; + if (WebGLUtils.isEnabled) { + canvas = WebGLUtils.drawFigures(width, height, backgroundColor, figures, context); + tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false); + tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE); + canvas = tmpCanvas.canvas; + } else { + tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false); + var tmpCtx = tmpCanvas.context; + var data = tmpCtx.createImageData(width, height); + if (backgroundColor) { + var bytes = data.data; + for (i = 0, ii = bytes.length; i < ii; i += 4) { + bytes[i] = backgroundColor[0]; + bytes[i + 1] = backgroundColor[1]; + bytes[i + 2] = backgroundColor[2]; + bytes[i + 3] = 255; + } + } + for (i = 0; i < figures.length; i++) { + drawFigure(data, figures[i], context); + } + tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE); + canvas = tmpCanvas.canvas; + } + return { + canvas: canvas, + offsetX: offsetX - BORDER_SIZE * scaleX, + offsetY: offsetY - BORDER_SIZE * scaleY, + scaleX: scaleX, + scaleY: scaleY + }; + } + return createMeshCanvas; +}(); +ShadingIRs.Mesh = { + fromIR: function Mesh_fromIR(raw) { + var coords = raw[2]; + var colors = raw[3]; + var figures = raw[4]; + var bounds = raw[5]; + var matrix = raw[6]; + var background = raw[8]; + return { + type: 'Pattern', + getPattern: function Mesh_getPattern(ctx, owner, shadingFill) { + var scale; + if (shadingFill) { + scale = Util.singularValueDecompose2dScale(ctx.mozCurrentTransform); + } else { + scale = Util.singularValueDecompose2dScale(owner.baseTransform); + if (matrix) { + var matrixScale = Util.singularValueDecompose2dScale(matrix); + scale = [ + scale[0] * matrixScale[0], + scale[1] * matrixScale[1] + ]; + } + } + var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases); + if (!shadingFill) { + ctx.setTransform.apply(ctx, owner.baseTransform); + if (matrix) { + ctx.transform.apply(ctx, matrix); + } + } + ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); + ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY); + return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat'); + } + }; + } +}; +ShadingIRs.Dummy = { + fromIR: function Dummy_fromIR() { + return { + type: 'Pattern', + getPattern: function Dummy_fromIR_getPattern() { + return 'hotpink'; + } + }; + } +}; +function getShadingPatternFromIR(raw) { + var shadingIR = ShadingIRs[raw[0]]; + if (!shadingIR) { + error('Unknown IR type: ' + raw[0]); + } + return shadingIR.fromIR(raw); +} +var TilingPattern = function TilingPatternClosure() { + var PaintType = { + COLORED: 1, + UNCOLORED: 2 + }; + var MAX_PATTERN_SIZE = 3000; + function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) { + this.operatorList = IR[2]; + this.matrix = IR[3] || [ + 1, + 0, + 0, + 1, + 0, + 0 + ]; + this.bbox = IR[4]; + this.xstep = IR[5]; + this.ystep = IR[6]; + this.paintType = IR[7]; + this.tilingType = IR[8]; + this.color = color; + this.canvasGraphicsFactory = canvasGraphicsFactory; + this.baseTransform = baseTransform; + this.type = 'Pattern'; + this.ctx = ctx; + } + TilingPattern.prototype = { + createPatternCanvas: function TilinPattern_createPatternCanvas(owner) { + var operatorList = this.operatorList; + var bbox = this.bbox; + var xstep = this.xstep; + var ystep = this.ystep; + var paintType = this.paintType; + var tilingType = this.tilingType; + var color = this.color; + var canvasGraphicsFactory = this.canvasGraphicsFactory; + info('TilingType: ' + tilingType); + var x0 = bbox[0], y0 = bbox[1], x1 = bbox[2], y1 = bbox[3]; + var topLeft = [ + x0, + y0 + ]; + var botRight = [ + x0 + xstep, + y0 + ystep + ]; + var width = botRight[0] - topLeft[0]; + var height = botRight[1] - topLeft[1]; + var matrixScale = Util.singularValueDecompose2dScale(this.matrix); + var curMatrixScale = Util.singularValueDecompose2dScale(this.baseTransform); + var combinedScale = [ + matrixScale[0] * curMatrixScale[0], + matrixScale[1] * curMatrixScale[1] + ]; + width = Math.min(Math.ceil(Math.abs(width * combinedScale[0])), MAX_PATTERN_SIZE); + height = Math.min(Math.ceil(Math.abs(height * combinedScale[1])), MAX_PATTERN_SIZE); + var tmpCanvas = owner.cachedCanvases.getCanvas('pattern', width, height, true); + var tmpCtx = tmpCanvas.context; + var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx); + graphics.groupLevel = owner.groupLevel; + this.setFillAndStrokeStyleToContext(tmpCtx, paintType, color); + this.setScale(width, height, xstep, ystep); + this.transformToScale(graphics); + var tmpTranslate = [ + 1, + 0, + 0, + 1, + -topLeft[0], + -topLeft[1] + ]; + graphics.transform.apply(graphics, tmpTranslate); + this.clipBbox(graphics, bbox, x0, y0, x1, y1); + graphics.executeOperatorList(operatorList); + return tmpCanvas.canvas; + }, + setScale: function TilingPattern_setScale(width, height, xstep, ystep) { + this.scale = [ + width / xstep, + height / ystep + ]; + }, + transformToScale: function TilingPattern_transformToScale(graphics) { + var scale = this.scale; + var tmpScale = [ + scale[0], + 0, + 0, + scale[1], + 0, + 0 + ]; + graphics.transform.apply(graphics, tmpScale); + }, + scaleToContext: function TilingPattern_scaleToContext() { + var scale = this.scale; + this.ctx.scale(1 / scale[0], 1 / scale[1]); + }, + clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) { + if (bbox && isArray(bbox) && bbox.length === 4) { + var bboxWidth = x1 - x0; + var bboxHeight = y1 - y0; + graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight); + graphics.clip(); + graphics.endPath(); + } + }, + setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(context, paintType, color) { + switch (paintType) { + case PaintType.COLORED: + var ctx = this.ctx; + context.fillStyle = ctx.fillStyle; + context.strokeStyle = ctx.strokeStyle; + break; + case PaintType.UNCOLORED: + var cssColor = Util.makeCssRgb(color[0], color[1], color[2]); + context.fillStyle = cssColor; + context.strokeStyle = cssColor; + break; + default: + error('Unsupported paint type: ' + paintType); + } + }, + getPattern: function TilingPattern_getPattern(ctx, owner) { + var temporaryPatternCanvas = this.createPatternCanvas(owner); + ctx = this.ctx; + ctx.setTransform.apply(ctx, this.baseTransform); + ctx.transform.apply(ctx, this.matrix); + this.scaleToContext(); + return ctx.createPattern(temporaryPatternCanvas, 'repeat'); + } + }; + return TilingPattern; +}(); +exports.getShadingPatternFromIR = getShadingPatternFromIR; +exports.TilingPattern = TilingPattern; + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) { +if (typeof PDFJS === 'undefined' || !PDFJS.compatibilityChecked) { + var globalScope = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : this; + var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || ''; + var isAndroid = /Android/.test(userAgent); + var isAndroidPre3 = /Android\s[0-2][^\d]/.test(userAgent); + var isAndroidPre5 = /Android\s[0-4][^\d]/.test(userAgent); + var isChrome = userAgent.indexOf('Chrom') >= 0; + var isChromeWithRangeBug = /Chrome\/(39|40)\./.test(userAgent); + var isIOSChrome = userAgent.indexOf('CriOS') >= 0; + var isIE = userAgent.indexOf('Trident') >= 0; + var isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent); + var isOpera = userAgent.indexOf('Opera') >= 0; + var isSafari = /Safari\//.test(userAgent) && !/(Chrome\/|Android\s)/.test(userAgent); + var hasDOM = typeof window === 'object' && typeof document === 'object'; + if (typeof PDFJS === 'undefined') { + globalScope.PDFJS = {}; + } + PDFJS.compatibilityChecked = true; + (function checkTypedArrayCompatibility() { + if (typeof Uint8Array !== 'undefined') { + if (typeof Uint8Array.prototype.subarray === 'undefined') { + Uint8Array.prototype.subarray = function subarray(start, end) { + return new Uint8Array(this.slice(start, end)); + }; + Float32Array.prototype.subarray = function subarray(start, end) { + return new Float32Array(this.slice(start, end)); + }; + } + if (typeof Float64Array === 'undefined') { + globalScope.Float64Array = Float32Array; + } + return; + } + function subarray(start, end) { + return new TypedArray(this.slice(start, end)); + } + function setArrayOffset(array, offset) { + if (arguments.length < 2) { + offset = 0; + } + for (var i = 0, n = array.length; i < n; ++i, ++offset) { + this[offset] = array[i] & 0xFF; + } + } + function TypedArray(arg1) { + var result, i, n; + if (typeof arg1 === 'number') { + result = []; + for (i = 0; i < arg1; ++i) { + result[i] = 0; + } + } else if ('slice' in arg1) { + result = arg1.slice(0); + } else { + result = []; + for (i = 0, n = arg1.length; i < n; ++i) { + result[i] = arg1[i]; + } + } + result.subarray = subarray; + result.buffer = result; + result.byteLength = result.length; + result.set = setArrayOffset; + if (typeof arg1 === 'object' && arg1.buffer) { + result.buffer = arg1.buffer; + } + return result; + } + globalScope.Uint8Array = TypedArray; + globalScope.Int8Array = TypedArray; + globalScope.Uint32Array = TypedArray; + globalScope.Int32Array = TypedArray; + globalScope.Uint16Array = TypedArray; + globalScope.Float32Array = TypedArray; + globalScope.Float64Array = TypedArray; + }()); + (function normalizeURLObject() { + if (!globalScope.URL) { + globalScope.URL = globalScope.webkitURL; + } + }()); + (function checkObjectDefinePropertyCompatibility() { + if (typeof Object.defineProperty !== 'undefined') { + var definePropertyPossible = true; + try { + if (hasDOM) { + Object.defineProperty(new Image(), 'id', { value: 'test' }); + } + var Test = function Test() { + }; + Test.prototype = { + get id() { + } + }; + Object.defineProperty(new Test(), 'id', { + value: '', + configurable: true, + enumerable: true, + writable: false + }); + } catch (e) { + definePropertyPossible = false; + } + if (definePropertyPossible) { + return; + } + } + Object.defineProperty = function objectDefineProperty(obj, name, def) { + delete obj[name]; + if ('get' in def) { + obj.__defineGetter__(name, def['get']); + } + if ('set' in def) { + obj.__defineSetter__(name, def['set']); + } + if ('value' in def) { + obj.__defineSetter__(name, function objectDefinePropertySetter(value) { + this.__defineGetter__(name, function objectDefinePropertyGetter() { + return value; + }); + return value; + }); + obj[name] = def.value; + } + }; + }()); + (function checkXMLHttpRequestResponseCompatibility() { + if (typeof XMLHttpRequest === 'undefined') { + return; + } + var xhrPrototype = XMLHttpRequest.prototype; + var xhr = new XMLHttpRequest(); + if (!('overrideMimeType' in xhr)) { + Object.defineProperty(xhrPrototype, 'overrideMimeType', { + value: function xmlHttpRequestOverrideMimeType(mimeType) { + } + }); + } + if ('responseType' in xhr) { + return; + } + Object.defineProperty(xhrPrototype, 'responseType', { + get: function xmlHttpRequestGetResponseType() { + return this._responseType || 'text'; + }, + set: function xmlHttpRequestSetResponseType(value) { + if (value === 'text' || value === 'arraybuffer') { + this._responseType = value; + if (value === 'arraybuffer' && typeof this.overrideMimeType === 'function') { + this.overrideMimeType('text/plain; charset=x-user-defined'); + } + } + } + }); + if (typeof VBArray !== 'undefined') { + Object.defineProperty(xhrPrototype, 'response', { + get: function xmlHttpRequestResponseGet() { + if (this.responseType === 'arraybuffer') { + return new Uint8Array(new VBArray(this.responseBody).toArray()); + } + return this.responseText; + } + }); + return; + } + Object.defineProperty(xhrPrototype, 'response', { + get: function xmlHttpRequestResponseGet() { + if (this.responseType !== 'arraybuffer') { + return this.responseText; + } + var text = this.responseText; + var i, n = text.length; + var result = new Uint8Array(n); + for (i = 0; i < n; ++i) { + result[i] = text.charCodeAt(i) & 0xFF; + } + return result.buffer; + } + }); + }()); + (function checkWindowBtoaCompatibility() { + if ('btoa' in globalScope) { + return; + } + var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + globalScope.btoa = function (chars) { + var buffer = ''; + var i, n; + for (i = 0, n = chars.length; i < n; i += 3) { + var b1 = chars.charCodeAt(i) & 0xFF; + var b2 = chars.charCodeAt(i + 1) & 0xFF; + var b3 = chars.charCodeAt(i + 2) & 0xFF; + var d1 = b1 >> 2, d2 = (b1 & 3) << 4 | b2 >> 4; + var d3 = i + 1 < n ? (b2 & 0xF) << 2 | b3 >> 6 : 64; + var d4 = i + 2 < n ? b3 & 0x3F : 64; + buffer += digits.charAt(d1) + digits.charAt(d2) + digits.charAt(d3) + digits.charAt(d4); + } + return buffer; + }; + }()); + (function checkWindowAtobCompatibility() { + if ('atob' in globalScope) { + return; + } + var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + globalScope.atob = function (input) { + input = input.replace(/=+$/, ''); + if (input.length % 4 === 1) { + throw new Error('bad atob input'); + } + for (var bc = 0, bs, buffer, idx = 0, output = ''; buffer = input.charAt(idx++); ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer, bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0) { + buffer = digits.indexOf(buffer); + } + return output; + }; + }()); + (function checkFunctionPrototypeBindCompatibility() { + if (typeof Function.prototype.bind !== 'undefined') { + return; + } + Function.prototype.bind = function functionPrototypeBind(obj) { + var fn = this, headArgs = Array.prototype.slice.call(arguments, 1); + var bound = function functionPrototypeBindBound() { + var args = headArgs.concat(Array.prototype.slice.call(arguments)); + return fn.apply(obj, args); + }; + return bound; + }; + }()); + (function checkDatasetProperty() { + if (!hasDOM) { + return; + } + var div = document.createElement('div'); + if ('dataset' in div) { + return; + } + Object.defineProperty(HTMLElement.prototype, 'dataset', { + get: function () { + if (this._dataset) { + return this._dataset; + } + var dataset = {}; + for (var j = 0, jj = this.attributes.length; j < jj; j++) { + var attribute = this.attributes[j]; + if (attribute.name.substring(0, 5) !== 'data-') { + continue; + } + var key = attribute.name.substring(5).replace(/\-([a-z])/g, function (all, ch) { + return ch.toUpperCase(); + }); + dataset[key] = attribute.value; + } + Object.defineProperty(this, '_dataset', { + value: dataset, + writable: false, + enumerable: false + }); + return dataset; + }, + enumerable: true + }); + }()); + (function checkClassListProperty() { + function changeList(element, itemName, add, remove) { + var s = element.className || ''; + var list = s.split(/\s+/g); + if (list[0] === '') { + list.shift(); + } + var index = list.indexOf(itemName); + if (index < 0 && add) { + list.push(itemName); + } + if (index >= 0 && remove) { + list.splice(index, 1); + } + element.className = list.join(' '); + return index >= 0; + } + if (!hasDOM) { + return; + } + var div = document.createElement('div'); + if ('classList' in div) { + return; + } + var classListPrototype = { + add: function (name) { + changeList(this.element, name, true, false); + }, + contains: function (name) { + return changeList(this.element, name, false, false); + }, + remove: function (name) { + changeList(this.element, name, false, true); + }, + toggle: function (name) { + changeList(this.element, name, true, true); + } + }; + Object.defineProperty(HTMLElement.prototype, 'classList', { + get: function () { + if (this._classList) { + return this._classList; + } + var classList = Object.create(classListPrototype, { + element: { + value: this, + writable: false, + enumerable: true + } + }); + Object.defineProperty(this, '_classList', { + value: classList, + writable: false, + enumerable: false + }); + return classList; + }, + enumerable: true + }); + }()); + (function checkWorkerConsoleCompatibility() { + if (typeof importScripts === 'undefined' || 'console' in globalScope) { + return; + } + var consoleTimer = {}; + var workerConsole = { + log: function log() { + var args = Array.prototype.slice.call(arguments); + globalScope.postMessage({ + targetName: 'main', + action: 'console_log', + data: args + }); + }, + error: function error() { + var args = Array.prototype.slice.call(arguments); + globalScope.postMessage({ + targetName: 'main', + action: 'console_error', + data: args + }); + }, + time: function time(name) { + consoleTimer[name] = Date.now(); + }, + timeEnd: function timeEnd(name) { + var time = consoleTimer[name]; + if (!time) { + throw new Error('Unknown timer name ' + name); + } + this.log('Timer:', name, Date.now() - time); + } + }; + globalScope.console = workerConsole; + }()); + (function checkConsoleCompatibility() { + if (!hasDOM) { + return; + } + if (!('console' in window)) { + window.console = { + log: function () { + }, + error: function () { + }, + warn: function () { + } + }; + return; + } + if (!('bind' in console.log)) { + console.log = function (fn) { + return function (msg) { + return fn(msg); + }; + }(console.log); + console.error = function (fn) { + return function (msg) { + return fn(msg); + }; + }(console.error); + console.warn = function (fn) { + return function (msg) { + return fn(msg); + }; + }(console.warn); + return; + } + }()); + (function checkOnClickCompatibility() { + function ignoreIfTargetDisabled(event) { + if (isDisabled(event.target)) { + event.stopPropagation(); + } + } + function isDisabled(node) { + return node.disabled || node.parentNode && isDisabled(node.parentNode); + } + if (isOpera) { + document.addEventListener('click', ignoreIfTargetDisabled, true); + } + }()); + (function checkOnBlobSupport() { + if (isIE || isIOSChrome) { + PDFJS.disableCreateObjectURL = true; + } + }()); + (function checkNavigatorLanguage() { + if (typeof navigator === 'undefined') { + return; + } + if ('language' in navigator) { + return; + } + PDFJS.locale = navigator.userLanguage || 'en-US'; + }()); + (function checkRangeRequests() { + if (isSafari || isAndroidPre3 || isChromeWithRangeBug || isIOS) { + PDFJS.disableRange = true; + PDFJS.disableStream = true; + } + }()); + (function checkHistoryManipulation() { + if (!hasDOM) { + return; + } + if (!history.pushState || isAndroidPre3) { + PDFJS.disableHistory = true; + } + }()); + (function checkSetPresenceInImageData() { + if (!hasDOM) { + return; + } + if (window.CanvasPixelArray) { + if (typeof window.CanvasPixelArray.prototype.set !== 'function') { + window.CanvasPixelArray.prototype.set = function (arr) { + for (var i = 0, ii = this.length; i < ii; i++) { + this[i] = arr[i]; + } + }; + } + } else { + var polyfill = false, versionMatch; + if (isChrome) { + versionMatch = userAgent.match(/Chrom(e|ium)\/([0-9]+)\./); + polyfill = versionMatch && parseInt(versionMatch[2]) < 21; + } else if (isAndroid) { + polyfill = isAndroidPre5; + } else if (isSafari) { + versionMatch = userAgent.match(/Version\/([0-9]+)\.([0-9]+)\.([0-9]+) Safari\//); + polyfill = versionMatch && parseInt(versionMatch[1]) < 6; + } + if (polyfill) { + var contextPrototype = window.CanvasRenderingContext2D.prototype; + var createImageData = contextPrototype.createImageData; + contextPrototype.createImageData = function (w, h) { + var imageData = createImageData.call(this, w, h); + imageData.data.set = function (arr) { + for (var i = 0, ii = this.length; i < ii; i++) { + this[i] = arr[i]; + } + }; + return imageData; + }; + contextPrototype = null; + } + } + }()); + (function checkRequestAnimationFrame() { + function fakeRequestAnimationFrame(callback) { + window.setTimeout(callback, 20); + } + if (!hasDOM) { + return; + } + if (isIOS) { + window.requestAnimationFrame = fakeRequestAnimationFrame; + return; + } + if ('requestAnimationFrame' in window) { + return; + } + window.requestAnimationFrame = window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || fakeRequestAnimationFrame; + }()); + (function checkCanvasSizeLimitation() { + if (isIOS || isAndroid) { + PDFJS.maxCanvasPixels = 5242880; + } + }()); + (function checkFullscreenSupport() { + if (!hasDOM) { + return; + } + if (isIE && window.parent !== window) { + PDFJS.disableFullscreen = true; + } + }()); + (function checkCurrentScript() { + if (!hasDOM) { + return; + } + if ('currentScript' in document) { + return; + } + Object.defineProperty(document, 'currentScript', { + get: function () { + var scripts = document.getElementsByTagName('script'); + return scripts[scripts.length - 1]; + }, + enumerable: true, + configurable: true + }); + }()); + (function checkInputTypeNumberAssign() { + if (!hasDOM) { + return; + } + var el = document.createElement('input'); + try { + el.type = 'number'; + } catch (ex) { + var inputProto = el.constructor.prototype; + var typeProperty = Object.getOwnPropertyDescriptor(inputProto, 'type'); + Object.defineProperty(inputProto, 'type', { + get: function () { + return typeProperty.get.call(this); + }, + set: function (value) { + typeProperty.set.call(this, value === 'number' ? 'text' : value); + }, + enumerable: true, + configurable: true + }); + } + }()); + (function checkDocumentReadyState() { + if (!hasDOM) { + return; + } + if (!document.attachEvent) { + return; + } + var documentProto = document.constructor.prototype; + var readyStateProto = Object.getOwnPropertyDescriptor(documentProto, 'readyState'); + Object.defineProperty(documentProto, 'readyState', { + get: function () { + var value = readyStateProto.get.call(this); + return value === 'interactive' ? 'loading' : value; + }, + set: function (value) { + readyStateProto.set.call(this, value); + }, + enumerable: true, + configurable: true + }); + }()); + (function checkChildNodeRemove() { + if (!hasDOM) { + return; + } + if (typeof Element.prototype.remove !== 'undefined') { + return; + } + Element.prototype.remove = function () { + if (this.parentNode) { + this.parentNode.removeChild(this); + } + }; + }()); + (function checkPromise() { + if (globalScope.Promise) { + if (typeof globalScope.Promise.all !== 'function') { + globalScope.Promise.all = function (iterable) { + var count = 0, results = [], resolve, reject; + var promise = new globalScope.Promise(function (resolve_, reject_) { + resolve = resolve_; + reject = reject_; + }); + iterable.forEach(function (p, i) { + count++; + p.then(function (result) { + results[i] = result; + count--; + if (count === 0) { + resolve(results); + } + }, reject); + }); + if (count === 0) { + resolve(results); + } + return promise; + }; + } + if (typeof globalScope.Promise.resolve !== 'function') { + globalScope.Promise.resolve = function (value) { + return new globalScope.Promise(function (resolve) { + resolve(value); + }); + }; + } + if (typeof globalScope.Promise.reject !== 'function') { + globalScope.Promise.reject = function (reason) { + return new globalScope.Promise(function (resolve, reject) { + reject(reason); + }); + }; + } + if (typeof globalScope.Promise.prototype.catch !== 'function') { + globalScope.Promise.prototype.catch = function (onReject) { + return globalScope.Promise.prototype.then(undefined, onReject); + }; + } + return; + } + var STATUS_PENDING = 0; + var STATUS_RESOLVED = 1; + var STATUS_REJECTED = 2; + var REJECTION_TIMEOUT = 500; + var HandlerManager = { + handlers: [], + running: false, + unhandledRejections: [], + pendingRejectionCheck: false, + scheduleHandlers: function scheduleHandlers(promise) { + if (promise._status === STATUS_PENDING) { + return; + } + this.handlers = this.handlers.concat(promise._handlers); + promise._handlers = []; + if (this.running) { + return; + } + this.running = true; + setTimeout(this.runHandlers.bind(this), 0); + }, + runHandlers: function runHandlers() { + var RUN_TIMEOUT = 1; + var timeoutAt = Date.now() + RUN_TIMEOUT; + while (this.handlers.length > 0) { + var handler = this.handlers.shift(); + var nextStatus = handler.thisPromise._status; + var nextValue = handler.thisPromise._value; + try { + if (nextStatus === STATUS_RESOLVED) { + if (typeof handler.onResolve === 'function') { + nextValue = handler.onResolve(nextValue); + } + } else if (typeof handler.onReject === 'function') { + nextValue = handler.onReject(nextValue); + nextStatus = STATUS_RESOLVED; + if (handler.thisPromise._unhandledRejection) { + this.removeUnhandeledRejection(handler.thisPromise); + } + } + } catch (ex) { + nextStatus = STATUS_REJECTED; + nextValue = ex; + } + handler.nextPromise._updateStatus(nextStatus, nextValue); + if (Date.now() >= timeoutAt) { + break; + } + } + if (this.handlers.length > 0) { + setTimeout(this.runHandlers.bind(this), 0); + return; + } + this.running = false; + }, + addUnhandledRejection: function addUnhandledRejection(promise) { + this.unhandledRejections.push({ + promise: promise, + time: Date.now() + }); + this.scheduleRejectionCheck(); + }, + removeUnhandeledRejection: function removeUnhandeledRejection(promise) { + promise._unhandledRejection = false; + for (var i = 0; i < this.unhandledRejections.length; i++) { + if (this.unhandledRejections[i].promise === promise) { + this.unhandledRejections.splice(i); + i--; + } + } + }, + scheduleRejectionCheck: function scheduleRejectionCheck() { + if (this.pendingRejectionCheck) { + return; + } + this.pendingRejectionCheck = true; + setTimeout(function rejectionCheck() { + this.pendingRejectionCheck = false; + var now = Date.now(); + for (var i = 0; i < this.unhandledRejections.length; i++) { + if (now - this.unhandledRejections[i].time > REJECTION_TIMEOUT) { + var unhandled = this.unhandledRejections[i].promise._value; + var msg = 'Unhandled rejection: ' + unhandled; + if (unhandled.stack) { + msg += '\n' + unhandled.stack; + } + try { + throw new Error(msg); + } catch (_) { + console.warn(msg); + } + this.unhandledRejections.splice(i); + i--; + } + } + if (this.unhandledRejections.length) { + this.scheduleRejectionCheck(); + } + }.bind(this), REJECTION_TIMEOUT); + } + }; + var Promise = function Promise(resolver) { + this._status = STATUS_PENDING; + this._handlers = []; + try { + resolver.call(this, this._resolve.bind(this), this._reject.bind(this)); + } catch (e) { + this._reject(e); + } + }; + Promise.all = function Promise_all(promises) { + var resolveAll, rejectAll; + var deferred = new Promise(function (resolve, reject) { + resolveAll = resolve; + rejectAll = reject; + }); + var unresolved = promises.length; + var results = []; + if (unresolved === 0) { + resolveAll(results); + return deferred; + } + function reject(reason) { + if (deferred._status === STATUS_REJECTED) { + return; + } + results = []; + rejectAll(reason); + } + for (var i = 0, ii = promises.length; i < ii; ++i) { + var promise = promises[i]; + var resolve = function (i) { + return function (value) { + if (deferred._status === STATUS_REJECTED) { + return; + } + results[i] = value; + unresolved--; + if (unresolved === 0) { + resolveAll(results); + } + }; + }(i); + if (Promise.isPromise(promise)) { + promise.then(resolve, reject); + } else { + resolve(promise); + } + } + return deferred; + }; + Promise.isPromise = function Promise_isPromise(value) { + return value && typeof value.then === 'function'; + }; + Promise.resolve = function Promise_resolve(value) { + return new Promise(function (resolve) { + resolve(value); + }); + }; + Promise.reject = function Promise_reject(reason) { + return new Promise(function (resolve, reject) { + reject(reason); + }); + }; + Promise.prototype = { + _status: null, + _value: null, + _handlers: null, + _unhandledRejection: null, + _updateStatus: function Promise__updateStatus(status, value) { + if (this._status === STATUS_RESOLVED || this._status === STATUS_REJECTED) { + return; + } + if (status === STATUS_RESOLVED && Promise.isPromise(value)) { + value.then(this._updateStatus.bind(this, STATUS_RESOLVED), this._updateStatus.bind(this, STATUS_REJECTED)); + return; + } + this._status = status; + this._value = value; + if (status === STATUS_REJECTED && this._handlers.length === 0) { + this._unhandledRejection = true; + HandlerManager.addUnhandledRejection(this); + } + HandlerManager.scheduleHandlers(this); + }, + _resolve: function Promise_resolve(value) { + this._updateStatus(STATUS_RESOLVED, value); + }, + _reject: function Promise_reject(reason) { + this._updateStatus(STATUS_REJECTED, reason); + }, + then: function Promise_then(onResolve, onReject) { + var nextPromise = new Promise(function (resolve, reject) { + this.resolve = resolve; + this.reject = reject; + }); + this._handlers.push({ + thisPromise: this, + onResolve: onResolve, + onReject: onReject, + nextPromise: nextPromise + }); + HandlerManager.scheduleHandlers(this); + return nextPromise; + }, + catch: function Promise_catch(onReject) { + return this.then(undefined, onReject); + } + }; + globalScope.Promise = Promise; + }()); + (function checkWeakMap() { + if (globalScope.WeakMap) { + return; + } + var id = 0; + function WeakMap() { + this.id = '$weakmap' + id++; + } + WeakMap.prototype = { + has: function (obj) { + return !!Object.getOwnPropertyDescriptor(obj, this.id); + }, + get: function (obj, defaultValue) { + return this.has(obj) ? obj[this.id] : defaultValue; + }, + set: function (obj, value) { + Object.defineProperty(obj, this.id, { + value: value, + enumerable: false, + configurable: true + }); + }, + delete: function (obj) { + delete obj[this.id]; + } + }; + globalScope.WeakMap = WeakMap; + }()); + (function checkURLConstructor() { + var hasWorkingUrl = false; + try { + if (typeof URL === 'function' && typeof URL.prototype === 'object' && 'origin' in URL.prototype) { + var u = new URL('b', 'http://a'); + u.pathname = 'c%20d'; + hasWorkingUrl = u.href === 'http://a/c%20d'; + } + } catch (e) { + } + if (hasWorkingUrl) { + return; + } + var relative = Object.create(null); + relative['ftp'] = 21; + relative['file'] = 0; + relative['gopher'] = 70; + relative['http'] = 80; + relative['https'] = 443; + relative['ws'] = 80; + relative['wss'] = 443; + var relativePathDotMapping = Object.create(null); + relativePathDotMapping['%2e'] = '.'; + relativePathDotMapping['.%2e'] = '..'; + relativePathDotMapping['%2e.'] = '..'; + relativePathDotMapping['%2e%2e'] = '..'; + function isRelativeScheme(scheme) { + return relative[scheme] !== undefined; + } + function invalid() { + clear.call(this); + this._isInvalid = true; + } + function IDNAToASCII(h) { + if (h === '') { + invalid.call(this); + } + return h.toLowerCase(); + } + function percentEscape(c) { + var unicode = c.charCodeAt(0); + if (unicode > 0x20 && unicode < 0x7F && [ + 0x22, + 0x23, + 0x3C, + 0x3E, + 0x3F, + 0x60 + ].indexOf(unicode) === -1) { + return c; + } + return encodeURIComponent(c); + } + function percentEscapeQuery(c) { + var unicode = c.charCodeAt(0); + if (unicode > 0x20 && unicode < 0x7F && [ + 0x22, + 0x23, + 0x3C, + 0x3E, + 0x60 + ].indexOf(unicode) === -1) { + return c; + } + return encodeURIComponent(c); + } + var EOF, ALPHA = /[a-zA-Z]/, ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/; + function parse(input, stateOverride, base) { + function err(message) { + errors.push(message); + } + var state = stateOverride || 'scheme start', cursor = 0, buffer = '', seenAt = false, seenBracket = false, errors = []; + loop: + while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) { + var c = input[cursor]; + switch (state) { + case 'scheme start': + if (c && ALPHA.test(c)) { + buffer += c.toLowerCase(); + state = 'scheme'; + } else if (!stateOverride) { + buffer = ''; + state = 'no scheme'; + continue; + } else { + err('Invalid scheme.'); + break loop; + } + break; + case 'scheme': + if (c && ALPHANUMERIC.test(c)) { + buffer += c.toLowerCase(); + } else if (c === ':') { + this._scheme = buffer; + buffer = ''; + if (stateOverride) { + break loop; + } + if (isRelativeScheme(this._scheme)) { + this._isRelative = true; + } + if (this._scheme === 'file') { + state = 'relative'; + } else if (this._isRelative && base && base._scheme === this._scheme) { + state = 'relative or authority'; + } else if (this._isRelative) { + state = 'authority first slash'; + } else { + state = 'scheme data'; + } + } else if (!stateOverride) { + buffer = ''; + cursor = 0; + state = 'no scheme'; + continue; + } else if (EOF === c) { + break loop; + } else { + err('Code point not allowed in scheme: ' + c); + break loop; + } + break; + case 'scheme data': + if (c === '?') { + this._query = '?'; + state = 'query'; + } else if (c === '#') { + this._fragment = '#'; + state = 'fragment'; + } else { + if (EOF !== c && '\t' !== c && '\n' !== c && '\r' !== c) { + this._schemeData += percentEscape(c); + } + } + break; + case 'no scheme': + if (!base || !isRelativeScheme(base._scheme)) { + err('Missing scheme.'); + invalid.call(this); + } else { + state = 'relative'; + continue; + } + break; + case 'relative or authority': + if (c === '/' && input[cursor + 1] === '/') { + state = 'authority ignore slashes'; + } else { + err('Expected /, got: ' + c); + state = 'relative'; + continue; + } + break; + case 'relative': + this._isRelative = true; + if ('file' !== this._scheme) { + this._scheme = base._scheme; + } + if (EOF === c) { + this._host = base._host; + this._port = base._port; + this._path = base._path.slice(); + this._query = base._query; + this._username = base._username; + this._password = base._password; + break loop; + } else if (c === '/' || c === '\\') { + if (c === '\\') { + err('\\ is an invalid code point.'); + } + state = 'relative slash'; + } else if (c === '?') { + this._host = base._host; + this._port = base._port; + this._path = base._path.slice(); + this._query = '?'; + this._username = base._username; + this._password = base._password; + state = 'query'; + } else if (c === '#') { + this._host = base._host; + this._port = base._port; + this._path = base._path.slice(); + this._query = base._query; + this._fragment = '#'; + this._username = base._username; + this._password = base._password; + state = 'fragment'; + } else { + var nextC = input[cursor + 1]; + var nextNextC = input[cursor + 2]; + if ('file' !== this._scheme || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || EOF !== nextNextC && '/' !== nextNextC && '\\' !== nextNextC && '?' !== nextNextC && '#' !== nextNextC) { + this._host = base._host; + this._port = base._port; + this._username = base._username; + this._password = base._password; + this._path = base._path.slice(); + this._path.pop(); + } + state = 'relative path'; + continue; + } + break; + case 'relative slash': + if (c === '/' || c === '\\') { + if (c === '\\') { + err('\\ is an invalid code point.'); + } + if (this._scheme === 'file') { + state = 'file host'; + } else { + state = 'authority ignore slashes'; + } + } else { + if ('file' !== this._scheme) { + this._host = base._host; + this._port = base._port; + this._username = base._username; + this._password = base._password; + } + state = 'relative path'; + continue; + } + break; + case 'authority first slash': + if (c === '/') { + state = 'authority second slash'; + } else { + err('Expected \'/\', got: ' + c); + state = 'authority ignore slashes'; + continue; + } + break; + case 'authority second slash': + state = 'authority ignore slashes'; + if ('/' !== c) { + err('Expected \'/\', got: ' + c); + continue; + } + break; + case 'authority ignore slashes': + if ('/' !== c && '\\' !== c) { + state = 'authority'; + continue; + } else { + err('Expected authority, got: ' + c); + } + break; + case 'authority': + if (c === '@') { + if (seenAt) { + err('@ already seen.'); + buffer += '%40'; + } + seenAt = true; + for (var i = 0; i < buffer.length; i++) { + var cp = buffer[i]; + if (cp === '\t' || cp === '\n' || cp === '\r') { + err('Invalid whitespace in authority.'); + continue; + } + if (cp === ':' && this._password === null) { + this._password = ''; + continue; + } + var tempC = percentEscape(cp); + if (null !== this._password) { + this._password += tempC; + } else { + this._username += tempC; + } + } + buffer = ''; + } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { + cursor -= buffer.length; + buffer = ''; + state = 'host'; + continue; + } else { + buffer += c; + } + break; + case 'file host': + if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { + if (buffer.length === 2 && ALPHA.test(buffer[0]) && (buffer[1] === ':' || buffer[1] === '|')) { + state = 'relative path'; + } else if (buffer.length === 0) { + state = 'relative path start'; + } else { + this._host = IDNAToASCII.call(this, buffer); + buffer = ''; + state = 'relative path start'; + } + continue; + } else if (c === '\t' || c === '\n' || c === '\r') { + err('Invalid whitespace in file host.'); + } else { + buffer += c; + } + break; + case 'host': + case 'hostname': + if (c === ':' && !seenBracket) { + this._host = IDNAToASCII.call(this, buffer); + buffer = ''; + state = 'port'; + if (stateOverride === 'hostname') { + break loop; + } + } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { + this._host = IDNAToASCII.call(this, buffer); + buffer = ''; + state = 'relative path start'; + if (stateOverride) { + break loop; + } + continue; + } else if ('\t' !== c && '\n' !== c && '\r' !== c) { + if (c === '[') { + seenBracket = true; + } else if (c === ']') { + seenBracket = false; + } + buffer += c; + } else { + err('Invalid code point in host/hostname: ' + c); + } + break; + case 'port': + if (/[0-9]/.test(c)) { + buffer += c; + } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#' || stateOverride) { + if ('' !== buffer) { + var temp = parseInt(buffer, 10); + if (temp !== relative[this._scheme]) { + this._port = temp + ''; + } + buffer = ''; + } + if (stateOverride) { + break loop; + } + state = 'relative path start'; + continue; + } else if (c === '\t' || c === '\n' || c === '\r') { + err('Invalid code point in port: ' + c); + } else { + invalid.call(this); + } + break; + case 'relative path start': + if (c === '\\') { + err('\'\\\' not allowed in path.'); + } + state = 'relative path'; + if ('/' !== c && '\\' !== c) { + continue; + } + break; + case 'relative path': + if (c === EOF || c === '/' || c === '\\' || !stateOverride && (c === '?' || c === '#')) { + if (c === '\\') { + err('\\ not allowed in relative path.'); + } + var tmp; + if (tmp = relativePathDotMapping[buffer.toLowerCase()]) { + buffer = tmp; + } + if (buffer === '..') { + this._path.pop(); + if ('/' !== c && '\\' !== c) { + this._path.push(''); + } + } else if (buffer === '.' && '/' !== c && '\\' !== c) { + this._path.push(''); + } else if ('.' !== buffer) { + if (this._scheme === 'file' && this._path.length === 0 && buffer.length === 2 && ALPHA.test(buffer[0]) && buffer[1] === '|') { + buffer = buffer[0] + ':'; + } + this._path.push(buffer); + } + buffer = ''; + if (c === '?') { + this._query = '?'; + state = 'query'; + } else if (c === '#') { + this._fragment = '#'; + state = 'fragment'; + } + } else if ('\t' !== c && '\n' !== c && '\r' !== c) { + buffer += percentEscape(c); + } + break; + case 'query': + if (!stateOverride && c === '#') { + this._fragment = '#'; + state = 'fragment'; + } else if (EOF !== c && '\t' !== c && '\n' !== c && '\r' !== c) { + this._query += percentEscapeQuery(c); + } + break; + case 'fragment': + if (EOF !== c && '\t' !== c && '\n' !== c && '\r' !== c) { + this._fragment += c; + } + break; + } + cursor++; + } + } + function clear() { + this._scheme = ''; + this._schemeData = ''; + this._username = ''; + this._password = null; + this._host = ''; + this._port = ''; + this._path = []; + this._query = ''; + this._fragment = ''; + this._isInvalid = false; + this._isRelative = false; + } + function JURL(url, base) { + if (base !== undefined && !(base instanceof JURL)) { + base = new JURL(String(base)); + } + this._url = url; + clear.call(this); + var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, ''); + parse.call(this, input, null, base); + } + JURL.prototype = { + toString: function () { + return this.href; + }, + get href() { + if (this._isInvalid) { + return this._url; + } + var authority = ''; + if ('' !== this._username || null !== this._password) { + authority = this._username + (null !== this._password ? ':' + this._password : '') + '@'; + } + return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment; + }, + set href(href) { + clear.call(this); + parse.call(this, href); + }, + get protocol() { + return this._scheme + ':'; + }, + set protocol(protocol) { + if (this._isInvalid) { + return; + } + parse.call(this, protocol + ':', 'scheme start'); + }, + get host() { + return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host; + }, + set host(host) { + if (this._isInvalid || !this._isRelative) { + return; + } + parse.call(this, host, 'host'); + }, + get hostname() { + return this._host; + }, + set hostname(hostname) { + if (this._isInvalid || !this._isRelative) { + return; + } + parse.call(this, hostname, 'hostname'); + }, + get port() { + return this._port; + }, + set port(port) { + if (this._isInvalid || !this._isRelative) { + return; + } + parse.call(this, port, 'port'); + }, + get pathname() { + return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData; + }, + set pathname(pathname) { + if (this._isInvalid || !this._isRelative) { + return; + } + this._path = []; + parse.call(this, pathname, 'relative path start'); + }, + get search() { + return this._isInvalid || !this._query || this._query === '?' ? '' : this._query; + }, + set search(search) { + if (this._isInvalid || !this._isRelative) { + return; + } + this._query = '?'; + if (search[0] === '?') { + search = search.slice(1); + } + parse.call(this, search, 'query'); + }, + get hash() { + return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment; + }, + set hash(hash) { + if (this._isInvalid) { + return; + } + this._fragment = '#'; + if (hash[0] === '#') { + hash = hash.slice(1); + } + parse.call(this, hash, 'fragment'); + }, + get origin() { + var host; + if (this._isInvalid || !this._scheme) { + return ''; + } + switch (this._scheme) { + case 'data': + case 'file': + case 'javascript': + case 'mailto': + return 'null'; + } + host = this.host; + if (!host) { + return ''; + } + return this._scheme + '://' + host; + } + }; + var OriginalURL = globalScope.URL; + if (OriginalURL) { + JURL.createObjectURL = function (blob) { + return OriginalURL.createObjectURL.apply(OriginalURL, arguments); + }; + JURL.revokeObjectURL = function (url) { + OriginalURL.revokeObjectURL(url); + }; + } + globalScope.URL = JURL; + }()); +} +/* WEBPACK VAR INJECTION */}.call(exports, __w_pdfjs_require__(6))) + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var pdfjsVersion = '1.7.365'; +var pdfjsBuild = '2b171889'; +var pdfjsSharedUtil = __w_pdfjs_require__(0); +var pdfjsDisplayGlobal = __w_pdfjs_require__(9); +var pdfjsDisplayAPI = __w_pdfjs_require__(3); +var pdfjsDisplayTextLayer = __w_pdfjs_require__(5); +var pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(2); +var pdfjsDisplayDOMUtils = __w_pdfjs_require__(1); +var pdfjsDisplaySVG = __w_pdfjs_require__(4); +exports.PDFJS = pdfjsDisplayGlobal.PDFJS; +exports.build = pdfjsDisplayAPI.build; +exports.version = pdfjsDisplayAPI.version; +exports.getDocument = pdfjsDisplayAPI.getDocument; +exports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport; +exports.PDFWorker = pdfjsDisplayAPI.PDFWorker; +exports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer; +exports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer; +exports.CustomStyle = pdfjsDisplayDOMUtils.CustomStyle; +exports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability; +exports.PasswordResponses = pdfjsSharedUtil.PasswordResponses; +exports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException; +exports.MissingPDFException = pdfjsSharedUtil.MissingPDFException; +exports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics; +exports.UnexpectedResponseException = pdfjsSharedUtil.UnexpectedResponseException; +exports.OPS = pdfjsSharedUtil.OPS; +exports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES; +exports.isValidUrl = pdfjsDisplayDOMUtils.isValidUrl; +exports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl; +exports.createObjectURL = pdfjsSharedUtil.createObjectURL; +exports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters; +exports.shadow = pdfjsSharedUtil.shadow; +exports.createBlob = pdfjsSharedUtil.createBlob; +exports.getFilenameFromUrl = pdfjsDisplayDOMUtils.getFilenameFromUrl; +exports.addLinkAttributes = pdfjsDisplayDOMUtils.addLinkAttributes; + +/***/ }) +/******/ ]); +}); \ No newline at end of file diff --git a/build/pdf.worker.js b/build/pdf.worker.js new file mode 100644 index 00000000..77aa51f3 --- /dev/null +++ b/build/pdf.worker.js @@ -0,0 +1,51088 @@ +/* Copyright 2017 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define("pdfjs-dist/build/pdf.worker", [], factory); + else if(typeof exports === 'object') + exports["pdfjs-dist/build/pdf.worker"] = factory(); + else + root["pdfjs-dist/build/pdf.worker"] = root.pdfjsDistBuildPdfWorker = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __w_pdfjs_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; +/******/ +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __w_pdfjs_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __w_pdfjs_require__.c = installedModules; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __w_pdfjs_require__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __w_pdfjs_require__.d = function(exports, name, getter) { +/******/ if(!__w_pdfjs_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __w_pdfjs_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __w_pdfjs_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __w_pdfjs_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __w_pdfjs_require__(__w_pdfjs_require__.s = 37); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) { +var compatibility = __w_pdfjs_require__(36); +var globalScope = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : this; +var FONT_IDENTITY_MATRIX = [ + 0.001, + 0, + 0, + 0.001, + 0, + 0 +]; +var TextRenderingMode = { + FILL: 0, + STROKE: 1, + FILL_STROKE: 2, + INVISIBLE: 3, + FILL_ADD_TO_PATH: 4, + STROKE_ADD_TO_PATH: 5, + FILL_STROKE_ADD_TO_PATH: 6, + ADD_TO_PATH: 7, + FILL_STROKE_MASK: 3, + ADD_TO_PATH_FLAG: 4 +}; +var ImageKind = { + GRAYSCALE_1BPP: 1, + RGB_24BPP: 2, + RGBA_32BPP: 3 +}; +var AnnotationType = { + TEXT: 1, + LINK: 2, + FREETEXT: 3, + LINE: 4, + SQUARE: 5, + CIRCLE: 6, + POLYGON: 7, + POLYLINE: 8, + HIGHLIGHT: 9, + UNDERLINE: 10, + SQUIGGLY: 11, + STRIKEOUT: 12, + STAMP: 13, + CARET: 14, + INK: 15, + POPUP: 16, + FILEATTACHMENT: 17, + SOUND: 18, + MOVIE: 19, + WIDGET: 20, + SCREEN: 21, + PRINTERMARK: 22, + TRAPNET: 23, + WATERMARK: 24, + THREED: 25, + REDACT: 26 +}; +var AnnotationFlag = { + INVISIBLE: 0x01, + HIDDEN: 0x02, + PRINT: 0x04, + NOZOOM: 0x08, + NOROTATE: 0x10, + NOVIEW: 0x20, + READONLY: 0x40, + LOCKED: 0x80, + TOGGLENOVIEW: 0x100, + LOCKEDCONTENTS: 0x200 +}; +var AnnotationFieldFlag = { + READONLY: 0x0000001, + REQUIRED: 0x0000002, + NOEXPORT: 0x0000004, + MULTILINE: 0x0001000, + PASSWORD: 0x0002000, + NOTOGGLETOOFF: 0x0004000, + RADIO: 0x0008000, + PUSHBUTTON: 0x0010000, + COMBO: 0x0020000, + EDIT: 0x0040000, + SORT: 0x0080000, + FILESELECT: 0x0100000, + MULTISELECT: 0x0200000, + DONOTSPELLCHECK: 0x0400000, + DONOTSCROLL: 0x0800000, + COMB: 0x1000000, + RICHTEXT: 0x2000000, + RADIOSINUNISON: 0x2000000, + COMMITONSELCHANGE: 0x4000000 +}; +var AnnotationBorderStyleType = { + SOLID: 1, + DASHED: 2, + BEVELED: 3, + INSET: 4, + UNDERLINE: 5 +}; +var StreamType = { + UNKNOWN: 0, + FLATE: 1, + LZW: 2, + DCT: 3, + JPX: 4, + JBIG: 5, + A85: 6, + AHX: 7, + CCF: 8, + RL: 9 +}; +var FontType = { + UNKNOWN: 0, + TYPE1: 1, + TYPE1C: 2, + CIDFONTTYPE0: 3, + CIDFONTTYPE0C: 4, + TRUETYPE: 5, + CIDFONTTYPE2: 6, + TYPE3: 7, + OPENTYPE: 8, + TYPE0: 9, + MMTYPE1: 10 +}; +var VERBOSITY_LEVELS = { + errors: 0, + warnings: 1, + infos: 5 +}; +var CMapCompressionType = { + NONE: 0, + BINARY: 1, + STREAM: 2 +}; +var OPS = { + dependency: 1, + setLineWidth: 2, + setLineCap: 3, + setLineJoin: 4, + setMiterLimit: 5, + setDash: 6, + setRenderingIntent: 7, + setFlatness: 8, + setGState: 9, + save: 10, + restore: 11, + transform: 12, + moveTo: 13, + lineTo: 14, + curveTo: 15, + curveTo2: 16, + curveTo3: 17, + closePath: 18, + rectangle: 19, + stroke: 20, + closeStroke: 21, + fill: 22, + eoFill: 23, + fillStroke: 24, + eoFillStroke: 25, + closeFillStroke: 26, + closeEOFillStroke: 27, + endPath: 28, + clip: 29, + eoClip: 30, + beginText: 31, + endText: 32, + setCharSpacing: 33, + setWordSpacing: 34, + setHScale: 35, + setLeading: 36, + setFont: 37, + setTextRenderingMode: 38, + setTextRise: 39, + moveText: 40, + setLeadingMoveText: 41, + setTextMatrix: 42, + nextLine: 43, + showText: 44, + showSpacedText: 45, + nextLineShowText: 46, + nextLineSetSpacingShowText: 47, + setCharWidth: 48, + setCharWidthAndBounds: 49, + setStrokeColorSpace: 50, + setFillColorSpace: 51, + setStrokeColor: 52, + setStrokeColorN: 53, + setFillColor: 54, + setFillColorN: 55, + setStrokeGray: 56, + setFillGray: 57, + setStrokeRGBColor: 58, + setFillRGBColor: 59, + setStrokeCMYKColor: 60, + setFillCMYKColor: 61, + shadingFill: 62, + beginInlineImage: 63, + beginImageData: 64, + endInlineImage: 65, + paintXObject: 66, + markPoint: 67, + markPointProps: 68, + beginMarkedContent: 69, + beginMarkedContentProps: 70, + endMarkedContent: 71, + beginCompat: 72, + endCompat: 73, + paintFormXObjectBegin: 74, + paintFormXObjectEnd: 75, + beginGroup: 76, + endGroup: 77, + beginAnnotations: 78, + endAnnotations: 79, + beginAnnotation: 80, + endAnnotation: 81, + paintJpegXObject: 82, + paintImageMaskXObject: 83, + paintImageMaskXObjectGroup: 84, + paintImageXObject: 85, + paintInlineImageXObject: 86, + paintInlineImageXObjectGroup: 87, + paintImageXObjectRepeat: 88, + paintImageMaskXObjectRepeat: 89, + paintSolidColorImageMask: 90, + constructPath: 91 +}; +var verbosity = VERBOSITY_LEVELS.warnings; +function setVerbosityLevel(level) { + verbosity = level; +} +function getVerbosityLevel() { + return verbosity; +} +function info(msg) { + if (verbosity >= VERBOSITY_LEVELS.infos) { + console.log('Info: ' + msg); + } +} +function warn(msg) { + if (verbosity >= VERBOSITY_LEVELS.warnings) { + console.log('Warning: ' + msg); + } +} +function deprecated(details) { + console.log('Deprecated API usage: ' + details); +} +function error(msg) { + if (verbosity >= VERBOSITY_LEVELS.errors) { + console.log('Error: ' + msg); + console.log(backtrace()); + } + throw new Error(msg); +} +function backtrace() { + try { + throw new Error(); + } catch (e) { + return e.stack ? e.stack.split('\n').slice(2).join('\n') : ''; + } +} +function assert(cond, msg) { + if (!cond) { + error(msg); + } +} +var UNSUPPORTED_FEATURES = { + unknown: 'unknown', + forms: 'forms', + javaScript: 'javaScript', + smask: 'smask', + shadingPattern: 'shadingPattern', + font: 'font' +}; +function isSameOrigin(baseUrl, otherUrl) { + try { + var base = new URL(baseUrl); + if (!base.origin || base.origin === 'null') { + return false; + } + } catch (e) { + return false; + } + var other = new URL(otherUrl, base); + return base.origin === other.origin; +} +function isValidProtocol(url) { + if (!url) { + return false; + } + switch (url.protocol) { + case 'http:': + case 'https:': + case 'ftp:': + case 'mailto:': + case 'tel:': + return true; + default: + return false; + } +} +function createValidAbsoluteUrl(url, baseUrl) { + if (!url) { + return null; + } + try { + var absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url); + if (isValidProtocol(absoluteUrl)) { + return absoluteUrl; + } + } catch (ex) { + } + return null; +} +function shadow(obj, prop, value) { + Object.defineProperty(obj, prop, { + value: value, + enumerable: true, + configurable: true, + writable: false + }); + return value; +} +function getLookupTableFactory(initializer) { + var lookup; + return function () { + if (initializer) { + lookup = Object.create(null); + initializer(lookup); + initializer = null; + } + return lookup; + }; +} +var PasswordResponses = { + NEED_PASSWORD: 1, + INCORRECT_PASSWORD: 2 +}; +var PasswordException = function PasswordExceptionClosure() { + function PasswordException(msg, code) { + this.name = 'PasswordException'; + this.message = msg; + this.code = code; + } + PasswordException.prototype = new Error(); + PasswordException.constructor = PasswordException; + return PasswordException; +}(); +var UnknownErrorException = function UnknownErrorExceptionClosure() { + function UnknownErrorException(msg, details) { + this.name = 'UnknownErrorException'; + this.message = msg; + this.details = details; + } + UnknownErrorException.prototype = new Error(); + UnknownErrorException.constructor = UnknownErrorException; + return UnknownErrorException; +}(); +var InvalidPDFException = function InvalidPDFExceptionClosure() { + function InvalidPDFException(msg) { + this.name = 'InvalidPDFException'; + this.message = msg; + } + InvalidPDFException.prototype = new Error(); + InvalidPDFException.constructor = InvalidPDFException; + return InvalidPDFException; +}(); +var MissingPDFException = function MissingPDFExceptionClosure() { + function MissingPDFException(msg) { + this.name = 'MissingPDFException'; + this.message = msg; + } + MissingPDFException.prototype = new Error(); + MissingPDFException.constructor = MissingPDFException; + return MissingPDFException; +}(); +var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() { + function UnexpectedResponseException(msg, status) { + this.name = 'UnexpectedResponseException'; + this.message = msg; + this.status = status; + } + UnexpectedResponseException.prototype = new Error(); + UnexpectedResponseException.constructor = UnexpectedResponseException; + return UnexpectedResponseException; +}(); +var NotImplementedException = function NotImplementedExceptionClosure() { + function NotImplementedException(msg) { + this.message = msg; + } + NotImplementedException.prototype = new Error(); + NotImplementedException.prototype.name = 'NotImplementedException'; + NotImplementedException.constructor = NotImplementedException; + return NotImplementedException; +}(); +var MissingDataException = function MissingDataExceptionClosure() { + function MissingDataException(begin, end) { + this.begin = begin; + this.end = end; + this.message = 'Missing data [' + begin + ', ' + end + ')'; + } + MissingDataException.prototype = new Error(); + MissingDataException.prototype.name = 'MissingDataException'; + MissingDataException.constructor = MissingDataException; + return MissingDataException; +}(); +var XRefParseException = function XRefParseExceptionClosure() { + function XRefParseException(msg) { + this.message = msg; + } + XRefParseException.prototype = new Error(); + XRefParseException.prototype.name = 'XRefParseException'; + XRefParseException.constructor = XRefParseException; + return XRefParseException; +}(); +var NullCharactersRegExp = /\x00/g; +function removeNullCharacters(str) { + if (typeof str !== 'string') { + warn('The argument for removeNullCharacters must be a string.'); + return str; + } + return str.replace(NullCharactersRegExp, ''); +} +function bytesToString(bytes) { + assert(bytes !== null && typeof bytes === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString'); + var length = bytes.length; + var MAX_ARGUMENT_COUNT = 8192; + if (length < MAX_ARGUMENT_COUNT) { + return String.fromCharCode.apply(null, bytes); + } + var strBuf = []; + for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) { + var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); + var chunk = bytes.subarray(i, chunkEnd); + strBuf.push(String.fromCharCode.apply(null, chunk)); + } + return strBuf.join(''); +} +function stringToBytes(str) { + assert(typeof str === 'string', 'Invalid argument for stringToBytes'); + var length = str.length; + var bytes = new Uint8Array(length); + for (var i = 0; i < length; ++i) { + bytes[i] = str.charCodeAt(i) & 0xFF; + } + return bytes; +} +function arrayByteLength(arr) { + if (arr.length !== undefined) { + return arr.length; + } + assert(arr.byteLength !== undefined); + return arr.byteLength; +} +function arraysToBytes(arr) { + if (arr.length === 1 && arr[0] instanceof Uint8Array) { + return arr[0]; + } + var resultLength = 0; + var i, ii = arr.length; + var item, itemLength; + for (i = 0; i < ii; i++) { + item = arr[i]; + itemLength = arrayByteLength(item); + resultLength += itemLength; + } + var pos = 0; + var data = new Uint8Array(resultLength); + for (i = 0; i < ii; i++) { + item = arr[i]; + if (!(item instanceof Uint8Array)) { + if (typeof item === 'string') { + item = stringToBytes(item); + } else { + item = new Uint8Array(item); + } + } + itemLength = item.byteLength; + data.set(item, pos); + pos += itemLength; + } + return data; +} +function string32(value) { + return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); +} +function log2(x) { + var n = 1, i = 0; + while (x > n) { + n <<= 1; + i++; + } + return i; +} +function readInt8(data, start) { + return data[start] << 24 >> 24; +} +function readUint16(data, offset) { + return data[offset] << 8 | data[offset + 1]; +} +function readUint32(data, offset) { + return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0; +} +function isLittleEndian() { + var buffer8 = new Uint8Array(2); + buffer8[0] = 1; + var buffer16 = new Uint16Array(buffer8.buffer); + return buffer16[0] === 1; +} +function isEvalSupported() { + try { + new Function(''); + return true; + } catch (e) { + return false; + } +} +var Uint32ArrayView = function Uint32ArrayViewClosure() { + function Uint32ArrayView(buffer, length) { + this.buffer = buffer; + this.byteLength = buffer.length; + this.length = length === undefined ? this.byteLength >> 2 : length; + ensureUint32ArrayViewProps(this.length); + } + Uint32ArrayView.prototype = Object.create(null); + var uint32ArrayViewSetters = 0; + function createUint32ArrayProp(index) { + return { + get: function () { + var buffer = this.buffer, offset = index << 2; + return (buffer[offset] | buffer[offset + 1] << 8 | buffer[offset + 2] << 16 | buffer[offset + 3] << 24) >>> 0; + }, + set: function (value) { + var buffer = this.buffer, offset = index << 2; + buffer[offset] = value & 255; + buffer[offset + 1] = value >> 8 & 255; + buffer[offset + 2] = value >> 16 & 255; + buffer[offset + 3] = value >>> 24 & 255; + } + }; + } + function ensureUint32ArrayViewProps(length) { + while (uint32ArrayViewSetters < length) { + Object.defineProperty(Uint32ArrayView.prototype, uint32ArrayViewSetters, createUint32ArrayProp(uint32ArrayViewSetters)); + uint32ArrayViewSetters++; + } + } + return Uint32ArrayView; +}(); +exports.Uint32ArrayView = Uint32ArrayView; +var IDENTITY_MATRIX = [ + 1, + 0, + 0, + 1, + 0, + 0 +]; +var Util = function UtilClosure() { + function Util() { + } + var rgbBuf = [ + 'rgb(', + 0, + ',', + 0, + ',', + 0, + ')' + ]; + Util.makeCssRgb = function Util_makeCssRgb(r, g, b) { + rgbBuf[1] = r; + rgbBuf[3] = g; + rgbBuf[5] = b; + return rgbBuf.join(''); + }; + Util.transform = function Util_transform(m1, m2) { + return [ + m1[0] * m2[0] + m1[2] * m2[1], + m1[1] * m2[0] + m1[3] * m2[1], + m1[0] * m2[2] + m1[2] * m2[3], + m1[1] * m2[2] + m1[3] * m2[3], + m1[0] * m2[4] + m1[2] * m2[5] + m1[4], + m1[1] * m2[4] + m1[3] * m2[5] + m1[5] + ]; + }; + Util.applyTransform = function Util_applyTransform(p, m) { + var xt = p[0] * m[0] + p[1] * m[2] + m[4]; + var yt = p[0] * m[1] + p[1] * m[3] + m[5]; + return [ + xt, + yt + ]; + }; + Util.applyInverseTransform = function Util_applyInverseTransform(p, m) { + var d = m[0] * m[3] - m[1] * m[2]; + var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; + var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; + return [ + xt, + yt + ]; + }; + Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) { + var p1 = Util.applyTransform(r, m); + var p2 = Util.applyTransform(r.slice(2, 4), m); + var p3 = Util.applyTransform([ + r[0], + r[3] + ], m); + var p4 = Util.applyTransform([ + r[2], + r[1] + ], m); + return [ + Math.min(p1[0], p2[0], p3[0], p4[0]), + Math.min(p1[1], p2[1], p3[1], p4[1]), + Math.max(p1[0], p2[0], p3[0], p4[0]), + Math.max(p1[1], p2[1], p3[1], p4[1]) + ]; + }; + Util.inverseTransform = function Util_inverseTransform(m) { + var d = m[0] * m[3] - m[1] * m[2]; + return [ + m[3] / d, + -m[1] / d, + -m[2] / d, + m[0] / d, + (m[2] * m[5] - m[4] * m[3]) / d, + (m[4] * m[1] - m[5] * m[0]) / d + ]; + }; + Util.apply3dTransform = function Util_apply3dTransform(m, v) { + return [ + m[0] * v[0] + m[1] * v[1] + m[2] * v[2], + m[3] * v[0] + m[4] * v[1] + m[5] * v[2], + m[6] * v[0] + m[7] * v[1] + m[8] * v[2] + ]; + }; + Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) { + var transpose = [ + m[0], + m[2], + m[1], + m[3] + ]; + var a = m[0] * transpose[0] + m[1] * transpose[2]; + var b = m[0] * transpose[1] + m[1] * transpose[3]; + var c = m[2] * transpose[0] + m[3] * transpose[2]; + var d = m[2] * transpose[1] + m[3] * transpose[3]; + var first = (a + d) / 2; + var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2; + var sx = first + second || 1; + var sy = first - second || 1; + return [ + Math.sqrt(sx), + Math.sqrt(sy) + ]; + }; + Util.normalizeRect = function Util_normalizeRect(rect) { + var r = rect.slice(0); + if (rect[0] > rect[2]) { + r[0] = rect[2]; + r[2] = rect[0]; + } + if (rect[1] > rect[3]) { + r[1] = rect[3]; + r[3] = rect[1]; + } + return r; + }; + Util.intersect = function Util_intersect(rect1, rect2) { + function compare(a, b) { + return a - b; + } + var orderedX = [ + rect1[0], + rect1[2], + rect2[0], + rect2[2] + ].sort(compare), orderedY = [ + rect1[1], + rect1[3], + rect2[1], + rect2[3] + ].sort(compare), result = []; + rect1 = Util.normalizeRect(rect1); + rect2 = Util.normalizeRect(rect2); + if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) { + result[0] = orderedX[1]; + result[2] = orderedX[2]; + } else { + return false; + } + if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) { + result[1] = orderedY[1]; + result[3] = orderedY[2]; + } else { + return false; + } + return result; + }; + Util.sign = function Util_sign(num) { + return num < 0 ? -1 : 1; + }; + var ROMAN_NUMBER_MAP = [ + '', + 'C', + 'CC', + 'CCC', + 'CD', + 'D', + 'DC', + 'DCC', + 'DCCC', + 'CM', + '', + 'X', + 'XX', + 'XXX', + 'XL', + 'L', + 'LX', + 'LXX', + 'LXXX', + 'XC', + '', + 'I', + 'II', + 'III', + 'IV', + 'V', + 'VI', + 'VII', + 'VIII', + 'IX' + ]; + Util.toRoman = function Util_toRoman(number, lowerCase) { + assert(isInt(number) && number > 0, 'The number should be a positive integer.'); + var pos, romanBuf = []; + while (number >= 1000) { + number -= 1000; + romanBuf.push('M'); + } + pos = number / 100 | 0; + number %= 100; + romanBuf.push(ROMAN_NUMBER_MAP[pos]); + pos = number / 10 | 0; + number %= 10; + romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]); + romanBuf.push(ROMAN_NUMBER_MAP[20 + number]); + var romanStr = romanBuf.join(''); + return lowerCase ? romanStr.toLowerCase() : romanStr; + }; + Util.appendToArray = function Util_appendToArray(arr1, arr2) { + Array.prototype.push.apply(arr1, arr2); + }; + Util.prependToArray = function Util_prependToArray(arr1, arr2) { + Array.prototype.unshift.apply(arr1, arr2); + }; + Util.extendObj = function extendObj(obj1, obj2) { + for (var key in obj2) { + obj1[key] = obj2[key]; + } + }; + Util.getInheritableProperty = function Util_getInheritableProperty(dict, name, getArray) { + while (dict && !dict.has(name)) { + dict = dict.get('Parent'); + } + if (!dict) { + return null; + } + return getArray ? dict.getArray(name) : dict.get(name); + }; + Util.inherit = function Util_inherit(sub, base, prototype) { + sub.prototype = Object.create(base.prototype); + sub.prototype.constructor = sub; + for (var prop in prototype) { + sub.prototype[prop] = prototype[prop]; + } + }; + Util.loadScript = function Util_loadScript(src, callback) { + var script = document.createElement('script'); + var loaded = false; + script.setAttribute('src', src); + if (callback) { + script.onload = function () { + if (!loaded) { + callback(); + } + loaded = true; + }; + } + document.getElementsByTagName('head')[0].appendChild(script); + }; + return Util; +}(); +var PageViewport = function PageViewportClosure() { + function PageViewport(viewBox, scale, rotation, offsetX, offsetY, dontFlip) { + this.viewBox = viewBox; + this.scale = scale; + this.rotation = rotation; + this.offsetX = offsetX; + this.offsetY = offsetY; + var centerX = (viewBox[2] + viewBox[0]) / 2; + var centerY = (viewBox[3] + viewBox[1]) / 2; + var rotateA, rotateB, rotateC, rotateD; + rotation = rotation % 360; + rotation = rotation < 0 ? rotation + 360 : rotation; + switch (rotation) { + case 180: + rotateA = -1; + rotateB = 0; + rotateC = 0; + rotateD = 1; + break; + case 90: + rotateA = 0; + rotateB = 1; + rotateC = 1; + rotateD = 0; + break; + case 270: + rotateA = 0; + rotateB = -1; + rotateC = -1; + rotateD = 0; + break; + default: + rotateA = 1; + rotateB = 0; + rotateC = 0; + rotateD = -1; + break; + } + if (dontFlip) { + rotateC = -rotateC; + rotateD = -rotateD; + } + var offsetCanvasX, offsetCanvasY; + var width, height; + if (rotateA === 0) { + offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; + offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; + width = Math.abs(viewBox[3] - viewBox[1]) * scale; + height = Math.abs(viewBox[2] - viewBox[0]) * scale; + } else { + offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; + offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; + width = Math.abs(viewBox[2] - viewBox[0]) * scale; + height = Math.abs(viewBox[3] - viewBox[1]) * scale; + } + this.transform = [ + rotateA * scale, + rotateB * scale, + rotateC * scale, + rotateD * scale, + offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, + offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY + ]; + this.width = width; + this.height = height; + this.fontScale = scale; + } + PageViewport.prototype = { + clone: function PageViewPort_clone(args) { + args = args || {}; + var scale = 'scale' in args ? args.scale : this.scale; + var rotation = 'rotation' in args ? args.rotation : this.rotation; + return new PageViewport(this.viewBox.slice(), scale, rotation, this.offsetX, this.offsetY, args.dontFlip); + }, + convertToViewportPoint: function PageViewport_convertToViewportPoint(x, y) { + return Util.applyTransform([ + x, + y + ], this.transform); + }, + convertToViewportRectangle: function PageViewport_convertToViewportRectangle(rect) { + var tl = Util.applyTransform([ + rect[0], + rect[1] + ], this.transform); + var br = Util.applyTransform([ + rect[2], + rect[3] + ], this.transform); + return [ + tl[0], + tl[1], + br[0], + br[1] + ]; + }, + convertToPdfPoint: function PageViewport_convertToPdfPoint(x, y) { + return Util.applyInverseTransform([ + x, + y + ], this.transform); + } + }; + return PageViewport; +}(); +var PDFStringTranslateTable = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0x2D8, + 0x2C7, + 0x2C6, + 0x2D9, + 0x2DD, + 0x2DB, + 0x2DA, + 0x2DC, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0x2022, + 0x2020, + 0x2021, + 0x2026, + 0x2014, + 0x2013, + 0x192, + 0x2044, + 0x2039, + 0x203A, + 0x2212, + 0x2030, + 0x201E, + 0x201C, + 0x201D, + 0x2018, + 0x2019, + 0x201A, + 0x2122, + 0xFB01, + 0xFB02, + 0x141, + 0x152, + 0x160, + 0x178, + 0x17D, + 0x131, + 0x142, + 0x153, + 0x161, + 0x17E, + 0, + 0x20AC +]; +function stringToPDFString(str) { + var i, n = str.length, strBuf = []; + if (str[0] === '\xFE' && str[1] === '\xFF') { + for (i = 2; i < n; i += 2) { + strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1))); + } + } else { + for (i = 0; i < n; ++i) { + var code = PDFStringTranslateTable[str.charCodeAt(i)]; + strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); + } + } + return strBuf.join(''); +} +function stringToUTF8String(str) { + return decodeURIComponent(escape(str)); +} +function utf8StringToString(str) { + return unescape(encodeURIComponent(str)); +} +function isEmptyObj(obj) { + for (var key in obj) { + return false; + } + return true; +} +function isBool(v) { + return typeof v === 'boolean'; +} +function isInt(v) { + return typeof v === 'number' && (v | 0) === v; +} +function isNum(v) { + return typeof v === 'number'; +} +function isString(v) { + return typeof v === 'string'; +} +function isArray(v) { + return v instanceof Array; +} +function isArrayBuffer(v) { + return typeof v === 'object' && v !== null && v.byteLength !== undefined; +} +function isSpace(ch) { + return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A; +} +function isNodeJS() { + if (typeof __pdfjsdev_webpack__ === 'undefined') { + return typeof process === 'object' && process + '' === '[object process]'; + } + return false; +} +function createPromiseCapability() { + var capability = {}; + capability.promise = new Promise(function (resolve, reject) { + capability.resolve = resolve; + capability.reject = reject; + }); + return capability; +} +var StatTimer = function StatTimerClosure() { + function rpad(str, pad, length) { + while (str.length < length) { + str += pad; + } + return str; + } + function StatTimer() { + this.started = Object.create(null); + this.times = []; + this.enabled = true; + } + StatTimer.prototype = { + time: function StatTimer_time(name) { + if (!this.enabled) { + return; + } + if (name in this.started) { + warn('Timer is already running for ' + name); + } + this.started[name] = Date.now(); + }, + timeEnd: function StatTimer_timeEnd(name) { + if (!this.enabled) { + return; + } + if (!(name in this.started)) { + warn('Timer has not been started for ' + name); + } + this.times.push({ + 'name': name, + 'start': this.started[name], + 'end': Date.now() + }); + delete this.started[name]; + }, + toString: function StatTimer_toString() { + var i, ii; + var times = this.times; + var out = ''; + var longest = 0; + for (i = 0, ii = times.length; i < ii; ++i) { + var name = times[i]['name']; + if (name.length > longest) { + longest = name.length; + } + } + for (i = 0, ii = times.length; i < ii; ++i) { + var span = times[i]; + var duration = span.end - span.start; + out += rpad(span['name'], ' ', longest) + ' ' + duration + 'ms\n'; + } + return out; + } + }; + return StatTimer; +}(); +var createBlob = function createBlob(data, contentType) { + if (typeof Blob !== 'undefined') { + return new Blob([data], { type: contentType }); + } + warn('The "Blob" constructor is not supported.'); +}; +var createObjectURL = function createObjectURLClosure() { + var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + return function createObjectURL(data, contentType, forceDataSchema) { + if (!forceDataSchema && typeof URL !== 'undefined' && URL.createObjectURL) { + var blob = createBlob(data, contentType); + return URL.createObjectURL(blob); + } + var buffer = 'data:' + contentType + ';base64,'; + for (var i = 0, ii = data.length; i < ii; i += 3) { + var b1 = data[i] & 0xFF; + var b2 = data[i + 1] & 0xFF; + var b3 = data[i + 2] & 0xFF; + var d1 = b1 >> 2, d2 = (b1 & 3) << 4 | b2 >> 4; + var d3 = i + 1 < ii ? (b2 & 0xF) << 2 | b3 >> 6 : 64; + var d4 = i + 2 < ii ? b3 & 0x3F : 64; + buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4]; + } + return buffer; + }; +}(); +function MessageHandler(sourceName, targetName, comObj) { + this.sourceName = sourceName; + this.targetName = targetName; + this.comObj = comObj; + this.callbackIndex = 1; + this.postMessageTransfers = true; + var callbacksCapabilities = this.callbacksCapabilities = Object.create(null); + var ah = this.actionHandler = Object.create(null); + this._onComObjOnMessage = function messageHandlerComObjOnMessage(event) { + var data = event.data; + if (data.targetName !== this.sourceName) { + return; + } + if (data.isReply) { + var callbackId = data.callbackId; + if (data.callbackId in callbacksCapabilities) { + var callback = callbacksCapabilities[callbackId]; + delete callbacksCapabilities[callbackId]; + if ('error' in data) { + callback.reject(data.error); + } else { + callback.resolve(data.data); + } + } else { + error('Cannot resolve callback ' + callbackId); + } + } else if (data.action in ah) { + var action = ah[data.action]; + if (data.callbackId) { + var sourceName = this.sourceName; + var targetName = data.sourceName; + Promise.resolve().then(function () { + return action[0].call(action[1], data.data); + }).then(function (result) { + comObj.postMessage({ + sourceName: sourceName, + targetName: targetName, + isReply: true, + callbackId: data.callbackId, + data: result + }); + }, function (reason) { + if (reason instanceof Error) { + reason = reason + ''; + } + comObj.postMessage({ + sourceName: sourceName, + targetName: targetName, + isReply: true, + callbackId: data.callbackId, + error: reason + }); + }); + } else { + action[0].call(action[1], data.data); + } + } else { + error('Unknown action from worker: ' + data.action); + } + }.bind(this); + comObj.addEventListener('message', this._onComObjOnMessage); +} +MessageHandler.prototype = { + on: function messageHandlerOn(actionName, handler, scope) { + var ah = this.actionHandler; + if (ah[actionName]) { + error('There is already an actionName called "' + actionName + '"'); + } + ah[actionName] = [ + handler, + scope + ]; + }, + send: function messageHandlerSend(actionName, data, transfers) { + var message = { + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + data: data + }; + this.postMessage(message, transfers); + }, + sendWithPromise: function messageHandlerSendWithPromise(actionName, data, transfers) { + var callbackId = this.callbackIndex++; + var message = { + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + data: data, + callbackId: callbackId + }; + var capability = createPromiseCapability(); + this.callbacksCapabilities[callbackId] = capability; + try { + this.postMessage(message, transfers); + } catch (e) { + capability.reject(e); + } + return capability.promise; + }, + postMessage: function (message, transfers) { + if (transfers && this.postMessageTransfers) { + this.comObj.postMessage(message, transfers); + } else { + this.comObj.postMessage(message); + } + }, + destroy: function () { + this.comObj.removeEventListener('message', this._onComObjOnMessage); + } +}; +function loadJpegStream(id, imageUrl, objs) { + var img = new Image(); + img.onload = function loadJpegStream_onloadClosure() { + objs.resolve(id, img); + }; + img.onerror = function loadJpegStream_onerrorClosure() { + objs.resolve(id, null); + warn('Error during JPEG image loading'); + }; + img.src = imageUrl; +} +exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX; +exports.IDENTITY_MATRIX = IDENTITY_MATRIX; +exports.OPS = OPS; +exports.VERBOSITY_LEVELS = VERBOSITY_LEVELS; +exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES; +exports.AnnotationBorderStyleType = AnnotationBorderStyleType; +exports.AnnotationFieldFlag = AnnotationFieldFlag; +exports.AnnotationFlag = AnnotationFlag; +exports.AnnotationType = AnnotationType; +exports.FontType = FontType; +exports.ImageKind = ImageKind; +exports.CMapCompressionType = CMapCompressionType; +exports.InvalidPDFException = InvalidPDFException; +exports.MessageHandler = MessageHandler; +exports.MissingDataException = MissingDataException; +exports.MissingPDFException = MissingPDFException; +exports.NotImplementedException = NotImplementedException; +exports.PageViewport = PageViewport; +exports.PasswordException = PasswordException; +exports.PasswordResponses = PasswordResponses; +exports.StatTimer = StatTimer; +exports.StreamType = StreamType; +exports.TextRenderingMode = TextRenderingMode; +exports.UnexpectedResponseException = UnexpectedResponseException; +exports.UnknownErrorException = UnknownErrorException; +exports.Util = Util; +exports.XRefParseException = XRefParseException; +exports.arrayByteLength = arrayByteLength; +exports.arraysToBytes = arraysToBytes; +exports.assert = assert; +exports.bytesToString = bytesToString; +exports.createBlob = createBlob; +exports.createPromiseCapability = createPromiseCapability; +exports.createObjectURL = createObjectURL; +exports.deprecated = deprecated; +exports.error = error; +exports.getLookupTableFactory = getLookupTableFactory; +exports.getVerbosityLevel = getVerbosityLevel; +exports.globalScope = globalScope; +exports.info = info; +exports.isArray = isArray; +exports.isArrayBuffer = isArrayBuffer; +exports.isBool = isBool; +exports.isEmptyObj = isEmptyObj; +exports.isInt = isInt; +exports.isNum = isNum; +exports.isString = isString; +exports.isSpace = isSpace; +exports.isNodeJS = isNodeJS; +exports.isSameOrigin = isSameOrigin; +exports.createValidAbsoluteUrl = createValidAbsoluteUrl; +exports.isLittleEndian = isLittleEndian; +exports.isEvalSupported = isEvalSupported; +exports.loadJpegStream = loadJpegStream; +exports.log2 = log2; +exports.readInt8 = readInt8; +exports.readUint16 = readUint16; +exports.readUint32 = readUint32; +exports.removeNullCharacters = removeNullCharacters; +exports.setVerbosityLevel = setVerbosityLevel; +exports.shadow = shadow; +exports.string32 = string32; +exports.stringToBytes = stringToBytes; +exports.stringToPDFString = stringToPDFString; +exports.stringToUTF8String = stringToUTF8String; +exports.utf8StringToString = utf8StringToString; +exports.warn = warn; +/* WEBPACK VAR INJECTION */}.call(exports, __w_pdfjs_require__(9))) + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var isArray = sharedUtil.isArray; +var EOF = {}; +var Name = function NameClosure() { + function Name(name) { + this.name = name; + } + Name.prototype = {}; + var nameCache = Object.create(null); + Name.get = function Name_get(name) { + var nameValue = nameCache[name]; + return nameValue ? nameValue : nameCache[name] = new Name(name); + }; + return Name; +}(); +var Cmd = function CmdClosure() { + function Cmd(cmd) { + this.cmd = cmd; + } + Cmd.prototype = {}; + var cmdCache = Object.create(null); + Cmd.get = function Cmd_get(cmd) { + var cmdValue = cmdCache[cmd]; + return cmdValue ? cmdValue : cmdCache[cmd] = new Cmd(cmd); + }; + return Cmd; +}(); +var Dict = function DictClosure() { + var nonSerializable = function nonSerializableClosure() { + return nonSerializable; + }; + function Dict(xref) { + this.map = Object.create(null); + this.xref = xref; + this.objId = null; + this.suppressEncryption = false; + this.__nonSerializable__ = nonSerializable; + } + Dict.prototype = { + assignXref: function Dict_assignXref(newXref) { + this.xref = newXref; + }, + get: function Dict_get(key1, key2, key3) { + var value; + var xref = this.xref, suppressEncryption = this.suppressEncryption; + if (typeof (value = this.map[key1]) !== 'undefined' || key1 in this.map || typeof key2 === 'undefined') { + return xref ? xref.fetchIfRef(value, suppressEncryption) : value; + } + if (typeof (value = this.map[key2]) !== 'undefined' || key2 in this.map || typeof key3 === 'undefined') { + return xref ? xref.fetchIfRef(value, suppressEncryption) : value; + } + value = this.map[key3] || null; + return xref ? xref.fetchIfRef(value, suppressEncryption) : value; + }, + getAsync: function Dict_getAsync(key1, key2, key3) { + var value; + var xref = this.xref, suppressEncryption = this.suppressEncryption; + if (typeof (value = this.map[key1]) !== 'undefined' || key1 in this.map || typeof key2 === 'undefined') { + if (xref) { + return xref.fetchIfRefAsync(value, suppressEncryption); + } + return Promise.resolve(value); + } + if (typeof (value = this.map[key2]) !== 'undefined' || key2 in this.map || typeof key3 === 'undefined') { + if (xref) { + return xref.fetchIfRefAsync(value, suppressEncryption); + } + return Promise.resolve(value); + } + value = this.map[key3] || null; + if (xref) { + return xref.fetchIfRefAsync(value, suppressEncryption); + } + return Promise.resolve(value); + }, + getArray: function Dict_getArray(key1, key2, key3) { + var value = this.get(key1, key2, key3); + var xref = this.xref, suppressEncryption = this.suppressEncryption; + if (!isArray(value) || !xref) { + return value; + } + value = value.slice(); + for (var i = 0, ii = value.length; i < ii; i++) { + if (!isRef(value[i])) { + continue; + } + value[i] = xref.fetch(value[i], suppressEncryption); + } + return value; + }, + getRaw: function Dict_getRaw(key) { + return this.map[key]; + }, + getKeys: function Dict_getKeys() { + return Object.keys(this.map); + }, + set: function Dict_set(key, value) { + this.map[key] = value; + }, + has: function Dict_has(key) { + return key in this.map; + }, + forEach: function Dict_forEach(callback) { + for (var key in this.map) { + callback(key, this.get(key)); + } + } + }; + Dict.empty = new Dict(null); + Dict.merge = function Dict_merge(xref, dictArray) { + var mergedDict = new Dict(xref); + for (var i = 0, ii = dictArray.length; i < ii; i++) { + var dict = dictArray[i]; + if (!isDict(dict)) { + continue; + } + for (var keyName in dict.map) { + if (mergedDict.map[keyName]) { + continue; + } + mergedDict.map[keyName] = dict.map[keyName]; + } + } + return mergedDict; + }; + return Dict; +}(); +var Ref = function RefClosure() { + function Ref(num, gen) { + this.num = num; + this.gen = gen; + } + Ref.prototype = { + toString: function Ref_toString() { + var str = this.num + 'R'; + if (this.gen !== 0) { + str += this.gen; + } + return str; + } + }; + return Ref; +}(); +var RefSet = function RefSetClosure() { + function RefSet() { + this.dict = Object.create(null); + } + RefSet.prototype = { + has: function RefSet_has(ref) { + return ref.toString() in this.dict; + }, + put: function RefSet_put(ref) { + this.dict[ref.toString()] = true; + }, + remove: function RefSet_remove(ref) { + delete this.dict[ref.toString()]; + } + }; + return RefSet; +}(); +var RefSetCache = function RefSetCacheClosure() { + function RefSetCache() { + this.dict = Object.create(null); + } + RefSetCache.prototype = { + get: function RefSetCache_get(ref) { + return this.dict[ref.toString()]; + }, + has: function RefSetCache_has(ref) { + return ref.toString() in this.dict; + }, + put: function RefSetCache_put(ref, obj) { + this.dict[ref.toString()] = obj; + }, + putAlias: function RefSetCache_putAlias(ref, aliasRef) { + this.dict[ref.toString()] = this.get(aliasRef); + }, + forEach: function RefSetCache_forEach(fn, thisArg) { + for (var i in this.dict) { + fn.call(thisArg, this.dict[i]); + } + }, + clear: function RefSetCache_clear() { + this.dict = Object.create(null); + } + }; + return RefSetCache; +}(); +function isEOF(v) { + return v === EOF; +} +function isName(v, name) { + return v instanceof Name && (name === undefined || v.name === name); +} +function isCmd(v, cmd) { + return v instanceof Cmd && (cmd === undefined || v.cmd === cmd); +} +function isDict(v, type) { + return v instanceof Dict && (type === undefined || isName(v.get('Type'), type)); +} +function isRef(v) { + return v instanceof Ref; +} +function isRefsEqual(v1, v2) { + return v1.num === v2.num && v1.gen === v2.gen; +} +function isStream(v) { + return typeof v === 'object' && v !== null && v.getBytes !== undefined; +} +exports.EOF = EOF; +exports.Cmd = Cmd; +exports.Dict = Dict; +exports.Name = Name; +exports.Ref = Ref; +exports.RefSet = RefSet; +exports.RefSetCache = RefSetCache; +exports.isEOF = isEOF; +exports.isCmd = isCmd; +exports.isDict = isDict; +exports.isName = isName; +exports.isRef = isRef; +exports.isRefsEqual = isRefsEqual; +exports.isStream = isStream; + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var corePrimitives = __w_pdfjs_require__(1); +var coreJbig2 = __w_pdfjs_require__(28); +var coreJpg = __w_pdfjs_require__(29); +var coreJpx = __w_pdfjs_require__(15); +var Util = sharedUtil.Util; +var error = sharedUtil.error; +var info = sharedUtil.info; +var isInt = sharedUtil.isInt; +var isArray = sharedUtil.isArray; +var createObjectURL = sharedUtil.createObjectURL; +var shadow = sharedUtil.shadow; +var isSpace = sharedUtil.isSpace; +var Dict = corePrimitives.Dict; +var isDict = corePrimitives.isDict; +var isStream = corePrimitives.isStream; +var Jbig2Image = coreJbig2.Jbig2Image; +var JpegImage = coreJpg.JpegImage; +var JpxImage = coreJpx.JpxImage; +var Stream = function StreamClosure() { + function Stream(arrayBuffer, start, length, dict) { + this.bytes = arrayBuffer instanceof Uint8Array ? arrayBuffer : new Uint8Array(arrayBuffer); + this.start = start || 0; + this.pos = this.start; + this.end = start + length || this.bytes.length; + this.dict = dict; + } + Stream.prototype = { + get length() { + return this.end - this.start; + }, + get isEmpty() { + return this.length === 0; + }, + getByte: function Stream_getByte() { + if (this.pos >= this.end) { + return -1; + } + return this.bytes[this.pos++]; + }, + getUint16: function Stream_getUint16() { + var b0 = this.getByte(); + var b1 = this.getByte(); + if (b0 === -1 || b1 === -1) { + return -1; + } + return (b0 << 8) + b1; + }, + getInt32: function Stream_getInt32() { + var b0 = this.getByte(); + var b1 = this.getByte(); + var b2 = this.getByte(); + var b3 = this.getByte(); + return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3; + }, + getBytes: function Stream_getBytes(length) { + var bytes = this.bytes; + var pos = this.pos; + var strEnd = this.end; + if (!length) { + return bytes.subarray(pos, strEnd); + } + var end = pos + length; + if (end > strEnd) { + end = strEnd; + } + this.pos = end; + return bytes.subarray(pos, end); + }, + peekByte: function Stream_peekByte() { + var peekedByte = this.getByte(); + this.pos--; + return peekedByte; + }, + peekBytes: function Stream_peekBytes(length) { + var bytes = this.getBytes(length); + this.pos -= bytes.length; + return bytes; + }, + skip: function Stream_skip(n) { + if (!n) { + n = 1; + } + this.pos += n; + }, + reset: function Stream_reset() { + this.pos = this.start; + }, + moveStart: function Stream_moveStart() { + this.start = this.pos; + }, + makeSubStream: function Stream_makeSubStream(start, length, dict) { + return new Stream(this.bytes.buffer, start, length, dict); + } + }; + return Stream; +}(); +var StringStream = function StringStreamClosure() { + function StringStream(str) { + var length = str.length; + var bytes = new Uint8Array(length); + for (var n = 0; n < length; ++n) { + bytes[n] = str.charCodeAt(n); + } + Stream.call(this, bytes); + } + StringStream.prototype = Stream.prototype; + return StringStream; +}(); +var DecodeStream = function DecodeStreamClosure() { + var emptyBuffer = new Uint8Array(0); + function DecodeStream(maybeMinBufferLength) { + this.pos = 0; + this.bufferLength = 0; + this.eof = false; + this.buffer = emptyBuffer; + this.minBufferLength = 512; + if (maybeMinBufferLength) { + while (this.minBufferLength < maybeMinBufferLength) { + this.minBufferLength *= 2; + } + } + } + DecodeStream.prototype = { + get isEmpty() { + while (!this.eof && this.bufferLength === 0) { + this.readBlock(); + } + return this.bufferLength === 0; + }, + ensureBuffer: function DecodeStream_ensureBuffer(requested) { + var buffer = this.buffer; + if (requested <= buffer.byteLength) { + return buffer; + } + var size = this.minBufferLength; + while (size < requested) { + size *= 2; + } + var buffer2 = new Uint8Array(size); + buffer2.set(buffer); + return this.buffer = buffer2; + }, + getByte: function DecodeStream_getByte() { + var pos = this.pos; + while (this.bufferLength <= pos) { + if (this.eof) { + return -1; + } + this.readBlock(); + } + return this.buffer[this.pos++]; + }, + getUint16: function DecodeStream_getUint16() { + var b0 = this.getByte(); + var b1 = this.getByte(); + if (b0 === -1 || b1 === -1) { + return -1; + } + return (b0 << 8) + b1; + }, + getInt32: function DecodeStream_getInt32() { + var b0 = this.getByte(); + var b1 = this.getByte(); + var b2 = this.getByte(); + var b3 = this.getByte(); + return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3; + }, + getBytes: function DecodeStream_getBytes(length) { + var end, pos = this.pos; + if (length) { + this.ensureBuffer(pos + length); + end = pos + length; + while (!this.eof && this.bufferLength < end) { + this.readBlock(); + } + var bufEnd = this.bufferLength; + if (end > bufEnd) { + end = bufEnd; + } + } else { + while (!this.eof) { + this.readBlock(); + } + end = this.bufferLength; + } + this.pos = end; + return this.buffer.subarray(pos, end); + }, + peekByte: function DecodeStream_peekByte() { + var peekedByte = this.getByte(); + this.pos--; + return peekedByte; + }, + peekBytes: function DecodeStream_peekBytes(length) { + var bytes = this.getBytes(length); + this.pos -= bytes.length; + return bytes; + }, + makeSubStream: function DecodeStream_makeSubStream(start, length, dict) { + var end = start + length; + while (this.bufferLength <= end && !this.eof) { + this.readBlock(); + } + return new Stream(this.buffer, start, length, dict); + }, + skip: function DecodeStream_skip(n) { + if (!n) { + n = 1; + } + this.pos += n; + }, + reset: function DecodeStream_reset() { + this.pos = 0; + }, + getBaseStreams: function DecodeStream_getBaseStreams() { + if (this.str && this.str.getBaseStreams) { + return this.str.getBaseStreams(); + } + return []; + } + }; + return DecodeStream; +}(); +var StreamsSequenceStream = function StreamsSequenceStreamClosure() { + function StreamsSequenceStream(streams) { + this.streams = streams; + DecodeStream.call(this, null); + } + StreamsSequenceStream.prototype = Object.create(DecodeStream.prototype); + StreamsSequenceStream.prototype.readBlock = function streamSequenceStreamReadBlock() { + var streams = this.streams; + if (streams.length === 0) { + this.eof = true; + return; + } + var stream = streams.shift(); + var chunk = stream.getBytes(); + var bufferLength = this.bufferLength; + var newLength = bufferLength + chunk.length; + var buffer = this.ensureBuffer(newLength); + buffer.set(chunk, bufferLength); + this.bufferLength = newLength; + }; + StreamsSequenceStream.prototype.getBaseStreams = function StreamsSequenceStream_getBaseStreams() { + var baseStreams = []; + for (var i = 0, ii = this.streams.length; i < ii; i++) { + var stream = this.streams[i]; + if (stream.getBaseStreams) { + Util.appendToArray(baseStreams, stream.getBaseStreams()); + } + } + return baseStreams; + }; + return StreamsSequenceStream; +}(); +var FlateStream = function FlateStreamClosure() { + var codeLenCodeMap = new Int32Array([ + 16, + 17, + 18, + 0, + 8, + 7, + 9, + 6, + 10, + 5, + 11, + 4, + 12, + 3, + 13, + 2, + 14, + 1, + 15 + ]); + var lengthDecode = new Int32Array([ + 0x00003, + 0x00004, + 0x00005, + 0x00006, + 0x00007, + 0x00008, + 0x00009, + 0x0000a, + 0x1000b, + 0x1000d, + 0x1000f, + 0x10011, + 0x20013, + 0x20017, + 0x2001b, + 0x2001f, + 0x30023, + 0x3002b, + 0x30033, + 0x3003b, + 0x40043, + 0x40053, + 0x40063, + 0x40073, + 0x50083, + 0x500a3, + 0x500c3, + 0x500e3, + 0x00102, + 0x00102, + 0x00102 + ]); + var distDecode = new Int32Array([ + 0x00001, + 0x00002, + 0x00003, + 0x00004, + 0x10005, + 0x10007, + 0x20009, + 0x2000d, + 0x30011, + 0x30019, + 0x40021, + 0x40031, + 0x50041, + 0x50061, + 0x60081, + 0x600c1, + 0x70101, + 0x70181, + 0x80201, + 0x80301, + 0x90401, + 0x90601, + 0xa0801, + 0xa0c01, + 0xb1001, + 0xb1801, + 0xc2001, + 0xc3001, + 0xd4001, + 0xd6001 + ]); + var fixedLitCodeTab = [ + new Int32Array([ + 0x70100, + 0x80050, + 0x80010, + 0x80118, + 0x70110, + 0x80070, + 0x80030, + 0x900c0, + 0x70108, + 0x80060, + 0x80020, + 0x900a0, + 0x80000, + 0x80080, + 0x80040, + 0x900e0, + 0x70104, + 0x80058, + 0x80018, + 0x90090, + 0x70114, + 0x80078, + 0x80038, + 0x900d0, + 0x7010c, + 0x80068, + 0x80028, + 0x900b0, + 0x80008, + 0x80088, + 0x80048, + 0x900f0, + 0x70102, + 0x80054, + 0x80014, + 0x8011c, + 0x70112, + 0x80074, + 0x80034, + 0x900c8, + 0x7010a, + 0x80064, + 0x80024, + 0x900a8, + 0x80004, + 0x80084, + 0x80044, + 0x900e8, + 0x70106, + 0x8005c, + 0x8001c, + 0x90098, + 0x70116, + 0x8007c, + 0x8003c, + 0x900d8, + 0x7010e, + 0x8006c, + 0x8002c, + 0x900b8, + 0x8000c, + 0x8008c, + 0x8004c, + 0x900f8, + 0x70101, + 0x80052, + 0x80012, + 0x8011a, + 0x70111, + 0x80072, + 0x80032, + 0x900c4, + 0x70109, + 0x80062, + 0x80022, + 0x900a4, + 0x80002, + 0x80082, + 0x80042, + 0x900e4, + 0x70105, + 0x8005a, + 0x8001a, + 0x90094, + 0x70115, + 0x8007a, + 0x8003a, + 0x900d4, + 0x7010d, + 0x8006a, + 0x8002a, + 0x900b4, + 0x8000a, + 0x8008a, + 0x8004a, + 0x900f4, + 0x70103, + 0x80056, + 0x80016, + 0x8011e, + 0x70113, + 0x80076, + 0x80036, + 0x900cc, + 0x7010b, + 0x80066, + 0x80026, + 0x900ac, + 0x80006, + 0x80086, + 0x80046, + 0x900ec, + 0x70107, + 0x8005e, + 0x8001e, + 0x9009c, + 0x70117, + 0x8007e, + 0x8003e, + 0x900dc, + 0x7010f, + 0x8006e, + 0x8002e, + 0x900bc, + 0x8000e, + 0x8008e, + 0x8004e, + 0x900fc, + 0x70100, + 0x80051, + 0x80011, + 0x80119, + 0x70110, + 0x80071, + 0x80031, + 0x900c2, + 0x70108, + 0x80061, + 0x80021, + 0x900a2, + 0x80001, + 0x80081, + 0x80041, + 0x900e2, + 0x70104, + 0x80059, + 0x80019, + 0x90092, + 0x70114, + 0x80079, + 0x80039, + 0x900d2, + 0x7010c, + 0x80069, + 0x80029, + 0x900b2, + 0x80009, + 0x80089, + 0x80049, + 0x900f2, + 0x70102, + 0x80055, + 0x80015, + 0x8011d, + 0x70112, + 0x80075, + 0x80035, + 0x900ca, + 0x7010a, + 0x80065, + 0x80025, + 0x900aa, + 0x80005, + 0x80085, + 0x80045, + 0x900ea, + 0x70106, + 0x8005d, + 0x8001d, + 0x9009a, + 0x70116, + 0x8007d, + 0x8003d, + 0x900da, + 0x7010e, + 0x8006d, + 0x8002d, + 0x900ba, + 0x8000d, + 0x8008d, + 0x8004d, + 0x900fa, + 0x70101, + 0x80053, + 0x80013, + 0x8011b, + 0x70111, + 0x80073, + 0x80033, + 0x900c6, + 0x70109, + 0x80063, + 0x80023, + 0x900a6, + 0x80003, + 0x80083, + 0x80043, + 0x900e6, + 0x70105, + 0x8005b, + 0x8001b, + 0x90096, + 0x70115, + 0x8007b, + 0x8003b, + 0x900d6, + 0x7010d, + 0x8006b, + 0x8002b, + 0x900b6, + 0x8000b, + 0x8008b, + 0x8004b, + 0x900f6, + 0x70103, + 0x80057, + 0x80017, + 0x8011f, + 0x70113, + 0x80077, + 0x80037, + 0x900ce, + 0x7010b, + 0x80067, + 0x80027, + 0x900ae, + 0x80007, + 0x80087, + 0x80047, + 0x900ee, + 0x70107, + 0x8005f, + 0x8001f, + 0x9009e, + 0x70117, + 0x8007f, + 0x8003f, + 0x900de, + 0x7010f, + 0x8006f, + 0x8002f, + 0x900be, + 0x8000f, + 0x8008f, + 0x8004f, + 0x900fe, + 0x70100, + 0x80050, + 0x80010, + 0x80118, + 0x70110, + 0x80070, + 0x80030, + 0x900c1, + 0x70108, + 0x80060, + 0x80020, + 0x900a1, + 0x80000, + 0x80080, + 0x80040, + 0x900e1, + 0x70104, + 0x80058, + 0x80018, + 0x90091, + 0x70114, + 0x80078, + 0x80038, + 0x900d1, + 0x7010c, + 0x80068, + 0x80028, + 0x900b1, + 0x80008, + 0x80088, + 0x80048, + 0x900f1, + 0x70102, + 0x80054, + 0x80014, + 0x8011c, + 0x70112, + 0x80074, + 0x80034, + 0x900c9, + 0x7010a, + 0x80064, + 0x80024, + 0x900a9, + 0x80004, + 0x80084, + 0x80044, + 0x900e9, + 0x70106, + 0x8005c, + 0x8001c, + 0x90099, + 0x70116, + 0x8007c, + 0x8003c, + 0x900d9, + 0x7010e, + 0x8006c, + 0x8002c, + 0x900b9, + 0x8000c, + 0x8008c, + 0x8004c, + 0x900f9, + 0x70101, + 0x80052, + 0x80012, + 0x8011a, + 0x70111, + 0x80072, + 0x80032, + 0x900c5, + 0x70109, + 0x80062, + 0x80022, + 0x900a5, + 0x80002, + 0x80082, + 0x80042, + 0x900e5, + 0x70105, + 0x8005a, + 0x8001a, + 0x90095, + 0x70115, + 0x8007a, + 0x8003a, + 0x900d5, + 0x7010d, + 0x8006a, + 0x8002a, + 0x900b5, + 0x8000a, + 0x8008a, + 0x8004a, + 0x900f5, + 0x70103, + 0x80056, + 0x80016, + 0x8011e, + 0x70113, + 0x80076, + 0x80036, + 0x900cd, + 0x7010b, + 0x80066, + 0x80026, + 0x900ad, + 0x80006, + 0x80086, + 0x80046, + 0x900ed, + 0x70107, + 0x8005e, + 0x8001e, + 0x9009d, + 0x70117, + 0x8007e, + 0x8003e, + 0x900dd, + 0x7010f, + 0x8006e, + 0x8002e, + 0x900bd, + 0x8000e, + 0x8008e, + 0x8004e, + 0x900fd, + 0x70100, + 0x80051, + 0x80011, + 0x80119, + 0x70110, + 0x80071, + 0x80031, + 0x900c3, + 0x70108, + 0x80061, + 0x80021, + 0x900a3, + 0x80001, + 0x80081, + 0x80041, + 0x900e3, + 0x70104, + 0x80059, + 0x80019, + 0x90093, + 0x70114, + 0x80079, + 0x80039, + 0x900d3, + 0x7010c, + 0x80069, + 0x80029, + 0x900b3, + 0x80009, + 0x80089, + 0x80049, + 0x900f3, + 0x70102, + 0x80055, + 0x80015, + 0x8011d, + 0x70112, + 0x80075, + 0x80035, + 0x900cb, + 0x7010a, + 0x80065, + 0x80025, + 0x900ab, + 0x80005, + 0x80085, + 0x80045, + 0x900eb, + 0x70106, + 0x8005d, + 0x8001d, + 0x9009b, + 0x70116, + 0x8007d, + 0x8003d, + 0x900db, + 0x7010e, + 0x8006d, + 0x8002d, + 0x900bb, + 0x8000d, + 0x8008d, + 0x8004d, + 0x900fb, + 0x70101, + 0x80053, + 0x80013, + 0x8011b, + 0x70111, + 0x80073, + 0x80033, + 0x900c7, + 0x70109, + 0x80063, + 0x80023, + 0x900a7, + 0x80003, + 0x80083, + 0x80043, + 0x900e7, + 0x70105, + 0x8005b, + 0x8001b, + 0x90097, + 0x70115, + 0x8007b, + 0x8003b, + 0x900d7, + 0x7010d, + 0x8006b, + 0x8002b, + 0x900b7, + 0x8000b, + 0x8008b, + 0x8004b, + 0x900f7, + 0x70103, + 0x80057, + 0x80017, + 0x8011f, + 0x70113, + 0x80077, + 0x80037, + 0x900cf, + 0x7010b, + 0x80067, + 0x80027, + 0x900af, + 0x80007, + 0x80087, + 0x80047, + 0x900ef, + 0x70107, + 0x8005f, + 0x8001f, + 0x9009f, + 0x70117, + 0x8007f, + 0x8003f, + 0x900df, + 0x7010f, + 0x8006f, + 0x8002f, + 0x900bf, + 0x8000f, + 0x8008f, + 0x8004f, + 0x900ff + ]), + 9 + ]; + var fixedDistCodeTab = [ + new Int32Array([ + 0x50000, + 0x50010, + 0x50008, + 0x50018, + 0x50004, + 0x50014, + 0x5000c, + 0x5001c, + 0x50002, + 0x50012, + 0x5000a, + 0x5001a, + 0x50006, + 0x50016, + 0x5000e, + 0x00000, + 0x50001, + 0x50011, + 0x50009, + 0x50019, + 0x50005, + 0x50015, + 0x5000d, + 0x5001d, + 0x50003, + 0x50013, + 0x5000b, + 0x5001b, + 0x50007, + 0x50017, + 0x5000f, + 0x00000 + ]), + 5 + ]; + function FlateStream(str, maybeLength) { + this.str = str; + this.dict = str.dict; + var cmf = str.getByte(); + var flg = str.getByte(); + if (cmf === -1 || flg === -1) { + error('Invalid header in flate stream: ' + cmf + ', ' + flg); + } + if ((cmf & 0x0f) !== 0x08) { + error('Unknown compression method in flate stream: ' + cmf + ', ' + flg); + } + if (((cmf << 8) + flg) % 31 !== 0) { + error('Bad FCHECK in flate stream: ' + cmf + ', ' + flg); + } + if (flg & 0x20) { + error('FDICT bit set in flate stream: ' + cmf + ', ' + flg); + } + this.codeSize = 0; + this.codeBuf = 0; + DecodeStream.call(this, maybeLength); + } + FlateStream.prototype = Object.create(DecodeStream.prototype); + FlateStream.prototype.getBits = function FlateStream_getBits(bits) { + var str = this.str; + var codeSize = this.codeSize; + var codeBuf = this.codeBuf; + var b; + while (codeSize < bits) { + if ((b = str.getByte()) === -1) { + error('Bad encoding in flate stream'); + } + codeBuf |= b << codeSize; + codeSize += 8; + } + b = codeBuf & (1 << bits) - 1; + this.codeBuf = codeBuf >> bits; + this.codeSize = codeSize -= bits; + return b; + }; + FlateStream.prototype.getCode = function FlateStream_getCode(table) { + var str = this.str; + var codes = table[0]; + var maxLen = table[1]; + var codeSize = this.codeSize; + var codeBuf = this.codeBuf; + var b; + while (codeSize < maxLen) { + if ((b = str.getByte()) === -1) { + break; + } + codeBuf |= b << codeSize; + codeSize += 8; + } + var code = codes[codeBuf & (1 << maxLen) - 1]; + var codeLen = code >> 16; + var codeVal = code & 0xffff; + if (codeLen < 1 || codeSize < codeLen) { + error('Bad encoding in flate stream'); + } + this.codeBuf = codeBuf >> codeLen; + this.codeSize = codeSize - codeLen; + return codeVal; + }; + FlateStream.prototype.generateHuffmanTable = function flateStreamGenerateHuffmanTable(lengths) { + var n = lengths.length; + var maxLen = 0; + var i; + for (i = 0; i < n; ++i) { + if (lengths[i] > maxLen) { + maxLen = lengths[i]; + } + } + var size = 1 << maxLen; + var codes = new Int32Array(size); + for (var len = 1, code = 0, skip = 2; len <= maxLen; ++len, code <<= 1, skip <<= 1) { + for (var val = 0; val < n; ++val) { + if (lengths[val] === len) { + var code2 = 0; + var t = code; + for (i = 0; i < len; ++i) { + code2 = code2 << 1 | t & 1; + t >>= 1; + } + for (i = code2; i < size; i += skip) { + codes[i] = len << 16 | val; + } + ++code; + } + } + } + return [ + codes, + maxLen + ]; + }; + FlateStream.prototype.readBlock = function FlateStream_readBlock() { + var buffer, len; + var str = this.str; + var hdr = this.getBits(3); + if (hdr & 1) { + this.eof = true; + } + hdr >>= 1; + if (hdr === 0) { + var b; + if ((b = str.getByte()) === -1) { + error('Bad block header in flate stream'); + } + var blockLen = b; + if ((b = str.getByte()) === -1) { + error('Bad block header in flate stream'); + } + blockLen |= b << 8; + if ((b = str.getByte()) === -1) { + error('Bad block header in flate stream'); + } + var check = b; + if ((b = str.getByte()) === -1) { + error('Bad block header in flate stream'); + } + check |= b << 8; + if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) { + error('Bad uncompressed block length in flate stream'); + } + this.codeBuf = 0; + this.codeSize = 0; + var bufferLength = this.bufferLength; + buffer = this.ensureBuffer(bufferLength + blockLen); + var end = bufferLength + blockLen; + this.bufferLength = end; + if (blockLen === 0) { + if (str.peekByte() === -1) { + this.eof = true; + } + } else { + for (var n = bufferLength; n < end; ++n) { + if ((b = str.getByte()) === -1) { + this.eof = true; + break; + } + buffer[n] = b; + } + } + return; + } + var litCodeTable; + var distCodeTable; + if (hdr === 1) { + litCodeTable = fixedLitCodeTab; + distCodeTable = fixedDistCodeTab; + } else if (hdr === 2) { + var numLitCodes = this.getBits(5) + 257; + var numDistCodes = this.getBits(5) + 1; + var numCodeLenCodes = this.getBits(4) + 4; + var codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length); + var i; + for (i = 0; i < numCodeLenCodes; ++i) { + codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3); + } + var codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths); + len = 0; + i = 0; + var codes = numLitCodes + numDistCodes; + var codeLengths = new Uint8Array(codes); + var bitsLength, bitsOffset, what; + while (i < codes) { + var code = this.getCode(codeLenCodeTab); + if (code === 16) { + bitsLength = 2; + bitsOffset = 3; + what = len; + } else if (code === 17) { + bitsLength = 3; + bitsOffset = 3; + what = len = 0; + } else if (code === 18) { + bitsLength = 7; + bitsOffset = 11; + what = len = 0; + } else { + codeLengths[i++] = len = code; + continue; + } + var repeatLength = this.getBits(bitsLength) + bitsOffset; + while (repeatLength-- > 0) { + codeLengths[i++] = what; + } + } + litCodeTable = this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes)); + distCodeTable = this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes)); + } else { + error('Unknown block type in flate stream'); + } + buffer = this.buffer; + var limit = buffer ? buffer.length : 0; + var pos = this.bufferLength; + while (true) { + var code1 = this.getCode(litCodeTable); + if (code1 < 256) { + if (pos + 1 >= limit) { + buffer = this.ensureBuffer(pos + 1); + limit = buffer.length; + } + buffer[pos++] = code1; + continue; + } + if (code1 === 256) { + this.bufferLength = pos; + return; + } + code1 -= 257; + code1 = lengthDecode[code1]; + var code2 = code1 >> 16; + if (code2 > 0) { + code2 = this.getBits(code2); + } + len = (code1 & 0xffff) + code2; + code1 = this.getCode(distCodeTable); + code1 = distDecode[code1]; + code2 = code1 >> 16; + if (code2 > 0) { + code2 = this.getBits(code2); + } + var dist = (code1 & 0xffff) + code2; + if (pos + len >= limit) { + buffer = this.ensureBuffer(pos + len); + limit = buffer.length; + } + for (var k = 0; k < len; ++k, ++pos) { + buffer[pos] = buffer[pos - dist]; + } + } + }; + return FlateStream; +}(); +var PredictorStream = function PredictorStreamClosure() { + function PredictorStream(str, maybeLength, params) { + if (!isDict(params)) { + return str; + } + var predictor = this.predictor = params.get('Predictor') || 1; + if (predictor <= 1) { + return str; + } + if (predictor !== 2 && (predictor < 10 || predictor > 15)) { + error('Unsupported predictor: ' + predictor); + } + if (predictor === 2) { + this.readBlock = this.readBlockTiff; + } else { + this.readBlock = this.readBlockPng; + } + this.str = str; + this.dict = str.dict; + var colors = this.colors = params.get('Colors') || 1; + var bits = this.bits = params.get('BitsPerComponent') || 8; + var columns = this.columns = params.get('Columns') || 1; + this.pixBytes = colors * bits + 7 >> 3; + this.rowBytes = columns * colors * bits + 7 >> 3; + DecodeStream.call(this, maybeLength); + return this; + } + PredictorStream.prototype = Object.create(DecodeStream.prototype); + PredictorStream.prototype.readBlockTiff = function predictorStreamReadBlockTiff() { + var rowBytes = this.rowBytes; + var bufferLength = this.bufferLength; + var buffer = this.ensureBuffer(bufferLength + rowBytes); + var bits = this.bits; + var colors = this.colors; + var rawBytes = this.str.getBytes(rowBytes); + this.eof = !rawBytes.length; + if (this.eof) { + return; + } + var inbuf = 0, outbuf = 0; + var inbits = 0, outbits = 0; + var pos = bufferLength; + var i; + if (bits === 1 && colors === 1) { + for (i = 0; i < rowBytes; ++i) { + var c = rawBytes[i] ^ inbuf; + c ^= c >> 1; + c ^= c >> 2; + c ^= c >> 4; + inbuf = (c & 1) << 7; + buffer[pos++] = c; + } + } else if (bits === 8) { + for (i = 0; i < colors; ++i) { + buffer[pos++] = rawBytes[i]; + } + for (; i < rowBytes; ++i) { + buffer[pos] = buffer[pos - colors] + rawBytes[i]; + pos++; + } + } else { + var compArray = new Uint8Array(colors + 1); + var bitMask = (1 << bits) - 1; + var j = 0, k = bufferLength; + var columns = this.columns; + for (i = 0; i < columns; ++i) { + for (var kk = 0; kk < colors; ++kk) { + if (inbits < bits) { + inbuf = inbuf << 8 | rawBytes[j++] & 0xFF; + inbits += 8; + } + compArray[kk] = compArray[kk] + (inbuf >> inbits - bits) & bitMask; + inbits -= bits; + outbuf = outbuf << bits | compArray[kk]; + outbits += bits; + if (outbits >= 8) { + buffer[k++] = outbuf >> outbits - 8 & 0xFF; + outbits -= 8; + } + } + } + if (outbits > 0) { + buffer[k++] = (outbuf << 8 - outbits) + (inbuf & (1 << 8 - outbits) - 1); + } + } + this.bufferLength += rowBytes; + }; + PredictorStream.prototype.readBlockPng = function predictorStreamReadBlockPng() { + var rowBytes = this.rowBytes; + var pixBytes = this.pixBytes; + var predictor = this.str.getByte(); + var rawBytes = this.str.getBytes(rowBytes); + this.eof = !rawBytes.length; + if (this.eof) { + return; + } + var bufferLength = this.bufferLength; + var buffer = this.ensureBuffer(bufferLength + rowBytes); + var prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength); + if (prevRow.length === 0) { + prevRow = new Uint8Array(rowBytes); + } + var i, j = bufferLength, up, c; + switch (predictor) { + case 0: + for (i = 0; i < rowBytes; ++i) { + buffer[j++] = rawBytes[i]; + } + break; + case 1: + for (i = 0; i < pixBytes; ++i) { + buffer[j++] = rawBytes[i]; + } + for (; i < rowBytes; ++i) { + buffer[j] = buffer[j - pixBytes] + rawBytes[i] & 0xFF; + j++; + } + break; + case 2: + for (i = 0; i < rowBytes; ++i) { + buffer[j++] = prevRow[i] + rawBytes[i] & 0xFF; + } + break; + case 3: + for (i = 0; i < pixBytes; ++i) { + buffer[j++] = (prevRow[i] >> 1) + rawBytes[i]; + } + for (; i < rowBytes; ++i) { + buffer[j] = (prevRow[i] + buffer[j - pixBytes] >> 1) + rawBytes[i] & 0xFF; + j++; + } + break; + case 4: + for (i = 0; i < pixBytes; ++i) { + up = prevRow[i]; + c = rawBytes[i]; + buffer[j++] = up + c; + } + for (; i < rowBytes; ++i) { + up = prevRow[i]; + var upLeft = prevRow[i - pixBytes]; + var left = buffer[j - pixBytes]; + var p = left + up - upLeft; + var pa = p - left; + if (pa < 0) { + pa = -pa; + } + var pb = p - up; + if (pb < 0) { + pb = -pb; + } + var pc = p - upLeft; + if (pc < 0) { + pc = -pc; + } + c = rawBytes[i]; + if (pa <= pb && pa <= pc) { + buffer[j++] = left + c; + } else if (pb <= pc) { + buffer[j++] = up + c; + } else { + buffer[j++] = upLeft + c; + } + } + break; + default: + error('Unsupported predictor: ' + predictor); + } + this.bufferLength += rowBytes; + }; + return PredictorStream; +}(); +var JpegStream = function JpegStreamClosure() { + function JpegStream(stream, maybeLength, dict, params) { + var ch; + while ((ch = stream.getByte()) !== -1) { + if (ch === 0xFF) { + stream.skip(-1); + break; + } + } + this.stream = stream; + this.maybeLength = maybeLength; + this.dict = dict; + this.params = params; + DecodeStream.call(this, maybeLength); + } + JpegStream.prototype = Object.create(DecodeStream.prototype); + Object.defineProperty(JpegStream.prototype, 'bytes', { + get: function JpegStream_bytes() { + return shadow(this, 'bytes', this.stream.getBytes(this.maybeLength)); + }, + configurable: true + }); + JpegStream.prototype.ensureBuffer = function JpegStream_ensureBuffer(req) { + if (this.bufferLength) { + return; + } + var jpegImage = new JpegImage(); + var decodeArr = this.dict.getArray('Decode', 'D'); + if (this.forceRGB && isArray(decodeArr)) { + var bitsPerComponent = this.dict.get('BitsPerComponent') || 8; + var decodeArrLength = decodeArr.length; + var transform = new Int32Array(decodeArrLength); + var transformNeeded = false; + var maxValue = (1 << bitsPerComponent) - 1; + for (var i = 0; i < decodeArrLength; i += 2) { + transform[i] = (decodeArr[i + 1] - decodeArr[i]) * 256 | 0; + transform[i + 1] = decodeArr[i] * maxValue | 0; + if (transform[i] !== 256 || transform[i + 1] !== 0) { + transformNeeded = true; + } + } + if (transformNeeded) { + jpegImage.decodeTransform = transform; + } + } + if (isDict(this.params)) { + var colorTransform = this.params.get('ColorTransform'); + if (isInt(colorTransform)) { + jpegImage.colorTransform = colorTransform; + } + } + jpegImage.parse(this.bytes); + var data = jpegImage.getData(this.drawWidth, this.drawHeight, this.forceRGB); + this.buffer = data; + this.bufferLength = data.length; + this.eof = true; + }; + JpegStream.prototype.getBytes = function JpegStream_getBytes(length) { + this.ensureBuffer(); + return this.buffer; + }; + JpegStream.prototype.getIR = function JpegStream_getIR(forceDataSchema) { + return createObjectURL(this.bytes, 'image/jpeg', forceDataSchema); + }; + return JpegStream; +}(); +var JpxStream = function JpxStreamClosure() { + function JpxStream(stream, maybeLength, dict, params) { + this.stream = stream; + this.maybeLength = maybeLength; + this.dict = dict; + this.params = params; + DecodeStream.call(this, maybeLength); + } + JpxStream.prototype = Object.create(DecodeStream.prototype); + Object.defineProperty(JpxStream.prototype, 'bytes', { + get: function JpxStream_bytes() { + return shadow(this, 'bytes', this.stream.getBytes(this.maybeLength)); + }, + configurable: true + }); + JpxStream.prototype.ensureBuffer = function JpxStream_ensureBuffer(req) { + if (this.bufferLength) { + return; + } + var jpxImage = new JpxImage(); + jpxImage.parse(this.bytes); + var width = jpxImage.width; + var height = jpxImage.height; + var componentsCount = jpxImage.componentsCount; + var tileCount = jpxImage.tiles.length; + if (tileCount === 1) { + this.buffer = jpxImage.tiles[0].items; + } else { + var data = new Uint8Array(width * height * componentsCount); + for (var k = 0; k < tileCount; k++) { + var tileComponents = jpxImage.tiles[k]; + var tileWidth = tileComponents.width; + var tileHeight = tileComponents.height; + var tileLeft = tileComponents.left; + var tileTop = tileComponents.top; + var src = tileComponents.items; + var srcPosition = 0; + var dataPosition = (width * tileTop + tileLeft) * componentsCount; + var imgRowSize = width * componentsCount; + var tileRowSize = tileWidth * componentsCount; + for (var j = 0; j < tileHeight; j++) { + var rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize); + data.set(rowBytes, dataPosition); + srcPosition += tileRowSize; + dataPosition += imgRowSize; + } + } + this.buffer = data; + } + this.bufferLength = this.buffer.length; + this.eof = true; + }; + return JpxStream; +}(); +var Jbig2Stream = function Jbig2StreamClosure() { + function Jbig2Stream(stream, maybeLength, dict, params) { + this.stream = stream; + this.maybeLength = maybeLength; + this.dict = dict; + this.params = params; + DecodeStream.call(this, maybeLength); + } + Jbig2Stream.prototype = Object.create(DecodeStream.prototype); + Object.defineProperty(Jbig2Stream.prototype, 'bytes', { + get: function Jbig2Stream_bytes() { + return shadow(this, 'bytes', this.stream.getBytes(this.maybeLength)); + }, + configurable: true + }); + Jbig2Stream.prototype.ensureBuffer = function Jbig2Stream_ensureBuffer(req) { + if (this.bufferLength) { + return; + } + var jbig2Image = new Jbig2Image(); + var chunks = []; + if (isDict(this.params)) { + var globalsStream = this.params.get('JBIG2Globals'); + if (isStream(globalsStream)) { + var globals = globalsStream.getBytes(); + chunks.push({ + data: globals, + start: 0, + end: globals.length + }); + } + } + chunks.push({ + data: this.bytes, + start: 0, + end: this.bytes.length + }); + var data = jbig2Image.parseChunks(chunks); + var dataLength = data.length; + for (var i = 0; i < dataLength; i++) { + data[i] ^= 0xFF; + } + this.buffer = data; + this.bufferLength = dataLength; + this.eof = true; + }; + return Jbig2Stream; +}(); +var DecryptStream = function DecryptStreamClosure() { + function DecryptStream(str, maybeLength, decrypt) { + this.str = str; + this.dict = str.dict; + this.decrypt = decrypt; + this.nextChunk = null; + this.initialized = false; + DecodeStream.call(this, maybeLength); + } + var chunkSize = 512; + DecryptStream.prototype = Object.create(DecodeStream.prototype); + DecryptStream.prototype.readBlock = function DecryptStream_readBlock() { + var chunk; + if (this.initialized) { + chunk = this.nextChunk; + } else { + chunk = this.str.getBytes(chunkSize); + this.initialized = true; + } + if (!chunk || chunk.length === 0) { + this.eof = true; + return; + } + this.nextChunk = this.str.getBytes(chunkSize); + var hasMoreData = this.nextChunk && this.nextChunk.length > 0; + var decrypt = this.decrypt; + chunk = decrypt(chunk, !hasMoreData); + var bufferLength = this.bufferLength; + var i, n = chunk.length; + var buffer = this.ensureBuffer(bufferLength + n); + for (i = 0; i < n; i++) { + buffer[bufferLength++] = chunk[i]; + } + this.bufferLength = bufferLength; + }; + return DecryptStream; +}(); +var Ascii85Stream = function Ascii85StreamClosure() { + function Ascii85Stream(str, maybeLength) { + this.str = str; + this.dict = str.dict; + this.input = new Uint8Array(5); + if (maybeLength) { + maybeLength = 0.8 * maybeLength; + } + DecodeStream.call(this, maybeLength); + } + Ascii85Stream.prototype = Object.create(DecodeStream.prototype); + Ascii85Stream.prototype.readBlock = function Ascii85Stream_readBlock() { + var TILDA_CHAR = 0x7E; + var Z_LOWER_CHAR = 0x7A; + var EOF = -1; + var str = this.str; + var c = str.getByte(); + while (isSpace(c)) { + c = str.getByte(); + } + if (c === EOF || c === TILDA_CHAR) { + this.eof = true; + return; + } + var bufferLength = this.bufferLength, buffer; + var i; + if (c === Z_LOWER_CHAR) { + buffer = this.ensureBuffer(bufferLength + 4); + for (i = 0; i < 4; ++i) { + buffer[bufferLength + i] = 0; + } + this.bufferLength += 4; + } else { + var input = this.input; + input[0] = c; + for (i = 1; i < 5; ++i) { + c = str.getByte(); + while (isSpace(c)) { + c = str.getByte(); + } + input[i] = c; + if (c === EOF || c === TILDA_CHAR) { + break; + } + } + buffer = this.ensureBuffer(bufferLength + i - 1); + this.bufferLength += i - 1; + if (i < 5) { + for (; i < 5; ++i) { + input[i] = 0x21 + 84; + } + this.eof = true; + } + var t = 0; + for (i = 0; i < 5; ++i) { + t = t * 85 + (input[i] - 0x21); + } + for (i = 3; i >= 0; --i) { + buffer[bufferLength + i] = t & 0xFF; + t >>= 8; + } + } + }; + return Ascii85Stream; +}(); +var AsciiHexStream = function AsciiHexStreamClosure() { + function AsciiHexStream(str, maybeLength) { + this.str = str; + this.dict = str.dict; + this.firstDigit = -1; + if (maybeLength) { + maybeLength = 0.5 * maybeLength; + } + DecodeStream.call(this, maybeLength); + } + AsciiHexStream.prototype = Object.create(DecodeStream.prototype); + AsciiHexStream.prototype.readBlock = function AsciiHexStream_readBlock() { + var UPSTREAM_BLOCK_SIZE = 8000; + var bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE); + if (!bytes.length) { + this.eof = true; + return; + } + var maxDecodeLength = bytes.length + 1 >> 1; + var buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength); + var bufferLength = this.bufferLength; + var firstDigit = this.firstDigit; + for (var i = 0, ii = bytes.length; i < ii; i++) { + var ch = bytes[i], digit; + if (ch >= 0x30 && ch <= 0x39) { + digit = ch & 0x0F; + } else if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) { + digit = (ch & 0x0F) + 9; + } else if (ch === 0x3E) { + this.eof = true; + break; + } else { + continue; + } + if (firstDigit < 0) { + firstDigit = digit; + } else { + buffer[bufferLength++] = firstDigit << 4 | digit; + firstDigit = -1; + } + } + if (firstDigit >= 0 && this.eof) { + buffer[bufferLength++] = firstDigit << 4; + firstDigit = -1; + } + this.firstDigit = firstDigit; + this.bufferLength = bufferLength; + }; + return AsciiHexStream; +}(); +var RunLengthStream = function RunLengthStreamClosure() { + function RunLengthStream(str, maybeLength) { + this.str = str; + this.dict = str.dict; + DecodeStream.call(this, maybeLength); + } + RunLengthStream.prototype = Object.create(DecodeStream.prototype); + RunLengthStream.prototype.readBlock = function RunLengthStream_readBlock() { + var repeatHeader = this.str.getBytes(2); + if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) { + this.eof = true; + return; + } + var buffer; + var bufferLength = this.bufferLength; + var n = repeatHeader[0]; + if (n < 128) { + buffer = this.ensureBuffer(bufferLength + n + 1); + buffer[bufferLength++] = repeatHeader[1]; + if (n > 0) { + var source = this.str.getBytes(n); + buffer.set(source, bufferLength); + bufferLength += n; + } + } else { + n = 257 - n; + var b = repeatHeader[1]; + buffer = this.ensureBuffer(bufferLength + n + 1); + for (var i = 0; i < n; i++) { + buffer[bufferLength++] = b; + } + } + this.bufferLength = bufferLength; + }; + return RunLengthStream; +}(); +var CCITTFaxStream = function CCITTFaxStreamClosure() { + var ccittEOL = -2; + var ccittEOF = -1; + var twoDimPass = 0; + var twoDimHoriz = 1; + var twoDimVert0 = 2; + var twoDimVertR1 = 3; + var twoDimVertL1 = 4; + var twoDimVertR2 = 5; + var twoDimVertL2 = 6; + var twoDimVertR3 = 7; + var twoDimVertL3 = 8; + var twoDimTable = [ + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + 7, + twoDimVertL3 + ], + [ + 7, + twoDimVertR3 + ], + [ + 6, + twoDimVertL2 + ], + [ + 6, + twoDimVertL2 + ], + [ + 6, + twoDimVertR2 + ], + [ + 6, + twoDimVertR2 + ], + [ + 4, + twoDimPass + ], + [ + 4, + twoDimPass + ], + [ + 4, + twoDimPass + ], + [ + 4, + twoDimPass + ], + [ + 4, + twoDimPass + ], + [ + 4, + twoDimPass + ], + [ + 4, + twoDimPass + ], + [ + 4, + twoDimPass + ], + [ + 3, + twoDimHoriz + ], + [ + 3, + twoDimHoriz + ], + [ + 3, + twoDimHoriz + ], + [ + 3, + twoDimHoriz + ], + [ + 3, + twoDimHoriz + ], + [ + 3, + twoDimHoriz + ], + [ + 3, + twoDimHoriz + ], + [ + 3, + twoDimHoriz + ], + [ + 3, + twoDimHoriz + ], + [ + 3, + twoDimHoriz + ], + [ + 3, + twoDimHoriz + ], + [ + 3, + twoDimHoriz + ], + [ + 3, + twoDimHoriz + ], + [ + 3, + twoDimHoriz + ], + [ + 3, + twoDimHoriz + ], + [ + 3, + twoDimHoriz + ], + [ + 3, + twoDimVertL1 + ], + [ + 3, + twoDimVertL1 + ], + [ + 3, + twoDimVertL1 + ], + [ + 3, + twoDimVertL1 + ], + [ + 3, + twoDimVertL1 + ], + [ + 3, + twoDimVertL1 + ], + [ + 3, + twoDimVertL1 + ], + [ + 3, + twoDimVertL1 + ], + [ + 3, + twoDimVertL1 + ], + [ + 3, + twoDimVertL1 + ], + [ + 3, + twoDimVertL1 + ], + [ + 3, + twoDimVertL1 + ], + [ + 3, + twoDimVertL1 + ], + [ + 3, + twoDimVertL1 + ], + [ + 3, + twoDimVertL1 + ], + [ + 3, + twoDimVertL1 + ], + [ + 3, + twoDimVertR1 + ], + [ + 3, + twoDimVertR1 + ], + [ + 3, + twoDimVertR1 + ], + [ + 3, + twoDimVertR1 + ], + [ + 3, + twoDimVertR1 + ], + [ + 3, + twoDimVertR1 + ], + [ + 3, + twoDimVertR1 + ], + [ + 3, + twoDimVertR1 + ], + [ + 3, + twoDimVertR1 + ], + [ + 3, + twoDimVertR1 + ], + [ + 3, + twoDimVertR1 + ], + [ + 3, + twoDimVertR1 + ], + [ + 3, + twoDimVertR1 + ], + [ + 3, + twoDimVertR1 + ], + [ + 3, + twoDimVertR1 + ], + [ + 3, + twoDimVertR1 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ], + [ + 1, + twoDimVert0 + ] + ]; + var whiteTable1 = [ + [ + -1, + -1 + ], + [ + 12, + ccittEOL + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + 11, + 1792 + ], + [ + 11, + 1792 + ], + [ + 12, + 1984 + ], + [ + 12, + 2048 + ], + [ + 12, + 2112 + ], + [ + 12, + 2176 + ], + [ + 12, + 2240 + ], + [ + 12, + 2304 + ], + [ + 11, + 1856 + ], + [ + 11, + 1856 + ], + [ + 11, + 1920 + ], + [ + 11, + 1920 + ], + [ + 12, + 2368 + ], + [ + 12, + 2432 + ], + [ + 12, + 2496 + ], + [ + 12, + 2560 + ] + ]; + var whiteTable2 = [ + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + 8, + 29 + ], + [ + 8, + 29 + ], + [ + 8, + 30 + ], + [ + 8, + 30 + ], + [ + 8, + 45 + ], + [ + 8, + 45 + ], + [ + 8, + 46 + ], + [ + 8, + 46 + ], + [ + 7, + 22 + ], + [ + 7, + 22 + ], + [ + 7, + 22 + ], + [ + 7, + 22 + ], + [ + 7, + 23 + ], + [ + 7, + 23 + ], + [ + 7, + 23 + ], + [ + 7, + 23 + ], + [ + 8, + 47 + ], + [ + 8, + 47 + ], + [ + 8, + 48 + ], + [ + 8, + 48 + ], + [ + 6, + 13 + ], + [ + 6, + 13 + ], + [ + 6, + 13 + ], + [ + 6, + 13 + ], + [ + 6, + 13 + ], + [ + 6, + 13 + ], + [ + 6, + 13 + ], + [ + 6, + 13 + ], + [ + 7, + 20 + ], + [ + 7, + 20 + ], + [ + 7, + 20 + ], + [ + 7, + 20 + ], + [ + 8, + 33 + ], + [ + 8, + 33 + ], + [ + 8, + 34 + ], + [ + 8, + 34 + ], + [ + 8, + 35 + ], + [ + 8, + 35 + ], + [ + 8, + 36 + ], + [ + 8, + 36 + ], + [ + 8, + 37 + ], + [ + 8, + 37 + ], + [ + 8, + 38 + ], + [ + 8, + 38 + ], + [ + 7, + 19 + ], + [ + 7, + 19 + ], + [ + 7, + 19 + ], + [ + 7, + 19 + ], + [ + 8, + 31 + ], + [ + 8, + 31 + ], + [ + 8, + 32 + ], + [ + 8, + 32 + ], + [ + 6, + 1 + ], + [ + 6, + 1 + ], + [ + 6, + 1 + ], + [ + 6, + 1 + ], + [ + 6, + 1 + ], + [ + 6, + 1 + ], + [ + 6, + 1 + ], + [ + 6, + 1 + ], + [ + 6, + 12 + ], + [ + 6, + 12 + ], + [ + 6, + 12 + ], + [ + 6, + 12 + ], + [ + 6, + 12 + ], + [ + 6, + 12 + ], + [ + 6, + 12 + ], + [ + 6, + 12 + ], + [ + 8, + 53 + ], + [ + 8, + 53 + ], + [ + 8, + 54 + ], + [ + 8, + 54 + ], + [ + 7, + 26 + ], + [ + 7, + 26 + ], + [ + 7, + 26 + ], + [ + 7, + 26 + ], + [ + 8, + 39 + ], + [ + 8, + 39 + ], + [ + 8, + 40 + ], + [ + 8, + 40 + ], + [ + 8, + 41 + ], + [ + 8, + 41 + ], + [ + 8, + 42 + ], + [ + 8, + 42 + ], + [ + 8, + 43 + ], + [ + 8, + 43 + ], + [ + 8, + 44 + ], + [ + 8, + 44 + ], + [ + 7, + 21 + ], + [ + 7, + 21 + ], + [ + 7, + 21 + ], + [ + 7, + 21 + ], + [ + 7, + 28 + ], + [ + 7, + 28 + ], + [ + 7, + 28 + ], + [ + 7, + 28 + ], + [ + 8, + 61 + ], + [ + 8, + 61 + ], + [ + 8, + 62 + ], + [ + 8, + 62 + ], + [ + 8, + 63 + ], + [ + 8, + 63 + ], + [ + 8, + 0 + ], + [ + 8, + 0 + ], + [ + 8, + 320 + ], + [ + 8, + 320 + ], + [ + 8, + 384 + ], + [ + 8, + 384 + ], + [ + 5, + 10 + ], + [ + 5, + 10 + ], + [ + 5, + 10 + ], + [ + 5, + 10 + ], + [ + 5, + 10 + ], + [ + 5, + 10 + ], + [ + 5, + 10 + ], + [ + 5, + 10 + ], + [ + 5, + 10 + ], + [ + 5, + 10 + ], + [ + 5, + 10 + ], + [ + 5, + 10 + ], + [ + 5, + 10 + ], + [ + 5, + 10 + ], + [ + 5, + 10 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 5, + 11 + ], + [ + 5, + 11 + ], + [ + 5, + 11 + ], + [ + 5, + 11 + ], + [ + 5, + 11 + ], + [ + 5, + 11 + ], + [ + 5, + 11 + ], + [ + 5, + 11 + ], + [ + 5, + 11 + ], + [ + 5, + 11 + ], + [ + 5, + 11 + ], + [ + 5, + 11 + ], + [ + 5, + 11 + ], + [ + 5, + 11 + ], + [ + 5, + 11 + ], + [ + 7, + 27 + ], + [ + 7, + 27 + ], + [ + 7, + 27 + ], + [ + 7, + 27 + ], + [ + 8, + 59 + ], + [ + 8, + 59 + ], + [ + 8, + 60 + ], + [ + 8, + 60 + ], + [ + 9, + 1472 + ], + [ + 9, + 1536 + ], + [ + 9, + 1600 + ], + [ + 9, + 1728 + ], + [ + 7, + 18 + ], + [ + 7, + 18 + ], + [ + 7, + 18 + ], + [ + 7, + 18 + ], + [ + 7, + 24 + ], + [ + 7, + 24 + ], + [ + 7, + 24 + ], + [ + 7, + 24 + ], + [ + 8, + 49 + ], + [ + 8, + 49 + ], + [ + 8, + 50 + ], + [ + 8, + 50 + ], + [ + 8, + 51 + ], + [ + 8, + 51 + ], + [ + 8, + 52 + ], + [ + 8, + 52 + ], + [ + 7, + 25 + ], + [ + 7, + 25 + ], + [ + 7, + 25 + ], + [ + 7, + 25 + ], + [ + 8, + 55 + ], + [ + 8, + 55 + ], + [ + 8, + 56 + ], + [ + 8, + 56 + ], + [ + 8, + 57 + ], + [ + 8, + 57 + ], + [ + 8, + 58 + ], + [ + 8, + 58 + ], + [ + 6, + 192 + ], + [ + 6, + 192 + ], + [ + 6, + 192 + ], + [ + 6, + 192 + ], + [ + 6, + 192 + ], + [ + 6, + 192 + ], + [ + 6, + 192 + ], + [ + 6, + 192 + ], + [ + 6, + 1664 + ], + [ + 6, + 1664 + ], + [ + 6, + 1664 + ], + [ + 6, + 1664 + ], + [ + 6, + 1664 + ], + [ + 6, + 1664 + ], + [ + 6, + 1664 + ], + [ + 6, + 1664 + ], + [ + 8, + 448 + ], + [ + 8, + 448 + ], + [ + 8, + 512 + ], + [ + 8, + 512 + ], + [ + 9, + 704 + ], + [ + 9, + 768 + ], + [ + 8, + 640 + ], + [ + 8, + 640 + ], + [ + 8, + 576 + ], + [ + 8, + 576 + ], + [ + 9, + 832 + ], + [ + 9, + 896 + ], + [ + 9, + 960 + ], + [ + 9, + 1024 + ], + [ + 9, + 1088 + ], + [ + 9, + 1152 + ], + [ + 9, + 1216 + ], + [ + 9, + 1280 + ], + [ + 9, + 1344 + ], + [ + 9, + 1408 + ], + [ + 7, + 256 + ], + [ + 7, + 256 + ], + [ + 7, + 256 + ], + [ + 7, + 256 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 2 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 4, + 3 + ], + [ + 5, + 128 + ], + [ + 5, + 128 + ], + [ + 5, + 128 + ], + [ + 5, + 128 + ], + [ + 5, + 128 + ], + [ + 5, + 128 + ], + [ + 5, + 128 + ], + [ + 5, + 128 + ], + [ + 5, + 128 + ], + [ + 5, + 128 + ], + [ + 5, + 128 + ], + [ + 5, + 128 + ], + [ + 5, + 128 + ], + [ + 5, + 128 + ], + [ + 5, + 128 + ], + [ + 5, + 128 + ], + [ + 5, + 8 + ], + [ + 5, + 8 + ], + [ + 5, + 8 + ], + [ + 5, + 8 + ], + [ + 5, + 8 + ], + [ + 5, + 8 + ], + [ + 5, + 8 + ], + [ + 5, + 8 + ], + [ + 5, + 8 + ], + [ + 5, + 8 + ], + [ + 5, + 8 + ], + [ + 5, + 8 + ], + [ + 5, + 8 + ], + [ + 5, + 8 + ], + [ + 5, + 8 + ], + [ + 5, + 8 + ], + [ + 5, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 9 + ], + [ + 6, + 16 + ], + [ + 6, + 16 + ], + [ + 6, + 16 + ], + [ + 6, + 16 + ], + [ + 6, + 16 + ], + [ + 6, + 16 + ], + [ + 6, + 16 + ], + [ + 6, + 16 + ], + [ + 6, + 17 + ], + [ + 6, + 17 + ], + [ + 6, + 17 + ], + [ + 6, + 17 + ], + [ + 6, + 17 + ], + [ + 6, + 17 + ], + [ + 6, + 17 + ], + [ + 6, + 17 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 6, + 14 + ], + [ + 6, + 14 + ], + [ + 6, + 14 + ], + [ + 6, + 14 + ], + [ + 6, + 14 + ], + [ + 6, + 14 + ], + [ + 6, + 14 + ], + [ + 6, + 14 + ], + [ + 6, + 15 + ], + [ + 6, + 15 + ], + [ + 6, + 15 + ], + [ + 6, + 15 + ], + [ + 6, + 15 + ], + [ + 6, + 15 + ], + [ + 6, + 15 + ], + [ + 6, + 15 + ], + [ + 5, + 64 + ], + [ + 5, + 64 + ], + [ + 5, + 64 + ], + [ + 5, + 64 + ], + [ + 5, + 64 + ], + [ + 5, + 64 + ], + [ + 5, + 64 + ], + [ + 5, + 64 + ], + [ + 5, + 64 + ], + [ + 5, + 64 + ], + [ + 5, + 64 + ], + [ + 5, + 64 + ], + [ + 5, + 64 + ], + [ + 5, + 64 + ], + [ + 5, + 64 + ], + [ + 5, + 64 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ], + [ + 4, + 7 + ] + ]; + var blackTable1 = [ + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + 12, + ccittEOL + ], + [ + 12, + ccittEOL + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + 11, + 1792 + ], + [ + 11, + 1792 + ], + [ + 11, + 1792 + ], + [ + 11, + 1792 + ], + [ + 12, + 1984 + ], + [ + 12, + 1984 + ], + [ + 12, + 2048 + ], + [ + 12, + 2048 + ], + [ + 12, + 2112 + ], + [ + 12, + 2112 + ], + [ + 12, + 2176 + ], + [ + 12, + 2176 + ], + [ + 12, + 2240 + ], + [ + 12, + 2240 + ], + [ + 12, + 2304 + ], + [ + 12, + 2304 + ], + [ + 11, + 1856 + ], + [ + 11, + 1856 + ], + [ + 11, + 1856 + ], + [ + 11, + 1856 + ], + [ + 11, + 1920 + ], + [ + 11, + 1920 + ], + [ + 11, + 1920 + ], + [ + 11, + 1920 + ], + [ + 12, + 2368 + ], + [ + 12, + 2368 + ], + [ + 12, + 2432 + ], + [ + 12, + 2432 + ], + [ + 12, + 2496 + ], + [ + 12, + 2496 + ], + [ + 12, + 2560 + ], + [ + 12, + 2560 + ], + [ + 10, + 18 + ], + [ + 10, + 18 + ], + [ + 10, + 18 + ], + [ + 10, + 18 + ], + [ + 10, + 18 + ], + [ + 10, + 18 + ], + [ + 10, + 18 + ], + [ + 10, + 18 + ], + [ + 12, + 52 + ], + [ + 12, + 52 + ], + [ + 13, + 640 + ], + [ + 13, + 704 + ], + [ + 13, + 768 + ], + [ + 13, + 832 + ], + [ + 12, + 55 + ], + [ + 12, + 55 + ], + [ + 12, + 56 + ], + [ + 12, + 56 + ], + [ + 13, + 1280 + ], + [ + 13, + 1344 + ], + [ + 13, + 1408 + ], + [ + 13, + 1472 + ], + [ + 12, + 59 + ], + [ + 12, + 59 + ], + [ + 12, + 60 + ], + [ + 12, + 60 + ], + [ + 13, + 1536 + ], + [ + 13, + 1600 + ], + [ + 11, + 24 + ], + [ + 11, + 24 + ], + [ + 11, + 24 + ], + [ + 11, + 24 + ], + [ + 11, + 25 + ], + [ + 11, + 25 + ], + [ + 11, + 25 + ], + [ + 11, + 25 + ], + [ + 13, + 1664 + ], + [ + 13, + 1728 + ], + [ + 12, + 320 + ], + [ + 12, + 320 + ], + [ + 12, + 384 + ], + [ + 12, + 384 + ], + [ + 12, + 448 + ], + [ + 12, + 448 + ], + [ + 13, + 512 + ], + [ + 13, + 576 + ], + [ + 12, + 53 + ], + [ + 12, + 53 + ], + [ + 12, + 54 + ], + [ + 12, + 54 + ], + [ + 13, + 896 + ], + [ + 13, + 960 + ], + [ + 13, + 1024 + ], + [ + 13, + 1088 + ], + [ + 13, + 1152 + ], + [ + 13, + 1216 + ], + [ + 10, + 64 + ], + [ + 10, + 64 + ], + [ + 10, + 64 + ], + [ + 10, + 64 + ], + [ + 10, + 64 + ], + [ + 10, + 64 + ], + [ + 10, + 64 + ], + [ + 10, + 64 + ] + ]; + var blackTable2 = [ + [ + 8, + 13 + ], + [ + 8, + 13 + ], + [ + 8, + 13 + ], + [ + 8, + 13 + ], + [ + 8, + 13 + ], + [ + 8, + 13 + ], + [ + 8, + 13 + ], + [ + 8, + 13 + ], + [ + 8, + 13 + ], + [ + 8, + 13 + ], + [ + 8, + 13 + ], + [ + 8, + 13 + ], + [ + 8, + 13 + ], + [ + 8, + 13 + ], + [ + 8, + 13 + ], + [ + 8, + 13 + ], + [ + 11, + 23 + ], + [ + 11, + 23 + ], + [ + 12, + 50 + ], + [ + 12, + 51 + ], + [ + 12, + 44 + ], + [ + 12, + 45 + ], + [ + 12, + 46 + ], + [ + 12, + 47 + ], + [ + 12, + 57 + ], + [ + 12, + 58 + ], + [ + 12, + 61 + ], + [ + 12, + 256 + ], + [ + 10, + 16 + ], + [ + 10, + 16 + ], + [ + 10, + 16 + ], + [ + 10, + 16 + ], + [ + 10, + 17 + ], + [ + 10, + 17 + ], + [ + 10, + 17 + ], + [ + 10, + 17 + ], + [ + 12, + 48 + ], + [ + 12, + 49 + ], + [ + 12, + 62 + ], + [ + 12, + 63 + ], + [ + 12, + 30 + ], + [ + 12, + 31 + ], + [ + 12, + 32 + ], + [ + 12, + 33 + ], + [ + 12, + 40 + ], + [ + 12, + 41 + ], + [ + 11, + 22 + ], + [ + 11, + 22 + ], + [ + 8, + 14 + ], + [ + 8, + 14 + ], + [ + 8, + 14 + ], + [ + 8, + 14 + ], + [ + 8, + 14 + ], + [ + 8, + 14 + ], + [ + 8, + 14 + ], + [ + 8, + 14 + ], + [ + 8, + 14 + ], + [ + 8, + 14 + ], + [ + 8, + 14 + ], + [ + 8, + 14 + ], + [ + 8, + 14 + ], + [ + 8, + 14 + ], + [ + 8, + 14 + ], + [ + 8, + 14 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 10 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 7, + 11 + ], + [ + 9, + 15 + ], + [ + 9, + 15 + ], + [ + 9, + 15 + ], + [ + 9, + 15 + ], + [ + 9, + 15 + ], + [ + 9, + 15 + ], + [ + 9, + 15 + ], + [ + 9, + 15 + ], + [ + 12, + 128 + ], + [ + 12, + 192 + ], + [ + 12, + 26 + ], + [ + 12, + 27 + ], + [ + 12, + 28 + ], + [ + 12, + 29 + ], + [ + 11, + 19 + ], + [ + 11, + 19 + ], + [ + 11, + 20 + ], + [ + 11, + 20 + ], + [ + 12, + 34 + ], + [ + 12, + 35 + ], + [ + 12, + 36 + ], + [ + 12, + 37 + ], + [ + 12, + 38 + ], + [ + 12, + 39 + ], + [ + 11, + 21 + ], + [ + 11, + 21 + ], + [ + 12, + 42 + ], + [ + 12, + 43 + ], + [ + 10, + 0 + ], + [ + 10, + 0 + ], + [ + 10, + 0 + ], + [ + 10, + 0 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ], + [ + 7, + 12 + ] + ]; + var blackTable3 = [ + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ], + [ + 6, + 9 + ], + [ + 6, + 8 + ], + [ + 5, + 7 + ], + [ + 5, + 7 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 6 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ], + [ + 3, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 1 + ], + [ + 3, + 4 + ], + [ + 3, + 4 + ], + [ + 3, + 4 + ], + [ + 3, + 4 + ], + [ + 3, + 4 + ], + [ + 3, + 4 + ], + [ + 3, + 4 + ], + [ + 3, + 4 + ], + [ + 2, + 3 + ], + [ + 2, + 3 + ], + [ + 2, + 3 + ], + [ + 2, + 3 + ], + [ + 2, + 3 + ], + [ + 2, + 3 + ], + [ + 2, + 3 + ], + [ + 2, + 3 + ], + [ + 2, + 3 + ], + [ + 2, + 3 + ], + [ + 2, + 3 + ], + [ + 2, + 3 + ], + [ + 2, + 3 + ], + [ + 2, + 3 + ], + [ + 2, + 3 + ], + [ + 2, + 3 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ] + ]; + function CCITTFaxStream(str, maybeLength, params) { + this.str = str; + this.dict = str.dict; + params = params || Dict.empty; + this.encoding = params.get('K') || 0; + this.eoline = params.get('EndOfLine') || false; + this.byteAlign = params.get('EncodedByteAlign') || false; + this.columns = params.get('Columns') || 1728; + this.rows = params.get('Rows') || 0; + var eoblock = params.get('EndOfBlock'); + if (eoblock === null || eoblock === undefined) { + eoblock = true; + } + this.eoblock = eoblock; + this.black = params.get('BlackIs1') || false; + this.codingLine = new Uint32Array(this.columns + 1); + this.refLine = new Uint32Array(this.columns + 2); + this.codingLine[0] = this.columns; + this.codingPos = 0; + this.row = 0; + this.nextLine2D = this.encoding < 0; + this.inputBits = 0; + this.inputBuf = 0; + this.outputBits = 0; + var code1; + while ((code1 = this.lookBits(12)) === 0) { + this.eatBits(1); + } + if (code1 === 1) { + this.eatBits(12); + } + if (this.encoding > 0) { + this.nextLine2D = !this.lookBits(1); + this.eatBits(1); + } + DecodeStream.call(this, maybeLength); + } + CCITTFaxStream.prototype = Object.create(DecodeStream.prototype); + CCITTFaxStream.prototype.readBlock = function CCITTFaxStream_readBlock() { + while (!this.eof) { + var c = this.lookChar(); + this.ensureBuffer(this.bufferLength + 1); + this.buffer[this.bufferLength++] = c; + } + }; + CCITTFaxStream.prototype.addPixels = function ccittFaxStreamAddPixels(a1, blackPixels) { + var codingLine = this.codingLine; + var codingPos = this.codingPos; + if (a1 > codingLine[codingPos]) { + if (a1 > this.columns) { + info('row is wrong length'); + this.err = true; + a1 = this.columns; + } + if (codingPos & 1 ^ blackPixels) { + ++codingPos; + } + codingLine[codingPos] = a1; + } + this.codingPos = codingPos; + }; + CCITTFaxStream.prototype.addPixelsNeg = function ccittFaxStreamAddPixelsNeg(a1, blackPixels) { + var codingLine = this.codingLine; + var codingPos = this.codingPos; + if (a1 > codingLine[codingPos]) { + if (a1 > this.columns) { + info('row is wrong length'); + this.err = true; + a1 = this.columns; + } + if (codingPos & 1 ^ blackPixels) { + ++codingPos; + } + codingLine[codingPos] = a1; + } else if (a1 < codingLine[codingPos]) { + if (a1 < 0) { + info('invalid code'); + this.err = true; + a1 = 0; + } + while (codingPos > 0 && a1 < codingLine[codingPos - 1]) { + --codingPos; + } + codingLine[codingPos] = a1; + } + this.codingPos = codingPos; + }; + CCITTFaxStream.prototype.lookChar = function CCITTFaxStream_lookChar() { + var refLine = this.refLine; + var codingLine = this.codingLine; + var columns = this.columns; + var refPos, blackPixels, bits, i; + if (this.outputBits === 0) { + if (this.eof) { + return null; + } + this.err = false; + var code1, code2, code3; + if (this.nextLine2D) { + for (i = 0; codingLine[i] < columns; ++i) { + refLine[i] = codingLine[i]; + } + refLine[i++] = columns; + refLine[i] = columns; + codingLine[0] = 0; + this.codingPos = 0; + refPos = 0; + blackPixels = 0; + while (codingLine[this.codingPos] < columns) { + code1 = this.getTwoDimCode(); + switch (code1) { + case twoDimPass: + this.addPixels(refLine[refPos + 1], blackPixels); + if (refLine[refPos + 1] < columns) { + refPos += 2; + } + break; + case twoDimHoriz: + code1 = code2 = 0; + if (blackPixels) { + do { + code1 += code3 = this.getBlackCode(); + } while (code3 >= 64); + do { + code2 += code3 = this.getWhiteCode(); + } while (code3 >= 64); + } else { + do { + code1 += code3 = this.getWhiteCode(); + } while (code3 >= 64); + do { + code2 += code3 = this.getBlackCode(); + } while (code3 >= 64); + } + this.addPixels(codingLine[this.codingPos] + code1, blackPixels); + if (codingLine[this.codingPos] < columns) { + this.addPixels(codingLine[this.codingPos] + code2, blackPixels ^ 1); + } + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + break; + case twoDimVertR3: + this.addPixels(refLine[refPos] + 3, blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + ++refPos; + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case twoDimVertR2: + this.addPixels(refLine[refPos] + 2, blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + ++refPos; + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case twoDimVertR1: + this.addPixels(refLine[refPos] + 1, blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + ++refPos; + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case twoDimVert0: + this.addPixels(refLine[refPos], blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + ++refPos; + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case twoDimVertL3: + this.addPixelsNeg(refLine[refPos] - 3, blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + if (refPos > 0) { + --refPos; + } else { + ++refPos; + } + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case twoDimVertL2: + this.addPixelsNeg(refLine[refPos] - 2, blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + if (refPos > 0) { + --refPos; + } else { + ++refPos; + } + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case twoDimVertL1: + this.addPixelsNeg(refLine[refPos] - 1, blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + if (refPos > 0) { + --refPos; + } else { + ++refPos; + } + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case ccittEOF: + this.addPixels(columns, 0); + this.eof = true; + break; + default: + info('bad 2d code'); + this.addPixels(columns, 0); + this.err = true; + } + } + } else { + codingLine[0] = 0; + this.codingPos = 0; + blackPixels = 0; + while (codingLine[this.codingPos] < columns) { + code1 = 0; + if (blackPixels) { + do { + code1 += code3 = this.getBlackCode(); + } while (code3 >= 64); + } else { + do { + code1 += code3 = this.getWhiteCode(); + } while (code3 >= 64); + } + this.addPixels(codingLine[this.codingPos] + code1, blackPixels); + blackPixels ^= 1; + } + } + var gotEOL = false; + if (this.byteAlign) { + this.inputBits &= ~7; + } + if (!this.eoblock && this.row === this.rows - 1) { + this.eof = true; + } else { + code1 = this.lookBits(12); + if (this.eoline) { + while (code1 !== ccittEOF && code1 !== 1) { + this.eatBits(1); + code1 = this.lookBits(12); + } + } else { + while (code1 === 0) { + this.eatBits(1); + code1 = this.lookBits(12); + } + } + if (code1 === 1) { + this.eatBits(12); + gotEOL = true; + } else if (code1 === ccittEOF) { + this.eof = true; + } + } + if (!this.eof && this.encoding > 0) { + this.nextLine2D = !this.lookBits(1); + this.eatBits(1); + } + if (this.eoblock && gotEOL && this.byteAlign) { + code1 = this.lookBits(12); + if (code1 === 1) { + this.eatBits(12); + if (this.encoding > 0) { + this.lookBits(1); + this.eatBits(1); + } + if (this.encoding >= 0) { + for (i = 0; i < 4; ++i) { + code1 = this.lookBits(12); + if (code1 !== 1) { + info('bad rtc code: ' + code1); + } + this.eatBits(12); + if (this.encoding > 0) { + this.lookBits(1); + this.eatBits(1); + } + } + } + this.eof = true; + } + } else if (this.err && this.eoline) { + while (true) { + code1 = this.lookBits(13); + if (code1 === ccittEOF) { + this.eof = true; + return null; + } + if (code1 >> 1 === 1) { + break; + } + this.eatBits(1); + } + this.eatBits(12); + if (this.encoding > 0) { + this.eatBits(1); + this.nextLine2D = !(code1 & 1); + } + } + if (codingLine[0] > 0) { + this.outputBits = codingLine[this.codingPos = 0]; + } else { + this.outputBits = codingLine[this.codingPos = 1]; + } + this.row++; + } + var c; + if (this.outputBits >= 8) { + c = this.codingPos & 1 ? 0 : 0xFF; + this.outputBits -= 8; + if (this.outputBits === 0 && codingLine[this.codingPos] < columns) { + this.codingPos++; + this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1]; + } + } else { + bits = 8; + c = 0; + do { + if (this.outputBits > bits) { + c <<= bits; + if (!(this.codingPos & 1)) { + c |= 0xFF >> 8 - bits; + } + this.outputBits -= bits; + bits = 0; + } else { + c <<= this.outputBits; + if (!(this.codingPos & 1)) { + c |= 0xFF >> 8 - this.outputBits; + } + bits -= this.outputBits; + this.outputBits = 0; + if (codingLine[this.codingPos] < columns) { + this.codingPos++; + this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1]; + } else if (bits > 0) { + c <<= bits; + bits = 0; + } + } + } while (bits); + } + if (this.black) { + c ^= 0xFF; + } + return c; + }; + CCITTFaxStream.prototype.findTableCode = function ccittFaxStreamFindTableCode(start, end, table, limit) { + var limitValue = limit || 0; + for (var i = start; i <= end; ++i) { + var code = this.lookBits(i); + if (code === ccittEOF) { + return [ + true, + 1, + false + ]; + } + if (i < end) { + code <<= end - i; + } + if (!limitValue || code >= limitValue) { + var p = table[code - limitValue]; + if (p[0] === i) { + this.eatBits(i); + return [ + true, + p[1], + true + ]; + } + } + } + return [ + false, + 0, + false + ]; + }; + CCITTFaxStream.prototype.getTwoDimCode = function ccittFaxStreamGetTwoDimCode() { + var code = 0; + var p; + if (this.eoblock) { + code = this.lookBits(7); + p = twoDimTable[code]; + if (p && p[0] > 0) { + this.eatBits(p[0]); + return p[1]; + } + } else { + var result = this.findTableCode(1, 7, twoDimTable); + if (result[0] && result[2]) { + return result[1]; + } + } + info('Bad two dim code'); + return ccittEOF; + }; + CCITTFaxStream.prototype.getWhiteCode = function ccittFaxStreamGetWhiteCode() { + var code = 0; + var p; + if (this.eoblock) { + code = this.lookBits(12); + if (code === ccittEOF) { + return 1; + } + if (code >> 5 === 0) { + p = whiteTable1[code]; + } else { + p = whiteTable2[code >> 3]; + } + if (p[0] > 0) { + this.eatBits(p[0]); + return p[1]; + } + } else { + var result = this.findTableCode(1, 9, whiteTable2); + if (result[0]) { + return result[1]; + } + result = this.findTableCode(11, 12, whiteTable1); + if (result[0]) { + return result[1]; + } + } + info('bad white code'); + this.eatBits(1); + return 1; + }; + CCITTFaxStream.prototype.getBlackCode = function ccittFaxStreamGetBlackCode() { + var code, p; + if (this.eoblock) { + code = this.lookBits(13); + if (code === ccittEOF) { + return 1; + } + if (code >> 7 === 0) { + p = blackTable1[code]; + } else if (code >> 9 === 0 && code >> 7 !== 0) { + p = blackTable2[(code >> 1) - 64]; + } else { + p = blackTable3[code >> 7]; + } + if (p[0] > 0) { + this.eatBits(p[0]); + return p[1]; + } + } else { + var result = this.findTableCode(2, 6, blackTable3); + if (result[0]) { + return result[1]; + } + result = this.findTableCode(7, 12, blackTable2, 64); + if (result[0]) { + return result[1]; + } + result = this.findTableCode(10, 13, blackTable1); + if (result[0]) { + return result[1]; + } + } + info('bad black code'); + this.eatBits(1); + return 1; + }; + CCITTFaxStream.prototype.lookBits = function CCITTFaxStream_lookBits(n) { + var c; + while (this.inputBits < n) { + if ((c = this.str.getByte()) === -1) { + if (this.inputBits === 0) { + return ccittEOF; + } + return this.inputBuf << n - this.inputBits & 0xFFFF >> 16 - n; + } + this.inputBuf = this.inputBuf << 8 | c; + this.inputBits += 8; + } + return this.inputBuf >> this.inputBits - n & 0xFFFF >> 16 - n; + }; + CCITTFaxStream.prototype.eatBits = function CCITTFaxStream_eatBits(n) { + if ((this.inputBits -= n) < 0) { + this.inputBits = 0; + } + }; + return CCITTFaxStream; +}(); +var LZWStream = function LZWStreamClosure() { + function LZWStream(str, maybeLength, earlyChange) { + this.str = str; + this.dict = str.dict; + this.cachedData = 0; + this.bitsCached = 0; + var maxLzwDictionarySize = 4096; + var lzwState = { + earlyChange: earlyChange, + codeLength: 9, + nextCode: 258, + dictionaryValues: new Uint8Array(maxLzwDictionarySize), + dictionaryLengths: new Uint16Array(maxLzwDictionarySize), + dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize), + currentSequence: new Uint8Array(maxLzwDictionarySize), + currentSequenceLength: 0 + }; + for (var i = 0; i < 256; ++i) { + lzwState.dictionaryValues[i] = i; + lzwState.dictionaryLengths[i] = 1; + } + this.lzwState = lzwState; + DecodeStream.call(this, maybeLength); + } + LZWStream.prototype = Object.create(DecodeStream.prototype); + LZWStream.prototype.readBits = function LZWStream_readBits(n) { + var bitsCached = this.bitsCached; + var cachedData = this.cachedData; + while (bitsCached < n) { + var c = this.str.getByte(); + if (c === -1) { + this.eof = true; + return null; + } + cachedData = cachedData << 8 | c; + bitsCached += 8; + } + this.bitsCached = bitsCached -= n; + this.cachedData = cachedData; + this.lastCode = null; + return cachedData >>> bitsCached & (1 << n) - 1; + }; + LZWStream.prototype.readBlock = function LZWStream_readBlock() { + var blockSize = 512; + var estimatedDecodedSize = blockSize * 2, decodedSizeDelta = blockSize; + var i, j, q; + var lzwState = this.lzwState; + if (!lzwState) { + return; + } + var earlyChange = lzwState.earlyChange; + var nextCode = lzwState.nextCode; + var dictionaryValues = lzwState.dictionaryValues; + var dictionaryLengths = lzwState.dictionaryLengths; + var dictionaryPrevCodes = lzwState.dictionaryPrevCodes; + var codeLength = lzwState.codeLength; + var prevCode = lzwState.prevCode; + var currentSequence = lzwState.currentSequence; + var currentSequenceLength = lzwState.currentSequenceLength; + var decodedLength = 0; + var currentBufferLength = this.bufferLength; + var buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize); + for (i = 0; i < blockSize; i++) { + var code = this.readBits(codeLength); + var hasPrev = currentSequenceLength > 0; + if (code < 256) { + currentSequence[0] = code; + currentSequenceLength = 1; + } else if (code >= 258) { + if (code < nextCode) { + currentSequenceLength = dictionaryLengths[code]; + for (j = currentSequenceLength - 1, q = code; j >= 0; j--) { + currentSequence[j] = dictionaryValues[q]; + q = dictionaryPrevCodes[q]; + } + } else { + currentSequence[currentSequenceLength++] = currentSequence[0]; + } + } else if (code === 256) { + codeLength = 9; + nextCode = 258; + currentSequenceLength = 0; + continue; + } else { + this.eof = true; + delete this.lzwState; + break; + } + if (hasPrev) { + dictionaryPrevCodes[nextCode] = prevCode; + dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1; + dictionaryValues[nextCode] = currentSequence[0]; + nextCode++; + codeLength = nextCode + earlyChange & nextCode + earlyChange - 1 ? codeLength : Math.min(Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1, 12) | 0; + } + prevCode = code; + decodedLength += currentSequenceLength; + if (estimatedDecodedSize < decodedLength) { + do { + estimatedDecodedSize += decodedSizeDelta; + } while (estimatedDecodedSize < decodedLength); + buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize); + } + for (j = 0; j < currentSequenceLength; j++) { + buffer[currentBufferLength++] = currentSequence[j]; + } + } + lzwState.nextCode = nextCode; + lzwState.codeLength = codeLength; + lzwState.prevCode = prevCode; + lzwState.currentSequenceLength = currentSequenceLength; + this.bufferLength = currentBufferLength; + }; + return LZWStream; +}(); +var NullStream = function NullStreamClosure() { + function NullStream() { + Stream.call(this, new Uint8Array(0)); + } + NullStream.prototype = Stream.prototype; + return NullStream; +}(); +exports.Ascii85Stream = Ascii85Stream; +exports.AsciiHexStream = AsciiHexStream; +exports.CCITTFaxStream = CCITTFaxStream; +exports.DecryptStream = DecryptStream; +exports.DecodeStream = DecodeStream; +exports.FlateStream = FlateStream; +exports.Jbig2Stream = Jbig2Stream; +exports.JpegStream = JpegStream; +exports.JpxStream = JpxStream; +exports.NullStream = NullStream; +exports.PredictorStream = PredictorStream; +exports.RunLengthStream = RunLengthStream; +exports.Stream = Stream; +exports.StreamsSequenceStream = StreamsSequenceStream; +exports.StringStream = StringStream; +exports.LZWStream = LZWStream; + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var corePrimitives = __w_pdfjs_require__(1); +var coreFunction = __w_pdfjs_require__(6); +var error = sharedUtil.error; +var info = sharedUtil.info; +var isArray = sharedUtil.isArray; +var isString = sharedUtil.isString; +var shadow = sharedUtil.shadow; +var warn = sharedUtil.warn; +var isDict = corePrimitives.isDict; +var isName = corePrimitives.isName; +var isStream = corePrimitives.isStream; +var PDFFunction = coreFunction.PDFFunction; +var ColorSpace = function ColorSpaceClosure() { + function resizeRgbImage(src, bpc, w1, h1, w2, h2, alpha01, dest) { + var COMPONENTS = 3; + alpha01 = alpha01 !== 1 ? 0 : alpha01; + var xRatio = w1 / w2; + var yRatio = h1 / h2; + var i, j, py, newIndex = 0, oldIndex; + var xScaled = new Uint16Array(w2); + var w1Scanline = w1 * COMPONENTS; + for (i = 0; i < w2; i++) { + xScaled[i] = Math.floor(i * xRatio) * COMPONENTS; + } + for (i = 0; i < h2; i++) { + py = Math.floor(i * yRatio) * w1Scanline; + for (j = 0; j < w2; j++) { + oldIndex = py + xScaled[j]; + dest[newIndex++] = src[oldIndex++]; + dest[newIndex++] = src[oldIndex++]; + dest[newIndex++] = src[oldIndex++]; + newIndex += alpha01; + } + } + } + function ColorSpace() { + error('should not call ColorSpace constructor'); + } + ColorSpace.prototype = { + getRgb: function ColorSpace_getRgb(src, srcOffset) { + var rgb = new Uint8Array(3); + this.getRgbItem(src, srcOffset, rgb, 0); + return rgb; + }, + getRgbItem: function ColorSpace_getRgbItem(src, srcOffset, dest, destOffset) { + error('Should not call ColorSpace.getRgbItem'); + }, + getRgbBuffer: function ColorSpace_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + error('Should not call ColorSpace.getRgbBuffer'); + }, + getOutputLength: function ColorSpace_getOutputLength(inputLength, alpha01) { + error('Should not call ColorSpace.getOutputLength'); + }, + isPassthrough: function ColorSpace_isPassthrough(bits) { + return false; + }, + fillRgb: function ColorSpace_fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) { + var count = originalWidth * originalHeight; + var rgbBuf = null; + var numComponentColors = 1 << bpc; + var needsResizing = originalHeight !== height || originalWidth !== width; + var i, ii; + if (this.isPassthrough(bpc)) { + rgbBuf = comps; + } else if (this.numComps === 1 && count > numComponentColors && this.name !== 'DeviceGray' && this.name !== 'DeviceRGB') { + var allColors = bpc <= 8 ? new Uint8Array(numComponentColors) : new Uint16Array(numComponentColors); + var key; + for (i = 0; i < numComponentColors; i++) { + allColors[i] = i; + } + var colorMap = new Uint8Array(numComponentColors * 3); + this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bpc, 0); + var destPos, rgbPos; + if (!needsResizing) { + destPos = 0; + for (i = 0; i < count; ++i) { + key = comps[i] * 3; + dest[destPos++] = colorMap[key]; + dest[destPos++] = colorMap[key + 1]; + dest[destPos++] = colorMap[key + 2]; + destPos += alpha01; + } + } else { + rgbBuf = new Uint8Array(count * 3); + rgbPos = 0; + for (i = 0; i < count; ++i) { + key = comps[i] * 3; + rgbBuf[rgbPos++] = colorMap[key]; + rgbBuf[rgbPos++] = colorMap[key + 1]; + rgbBuf[rgbPos++] = colorMap[key + 2]; + } + } + } else { + if (!needsResizing) { + this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01); + } else { + rgbBuf = new Uint8Array(count * 3); + this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, 0); + } + } + if (rgbBuf) { + if (needsResizing) { + resizeRgbImage(rgbBuf, bpc, originalWidth, originalHeight, width, height, alpha01, dest); + } else { + rgbPos = 0; + destPos = 0; + for (i = 0, ii = width * actualHeight; i < ii; i++) { + dest[destPos++] = rgbBuf[rgbPos++]; + dest[destPos++] = rgbBuf[rgbPos++]; + dest[destPos++] = rgbBuf[rgbPos++]; + destPos += alpha01; + } + } + } + }, + usesZeroToOneRange: true + }; + ColorSpace.parse = function ColorSpace_parse(cs, xref, res) { + var IR = ColorSpace.parseToIR(cs, xref, res); + if (IR instanceof AlternateCS) { + return IR; + } + return ColorSpace.fromIR(IR); + }; + ColorSpace.fromIR = function ColorSpace_fromIR(IR) { + var name = isArray(IR) ? IR[0] : IR; + var whitePoint, blackPoint, gamma; + switch (name) { + case 'DeviceGrayCS': + return this.singletons.gray; + case 'DeviceRgbCS': + return this.singletons.rgb; + case 'DeviceCmykCS': + return this.singletons.cmyk; + case 'CalGrayCS': + whitePoint = IR[1]; + blackPoint = IR[2]; + gamma = IR[3]; + return new CalGrayCS(whitePoint, blackPoint, gamma); + case 'CalRGBCS': + whitePoint = IR[1]; + blackPoint = IR[2]; + gamma = IR[3]; + var matrix = IR[4]; + return new CalRGBCS(whitePoint, blackPoint, gamma, matrix); + case 'PatternCS': + var basePatternCS = IR[1]; + if (basePatternCS) { + basePatternCS = ColorSpace.fromIR(basePatternCS); + } + return new PatternCS(basePatternCS); + case 'IndexedCS': + var baseIndexedCS = IR[1]; + var hiVal = IR[2]; + var lookup = IR[3]; + return new IndexedCS(ColorSpace.fromIR(baseIndexedCS), hiVal, lookup); + case 'AlternateCS': + var numComps = IR[1]; + var alt = IR[2]; + var tintFnIR = IR[3]; + return new AlternateCS(numComps, ColorSpace.fromIR(alt), PDFFunction.fromIR(tintFnIR)); + case 'LabCS': + whitePoint = IR[1]; + blackPoint = IR[2]; + var range = IR[3]; + return new LabCS(whitePoint, blackPoint, range); + default: + error('Unknown name ' + name); + } + return null; + }; + ColorSpace.parseToIR = function ColorSpace_parseToIR(cs, xref, res) { + if (isName(cs)) { + var colorSpaces = res.get('ColorSpace'); + if (isDict(colorSpaces)) { + var refcs = colorSpaces.get(cs.name); + if (refcs) { + cs = refcs; + } + } + } + cs = xref.fetchIfRef(cs); + if (isName(cs)) { + switch (cs.name) { + case 'DeviceGray': + case 'G': + return 'DeviceGrayCS'; + case 'DeviceRGB': + case 'RGB': + return 'DeviceRgbCS'; + case 'DeviceCMYK': + case 'CMYK': + return 'DeviceCmykCS'; + case 'Pattern': + return [ + 'PatternCS', + null + ]; + default: + error('unrecognized colorspace ' + cs.name); + } + } else if (isArray(cs)) { + var mode = xref.fetchIfRef(cs[0]).name; + var numComps, params, alt, whitePoint, blackPoint, gamma; + switch (mode) { + case 'DeviceGray': + case 'G': + return 'DeviceGrayCS'; + case 'DeviceRGB': + case 'RGB': + return 'DeviceRgbCS'; + case 'DeviceCMYK': + case 'CMYK': + return 'DeviceCmykCS'; + case 'CalGray': + params = xref.fetchIfRef(cs[1]); + whitePoint = params.getArray('WhitePoint'); + blackPoint = params.getArray('BlackPoint'); + gamma = params.get('Gamma'); + return [ + 'CalGrayCS', + whitePoint, + blackPoint, + gamma + ]; + case 'CalRGB': + params = xref.fetchIfRef(cs[1]); + whitePoint = params.getArray('WhitePoint'); + blackPoint = params.getArray('BlackPoint'); + gamma = params.getArray('Gamma'); + var matrix = params.getArray('Matrix'); + return [ + 'CalRGBCS', + whitePoint, + blackPoint, + gamma, + matrix + ]; + case 'ICCBased': + var stream = xref.fetchIfRef(cs[1]); + var dict = stream.dict; + numComps = dict.get('N'); + alt = dict.get('Alternate'); + if (alt) { + var altIR = ColorSpace.parseToIR(alt, xref, res); + var altCS = ColorSpace.fromIR(altIR); + if (altCS.numComps === numComps) { + return altIR; + } + warn('ICCBased color space: Ignoring incorrect /Alternate entry.'); + } + if (numComps === 1) { + return 'DeviceGrayCS'; + } else if (numComps === 3) { + return 'DeviceRgbCS'; + } else if (numComps === 4) { + return 'DeviceCmykCS'; + } + break; + case 'Pattern': + var basePatternCS = cs[1] || null; + if (basePatternCS) { + basePatternCS = ColorSpace.parseToIR(basePatternCS, xref, res); + } + return [ + 'PatternCS', + basePatternCS + ]; + case 'Indexed': + case 'I': + var baseIndexedCS = ColorSpace.parseToIR(cs[1], xref, res); + var hiVal = xref.fetchIfRef(cs[2]) + 1; + var lookup = xref.fetchIfRef(cs[3]); + if (isStream(lookup)) { + lookup = lookup.getBytes(); + } + return [ + 'IndexedCS', + baseIndexedCS, + hiVal, + lookup + ]; + case 'Separation': + case 'DeviceN': + var name = xref.fetchIfRef(cs[1]); + numComps = isArray(name) ? name.length : 1; + alt = ColorSpace.parseToIR(cs[2], xref, res); + var tintFnIR = PDFFunction.getIR(xref, xref.fetchIfRef(cs[3])); + return [ + 'AlternateCS', + numComps, + alt, + tintFnIR + ]; + case 'Lab': + params = xref.fetchIfRef(cs[1]); + whitePoint = params.getArray('WhitePoint'); + blackPoint = params.getArray('BlackPoint'); + var range = params.getArray('Range'); + return [ + 'LabCS', + whitePoint, + blackPoint, + range + ]; + default: + error('unimplemented color space object "' + mode + '"'); + } + } else { + error('unrecognized color space object: "' + cs + '"'); + } + return null; + }; + ColorSpace.isDefaultDecode = function ColorSpace_isDefaultDecode(decode, n) { + if (!isArray(decode)) { + return true; + } + if (n * 2 !== decode.length) { + warn('The decode map is not the correct length'); + return true; + } + for (var i = 0, ii = decode.length; i < ii; i += 2) { + if (decode[i] !== 0 || decode[i + 1] !== 1) { + return false; + } + } + return true; + }; + ColorSpace.singletons = { + get gray() { + return shadow(this, 'gray', new DeviceGrayCS()); + }, + get rgb() { + return shadow(this, 'rgb', new DeviceRgbCS()); + }, + get cmyk() { + return shadow(this, 'cmyk', new DeviceCmykCS()); + } + }; + return ColorSpace; +}(); +var AlternateCS = function AlternateCSClosure() { + function AlternateCS(numComps, base, tintFn) { + this.name = 'Alternate'; + this.numComps = numComps; + this.defaultColor = new Float32Array(numComps); + for (var i = 0; i < numComps; ++i) { + this.defaultColor[i] = 1; + } + this.base = base; + this.tintFn = tintFn; + this.tmpBuf = new Float32Array(base.numComps); + } + AlternateCS.prototype = { + getRgb: ColorSpace.prototype.getRgb, + getRgbItem: function AlternateCS_getRgbItem(src, srcOffset, dest, destOffset) { + var tmpBuf = this.tmpBuf; + this.tintFn(src, srcOffset, tmpBuf, 0); + this.base.getRgbItem(tmpBuf, 0, dest, destOffset); + }, + getRgbBuffer: function AlternateCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + var tintFn = this.tintFn; + var base = this.base; + var scale = 1 / ((1 << bits) - 1); + var baseNumComps = base.numComps; + var usesZeroToOneRange = base.usesZeroToOneRange; + var isPassthrough = (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0; + var pos = isPassthrough ? destOffset : 0; + var baseBuf = isPassthrough ? dest : new Uint8Array(baseNumComps * count); + var numComps = this.numComps; + var scaled = new Float32Array(numComps); + var tinted = new Float32Array(baseNumComps); + var i, j; + for (i = 0; i < count; i++) { + for (j = 0; j < numComps; j++) { + scaled[j] = src[srcOffset++] * scale; + } + tintFn(scaled, 0, tinted, 0); + if (usesZeroToOneRange) { + for (j = 0; j < baseNumComps; j++) { + baseBuf[pos++] = tinted[j] * 255; + } + } else { + base.getRgbItem(tinted, 0, baseBuf, pos); + pos += baseNumComps; + } + } + if (!isPassthrough) { + base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01); + } + }, + getOutputLength: function AlternateCS_getOutputLength(inputLength, alpha01) { + return this.base.getOutputLength(inputLength * this.base.numComps / this.numComps, alpha01); + }, + isPassthrough: ColorSpace.prototype.isPassthrough, + fillRgb: ColorSpace.prototype.fillRgb, + isDefaultDecode: function AlternateCS_isDefaultDecode(decodeMap) { + return ColorSpace.isDefaultDecode(decodeMap, this.numComps); + }, + usesZeroToOneRange: true + }; + return AlternateCS; +}(); +var PatternCS = function PatternCSClosure() { + function PatternCS(baseCS) { + this.name = 'Pattern'; + this.base = baseCS; + } + PatternCS.prototype = {}; + return PatternCS; +}(); +var IndexedCS = function IndexedCSClosure() { + function IndexedCS(base, highVal, lookup) { + this.name = 'Indexed'; + this.numComps = 1; + this.defaultColor = new Uint8Array(this.numComps); + this.base = base; + this.highVal = highVal; + var baseNumComps = base.numComps; + var length = baseNumComps * highVal; + if (isStream(lookup)) { + this.lookup = new Uint8Array(length); + var bytes = lookup.getBytes(length); + this.lookup.set(bytes); + } else if (isString(lookup)) { + this.lookup = new Uint8Array(length); + for (var i = 0; i < length; ++i) { + this.lookup[i] = lookup.charCodeAt(i); + } + } else if (lookup instanceof Uint8Array || lookup instanceof Array) { + this.lookup = lookup; + } else { + error('Unrecognized lookup table: ' + lookup); + } + } + IndexedCS.prototype = { + getRgb: ColorSpace.prototype.getRgb, + getRgbItem: function IndexedCS_getRgbItem(src, srcOffset, dest, destOffset) { + var numComps = this.base.numComps; + var start = src[srcOffset] * numComps; + this.base.getRgbItem(this.lookup, start, dest, destOffset); + }, + getRgbBuffer: function IndexedCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + var base = this.base; + var numComps = base.numComps; + var outputDelta = base.getOutputLength(numComps, alpha01); + var lookup = this.lookup; + for (var i = 0; i < count; ++i) { + var lookupPos = src[srcOffset++] * numComps; + base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01); + destOffset += outputDelta; + } + }, + getOutputLength: function IndexedCS_getOutputLength(inputLength, alpha01) { + return this.base.getOutputLength(inputLength * this.base.numComps, alpha01); + }, + isPassthrough: ColorSpace.prototype.isPassthrough, + fillRgb: ColorSpace.prototype.fillRgb, + isDefaultDecode: function IndexedCS_isDefaultDecode(decodeMap) { + return true; + }, + usesZeroToOneRange: true + }; + return IndexedCS; +}(); +var DeviceGrayCS = function DeviceGrayCSClosure() { + function DeviceGrayCS() { + this.name = 'DeviceGray'; + this.numComps = 1; + this.defaultColor = new Float32Array(this.numComps); + } + DeviceGrayCS.prototype = { + getRgb: ColorSpace.prototype.getRgb, + getRgbItem: function DeviceGrayCS_getRgbItem(src, srcOffset, dest, destOffset) { + var c = src[srcOffset] * 255 | 0; + c = c < 0 ? 0 : c > 255 ? 255 : c; + dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c; + }, + getRgbBuffer: function DeviceGrayCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + var scale = 255 / ((1 << bits) - 1); + var j = srcOffset, q = destOffset; + for (var i = 0; i < count; ++i) { + var c = scale * src[j++] | 0; + dest[q++] = c; + dest[q++] = c; + dest[q++] = c; + q += alpha01; + } + }, + getOutputLength: function DeviceGrayCS_getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01); + }, + isPassthrough: ColorSpace.prototype.isPassthrough, + fillRgb: ColorSpace.prototype.fillRgb, + isDefaultDecode: function DeviceGrayCS_isDefaultDecode(decodeMap) { + return ColorSpace.isDefaultDecode(decodeMap, this.numComps); + }, + usesZeroToOneRange: true + }; + return DeviceGrayCS; +}(); +var DeviceRgbCS = function DeviceRgbCSClosure() { + function DeviceRgbCS() { + this.name = 'DeviceRGB'; + this.numComps = 3; + this.defaultColor = new Float32Array(this.numComps); + } + DeviceRgbCS.prototype = { + getRgb: ColorSpace.prototype.getRgb, + getRgbItem: function DeviceRgbCS_getRgbItem(src, srcOffset, dest, destOffset) { + var r = src[srcOffset] * 255 | 0; + var g = src[srcOffset + 1] * 255 | 0; + var b = src[srcOffset + 2] * 255 | 0; + dest[destOffset] = r < 0 ? 0 : r > 255 ? 255 : r; + dest[destOffset + 1] = g < 0 ? 0 : g > 255 ? 255 : g; + dest[destOffset + 2] = b < 0 ? 0 : b > 255 ? 255 : b; + }, + getRgbBuffer: function DeviceRgbCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + if (bits === 8 && alpha01 === 0) { + dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset); + return; + } + var scale = 255 / ((1 << bits) - 1); + var j = srcOffset, q = destOffset; + for (var i = 0; i < count; ++i) { + dest[q++] = scale * src[j++] | 0; + dest[q++] = scale * src[j++] | 0; + dest[q++] = scale * src[j++] | 0; + q += alpha01; + } + }, + getOutputLength: function DeviceRgbCS_getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01) / 3 | 0; + }, + isPassthrough: function DeviceRgbCS_isPassthrough(bits) { + return bits === 8; + }, + fillRgb: ColorSpace.prototype.fillRgb, + isDefaultDecode: function DeviceRgbCS_isDefaultDecode(decodeMap) { + return ColorSpace.isDefaultDecode(decodeMap, this.numComps); + }, + usesZeroToOneRange: true + }; + return DeviceRgbCS; +}(); +var DeviceCmykCS = function DeviceCmykCSClosure() { + function convertToRgb(src, srcOffset, srcScale, dest, destOffset) { + var c = src[srcOffset + 0] * srcScale; + var m = src[srcOffset + 1] * srcScale; + var y = src[srcOffset + 2] * srcScale; + var k = src[srcOffset + 3] * srcScale; + var r = c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k + -285.2331026137004) + m * (1.7149763477362134 * m - 5.6096736904047315 * y + -17.873870861415444 * k - 5.497006427196366) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) + k * (-21.86122147463605 * k - 189.48180835922747) + 255 | 0; + var g = c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k + -79.2970844816548) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 190.9453302588951) + y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) + k * (-20.737325471181034 * k - 187.80453709719578) + 255 | 0; + var b = c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k + -14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k + -193.58209356861505) + k * (-22.33816807309886 * k - 180.12613974708367) + 255 | 0; + dest[destOffset] = r > 255 ? 255 : r < 0 ? 0 : r; + dest[destOffset + 1] = g > 255 ? 255 : g < 0 ? 0 : g; + dest[destOffset + 2] = b > 255 ? 255 : b < 0 ? 0 : b; + } + function DeviceCmykCS() { + this.name = 'DeviceCMYK'; + this.numComps = 4; + this.defaultColor = new Float32Array(this.numComps); + this.defaultColor[3] = 1; + } + DeviceCmykCS.prototype = { + getRgb: ColorSpace.prototype.getRgb, + getRgbItem: function DeviceCmykCS_getRgbItem(src, srcOffset, dest, destOffset) { + convertToRgb(src, srcOffset, 1, dest, destOffset); + }, + getRgbBuffer: function DeviceCmykCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + var scale = 1 / ((1 << bits) - 1); + for (var i = 0; i < count; i++) { + convertToRgb(src, srcOffset, scale, dest, destOffset); + srcOffset += 4; + destOffset += 3 + alpha01; + } + }, + getOutputLength: function DeviceCmykCS_getOutputLength(inputLength, alpha01) { + return inputLength / 4 * (3 + alpha01) | 0; + }, + isPassthrough: ColorSpace.prototype.isPassthrough, + fillRgb: ColorSpace.prototype.fillRgb, + isDefaultDecode: function DeviceCmykCS_isDefaultDecode(decodeMap) { + return ColorSpace.isDefaultDecode(decodeMap, this.numComps); + }, + usesZeroToOneRange: true + }; + return DeviceCmykCS; +}(); +var CalGrayCS = function CalGrayCSClosure() { + function CalGrayCS(whitePoint, blackPoint, gamma) { + this.name = 'CalGray'; + this.numComps = 1; + this.defaultColor = new Float32Array(this.numComps); + if (!whitePoint) { + error('WhitePoint missing - required for color space CalGray'); + } + blackPoint = blackPoint || [ + 0, + 0, + 0 + ]; + gamma = gamma || 1; + this.XW = whitePoint[0]; + this.YW = whitePoint[1]; + this.ZW = whitePoint[2]; + this.XB = blackPoint[0]; + this.YB = blackPoint[1]; + this.ZB = blackPoint[2]; + this.G = gamma; + if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) { + error('Invalid WhitePoint components for ' + this.name + ', no fallback available'); + } + if (this.XB < 0 || this.YB < 0 || this.ZB < 0) { + info('Invalid BlackPoint for ' + this.name + ', falling back to default'); + this.XB = this.YB = this.ZB = 0; + } + if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) { + warn(this.name + ', BlackPoint: XB: ' + this.XB + ', YB: ' + this.YB + ', ZB: ' + this.ZB + ', only default values are supported.'); + } + if (this.G < 1) { + info('Invalid Gamma: ' + this.G + ' for ' + this.name + ', falling back to default'); + this.G = 1; + } + } + function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) { + var A = src[srcOffset] * scale; + var AG = Math.pow(A, cs.G); + var L = cs.YW * AG; + var val = Math.max(295.8 * Math.pow(L, 0.333333333333333333) - 40.8, 0) | 0; + dest[destOffset] = val; + dest[destOffset + 1] = val; + dest[destOffset + 2] = val; + } + CalGrayCS.prototype = { + getRgb: ColorSpace.prototype.getRgb, + getRgbItem: function CalGrayCS_getRgbItem(src, srcOffset, dest, destOffset) { + convertToRgb(this, src, srcOffset, dest, destOffset, 1); + }, + getRgbBuffer: function CalGrayCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + var scale = 1 / ((1 << bits) - 1); + for (var i = 0; i < count; ++i) { + convertToRgb(this, src, srcOffset, dest, destOffset, scale); + srcOffset += 1; + destOffset += 3 + alpha01; + } + }, + getOutputLength: function CalGrayCS_getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01); + }, + isPassthrough: ColorSpace.prototype.isPassthrough, + fillRgb: ColorSpace.prototype.fillRgb, + isDefaultDecode: function CalGrayCS_isDefaultDecode(decodeMap) { + return ColorSpace.isDefaultDecode(decodeMap, this.numComps); + }, + usesZeroToOneRange: true + }; + return CalGrayCS; +}(); +var CalRGBCS = function CalRGBCSClosure() { + var BRADFORD_SCALE_MATRIX = new Float32Array([ + 0.8951, + 0.2664, + -0.1614, + -0.7502, + 1.7135, + 0.0367, + 0.0389, + -0.0685, + 1.0296 + ]); + var BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([ + 0.9869929, + -0.1470543, + 0.1599627, + 0.4323053, + 0.5183603, + 0.0492912, + -0.0085287, + 0.0400428, + 0.9684867 + ]); + var SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([ + 3.2404542, + -1.5371385, + -0.4985314, + -0.9692660, + 1.8760108, + 0.0415560, + 0.0556434, + -0.2040259, + 1.0572252 + ]); + var FLAT_WHITEPOINT_MATRIX = new Float32Array([ + 1, + 1, + 1 + ]); + var tempNormalizeMatrix = new Float32Array(3); + var tempConvertMatrix1 = new Float32Array(3); + var tempConvertMatrix2 = new Float32Array(3); + var DECODE_L_CONSTANT = Math.pow((8 + 16) / 116, 3) / 8.0; + function CalRGBCS(whitePoint, blackPoint, gamma, matrix) { + this.name = 'CalRGB'; + this.numComps = 3; + this.defaultColor = new Float32Array(this.numComps); + if (!whitePoint) { + error('WhitePoint missing - required for color space CalRGB'); + } + blackPoint = blackPoint || new Float32Array(3); + gamma = gamma || new Float32Array([ + 1, + 1, + 1 + ]); + matrix = matrix || new Float32Array([ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1 + ]); + var XW = whitePoint[0]; + var YW = whitePoint[1]; + var ZW = whitePoint[2]; + this.whitePoint = whitePoint; + var XB = blackPoint[0]; + var YB = blackPoint[1]; + var ZB = blackPoint[2]; + this.blackPoint = blackPoint; + this.GR = gamma[0]; + this.GG = gamma[1]; + this.GB = gamma[2]; + this.MXA = matrix[0]; + this.MYA = matrix[1]; + this.MZA = matrix[2]; + this.MXB = matrix[3]; + this.MYB = matrix[4]; + this.MZB = matrix[5]; + this.MXC = matrix[6]; + this.MYC = matrix[7]; + this.MZC = matrix[8]; + if (XW < 0 || ZW < 0 || YW !== 1) { + error('Invalid WhitePoint components for ' + this.name + ', no fallback available'); + } + if (XB < 0 || YB < 0 || ZB < 0) { + info('Invalid BlackPoint for ' + this.name + ' [' + XB + ', ' + YB + ', ' + ZB + '], falling back to default'); + this.blackPoint = new Float32Array(3); + } + if (this.GR < 0 || this.GG < 0 || this.GB < 0) { + info('Invalid Gamma [' + this.GR + ', ' + this.GG + ', ' + this.GB + '] for ' + this.name + ', falling back to default'); + this.GR = this.GG = this.GB = 1; + } + if (this.MXA < 0 || this.MYA < 0 || this.MZA < 0 || this.MXB < 0 || this.MYB < 0 || this.MZB < 0 || this.MXC < 0 || this.MYC < 0 || this.MZC < 0) { + info('Invalid Matrix for ' + this.name + ' [' + this.MXA + ', ' + this.MYA + ', ' + this.MZA + this.MXB + ', ' + this.MYB + ', ' + this.MZB + this.MXC + ', ' + this.MYC + ', ' + this.MZC + '], falling back to default'); + this.MXA = this.MYB = this.MZC = 1; + this.MXB = this.MYA = this.MZA = this.MXC = this.MYC = this.MZB = 0; + } + } + function matrixProduct(a, b, result) { + result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; + result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2]; + result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2]; + } + function convertToFlat(sourceWhitePoint, LMS, result) { + result[0] = LMS[0] * 1 / sourceWhitePoint[0]; + result[1] = LMS[1] * 1 / sourceWhitePoint[1]; + result[2] = LMS[2] * 1 / sourceWhitePoint[2]; + } + function convertToD65(sourceWhitePoint, LMS, result) { + var D65X = 0.95047; + var D65Y = 1; + var D65Z = 1.08883; + result[0] = LMS[0] * D65X / sourceWhitePoint[0]; + result[1] = LMS[1] * D65Y / sourceWhitePoint[1]; + result[2] = LMS[2] * D65Z / sourceWhitePoint[2]; + } + function sRGBTransferFunction(color) { + if (color <= 0.0031308) { + return adjustToRange(0, 1, 12.92 * color); + } + return adjustToRange(0, 1, (1 + 0.055) * Math.pow(color, 1 / 2.4) - 0.055); + } + function adjustToRange(min, max, value) { + return Math.max(min, Math.min(max, value)); + } + function decodeL(L) { + if (L < 0) { + return -decodeL(-L); + } + if (L > 8.0) { + return Math.pow((L + 16) / 116, 3); + } + return L * DECODE_L_CONSTANT; + } + function compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) { + if (sourceBlackPoint[0] === 0 && sourceBlackPoint[1] === 0 && sourceBlackPoint[2] === 0) { + result[0] = XYZ_Flat[0]; + result[1] = XYZ_Flat[1]; + result[2] = XYZ_Flat[2]; + return; + } + var zeroDecodeL = decodeL(0); + var X_DST = zeroDecodeL; + var X_SRC = decodeL(sourceBlackPoint[0]); + var Y_DST = zeroDecodeL; + var Y_SRC = decodeL(sourceBlackPoint[1]); + var Z_DST = zeroDecodeL; + var Z_SRC = decodeL(sourceBlackPoint[2]); + var X_Scale = (1 - X_DST) / (1 - X_SRC); + var X_Offset = 1 - X_Scale; + var Y_Scale = (1 - Y_DST) / (1 - Y_SRC); + var Y_Offset = 1 - Y_Scale; + var Z_Scale = (1 - Z_DST) / (1 - Z_SRC); + var Z_Offset = 1 - Z_Scale; + result[0] = XYZ_Flat[0] * X_Scale + X_Offset; + result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset; + result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset; + } + function normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) { + if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) { + result[0] = XYZ_In[0]; + result[1] = XYZ_In[1]; + result[2] = XYZ_In[2]; + return; + } + var LMS = result; + matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS); + var LMS_Flat = tempNormalizeMatrix; + convertToFlat(sourceWhitePoint, LMS, LMS_Flat); + matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result); + } + function normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) { + var LMS = result; + matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS); + var LMS_D65 = tempNormalizeMatrix; + convertToD65(sourceWhitePoint, LMS, LMS_D65); + matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result); + } + function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) { + var A = adjustToRange(0, 1, src[srcOffset] * scale); + var B = adjustToRange(0, 1, src[srcOffset + 1] * scale); + var C = adjustToRange(0, 1, src[srcOffset + 2] * scale); + var AGR = Math.pow(A, cs.GR); + var BGG = Math.pow(B, cs.GG); + var CGB = Math.pow(C, cs.GB); + var X = cs.MXA * AGR + cs.MXB * BGG + cs.MXC * CGB; + var Y = cs.MYA * AGR + cs.MYB * BGG + cs.MYC * CGB; + var Z = cs.MZA * AGR + cs.MZB * BGG + cs.MZC * CGB; + var XYZ = tempConvertMatrix1; + XYZ[0] = X; + XYZ[1] = Y; + XYZ[2] = Z; + var XYZ_Flat = tempConvertMatrix2; + normalizeWhitePointToFlat(cs.whitePoint, XYZ, XYZ_Flat); + var XYZ_Black = tempConvertMatrix1; + compensateBlackPoint(cs.blackPoint, XYZ_Flat, XYZ_Black); + var XYZ_D65 = tempConvertMatrix2; + normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65); + var SRGB = tempConvertMatrix1; + matrixProduct(SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB); + var sR = sRGBTransferFunction(SRGB[0]); + var sG = sRGBTransferFunction(SRGB[1]); + var sB = sRGBTransferFunction(SRGB[2]); + dest[destOffset] = Math.round(sR * 255); + dest[destOffset + 1] = Math.round(sG * 255); + dest[destOffset + 2] = Math.round(sB * 255); + } + CalRGBCS.prototype = { + getRgb: function CalRGBCS_getRgb(src, srcOffset) { + var rgb = new Uint8Array(3); + this.getRgbItem(src, srcOffset, rgb, 0); + return rgb; + }, + getRgbItem: function CalRGBCS_getRgbItem(src, srcOffset, dest, destOffset) { + convertToRgb(this, src, srcOffset, dest, destOffset, 1); + }, + getRgbBuffer: function CalRGBCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + var scale = 1 / ((1 << bits) - 1); + for (var i = 0; i < count; ++i) { + convertToRgb(this, src, srcOffset, dest, destOffset, scale); + srcOffset += 3; + destOffset += 3 + alpha01; + } + }, + getOutputLength: function CalRGBCS_getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01) / 3 | 0; + }, + isPassthrough: ColorSpace.prototype.isPassthrough, + fillRgb: ColorSpace.prototype.fillRgb, + isDefaultDecode: function CalRGBCS_isDefaultDecode(decodeMap) { + return ColorSpace.isDefaultDecode(decodeMap, this.numComps); + }, + usesZeroToOneRange: true + }; + return CalRGBCS; +}(); +var LabCS = function LabCSClosure() { + function LabCS(whitePoint, blackPoint, range) { + this.name = 'Lab'; + this.numComps = 3; + this.defaultColor = new Float32Array(this.numComps); + if (!whitePoint) { + error('WhitePoint missing - required for color space Lab'); + } + blackPoint = blackPoint || [ + 0, + 0, + 0 + ]; + range = range || [ + -100, + 100, + -100, + 100 + ]; + this.XW = whitePoint[0]; + this.YW = whitePoint[1]; + this.ZW = whitePoint[2]; + this.amin = range[0]; + this.amax = range[1]; + this.bmin = range[2]; + this.bmax = range[3]; + this.XB = blackPoint[0]; + this.YB = blackPoint[1]; + this.ZB = blackPoint[2]; + if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) { + error('Invalid WhitePoint components, no fallback available'); + } + if (this.XB < 0 || this.YB < 0 || this.ZB < 0) { + info('Invalid BlackPoint, falling back to default'); + this.XB = this.YB = this.ZB = 0; + } + if (this.amin > this.amax || this.bmin > this.bmax) { + info('Invalid Range, falling back to defaults'); + this.amin = -100; + this.amax = 100; + this.bmin = -100; + this.bmax = 100; + } + } + function fn_g(x) { + var result; + if (x >= 6 / 29) { + result = x * x * x; + } else { + result = 108 / 841 * (x - 4 / 29); + } + return result; + } + function decode(value, high1, low2, high2) { + return low2 + value * (high2 - low2) / high1; + } + function convertToRgb(cs, src, srcOffset, maxVal, dest, destOffset) { + var Ls = src[srcOffset]; + var as = src[srcOffset + 1]; + var bs = src[srcOffset + 2]; + if (maxVal !== false) { + Ls = decode(Ls, maxVal, 0, 100); + as = decode(as, maxVal, cs.amin, cs.amax); + bs = decode(bs, maxVal, cs.bmin, cs.bmax); + } + as = as > cs.amax ? cs.amax : as < cs.amin ? cs.amin : as; + bs = bs > cs.bmax ? cs.bmax : bs < cs.bmin ? cs.bmin : bs; + var M = (Ls + 16) / 116; + var L = M + as / 500; + var N = M - bs / 200; + var X = cs.XW * fn_g(L); + var Y = cs.YW * fn_g(M); + var Z = cs.ZW * fn_g(N); + var r, g, b; + if (cs.ZW < 1) { + r = X * 3.1339 + Y * -1.6170 + Z * -0.4906; + g = X * -0.9785 + Y * 1.9160 + Z * 0.0333; + b = X * 0.0720 + Y * -0.2290 + Z * 1.4057; + } else { + r = X * 3.2406 + Y * -1.5372 + Z * -0.4986; + g = X * -0.9689 + Y * 1.8758 + Z * 0.0415; + b = X * 0.0557 + Y * -0.2040 + Z * 1.0570; + } + dest[destOffset] = r <= 0 ? 0 : r >= 1 ? 255 : Math.sqrt(r) * 255 | 0; + dest[destOffset + 1] = g <= 0 ? 0 : g >= 1 ? 255 : Math.sqrt(g) * 255 | 0; + dest[destOffset + 2] = b <= 0 ? 0 : b >= 1 ? 255 : Math.sqrt(b) * 255 | 0; + } + LabCS.prototype = { + getRgb: ColorSpace.prototype.getRgb, + getRgbItem: function LabCS_getRgbItem(src, srcOffset, dest, destOffset) { + convertToRgb(this, src, srcOffset, false, dest, destOffset); + }, + getRgbBuffer: function LabCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + var maxVal = (1 << bits) - 1; + for (var i = 0; i < count; i++) { + convertToRgb(this, src, srcOffset, maxVal, dest, destOffset); + srcOffset += 3; + destOffset += 3 + alpha01; + } + }, + getOutputLength: function LabCS_getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01) / 3 | 0; + }, + isPassthrough: ColorSpace.prototype.isPassthrough, + fillRgb: ColorSpace.prototype.fillRgb, + isDefaultDecode: function LabCS_isDefaultDecode(decodeMap) { + return true; + }, + usesZeroToOneRange: false + }; + return LabCS; +}(); +exports.ColorSpace = ColorSpace; + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var ExpertEncoding = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + 'space', + 'exclamsmall', + 'Hungarumlautsmall', + '', + 'dollaroldstyle', + 'dollarsuperior', + 'ampersandsmall', + 'Acutesmall', + 'parenleftsuperior', + 'parenrightsuperior', + 'twodotenleader', + 'onedotenleader', + 'comma', + 'hyphen', + 'period', + 'fraction', + 'zerooldstyle', + 'oneoldstyle', + 'twooldstyle', + 'threeoldstyle', + 'fouroldstyle', + 'fiveoldstyle', + 'sixoldstyle', + 'sevenoldstyle', + 'eightoldstyle', + 'nineoldstyle', + 'colon', + 'semicolon', + 'commasuperior', + 'threequartersemdash', + 'periodsuperior', + 'questionsmall', + '', + 'asuperior', + 'bsuperior', + 'centsuperior', + 'dsuperior', + 'esuperior', + '', + '', + 'isuperior', + '', + '', + 'lsuperior', + 'msuperior', + 'nsuperior', + 'osuperior', + '', + '', + 'rsuperior', + 'ssuperior', + 'tsuperior', + '', + 'ff', + 'fi', + 'fl', + 'ffi', + 'ffl', + 'parenleftinferior', + '', + 'parenrightinferior', + 'Circumflexsmall', + 'hyphensuperior', + 'Gravesmall', + 'Asmall', + 'Bsmall', + 'Csmall', + 'Dsmall', + 'Esmall', + 'Fsmall', + 'Gsmall', + 'Hsmall', + 'Ismall', + 'Jsmall', + 'Ksmall', + 'Lsmall', + 'Msmall', + 'Nsmall', + 'Osmall', + 'Psmall', + 'Qsmall', + 'Rsmall', + 'Ssmall', + 'Tsmall', + 'Usmall', + 'Vsmall', + 'Wsmall', + 'Xsmall', + 'Ysmall', + 'Zsmall', + 'colonmonetary', + 'onefitted', + 'rupiah', + 'Tildesmall', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + 'exclamdownsmall', + 'centoldstyle', + 'Lslashsmall', + '', + '', + 'Scaronsmall', + 'Zcaronsmall', + 'Dieresissmall', + 'Brevesmall', + 'Caronsmall', + '', + 'Dotaccentsmall', + '', + '', + 'Macronsmall', + '', + '', + 'figuredash', + 'hypheninferior', + '', + '', + 'Ogoneksmall', + 'Ringsmall', + 'Cedillasmall', + '', + '', + '', + 'onequarter', + 'onehalf', + 'threequarters', + 'questiondownsmall', + 'oneeighth', + 'threeeighths', + 'fiveeighths', + 'seveneighths', + 'onethird', + 'twothirds', + '', + '', + 'zerosuperior', + 'onesuperior', + 'twosuperior', + 'threesuperior', + 'foursuperior', + 'fivesuperior', + 'sixsuperior', + 'sevensuperior', + 'eightsuperior', + 'ninesuperior', + 'zeroinferior', + 'oneinferior', + 'twoinferior', + 'threeinferior', + 'fourinferior', + 'fiveinferior', + 'sixinferior', + 'seveninferior', + 'eightinferior', + 'nineinferior', + 'centinferior', + 'dollarinferior', + 'periodinferior', + 'commainferior', + 'Agravesmall', + 'Aacutesmall', + 'Acircumflexsmall', + 'Atildesmall', + 'Adieresissmall', + 'Aringsmall', + 'AEsmall', + 'Ccedillasmall', + 'Egravesmall', + 'Eacutesmall', + 'Ecircumflexsmall', + 'Edieresissmall', + 'Igravesmall', + 'Iacutesmall', + 'Icircumflexsmall', + 'Idieresissmall', + 'Ethsmall', + 'Ntildesmall', + 'Ogravesmall', + 'Oacutesmall', + 'Ocircumflexsmall', + 'Otildesmall', + 'Odieresissmall', + 'OEsmall', + 'Oslashsmall', + 'Ugravesmall', + 'Uacutesmall', + 'Ucircumflexsmall', + 'Udieresissmall', + 'Yacutesmall', + 'Thornsmall', + 'Ydieresissmall' +]; +var MacExpertEncoding = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + 'space', + 'exclamsmall', + 'Hungarumlautsmall', + 'centoldstyle', + 'dollaroldstyle', + 'dollarsuperior', + 'ampersandsmall', + 'Acutesmall', + 'parenleftsuperior', + 'parenrightsuperior', + 'twodotenleader', + 'onedotenleader', + 'comma', + 'hyphen', + 'period', + 'fraction', + 'zerooldstyle', + 'oneoldstyle', + 'twooldstyle', + 'threeoldstyle', + 'fouroldstyle', + 'fiveoldstyle', + 'sixoldstyle', + 'sevenoldstyle', + 'eightoldstyle', + 'nineoldstyle', + 'colon', + 'semicolon', + '', + 'threequartersemdash', + '', + 'questionsmall', + '', + '', + '', + '', + 'Ethsmall', + '', + '', + 'onequarter', + 'onehalf', + 'threequarters', + 'oneeighth', + 'threeeighths', + 'fiveeighths', + 'seveneighths', + 'onethird', + 'twothirds', + '', + '', + '', + '', + '', + '', + 'ff', + 'fi', + 'fl', + 'ffi', + 'ffl', + 'parenleftinferior', + '', + 'parenrightinferior', + 'Circumflexsmall', + 'hypheninferior', + 'Gravesmall', + 'Asmall', + 'Bsmall', + 'Csmall', + 'Dsmall', + 'Esmall', + 'Fsmall', + 'Gsmall', + 'Hsmall', + 'Ismall', + 'Jsmall', + 'Ksmall', + 'Lsmall', + 'Msmall', + 'Nsmall', + 'Osmall', + 'Psmall', + 'Qsmall', + 'Rsmall', + 'Ssmall', + 'Tsmall', + 'Usmall', + 'Vsmall', + 'Wsmall', + 'Xsmall', + 'Ysmall', + 'Zsmall', + 'colonmonetary', + 'onefitted', + 'rupiah', + 'Tildesmall', + '', + '', + 'asuperior', + 'centsuperior', + '', + '', + '', + '', + 'Aacutesmall', + 'Agravesmall', + 'Acircumflexsmall', + 'Adieresissmall', + 'Atildesmall', + 'Aringsmall', + 'Ccedillasmall', + 'Eacutesmall', + 'Egravesmall', + 'Ecircumflexsmall', + 'Edieresissmall', + 'Iacutesmall', + 'Igravesmall', + 'Icircumflexsmall', + 'Idieresissmall', + 'Ntildesmall', + 'Oacutesmall', + 'Ogravesmall', + 'Ocircumflexsmall', + 'Odieresissmall', + 'Otildesmall', + 'Uacutesmall', + 'Ugravesmall', + 'Ucircumflexsmall', + 'Udieresissmall', + '', + 'eightsuperior', + 'fourinferior', + 'threeinferior', + 'sixinferior', + 'eightinferior', + 'seveninferior', + 'Scaronsmall', + '', + 'centinferior', + 'twoinferior', + '', + 'Dieresissmall', + '', + 'Caronsmall', + 'osuperior', + 'fiveinferior', + '', + 'commainferior', + 'periodinferior', + 'Yacutesmall', + '', + 'dollarinferior', + '', + 'Thornsmall', + '', + 'nineinferior', + 'zeroinferior', + 'Zcaronsmall', + 'AEsmall', + 'Oslashsmall', + 'questiondownsmall', + 'oneinferior', + 'Lslashsmall', + '', + '', + '', + '', + '', + '', + 'Cedillasmall', + '', + '', + '', + '', + '', + 'OEsmall', + 'figuredash', + 'hyphensuperior', + '', + '', + '', + '', + 'exclamdownsmall', + '', + 'Ydieresissmall', + '', + 'onesuperior', + 'twosuperior', + 'threesuperior', + 'foursuperior', + 'fivesuperior', + 'sixsuperior', + 'sevensuperior', + 'ninesuperior', + 'zerosuperior', + '', + 'esuperior', + 'rsuperior', + 'tsuperior', + '', + '', + 'isuperior', + 'ssuperior', + 'dsuperior', + '', + '', + '', + '', + '', + 'lsuperior', + 'Ogoneksmall', + 'Brevesmall', + 'Macronsmall', + 'bsuperior', + 'nsuperior', + 'msuperior', + 'commasuperior', + 'periodsuperior', + 'Dotaccentsmall', + 'Ringsmall' +]; +var MacRomanEncoding = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + 'space', + 'exclam', + 'quotedbl', + 'numbersign', + 'dollar', + 'percent', + 'ampersand', + 'quotesingle', + 'parenleft', + 'parenright', + 'asterisk', + 'plus', + 'comma', + 'hyphen', + 'period', + 'slash', + 'zero', + 'one', + 'two', + 'three', + 'four', + 'five', + 'six', + 'seven', + 'eight', + 'nine', + 'colon', + 'semicolon', + 'less', + 'equal', + 'greater', + 'question', + 'at', + 'A', + 'B', + 'C', + 'D', + 'E', + 'F', + 'G', + 'H', + 'I', + 'J', + 'K', + 'L', + 'M', + 'N', + 'O', + 'P', + 'Q', + 'R', + 'S', + 'T', + 'U', + 'V', + 'W', + 'X', + 'Y', + 'Z', + 'bracketleft', + 'backslash', + 'bracketright', + 'asciicircum', + 'underscore', + 'grave', + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', + 'k', + 'l', + 'm', + 'n', + 'o', + 'p', + 'q', + 'r', + 's', + 't', + 'u', + 'v', + 'w', + 'x', + 'y', + 'z', + 'braceleft', + 'bar', + 'braceright', + 'asciitilde', + '', + 'Adieresis', + 'Aring', + 'Ccedilla', + 'Eacute', + 'Ntilde', + 'Odieresis', + 'Udieresis', + 'aacute', + 'agrave', + 'acircumflex', + 'adieresis', + 'atilde', + 'aring', + 'ccedilla', + 'eacute', + 'egrave', + 'ecircumflex', + 'edieresis', + 'iacute', + 'igrave', + 'icircumflex', + 'idieresis', + 'ntilde', + 'oacute', + 'ograve', + 'ocircumflex', + 'odieresis', + 'otilde', + 'uacute', + 'ugrave', + 'ucircumflex', + 'udieresis', + 'dagger', + 'degree', + 'cent', + 'sterling', + 'section', + 'bullet', + 'paragraph', + 'germandbls', + 'registered', + 'copyright', + 'trademark', + 'acute', + 'dieresis', + 'notequal', + 'AE', + 'Oslash', + 'infinity', + 'plusminus', + 'lessequal', + 'greaterequal', + 'yen', + 'mu', + 'partialdiff', + 'summation', + 'product', + 'pi', + 'integral', + 'ordfeminine', + 'ordmasculine', + 'Omega', + 'ae', + 'oslash', + 'questiondown', + 'exclamdown', + 'logicalnot', + 'radical', + 'florin', + 'approxequal', + 'Delta', + 'guillemotleft', + 'guillemotright', + 'ellipsis', + 'space', + 'Agrave', + 'Atilde', + 'Otilde', + 'OE', + 'oe', + 'endash', + 'emdash', + 'quotedblleft', + 'quotedblright', + 'quoteleft', + 'quoteright', + 'divide', + 'lozenge', + 'ydieresis', + 'Ydieresis', + 'fraction', + 'currency', + 'guilsinglleft', + 'guilsinglright', + 'fi', + 'fl', + 'daggerdbl', + 'periodcentered', + 'quotesinglbase', + 'quotedblbase', + 'perthousand', + 'Acircumflex', + 'Ecircumflex', + 'Aacute', + 'Edieresis', + 'Egrave', + 'Iacute', + 'Icircumflex', + 'Idieresis', + 'Igrave', + 'Oacute', + 'Ocircumflex', + 'apple', + 'Ograve', + 'Uacute', + 'Ucircumflex', + 'Ugrave', + 'dotlessi', + 'circumflex', + 'tilde', + 'macron', + 'breve', + 'dotaccent', + 'ring', + 'cedilla', + 'hungarumlaut', + 'ogonek', + 'caron' +]; +var StandardEncoding = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + 'space', + 'exclam', + 'quotedbl', + 'numbersign', + 'dollar', + 'percent', + 'ampersand', + 'quoteright', + 'parenleft', + 'parenright', + 'asterisk', + 'plus', + 'comma', + 'hyphen', + 'period', + 'slash', + 'zero', + 'one', + 'two', + 'three', + 'four', + 'five', + 'six', + 'seven', + 'eight', + 'nine', + 'colon', + 'semicolon', + 'less', + 'equal', + 'greater', + 'question', + 'at', + 'A', + 'B', + 'C', + 'D', + 'E', + 'F', + 'G', + 'H', + 'I', + 'J', + 'K', + 'L', + 'M', + 'N', + 'O', + 'P', + 'Q', + 'R', + 'S', + 'T', + 'U', + 'V', + 'W', + 'X', + 'Y', + 'Z', + 'bracketleft', + 'backslash', + 'bracketright', + 'asciicircum', + 'underscore', + 'quoteleft', + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', + 'k', + 'l', + 'm', + 'n', + 'o', + 'p', + 'q', + 'r', + 's', + 't', + 'u', + 'v', + 'w', + 'x', + 'y', + 'z', + 'braceleft', + 'bar', + 'braceright', + 'asciitilde', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + 'exclamdown', + 'cent', + 'sterling', + 'fraction', + 'yen', + 'florin', + 'section', + 'currency', + 'quotesingle', + 'quotedblleft', + 'guillemotleft', + 'guilsinglleft', + 'guilsinglright', + 'fi', + 'fl', + '', + 'endash', + 'dagger', + 'daggerdbl', + 'periodcentered', + '', + 'paragraph', + 'bullet', + 'quotesinglbase', + 'quotedblbase', + 'quotedblright', + 'guillemotright', + 'ellipsis', + 'perthousand', + '', + 'questiondown', + '', + 'grave', + 'acute', + 'circumflex', + 'tilde', + 'macron', + 'breve', + 'dotaccent', + 'dieresis', + '', + 'ring', + 'cedilla', + '', + 'hungarumlaut', + 'ogonek', + 'caron', + 'emdash', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + 'AE', + '', + 'ordfeminine', + '', + '', + '', + '', + 'Lslash', + 'Oslash', + 'OE', + 'ordmasculine', + '', + '', + '', + '', + '', + 'ae', + '', + '', + '', + 'dotlessi', + '', + '', + 'lslash', + 'oslash', + 'oe', + 'germandbls' +]; +var WinAnsiEncoding = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + 'space', + 'exclam', + 'quotedbl', + 'numbersign', + 'dollar', + 'percent', + 'ampersand', + 'quotesingle', + 'parenleft', + 'parenright', + 'asterisk', + 'plus', + 'comma', + 'hyphen', + 'period', + 'slash', + 'zero', + 'one', + 'two', + 'three', + 'four', + 'five', + 'six', + 'seven', + 'eight', + 'nine', + 'colon', + 'semicolon', + 'less', + 'equal', + 'greater', + 'question', + 'at', + 'A', + 'B', + 'C', + 'D', + 'E', + 'F', + 'G', + 'H', + 'I', + 'J', + 'K', + 'L', + 'M', + 'N', + 'O', + 'P', + 'Q', + 'R', + 'S', + 'T', + 'U', + 'V', + 'W', + 'X', + 'Y', + 'Z', + 'bracketleft', + 'backslash', + 'bracketright', + 'asciicircum', + 'underscore', + 'grave', + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', + 'k', + 'l', + 'm', + 'n', + 'o', + 'p', + 'q', + 'r', + 's', + 't', + 'u', + 'v', + 'w', + 'x', + 'y', + 'z', + 'braceleft', + 'bar', + 'braceright', + 'asciitilde', + 'bullet', + 'Euro', + 'bullet', + 'quotesinglbase', + 'florin', + 'quotedblbase', + 'ellipsis', + 'dagger', + 'daggerdbl', + 'circumflex', + 'perthousand', + 'Scaron', + 'guilsinglleft', + 'OE', + 'bullet', + 'Zcaron', + 'bullet', + 'bullet', + 'quoteleft', + 'quoteright', + 'quotedblleft', + 'quotedblright', + 'bullet', + 'endash', + 'emdash', + 'tilde', + 'trademark', + 'scaron', + 'guilsinglright', + 'oe', + 'bullet', + 'zcaron', + 'Ydieresis', + 'space', + 'exclamdown', + 'cent', + 'sterling', + 'currency', + 'yen', + 'brokenbar', + 'section', + 'dieresis', + 'copyright', + 'ordfeminine', + 'guillemotleft', + 'logicalnot', + 'hyphen', + 'registered', + 'macron', + 'degree', + 'plusminus', + 'twosuperior', + 'threesuperior', + 'acute', + 'mu', + 'paragraph', + 'periodcentered', + 'cedilla', + 'onesuperior', + 'ordmasculine', + 'guillemotright', + 'onequarter', + 'onehalf', + 'threequarters', + 'questiondown', + 'Agrave', + 'Aacute', + 'Acircumflex', + 'Atilde', + 'Adieresis', + 'Aring', + 'AE', + 'Ccedilla', + 'Egrave', + 'Eacute', + 'Ecircumflex', + 'Edieresis', + 'Igrave', + 'Iacute', + 'Icircumflex', + 'Idieresis', + 'Eth', + 'Ntilde', + 'Ograve', + 'Oacute', + 'Ocircumflex', + 'Otilde', + 'Odieresis', + 'multiply', + 'Oslash', + 'Ugrave', + 'Uacute', + 'Ucircumflex', + 'Udieresis', + 'Yacute', + 'Thorn', + 'germandbls', + 'agrave', + 'aacute', + 'acircumflex', + 'atilde', + 'adieresis', + 'aring', + 'ae', + 'ccedilla', + 'egrave', + 'eacute', + 'ecircumflex', + 'edieresis', + 'igrave', + 'iacute', + 'icircumflex', + 'idieresis', + 'eth', + 'ntilde', + 'ograve', + 'oacute', + 'ocircumflex', + 'otilde', + 'odieresis', + 'divide', + 'oslash', + 'ugrave', + 'uacute', + 'ucircumflex', + 'udieresis', + 'yacute', + 'thorn', + 'ydieresis' +]; +var SymbolSetEncoding = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + 'space', + 'exclam', + 'universal', + 'numbersign', + 'existential', + 'percent', + 'ampersand', + 'suchthat', + 'parenleft', + 'parenright', + 'asteriskmath', + 'plus', + 'comma', + 'minus', + 'period', + 'slash', + 'zero', + 'one', + 'two', + 'three', + 'four', + 'five', + 'six', + 'seven', + 'eight', + 'nine', + 'colon', + 'semicolon', + 'less', + 'equal', + 'greater', + 'question', + 'congruent', + 'Alpha', + 'Beta', + 'Chi', + 'Delta', + 'Epsilon', + 'Phi', + 'Gamma', + 'Eta', + 'Iota', + 'theta1', + 'Kappa', + 'Lambda', + 'Mu', + 'Nu', + 'Omicron', + 'Pi', + 'Theta', + 'Rho', + 'Sigma', + 'Tau', + 'Upsilon', + 'sigma1', + 'Omega', + 'Xi', + 'Psi', + 'Zeta', + 'bracketleft', + 'therefore', + 'bracketright', + 'perpendicular', + 'underscore', + 'radicalex', + 'alpha', + 'beta', + 'chi', + 'delta', + 'epsilon', + 'phi', + 'gamma', + 'eta', + 'iota', + 'phi1', + 'kappa', + 'lambda', + 'mu', + 'nu', + 'omicron', + 'pi', + 'theta', + 'rho', + 'sigma', + 'tau', + 'upsilon', + 'omega1', + 'omega', + 'xi', + 'psi', + 'zeta', + 'braceleft', + 'bar', + 'braceright', + 'similar', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + 'Euro', + 'Upsilon1', + 'minute', + 'lessequal', + 'fraction', + 'infinity', + 'florin', + 'club', + 'diamond', + 'heart', + 'spade', + 'arrowboth', + 'arrowleft', + 'arrowup', + 'arrowright', + 'arrowdown', + 'degree', + 'plusminus', + 'second', + 'greaterequal', + 'multiply', + 'proportional', + 'partialdiff', + 'bullet', + 'divide', + 'notequal', + 'equivalence', + 'approxequal', + 'ellipsis', + 'arrowvertex', + 'arrowhorizex', + 'carriagereturn', + 'aleph', + 'Ifraktur', + 'Rfraktur', + 'weierstrass', + 'circlemultiply', + 'circleplus', + 'emptyset', + 'intersection', + 'union', + 'propersuperset', + 'reflexsuperset', + 'notsubset', + 'propersubset', + 'reflexsubset', + 'element', + 'notelement', + 'angle', + 'gradient', + 'registerserif', + 'copyrightserif', + 'trademarkserif', + 'product', + 'radical', + 'dotmath', + 'logicalnot', + 'logicaland', + 'logicalor', + 'arrowdblboth', + 'arrowdblleft', + 'arrowdblup', + 'arrowdblright', + 'arrowdbldown', + 'lozenge', + 'angleleft', + 'registersans', + 'copyrightsans', + 'trademarksans', + 'summation', + 'parenlefttp', + 'parenleftex', + 'parenleftbt', + 'bracketlefttp', + 'bracketleftex', + 'bracketleftbt', + 'bracelefttp', + 'braceleftmid', + 'braceleftbt', + 'braceex', + '', + 'angleright', + 'integral', + 'integraltp', + 'integralex', + 'integralbt', + 'parenrighttp', + 'parenrightex', + 'parenrightbt', + 'bracketrighttp', + 'bracketrightex', + 'bracketrightbt', + 'bracerighttp', + 'bracerightmid', + 'bracerightbt' +]; +var ZapfDingbatsEncoding = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + 'space', + 'a1', + 'a2', + 'a202', + 'a3', + 'a4', + 'a5', + 'a119', + 'a118', + 'a117', + 'a11', + 'a12', + 'a13', + 'a14', + 'a15', + 'a16', + 'a105', + 'a17', + 'a18', + 'a19', + 'a20', + 'a21', + 'a22', + 'a23', + 'a24', + 'a25', + 'a26', + 'a27', + 'a28', + 'a6', + 'a7', + 'a8', + 'a9', + 'a10', + 'a29', + 'a30', + 'a31', + 'a32', + 'a33', + 'a34', + 'a35', + 'a36', + 'a37', + 'a38', + 'a39', + 'a40', + 'a41', + 'a42', + 'a43', + 'a44', + 'a45', + 'a46', + 'a47', + 'a48', + 'a49', + 'a50', + 'a51', + 'a52', + 'a53', + 'a54', + 'a55', + 'a56', + 'a57', + 'a58', + 'a59', + 'a60', + 'a61', + 'a62', + 'a63', + 'a64', + 'a65', + 'a66', + 'a67', + 'a68', + 'a69', + 'a70', + 'a71', + 'a72', + 'a73', + 'a74', + 'a203', + 'a75', + 'a204', + 'a76', + 'a77', + 'a78', + 'a79', + 'a81', + 'a82', + 'a83', + 'a84', + 'a97', + 'a98', + 'a99', + 'a100', + '', + 'a89', + 'a90', + 'a93', + 'a94', + 'a91', + 'a92', + 'a205', + 'a85', + 'a206', + 'a86', + 'a87', + 'a88', + 'a95', + 'a96', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + 'a101', + 'a102', + 'a103', + 'a104', + 'a106', + 'a107', + 'a108', + 'a112', + 'a111', + 'a110', + 'a109', + 'a120', + 'a121', + 'a122', + 'a123', + 'a124', + 'a125', + 'a126', + 'a127', + 'a128', + 'a129', + 'a130', + 'a131', + 'a132', + 'a133', + 'a134', + 'a135', + 'a136', + 'a137', + 'a138', + 'a139', + 'a140', + 'a141', + 'a142', + 'a143', + 'a144', + 'a145', + 'a146', + 'a147', + 'a148', + 'a149', + 'a150', + 'a151', + 'a152', + 'a153', + 'a154', + 'a155', + 'a156', + 'a157', + 'a158', + 'a159', + 'a160', + 'a161', + 'a163', + 'a164', + 'a196', + 'a165', + 'a192', + 'a166', + 'a167', + 'a168', + 'a169', + 'a170', + 'a171', + 'a172', + 'a173', + 'a162', + 'a174', + 'a175', + 'a176', + 'a177', + 'a178', + 'a179', + 'a193', + 'a180', + 'a199', + 'a181', + 'a200', + 'a182', + '', + 'a201', + 'a183', + 'a184', + 'a197', + 'a185', + 'a194', + 'a198', + 'a186', + 'a195', + 'a187', + 'a188', + 'a189', + 'a190', + 'a191' +]; +function getEncoding(encodingName) { + switch (encodingName) { + case 'WinAnsiEncoding': + return WinAnsiEncoding; + case 'StandardEncoding': + return StandardEncoding; + case 'MacRomanEncoding': + return MacRomanEncoding; + case 'SymbolSetEncoding': + return SymbolSetEncoding; + case 'ZapfDingbatsEncoding': + return ZapfDingbatsEncoding; + case 'ExpertEncoding': + return ExpertEncoding; + case 'MacExpertEncoding': + return MacExpertEncoding; + default: + return null; + } +} +exports.WinAnsiEncoding = WinAnsiEncoding; +exports.StandardEncoding = StandardEncoding; +exports.MacRomanEncoding = MacRomanEncoding; +exports.SymbolSetEncoding = SymbolSetEncoding; +exports.ZapfDingbatsEncoding = ZapfDingbatsEncoding; +exports.ExpertEncoding = ExpertEncoding; +exports.getEncoding = getEncoding; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var corePrimitives = __w_pdfjs_require__(1); +var coreStream = __w_pdfjs_require__(2); +var MissingDataException = sharedUtil.MissingDataException; +var StreamType = sharedUtil.StreamType; +var assert = sharedUtil.assert; +var error = sharedUtil.error; +var info = sharedUtil.info; +var isArray = sharedUtil.isArray; +var isInt = sharedUtil.isInt; +var isNum = sharedUtil.isNum; +var isString = sharedUtil.isString; +var warn = sharedUtil.warn; +var EOF = corePrimitives.EOF; +var Cmd = corePrimitives.Cmd; +var Dict = corePrimitives.Dict; +var Name = corePrimitives.Name; +var Ref = corePrimitives.Ref; +var isEOF = corePrimitives.isEOF; +var isCmd = corePrimitives.isCmd; +var isDict = corePrimitives.isDict; +var isName = corePrimitives.isName; +var Ascii85Stream = coreStream.Ascii85Stream; +var AsciiHexStream = coreStream.AsciiHexStream; +var CCITTFaxStream = coreStream.CCITTFaxStream; +var FlateStream = coreStream.FlateStream; +var Jbig2Stream = coreStream.Jbig2Stream; +var JpegStream = coreStream.JpegStream; +var JpxStream = coreStream.JpxStream; +var LZWStream = coreStream.LZWStream; +var NullStream = coreStream.NullStream; +var PredictorStream = coreStream.PredictorStream; +var RunLengthStream = coreStream.RunLengthStream; +var MAX_LENGTH_TO_CACHE = 1000; +var Parser = function ParserClosure() { + function Parser(lexer, allowStreams, xref, recoveryMode) { + this.lexer = lexer; + this.allowStreams = allowStreams; + this.xref = xref; + this.recoveryMode = recoveryMode || false; + this.imageCache = Object.create(null); + this.refill(); + } + Parser.prototype = { + refill: function Parser_refill() { + this.buf1 = this.lexer.getObj(); + this.buf2 = this.lexer.getObj(); + }, + shift: function Parser_shift() { + if (isCmd(this.buf2, 'ID')) { + this.buf1 = this.buf2; + this.buf2 = null; + } else { + this.buf1 = this.buf2; + this.buf2 = this.lexer.getObj(); + } + }, + tryShift: function Parser_tryShift() { + try { + this.shift(); + return true; + } catch (e) { + if (e instanceof MissingDataException) { + throw e; + } + return false; + } + }, + getObj: function Parser_getObj(cipherTransform) { + var buf1 = this.buf1; + this.shift(); + if (buf1 instanceof Cmd) { + switch (buf1.cmd) { + case 'BI': + return this.makeInlineImage(cipherTransform); + case '[': + var array = []; + while (!isCmd(this.buf1, ']') && !isEOF(this.buf1)) { + array.push(this.getObj(cipherTransform)); + } + if (isEOF(this.buf1)) { + if (!this.recoveryMode) { + error('End of file inside array'); + } + return array; + } + this.shift(); + return array; + case '<<': + var dict = new Dict(this.xref); + while (!isCmd(this.buf1, '>>') && !isEOF(this.buf1)) { + if (!isName(this.buf1)) { + info('Malformed dictionary: key must be a name object'); + this.shift(); + continue; + } + var key = this.buf1.name; + this.shift(); + if (isEOF(this.buf1)) { + break; + } + dict.set(key, this.getObj(cipherTransform)); + } + if (isEOF(this.buf1)) { + if (!this.recoveryMode) { + error('End of file inside dictionary'); + } + return dict; + } + if (isCmd(this.buf2, 'stream')) { + return this.allowStreams ? this.makeStream(dict, cipherTransform) : dict; + } + this.shift(); + return dict; + default: + return buf1; + } + } + if (isInt(buf1)) { + var num = buf1; + if (isInt(this.buf1) && isCmd(this.buf2, 'R')) { + var ref = new Ref(num, this.buf1); + this.shift(); + this.shift(); + return ref; + } + return num; + } + if (isString(buf1)) { + var str = buf1; + if (cipherTransform) { + str = cipherTransform.decryptString(str); + } + return str; + } + return buf1; + }, + findDefaultInlineStreamEnd: function Parser_findDefaultInlineStreamEnd(stream) { + var E = 0x45, I = 0x49, SPACE = 0x20, LF = 0xA, CR = 0xD; + var startPos = stream.pos, state = 0, ch, i, n, followingBytes; + while ((ch = stream.getByte()) !== -1) { + if (state === 0) { + state = ch === E ? 1 : 0; + } else if (state === 1) { + state = ch === I ? 2 : 0; + } else { + assert(state === 2); + if (ch === SPACE || ch === LF || ch === CR) { + n = 5; + followingBytes = stream.peekBytes(n); + for (i = 0; i < n; i++) { + ch = followingBytes[i]; + if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7F)) { + state = 0; + break; + } + } + if (state === 2) { + break; + } + } else { + state = 0; + } + } + } + return stream.pos - 4 - startPos; + }, + findDCTDecodeInlineStreamEnd: function Parser_findDCTDecodeInlineStreamEnd(stream) { + var startPos = stream.pos, foundEOI = false, b, markerLength, length; + while ((b = stream.getByte()) !== -1) { + if (b !== 0xFF) { + continue; + } + switch (stream.getByte()) { + case 0x00: + break; + case 0xFF: + stream.skip(-1); + break; + case 0xD9: + foundEOI = true; + break; + case 0xC0: + case 0xC1: + case 0xC2: + case 0xC3: + case 0xC5: + case 0xC6: + case 0xC7: + case 0xC9: + case 0xCA: + case 0xCB: + case 0xCD: + case 0xCE: + case 0xCF: + case 0xC4: + case 0xCC: + case 0xDA: + case 0xDB: + case 0xDC: + case 0xDD: + case 0xDE: + case 0xDF: + case 0xE0: + case 0xE1: + case 0xE2: + case 0xE3: + case 0xE4: + case 0xE5: + case 0xE6: + case 0xE7: + case 0xE8: + case 0xE9: + case 0xEA: + case 0xEB: + case 0xEC: + case 0xED: + case 0xEE: + case 0xEF: + case 0xFE: + markerLength = stream.getUint16(); + if (markerLength > 2) { + stream.skip(markerLength - 2); + } else { + stream.skip(-2); + } + break; + } + if (foundEOI) { + break; + } + } + length = stream.pos - startPos; + if (b === -1) { + warn('Inline DCTDecode image stream: ' + 'EOI marker not found, searching for /EI/ instead.'); + stream.skip(-length); + return this.findDefaultInlineStreamEnd(stream); + } + this.inlineStreamSkipEI(stream); + return length; + }, + findASCII85DecodeInlineStreamEnd: function Parser_findASCII85DecodeInlineStreamEnd(stream) { + var TILDE = 0x7E, GT = 0x3E; + var startPos = stream.pos, ch, length; + while ((ch = stream.getByte()) !== -1) { + if (ch === TILDE && stream.peekByte() === GT) { + stream.skip(); + break; + } + } + length = stream.pos - startPos; + if (ch === -1) { + warn('Inline ASCII85Decode image stream: ' + 'EOD marker not found, searching for /EI/ instead.'); + stream.skip(-length); + return this.findDefaultInlineStreamEnd(stream); + } + this.inlineStreamSkipEI(stream); + return length; + }, + findASCIIHexDecodeInlineStreamEnd: function Parser_findASCIIHexDecodeInlineStreamEnd(stream) { + var GT = 0x3E; + var startPos = stream.pos, ch, length; + while ((ch = stream.getByte()) !== -1) { + if (ch === GT) { + break; + } + } + length = stream.pos - startPos; + if (ch === -1) { + warn('Inline ASCIIHexDecode image stream: ' + 'EOD marker not found, searching for /EI/ instead.'); + stream.skip(-length); + return this.findDefaultInlineStreamEnd(stream); + } + this.inlineStreamSkipEI(stream); + return length; + }, + inlineStreamSkipEI: function Parser_inlineStreamSkipEI(stream) { + var E = 0x45, I = 0x49; + var state = 0, ch; + while ((ch = stream.getByte()) !== -1) { + if (state === 0) { + state = ch === E ? 1 : 0; + } else if (state === 1) { + state = ch === I ? 2 : 0; + } else if (state === 2) { + break; + } + } + }, + makeInlineImage: function Parser_makeInlineImage(cipherTransform) { + var lexer = this.lexer; + var stream = lexer.stream; + var dict = new Dict(this.xref); + while (!isCmd(this.buf1, 'ID') && !isEOF(this.buf1)) { + if (!isName(this.buf1)) { + error('Dictionary key must be a name object'); + } + var key = this.buf1.name; + this.shift(); + if (isEOF(this.buf1)) { + break; + } + dict.set(key, this.getObj(cipherTransform)); + } + var filter = dict.get('Filter', 'F'), filterName; + if (isName(filter)) { + filterName = filter.name; + } else if (isArray(filter)) { + var filterZero = this.xref.fetchIfRef(filter[0]); + if (isName(filterZero)) { + filterName = filterZero.name; + } + } + var startPos = stream.pos, length, i, ii; + if (filterName === 'DCTDecode' || filterName === 'DCT') { + length = this.findDCTDecodeInlineStreamEnd(stream); + } else if (filterName === 'ASCII85Decide' || filterName === 'A85') { + length = this.findASCII85DecodeInlineStreamEnd(stream); + } else if (filterName === 'ASCIIHexDecode' || filterName === 'AHx') { + length = this.findASCIIHexDecodeInlineStreamEnd(stream); + } else { + length = this.findDefaultInlineStreamEnd(stream); + } + var imageStream = stream.makeSubStream(startPos, length, dict); + var adler32; + if (length < MAX_LENGTH_TO_CACHE) { + var imageBytes = imageStream.getBytes(); + imageStream.reset(); + var a = 1; + var b = 0; + for (i = 0, ii = imageBytes.length; i < ii; ++i) { + a += imageBytes[i] & 0xff; + b += a; + } + adler32 = b % 65521 << 16 | a % 65521; + if (this.imageCache.adler32 === adler32) { + this.buf2 = Cmd.get('EI'); + this.shift(); + this.imageCache[adler32].reset(); + return this.imageCache[adler32]; + } + } + if (cipherTransform) { + imageStream = cipherTransform.createStream(imageStream, length); + } + imageStream = this.filter(imageStream, dict, length); + imageStream.dict = dict; + if (adler32 !== undefined) { + imageStream.cacheKey = 'inline_' + length + '_' + adler32; + this.imageCache[adler32] = imageStream; + } + this.buf2 = Cmd.get('EI'); + this.shift(); + return imageStream; + }, + makeStream: function Parser_makeStream(dict, cipherTransform) { + var lexer = this.lexer; + var stream = lexer.stream; + lexer.skipToNextLine(); + var pos = stream.pos - 1; + var length = dict.get('Length'); + if (!isInt(length)) { + info('Bad ' + length + ' attribute in stream'); + length = 0; + } + stream.pos = pos + length; + lexer.nextChar(); + if (this.tryShift() && isCmd(this.buf2, 'endstream')) { + this.shift(); + } else { + stream.pos = pos; + var SCAN_BLOCK_SIZE = 2048; + var ENDSTREAM_SIGNATURE_LENGTH = 9; + var ENDSTREAM_SIGNATURE = [ + 0x65, + 0x6E, + 0x64, + 0x73, + 0x74, + 0x72, + 0x65, + 0x61, + 0x6D + ]; + var skipped = 0, found = false, i, j; + while (stream.pos < stream.end) { + var scanBytes = stream.peekBytes(SCAN_BLOCK_SIZE); + var scanLength = scanBytes.length - ENDSTREAM_SIGNATURE_LENGTH; + if (scanLength <= 0) { + break; + } + found = false; + i = 0; + while (i < scanLength) { + j = 0; + while (j < ENDSTREAM_SIGNATURE_LENGTH && scanBytes[i + j] === ENDSTREAM_SIGNATURE[j]) { + j++; + } + if (j >= ENDSTREAM_SIGNATURE_LENGTH) { + found = true; + break; + } + i++; + } + if (found) { + skipped += i; + stream.pos += i; + break; + } + skipped += scanLength; + stream.pos += scanLength; + } + if (!found) { + error('Missing endstream'); + } + length = skipped; + lexer.nextChar(); + this.shift(); + this.shift(); + } + this.shift(); + stream = stream.makeSubStream(pos, length, dict); + if (cipherTransform) { + stream = cipherTransform.createStream(stream, length); + } + stream = this.filter(stream, dict, length); + stream.dict = dict; + return stream; + }, + filter: function Parser_filter(stream, dict, length) { + var filter = dict.get('Filter', 'F'); + var params = dict.get('DecodeParms', 'DP'); + if (isName(filter)) { + if (isArray(params)) { + params = this.xref.fetchIfRef(params[0]); + } + return this.makeFilter(stream, filter.name, length, params); + } + var maybeLength = length; + if (isArray(filter)) { + var filterArray = filter; + var paramsArray = params; + for (var i = 0, ii = filterArray.length; i < ii; ++i) { + filter = this.xref.fetchIfRef(filterArray[i]); + if (!isName(filter)) { + error('Bad filter name: ' + filter); + } + params = null; + if (isArray(paramsArray) && i in paramsArray) { + params = this.xref.fetchIfRef(paramsArray[i]); + } + stream = this.makeFilter(stream, filter.name, maybeLength, params); + maybeLength = null; + } + } + return stream; + }, + makeFilter: function Parser_makeFilter(stream, name, maybeLength, params) { + if (maybeLength === 0) { + warn('Empty "' + name + '" stream.'); + return new NullStream(stream); + } + try { + var xrefStreamStats = this.xref.stats.streamTypes; + if (name === 'FlateDecode' || name === 'Fl') { + xrefStreamStats[StreamType.FLATE] = true; + if (params) { + return new PredictorStream(new FlateStream(stream, maybeLength), maybeLength, params); + } + return new FlateStream(stream, maybeLength); + } + if (name === 'LZWDecode' || name === 'LZW') { + xrefStreamStats[StreamType.LZW] = true; + var earlyChange = 1; + if (params) { + if (params.has('EarlyChange')) { + earlyChange = params.get('EarlyChange'); + } + return new PredictorStream(new LZWStream(stream, maybeLength, earlyChange), maybeLength, params); + } + return new LZWStream(stream, maybeLength, earlyChange); + } + if (name === 'DCTDecode' || name === 'DCT') { + xrefStreamStats[StreamType.DCT] = true; + return new JpegStream(stream, maybeLength, stream.dict, params); + } + if (name === 'JPXDecode' || name === 'JPX') { + xrefStreamStats[StreamType.JPX] = true; + return new JpxStream(stream, maybeLength, stream.dict, params); + } + if (name === 'ASCII85Decode' || name === 'A85') { + xrefStreamStats[StreamType.A85] = true; + return new Ascii85Stream(stream, maybeLength); + } + if (name === 'ASCIIHexDecode' || name === 'AHx') { + xrefStreamStats[StreamType.AHX] = true; + return new AsciiHexStream(stream, maybeLength); + } + if (name === 'CCITTFaxDecode' || name === 'CCF') { + xrefStreamStats[StreamType.CCF] = true; + return new CCITTFaxStream(stream, maybeLength, params); + } + if (name === 'RunLengthDecode' || name === 'RL') { + xrefStreamStats[StreamType.RL] = true; + return new RunLengthStream(stream, maybeLength); + } + if (name === 'JBIG2Decode') { + xrefStreamStats[StreamType.JBIG] = true; + return new Jbig2Stream(stream, maybeLength, stream.dict, params); + } + warn('filter "' + name + '" not supported yet'); + return stream; + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn('Invalid stream: \"' + ex + '\"'); + return new NullStream(stream); + } + } + }; + return Parser; +}(); +var Lexer = function LexerClosure() { + function Lexer(stream, knownCommands) { + this.stream = stream; + this.nextChar(); + this.strBuf = []; + this.knownCommands = knownCommands; + } + var specialChars = [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ]; + function toHexDigit(ch) { + if (ch >= 0x30 && ch <= 0x39) { + return ch & 0x0F; + } + if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) { + return (ch & 0x0F) + 9; + } + return -1; + } + Lexer.prototype = { + nextChar: function Lexer_nextChar() { + return this.currentChar = this.stream.getByte(); + }, + peekChar: function Lexer_peekChar() { + return this.stream.peekByte(); + }, + getNumber: function Lexer_getNumber() { + var ch = this.currentChar; + var eNotation = false; + var divideBy = 0; + var sign = 1; + if (ch === 0x2D) { + sign = -1; + ch = this.nextChar(); + if (ch === 0x2D) { + ch = this.nextChar(); + } + } else if (ch === 0x2B) { + ch = this.nextChar(); + } + if (ch === 0x2E) { + divideBy = 10; + ch = this.nextChar(); + } + if (ch < 0x30 || ch > 0x39) { + error('Invalid number: ' + String.fromCharCode(ch)); + return 0; + } + var baseValue = ch - 0x30; + var powerValue = 0; + var powerValueSign = 1; + while ((ch = this.nextChar()) >= 0) { + if (0x30 <= ch && ch <= 0x39) { + var currentDigit = ch - 0x30; + if (eNotation) { + powerValue = powerValue * 10 + currentDigit; + } else { + if (divideBy !== 0) { + divideBy *= 10; + } + baseValue = baseValue * 10 + currentDigit; + } + } else if (ch === 0x2E) { + if (divideBy === 0) { + divideBy = 1; + } else { + break; + } + } else if (ch === 0x2D) { + warn('Badly formatted number'); + } else if (ch === 0x45 || ch === 0x65) { + ch = this.peekChar(); + if (ch === 0x2B || ch === 0x2D) { + powerValueSign = ch === 0x2D ? -1 : 1; + this.nextChar(); + } else if (ch < 0x30 || ch > 0x39) { + break; + } + eNotation = true; + } else { + break; + } + } + if (divideBy !== 0) { + baseValue /= divideBy; + } + if (eNotation) { + baseValue *= Math.pow(10, powerValueSign * powerValue); + } + return sign * baseValue; + }, + getString: function Lexer_getString() { + var numParen = 1; + var done = false; + var strBuf = this.strBuf; + strBuf.length = 0; + var ch = this.nextChar(); + while (true) { + var charBuffered = false; + switch (ch | 0) { + case -1: + warn('Unterminated string'); + done = true; + break; + case 0x28: + ++numParen; + strBuf.push('('); + break; + case 0x29: + if (--numParen === 0) { + this.nextChar(); + done = true; + } else { + strBuf.push(')'); + } + break; + case 0x5C: + ch = this.nextChar(); + switch (ch) { + case -1: + warn('Unterminated string'); + done = true; + break; + case 0x6E: + strBuf.push('\n'); + break; + case 0x72: + strBuf.push('\r'); + break; + case 0x74: + strBuf.push('\t'); + break; + case 0x62: + strBuf.push('\b'); + break; + case 0x66: + strBuf.push('\f'); + break; + case 0x5C: + case 0x28: + case 0x29: + strBuf.push(String.fromCharCode(ch)); + break; + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + var x = ch & 0x0F; + ch = this.nextChar(); + charBuffered = true; + if (ch >= 0x30 && ch <= 0x37) { + x = (x << 3) + (ch & 0x0F); + ch = this.nextChar(); + if (ch >= 0x30 && ch <= 0x37) { + charBuffered = false; + x = (x << 3) + (ch & 0x0F); + } + } + strBuf.push(String.fromCharCode(x)); + break; + case 0x0D: + if (this.peekChar() === 0x0A) { + this.nextChar(); + } + break; + case 0x0A: + break; + default: + strBuf.push(String.fromCharCode(ch)); + break; + } + break; + default: + strBuf.push(String.fromCharCode(ch)); + break; + } + if (done) { + break; + } + if (!charBuffered) { + ch = this.nextChar(); + } + } + return strBuf.join(''); + }, + getName: function Lexer_getName() { + var ch, previousCh; + var strBuf = this.strBuf; + strBuf.length = 0; + while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) { + if (ch === 0x23) { + ch = this.nextChar(); + if (specialChars[ch]) { + warn('Lexer_getName: ' + 'NUMBER SIGN (#) should be followed by a hexadecimal number.'); + strBuf.push('#'); + break; + } + var x = toHexDigit(ch); + if (x !== -1) { + previousCh = ch; + ch = this.nextChar(); + var x2 = toHexDigit(ch); + if (x2 === -1) { + warn('Lexer_getName: Illegal digit (' + String.fromCharCode(ch) + ') in hexadecimal number.'); + strBuf.push('#', String.fromCharCode(previousCh)); + if (specialChars[ch]) { + break; + } + strBuf.push(String.fromCharCode(ch)); + continue; + } + strBuf.push(String.fromCharCode(x << 4 | x2)); + } else { + strBuf.push('#', String.fromCharCode(ch)); + } + } else { + strBuf.push(String.fromCharCode(ch)); + } + } + if (strBuf.length > 127) { + warn('name token is longer than allowed by the spec: ' + strBuf.length); + } + return Name.get(strBuf.join('')); + }, + getHexString: function Lexer_getHexString() { + var strBuf = this.strBuf; + strBuf.length = 0; + var ch = this.currentChar; + var isFirstHex = true; + var firstDigit; + var secondDigit; + while (true) { + if (ch < 0) { + warn('Unterminated hex string'); + break; + } else if (ch === 0x3E) { + this.nextChar(); + break; + } else if (specialChars[ch] === 1) { + ch = this.nextChar(); + continue; + } else { + if (isFirstHex) { + firstDigit = toHexDigit(ch); + if (firstDigit === -1) { + warn('Ignoring invalid character "' + ch + '" in hex string'); + ch = this.nextChar(); + continue; + } + } else { + secondDigit = toHexDigit(ch); + if (secondDigit === -1) { + warn('Ignoring invalid character "' + ch + '" in hex string'); + ch = this.nextChar(); + continue; + } + strBuf.push(String.fromCharCode(firstDigit << 4 | secondDigit)); + } + isFirstHex = !isFirstHex; + ch = this.nextChar(); + } + } + return strBuf.join(''); + }, + getObj: function Lexer_getObj() { + var comment = false; + var ch = this.currentChar; + while (true) { + if (ch < 0) { + return EOF; + } + if (comment) { + if (ch === 0x0A || ch === 0x0D) { + comment = false; + } + } else if (ch === 0x25) { + comment = true; + } else if (specialChars[ch] !== 1) { + break; + } + ch = this.nextChar(); + } + switch (ch | 0) { + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x2B: + case 0x2D: + case 0x2E: + return this.getNumber(); + case 0x28: + return this.getString(); + case 0x2F: + return this.getName(); + case 0x5B: + this.nextChar(); + return Cmd.get('['); + case 0x5D: + this.nextChar(); + return Cmd.get(']'); + case 0x3C: + ch = this.nextChar(); + if (ch === 0x3C) { + this.nextChar(); + return Cmd.get('<<'); + } + return this.getHexString(); + case 0x3E: + ch = this.nextChar(); + if (ch === 0x3E) { + this.nextChar(); + return Cmd.get('>>'); + } + return Cmd.get('>'); + case 0x7B: + this.nextChar(); + return Cmd.get('{'); + case 0x7D: + this.nextChar(); + return Cmd.get('}'); + case 0x29: + this.nextChar(); + error('Illegal character: ' + ch); + break; + } + var str = String.fromCharCode(ch); + var knownCommands = this.knownCommands; + var knownCommandFound = knownCommands && knownCommands[str] !== undefined; + while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) { + var possibleCommand = str + String.fromCharCode(ch); + if (knownCommandFound && knownCommands[possibleCommand] === undefined) { + break; + } + if (str.length === 128) { + error('Command token too long: ' + str.length); + } + str = possibleCommand; + knownCommandFound = knownCommands && knownCommands[str] !== undefined; + } + if (str === 'true') { + return true; + } + if (str === 'false') { + return false; + } + if (str === 'null') { + return null; + } + return Cmd.get(str); + }, + skipToNextLine: function Lexer_skipToNextLine() { + var ch = this.currentChar; + while (ch >= 0) { + if (ch === 0x0D) { + ch = this.nextChar(); + if (ch === 0x0A) { + this.nextChar(); + } + break; + } else if (ch === 0x0A) { + this.nextChar(); + break; + } + ch = this.nextChar(); + } + } + }; + return Lexer; +}(); +var Linearization = { + create: function LinearizationCreate(stream) { + function getInt(name, allowZeroValue) { + var obj = linDict.get(name); + if (isInt(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) { + return obj; + } + throw new Error('The "' + name + '" parameter in the linearization ' + 'dictionary is invalid.'); + } + function getHints() { + var hints = linDict.get('H'), hintsLength, item; + if (isArray(hints) && ((hintsLength = hints.length) === 2 || hintsLength === 4)) { + for (var index = 0; index < hintsLength; index++) { + if (!(isInt(item = hints[index]) && item > 0)) { + throw new Error('Hint (' + index + ') in the linearization dictionary is invalid.'); + } + } + return hints; + } + throw new Error('Hint array in the linearization dictionary is invalid.'); + } + var parser = new Parser(new Lexer(stream), false, null); + var obj1 = parser.getObj(); + var obj2 = parser.getObj(); + var obj3 = parser.getObj(); + var linDict = parser.getObj(); + var obj, length; + if (!(isInt(obj1) && isInt(obj2) && isCmd(obj3, 'obj') && isDict(linDict) && isNum(obj = linDict.get('Linearized')) && obj > 0)) { + return null; + } else if ((length = getInt('L')) !== stream.length) { + throw new Error('The "L" parameter in the linearization dictionary ' + 'does not equal the stream length.'); + } + return { + length: length, + hints: getHints(), + objectNumberFirst: getInt('O'), + endFirst: getInt('E'), + numPages: getInt('N'), + mainXRefEntriesOffset: getInt('T'), + pageFirst: linDict.has('P') ? getInt('P', true) : 0 + }; + } +}; +exports.Lexer = Lexer; +exports.Linearization = Linearization; +exports.Parser = Parser; + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var corePrimitives = __w_pdfjs_require__(1); +var corePsParser = __w_pdfjs_require__(34); +var error = sharedUtil.error; +var info = sharedUtil.info; +var isArray = sharedUtil.isArray; +var isBool = sharedUtil.isBool; +var isDict = corePrimitives.isDict; +var isStream = corePrimitives.isStream; +var PostScriptLexer = corePsParser.PostScriptLexer; +var PostScriptParser = corePsParser.PostScriptParser; +var PDFFunction = function PDFFunctionClosure() { + var CONSTRUCT_SAMPLED = 0; + var CONSTRUCT_INTERPOLATED = 2; + var CONSTRUCT_STICHED = 3; + var CONSTRUCT_POSTSCRIPT = 4; + return { + getSampleArray: function PDFFunction_getSampleArray(size, outputSize, bps, str) { + var i, ii; + var length = 1; + for (i = 0, ii = size.length; i < ii; i++) { + length *= size[i]; + } + length *= outputSize; + var array = new Array(length); + var codeSize = 0; + var codeBuf = 0; + var sampleMul = 1.0 / (Math.pow(2.0, bps) - 1); + var strBytes = str.getBytes((length * bps + 7) / 8); + var strIdx = 0; + for (i = 0; i < length; i++) { + while (codeSize < bps) { + codeBuf <<= 8; + codeBuf |= strBytes[strIdx++]; + codeSize += 8; + } + codeSize -= bps; + array[i] = (codeBuf >> codeSize) * sampleMul; + codeBuf &= (1 << codeSize) - 1; + } + return array; + }, + getIR: function PDFFunction_getIR(xref, fn) { + var dict = fn.dict; + if (!dict) { + dict = fn; + } + var types = [ + this.constructSampled, + null, + this.constructInterpolated, + this.constructStiched, + this.constructPostScript + ]; + var typeNum = dict.get('FunctionType'); + var typeFn = types[typeNum]; + if (!typeFn) { + error('Unknown type of function'); + } + return typeFn.call(this, fn, dict, xref); + }, + fromIR: function PDFFunction_fromIR(IR) { + var type = IR[0]; + switch (type) { + case CONSTRUCT_SAMPLED: + return this.constructSampledFromIR(IR); + case CONSTRUCT_INTERPOLATED: + return this.constructInterpolatedFromIR(IR); + case CONSTRUCT_STICHED: + return this.constructStichedFromIR(IR); + default: + return this.constructPostScriptFromIR(IR); + } + }, + parse: function PDFFunction_parse(xref, fn) { + var IR = this.getIR(xref, fn); + return this.fromIR(IR); + }, + parseArray: function PDFFunction_parseArray(xref, fnObj) { + if (!isArray(fnObj)) { + return this.parse(xref, fnObj); + } + var fnArray = []; + for (var j = 0, jj = fnObj.length; j < jj; j++) { + var obj = xref.fetchIfRef(fnObj[j]); + fnArray.push(PDFFunction.parse(xref, obj)); + } + return function (src, srcOffset, dest, destOffset) { + for (var i = 0, ii = fnArray.length; i < ii; i++) { + fnArray[i](src, srcOffset, dest, destOffset + i); + } + }; + }, + constructSampled: function PDFFunction_constructSampled(str, dict) { + function toMultiArray(arr) { + var inputLength = arr.length; + var out = []; + var index = 0; + for (var i = 0; i < inputLength; i += 2) { + out[index] = [ + arr[i], + arr[i + 1] + ]; + ++index; + } + return out; + } + var domain = dict.getArray('Domain'); + var range = dict.getArray('Range'); + if (!domain || !range) { + error('No domain or range'); + } + var inputSize = domain.length / 2; + var outputSize = range.length / 2; + domain = toMultiArray(domain); + range = toMultiArray(range); + var size = dict.get('Size'); + var bps = dict.get('BitsPerSample'); + var order = dict.get('Order') || 1; + if (order !== 1) { + info('No support for cubic spline interpolation: ' + order); + } + var encode = dict.getArray('Encode'); + if (!encode) { + encode = []; + for (var i = 0; i < inputSize; ++i) { + encode.push(0); + encode.push(size[i] - 1); + } + } + encode = toMultiArray(encode); + var decode = dict.getArray('Decode'); + if (!decode) { + decode = range; + } else { + decode = toMultiArray(decode); + } + var samples = this.getSampleArray(size, outputSize, bps, str); + return [ + CONSTRUCT_SAMPLED, + inputSize, + domain, + encode, + decode, + samples, + size, + outputSize, + Math.pow(2, bps) - 1, + range + ]; + }, + constructSampledFromIR: function PDFFunction_constructSampledFromIR(IR) { + function interpolate(x, xmin, xmax, ymin, ymax) { + return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin)); + } + return function constructSampledFromIRResult(src, srcOffset, dest, destOffset) { + var m = IR[1]; + var domain = IR[2]; + var encode = IR[3]; + var decode = IR[4]; + var samples = IR[5]; + var size = IR[6]; + var n = IR[7]; + var range = IR[9]; + var cubeVertices = 1 << m; + var cubeN = new Float64Array(cubeVertices); + var cubeVertex = new Uint32Array(cubeVertices); + var i, j; + for (j = 0; j < cubeVertices; j++) { + cubeN[j] = 1; + } + var k = n, pos = 1; + for (i = 0; i < m; ++i) { + var domain_2i = domain[i][0]; + var domain_2i_1 = domain[i][1]; + var xi = Math.min(Math.max(src[srcOffset + i], domain_2i), domain_2i_1); + var e = interpolate(xi, domain_2i, domain_2i_1, encode[i][0], encode[i][1]); + var size_i = size[i]; + e = Math.min(Math.max(e, 0), size_i - 1); + var e0 = e < size_i - 1 ? Math.floor(e) : e - 1; + var n0 = e0 + 1 - e; + var n1 = e - e0; + var offset0 = e0 * k; + var offset1 = offset0 + k; + for (j = 0; j < cubeVertices; j++) { + if (j & pos) { + cubeN[j] *= n1; + cubeVertex[j] += offset1; + } else { + cubeN[j] *= n0; + cubeVertex[j] += offset0; + } + } + k *= size_i; + pos <<= 1; + } + for (j = 0; j < n; ++j) { + var rj = 0; + for (i = 0; i < cubeVertices; i++) { + rj += samples[cubeVertex[i] + j] * cubeN[i]; + } + rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]); + dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]); + } + }; + }, + constructInterpolated: function PDFFunction_constructInterpolated(str, dict) { + var c0 = dict.getArray('C0') || [0]; + var c1 = dict.getArray('C1') || [1]; + var n = dict.get('N'); + if (!isArray(c0) || !isArray(c1)) { + error('Illegal dictionary for interpolated function'); + } + var length = c0.length; + var diff = []; + for (var i = 0; i < length; ++i) { + diff.push(c1[i] - c0[i]); + } + return [ + CONSTRUCT_INTERPOLATED, + c0, + diff, + n + ]; + }, + constructInterpolatedFromIR: function PDFFunction_constructInterpolatedFromIR(IR) { + var c0 = IR[1]; + var diff = IR[2]; + var n = IR[3]; + var length = diff.length; + return function constructInterpolatedFromIRResult(src, srcOffset, dest, destOffset) { + var x = n === 1 ? src[srcOffset] : Math.pow(src[srcOffset], n); + for (var j = 0; j < length; ++j) { + dest[destOffset + j] = c0[j] + x * diff[j]; + } + }; + }, + constructStiched: function PDFFunction_constructStiched(fn, dict, xref) { + var domain = dict.getArray('Domain'); + if (!domain) { + error('No domain'); + } + var inputSize = domain.length / 2; + if (inputSize !== 1) { + error('Bad domain for stiched function'); + } + var fnRefs = dict.get('Functions'); + var fns = []; + for (var i = 0, ii = fnRefs.length; i < ii; ++i) { + fns.push(PDFFunction.getIR(xref, xref.fetchIfRef(fnRefs[i]))); + } + var bounds = dict.getArray('Bounds'); + var encode = dict.getArray('Encode'); + return [ + CONSTRUCT_STICHED, + domain, + bounds, + encode, + fns + ]; + }, + constructStichedFromIR: function PDFFunction_constructStichedFromIR(IR) { + var domain = IR[1]; + var bounds = IR[2]; + var encode = IR[3]; + var fnsIR = IR[4]; + var fns = []; + var tmpBuf = new Float32Array(1); + for (var i = 0, ii = fnsIR.length; i < ii; i++) { + fns.push(PDFFunction.fromIR(fnsIR[i])); + } + return function constructStichedFromIRResult(src, srcOffset, dest, destOffset) { + var clip = function constructStichedFromIRClip(v, min, max) { + if (v > max) { + v = max; + } else if (v < min) { + v = min; + } + return v; + }; + var v = clip(src[srcOffset], domain[0], domain[1]); + for (var i = 0, ii = bounds.length; i < ii; ++i) { + if (v < bounds[i]) { + break; + } + } + var dmin = domain[0]; + if (i > 0) { + dmin = bounds[i - 1]; + } + var dmax = domain[1]; + if (i < bounds.length) { + dmax = bounds[i]; + } + var rmin = encode[2 * i]; + var rmax = encode[2 * i + 1]; + tmpBuf[0] = dmin === dmax ? rmin : rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin); + fns[i](tmpBuf, 0, dest, destOffset); + }; + }, + constructPostScript: function PDFFunction_constructPostScript(fn, dict, xref) { + var domain = dict.getArray('Domain'); + var range = dict.getArray('Range'); + if (!domain) { + error('No domain.'); + } + if (!range) { + error('No range.'); + } + var lexer = new PostScriptLexer(fn); + var parser = new PostScriptParser(lexer); + var code = parser.parse(); + return [ + CONSTRUCT_POSTSCRIPT, + domain, + range, + code + ]; + }, + constructPostScriptFromIR: function PDFFunction_constructPostScriptFromIR(IR) { + var domain = IR[1]; + var range = IR[2]; + var code = IR[3]; + var compiled = new PostScriptCompiler().compile(code, domain, range); + if (compiled) { + return new Function('src', 'srcOffset', 'dest', 'destOffset', compiled); + } + info('Unable to compile PS function'); + var numOutputs = range.length >> 1; + var numInputs = domain.length >> 1; + var evaluator = new PostScriptEvaluator(code); + var cache = Object.create(null); + var MAX_CACHE_SIZE = 2048 * 4; + var cache_available = MAX_CACHE_SIZE; + var tmpBuf = new Float32Array(numInputs); + return function constructPostScriptFromIRResult(src, srcOffset, dest, destOffset) { + var i, value; + var key = ''; + var input = tmpBuf; + for (i = 0; i < numInputs; i++) { + value = src[srcOffset + i]; + input[i] = value; + key += value + '_'; + } + var cachedValue = cache[key]; + if (cachedValue !== undefined) { + dest.set(cachedValue, destOffset); + return; + } + var output = new Float32Array(numOutputs); + var stack = evaluator.execute(input); + var stackIndex = stack.length - numOutputs; + for (i = 0; i < numOutputs; i++) { + value = stack[stackIndex + i]; + var bound = range[i * 2]; + if (value < bound) { + value = bound; + } else { + bound = range[i * 2 + 1]; + if (value > bound) { + value = bound; + } + } + output[i] = value; + } + if (cache_available > 0) { + cache_available--; + cache[key] = output; + } + dest.set(output, destOffset); + }; + } + }; +}(); +function isPDFFunction(v) { + var fnDict; + if (typeof v !== 'object') { + return false; + } else if (isDict(v)) { + fnDict = v; + } else if (isStream(v)) { + fnDict = v.dict; + } else { + return false; + } + return fnDict.has('FunctionType'); +} +var PostScriptStack = function PostScriptStackClosure() { + var MAX_STACK_SIZE = 100; + function PostScriptStack(initialStack) { + this.stack = !initialStack ? [] : Array.prototype.slice.call(initialStack, 0); + } + PostScriptStack.prototype = { + push: function PostScriptStack_push(value) { + if (this.stack.length >= MAX_STACK_SIZE) { + error('PostScript function stack overflow.'); + } + this.stack.push(value); + }, + pop: function PostScriptStack_pop() { + if (this.stack.length <= 0) { + error('PostScript function stack underflow.'); + } + return this.stack.pop(); + }, + copy: function PostScriptStack_copy(n) { + if (this.stack.length + n >= MAX_STACK_SIZE) { + error('PostScript function stack overflow.'); + } + var stack = this.stack; + for (var i = stack.length - n, j = n - 1; j >= 0; j--, i++) { + stack.push(stack[i]); + } + }, + index: function PostScriptStack_index(n) { + this.push(this.stack[this.stack.length - n - 1]); + }, + roll: function PostScriptStack_roll(n, p) { + var stack = this.stack; + var l = stack.length - n; + var r = stack.length - 1, c = l + (p - Math.floor(p / n) * n), i, j, t; + for (i = l, j = r; i < j; i++, j--) { + t = stack[i]; + stack[i] = stack[j]; + stack[j] = t; + } + for (i = l, j = c - 1; i < j; i++, j--) { + t = stack[i]; + stack[i] = stack[j]; + stack[j] = t; + } + for (i = c, j = r; i < j; i++, j--) { + t = stack[i]; + stack[i] = stack[j]; + stack[j] = t; + } + } + }; + return PostScriptStack; +}(); +var PostScriptEvaluator = function PostScriptEvaluatorClosure() { + function PostScriptEvaluator(operators) { + this.operators = operators; + } + PostScriptEvaluator.prototype = { + execute: function PostScriptEvaluator_execute(initialStack) { + var stack = new PostScriptStack(initialStack); + var counter = 0; + var operators = this.operators; + var length = operators.length; + var operator, a, b; + while (counter < length) { + operator = operators[counter++]; + if (typeof operator === 'number') { + stack.push(operator); + continue; + } + switch (operator) { + case 'jz': + b = stack.pop(); + a = stack.pop(); + if (!a) { + counter = b; + } + break; + case 'j': + a = stack.pop(); + counter = a; + break; + case 'abs': + a = stack.pop(); + stack.push(Math.abs(a)); + break; + case 'add': + b = stack.pop(); + a = stack.pop(); + stack.push(a + b); + break; + case 'and': + b = stack.pop(); + a = stack.pop(); + if (isBool(a) && isBool(b)) { + stack.push(a && b); + } else { + stack.push(a & b); + } + break; + case 'atan': + a = stack.pop(); + stack.push(Math.atan(a)); + break; + case 'bitshift': + b = stack.pop(); + a = stack.pop(); + if (a > 0) { + stack.push(a << b); + } else { + stack.push(a >> b); + } + break; + case 'ceiling': + a = stack.pop(); + stack.push(Math.ceil(a)); + break; + case 'copy': + a = stack.pop(); + stack.copy(a); + break; + case 'cos': + a = stack.pop(); + stack.push(Math.cos(a)); + break; + case 'cvi': + a = stack.pop() | 0; + stack.push(a); + break; + case 'cvr': + break; + case 'div': + b = stack.pop(); + a = stack.pop(); + stack.push(a / b); + break; + case 'dup': + stack.copy(1); + break; + case 'eq': + b = stack.pop(); + a = stack.pop(); + stack.push(a === b); + break; + case 'exch': + stack.roll(2, 1); + break; + case 'exp': + b = stack.pop(); + a = stack.pop(); + stack.push(Math.pow(a, b)); + break; + case 'false': + stack.push(false); + break; + case 'floor': + a = stack.pop(); + stack.push(Math.floor(a)); + break; + case 'ge': + b = stack.pop(); + a = stack.pop(); + stack.push(a >= b); + break; + case 'gt': + b = stack.pop(); + a = stack.pop(); + stack.push(a > b); + break; + case 'idiv': + b = stack.pop(); + a = stack.pop(); + stack.push(a / b | 0); + break; + case 'index': + a = stack.pop(); + stack.index(a); + break; + case 'le': + b = stack.pop(); + a = stack.pop(); + stack.push(a <= b); + break; + case 'ln': + a = stack.pop(); + stack.push(Math.log(a)); + break; + case 'log': + a = stack.pop(); + stack.push(Math.log(a) / Math.LN10); + break; + case 'lt': + b = stack.pop(); + a = stack.pop(); + stack.push(a < b); + break; + case 'mod': + b = stack.pop(); + a = stack.pop(); + stack.push(a % b); + break; + case 'mul': + b = stack.pop(); + a = stack.pop(); + stack.push(a * b); + break; + case 'ne': + b = stack.pop(); + a = stack.pop(); + stack.push(a !== b); + break; + case 'neg': + a = stack.pop(); + stack.push(-a); + break; + case 'not': + a = stack.pop(); + if (isBool(a)) { + stack.push(!a); + } else { + stack.push(~a); + } + break; + case 'or': + b = stack.pop(); + a = stack.pop(); + if (isBool(a) && isBool(b)) { + stack.push(a || b); + } else { + stack.push(a | b); + } + break; + case 'pop': + stack.pop(); + break; + case 'roll': + b = stack.pop(); + a = stack.pop(); + stack.roll(a, b); + break; + case 'round': + a = stack.pop(); + stack.push(Math.round(a)); + break; + case 'sin': + a = stack.pop(); + stack.push(Math.sin(a)); + break; + case 'sqrt': + a = stack.pop(); + stack.push(Math.sqrt(a)); + break; + case 'sub': + b = stack.pop(); + a = stack.pop(); + stack.push(a - b); + break; + case 'true': + stack.push(true); + break; + case 'truncate': + a = stack.pop(); + a = a < 0 ? Math.ceil(a) : Math.floor(a); + stack.push(a); + break; + case 'xor': + b = stack.pop(); + a = stack.pop(); + if (isBool(a) && isBool(b)) { + stack.push(a !== b); + } else { + stack.push(a ^ b); + } + break; + default: + error('Unknown operator ' + operator); + break; + } + } + return stack.stack; + } + }; + return PostScriptEvaluator; +}(); +var PostScriptCompiler = function PostScriptCompilerClosure() { + function AstNode(type) { + this.type = type; + } + AstNode.prototype.visit = function (visitor) { + throw new Error('abstract method'); + }; + function AstArgument(index, min, max) { + AstNode.call(this, 'args'); + this.index = index; + this.min = min; + this.max = max; + } + AstArgument.prototype = Object.create(AstNode.prototype); + AstArgument.prototype.visit = function (visitor) { + visitor.visitArgument(this); + }; + function AstLiteral(number) { + AstNode.call(this, 'literal'); + this.number = number; + this.min = number; + this.max = number; + } + AstLiteral.prototype = Object.create(AstNode.prototype); + AstLiteral.prototype.visit = function (visitor) { + visitor.visitLiteral(this); + }; + function AstBinaryOperation(op, arg1, arg2, min, max) { + AstNode.call(this, 'binary'); + this.op = op; + this.arg1 = arg1; + this.arg2 = arg2; + this.min = min; + this.max = max; + } + AstBinaryOperation.prototype = Object.create(AstNode.prototype); + AstBinaryOperation.prototype.visit = function (visitor) { + visitor.visitBinaryOperation(this); + }; + function AstMin(arg, max) { + AstNode.call(this, 'max'); + this.arg = arg; + this.min = arg.min; + this.max = max; + } + AstMin.prototype = Object.create(AstNode.prototype); + AstMin.prototype.visit = function (visitor) { + visitor.visitMin(this); + }; + function AstVariable(index, min, max) { + AstNode.call(this, 'var'); + this.index = index; + this.min = min; + this.max = max; + } + AstVariable.prototype = Object.create(AstNode.prototype); + AstVariable.prototype.visit = function (visitor) { + visitor.visitVariable(this); + }; + function AstVariableDefinition(variable, arg) { + AstNode.call(this, 'definition'); + this.variable = variable; + this.arg = arg; + } + AstVariableDefinition.prototype = Object.create(AstNode.prototype); + AstVariableDefinition.prototype.visit = function (visitor) { + visitor.visitVariableDefinition(this); + }; + function ExpressionBuilderVisitor() { + this.parts = []; + } + ExpressionBuilderVisitor.prototype = { + visitArgument: function (arg) { + this.parts.push('Math.max(', arg.min, ', Math.min(', arg.max, ', src[srcOffset + ', arg.index, ']))'); + }, + visitVariable: function (variable) { + this.parts.push('v', variable.index); + }, + visitLiteral: function (literal) { + this.parts.push(literal.number); + }, + visitBinaryOperation: function (operation) { + this.parts.push('('); + operation.arg1.visit(this); + this.parts.push(' ', operation.op, ' '); + operation.arg2.visit(this); + this.parts.push(')'); + }, + visitVariableDefinition: function (definition) { + this.parts.push('var '); + definition.variable.visit(this); + this.parts.push(' = '); + definition.arg.visit(this); + this.parts.push(';'); + }, + visitMin: function (max) { + this.parts.push('Math.min('); + max.arg.visit(this); + this.parts.push(', ', max.max, ')'); + }, + toString: function () { + return this.parts.join(''); + } + }; + function buildAddOperation(num1, num2) { + if (num2.type === 'literal' && num2.number === 0) { + return num1; + } + if (num1.type === 'literal' && num1.number === 0) { + return num2; + } + if (num2.type === 'literal' && num1.type === 'literal') { + return new AstLiteral(num1.number + num2.number); + } + return new AstBinaryOperation('+', num1, num2, num1.min + num2.min, num1.max + num2.max); + } + function buildMulOperation(num1, num2) { + if (num2.type === 'literal') { + if (num2.number === 0) { + return new AstLiteral(0); + } else if (num2.number === 1) { + return num1; + } else if (num1.type === 'literal') { + return new AstLiteral(num1.number * num2.number); + } + } + if (num1.type === 'literal') { + if (num1.number === 0) { + return new AstLiteral(0); + } else if (num1.number === 1) { + return num2; + } + } + var min = Math.min(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max); + var max = Math.max(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max); + return new AstBinaryOperation('*', num1, num2, min, max); + } + function buildSubOperation(num1, num2) { + if (num2.type === 'literal') { + if (num2.number === 0) { + return num1; + } else if (num1.type === 'literal') { + return new AstLiteral(num1.number - num2.number); + } + } + if (num2.type === 'binary' && num2.op === '-' && num1.type === 'literal' && num1.number === 1 && num2.arg1.type === 'literal' && num2.arg1.number === 1) { + return num2.arg2; + } + return new AstBinaryOperation('-', num1, num2, num1.min - num2.max, num1.max - num2.min); + } + function buildMinOperation(num1, max) { + if (num1.min >= max) { + return new AstLiteral(max); + } else if (num1.max <= max) { + return num1; + } + return new AstMin(num1, max); + } + function PostScriptCompiler() { + } + PostScriptCompiler.prototype = { + compile: function PostScriptCompiler_compile(code, domain, range) { + var stack = []; + var i, ii; + var instructions = []; + var inputSize = domain.length >> 1, outputSize = range.length >> 1; + var lastRegister = 0; + var n, j; + var num1, num2, ast1, ast2, tmpVar, item; + for (i = 0; i < inputSize; i++) { + stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1])); + } + for (i = 0, ii = code.length; i < ii; i++) { + item = code[i]; + if (typeof item === 'number') { + stack.push(new AstLiteral(item)); + continue; + } + switch (item) { + case 'add': + if (stack.length < 2) { + return null; + } + num2 = stack.pop(); + num1 = stack.pop(); + stack.push(buildAddOperation(num1, num2)); + break; + case 'cvr': + if (stack.length < 1) { + return null; + } + break; + case 'mul': + if (stack.length < 2) { + return null; + } + num2 = stack.pop(); + num1 = stack.pop(); + stack.push(buildMulOperation(num1, num2)); + break; + case 'sub': + if (stack.length < 2) { + return null; + } + num2 = stack.pop(); + num1 = stack.pop(); + stack.push(buildSubOperation(num1, num2)); + break; + case 'exch': + if (stack.length < 2) { + return null; + } + ast1 = stack.pop(); + ast2 = stack.pop(); + stack.push(ast1, ast2); + break; + case 'pop': + if (stack.length < 1) { + return null; + } + stack.pop(); + break; + case 'index': + if (stack.length < 1) { + return null; + } + num1 = stack.pop(); + if (num1.type !== 'literal') { + return null; + } + n = num1.number; + if (n < 0 || (n | 0) !== n || stack.length < n) { + return null; + } + ast1 = stack[stack.length - n - 1]; + if (ast1.type === 'literal' || ast1.type === 'var') { + stack.push(ast1); + break; + } + tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max); + stack[stack.length - n - 1] = tmpVar; + stack.push(tmpVar); + instructions.push(new AstVariableDefinition(tmpVar, ast1)); + break; + case 'dup': + if (stack.length < 1) { + return null; + } + if (typeof code[i + 1] === 'number' && code[i + 2] === 'gt' && code[i + 3] === i + 7 && code[i + 4] === 'jz' && code[i + 5] === 'pop' && code[i + 6] === code[i + 1]) { + num1 = stack.pop(); + stack.push(buildMinOperation(num1, code[i + 1])); + i += 6; + break; + } + ast1 = stack[stack.length - 1]; + if (ast1.type === 'literal' || ast1.type === 'var') { + stack.push(ast1); + break; + } + tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max); + stack[stack.length - 1] = tmpVar; + stack.push(tmpVar); + instructions.push(new AstVariableDefinition(tmpVar, ast1)); + break; + case 'roll': + if (stack.length < 2) { + return null; + } + num2 = stack.pop(); + num1 = stack.pop(); + if (num2.type !== 'literal' || num1.type !== 'literal') { + return null; + } + j = num2.number; + n = num1.number; + if (n <= 0 || (n | 0) !== n || (j | 0) !== j || stack.length < n) { + return null; + } + j = (j % n + n) % n; + if (j === 0) { + break; + } + Array.prototype.push.apply(stack, stack.splice(stack.length - n, n - j)); + break; + default: + return null; + } + } + if (stack.length !== outputSize) { + return null; + } + var result = []; + instructions.forEach(function (instruction) { + var statementBuilder = new ExpressionBuilderVisitor(); + instruction.visit(statementBuilder); + result.push(statementBuilder.toString()); + }); + stack.forEach(function (expr, i) { + var statementBuilder = new ExpressionBuilderVisitor(); + expr.visit(statementBuilder); + var min = range[i * 2], max = range[i * 2 + 1]; + var out = [statementBuilder.toString()]; + if (min > expr.min) { + out.unshift('Math.max(', min, ', '); + out.push(')'); + } + if (max < expr.max) { + out.unshift('Math.min(', max, ', '); + out.push(')'); + } + out.unshift('dest[destOffset + ', i, '] = '); + out.push(';'); + result.push(out.join('')); + }); + return result.join('\n'); + } + }; + return PostScriptCompiler; +}(); +exports.isPDFFunction = isPDFFunction; +exports.PDFFunction = PDFFunction; +exports.PostScriptEvaluator = PostScriptEvaluator; +exports.PostScriptCompiler = PostScriptCompiler; + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var getLookupTableFactory = sharedUtil.getLookupTableFactory; +var getGlyphsUnicode = getLookupTableFactory(function (t) { + t['A'] = 0x0041; + t['AE'] = 0x00C6; + t['AEacute'] = 0x01FC; + t['AEmacron'] = 0x01E2; + t['AEsmall'] = 0xF7E6; + t['Aacute'] = 0x00C1; + t['Aacutesmall'] = 0xF7E1; + t['Abreve'] = 0x0102; + t['Abreveacute'] = 0x1EAE; + t['Abrevecyrillic'] = 0x04D0; + t['Abrevedotbelow'] = 0x1EB6; + t['Abrevegrave'] = 0x1EB0; + t['Abrevehookabove'] = 0x1EB2; + t['Abrevetilde'] = 0x1EB4; + t['Acaron'] = 0x01CD; + t['Acircle'] = 0x24B6; + t['Acircumflex'] = 0x00C2; + t['Acircumflexacute'] = 0x1EA4; + t['Acircumflexdotbelow'] = 0x1EAC; + t['Acircumflexgrave'] = 0x1EA6; + t['Acircumflexhookabove'] = 0x1EA8; + t['Acircumflexsmall'] = 0xF7E2; + t['Acircumflextilde'] = 0x1EAA; + t['Acute'] = 0xF6C9; + t['Acutesmall'] = 0xF7B4; + t['Acyrillic'] = 0x0410; + t['Adblgrave'] = 0x0200; + t['Adieresis'] = 0x00C4; + t['Adieresiscyrillic'] = 0x04D2; + t['Adieresismacron'] = 0x01DE; + t['Adieresissmall'] = 0xF7E4; + t['Adotbelow'] = 0x1EA0; + t['Adotmacron'] = 0x01E0; + t['Agrave'] = 0x00C0; + t['Agravesmall'] = 0xF7E0; + t['Ahookabove'] = 0x1EA2; + t['Aiecyrillic'] = 0x04D4; + t['Ainvertedbreve'] = 0x0202; + t['Alpha'] = 0x0391; + t['Alphatonos'] = 0x0386; + t['Amacron'] = 0x0100; + t['Amonospace'] = 0xFF21; + t['Aogonek'] = 0x0104; + t['Aring'] = 0x00C5; + t['Aringacute'] = 0x01FA; + t['Aringbelow'] = 0x1E00; + t['Aringsmall'] = 0xF7E5; + t['Asmall'] = 0xF761; + t['Atilde'] = 0x00C3; + t['Atildesmall'] = 0xF7E3; + t['Aybarmenian'] = 0x0531; + t['B'] = 0x0042; + t['Bcircle'] = 0x24B7; + t['Bdotaccent'] = 0x1E02; + t['Bdotbelow'] = 0x1E04; + t['Becyrillic'] = 0x0411; + t['Benarmenian'] = 0x0532; + t['Beta'] = 0x0392; + t['Bhook'] = 0x0181; + t['Blinebelow'] = 0x1E06; + t['Bmonospace'] = 0xFF22; + t['Brevesmall'] = 0xF6F4; + t['Bsmall'] = 0xF762; + t['Btopbar'] = 0x0182; + t['C'] = 0x0043; + t['Caarmenian'] = 0x053E; + t['Cacute'] = 0x0106; + t['Caron'] = 0xF6CA; + t['Caronsmall'] = 0xF6F5; + t['Ccaron'] = 0x010C; + t['Ccedilla'] = 0x00C7; + t['Ccedillaacute'] = 0x1E08; + t['Ccedillasmall'] = 0xF7E7; + t['Ccircle'] = 0x24B8; + t['Ccircumflex'] = 0x0108; + t['Cdot'] = 0x010A; + t['Cdotaccent'] = 0x010A; + t['Cedillasmall'] = 0xF7B8; + t['Chaarmenian'] = 0x0549; + t['Cheabkhasiancyrillic'] = 0x04BC; + t['Checyrillic'] = 0x0427; + t['Chedescenderabkhasiancyrillic'] = 0x04BE; + t['Chedescendercyrillic'] = 0x04B6; + t['Chedieresiscyrillic'] = 0x04F4; + t['Cheharmenian'] = 0x0543; + t['Chekhakassiancyrillic'] = 0x04CB; + t['Cheverticalstrokecyrillic'] = 0x04B8; + t['Chi'] = 0x03A7; + t['Chook'] = 0x0187; + t['Circumflexsmall'] = 0xF6F6; + t['Cmonospace'] = 0xFF23; + t['Coarmenian'] = 0x0551; + t['Csmall'] = 0xF763; + t['D'] = 0x0044; + t['DZ'] = 0x01F1; + t['DZcaron'] = 0x01C4; + t['Daarmenian'] = 0x0534; + t['Dafrican'] = 0x0189; + t['Dcaron'] = 0x010E; + t['Dcedilla'] = 0x1E10; + t['Dcircle'] = 0x24B9; + t['Dcircumflexbelow'] = 0x1E12; + t['Dcroat'] = 0x0110; + t['Ddotaccent'] = 0x1E0A; + t['Ddotbelow'] = 0x1E0C; + t['Decyrillic'] = 0x0414; + t['Deicoptic'] = 0x03EE; + t['Delta'] = 0x2206; + t['Deltagreek'] = 0x0394; + t['Dhook'] = 0x018A; + t['Dieresis'] = 0xF6CB; + t['DieresisAcute'] = 0xF6CC; + t['DieresisGrave'] = 0xF6CD; + t['Dieresissmall'] = 0xF7A8; + t['Digammagreek'] = 0x03DC; + t['Djecyrillic'] = 0x0402; + t['Dlinebelow'] = 0x1E0E; + t['Dmonospace'] = 0xFF24; + t['Dotaccentsmall'] = 0xF6F7; + t['Dslash'] = 0x0110; + t['Dsmall'] = 0xF764; + t['Dtopbar'] = 0x018B; + t['Dz'] = 0x01F2; + t['Dzcaron'] = 0x01C5; + t['Dzeabkhasiancyrillic'] = 0x04E0; + t['Dzecyrillic'] = 0x0405; + t['Dzhecyrillic'] = 0x040F; + t['E'] = 0x0045; + t['Eacute'] = 0x00C9; + t['Eacutesmall'] = 0xF7E9; + t['Ebreve'] = 0x0114; + t['Ecaron'] = 0x011A; + t['Ecedillabreve'] = 0x1E1C; + t['Echarmenian'] = 0x0535; + t['Ecircle'] = 0x24BA; + t['Ecircumflex'] = 0x00CA; + t['Ecircumflexacute'] = 0x1EBE; + t['Ecircumflexbelow'] = 0x1E18; + t['Ecircumflexdotbelow'] = 0x1EC6; + t['Ecircumflexgrave'] = 0x1EC0; + t['Ecircumflexhookabove'] = 0x1EC2; + t['Ecircumflexsmall'] = 0xF7EA; + t['Ecircumflextilde'] = 0x1EC4; + t['Ecyrillic'] = 0x0404; + t['Edblgrave'] = 0x0204; + t['Edieresis'] = 0x00CB; + t['Edieresissmall'] = 0xF7EB; + t['Edot'] = 0x0116; + t['Edotaccent'] = 0x0116; + t['Edotbelow'] = 0x1EB8; + t['Efcyrillic'] = 0x0424; + t['Egrave'] = 0x00C8; + t['Egravesmall'] = 0xF7E8; + t['Eharmenian'] = 0x0537; + t['Ehookabove'] = 0x1EBA; + t['Eightroman'] = 0x2167; + t['Einvertedbreve'] = 0x0206; + t['Eiotifiedcyrillic'] = 0x0464; + t['Elcyrillic'] = 0x041B; + t['Elevenroman'] = 0x216A; + t['Emacron'] = 0x0112; + t['Emacronacute'] = 0x1E16; + t['Emacrongrave'] = 0x1E14; + t['Emcyrillic'] = 0x041C; + t['Emonospace'] = 0xFF25; + t['Encyrillic'] = 0x041D; + t['Endescendercyrillic'] = 0x04A2; + t['Eng'] = 0x014A; + t['Enghecyrillic'] = 0x04A4; + t['Enhookcyrillic'] = 0x04C7; + t['Eogonek'] = 0x0118; + t['Eopen'] = 0x0190; + t['Epsilon'] = 0x0395; + t['Epsilontonos'] = 0x0388; + t['Ercyrillic'] = 0x0420; + t['Ereversed'] = 0x018E; + t['Ereversedcyrillic'] = 0x042D; + t['Escyrillic'] = 0x0421; + t['Esdescendercyrillic'] = 0x04AA; + t['Esh'] = 0x01A9; + t['Esmall'] = 0xF765; + t['Eta'] = 0x0397; + t['Etarmenian'] = 0x0538; + t['Etatonos'] = 0x0389; + t['Eth'] = 0x00D0; + t['Ethsmall'] = 0xF7F0; + t['Etilde'] = 0x1EBC; + t['Etildebelow'] = 0x1E1A; + t['Euro'] = 0x20AC; + t['Ezh'] = 0x01B7; + t['Ezhcaron'] = 0x01EE; + t['Ezhreversed'] = 0x01B8; + t['F'] = 0x0046; + t['Fcircle'] = 0x24BB; + t['Fdotaccent'] = 0x1E1E; + t['Feharmenian'] = 0x0556; + t['Feicoptic'] = 0x03E4; + t['Fhook'] = 0x0191; + t['Fitacyrillic'] = 0x0472; + t['Fiveroman'] = 0x2164; + t['Fmonospace'] = 0xFF26; + t['Fourroman'] = 0x2163; + t['Fsmall'] = 0xF766; + t['G'] = 0x0047; + t['GBsquare'] = 0x3387; + t['Gacute'] = 0x01F4; + t['Gamma'] = 0x0393; + t['Gammaafrican'] = 0x0194; + t['Gangiacoptic'] = 0x03EA; + t['Gbreve'] = 0x011E; + t['Gcaron'] = 0x01E6; + t['Gcedilla'] = 0x0122; + t['Gcircle'] = 0x24BC; + t['Gcircumflex'] = 0x011C; + t['Gcommaaccent'] = 0x0122; + t['Gdot'] = 0x0120; + t['Gdotaccent'] = 0x0120; + t['Gecyrillic'] = 0x0413; + t['Ghadarmenian'] = 0x0542; + t['Ghemiddlehookcyrillic'] = 0x0494; + t['Ghestrokecyrillic'] = 0x0492; + t['Gheupturncyrillic'] = 0x0490; + t['Ghook'] = 0x0193; + t['Gimarmenian'] = 0x0533; + t['Gjecyrillic'] = 0x0403; + t['Gmacron'] = 0x1E20; + t['Gmonospace'] = 0xFF27; + t['Grave'] = 0xF6CE; + t['Gravesmall'] = 0xF760; + t['Gsmall'] = 0xF767; + t['Gsmallhook'] = 0x029B; + t['Gstroke'] = 0x01E4; + t['H'] = 0x0048; + t['H18533'] = 0x25CF; + t['H18543'] = 0x25AA; + t['H18551'] = 0x25AB; + t['H22073'] = 0x25A1; + t['HPsquare'] = 0x33CB; + t['Haabkhasiancyrillic'] = 0x04A8; + t['Hadescendercyrillic'] = 0x04B2; + t['Hardsigncyrillic'] = 0x042A; + t['Hbar'] = 0x0126; + t['Hbrevebelow'] = 0x1E2A; + t['Hcedilla'] = 0x1E28; + t['Hcircle'] = 0x24BD; + t['Hcircumflex'] = 0x0124; + t['Hdieresis'] = 0x1E26; + t['Hdotaccent'] = 0x1E22; + t['Hdotbelow'] = 0x1E24; + t['Hmonospace'] = 0xFF28; + t['Hoarmenian'] = 0x0540; + t['Horicoptic'] = 0x03E8; + t['Hsmall'] = 0xF768; + t['Hungarumlaut'] = 0xF6CF; + t['Hungarumlautsmall'] = 0xF6F8; + t['Hzsquare'] = 0x3390; + t['I'] = 0x0049; + t['IAcyrillic'] = 0x042F; + t['IJ'] = 0x0132; + t['IUcyrillic'] = 0x042E; + t['Iacute'] = 0x00CD; + t['Iacutesmall'] = 0xF7ED; + t['Ibreve'] = 0x012C; + t['Icaron'] = 0x01CF; + t['Icircle'] = 0x24BE; + t['Icircumflex'] = 0x00CE; + t['Icircumflexsmall'] = 0xF7EE; + t['Icyrillic'] = 0x0406; + t['Idblgrave'] = 0x0208; + t['Idieresis'] = 0x00CF; + t['Idieresisacute'] = 0x1E2E; + t['Idieresiscyrillic'] = 0x04E4; + t['Idieresissmall'] = 0xF7EF; + t['Idot'] = 0x0130; + t['Idotaccent'] = 0x0130; + t['Idotbelow'] = 0x1ECA; + t['Iebrevecyrillic'] = 0x04D6; + t['Iecyrillic'] = 0x0415; + t['Ifraktur'] = 0x2111; + t['Igrave'] = 0x00CC; + t['Igravesmall'] = 0xF7EC; + t['Ihookabove'] = 0x1EC8; + t['Iicyrillic'] = 0x0418; + t['Iinvertedbreve'] = 0x020A; + t['Iishortcyrillic'] = 0x0419; + t['Imacron'] = 0x012A; + t['Imacroncyrillic'] = 0x04E2; + t['Imonospace'] = 0xFF29; + t['Iniarmenian'] = 0x053B; + t['Iocyrillic'] = 0x0401; + t['Iogonek'] = 0x012E; + t['Iota'] = 0x0399; + t['Iotaafrican'] = 0x0196; + t['Iotadieresis'] = 0x03AA; + t['Iotatonos'] = 0x038A; + t['Ismall'] = 0xF769; + t['Istroke'] = 0x0197; + t['Itilde'] = 0x0128; + t['Itildebelow'] = 0x1E2C; + t['Izhitsacyrillic'] = 0x0474; + t['Izhitsadblgravecyrillic'] = 0x0476; + t['J'] = 0x004A; + t['Jaarmenian'] = 0x0541; + t['Jcircle'] = 0x24BF; + t['Jcircumflex'] = 0x0134; + t['Jecyrillic'] = 0x0408; + t['Jheharmenian'] = 0x054B; + t['Jmonospace'] = 0xFF2A; + t['Jsmall'] = 0xF76A; + t['K'] = 0x004B; + t['KBsquare'] = 0x3385; + t['KKsquare'] = 0x33CD; + t['Kabashkircyrillic'] = 0x04A0; + t['Kacute'] = 0x1E30; + t['Kacyrillic'] = 0x041A; + t['Kadescendercyrillic'] = 0x049A; + t['Kahookcyrillic'] = 0x04C3; + t['Kappa'] = 0x039A; + t['Kastrokecyrillic'] = 0x049E; + t['Kaverticalstrokecyrillic'] = 0x049C; + t['Kcaron'] = 0x01E8; + t['Kcedilla'] = 0x0136; + t['Kcircle'] = 0x24C0; + t['Kcommaaccent'] = 0x0136; + t['Kdotbelow'] = 0x1E32; + t['Keharmenian'] = 0x0554; + t['Kenarmenian'] = 0x053F; + t['Khacyrillic'] = 0x0425; + t['Kheicoptic'] = 0x03E6; + t['Khook'] = 0x0198; + t['Kjecyrillic'] = 0x040C; + t['Klinebelow'] = 0x1E34; + t['Kmonospace'] = 0xFF2B; + t['Koppacyrillic'] = 0x0480; + t['Koppagreek'] = 0x03DE; + t['Ksicyrillic'] = 0x046E; + t['Ksmall'] = 0xF76B; + t['L'] = 0x004C; + t['LJ'] = 0x01C7; + t['LL'] = 0xF6BF; + t['Lacute'] = 0x0139; + t['Lambda'] = 0x039B; + t['Lcaron'] = 0x013D; + t['Lcedilla'] = 0x013B; + t['Lcircle'] = 0x24C1; + t['Lcircumflexbelow'] = 0x1E3C; + t['Lcommaaccent'] = 0x013B; + t['Ldot'] = 0x013F; + t['Ldotaccent'] = 0x013F; + t['Ldotbelow'] = 0x1E36; + t['Ldotbelowmacron'] = 0x1E38; + t['Liwnarmenian'] = 0x053C; + t['Lj'] = 0x01C8; + t['Ljecyrillic'] = 0x0409; + t['Llinebelow'] = 0x1E3A; + t['Lmonospace'] = 0xFF2C; + t['Lslash'] = 0x0141; + t['Lslashsmall'] = 0xF6F9; + t['Lsmall'] = 0xF76C; + t['M'] = 0x004D; + t['MBsquare'] = 0x3386; + t['Macron'] = 0xF6D0; + t['Macronsmall'] = 0xF7AF; + t['Macute'] = 0x1E3E; + t['Mcircle'] = 0x24C2; + t['Mdotaccent'] = 0x1E40; + t['Mdotbelow'] = 0x1E42; + t['Menarmenian'] = 0x0544; + t['Mmonospace'] = 0xFF2D; + t['Msmall'] = 0xF76D; + t['Mturned'] = 0x019C; + t['Mu'] = 0x039C; + t['N'] = 0x004E; + t['NJ'] = 0x01CA; + t['Nacute'] = 0x0143; + t['Ncaron'] = 0x0147; + t['Ncedilla'] = 0x0145; + t['Ncircle'] = 0x24C3; + t['Ncircumflexbelow'] = 0x1E4A; + t['Ncommaaccent'] = 0x0145; + t['Ndotaccent'] = 0x1E44; + t['Ndotbelow'] = 0x1E46; + t['Nhookleft'] = 0x019D; + t['Nineroman'] = 0x2168; + t['Nj'] = 0x01CB; + t['Njecyrillic'] = 0x040A; + t['Nlinebelow'] = 0x1E48; + t['Nmonospace'] = 0xFF2E; + t['Nowarmenian'] = 0x0546; + t['Nsmall'] = 0xF76E; + t['Ntilde'] = 0x00D1; + t['Ntildesmall'] = 0xF7F1; + t['Nu'] = 0x039D; + t['O'] = 0x004F; + t['OE'] = 0x0152; + t['OEsmall'] = 0xF6FA; + t['Oacute'] = 0x00D3; + t['Oacutesmall'] = 0xF7F3; + t['Obarredcyrillic'] = 0x04E8; + t['Obarreddieresiscyrillic'] = 0x04EA; + t['Obreve'] = 0x014E; + t['Ocaron'] = 0x01D1; + t['Ocenteredtilde'] = 0x019F; + t['Ocircle'] = 0x24C4; + t['Ocircumflex'] = 0x00D4; + t['Ocircumflexacute'] = 0x1ED0; + t['Ocircumflexdotbelow'] = 0x1ED8; + t['Ocircumflexgrave'] = 0x1ED2; + t['Ocircumflexhookabove'] = 0x1ED4; + t['Ocircumflexsmall'] = 0xF7F4; + t['Ocircumflextilde'] = 0x1ED6; + t['Ocyrillic'] = 0x041E; + t['Odblacute'] = 0x0150; + t['Odblgrave'] = 0x020C; + t['Odieresis'] = 0x00D6; + t['Odieresiscyrillic'] = 0x04E6; + t['Odieresissmall'] = 0xF7F6; + t['Odotbelow'] = 0x1ECC; + t['Ogoneksmall'] = 0xF6FB; + t['Ograve'] = 0x00D2; + t['Ogravesmall'] = 0xF7F2; + t['Oharmenian'] = 0x0555; + t['Ohm'] = 0x2126; + t['Ohookabove'] = 0x1ECE; + t['Ohorn'] = 0x01A0; + t['Ohornacute'] = 0x1EDA; + t['Ohorndotbelow'] = 0x1EE2; + t['Ohorngrave'] = 0x1EDC; + t['Ohornhookabove'] = 0x1EDE; + t['Ohorntilde'] = 0x1EE0; + t['Ohungarumlaut'] = 0x0150; + t['Oi'] = 0x01A2; + t['Oinvertedbreve'] = 0x020E; + t['Omacron'] = 0x014C; + t['Omacronacute'] = 0x1E52; + t['Omacrongrave'] = 0x1E50; + t['Omega'] = 0x2126; + t['Omegacyrillic'] = 0x0460; + t['Omegagreek'] = 0x03A9; + t['Omegaroundcyrillic'] = 0x047A; + t['Omegatitlocyrillic'] = 0x047C; + t['Omegatonos'] = 0x038F; + t['Omicron'] = 0x039F; + t['Omicrontonos'] = 0x038C; + t['Omonospace'] = 0xFF2F; + t['Oneroman'] = 0x2160; + t['Oogonek'] = 0x01EA; + t['Oogonekmacron'] = 0x01EC; + t['Oopen'] = 0x0186; + t['Oslash'] = 0x00D8; + t['Oslashacute'] = 0x01FE; + t['Oslashsmall'] = 0xF7F8; + t['Osmall'] = 0xF76F; + t['Ostrokeacute'] = 0x01FE; + t['Otcyrillic'] = 0x047E; + t['Otilde'] = 0x00D5; + t['Otildeacute'] = 0x1E4C; + t['Otildedieresis'] = 0x1E4E; + t['Otildesmall'] = 0xF7F5; + t['P'] = 0x0050; + t['Pacute'] = 0x1E54; + t['Pcircle'] = 0x24C5; + t['Pdotaccent'] = 0x1E56; + t['Pecyrillic'] = 0x041F; + t['Peharmenian'] = 0x054A; + t['Pemiddlehookcyrillic'] = 0x04A6; + t['Phi'] = 0x03A6; + t['Phook'] = 0x01A4; + t['Pi'] = 0x03A0; + t['Piwrarmenian'] = 0x0553; + t['Pmonospace'] = 0xFF30; + t['Psi'] = 0x03A8; + t['Psicyrillic'] = 0x0470; + t['Psmall'] = 0xF770; + t['Q'] = 0x0051; + t['Qcircle'] = 0x24C6; + t['Qmonospace'] = 0xFF31; + t['Qsmall'] = 0xF771; + t['R'] = 0x0052; + t['Raarmenian'] = 0x054C; + t['Racute'] = 0x0154; + t['Rcaron'] = 0x0158; + t['Rcedilla'] = 0x0156; + t['Rcircle'] = 0x24C7; + t['Rcommaaccent'] = 0x0156; + t['Rdblgrave'] = 0x0210; + t['Rdotaccent'] = 0x1E58; + t['Rdotbelow'] = 0x1E5A; + t['Rdotbelowmacron'] = 0x1E5C; + t['Reharmenian'] = 0x0550; + t['Rfraktur'] = 0x211C; + t['Rho'] = 0x03A1; + t['Ringsmall'] = 0xF6FC; + t['Rinvertedbreve'] = 0x0212; + t['Rlinebelow'] = 0x1E5E; + t['Rmonospace'] = 0xFF32; + t['Rsmall'] = 0xF772; + t['Rsmallinverted'] = 0x0281; + t['Rsmallinvertedsuperior'] = 0x02B6; + t['S'] = 0x0053; + t['SF010000'] = 0x250C; + t['SF020000'] = 0x2514; + t['SF030000'] = 0x2510; + t['SF040000'] = 0x2518; + t['SF050000'] = 0x253C; + t['SF060000'] = 0x252C; + t['SF070000'] = 0x2534; + t['SF080000'] = 0x251C; + t['SF090000'] = 0x2524; + t['SF100000'] = 0x2500; + t['SF110000'] = 0x2502; + t['SF190000'] = 0x2561; + t['SF200000'] = 0x2562; + t['SF210000'] = 0x2556; + t['SF220000'] = 0x2555; + t['SF230000'] = 0x2563; + t['SF240000'] = 0x2551; + t['SF250000'] = 0x2557; + t['SF260000'] = 0x255D; + t['SF270000'] = 0x255C; + t['SF280000'] = 0x255B; + t['SF360000'] = 0x255E; + t['SF370000'] = 0x255F; + t['SF380000'] = 0x255A; + t['SF390000'] = 0x2554; + t['SF400000'] = 0x2569; + t['SF410000'] = 0x2566; + t['SF420000'] = 0x2560; + t['SF430000'] = 0x2550; + t['SF440000'] = 0x256C; + t['SF450000'] = 0x2567; + t['SF460000'] = 0x2568; + t['SF470000'] = 0x2564; + t['SF480000'] = 0x2565; + t['SF490000'] = 0x2559; + t['SF500000'] = 0x2558; + t['SF510000'] = 0x2552; + t['SF520000'] = 0x2553; + t['SF530000'] = 0x256B; + t['SF540000'] = 0x256A; + t['Sacute'] = 0x015A; + t['Sacutedotaccent'] = 0x1E64; + t['Sampigreek'] = 0x03E0; + t['Scaron'] = 0x0160; + t['Scarondotaccent'] = 0x1E66; + t['Scaronsmall'] = 0xF6FD; + t['Scedilla'] = 0x015E; + t['Schwa'] = 0x018F; + t['Schwacyrillic'] = 0x04D8; + t['Schwadieresiscyrillic'] = 0x04DA; + t['Scircle'] = 0x24C8; + t['Scircumflex'] = 0x015C; + t['Scommaaccent'] = 0x0218; + t['Sdotaccent'] = 0x1E60; + t['Sdotbelow'] = 0x1E62; + t['Sdotbelowdotaccent'] = 0x1E68; + t['Seharmenian'] = 0x054D; + t['Sevenroman'] = 0x2166; + t['Shaarmenian'] = 0x0547; + t['Shacyrillic'] = 0x0428; + t['Shchacyrillic'] = 0x0429; + t['Sheicoptic'] = 0x03E2; + t['Shhacyrillic'] = 0x04BA; + t['Shimacoptic'] = 0x03EC; + t['Sigma'] = 0x03A3; + t['Sixroman'] = 0x2165; + t['Smonospace'] = 0xFF33; + t['Softsigncyrillic'] = 0x042C; + t['Ssmall'] = 0xF773; + t['Stigmagreek'] = 0x03DA; + t['T'] = 0x0054; + t['Tau'] = 0x03A4; + t['Tbar'] = 0x0166; + t['Tcaron'] = 0x0164; + t['Tcedilla'] = 0x0162; + t['Tcircle'] = 0x24C9; + t['Tcircumflexbelow'] = 0x1E70; + t['Tcommaaccent'] = 0x0162; + t['Tdotaccent'] = 0x1E6A; + t['Tdotbelow'] = 0x1E6C; + t['Tecyrillic'] = 0x0422; + t['Tedescendercyrillic'] = 0x04AC; + t['Tenroman'] = 0x2169; + t['Tetsecyrillic'] = 0x04B4; + t['Theta'] = 0x0398; + t['Thook'] = 0x01AC; + t['Thorn'] = 0x00DE; + t['Thornsmall'] = 0xF7FE; + t['Threeroman'] = 0x2162; + t['Tildesmall'] = 0xF6FE; + t['Tiwnarmenian'] = 0x054F; + t['Tlinebelow'] = 0x1E6E; + t['Tmonospace'] = 0xFF34; + t['Toarmenian'] = 0x0539; + t['Tonefive'] = 0x01BC; + t['Tonesix'] = 0x0184; + t['Tonetwo'] = 0x01A7; + t['Tretroflexhook'] = 0x01AE; + t['Tsecyrillic'] = 0x0426; + t['Tshecyrillic'] = 0x040B; + t['Tsmall'] = 0xF774; + t['Twelveroman'] = 0x216B; + t['Tworoman'] = 0x2161; + t['U'] = 0x0055; + t['Uacute'] = 0x00DA; + t['Uacutesmall'] = 0xF7FA; + t['Ubreve'] = 0x016C; + t['Ucaron'] = 0x01D3; + t['Ucircle'] = 0x24CA; + t['Ucircumflex'] = 0x00DB; + t['Ucircumflexbelow'] = 0x1E76; + t['Ucircumflexsmall'] = 0xF7FB; + t['Ucyrillic'] = 0x0423; + t['Udblacute'] = 0x0170; + t['Udblgrave'] = 0x0214; + t['Udieresis'] = 0x00DC; + t['Udieresisacute'] = 0x01D7; + t['Udieresisbelow'] = 0x1E72; + t['Udieresiscaron'] = 0x01D9; + t['Udieresiscyrillic'] = 0x04F0; + t['Udieresisgrave'] = 0x01DB; + t['Udieresismacron'] = 0x01D5; + t['Udieresissmall'] = 0xF7FC; + t['Udotbelow'] = 0x1EE4; + t['Ugrave'] = 0x00D9; + t['Ugravesmall'] = 0xF7F9; + t['Uhookabove'] = 0x1EE6; + t['Uhorn'] = 0x01AF; + t['Uhornacute'] = 0x1EE8; + t['Uhorndotbelow'] = 0x1EF0; + t['Uhorngrave'] = 0x1EEA; + t['Uhornhookabove'] = 0x1EEC; + t['Uhorntilde'] = 0x1EEE; + t['Uhungarumlaut'] = 0x0170; + t['Uhungarumlautcyrillic'] = 0x04F2; + t['Uinvertedbreve'] = 0x0216; + t['Ukcyrillic'] = 0x0478; + t['Umacron'] = 0x016A; + t['Umacroncyrillic'] = 0x04EE; + t['Umacrondieresis'] = 0x1E7A; + t['Umonospace'] = 0xFF35; + t['Uogonek'] = 0x0172; + t['Upsilon'] = 0x03A5; + t['Upsilon1'] = 0x03D2; + t['Upsilonacutehooksymbolgreek'] = 0x03D3; + t['Upsilonafrican'] = 0x01B1; + t['Upsilondieresis'] = 0x03AB; + t['Upsilondieresishooksymbolgreek'] = 0x03D4; + t['Upsilonhooksymbol'] = 0x03D2; + t['Upsilontonos'] = 0x038E; + t['Uring'] = 0x016E; + t['Ushortcyrillic'] = 0x040E; + t['Usmall'] = 0xF775; + t['Ustraightcyrillic'] = 0x04AE; + t['Ustraightstrokecyrillic'] = 0x04B0; + t['Utilde'] = 0x0168; + t['Utildeacute'] = 0x1E78; + t['Utildebelow'] = 0x1E74; + t['V'] = 0x0056; + t['Vcircle'] = 0x24CB; + t['Vdotbelow'] = 0x1E7E; + t['Vecyrillic'] = 0x0412; + t['Vewarmenian'] = 0x054E; + t['Vhook'] = 0x01B2; + t['Vmonospace'] = 0xFF36; + t['Voarmenian'] = 0x0548; + t['Vsmall'] = 0xF776; + t['Vtilde'] = 0x1E7C; + t['W'] = 0x0057; + t['Wacute'] = 0x1E82; + t['Wcircle'] = 0x24CC; + t['Wcircumflex'] = 0x0174; + t['Wdieresis'] = 0x1E84; + t['Wdotaccent'] = 0x1E86; + t['Wdotbelow'] = 0x1E88; + t['Wgrave'] = 0x1E80; + t['Wmonospace'] = 0xFF37; + t['Wsmall'] = 0xF777; + t['X'] = 0x0058; + t['Xcircle'] = 0x24CD; + t['Xdieresis'] = 0x1E8C; + t['Xdotaccent'] = 0x1E8A; + t['Xeharmenian'] = 0x053D; + t['Xi'] = 0x039E; + t['Xmonospace'] = 0xFF38; + t['Xsmall'] = 0xF778; + t['Y'] = 0x0059; + t['Yacute'] = 0x00DD; + t['Yacutesmall'] = 0xF7FD; + t['Yatcyrillic'] = 0x0462; + t['Ycircle'] = 0x24CE; + t['Ycircumflex'] = 0x0176; + t['Ydieresis'] = 0x0178; + t['Ydieresissmall'] = 0xF7FF; + t['Ydotaccent'] = 0x1E8E; + t['Ydotbelow'] = 0x1EF4; + t['Yericyrillic'] = 0x042B; + t['Yerudieresiscyrillic'] = 0x04F8; + t['Ygrave'] = 0x1EF2; + t['Yhook'] = 0x01B3; + t['Yhookabove'] = 0x1EF6; + t['Yiarmenian'] = 0x0545; + t['Yicyrillic'] = 0x0407; + t['Yiwnarmenian'] = 0x0552; + t['Ymonospace'] = 0xFF39; + t['Ysmall'] = 0xF779; + t['Ytilde'] = 0x1EF8; + t['Yusbigcyrillic'] = 0x046A; + t['Yusbigiotifiedcyrillic'] = 0x046C; + t['Yuslittlecyrillic'] = 0x0466; + t['Yuslittleiotifiedcyrillic'] = 0x0468; + t['Z'] = 0x005A; + t['Zaarmenian'] = 0x0536; + t['Zacute'] = 0x0179; + t['Zcaron'] = 0x017D; + t['Zcaronsmall'] = 0xF6FF; + t['Zcircle'] = 0x24CF; + t['Zcircumflex'] = 0x1E90; + t['Zdot'] = 0x017B; + t['Zdotaccent'] = 0x017B; + t['Zdotbelow'] = 0x1E92; + t['Zecyrillic'] = 0x0417; + t['Zedescendercyrillic'] = 0x0498; + t['Zedieresiscyrillic'] = 0x04DE; + t['Zeta'] = 0x0396; + t['Zhearmenian'] = 0x053A; + t['Zhebrevecyrillic'] = 0x04C1; + t['Zhecyrillic'] = 0x0416; + t['Zhedescendercyrillic'] = 0x0496; + t['Zhedieresiscyrillic'] = 0x04DC; + t['Zlinebelow'] = 0x1E94; + t['Zmonospace'] = 0xFF3A; + t['Zsmall'] = 0xF77A; + t['Zstroke'] = 0x01B5; + t['a'] = 0x0061; + t['aabengali'] = 0x0986; + t['aacute'] = 0x00E1; + t['aadeva'] = 0x0906; + t['aagujarati'] = 0x0A86; + t['aagurmukhi'] = 0x0A06; + t['aamatragurmukhi'] = 0x0A3E; + t['aarusquare'] = 0x3303; + t['aavowelsignbengali'] = 0x09BE; + t['aavowelsigndeva'] = 0x093E; + t['aavowelsigngujarati'] = 0x0ABE; + t['abbreviationmarkarmenian'] = 0x055F; + t['abbreviationsigndeva'] = 0x0970; + t['abengali'] = 0x0985; + t['abopomofo'] = 0x311A; + t['abreve'] = 0x0103; + t['abreveacute'] = 0x1EAF; + t['abrevecyrillic'] = 0x04D1; + t['abrevedotbelow'] = 0x1EB7; + t['abrevegrave'] = 0x1EB1; + t['abrevehookabove'] = 0x1EB3; + t['abrevetilde'] = 0x1EB5; + t['acaron'] = 0x01CE; + t['acircle'] = 0x24D0; + t['acircumflex'] = 0x00E2; + t['acircumflexacute'] = 0x1EA5; + t['acircumflexdotbelow'] = 0x1EAD; + t['acircumflexgrave'] = 0x1EA7; + t['acircumflexhookabove'] = 0x1EA9; + t['acircumflextilde'] = 0x1EAB; + t['acute'] = 0x00B4; + t['acutebelowcmb'] = 0x0317; + t['acutecmb'] = 0x0301; + t['acutecomb'] = 0x0301; + t['acutedeva'] = 0x0954; + t['acutelowmod'] = 0x02CF; + t['acutetonecmb'] = 0x0341; + t['acyrillic'] = 0x0430; + t['adblgrave'] = 0x0201; + t['addakgurmukhi'] = 0x0A71; + t['adeva'] = 0x0905; + t['adieresis'] = 0x00E4; + t['adieresiscyrillic'] = 0x04D3; + t['adieresismacron'] = 0x01DF; + t['adotbelow'] = 0x1EA1; + t['adotmacron'] = 0x01E1; + t['ae'] = 0x00E6; + t['aeacute'] = 0x01FD; + t['aekorean'] = 0x3150; + t['aemacron'] = 0x01E3; + t['afii00208'] = 0x2015; + t['afii08941'] = 0x20A4; + t['afii10017'] = 0x0410; + t['afii10018'] = 0x0411; + t['afii10019'] = 0x0412; + t['afii10020'] = 0x0413; + t['afii10021'] = 0x0414; + t['afii10022'] = 0x0415; + t['afii10023'] = 0x0401; + t['afii10024'] = 0x0416; + t['afii10025'] = 0x0417; + t['afii10026'] = 0x0418; + t['afii10027'] = 0x0419; + t['afii10028'] = 0x041A; + t['afii10029'] = 0x041B; + t['afii10030'] = 0x041C; + t['afii10031'] = 0x041D; + t['afii10032'] = 0x041E; + t['afii10033'] = 0x041F; + t['afii10034'] = 0x0420; + t['afii10035'] = 0x0421; + t['afii10036'] = 0x0422; + t['afii10037'] = 0x0423; + t['afii10038'] = 0x0424; + t['afii10039'] = 0x0425; + t['afii10040'] = 0x0426; + t['afii10041'] = 0x0427; + t['afii10042'] = 0x0428; + t['afii10043'] = 0x0429; + t['afii10044'] = 0x042A; + t['afii10045'] = 0x042B; + t['afii10046'] = 0x042C; + t['afii10047'] = 0x042D; + t['afii10048'] = 0x042E; + t['afii10049'] = 0x042F; + t['afii10050'] = 0x0490; + t['afii10051'] = 0x0402; + t['afii10052'] = 0x0403; + t['afii10053'] = 0x0404; + t['afii10054'] = 0x0405; + t['afii10055'] = 0x0406; + t['afii10056'] = 0x0407; + t['afii10057'] = 0x0408; + t['afii10058'] = 0x0409; + t['afii10059'] = 0x040A; + t['afii10060'] = 0x040B; + t['afii10061'] = 0x040C; + t['afii10062'] = 0x040E; + t['afii10063'] = 0xF6C4; + t['afii10064'] = 0xF6C5; + t['afii10065'] = 0x0430; + t['afii10066'] = 0x0431; + t['afii10067'] = 0x0432; + t['afii10068'] = 0x0433; + t['afii10069'] = 0x0434; + t['afii10070'] = 0x0435; + t['afii10071'] = 0x0451; + t['afii10072'] = 0x0436; + t['afii10073'] = 0x0437; + t['afii10074'] = 0x0438; + t['afii10075'] = 0x0439; + t['afii10076'] = 0x043A; + t['afii10077'] = 0x043B; + t['afii10078'] = 0x043C; + t['afii10079'] = 0x043D; + t['afii10080'] = 0x043E; + t['afii10081'] = 0x043F; + t['afii10082'] = 0x0440; + t['afii10083'] = 0x0441; + t['afii10084'] = 0x0442; + t['afii10085'] = 0x0443; + t['afii10086'] = 0x0444; + t['afii10087'] = 0x0445; + t['afii10088'] = 0x0446; + t['afii10089'] = 0x0447; + t['afii10090'] = 0x0448; + t['afii10091'] = 0x0449; + t['afii10092'] = 0x044A; + t['afii10093'] = 0x044B; + t['afii10094'] = 0x044C; + t['afii10095'] = 0x044D; + t['afii10096'] = 0x044E; + t['afii10097'] = 0x044F; + t['afii10098'] = 0x0491; + t['afii10099'] = 0x0452; + t['afii10100'] = 0x0453; + t['afii10101'] = 0x0454; + t['afii10102'] = 0x0455; + t['afii10103'] = 0x0456; + t['afii10104'] = 0x0457; + t['afii10105'] = 0x0458; + t['afii10106'] = 0x0459; + t['afii10107'] = 0x045A; + t['afii10108'] = 0x045B; + t['afii10109'] = 0x045C; + t['afii10110'] = 0x045E; + t['afii10145'] = 0x040F; + t['afii10146'] = 0x0462; + t['afii10147'] = 0x0472; + t['afii10148'] = 0x0474; + t['afii10192'] = 0xF6C6; + t['afii10193'] = 0x045F; + t['afii10194'] = 0x0463; + t['afii10195'] = 0x0473; + t['afii10196'] = 0x0475; + t['afii10831'] = 0xF6C7; + t['afii10832'] = 0xF6C8; + t['afii10846'] = 0x04D9; + t['afii299'] = 0x200E; + t['afii300'] = 0x200F; + t['afii301'] = 0x200D; + t['afii57381'] = 0x066A; + t['afii57388'] = 0x060C; + t['afii57392'] = 0x0660; + t['afii57393'] = 0x0661; + t['afii57394'] = 0x0662; + t['afii57395'] = 0x0663; + t['afii57396'] = 0x0664; + t['afii57397'] = 0x0665; + t['afii57398'] = 0x0666; + t['afii57399'] = 0x0667; + t['afii57400'] = 0x0668; + t['afii57401'] = 0x0669; + t['afii57403'] = 0x061B; + t['afii57407'] = 0x061F; + t['afii57409'] = 0x0621; + t['afii57410'] = 0x0622; + t['afii57411'] = 0x0623; + t['afii57412'] = 0x0624; + t['afii57413'] = 0x0625; + t['afii57414'] = 0x0626; + t['afii57415'] = 0x0627; + t['afii57416'] = 0x0628; + t['afii57417'] = 0x0629; + t['afii57418'] = 0x062A; + t['afii57419'] = 0x062B; + t['afii57420'] = 0x062C; + t['afii57421'] = 0x062D; + t['afii57422'] = 0x062E; + t['afii57423'] = 0x062F; + t['afii57424'] = 0x0630; + t['afii57425'] = 0x0631; + t['afii57426'] = 0x0632; + t['afii57427'] = 0x0633; + t['afii57428'] = 0x0634; + t['afii57429'] = 0x0635; + t['afii57430'] = 0x0636; + t['afii57431'] = 0x0637; + t['afii57432'] = 0x0638; + t['afii57433'] = 0x0639; + t['afii57434'] = 0x063A; + t['afii57440'] = 0x0640; + t['afii57441'] = 0x0641; + t['afii57442'] = 0x0642; + t['afii57443'] = 0x0643; + t['afii57444'] = 0x0644; + t['afii57445'] = 0x0645; + t['afii57446'] = 0x0646; + t['afii57448'] = 0x0648; + t['afii57449'] = 0x0649; + t['afii57450'] = 0x064A; + t['afii57451'] = 0x064B; + t['afii57452'] = 0x064C; + t['afii57453'] = 0x064D; + t['afii57454'] = 0x064E; + t['afii57455'] = 0x064F; + t['afii57456'] = 0x0650; + t['afii57457'] = 0x0651; + t['afii57458'] = 0x0652; + t['afii57470'] = 0x0647; + t['afii57505'] = 0x06A4; + t['afii57506'] = 0x067E; + t['afii57507'] = 0x0686; + t['afii57508'] = 0x0698; + t['afii57509'] = 0x06AF; + t['afii57511'] = 0x0679; + t['afii57512'] = 0x0688; + t['afii57513'] = 0x0691; + t['afii57514'] = 0x06BA; + t['afii57519'] = 0x06D2; + t['afii57534'] = 0x06D5; + t['afii57636'] = 0x20AA; + t['afii57645'] = 0x05BE; + t['afii57658'] = 0x05C3; + t['afii57664'] = 0x05D0; + t['afii57665'] = 0x05D1; + t['afii57666'] = 0x05D2; + t['afii57667'] = 0x05D3; + t['afii57668'] = 0x05D4; + t['afii57669'] = 0x05D5; + t['afii57670'] = 0x05D6; + t['afii57671'] = 0x05D7; + t['afii57672'] = 0x05D8; + t['afii57673'] = 0x05D9; + t['afii57674'] = 0x05DA; + t['afii57675'] = 0x05DB; + t['afii57676'] = 0x05DC; + t['afii57677'] = 0x05DD; + t['afii57678'] = 0x05DE; + t['afii57679'] = 0x05DF; + t['afii57680'] = 0x05E0; + t['afii57681'] = 0x05E1; + t['afii57682'] = 0x05E2; + t['afii57683'] = 0x05E3; + t['afii57684'] = 0x05E4; + t['afii57685'] = 0x05E5; + t['afii57686'] = 0x05E6; + t['afii57687'] = 0x05E7; + t['afii57688'] = 0x05E8; + t['afii57689'] = 0x05E9; + t['afii57690'] = 0x05EA; + t['afii57694'] = 0xFB2A; + t['afii57695'] = 0xFB2B; + t['afii57700'] = 0xFB4B; + t['afii57705'] = 0xFB1F; + t['afii57716'] = 0x05F0; + t['afii57717'] = 0x05F1; + t['afii57718'] = 0x05F2; + t['afii57723'] = 0xFB35; + t['afii57793'] = 0x05B4; + t['afii57794'] = 0x05B5; + t['afii57795'] = 0x05B6; + t['afii57796'] = 0x05BB; + t['afii57797'] = 0x05B8; + t['afii57798'] = 0x05B7; + t['afii57799'] = 0x05B0; + t['afii57800'] = 0x05B2; + t['afii57801'] = 0x05B1; + t['afii57802'] = 0x05B3; + t['afii57803'] = 0x05C2; + t['afii57804'] = 0x05C1; + t['afii57806'] = 0x05B9; + t['afii57807'] = 0x05BC; + t['afii57839'] = 0x05BD; + t['afii57841'] = 0x05BF; + t['afii57842'] = 0x05C0; + t['afii57929'] = 0x02BC; + t['afii61248'] = 0x2105; + t['afii61289'] = 0x2113; + t['afii61352'] = 0x2116; + t['afii61573'] = 0x202C; + t['afii61574'] = 0x202D; + t['afii61575'] = 0x202E; + t['afii61664'] = 0x200C; + t['afii63167'] = 0x066D; + t['afii64937'] = 0x02BD; + t['agrave'] = 0x00E0; + t['agujarati'] = 0x0A85; + t['agurmukhi'] = 0x0A05; + t['ahiragana'] = 0x3042; + t['ahookabove'] = 0x1EA3; + t['aibengali'] = 0x0990; + t['aibopomofo'] = 0x311E; + t['aideva'] = 0x0910; + t['aiecyrillic'] = 0x04D5; + t['aigujarati'] = 0x0A90; + t['aigurmukhi'] = 0x0A10; + t['aimatragurmukhi'] = 0x0A48; + t['ainarabic'] = 0x0639; + t['ainfinalarabic'] = 0xFECA; + t['aininitialarabic'] = 0xFECB; + t['ainmedialarabic'] = 0xFECC; + t['ainvertedbreve'] = 0x0203; + t['aivowelsignbengali'] = 0x09C8; + t['aivowelsigndeva'] = 0x0948; + t['aivowelsigngujarati'] = 0x0AC8; + t['akatakana'] = 0x30A2; + t['akatakanahalfwidth'] = 0xFF71; + t['akorean'] = 0x314F; + t['alef'] = 0x05D0; + t['alefarabic'] = 0x0627; + t['alefdageshhebrew'] = 0xFB30; + t['aleffinalarabic'] = 0xFE8E; + t['alefhamzaabovearabic'] = 0x0623; + t['alefhamzaabovefinalarabic'] = 0xFE84; + t['alefhamzabelowarabic'] = 0x0625; + t['alefhamzabelowfinalarabic'] = 0xFE88; + t['alefhebrew'] = 0x05D0; + t['aleflamedhebrew'] = 0xFB4F; + t['alefmaddaabovearabic'] = 0x0622; + t['alefmaddaabovefinalarabic'] = 0xFE82; + t['alefmaksuraarabic'] = 0x0649; + t['alefmaksurafinalarabic'] = 0xFEF0; + t['alefmaksurainitialarabic'] = 0xFEF3; + t['alefmaksuramedialarabic'] = 0xFEF4; + t['alefpatahhebrew'] = 0xFB2E; + t['alefqamatshebrew'] = 0xFB2F; + t['aleph'] = 0x2135; + t['allequal'] = 0x224C; + t['alpha'] = 0x03B1; + t['alphatonos'] = 0x03AC; + t['amacron'] = 0x0101; + t['amonospace'] = 0xFF41; + t['ampersand'] = 0x0026; + t['ampersandmonospace'] = 0xFF06; + t['ampersandsmall'] = 0xF726; + t['amsquare'] = 0x33C2; + t['anbopomofo'] = 0x3122; + t['angbopomofo'] = 0x3124; + t['angbracketleft'] = 0x3008; + t['angbracketright'] = 0x3009; + t['angkhankhuthai'] = 0x0E5A; + t['angle'] = 0x2220; + t['anglebracketleft'] = 0x3008; + t['anglebracketleftvertical'] = 0xFE3F; + t['anglebracketright'] = 0x3009; + t['anglebracketrightvertical'] = 0xFE40; + t['angleleft'] = 0x2329; + t['angleright'] = 0x232A; + t['angstrom'] = 0x212B; + t['anoteleia'] = 0x0387; + t['anudattadeva'] = 0x0952; + t['anusvarabengali'] = 0x0982; + t['anusvaradeva'] = 0x0902; + t['anusvaragujarati'] = 0x0A82; + t['aogonek'] = 0x0105; + t['apaatosquare'] = 0x3300; + t['aparen'] = 0x249C; + t['apostrophearmenian'] = 0x055A; + t['apostrophemod'] = 0x02BC; + t['apple'] = 0xF8FF; + t['approaches'] = 0x2250; + t['approxequal'] = 0x2248; + t['approxequalorimage'] = 0x2252; + t['approximatelyequal'] = 0x2245; + t['araeaekorean'] = 0x318E; + t['araeakorean'] = 0x318D; + t['arc'] = 0x2312; + t['arighthalfring'] = 0x1E9A; + t['aring'] = 0x00E5; + t['aringacute'] = 0x01FB; + t['aringbelow'] = 0x1E01; + t['arrowboth'] = 0x2194; + t['arrowdashdown'] = 0x21E3; + t['arrowdashleft'] = 0x21E0; + t['arrowdashright'] = 0x21E2; + t['arrowdashup'] = 0x21E1; + t['arrowdblboth'] = 0x21D4; + t['arrowdbldown'] = 0x21D3; + t['arrowdblleft'] = 0x21D0; + t['arrowdblright'] = 0x21D2; + t['arrowdblup'] = 0x21D1; + t['arrowdown'] = 0x2193; + t['arrowdownleft'] = 0x2199; + t['arrowdownright'] = 0x2198; + t['arrowdownwhite'] = 0x21E9; + t['arrowheaddownmod'] = 0x02C5; + t['arrowheadleftmod'] = 0x02C2; + t['arrowheadrightmod'] = 0x02C3; + t['arrowheadupmod'] = 0x02C4; + t['arrowhorizex'] = 0xF8E7; + t['arrowleft'] = 0x2190; + t['arrowleftdbl'] = 0x21D0; + t['arrowleftdblstroke'] = 0x21CD; + t['arrowleftoverright'] = 0x21C6; + t['arrowleftwhite'] = 0x21E6; + t['arrowright'] = 0x2192; + t['arrowrightdblstroke'] = 0x21CF; + t['arrowrightheavy'] = 0x279E; + t['arrowrightoverleft'] = 0x21C4; + t['arrowrightwhite'] = 0x21E8; + t['arrowtableft'] = 0x21E4; + t['arrowtabright'] = 0x21E5; + t['arrowup'] = 0x2191; + t['arrowupdn'] = 0x2195; + t['arrowupdnbse'] = 0x21A8; + t['arrowupdownbase'] = 0x21A8; + t['arrowupleft'] = 0x2196; + t['arrowupleftofdown'] = 0x21C5; + t['arrowupright'] = 0x2197; + t['arrowupwhite'] = 0x21E7; + t['arrowvertex'] = 0xF8E6; + t['asciicircum'] = 0x005E; + t['asciicircummonospace'] = 0xFF3E; + t['asciitilde'] = 0x007E; + t['asciitildemonospace'] = 0xFF5E; + t['ascript'] = 0x0251; + t['ascriptturned'] = 0x0252; + t['asmallhiragana'] = 0x3041; + t['asmallkatakana'] = 0x30A1; + t['asmallkatakanahalfwidth'] = 0xFF67; + t['asterisk'] = 0x002A; + t['asteriskaltonearabic'] = 0x066D; + t['asteriskarabic'] = 0x066D; + t['asteriskmath'] = 0x2217; + t['asteriskmonospace'] = 0xFF0A; + t['asterisksmall'] = 0xFE61; + t['asterism'] = 0x2042; + t['asuperior'] = 0xF6E9; + t['asymptoticallyequal'] = 0x2243; + t['at'] = 0x0040; + t['atilde'] = 0x00E3; + t['atmonospace'] = 0xFF20; + t['atsmall'] = 0xFE6B; + t['aturned'] = 0x0250; + t['aubengali'] = 0x0994; + t['aubopomofo'] = 0x3120; + t['audeva'] = 0x0914; + t['augujarati'] = 0x0A94; + t['augurmukhi'] = 0x0A14; + t['aulengthmarkbengali'] = 0x09D7; + t['aumatragurmukhi'] = 0x0A4C; + t['auvowelsignbengali'] = 0x09CC; + t['auvowelsigndeva'] = 0x094C; + t['auvowelsigngujarati'] = 0x0ACC; + t['avagrahadeva'] = 0x093D; + t['aybarmenian'] = 0x0561; + t['ayin'] = 0x05E2; + t['ayinaltonehebrew'] = 0xFB20; + t['ayinhebrew'] = 0x05E2; + t['b'] = 0x0062; + t['babengali'] = 0x09AC; + t['backslash'] = 0x005C; + t['backslashmonospace'] = 0xFF3C; + t['badeva'] = 0x092C; + t['bagujarati'] = 0x0AAC; + t['bagurmukhi'] = 0x0A2C; + t['bahiragana'] = 0x3070; + t['bahtthai'] = 0x0E3F; + t['bakatakana'] = 0x30D0; + t['bar'] = 0x007C; + t['barmonospace'] = 0xFF5C; + t['bbopomofo'] = 0x3105; + t['bcircle'] = 0x24D1; + t['bdotaccent'] = 0x1E03; + t['bdotbelow'] = 0x1E05; + t['beamedsixteenthnotes'] = 0x266C; + t['because'] = 0x2235; + t['becyrillic'] = 0x0431; + t['beharabic'] = 0x0628; + t['behfinalarabic'] = 0xFE90; + t['behinitialarabic'] = 0xFE91; + t['behiragana'] = 0x3079; + t['behmedialarabic'] = 0xFE92; + t['behmeeminitialarabic'] = 0xFC9F; + t['behmeemisolatedarabic'] = 0xFC08; + t['behnoonfinalarabic'] = 0xFC6D; + t['bekatakana'] = 0x30D9; + t['benarmenian'] = 0x0562; + t['bet'] = 0x05D1; + t['beta'] = 0x03B2; + t['betasymbolgreek'] = 0x03D0; + t['betdagesh'] = 0xFB31; + t['betdageshhebrew'] = 0xFB31; + t['bethebrew'] = 0x05D1; + t['betrafehebrew'] = 0xFB4C; + t['bhabengali'] = 0x09AD; + t['bhadeva'] = 0x092D; + t['bhagujarati'] = 0x0AAD; + t['bhagurmukhi'] = 0x0A2D; + t['bhook'] = 0x0253; + t['bihiragana'] = 0x3073; + t['bikatakana'] = 0x30D3; + t['bilabialclick'] = 0x0298; + t['bindigurmukhi'] = 0x0A02; + t['birusquare'] = 0x3331; + t['blackcircle'] = 0x25CF; + t['blackdiamond'] = 0x25C6; + t['blackdownpointingtriangle'] = 0x25BC; + t['blackleftpointingpointer'] = 0x25C4; + t['blackleftpointingtriangle'] = 0x25C0; + t['blacklenticularbracketleft'] = 0x3010; + t['blacklenticularbracketleftvertical'] = 0xFE3B; + t['blacklenticularbracketright'] = 0x3011; + t['blacklenticularbracketrightvertical'] = 0xFE3C; + t['blacklowerlefttriangle'] = 0x25E3; + t['blacklowerrighttriangle'] = 0x25E2; + t['blackrectangle'] = 0x25AC; + t['blackrightpointingpointer'] = 0x25BA; + t['blackrightpointingtriangle'] = 0x25B6; + t['blacksmallsquare'] = 0x25AA; + t['blacksmilingface'] = 0x263B; + t['blacksquare'] = 0x25A0; + t['blackstar'] = 0x2605; + t['blackupperlefttriangle'] = 0x25E4; + t['blackupperrighttriangle'] = 0x25E5; + t['blackuppointingsmalltriangle'] = 0x25B4; + t['blackuppointingtriangle'] = 0x25B2; + t['blank'] = 0x2423; + t['blinebelow'] = 0x1E07; + t['block'] = 0x2588; + t['bmonospace'] = 0xFF42; + t['bobaimaithai'] = 0x0E1A; + t['bohiragana'] = 0x307C; + t['bokatakana'] = 0x30DC; + t['bparen'] = 0x249D; + t['bqsquare'] = 0x33C3; + t['braceex'] = 0xF8F4; + t['braceleft'] = 0x007B; + t['braceleftbt'] = 0xF8F3; + t['braceleftmid'] = 0xF8F2; + t['braceleftmonospace'] = 0xFF5B; + t['braceleftsmall'] = 0xFE5B; + t['bracelefttp'] = 0xF8F1; + t['braceleftvertical'] = 0xFE37; + t['braceright'] = 0x007D; + t['bracerightbt'] = 0xF8FE; + t['bracerightmid'] = 0xF8FD; + t['bracerightmonospace'] = 0xFF5D; + t['bracerightsmall'] = 0xFE5C; + t['bracerighttp'] = 0xF8FC; + t['bracerightvertical'] = 0xFE38; + t['bracketleft'] = 0x005B; + t['bracketleftbt'] = 0xF8F0; + t['bracketleftex'] = 0xF8EF; + t['bracketleftmonospace'] = 0xFF3B; + t['bracketlefttp'] = 0xF8EE; + t['bracketright'] = 0x005D; + t['bracketrightbt'] = 0xF8FB; + t['bracketrightex'] = 0xF8FA; + t['bracketrightmonospace'] = 0xFF3D; + t['bracketrighttp'] = 0xF8F9; + t['breve'] = 0x02D8; + t['brevebelowcmb'] = 0x032E; + t['brevecmb'] = 0x0306; + t['breveinvertedbelowcmb'] = 0x032F; + t['breveinvertedcmb'] = 0x0311; + t['breveinverteddoublecmb'] = 0x0361; + t['bridgebelowcmb'] = 0x032A; + t['bridgeinvertedbelowcmb'] = 0x033A; + t['brokenbar'] = 0x00A6; + t['bstroke'] = 0x0180; + t['bsuperior'] = 0xF6EA; + t['btopbar'] = 0x0183; + t['buhiragana'] = 0x3076; + t['bukatakana'] = 0x30D6; + t['bullet'] = 0x2022; + t['bulletinverse'] = 0x25D8; + t['bulletoperator'] = 0x2219; + t['bullseye'] = 0x25CE; + t['c'] = 0x0063; + t['caarmenian'] = 0x056E; + t['cabengali'] = 0x099A; + t['cacute'] = 0x0107; + t['cadeva'] = 0x091A; + t['cagujarati'] = 0x0A9A; + t['cagurmukhi'] = 0x0A1A; + t['calsquare'] = 0x3388; + t['candrabindubengali'] = 0x0981; + t['candrabinducmb'] = 0x0310; + t['candrabindudeva'] = 0x0901; + t['candrabindugujarati'] = 0x0A81; + t['capslock'] = 0x21EA; + t['careof'] = 0x2105; + t['caron'] = 0x02C7; + t['caronbelowcmb'] = 0x032C; + t['caroncmb'] = 0x030C; + t['carriagereturn'] = 0x21B5; + t['cbopomofo'] = 0x3118; + t['ccaron'] = 0x010D; + t['ccedilla'] = 0x00E7; + t['ccedillaacute'] = 0x1E09; + t['ccircle'] = 0x24D2; + t['ccircumflex'] = 0x0109; + t['ccurl'] = 0x0255; + t['cdot'] = 0x010B; + t['cdotaccent'] = 0x010B; + t['cdsquare'] = 0x33C5; + t['cedilla'] = 0x00B8; + t['cedillacmb'] = 0x0327; + t['cent'] = 0x00A2; + t['centigrade'] = 0x2103; + t['centinferior'] = 0xF6DF; + t['centmonospace'] = 0xFFE0; + t['centoldstyle'] = 0xF7A2; + t['centsuperior'] = 0xF6E0; + t['chaarmenian'] = 0x0579; + t['chabengali'] = 0x099B; + t['chadeva'] = 0x091B; + t['chagujarati'] = 0x0A9B; + t['chagurmukhi'] = 0x0A1B; + t['chbopomofo'] = 0x3114; + t['cheabkhasiancyrillic'] = 0x04BD; + t['checkmark'] = 0x2713; + t['checyrillic'] = 0x0447; + t['chedescenderabkhasiancyrillic'] = 0x04BF; + t['chedescendercyrillic'] = 0x04B7; + t['chedieresiscyrillic'] = 0x04F5; + t['cheharmenian'] = 0x0573; + t['chekhakassiancyrillic'] = 0x04CC; + t['cheverticalstrokecyrillic'] = 0x04B9; + t['chi'] = 0x03C7; + t['chieuchacirclekorean'] = 0x3277; + t['chieuchaparenkorean'] = 0x3217; + t['chieuchcirclekorean'] = 0x3269; + t['chieuchkorean'] = 0x314A; + t['chieuchparenkorean'] = 0x3209; + t['chochangthai'] = 0x0E0A; + t['chochanthai'] = 0x0E08; + t['chochingthai'] = 0x0E09; + t['chochoethai'] = 0x0E0C; + t['chook'] = 0x0188; + t['cieucacirclekorean'] = 0x3276; + t['cieucaparenkorean'] = 0x3216; + t['cieuccirclekorean'] = 0x3268; + t['cieuckorean'] = 0x3148; + t['cieucparenkorean'] = 0x3208; + t['cieucuparenkorean'] = 0x321C; + t['circle'] = 0x25CB; + t['circlecopyrt'] = 0x00A9; + t['circlemultiply'] = 0x2297; + t['circleot'] = 0x2299; + t['circleplus'] = 0x2295; + t['circlepostalmark'] = 0x3036; + t['circlewithlefthalfblack'] = 0x25D0; + t['circlewithrighthalfblack'] = 0x25D1; + t['circumflex'] = 0x02C6; + t['circumflexbelowcmb'] = 0x032D; + t['circumflexcmb'] = 0x0302; + t['clear'] = 0x2327; + t['clickalveolar'] = 0x01C2; + t['clickdental'] = 0x01C0; + t['clicklateral'] = 0x01C1; + t['clickretroflex'] = 0x01C3; + t['club'] = 0x2663; + t['clubsuitblack'] = 0x2663; + t['clubsuitwhite'] = 0x2667; + t['cmcubedsquare'] = 0x33A4; + t['cmonospace'] = 0xFF43; + t['cmsquaredsquare'] = 0x33A0; + t['coarmenian'] = 0x0581; + t['colon'] = 0x003A; + t['colonmonetary'] = 0x20A1; + t['colonmonospace'] = 0xFF1A; + t['colonsign'] = 0x20A1; + t['colonsmall'] = 0xFE55; + t['colontriangularhalfmod'] = 0x02D1; + t['colontriangularmod'] = 0x02D0; + t['comma'] = 0x002C; + t['commaabovecmb'] = 0x0313; + t['commaaboverightcmb'] = 0x0315; + t['commaaccent'] = 0xF6C3; + t['commaarabic'] = 0x060C; + t['commaarmenian'] = 0x055D; + t['commainferior'] = 0xF6E1; + t['commamonospace'] = 0xFF0C; + t['commareversedabovecmb'] = 0x0314; + t['commareversedmod'] = 0x02BD; + t['commasmall'] = 0xFE50; + t['commasuperior'] = 0xF6E2; + t['commaturnedabovecmb'] = 0x0312; + t['commaturnedmod'] = 0x02BB; + t['compass'] = 0x263C; + t['congruent'] = 0x2245; + t['contourintegral'] = 0x222E; + t['control'] = 0x2303; + t['controlACK'] = 0x0006; + t['controlBEL'] = 0x0007; + t['controlBS'] = 0x0008; + t['controlCAN'] = 0x0018; + t['controlCR'] = 0x000D; + t['controlDC1'] = 0x0011; + t['controlDC2'] = 0x0012; + t['controlDC3'] = 0x0013; + t['controlDC4'] = 0x0014; + t['controlDEL'] = 0x007F; + t['controlDLE'] = 0x0010; + t['controlEM'] = 0x0019; + t['controlENQ'] = 0x0005; + t['controlEOT'] = 0x0004; + t['controlESC'] = 0x001B; + t['controlETB'] = 0x0017; + t['controlETX'] = 0x0003; + t['controlFF'] = 0x000C; + t['controlFS'] = 0x001C; + t['controlGS'] = 0x001D; + t['controlHT'] = 0x0009; + t['controlLF'] = 0x000A; + t['controlNAK'] = 0x0015; + t['controlNULL'] = 0x0000; + t['controlRS'] = 0x001E; + t['controlSI'] = 0x000F; + t['controlSO'] = 0x000E; + t['controlSOT'] = 0x0002; + t['controlSTX'] = 0x0001; + t['controlSUB'] = 0x001A; + t['controlSYN'] = 0x0016; + t['controlUS'] = 0x001F; + t['controlVT'] = 0x000B; + t['copyright'] = 0x00A9; + t['copyrightsans'] = 0xF8E9; + t['copyrightserif'] = 0xF6D9; + t['cornerbracketleft'] = 0x300C; + t['cornerbracketlefthalfwidth'] = 0xFF62; + t['cornerbracketleftvertical'] = 0xFE41; + t['cornerbracketright'] = 0x300D; + t['cornerbracketrighthalfwidth'] = 0xFF63; + t['cornerbracketrightvertical'] = 0xFE42; + t['corporationsquare'] = 0x337F; + t['cosquare'] = 0x33C7; + t['coverkgsquare'] = 0x33C6; + t['cparen'] = 0x249E; + t['cruzeiro'] = 0x20A2; + t['cstretched'] = 0x0297; + t['curlyand'] = 0x22CF; + t['curlyor'] = 0x22CE; + t['currency'] = 0x00A4; + t['cyrBreve'] = 0xF6D1; + t['cyrFlex'] = 0xF6D2; + t['cyrbreve'] = 0xF6D4; + t['cyrflex'] = 0xF6D5; + t['d'] = 0x0064; + t['daarmenian'] = 0x0564; + t['dabengali'] = 0x09A6; + t['dadarabic'] = 0x0636; + t['dadeva'] = 0x0926; + t['dadfinalarabic'] = 0xFEBE; + t['dadinitialarabic'] = 0xFEBF; + t['dadmedialarabic'] = 0xFEC0; + t['dagesh'] = 0x05BC; + t['dageshhebrew'] = 0x05BC; + t['dagger'] = 0x2020; + t['daggerdbl'] = 0x2021; + t['dagujarati'] = 0x0AA6; + t['dagurmukhi'] = 0x0A26; + t['dahiragana'] = 0x3060; + t['dakatakana'] = 0x30C0; + t['dalarabic'] = 0x062F; + t['dalet'] = 0x05D3; + t['daletdagesh'] = 0xFB33; + t['daletdageshhebrew'] = 0xFB33; + t['dalethebrew'] = 0x05D3; + t['dalfinalarabic'] = 0xFEAA; + t['dammaarabic'] = 0x064F; + t['dammalowarabic'] = 0x064F; + t['dammatanaltonearabic'] = 0x064C; + t['dammatanarabic'] = 0x064C; + t['danda'] = 0x0964; + t['dargahebrew'] = 0x05A7; + t['dargalefthebrew'] = 0x05A7; + t['dasiapneumatacyrilliccmb'] = 0x0485; + t['dblGrave'] = 0xF6D3; + t['dblanglebracketleft'] = 0x300A; + t['dblanglebracketleftvertical'] = 0xFE3D; + t['dblanglebracketright'] = 0x300B; + t['dblanglebracketrightvertical'] = 0xFE3E; + t['dblarchinvertedbelowcmb'] = 0x032B; + t['dblarrowleft'] = 0x21D4; + t['dblarrowright'] = 0x21D2; + t['dbldanda'] = 0x0965; + t['dblgrave'] = 0xF6D6; + t['dblgravecmb'] = 0x030F; + t['dblintegral'] = 0x222C; + t['dbllowline'] = 0x2017; + t['dbllowlinecmb'] = 0x0333; + t['dbloverlinecmb'] = 0x033F; + t['dblprimemod'] = 0x02BA; + t['dblverticalbar'] = 0x2016; + t['dblverticallineabovecmb'] = 0x030E; + t['dbopomofo'] = 0x3109; + t['dbsquare'] = 0x33C8; + t['dcaron'] = 0x010F; + t['dcedilla'] = 0x1E11; + t['dcircle'] = 0x24D3; + t['dcircumflexbelow'] = 0x1E13; + t['dcroat'] = 0x0111; + t['ddabengali'] = 0x09A1; + t['ddadeva'] = 0x0921; + t['ddagujarati'] = 0x0AA1; + t['ddagurmukhi'] = 0x0A21; + t['ddalarabic'] = 0x0688; + t['ddalfinalarabic'] = 0xFB89; + t['dddhadeva'] = 0x095C; + t['ddhabengali'] = 0x09A2; + t['ddhadeva'] = 0x0922; + t['ddhagujarati'] = 0x0AA2; + t['ddhagurmukhi'] = 0x0A22; + t['ddotaccent'] = 0x1E0B; + t['ddotbelow'] = 0x1E0D; + t['decimalseparatorarabic'] = 0x066B; + t['decimalseparatorpersian'] = 0x066B; + t['decyrillic'] = 0x0434; + t['degree'] = 0x00B0; + t['dehihebrew'] = 0x05AD; + t['dehiragana'] = 0x3067; + t['deicoptic'] = 0x03EF; + t['dekatakana'] = 0x30C7; + t['deleteleft'] = 0x232B; + t['deleteright'] = 0x2326; + t['delta'] = 0x03B4; + t['deltaturned'] = 0x018D; + t['denominatorminusonenumeratorbengali'] = 0x09F8; + t['dezh'] = 0x02A4; + t['dhabengali'] = 0x09A7; + t['dhadeva'] = 0x0927; + t['dhagujarati'] = 0x0AA7; + t['dhagurmukhi'] = 0x0A27; + t['dhook'] = 0x0257; + t['dialytikatonos'] = 0x0385; + t['dialytikatonoscmb'] = 0x0344; + t['diamond'] = 0x2666; + t['diamondsuitwhite'] = 0x2662; + t['dieresis'] = 0x00A8; + t['dieresisacute'] = 0xF6D7; + t['dieresisbelowcmb'] = 0x0324; + t['dieresiscmb'] = 0x0308; + t['dieresisgrave'] = 0xF6D8; + t['dieresistonos'] = 0x0385; + t['dihiragana'] = 0x3062; + t['dikatakana'] = 0x30C2; + t['dittomark'] = 0x3003; + t['divide'] = 0x00F7; + t['divides'] = 0x2223; + t['divisionslash'] = 0x2215; + t['djecyrillic'] = 0x0452; + t['dkshade'] = 0x2593; + t['dlinebelow'] = 0x1E0F; + t['dlsquare'] = 0x3397; + t['dmacron'] = 0x0111; + t['dmonospace'] = 0xFF44; + t['dnblock'] = 0x2584; + t['dochadathai'] = 0x0E0E; + t['dodekthai'] = 0x0E14; + t['dohiragana'] = 0x3069; + t['dokatakana'] = 0x30C9; + t['dollar'] = 0x0024; + t['dollarinferior'] = 0xF6E3; + t['dollarmonospace'] = 0xFF04; + t['dollaroldstyle'] = 0xF724; + t['dollarsmall'] = 0xFE69; + t['dollarsuperior'] = 0xF6E4; + t['dong'] = 0x20AB; + t['dorusquare'] = 0x3326; + t['dotaccent'] = 0x02D9; + t['dotaccentcmb'] = 0x0307; + t['dotbelowcmb'] = 0x0323; + t['dotbelowcomb'] = 0x0323; + t['dotkatakana'] = 0x30FB; + t['dotlessi'] = 0x0131; + t['dotlessj'] = 0xF6BE; + t['dotlessjstrokehook'] = 0x0284; + t['dotmath'] = 0x22C5; + t['dottedcircle'] = 0x25CC; + t['doubleyodpatah'] = 0xFB1F; + t['doubleyodpatahhebrew'] = 0xFB1F; + t['downtackbelowcmb'] = 0x031E; + t['downtackmod'] = 0x02D5; + t['dparen'] = 0x249F; + t['dsuperior'] = 0xF6EB; + t['dtail'] = 0x0256; + t['dtopbar'] = 0x018C; + t['duhiragana'] = 0x3065; + t['dukatakana'] = 0x30C5; + t['dz'] = 0x01F3; + t['dzaltone'] = 0x02A3; + t['dzcaron'] = 0x01C6; + t['dzcurl'] = 0x02A5; + t['dzeabkhasiancyrillic'] = 0x04E1; + t['dzecyrillic'] = 0x0455; + t['dzhecyrillic'] = 0x045F; + t['e'] = 0x0065; + t['eacute'] = 0x00E9; + t['earth'] = 0x2641; + t['ebengali'] = 0x098F; + t['ebopomofo'] = 0x311C; + t['ebreve'] = 0x0115; + t['ecandradeva'] = 0x090D; + t['ecandragujarati'] = 0x0A8D; + t['ecandravowelsigndeva'] = 0x0945; + t['ecandravowelsigngujarati'] = 0x0AC5; + t['ecaron'] = 0x011B; + t['ecedillabreve'] = 0x1E1D; + t['echarmenian'] = 0x0565; + t['echyiwnarmenian'] = 0x0587; + t['ecircle'] = 0x24D4; + t['ecircumflex'] = 0x00EA; + t['ecircumflexacute'] = 0x1EBF; + t['ecircumflexbelow'] = 0x1E19; + t['ecircumflexdotbelow'] = 0x1EC7; + t['ecircumflexgrave'] = 0x1EC1; + t['ecircumflexhookabove'] = 0x1EC3; + t['ecircumflextilde'] = 0x1EC5; + t['ecyrillic'] = 0x0454; + t['edblgrave'] = 0x0205; + t['edeva'] = 0x090F; + t['edieresis'] = 0x00EB; + t['edot'] = 0x0117; + t['edotaccent'] = 0x0117; + t['edotbelow'] = 0x1EB9; + t['eegurmukhi'] = 0x0A0F; + t['eematragurmukhi'] = 0x0A47; + t['efcyrillic'] = 0x0444; + t['egrave'] = 0x00E8; + t['egujarati'] = 0x0A8F; + t['eharmenian'] = 0x0567; + t['ehbopomofo'] = 0x311D; + t['ehiragana'] = 0x3048; + t['ehookabove'] = 0x1EBB; + t['eibopomofo'] = 0x311F; + t['eight'] = 0x0038; + t['eightarabic'] = 0x0668; + t['eightbengali'] = 0x09EE; + t['eightcircle'] = 0x2467; + t['eightcircleinversesansserif'] = 0x2791; + t['eightdeva'] = 0x096E; + t['eighteencircle'] = 0x2471; + t['eighteenparen'] = 0x2485; + t['eighteenperiod'] = 0x2499; + t['eightgujarati'] = 0x0AEE; + t['eightgurmukhi'] = 0x0A6E; + t['eighthackarabic'] = 0x0668; + t['eighthangzhou'] = 0x3028; + t['eighthnotebeamed'] = 0x266B; + t['eightideographicparen'] = 0x3227; + t['eightinferior'] = 0x2088; + t['eightmonospace'] = 0xFF18; + t['eightoldstyle'] = 0xF738; + t['eightparen'] = 0x247B; + t['eightperiod'] = 0x248F; + t['eightpersian'] = 0x06F8; + t['eightroman'] = 0x2177; + t['eightsuperior'] = 0x2078; + t['eightthai'] = 0x0E58; + t['einvertedbreve'] = 0x0207; + t['eiotifiedcyrillic'] = 0x0465; + t['ekatakana'] = 0x30A8; + t['ekatakanahalfwidth'] = 0xFF74; + t['ekonkargurmukhi'] = 0x0A74; + t['ekorean'] = 0x3154; + t['elcyrillic'] = 0x043B; + t['element'] = 0x2208; + t['elevencircle'] = 0x246A; + t['elevenparen'] = 0x247E; + t['elevenperiod'] = 0x2492; + t['elevenroman'] = 0x217A; + t['ellipsis'] = 0x2026; + t['ellipsisvertical'] = 0x22EE; + t['emacron'] = 0x0113; + t['emacronacute'] = 0x1E17; + t['emacrongrave'] = 0x1E15; + t['emcyrillic'] = 0x043C; + t['emdash'] = 0x2014; + t['emdashvertical'] = 0xFE31; + t['emonospace'] = 0xFF45; + t['emphasismarkarmenian'] = 0x055B; + t['emptyset'] = 0x2205; + t['enbopomofo'] = 0x3123; + t['encyrillic'] = 0x043D; + t['endash'] = 0x2013; + t['endashvertical'] = 0xFE32; + t['endescendercyrillic'] = 0x04A3; + t['eng'] = 0x014B; + t['engbopomofo'] = 0x3125; + t['enghecyrillic'] = 0x04A5; + t['enhookcyrillic'] = 0x04C8; + t['enspace'] = 0x2002; + t['eogonek'] = 0x0119; + t['eokorean'] = 0x3153; + t['eopen'] = 0x025B; + t['eopenclosed'] = 0x029A; + t['eopenreversed'] = 0x025C; + t['eopenreversedclosed'] = 0x025E; + t['eopenreversedhook'] = 0x025D; + t['eparen'] = 0x24A0; + t['epsilon'] = 0x03B5; + t['epsilontonos'] = 0x03AD; + t['equal'] = 0x003D; + t['equalmonospace'] = 0xFF1D; + t['equalsmall'] = 0xFE66; + t['equalsuperior'] = 0x207C; + t['equivalence'] = 0x2261; + t['erbopomofo'] = 0x3126; + t['ercyrillic'] = 0x0440; + t['ereversed'] = 0x0258; + t['ereversedcyrillic'] = 0x044D; + t['escyrillic'] = 0x0441; + t['esdescendercyrillic'] = 0x04AB; + t['esh'] = 0x0283; + t['eshcurl'] = 0x0286; + t['eshortdeva'] = 0x090E; + t['eshortvowelsigndeva'] = 0x0946; + t['eshreversedloop'] = 0x01AA; + t['eshsquatreversed'] = 0x0285; + t['esmallhiragana'] = 0x3047; + t['esmallkatakana'] = 0x30A7; + t['esmallkatakanahalfwidth'] = 0xFF6A; + t['estimated'] = 0x212E; + t['esuperior'] = 0xF6EC; + t['eta'] = 0x03B7; + t['etarmenian'] = 0x0568; + t['etatonos'] = 0x03AE; + t['eth'] = 0x00F0; + t['etilde'] = 0x1EBD; + t['etildebelow'] = 0x1E1B; + t['etnahtafoukhhebrew'] = 0x0591; + t['etnahtafoukhlefthebrew'] = 0x0591; + t['etnahtahebrew'] = 0x0591; + t['etnahtalefthebrew'] = 0x0591; + t['eturned'] = 0x01DD; + t['eukorean'] = 0x3161; + t['euro'] = 0x20AC; + t['evowelsignbengali'] = 0x09C7; + t['evowelsigndeva'] = 0x0947; + t['evowelsigngujarati'] = 0x0AC7; + t['exclam'] = 0x0021; + t['exclamarmenian'] = 0x055C; + t['exclamdbl'] = 0x203C; + t['exclamdown'] = 0x00A1; + t['exclamdownsmall'] = 0xF7A1; + t['exclammonospace'] = 0xFF01; + t['exclamsmall'] = 0xF721; + t['existential'] = 0x2203; + t['ezh'] = 0x0292; + t['ezhcaron'] = 0x01EF; + t['ezhcurl'] = 0x0293; + t['ezhreversed'] = 0x01B9; + t['ezhtail'] = 0x01BA; + t['f'] = 0x0066; + t['fadeva'] = 0x095E; + t['fagurmukhi'] = 0x0A5E; + t['fahrenheit'] = 0x2109; + t['fathaarabic'] = 0x064E; + t['fathalowarabic'] = 0x064E; + t['fathatanarabic'] = 0x064B; + t['fbopomofo'] = 0x3108; + t['fcircle'] = 0x24D5; + t['fdotaccent'] = 0x1E1F; + t['feharabic'] = 0x0641; + t['feharmenian'] = 0x0586; + t['fehfinalarabic'] = 0xFED2; + t['fehinitialarabic'] = 0xFED3; + t['fehmedialarabic'] = 0xFED4; + t['feicoptic'] = 0x03E5; + t['female'] = 0x2640; + t['ff'] = 0xFB00; + t['ffi'] = 0xFB03; + t['ffl'] = 0xFB04; + t['fi'] = 0xFB01; + t['fifteencircle'] = 0x246E; + t['fifteenparen'] = 0x2482; + t['fifteenperiod'] = 0x2496; + t['figuredash'] = 0x2012; + t['filledbox'] = 0x25A0; + t['filledrect'] = 0x25AC; + t['finalkaf'] = 0x05DA; + t['finalkafdagesh'] = 0xFB3A; + t['finalkafdageshhebrew'] = 0xFB3A; + t['finalkafhebrew'] = 0x05DA; + t['finalmem'] = 0x05DD; + t['finalmemhebrew'] = 0x05DD; + t['finalnun'] = 0x05DF; + t['finalnunhebrew'] = 0x05DF; + t['finalpe'] = 0x05E3; + t['finalpehebrew'] = 0x05E3; + t['finaltsadi'] = 0x05E5; + t['finaltsadihebrew'] = 0x05E5; + t['firsttonechinese'] = 0x02C9; + t['fisheye'] = 0x25C9; + t['fitacyrillic'] = 0x0473; + t['five'] = 0x0035; + t['fivearabic'] = 0x0665; + t['fivebengali'] = 0x09EB; + t['fivecircle'] = 0x2464; + t['fivecircleinversesansserif'] = 0x278E; + t['fivedeva'] = 0x096B; + t['fiveeighths'] = 0x215D; + t['fivegujarati'] = 0x0AEB; + t['fivegurmukhi'] = 0x0A6B; + t['fivehackarabic'] = 0x0665; + t['fivehangzhou'] = 0x3025; + t['fiveideographicparen'] = 0x3224; + t['fiveinferior'] = 0x2085; + t['fivemonospace'] = 0xFF15; + t['fiveoldstyle'] = 0xF735; + t['fiveparen'] = 0x2478; + t['fiveperiod'] = 0x248C; + t['fivepersian'] = 0x06F5; + t['fiveroman'] = 0x2174; + t['fivesuperior'] = 0x2075; + t['fivethai'] = 0x0E55; + t['fl'] = 0xFB02; + t['florin'] = 0x0192; + t['fmonospace'] = 0xFF46; + t['fmsquare'] = 0x3399; + t['fofanthai'] = 0x0E1F; + t['fofathai'] = 0x0E1D; + t['fongmanthai'] = 0x0E4F; + t['forall'] = 0x2200; + t['four'] = 0x0034; + t['fourarabic'] = 0x0664; + t['fourbengali'] = 0x09EA; + t['fourcircle'] = 0x2463; + t['fourcircleinversesansserif'] = 0x278D; + t['fourdeva'] = 0x096A; + t['fourgujarati'] = 0x0AEA; + t['fourgurmukhi'] = 0x0A6A; + t['fourhackarabic'] = 0x0664; + t['fourhangzhou'] = 0x3024; + t['fourideographicparen'] = 0x3223; + t['fourinferior'] = 0x2084; + t['fourmonospace'] = 0xFF14; + t['fournumeratorbengali'] = 0x09F7; + t['fouroldstyle'] = 0xF734; + t['fourparen'] = 0x2477; + t['fourperiod'] = 0x248B; + t['fourpersian'] = 0x06F4; + t['fourroman'] = 0x2173; + t['foursuperior'] = 0x2074; + t['fourteencircle'] = 0x246D; + t['fourteenparen'] = 0x2481; + t['fourteenperiod'] = 0x2495; + t['fourthai'] = 0x0E54; + t['fourthtonechinese'] = 0x02CB; + t['fparen'] = 0x24A1; + t['fraction'] = 0x2044; + t['franc'] = 0x20A3; + t['g'] = 0x0067; + t['gabengali'] = 0x0997; + t['gacute'] = 0x01F5; + t['gadeva'] = 0x0917; + t['gafarabic'] = 0x06AF; + t['gaffinalarabic'] = 0xFB93; + t['gafinitialarabic'] = 0xFB94; + t['gafmedialarabic'] = 0xFB95; + t['gagujarati'] = 0x0A97; + t['gagurmukhi'] = 0x0A17; + t['gahiragana'] = 0x304C; + t['gakatakana'] = 0x30AC; + t['gamma'] = 0x03B3; + t['gammalatinsmall'] = 0x0263; + t['gammasuperior'] = 0x02E0; + t['gangiacoptic'] = 0x03EB; + t['gbopomofo'] = 0x310D; + t['gbreve'] = 0x011F; + t['gcaron'] = 0x01E7; + t['gcedilla'] = 0x0123; + t['gcircle'] = 0x24D6; + t['gcircumflex'] = 0x011D; + t['gcommaaccent'] = 0x0123; + t['gdot'] = 0x0121; + t['gdotaccent'] = 0x0121; + t['gecyrillic'] = 0x0433; + t['gehiragana'] = 0x3052; + t['gekatakana'] = 0x30B2; + t['geometricallyequal'] = 0x2251; + t['gereshaccenthebrew'] = 0x059C; + t['gereshhebrew'] = 0x05F3; + t['gereshmuqdamhebrew'] = 0x059D; + t['germandbls'] = 0x00DF; + t['gershayimaccenthebrew'] = 0x059E; + t['gershayimhebrew'] = 0x05F4; + t['getamark'] = 0x3013; + t['ghabengali'] = 0x0998; + t['ghadarmenian'] = 0x0572; + t['ghadeva'] = 0x0918; + t['ghagujarati'] = 0x0A98; + t['ghagurmukhi'] = 0x0A18; + t['ghainarabic'] = 0x063A; + t['ghainfinalarabic'] = 0xFECE; + t['ghaininitialarabic'] = 0xFECF; + t['ghainmedialarabic'] = 0xFED0; + t['ghemiddlehookcyrillic'] = 0x0495; + t['ghestrokecyrillic'] = 0x0493; + t['gheupturncyrillic'] = 0x0491; + t['ghhadeva'] = 0x095A; + t['ghhagurmukhi'] = 0x0A5A; + t['ghook'] = 0x0260; + t['ghzsquare'] = 0x3393; + t['gihiragana'] = 0x304E; + t['gikatakana'] = 0x30AE; + t['gimarmenian'] = 0x0563; + t['gimel'] = 0x05D2; + t['gimeldagesh'] = 0xFB32; + t['gimeldageshhebrew'] = 0xFB32; + t['gimelhebrew'] = 0x05D2; + t['gjecyrillic'] = 0x0453; + t['glottalinvertedstroke'] = 0x01BE; + t['glottalstop'] = 0x0294; + t['glottalstopinverted'] = 0x0296; + t['glottalstopmod'] = 0x02C0; + t['glottalstopreversed'] = 0x0295; + t['glottalstopreversedmod'] = 0x02C1; + t['glottalstopreversedsuperior'] = 0x02E4; + t['glottalstopstroke'] = 0x02A1; + t['glottalstopstrokereversed'] = 0x02A2; + t['gmacron'] = 0x1E21; + t['gmonospace'] = 0xFF47; + t['gohiragana'] = 0x3054; + t['gokatakana'] = 0x30B4; + t['gparen'] = 0x24A2; + t['gpasquare'] = 0x33AC; + t['gradient'] = 0x2207; + t['grave'] = 0x0060; + t['gravebelowcmb'] = 0x0316; + t['gravecmb'] = 0x0300; + t['gravecomb'] = 0x0300; + t['gravedeva'] = 0x0953; + t['gravelowmod'] = 0x02CE; + t['gravemonospace'] = 0xFF40; + t['gravetonecmb'] = 0x0340; + t['greater'] = 0x003E; + t['greaterequal'] = 0x2265; + t['greaterequalorless'] = 0x22DB; + t['greatermonospace'] = 0xFF1E; + t['greaterorequivalent'] = 0x2273; + t['greaterorless'] = 0x2277; + t['greateroverequal'] = 0x2267; + t['greatersmall'] = 0xFE65; + t['gscript'] = 0x0261; + t['gstroke'] = 0x01E5; + t['guhiragana'] = 0x3050; + t['guillemotleft'] = 0x00AB; + t['guillemotright'] = 0x00BB; + t['guilsinglleft'] = 0x2039; + t['guilsinglright'] = 0x203A; + t['gukatakana'] = 0x30B0; + t['guramusquare'] = 0x3318; + t['gysquare'] = 0x33C9; + t['h'] = 0x0068; + t['haabkhasiancyrillic'] = 0x04A9; + t['haaltonearabic'] = 0x06C1; + t['habengali'] = 0x09B9; + t['hadescendercyrillic'] = 0x04B3; + t['hadeva'] = 0x0939; + t['hagujarati'] = 0x0AB9; + t['hagurmukhi'] = 0x0A39; + t['haharabic'] = 0x062D; + t['hahfinalarabic'] = 0xFEA2; + t['hahinitialarabic'] = 0xFEA3; + t['hahiragana'] = 0x306F; + t['hahmedialarabic'] = 0xFEA4; + t['haitusquare'] = 0x332A; + t['hakatakana'] = 0x30CF; + t['hakatakanahalfwidth'] = 0xFF8A; + t['halantgurmukhi'] = 0x0A4D; + t['hamzaarabic'] = 0x0621; + t['hamzalowarabic'] = 0x0621; + t['hangulfiller'] = 0x3164; + t['hardsigncyrillic'] = 0x044A; + t['harpoonleftbarbup'] = 0x21BC; + t['harpoonrightbarbup'] = 0x21C0; + t['hasquare'] = 0x33CA; + t['hatafpatah'] = 0x05B2; + t['hatafpatah16'] = 0x05B2; + t['hatafpatah23'] = 0x05B2; + t['hatafpatah2f'] = 0x05B2; + t['hatafpatahhebrew'] = 0x05B2; + t['hatafpatahnarrowhebrew'] = 0x05B2; + t['hatafpatahquarterhebrew'] = 0x05B2; + t['hatafpatahwidehebrew'] = 0x05B2; + t['hatafqamats'] = 0x05B3; + t['hatafqamats1b'] = 0x05B3; + t['hatafqamats28'] = 0x05B3; + t['hatafqamats34'] = 0x05B3; + t['hatafqamatshebrew'] = 0x05B3; + t['hatafqamatsnarrowhebrew'] = 0x05B3; + t['hatafqamatsquarterhebrew'] = 0x05B3; + t['hatafqamatswidehebrew'] = 0x05B3; + t['hatafsegol'] = 0x05B1; + t['hatafsegol17'] = 0x05B1; + t['hatafsegol24'] = 0x05B1; + t['hatafsegol30'] = 0x05B1; + t['hatafsegolhebrew'] = 0x05B1; + t['hatafsegolnarrowhebrew'] = 0x05B1; + t['hatafsegolquarterhebrew'] = 0x05B1; + t['hatafsegolwidehebrew'] = 0x05B1; + t['hbar'] = 0x0127; + t['hbopomofo'] = 0x310F; + t['hbrevebelow'] = 0x1E2B; + t['hcedilla'] = 0x1E29; + t['hcircle'] = 0x24D7; + t['hcircumflex'] = 0x0125; + t['hdieresis'] = 0x1E27; + t['hdotaccent'] = 0x1E23; + t['hdotbelow'] = 0x1E25; + t['he'] = 0x05D4; + t['heart'] = 0x2665; + t['heartsuitblack'] = 0x2665; + t['heartsuitwhite'] = 0x2661; + t['hedagesh'] = 0xFB34; + t['hedageshhebrew'] = 0xFB34; + t['hehaltonearabic'] = 0x06C1; + t['heharabic'] = 0x0647; + t['hehebrew'] = 0x05D4; + t['hehfinalaltonearabic'] = 0xFBA7; + t['hehfinalalttwoarabic'] = 0xFEEA; + t['hehfinalarabic'] = 0xFEEA; + t['hehhamzaabovefinalarabic'] = 0xFBA5; + t['hehhamzaaboveisolatedarabic'] = 0xFBA4; + t['hehinitialaltonearabic'] = 0xFBA8; + t['hehinitialarabic'] = 0xFEEB; + t['hehiragana'] = 0x3078; + t['hehmedialaltonearabic'] = 0xFBA9; + t['hehmedialarabic'] = 0xFEEC; + t['heiseierasquare'] = 0x337B; + t['hekatakana'] = 0x30D8; + t['hekatakanahalfwidth'] = 0xFF8D; + t['hekutaarusquare'] = 0x3336; + t['henghook'] = 0x0267; + t['herutusquare'] = 0x3339; + t['het'] = 0x05D7; + t['hethebrew'] = 0x05D7; + t['hhook'] = 0x0266; + t['hhooksuperior'] = 0x02B1; + t['hieuhacirclekorean'] = 0x327B; + t['hieuhaparenkorean'] = 0x321B; + t['hieuhcirclekorean'] = 0x326D; + t['hieuhkorean'] = 0x314E; + t['hieuhparenkorean'] = 0x320D; + t['hihiragana'] = 0x3072; + t['hikatakana'] = 0x30D2; + t['hikatakanahalfwidth'] = 0xFF8B; + t['hiriq'] = 0x05B4; + t['hiriq14'] = 0x05B4; + t['hiriq21'] = 0x05B4; + t['hiriq2d'] = 0x05B4; + t['hiriqhebrew'] = 0x05B4; + t['hiriqnarrowhebrew'] = 0x05B4; + t['hiriqquarterhebrew'] = 0x05B4; + t['hiriqwidehebrew'] = 0x05B4; + t['hlinebelow'] = 0x1E96; + t['hmonospace'] = 0xFF48; + t['hoarmenian'] = 0x0570; + t['hohipthai'] = 0x0E2B; + t['hohiragana'] = 0x307B; + t['hokatakana'] = 0x30DB; + t['hokatakanahalfwidth'] = 0xFF8E; + t['holam'] = 0x05B9; + t['holam19'] = 0x05B9; + t['holam26'] = 0x05B9; + t['holam32'] = 0x05B9; + t['holamhebrew'] = 0x05B9; + t['holamnarrowhebrew'] = 0x05B9; + t['holamquarterhebrew'] = 0x05B9; + t['holamwidehebrew'] = 0x05B9; + t['honokhukthai'] = 0x0E2E; + t['hookabovecomb'] = 0x0309; + t['hookcmb'] = 0x0309; + t['hookpalatalizedbelowcmb'] = 0x0321; + t['hookretroflexbelowcmb'] = 0x0322; + t['hoonsquare'] = 0x3342; + t['horicoptic'] = 0x03E9; + t['horizontalbar'] = 0x2015; + t['horncmb'] = 0x031B; + t['hotsprings'] = 0x2668; + t['house'] = 0x2302; + t['hparen'] = 0x24A3; + t['hsuperior'] = 0x02B0; + t['hturned'] = 0x0265; + t['huhiragana'] = 0x3075; + t['huiitosquare'] = 0x3333; + t['hukatakana'] = 0x30D5; + t['hukatakanahalfwidth'] = 0xFF8C; + t['hungarumlaut'] = 0x02DD; + t['hungarumlautcmb'] = 0x030B; + t['hv'] = 0x0195; + t['hyphen'] = 0x002D; + t['hypheninferior'] = 0xF6E5; + t['hyphenmonospace'] = 0xFF0D; + t['hyphensmall'] = 0xFE63; + t['hyphensuperior'] = 0xF6E6; + t['hyphentwo'] = 0x2010; + t['i'] = 0x0069; + t['iacute'] = 0x00ED; + t['iacyrillic'] = 0x044F; + t['ibengali'] = 0x0987; + t['ibopomofo'] = 0x3127; + t['ibreve'] = 0x012D; + t['icaron'] = 0x01D0; + t['icircle'] = 0x24D8; + t['icircumflex'] = 0x00EE; + t['icyrillic'] = 0x0456; + t['idblgrave'] = 0x0209; + t['ideographearthcircle'] = 0x328F; + t['ideographfirecircle'] = 0x328B; + t['ideographicallianceparen'] = 0x323F; + t['ideographiccallparen'] = 0x323A; + t['ideographiccentrecircle'] = 0x32A5; + t['ideographicclose'] = 0x3006; + t['ideographiccomma'] = 0x3001; + t['ideographiccommaleft'] = 0xFF64; + t['ideographiccongratulationparen'] = 0x3237; + t['ideographiccorrectcircle'] = 0x32A3; + t['ideographicearthparen'] = 0x322F; + t['ideographicenterpriseparen'] = 0x323D; + t['ideographicexcellentcircle'] = 0x329D; + t['ideographicfestivalparen'] = 0x3240; + t['ideographicfinancialcircle'] = 0x3296; + t['ideographicfinancialparen'] = 0x3236; + t['ideographicfireparen'] = 0x322B; + t['ideographichaveparen'] = 0x3232; + t['ideographichighcircle'] = 0x32A4; + t['ideographiciterationmark'] = 0x3005; + t['ideographiclaborcircle'] = 0x3298; + t['ideographiclaborparen'] = 0x3238; + t['ideographicleftcircle'] = 0x32A7; + t['ideographiclowcircle'] = 0x32A6; + t['ideographicmedicinecircle'] = 0x32A9; + t['ideographicmetalparen'] = 0x322E; + t['ideographicmoonparen'] = 0x322A; + t['ideographicnameparen'] = 0x3234; + t['ideographicperiod'] = 0x3002; + t['ideographicprintcircle'] = 0x329E; + t['ideographicreachparen'] = 0x3243; + t['ideographicrepresentparen'] = 0x3239; + t['ideographicresourceparen'] = 0x323E; + t['ideographicrightcircle'] = 0x32A8; + t['ideographicsecretcircle'] = 0x3299; + t['ideographicselfparen'] = 0x3242; + t['ideographicsocietyparen'] = 0x3233; + t['ideographicspace'] = 0x3000; + t['ideographicspecialparen'] = 0x3235; + t['ideographicstockparen'] = 0x3231; + t['ideographicstudyparen'] = 0x323B; + t['ideographicsunparen'] = 0x3230; + t['ideographicsuperviseparen'] = 0x323C; + t['ideographicwaterparen'] = 0x322C; + t['ideographicwoodparen'] = 0x322D; + t['ideographiczero'] = 0x3007; + t['ideographmetalcircle'] = 0x328E; + t['ideographmooncircle'] = 0x328A; + t['ideographnamecircle'] = 0x3294; + t['ideographsuncircle'] = 0x3290; + t['ideographwatercircle'] = 0x328C; + t['ideographwoodcircle'] = 0x328D; + t['ideva'] = 0x0907; + t['idieresis'] = 0x00EF; + t['idieresisacute'] = 0x1E2F; + t['idieresiscyrillic'] = 0x04E5; + t['idotbelow'] = 0x1ECB; + t['iebrevecyrillic'] = 0x04D7; + t['iecyrillic'] = 0x0435; + t['ieungacirclekorean'] = 0x3275; + t['ieungaparenkorean'] = 0x3215; + t['ieungcirclekorean'] = 0x3267; + t['ieungkorean'] = 0x3147; + t['ieungparenkorean'] = 0x3207; + t['igrave'] = 0x00EC; + t['igujarati'] = 0x0A87; + t['igurmukhi'] = 0x0A07; + t['ihiragana'] = 0x3044; + t['ihookabove'] = 0x1EC9; + t['iibengali'] = 0x0988; + t['iicyrillic'] = 0x0438; + t['iideva'] = 0x0908; + t['iigujarati'] = 0x0A88; + t['iigurmukhi'] = 0x0A08; + t['iimatragurmukhi'] = 0x0A40; + t['iinvertedbreve'] = 0x020B; + t['iishortcyrillic'] = 0x0439; + t['iivowelsignbengali'] = 0x09C0; + t['iivowelsigndeva'] = 0x0940; + t['iivowelsigngujarati'] = 0x0AC0; + t['ij'] = 0x0133; + t['ikatakana'] = 0x30A4; + t['ikatakanahalfwidth'] = 0xFF72; + t['ikorean'] = 0x3163; + t['ilde'] = 0x02DC; + t['iluyhebrew'] = 0x05AC; + t['imacron'] = 0x012B; + t['imacroncyrillic'] = 0x04E3; + t['imageorapproximatelyequal'] = 0x2253; + t['imatragurmukhi'] = 0x0A3F; + t['imonospace'] = 0xFF49; + t['increment'] = 0x2206; + t['infinity'] = 0x221E; + t['iniarmenian'] = 0x056B; + t['integral'] = 0x222B; + t['integralbottom'] = 0x2321; + t['integralbt'] = 0x2321; + t['integralex'] = 0xF8F5; + t['integraltop'] = 0x2320; + t['integraltp'] = 0x2320; + t['intersection'] = 0x2229; + t['intisquare'] = 0x3305; + t['invbullet'] = 0x25D8; + t['invcircle'] = 0x25D9; + t['invsmileface'] = 0x263B; + t['iocyrillic'] = 0x0451; + t['iogonek'] = 0x012F; + t['iota'] = 0x03B9; + t['iotadieresis'] = 0x03CA; + t['iotadieresistonos'] = 0x0390; + t['iotalatin'] = 0x0269; + t['iotatonos'] = 0x03AF; + t['iparen'] = 0x24A4; + t['irigurmukhi'] = 0x0A72; + t['ismallhiragana'] = 0x3043; + t['ismallkatakana'] = 0x30A3; + t['ismallkatakanahalfwidth'] = 0xFF68; + t['issharbengali'] = 0x09FA; + t['istroke'] = 0x0268; + t['isuperior'] = 0xF6ED; + t['iterationhiragana'] = 0x309D; + t['iterationkatakana'] = 0x30FD; + t['itilde'] = 0x0129; + t['itildebelow'] = 0x1E2D; + t['iubopomofo'] = 0x3129; + t['iucyrillic'] = 0x044E; + t['ivowelsignbengali'] = 0x09BF; + t['ivowelsigndeva'] = 0x093F; + t['ivowelsigngujarati'] = 0x0ABF; + t['izhitsacyrillic'] = 0x0475; + t['izhitsadblgravecyrillic'] = 0x0477; + t['j'] = 0x006A; + t['jaarmenian'] = 0x0571; + t['jabengali'] = 0x099C; + t['jadeva'] = 0x091C; + t['jagujarati'] = 0x0A9C; + t['jagurmukhi'] = 0x0A1C; + t['jbopomofo'] = 0x3110; + t['jcaron'] = 0x01F0; + t['jcircle'] = 0x24D9; + t['jcircumflex'] = 0x0135; + t['jcrossedtail'] = 0x029D; + t['jdotlessstroke'] = 0x025F; + t['jecyrillic'] = 0x0458; + t['jeemarabic'] = 0x062C; + t['jeemfinalarabic'] = 0xFE9E; + t['jeeminitialarabic'] = 0xFE9F; + t['jeemmedialarabic'] = 0xFEA0; + t['jeharabic'] = 0x0698; + t['jehfinalarabic'] = 0xFB8B; + t['jhabengali'] = 0x099D; + t['jhadeva'] = 0x091D; + t['jhagujarati'] = 0x0A9D; + t['jhagurmukhi'] = 0x0A1D; + t['jheharmenian'] = 0x057B; + t['jis'] = 0x3004; + t['jmonospace'] = 0xFF4A; + t['jparen'] = 0x24A5; + t['jsuperior'] = 0x02B2; + t['k'] = 0x006B; + t['kabashkircyrillic'] = 0x04A1; + t['kabengali'] = 0x0995; + t['kacute'] = 0x1E31; + t['kacyrillic'] = 0x043A; + t['kadescendercyrillic'] = 0x049B; + t['kadeva'] = 0x0915; + t['kaf'] = 0x05DB; + t['kafarabic'] = 0x0643; + t['kafdagesh'] = 0xFB3B; + t['kafdageshhebrew'] = 0xFB3B; + t['kaffinalarabic'] = 0xFEDA; + t['kafhebrew'] = 0x05DB; + t['kafinitialarabic'] = 0xFEDB; + t['kafmedialarabic'] = 0xFEDC; + t['kafrafehebrew'] = 0xFB4D; + t['kagujarati'] = 0x0A95; + t['kagurmukhi'] = 0x0A15; + t['kahiragana'] = 0x304B; + t['kahookcyrillic'] = 0x04C4; + t['kakatakana'] = 0x30AB; + t['kakatakanahalfwidth'] = 0xFF76; + t['kappa'] = 0x03BA; + t['kappasymbolgreek'] = 0x03F0; + t['kapyeounmieumkorean'] = 0x3171; + t['kapyeounphieuphkorean'] = 0x3184; + t['kapyeounpieupkorean'] = 0x3178; + t['kapyeounssangpieupkorean'] = 0x3179; + t['karoriisquare'] = 0x330D; + t['kashidaautoarabic'] = 0x0640; + t['kashidaautonosidebearingarabic'] = 0x0640; + t['kasmallkatakana'] = 0x30F5; + t['kasquare'] = 0x3384; + t['kasraarabic'] = 0x0650; + t['kasratanarabic'] = 0x064D; + t['kastrokecyrillic'] = 0x049F; + t['katahiraprolongmarkhalfwidth'] = 0xFF70; + t['kaverticalstrokecyrillic'] = 0x049D; + t['kbopomofo'] = 0x310E; + t['kcalsquare'] = 0x3389; + t['kcaron'] = 0x01E9; + t['kcedilla'] = 0x0137; + t['kcircle'] = 0x24DA; + t['kcommaaccent'] = 0x0137; + t['kdotbelow'] = 0x1E33; + t['keharmenian'] = 0x0584; + t['kehiragana'] = 0x3051; + t['kekatakana'] = 0x30B1; + t['kekatakanahalfwidth'] = 0xFF79; + t['kenarmenian'] = 0x056F; + t['kesmallkatakana'] = 0x30F6; + t['kgreenlandic'] = 0x0138; + t['khabengali'] = 0x0996; + t['khacyrillic'] = 0x0445; + t['khadeva'] = 0x0916; + t['khagujarati'] = 0x0A96; + t['khagurmukhi'] = 0x0A16; + t['khaharabic'] = 0x062E; + t['khahfinalarabic'] = 0xFEA6; + t['khahinitialarabic'] = 0xFEA7; + t['khahmedialarabic'] = 0xFEA8; + t['kheicoptic'] = 0x03E7; + t['khhadeva'] = 0x0959; + t['khhagurmukhi'] = 0x0A59; + t['khieukhacirclekorean'] = 0x3278; + t['khieukhaparenkorean'] = 0x3218; + t['khieukhcirclekorean'] = 0x326A; + t['khieukhkorean'] = 0x314B; + t['khieukhparenkorean'] = 0x320A; + t['khokhaithai'] = 0x0E02; + t['khokhonthai'] = 0x0E05; + t['khokhuatthai'] = 0x0E03; + t['khokhwaithai'] = 0x0E04; + t['khomutthai'] = 0x0E5B; + t['khook'] = 0x0199; + t['khorakhangthai'] = 0x0E06; + t['khzsquare'] = 0x3391; + t['kihiragana'] = 0x304D; + t['kikatakana'] = 0x30AD; + t['kikatakanahalfwidth'] = 0xFF77; + t['kiroguramusquare'] = 0x3315; + t['kiromeetorusquare'] = 0x3316; + t['kirosquare'] = 0x3314; + t['kiyeokacirclekorean'] = 0x326E; + t['kiyeokaparenkorean'] = 0x320E; + t['kiyeokcirclekorean'] = 0x3260; + t['kiyeokkorean'] = 0x3131; + t['kiyeokparenkorean'] = 0x3200; + t['kiyeoksioskorean'] = 0x3133; + t['kjecyrillic'] = 0x045C; + t['klinebelow'] = 0x1E35; + t['klsquare'] = 0x3398; + t['kmcubedsquare'] = 0x33A6; + t['kmonospace'] = 0xFF4B; + t['kmsquaredsquare'] = 0x33A2; + t['kohiragana'] = 0x3053; + t['kohmsquare'] = 0x33C0; + t['kokaithai'] = 0x0E01; + t['kokatakana'] = 0x30B3; + t['kokatakanahalfwidth'] = 0xFF7A; + t['kooposquare'] = 0x331E; + t['koppacyrillic'] = 0x0481; + t['koreanstandardsymbol'] = 0x327F; + t['koroniscmb'] = 0x0343; + t['kparen'] = 0x24A6; + t['kpasquare'] = 0x33AA; + t['ksicyrillic'] = 0x046F; + t['ktsquare'] = 0x33CF; + t['kturned'] = 0x029E; + t['kuhiragana'] = 0x304F; + t['kukatakana'] = 0x30AF; + t['kukatakanahalfwidth'] = 0xFF78; + t['kvsquare'] = 0x33B8; + t['kwsquare'] = 0x33BE; + t['l'] = 0x006C; + t['labengali'] = 0x09B2; + t['lacute'] = 0x013A; + t['ladeva'] = 0x0932; + t['lagujarati'] = 0x0AB2; + t['lagurmukhi'] = 0x0A32; + t['lakkhangyaothai'] = 0x0E45; + t['lamaleffinalarabic'] = 0xFEFC; + t['lamalefhamzaabovefinalarabic'] = 0xFEF8; + t['lamalefhamzaaboveisolatedarabic'] = 0xFEF7; + t['lamalefhamzabelowfinalarabic'] = 0xFEFA; + t['lamalefhamzabelowisolatedarabic'] = 0xFEF9; + t['lamalefisolatedarabic'] = 0xFEFB; + t['lamalefmaddaabovefinalarabic'] = 0xFEF6; + t['lamalefmaddaaboveisolatedarabic'] = 0xFEF5; + t['lamarabic'] = 0x0644; + t['lambda'] = 0x03BB; + t['lambdastroke'] = 0x019B; + t['lamed'] = 0x05DC; + t['lameddagesh'] = 0xFB3C; + t['lameddageshhebrew'] = 0xFB3C; + t['lamedhebrew'] = 0x05DC; + t['lamfinalarabic'] = 0xFEDE; + t['lamhahinitialarabic'] = 0xFCCA; + t['laminitialarabic'] = 0xFEDF; + t['lamjeeminitialarabic'] = 0xFCC9; + t['lamkhahinitialarabic'] = 0xFCCB; + t['lamlamhehisolatedarabic'] = 0xFDF2; + t['lammedialarabic'] = 0xFEE0; + t['lammeemhahinitialarabic'] = 0xFD88; + t['lammeeminitialarabic'] = 0xFCCC; + t['largecircle'] = 0x25EF; + t['lbar'] = 0x019A; + t['lbelt'] = 0x026C; + t['lbopomofo'] = 0x310C; + t['lcaron'] = 0x013E; + t['lcedilla'] = 0x013C; + t['lcircle'] = 0x24DB; + t['lcircumflexbelow'] = 0x1E3D; + t['lcommaaccent'] = 0x013C; + t['ldot'] = 0x0140; + t['ldotaccent'] = 0x0140; + t['ldotbelow'] = 0x1E37; + t['ldotbelowmacron'] = 0x1E39; + t['leftangleabovecmb'] = 0x031A; + t['lefttackbelowcmb'] = 0x0318; + t['less'] = 0x003C; + t['lessequal'] = 0x2264; + t['lessequalorgreater'] = 0x22DA; + t['lessmonospace'] = 0xFF1C; + t['lessorequivalent'] = 0x2272; + t['lessorgreater'] = 0x2276; + t['lessoverequal'] = 0x2266; + t['lesssmall'] = 0xFE64; + t['lezh'] = 0x026E; + t['lfblock'] = 0x258C; + t['lhookretroflex'] = 0x026D; + t['lira'] = 0x20A4; + t['liwnarmenian'] = 0x056C; + t['lj'] = 0x01C9; + t['ljecyrillic'] = 0x0459; + t['ll'] = 0xF6C0; + t['lladeva'] = 0x0933; + t['llagujarati'] = 0x0AB3; + t['llinebelow'] = 0x1E3B; + t['llladeva'] = 0x0934; + t['llvocalicbengali'] = 0x09E1; + t['llvocalicdeva'] = 0x0961; + t['llvocalicvowelsignbengali'] = 0x09E3; + t['llvocalicvowelsigndeva'] = 0x0963; + t['lmiddletilde'] = 0x026B; + t['lmonospace'] = 0xFF4C; + t['lmsquare'] = 0x33D0; + t['lochulathai'] = 0x0E2C; + t['logicaland'] = 0x2227; + t['logicalnot'] = 0x00AC; + t['logicalnotreversed'] = 0x2310; + t['logicalor'] = 0x2228; + t['lolingthai'] = 0x0E25; + t['longs'] = 0x017F; + t['lowlinecenterline'] = 0xFE4E; + t['lowlinecmb'] = 0x0332; + t['lowlinedashed'] = 0xFE4D; + t['lozenge'] = 0x25CA; + t['lparen'] = 0x24A7; + t['lslash'] = 0x0142; + t['lsquare'] = 0x2113; + t['lsuperior'] = 0xF6EE; + t['ltshade'] = 0x2591; + t['luthai'] = 0x0E26; + t['lvocalicbengali'] = 0x098C; + t['lvocalicdeva'] = 0x090C; + t['lvocalicvowelsignbengali'] = 0x09E2; + t['lvocalicvowelsigndeva'] = 0x0962; + t['lxsquare'] = 0x33D3; + t['m'] = 0x006D; + t['mabengali'] = 0x09AE; + t['macron'] = 0x00AF; + t['macronbelowcmb'] = 0x0331; + t['macroncmb'] = 0x0304; + t['macronlowmod'] = 0x02CD; + t['macronmonospace'] = 0xFFE3; + t['macute'] = 0x1E3F; + t['madeva'] = 0x092E; + t['magujarati'] = 0x0AAE; + t['magurmukhi'] = 0x0A2E; + t['mahapakhhebrew'] = 0x05A4; + t['mahapakhlefthebrew'] = 0x05A4; + t['mahiragana'] = 0x307E; + t['maichattawalowleftthai'] = 0xF895; + t['maichattawalowrightthai'] = 0xF894; + t['maichattawathai'] = 0x0E4B; + t['maichattawaupperleftthai'] = 0xF893; + t['maieklowleftthai'] = 0xF88C; + t['maieklowrightthai'] = 0xF88B; + t['maiekthai'] = 0x0E48; + t['maiekupperleftthai'] = 0xF88A; + t['maihanakatleftthai'] = 0xF884; + t['maihanakatthai'] = 0x0E31; + t['maitaikhuleftthai'] = 0xF889; + t['maitaikhuthai'] = 0x0E47; + t['maitholowleftthai'] = 0xF88F; + t['maitholowrightthai'] = 0xF88E; + t['maithothai'] = 0x0E49; + t['maithoupperleftthai'] = 0xF88D; + t['maitrilowleftthai'] = 0xF892; + t['maitrilowrightthai'] = 0xF891; + t['maitrithai'] = 0x0E4A; + t['maitriupperleftthai'] = 0xF890; + t['maiyamokthai'] = 0x0E46; + t['makatakana'] = 0x30DE; + t['makatakanahalfwidth'] = 0xFF8F; + t['male'] = 0x2642; + t['mansyonsquare'] = 0x3347; + t['maqafhebrew'] = 0x05BE; + t['mars'] = 0x2642; + t['masoracirclehebrew'] = 0x05AF; + t['masquare'] = 0x3383; + t['mbopomofo'] = 0x3107; + t['mbsquare'] = 0x33D4; + t['mcircle'] = 0x24DC; + t['mcubedsquare'] = 0x33A5; + t['mdotaccent'] = 0x1E41; + t['mdotbelow'] = 0x1E43; + t['meemarabic'] = 0x0645; + t['meemfinalarabic'] = 0xFEE2; + t['meeminitialarabic'] = 0xFEE3; + t['meemmedialarabic'] = 0xFEE4; + t['meemmeeminitialarabic'] = 0xFCD1; + t['meemmeemisolatedarabic'] = 0xFC48; + t['meetorusquare'] = 0x334D; + t['mehiragana'] = 0x3081; + t['meizierasquare'] = 0x337E; + t['mekatakana'] = 0x30E1; + t['mekatakanahalfwidth'] = 0xFF92; + t['mem'] = 0x05DE; + t['memdagesh'] = 0xFB3E; + t['memdageshhebrew'] = 0xFB3E; + t['memhebrew'] = 0x05DE; + t['menarmenian'] = 0x0574; + t['merkhahebrew'] = 0x05A5; + t['merkhakefulahebrew'] = 0x05A6; + t['merkhakefulalefthebrew'] = 0x05A6; + t['merkhalefthebrew'] = 0x05A5; + t['mhook'] = 0x0271; + t['mhzsquare'] = 0x3392; + t['middledotkatakanahalfwidth'] = 0xFF65; + t['middot'] = 0x00B7; + t['mieumacirclekorean'] = 0x3272; + t['mieumaparenkorean'] = 0x3212; + t['mieumcirclekorean'] = 0x3264; + t['mieumkorean'] = 0x3141; + t['mieumpansioskorean'] = 0x3170; + t['mieumparenkorean'] = 0x3204; + t['mieumpieupkorean'] = 0x316E; + t['mieumsioskorean'] = 0x316F; + t['mihiragana'] = 0x307F; + t['mikatakana'] = 0x30DF; + t['mikatakanahalfwidth'] = 0xFF90; + t['minus'] = 0x2212; + t['minusbelowcmb'] = 0x0320; + t['minuscircle'] = 0x2296; + t['minusmod'] = 0x02D7; + t['minusplus'] = 0x2213; + t['minute'] = 0x2032; + t['miribaarusquare'] = 0x334A; + t['mirisquare'] = 0x3349; + t['mlonglegturned'] = 0x0270; + t['mlsquare'] = 0x3396; + t['mmcubedsquare'] = 0x33A3; + t['mmonospace'] = 0xFF4D; + t['mmsquaredsquare'] = 0x339F; + t['mohiragana'] = 0x3082; + t['mohmsquare'] = 0x33C1; + t['mokatakana'] = 0x30E2; + t['mokatakanahalfwidth'] = 0xFF93; + t['molsquare'] = 0x33D6; + t['momathai'] = 0x0E21; + t['moverssquare'] = 0x33A7; + t['moverssquaredsquare'] = 0x33A8; + t['mparen'] = 0x24A8; + t['mpasquare'] = 0x33AB; + t['mssquare'] = 0x33B3; + t['msuperior'] = 0xF6EF; + t['mturned'] = 0x026F; + t['mu'] = 0x00B5; + t['mu1'] = 0x00B5; + t['muasquare'] = 0x3382; + t['muchgreater'] = 0x226B; + t['muchless'] = 0x226A; + t['mufsquare'] = 0x338C; + t['mugreek'] = 0x03BC; + t['mugsquare'] = 0x338D; + t['muhiragana'] = 0x3080; + t['mukatakana'] = 0x30E0; + t['mukatakanahalfwidth'] = 0xFF91; + t['mulsquare'] = 0x3395; + t['multiply'] = 0x00D7; + t['mumsquare'] = 0x339B; + t['munahhebrew'] = 0x05A3; + t['munahlefthebrew'] = 0x05A3; + t['musicalnote'] = 0x266A; + t['musicalnotedbl'] = 0x266B; + t['musicflatsign'] = 0x266D; + t['musicsharpsign'] = 0x266F; + t['mussquare'] = 0x33B2; + t['muvsquare'] = 0x33B6; + t['muwsquare'] = 0x33BC; + t['mvmegasquare'] = 0x33B9; + t['mvsquare'] = 0x33B7; + t['mwmegasquare'] = 0x33BF; + t['mwsquare'] = 0x33BD; + t['n'] = 0x006E; + t['nabengali'] = 0x09A8; + t['nabla'] = 0x2207; + t['nacute'] = 0x0144; + t['nadeva'] = 0x0928; + t['nagujarati'] = 0x0AA8; + t['nagurmukhi'] = 0x0A28; + t['nahiragana'] = 0x306A; + t['nakatakana'] = 0x30CA; + t['nakatakanahalfwidth'] = 0xFF85; + t['napostrophe'] = 0x0149; + t['nasquare'] = 0x3381; + t['nbopomofo'] = 0x310B; + t['nbspace'] = 0x00A0; + t['ncaron'] = 0x0148; + t['ncedilla'] = 0x0146; + t['ncircle'] = 0x24DD; + t['ncircumflexbelow'] = 0x1E4B; + t['ncommaaccent'] = 0x0146; + t['ndotaccent'] = 0x1E45; + t['ndotbelow'] = 0x1E47; + t['nehiragana'] = 0x306D; + t['nekatakana'] = 0x30CD; + t['nekatakanahalfwidth'] = 0xFF88; + t['newsheqelsign'] = 0x20AA; + t['nfsquare'] = 0x338B; + t['ngabengali'] = 0x0999; + t['ngadeva'] = 0x0919; + t['ngagujarati'] = 0x0A99; + t['ngagurmukhi'] = 0x0A19; + t['ngonguthai'] = 0x0E07; + t['nhiragana'] = 0x3093; + t['nhookleft'] = 0x0272; + t['nhookretroflex'] = 0x0273; + t['nieunacirclekorean'] = 0x326F; + t['nieunaparenkorean'] = 0x320F; + t['nieuncieuckorean'] = 0x3135; + t['nieuncirclekorean'] = 0x3261; + t['nieunhieuhkorean'] = 0x3136; + t['nieunkorean'] = 0x3134; + t['nieunpansioskorean'] = 0x3168; + t['nieunparenkorean'] = 0x3201; + t['nieunsioskorean'] = 0x3167; + t['nieuntikeutkorean'] = 0x3166; + t['nihiragana'] = 0x306B; + t['nikatakana'] = 0x30CB; + t['nikatakanahalfwidth'] = 0xFF86; + t['nikhahitleftthai'] = 0xF899; + t['nikhahitthai'] = 0x0E4D; + t['nine'] = 0x0039; + t['ninearabic'] = 0x0669; + t['ninebengali'] = 0x09EF; + t['ninecircle'] = 0x2468; + t['ninecircleinversesansserif'] = 0x2792; + t['ninedeva'] = 0x096F; + t['ninegujarati'] = 0x0AEF; + t['ninegurmukhi'] = 0x0A6F; + t['ninehackarabic'] = 0x0669; + t['ninehangzhou'] = 0x3029; + t['nineideographicparen'] = 0x3228; + t['nineinferior'] = 0x2089; + t['ninemonospace'] = 0xFF19; + t['nineoldstyle'] = 0xF739; + t['nineparen'] = 0x247C; + t['nineperiod'] = 0x2490; + t['ninepersian'] = 0x06F9; + t['nineroman'] = 0x2178; + t['ninesuperior'] = 0x2079; + t['nineteencircle'] = 0x2472; + t['nineteenparen'] = 0x2486; + t['nineteenperiod'] = 0x249A; + t['ninethai'] = 0x0E59; + t['nj'] = 0x01CC; + t['njecyrillic'] = 0x045A; + t['nkatakana'] = 0x30F3; + t['nkatakanahalfwidth'] = 0xFF9D; + t['nlegrightlong'] = 0x019E; + t['nlinebelow'] = 0x1E49; + t['nmonospace'] = 0xFF4E; + t['nmsquare'] = 0x339A; + t['nnabengali'] = 0x09A3; + t['nnadeva'] = 0x0923; + t['nnagujarati'] = 0x0AA3; + t['nnagurmukhi'] = 0x0A23; + t['nnnadeva'] = 0x0929; + t['nohiragana'] = 0x306E; + t['nokatakana'] = 0x30CE; + t['nokatakanahalfwidth'] = 0xFF89; + t['nonbreakingspace'] = 0x00A0; + t['nonenthai'] = 0x0E13; + t['nonuthai'] = 0x0E19; + t['noonarabic'] = 0x0646; + t['noonfinalarabic'] = 0xFEE6; + t['noonghunnaarabic'] = 0x06BA; + t['noonghunnafinalarabic'] = 0xFB9F; + t['nooninitialarabic'] = 0xFEE7; + t['noonjeeminitialarabic'] = 0xFCD2; + t['noonjeemisolatedarabic'] = 0xFC4B; + t['noonmedialarabic'] = 0xFEE8; + t['noonmeeminitialarabic'] = 0xFCD5; + t['noonmeemisolatedarabic'] = 0xFC4E; + t['noonnoonfinalarabic'] = 0xFC8D; + t['notcontains'] = 0x220C; + t['notelement'] = 0x2209; + t['notelementof'] = 0x2209; + t['notequal'] = 0x2260; + t['notgreater'] = 0x226F; + t['notgreaternorequal'] = 0x2271; + t['notgreaternorless'] = 0x2279; + t['notidentical'] = 0x2262; + t['notless'] = 0x226E; + t['notlessnorequal'] = 0x2270; + t['notparallel'] = 0x2226; + t['notprecedes'] = 0x2280; + t['notsubset'] = 0x2284; + t['notsucceeds'] = 0x2281; + t['notsuperset'] = 0x2285; + t['nowarmenian'] = 0x0576; + t['nparen'] = 0x24A9; + t['nssquare'] = 0x33B1; + t['nsuperior'] = 0x207F; + t['ntilde'] = 0x00F1; + t['nu'] = 0x03BD; + t['nuhiragana'] = 0x306C; + t['nukatakana'] = 0x30CC; + t['nukatakanahalfwidth'] = 0xFF87; + t['nuktabengali'] = 0x09BC; + t['nuktadeva'] = 0x093C; + t['nuktagujarati'] = 0x0ABC; + t['nuktagurmukhi'] = 0x0A3C; + t['numbersign'] = 0x0023; + t['numbersignmonospace'] = 0xFF03; + t['numbersignsmall'] = 0xFE5F; + t['numeralsigngreek'] = 0x0374; + t['numeralsignlowergreek'] = 0x0375; + t['numero'] = 0x2116; + t['nun'] = 0x05E0; + t['nundagesh'] = 0xFB40; + t['nundageshhebrew'] = 0xFB40; + t['nunhebrew'] = 0x05E0; + t['nvsquare'] = 0x33B5; + t['nwsquare'] = 0x33BB; + t['nyabengali'] = 0x099E; + t['nyadeva'] = 0x091E; + t['nyagujarati'] = 0x0A9E; + t['nyagurmukhi'] = 0x0A1E; + t['o'] = 0x006F; + t['oacute'] = 0x00F3; + t['oangthai'] = 0x0E2D; + t['obarred'] = 0x0275; + t['obarredcyrillic'] = 0x04E9; + t['obarreddieresiscyrillic'] = 0x04EB; + t['obengali'] = 0x0993; + t['obopomofo'] = 0x311B; + t['obreve'] = 0x014F; + t['ocandradeva'] = 0x0911; + t['ocandragujarati'] = 0x0A91; + t['ocandravowelsigndeva'] = 0x0949; + t['ocandravowelsigngujarati'] = 0x0AC9; + t['ocaron'] = 0x01D2; + t['ocircle'] = 0x24DE; + t['ocircumflex'] = 0x00F4; + t['ocircumflexacute'] = 0x1ED1; + t['ocircumflexdotbelow'] = 0x1ED9; + t['ocircumflexgrave'] = 0x1ED3; + t['ocircumflexhookabove'] = 0x1ED5; + t['ocircumflextilde'] = 0x1ED7; + t['ocyrillic'] = 0x043E; + t['odblacute'] = 0x0151; + t['odblgrave'] = 0x020D; + t['odeva'] = 0x0913; + t['odieresis'] = 0x00F6; + t['odieresiscyrillic'] = 0x04E7; + t['odotbelow'] = 0x1ECD; + t['oe'] = 0x0153; + t['oekorean'] = 0x315A; + t['ogonek'] = 0x02DB; + t['ogonekcmb'] = 0x0328; + t['ograve'] = 0x00F2; + t['ogujarati'] = 0x0A93; + t['oharmenian'] = 0x0585; + t['ohiragana'] = 0x304A; + t['ohookabove'] = 0x1ECF; + t['ohorn'] = 0x01A1; + t['ohornacute'] = 0x1EDB; + t['ohorndotbelow'] = 0x1EE3; + t['ohorngrave'] = 0x1EDD; + t['ohornhookabove'] = 0x1EDF; + t['ohorntilde'] = 0x1EE1; + t['ohungarumlaut'] = 0x0151; + t['oi'] = 0x01A3; + t['oinvertedbreve'] = 0x020F; + t['okatakana'] = 0x30AA; + t['okatakanahalfwidth'] = 0xFF75; + t['okorean'] = 0x3157; + t['olehebrew'] = 0x05AB; + t['omacron'] = 0x014D; + t['omacronacute'] = 0x1E53; + t['omacrongrave'] = 0x1E51; + t['omdeva'] = 0x0950; + t['omega'] = 0x03C9; + t['omega1'] = 0x03D6; + t['omegacyrillic'] = 0x0461; + t['omegalatinclosed'] = 0x0277; + t['omegaroundcyrillic'] = 0x047B; + t['omegatitlocyrillic'] = 0x047D; + t['omegatonos'] = 0x03CE; + t['omgujarati'] = 0x0AD0; + t['omicron'] = 0x03BF; + t['omicrontonos'] = 0x03CC; + t['omonospace'] = 0xFF4F; + t['one'] = 0x0031; + t['onearabic'] = 0x0661; + t['onebengali'] = 0x09E7; + t['onecircle'] = 0x2460; + t['onecircleinversesansserif'] = 0x278A; + t['onedeva'] = 0x0967; + t['onedotenleader'] = 0x2024; + t['oneeighth'] = 0x215B; + t['onefitted'] = 0xF6DC; + t['onegujarati'] = 0x0AE7; + t['onegurmukhi'] = 0x0A67; + t['onehackarabic'] = 0x0661; + t['onehalf'] = 0x00BD; + t['onehangzhou'] = 0x3021; + t['oneideographicparen'] = 0x3220; + t['oneinferior'] = 0x2081; + t['onemonospace'] = 0xFF11; + t['onenumeratorbengali'] = 0x09F4; + t['oneoldstyle'] = 0xF731; + t['oneparen'] = 0x2474; + t['oneperiod'] = 0x2488; + t['onepersian'] = 0x06F1; + t['onequarter'] = 0x00BC; + t['oneroman'] = 0x2170; + t['onesuperior'] = 0x00B9; + t['onethai'] = 0x0E51; + t['onethird'] = 0x2153; + t['oogonek'] = 0x01EB; + t['oogonekmacron'] = 0x01ED; + t['oogurmukhi'] = 0x0A13; + t['oomatragurmukhi'] = 0x0A4B; + t['oopen'] = 0x0254; + t['oparen'] = 0x24AA; + t['openbullet'] = 0x25E6; + t['option'] = 0x2325; + t['ordfeminine'] = 0x00AA; + t['ordmasculine'] = 0x00BA; + t['orthogonal'] = 0x221F; + t['oshortdeva'] = 0x0912; + t['oshortvowelsigndeva'] = 0x094A; + t['oslash'] = 0x00F8; + t['oslashacute'] = 0x01FF; + t['osmallhiragana'] = 0x3049; + t['osmallkatakana'] = 0x30A9; + t['osmallkatakanahalfwidth'] = 0xFF6B; + t['ostrokeacute'] = 0x01FF; + t['osuperior'] = 0xF6F0; + t['otcyrillic'] = 0x047F; + t['otilde'] = 0x00F5; + t['otildeacute'] = 0x1E4D; + t['otildedieresis'] = 0x1E4F; + t['oubopomofo'] = 0x3121; + t['overline'] = 0x203E; + t['overlinecenterline'] = 0xFE4A; + t['overlinecmb'] = 0x0305; + t['overlinedashed'] = 0xFE49; + t['overlinedblwavy'] = 0xFE4C; + t['overlinewavy'] = 0xFE4B; + t['overscore'] = 0x00AF; + t['ovowelsignbengali'] = 0x09CB; + t['ovowelsigndeva'] = 0x094B; + t['ovowelsigngujarati'] = 0x0ACB; + t['p'] = 0x0070; + t['paampssquare'] = 0x3380; + t['paasentosquare'] = 0x332B; + t['pabengali'] = 0x09AA; + t['pacute'] = 0x1E55; + t['padeva'] = 0x092A; + t['pagedown'] = 0x21DF; + t['pageup'] = 0x21DE; + t['pagujarati'] = 0x0AAA; + t['pagurmukhi'] = 0x0A2A; + t['pahiragana'] = 0x3071; + t['paiyannoithai'] = 0x0E2F; + t['pakatakana'] = 0x30D1; + t['palatalizationcyrilliccmb'] = 0x0484; + t['palochkacyrillic'] = 0x04C0; + t['pansioskorean'] = 0x317F; + t['paragraph'] = 0x00B6; + t['parallel'] = 0x2225; + t['parenleft'] = 0x0028; + t['parenleftaltonearabic'] = 0xFD3E; + t['parenleftbt'] = 0xF8ED; + t['parenleftex'] = 0xF8EC; + t['parenleftinferior'] = 0x208D; + t['parenleftmonospace'] = 0xFF08; + t['parenleftsmall'] = 0xFE59; + t['parenleftsuperior'] = 0x207D; + t['parenlefttp'] = 0xF8EB; + t['parenleftvertical'] = 0xFE35; + t['parenright'] = 0x0029; + t['parenrightaltonearabic'] = 0xFD3F; + t['parenrightbt'] = 0xF8F8; + t['parenrightex'] = 0xF8F7; + t['parenrightinferior'] = 0x208E; + t['parenrightmonospace'] = 0xFF09; + t['parenrightsmall'] = 0xFE5A; + t['parenrightsuperior'] = 0x207E; + t['parenrighttp'] = 0xF8F6; + t['parenrightvertical'] = 0xFE36; + t['partialdiff'] = 0x2202; + t['paseqhebrew'] = 0x05C0; + t['pashtahebrew'] = 0x0599; + t['pasquare'] = 0x33A9; + t['patah'] = 0x05B7; + t['patah11'] = 0x05B7; + t['patah1d'] = 0x05B7; + t['patah2a'] = 0x05B7; + t['patahhebrew'] = 0x05B7; + t['patahnarrowhebrew'] = 0x05B7; + t['patahquarterhebrew'] = 0x05B7; + t['patahwidehebrew'] = 0x05B7; + t['pazerhebrew'] = 0x05A1; + t['pbopomofo'] = 0x3106; + t['pcircle'] = 0x24DF; + t['pdotaccent'] = 0x1E57; + t['pe'] = 0x05E4; + t['pecyrillic'] = 0x043F; + t['pedagesh'] = 0xFB44; + t['pedageshhebrew'] = 0xFB44; + t['peezisquare'] = 0x333B; + t['pefinaldageshhebrew'] = 0xFB43; + t['peharabic'] = 0x067E; + t['peharmenian'] = 0x057A; + t['pehebrew'] = 0x05E4; + t['pehfinalarabic'] = 0xFB57; + t['pehinitialarabic'] = 0xFB58; + t['pehiragana'] = 0x307A; + t['pehmedialarabic'] = 0xFB59; + t['pekatakana'] = 0x30DA; + t['pemiddlehookcyrillic'] = 0x04A7; + t['perafehebrew'] = 0xFB4E; + t['percent'] = 0x0025; + t['percentarabic'] = 0x066A; + t['percentmonospace'] = 0xFF05; + t['percentsmall'] = 0xFE6A; + t['period'] = 0x002E; + t['periodarmenian'] = 0x0589; + t['periodcentered'] = 0x00B7; + t['periodhalfwidth'] = 0xFF61; + t['periodinferior'] = 0xF6E7; + t['periodmonospace'] = 0xFF0E; + t['periodsmall'] = 0xFE52; + t['periodsuperior'] = 0xF6E8; + t['perispomenigreekcmb'] = 0x0342; + t['perpendicular'] = 0x22A5; + t['perthousand'] = 0x2030; + t['peseta'] = 0x20A7; + t['pfsquare'] = 0x338A; + t['phabengali'] = 0x09AB; + t['phadeva'] = 0x092B; + t['phagujarati'] = 0x0AAB; + t['phagurmukhi'] = 0x0A2B; + t['phi'] = 0x03C6; + t['phi1'] = 0x03D5; + t['phieuphacirclekorean'] = 0x327A; + t['phieuphaparenkorean'] = 0x321A; + t['phieuphcirclekorean'] = 0x326C; + t['phieuphkorean'] = 0x314D; + t['phieuphparenkorean'] = 0x320C; + t['philatin'] = 0x0278; + t['phinthuthai'] = 0x0E3A; + t['phisymbolgreek'] = 0x03D5; + t['phook'] = 0x01A5; + t['phophanthai'] = 0x0E1E; + t['phophungthai'] = 0x0E1C; + t['phosamphaothai'] = 0x0E20; + t['pi'] = 0x03C0; + t['pieupacirclekorean'] = 0x3273; + t['pieupaparenkorean'] = 0x3213; + t['pieupcieuckorean'] = 0x3176; + t['pieupcirclekorean'] = 0x3265; + t['pieupkiyeokkorean'] = 0x3172; + t['pieupkorean'] = 0x3142; + t['pieupparenkorean'] = 0x3205; + t['pieupsioskiyeokkorean'] = 0x3174; + t['pieupsioskorean'] = 0x3144; + t['pieupsiostikeutkorean'] = 0x3175; + t['pieupthieuthkorean'] = 0x3177; + t['pieuptikeutkorean'] = 0x3173; + t['pihiragana'] = 0x3074; + t['pikatakana'] = 0x30D4; + t['pisymbolgreek'] = 0x03D6; + t['piwrarmenian'] = 0x0583; + t['plus'] = 0x002B; + t['plusbelowcmb'] = 0x031F; + t['pluscircle'] = 0x2295; + t['plusminus'] = 0x00B1; + t['plusmod'] = 0x02D6; + t['plusmonospace'] = 0xFF0B; + t['plussmall'] = 0xFE62; + t['plussuperior'] = 0x207A; + t['pmonospace'] = 0xFF50; + t['pmsquare'] = 0x33D8; + t['pohiragana'] = 0x307D; + t['pointingindexdownwhite'] = 0x261F; + t['pointingindexleftwhite'] = 0x261C; + t['pointingindexrightwhite'] = 0x261E; + t['pointingindexupwhite'] = 0x261D; + t['pokatakana'] = 0x30DD; + t['poplathai'] = 0x0E1B; + t['postalmark'] = 0x3012; + t['postalmarkface'] = 0x3020; + t['pparen'] = 0x24AB; + t['precedes'] = 0x227A; + t['prescription'] = 0x211E; + t['primemod'] = 0x02B9; + t['primereversed'] = 0x2035; + t['product'] = 0x220F; + t['projective'] = 0x2305; + t['prolongedkana'] = 0x30FC; + t['propellor'] = 0x2318; + t['propersubset'] = 0x2282; + t['propersuperset'] = 0x2283; + t['proportion'] = 0x2237; + t['proportional'] = 0x221D; + t['psi'] = 0x03C8; + t['psicyrillic'] = 0x0471; + t['psilipneumatacyrilliccmb'] = 0x0486; + t['pssquare'] = 0x33B0; + t['puhiragana'] = 0x3077; + t['pukatakana'] = 0x30D7; + t['pvsquare'] = 0x33B4; + t['pwsquare'] = 0x33BA; + t['q'] = 0x0071; + t['qadeva'] = 0x0958; + t['qadmahebrew'] = 0x05A8; + t['qafarabic'] = 0x0642; + t['qaffinalarabic'] = 0xFED6; + t['qafinitialarabic'] = 0xFED7; + t['qafmedialarabic'] = 0xFED8; + t['qamats'] = 0x05B8; + t['qamats10'] = 0x05B8; + t['qamats1a'] = 0x05B8; + t['qamats1c'] = 0x05B8; + t['qamats27'] = 0x05B8; + t['qamats29'] = 0x05B8; + t['qamats33'] = 0x05B8; + t['qamatsde'] = 0x05B8; + t['qamatshebrew'] = 0x05B8; + t['qamatsnarrowhebrew'] = 0x05B8; + t['qamatsqatanhebrew'] = 0x05B8; + t['qamatsqatannarrowhebrew'] = 0x05B8; + t['qamatsqatanquarterhebrew'] = 0x05B8; + t['qamatsqatanwidehebrew'] = 0x05B8; + t['qamatsquarterhebrew'] = 0x05B8; + t['qamatswidehebrew'] = 0x05B8; + t['qarneyparahebrew'] = 0x059F; + t['qbopomofo'] = 0x3111; + t['qcircle'] = 0x24E0; + t['qhook'] = 0x02A0; + t['qmonospace'] = 0xFF51; + t['qof'] = 0x05E7; + t['qofdagesh'] = 0xFB47; + t['qofdageshhebrew'] = 0xFB47; + t['qofhebrew'] = 0x05E7; + t['qparen'] = 0x24AC; + t['quarternote'] = 0x2669; + t['qubuts'] = 0x05BB; + t['qubuts18'] = 0x05BB; + t['qubuts25'] = 0x05BB; + t['qubuts31'] = 0x05BB; + t['qubutshebrew'] = 0x05BB; + t['qubutsnarrowhebrew'] = 0x05BB; + t['qubutsquarterhebrew'] = 0x05BB; + t['qubutswidehebrew'] = 0x05BB; + t['question'] = 0x003F; + t['questionarabic'] = 0x061F; + t['questionarmenian'] = 0x055E; + t['questiondown'] = 0x00BF; + t['questiondownsmall'] = 0xF7BF; + t['questiongreek'] = 0x037E; + t['questionmonospace'] = 0xFF1F; + t['questionsmall'] = 0xF73F; + t['quotedbl'] = 0x0022; + t['quotedblbase'] = 0x201E; + t['quotedblleft'] = 0x201C; + t['quotedblmonospace'] = 0xFF02; + t['quotedblprime'] = 0x301E; + t['quotedblprimereversed'] = 0x301D; + t['quotedblright'] = 0x201D; + t['quoteleft'] = 0x2018; + t['quoteleftreversed'] = 0x201B; + t['quotereversed'] = 0x201B; + t['quoteright'] = 0x2019; + t['quoterightn'] = 0x0149; + t['quotesinglbase'] = 0x201A; + t['quotesingle'] = 0x0027; + t['quotesinglemonospace'] = 0xFF07; + t['r'] = 0x0072; + t['raarmenian'] = 0x057C; + t['rabengali'] = 0x09B0; + t['racute'] = 0x0155; + t['radeva'] = 0x0930; + t['radical'] = 0x221A; + t['radicalex'] = 0xF8E5; + t['radoverssquare'] = 0x33AE; + t['radoverssquaredsquare'] = 0x33AF; + t['radsquare'] = 0x33AD; + t['rafe'] = 0x05BF; + t['rafehebrew'] = 0x05BF; + t['ragujarati'] = 0x0AB0; + t['ragurmukhi'] = 0x0A30; + t['rahiragana'] = 0x3089; + t['rakatakana'] = 0x30E9; + t['rakatakanahalfwidth'] = 0xFF97; + t['ralowerdiagonalbengali'] = 0x09F1; + t['ramiddlediagonalbengali'] = 0x09F0; + t['ramshorn'] = 0x0264; + t['ratio'] = 0x2236; + t['rbopomofo'] = 0x3116; + t['rcaron'] = 0x0159; + t['rcedilla'] = 0x0157; + t['rcircle'] = 0x24E1; + t['rcommaaccent'] = 0x0157; + t['rdblgrave'] = 0x0211; + t['rdotaccent'] = 0x1E59; + t['rdotbelow'] = 0x1E5B; + t['rdotbelowmacron'] = 0x1E5D; + t['referencemark'] = 0x203B; + t['reflexsubset'] = 0x2286; + t['reflexsuperset'] = 0x2287; + t['registered'] = 0x00AE; + t['registersans'] = 0xF8E8; + t['registerserif'] = 0xF6DA; + t['reharabic'] = 0x0631; + t['reharmenian'] = 0x0580; + t['rehfinalarabic'] = 0xFEAE; + t['rehiragana'] = 0x308C; + t['rekatakana'] = 0x30EC; + t['rekatakanahalfwidth'] = 0xFF9A; + t['resh'] = 0x05E8; + t['reshdageshhebrew'] = 0xFB48; + t['reshhebrew'] = 0x05E8; + t['reversedtilde'] = 0x223D; + t['reviahebrew'] = 0x0597; + t['reviamugrashhebrew'] = 0x0597; + t['revlogicalnot'] = 0x2310; + t['rfishhook'] = 0x027E; + t['rfishhookreversed'] = 0x027F; + t['rhabengali'] = 0x09DD; + t['rhadeva'] = 0x095D; + t['rho'] = 0x03C1; + t['rhook'] = 0x027D; + t['rhookturned'] = 0x027B; + t['rhookturnedsuperior'] = 0x02B5; + t['rhosymbolgreek'] = 0x03F1; + t['rhotichookmod'] = 0x02DE; + t['rieulacirclekorean'] = 0x3271; + t['rieulaparenkorean'] = 0x3211; + t['rieulcirclekorean'] = 0x3263; + t['rieulhieuhkorean'] = 0x3140; + t['rieulkiyeokkorean'] = 0x313A; + t['rieulkiyeoksioskorean'] = 0x3169; + t['rieulkorean'] = 0x3139; + t['rieulmieumkorean'] = 0x313B; + t['rieulpansioskorean'] = 0x316C; + t['rieulparenkorean'] = 0x3203; + t['rieulphieuphkorean'] = 0x313F; + t['rieulpieupkorean'] = 0x313C; + t['rieulpieupsioskorean'] = 0x316B; + t['rieulsioskorean'] = 0x313D; + t['rieulthieuthkorean'] = 0x313E; + t['rieultikeutkorean'] = 0x316A; + t['rieulyeorinhieuhkorean'] = 0x316D; + t['rightangle'] = 0x221F; + t['righttackbelowcmb'] = 0x0319; + t['righttriangle'] = 0x22BF; + t['rihiragana'] = 0x308A; + t['rikatakana'] = 0x30EA; + t['rikatakanahalfwidth'] = 0xFF98; + t['ring'] = 0x02DA; + t['ringbelowcmb'] = 0x0325; + t['ringcmb'] = 0x030A; + t['ringhalfleft'] = 0x02BF; + t['ringhalfleftarmenian'] = 0x0559; + t['ringhalfleftbelowcmb'] = 0x031C; + t['ringhalfleftcentered'] = 0x02D3; + t['ringhalfright'] = 0x02BE; + t['ringhalfrightbelowcmb'] = 0x0339; + t['ringhalfrightcentered'] = 0x02D2; + t['rinvertedbreve'] = 0x0213; + t['rittorusquare'] = 0x3351; + t['rlinebelow'] = 0x1E5F; + t['rlongleg'] = 0x027C; + t['rlonglegturned'] = 0x027A; + t['rmonospace'] = 0xFF52; + t['rohiragana'] = 0x308D; + t['rokatakana'] = 0x30ED; + t['rokatakanahalfwidth'] = 0xFF9B; + t['roruathai'] = 0x0E23; + t['rparen'] = 0x24AD; + t['rrabengali'] = 0x09DC; + t['rradeva'] = 0x0931; + t['rragurmukhi'] = 0x0A5C; + t['rreharabic'] = 0x0691; + t['rrehfinalarabic'] = 0xFB8D; + t['rrvocalicbengali'] = 0x09E0; + t['rrvocalicdeva'] = 0x0960; + t['rrvocalicgujarati'] = 0x0AE0; + t['rrvocalicvowelsignbengali'] = 0x09C4; + t['rrvocalicvowelsigndeva'] = 0x0944; + t['rrvocalicvowelsigngujarati'] = 0x0AC4; + t['rsuperior'] = 0xF6F1; + t['rtblock'] = 0x2590; + t['rturned'] = 0x0279; + t['rturnedsuperior'] = 0x02B4; + t['ruhiragana'] = 0x308B; + t['rukatakana'] = 0x30EB; + t['rukatakanahalfwidth'] = 0xFF99; + t['rupeemarkbengali'] = 0x09F2; + t['rupeesignbengali'] = 0x09F3; + t['rupiah'] = 0xF6DD; + t['ruthai'] = 0x0E24; + t['rvocalicbengali'] = 0x098B; + t['rvocalicdeva'] = 0x090B; + t['rvocalicgujarati'] = 0x0A8B; + t['rvocalicvowelsignbengali'] = 0x09C3; + t['rvocalicvowelsigndeva'] = 0x0943; + t['rvocalicvowelsigngujarati'] = 0x0AC3; + t['s'] = 0x0073; + t['sabengali'] = 0x09B8; + t['sacute'] = 0x015B; + t['sacutedotaccent'] = 0x1E65; + t['sadarabic'] = 0x0635; + t['sadeva'] = 0x0938; + t['sadfinalarabic'] = 0xFEBA; + t['sadinitialarabic'] = 0xFEBB; + t['sadmedialarabic'] = 0xFEBC; + t['sagujarati'] = 0x0AB8; + t['sagurmukhi'] = 0x0A38; + t['sahiragana'] = 0x3055; + t['sakatakana'] = 0x30B5; + t['sakatakanahalfwidth'] = 0xFF7B; + t['sallallahoualayhewasallamarabic'] = 0xFDFA; + t['samekh'] = 0x05E1; + t['samekhdagesh'] = 0xFB41; + t['samekhdageshhebrew'] = 0xFB41; + t['samekhhebrew'] = 0x05E1; + t['saraaathai'] = 0x0E32; + t['saraaethai'] = 0x0E41; + t['saraaimaimalaithai'] = 0x0E44; + t['saraaimaimuanthai'] = 0x0E43; + t['saraamthai'] = 0x0E33; + t['saraathai'] = 0x0E30; + t['saraethai'] = 0x0E40; + t['saraiileftthai'] = 0xF886; + t['saraiithai'] = 0x0E35; + t['saraileftthai'] = 0xF885; + t['saraithai'] = 0x0E34; + t['saraothai'] = 0x0E42; + t['saraueeleftthai'] = 0xF888; + t['saraueethai'] = 0x0E37; + t['saraueleftthai'] = 0xF887; + t['sarauethai'] = 0x0E36; + t['sarauthai'] = 0x0E38; + t['sarauuthai'] = 0x0E39; + t['sbopomofo'] = 0x3119; + t['scaron'] = 0x0161; + t['scarondotaccent'] = 0x1E67; + t['scedilla'] = 0x015F; + t['schwa'] = 0x0259; + t['schwacyrillic'] = 0x04D9; + t['schwadieresiscyrillic'] = 0x04DB; + t['schwahook'] = 0x025A; + t['scircle'] = 0x24E2; + t['scircumflex'] = 0x015D; + t['scommaaccent'] = 0x0219; + t['sdotaccent'] = 0x1E61; + t['sdotbelow'] = 0x1E63; + t['sdotbelowdotaccent'] = 0x1E69; + t['seagullbelowcmb'] = 0x033C; + t['second'] = 0x2033; + t['secondtonechinese'] = 0x02CA; + t['section'] = 0x00A7; + t['seenarabic'] = 0x0633; + t['seenfinalarabic'] = 0xFEB2; + t['seeninitialarabic'] = 0xFEB3; + t['seenmedialarabic'] = 0xFEB4; + t['segol'] = 0x05B6; + t['segol13'] = 0x05B6; + t['segol1f'] = 0x05B6; + t['segol2c'] = 0x05B6; + t['segolhebrew'] = 0x05B6; + t['segolnarrowhebrew'] = 0x05B6; + t['segolquarterhebrew'] = 0x05B6; + t['segoltahebrew'] = 0x0592; + t['segolwidehebrew'] = 0x05B6; + t['seharmenian'] = 0x057D; + t['sehiragana'] = 0x305B; + t['sekatakana'] = 0x30BB; + t['sekatakanahalfwidth'] = 0xFF7E; + t['semicolon'] = 0x003B; + t['semicolonarabic'] = 0x061B; + t['semicolonmonospace'] = 0xFF1B; + t['semicolonsmall'] = 0xFE54; + t['semivoicedmarkkana'] = 0x309C; + t['semivoicedmarkkanahalfwidth'] = 0xFF9F; + t['sentisquare'] = 0x3322; + t['sentosquare'] = 0x3323; + t['seven'] = 0x0037; + t['sevenarabic'] = 0x0667; + t['sevenbengali'] = 0x09ED; + t['sevencircle'] = 0x2466; + t['sevencircleinversesansserif'] = 0x2790; + t['sevendeva'] = 0x096D; + t['seveneighths'] = 0x215E; + t['sevengujarati'] = 0x0AED; + t['sevengurmukhi'] = 0x0A6D; + t['sevenhackarabic'] = 0x0667; + t['sevenhangzhou'] = 0x3027; + t['sevenideographicparen'] = 0x3226; + t['seveninferior'] = 0x2087; + t['sevenmonospace'] = 0xFF17; + t['sevenoldstyle'] = 0xF737; + t['sevenparen'] = 0x247A; + t['sevenperiod'] = 0x248E; + t['sevenpersian'] = 0x06F7; + t['sevenroman'] = 0x2176; + t['sevensuperior'] = 0x2077; + t['seventeencircle'] = 0x2470; + t['seventeenparen'] = 0x2484; + t['seventeenperiod'] = 0x2498; + t['seventhai'] = 0x0E57; + t['sfthyphen'] = 0x00AD; + t['shaarmenian'] = 0x0577; + t['shabengali'] = 0x09B6; + t['shacyrillic'] = 0x0448; + t['shaddaarabic'] = 0x0651; + t['shaddadammaarabic'] = 0xFC61; + t['shaddadammatanarabic'] = 0xFC5E; + t['shaddafathaarabic'] = 0xFC60; + t['shaddakasraarabic'] = 0xFC62; + t['shaddakasratanarabic'] = 0xFC5F; + t['shade'] = 0x2592; + t['shadedark'] = 0x2593; + t['shadelight'] = 0x2591; + t['shademedium'] = 0x2592; + t['shadeva'] = 0x0936; + t['shagujarati'] = 0x0AB6; + t['shagurmukhi'] = 0x0A36; + t['shalshelethebrew'] = 0x0593; + t['shbopomofo'] = 0x3115; + t['shchacyrillic'] = 0x0449; + t['sheenarabic'] = 0x0634; + t['sheenfinalarabic'] = 0xFEB6; + t['sheeninitialarabic'] = 0xFEB7; + t['sheenmedialarabic'] = 0xFEB8; + t['sheicoptic'] = 0x03E3; + t['sheqel'] = 0x20AA; + t['sheqelhebrew'] = 0x20AA; + t['sheva'] = 0x05B0; + t['sheva115'] = 0x05B0; + t['sheva15'] = 0x05B0; + t['sheva22'] = 0x05B0; + t['sheva2e'] = 0x05B0; + t['shevahebrew'] = 0x05B0; + t['shevanarrowhebrew'] = 0x05B0; + t['shevaquarterhebrew'] = 0x05B0; + t['shevawidehebrew'] = 0x05B0; + t['shhacyrillic'] = 0x04BB; + t['shimacoptic'] = 0x03ED; + t['shin'] = 0x05E9; + t['shindagesh'] = 0xFB49; + t['shindageshhebrew'] = 0xFB49; + t['shindageshshindot'] = 0xFB2C; + t['shindageshshindothebrew'] = 0xFB2C; + t['shindageshsindot'] = 0xFB2D; + t['shindageshsindothebrew'] = 0xFB2D; + t['shindothebrew'] = 0x05C1; + t['shinhebrew'] = 0x05E9; + t['shinshindot'] = 0xFB2A; + t['shinshindothebrew'] = 0xFB2A; + t['shinsindot'] = 0xFB2B; + t['shinsindothebrew'] = 0xFB2B; + t['shook'] = 0x0282; + t['sigma'] = 0x03C3; + t['sigma1'] = 0x03C2; + t['sigmafinal'] = 0x03C2; + t['sigmalunatesymbolgreek'] = 0x03F2; + t['sihiragana'] = 0x3057; + t['sikatakana'] = 0x30B7; + t['sikatakanahalfwidth'] = 0xFF7C; + t['siluqhebrew'] = 0x05BD; + t['siluqlefthebrew'] = 0x05BD; + t['similar'] = 0x223C; + t['sindothebrew'] = 0x05C2; + t['siosacirclekorean'] = 0x3274; + t['siosaparenkorean'] = 0x3214; + t['sioscieuckorean'] = 0x317E; + t['sioscirclekorean'] = 0x3266; + t['sioskiyeokkorean'] = 0x317A; + t['sioskorean'] = 0x3145; + t['siosnieunkorean'] = 0x317B; + t['siosparenkorean'] = 0x3206; + t['siospieupkorean'] = 0x317D; + t['siostikeutkorean'] = 0x317C; + t['six'] = 0x0036; + t['sixarabic'] = 0x0666; + t['sixbengali'] = 0x09EC; + t['sixcircle'] = 0x2465; + t['sixcircleinversesansserif'] = 0x278F; + t['sixdeva'] = 0x096C; + t['sixgujarati'] = 0x0AEC; + t['sixgurmukhi'] = 0x0A6C; + t['sixhackarabic'] = 0x0666; + t['sixhangzhou'] = 0x3026; + t['sixideographicparen'] = 0x3225; + t['sixinferior'] = 0x2086; + t['sixmonospace'] = 0xFF16; + t['sixoldstyle'] = 0xF736; + t['sixparen'] = 0x2479; + t['sixperiod'] = 0x248D; + t['sixpersian'] = 0x06F6; + t['sixroman'] = 0x2175; + t['sixsuperior'] = 0x2076; + t['sixteencircle'] = 0x246F; + t['sixteencurrencydenominatorbengali'] = 0x09F9; + t['sixteenparen'] = 0x2483; + t['sixteenperiod'] = 0x2497; + t['sixthai'] = 0x0E56; + t['slash'] = 0x002F; + t['slashmonospace'] = 0xFF0F; + t['slong'] = 0x017F; + t['slongdotaccent'] = 0x1E9B; + t['smileface'] = 0x263A; + t['smonospace'] = 0xFF53; + t['sofpasuqhebrew'] = 0x05C3; + t['softhyphen'] = 0x00AD; + t['softsigncyrillic'] = 0x044C; + t['sohiragana'] = 0x305D; + t['sokatakana'] = 0x30BD; + t['sokatakanahalfwidth'] = 0xFF7F; + t['soliduslongoverlaycmb'] = 0x0338; + t['solidusshortoverlaycmb'] = 0x0337; + t['sorusithai'] = 0x0E29; + t['sosalathai'] = 0x0E28; + t['sosothai'] = 0x0E0B; + t['sosuathai'] = 0x0E2A; + t['space'] = 0x0020; + t['spacehackarabic'] = 0x0020; + t['spade'] = 0x2660; + t['spadesuitblack'] = 0x2660; + t['spadesuitwhite'] = 0x2664; + t['sparen'] = 0x24AE; + t['squarebelowcmb'] = 0x033B; + t['squarecc'] = 0x33C4; + t['squarecm'] = 0x339D; + t['squarediagonalcrosshatchfill'] = 0x25A9; + t['squarehorizontalfill'] = 0x25A4; + t['squarekg'] = 0x338F; + t['squarekm'] = 0x339E; + t['squarekmcapital'] = 0x33CE; + t['squareln'] = 0x33D1; + t['squarelog'] = 0x33D2; + t['squaremg'] = 0x338E; + t['squaremil'] = 0x33D5; + t['squaremm'] = 0x339C; + t['squaremsquared'] = 0x33A1; + t['squareorthogonalcrosshatchfill'] = 0x25A6; + t['squareupperlefttolowerrightfill'] = 0x25A7; + t['squareupperrighttolowerleftfill'] = 0x25A8; + t['squareverticalfill'] = 0x25A5; + t['squarewhitewithsmallblack'] = 0x25A3; + t['srsquare'] = 0x33DB; + t['ssabengali'] = 0x09B7; + t['ssadeva'] = 0x0937; + t['ssagujarati'] = 0x0AB7; + t['ssangcieuckorean'] = 0x3149; + t['ssanghieuhkorean'] = 0x3185; + t['ssangieungkorean'] = 0x3180; + t['ssangkiyeokkorean'] = 0x3132; + t['ssangnieunkorean'] = 0x3165; + t['ssangpieupkorean'] = 0x3143; + t['ssangsioskorean'] = 0x3146; + t['ssangtikeutkorean'] = 0x3138; + t['ssuperior'] = 0xF6F2; + t['sterling'] = 0x00A3; + t['sterlingmonospace'] = 0xFFE1; + t['strokelongoverlaycmb'] = 0x0336; + t['strokeshortoverlaycmb'] = 0x0335; + t['subset'] = 0x2282; + t['subsetnotequal'] = 0x228A; + t['subsetorequal'] = 0x2286; + t['succeeds'] = 0x227B; + t['suchthat'] = 0x220B; + t['suhiragana'] = 0x3059; + t['sukatakana'] = 0x30B9; + t['sukatakanahalfwidth'] = 0xFF7D; + t['sukunarabic'] = 0x0652; + t['summation'] = 0x2211; + t['sun'] = 0x263C; + t['superset'] = 0x2283; + t['supersetnotequal'] = 0x228B; + t['supersetorequal'] = 0x2287; + t['svsquare'] = 0x33DC; + t['syouwaerasquare'] = 0x337C; + t['t'] = 0x0074; + t['tabengali'] = 0x09A4; + t['tackdown'] = 0x22A4; + t['tackleft'] = 0x22A3; + t['tadeva'] = 0x0924; + t['tagujarati'] = 0x0AA4; + t['tagurmukhi'] = 0x0A24; + t['taharabic'] = 0x0637; + t['tahfinalarabic'] = 0xFEC2; + t['tahinitialarabic'] = 0xFEC3; + t['tahiragana'] = 0x305F; + t['tahmedialarabic'] = 0xFEC4; + t['taisyouerasquare'] = 0x337D; + t['takatakana'] = 0x30BF; + t['takatakanahalfwidth'] = 0xFF80; + t['tatweelarabic'] = 0x0640; + t['tau'] = 0x03C4; + t['tav'] = 0x05EA; + t['tavdages'] = 0xFB4A; + t['tavdagesh'] = 0xFB4A; + t['tavdageshhebrew'] = 0xFB4A; + t['tavhebrew'] = 0x05EA; + t['tbar'] = 0x0167; + t['tbopomofo'] = 0x310A; + t['tcaron'] = 0x0165; + t['tccurl'] = 0x02A8; + t['tcedilla'] = 0x0163; + t['tcheharabic'] = 0x0686; + t['tchehfinalarabic'] = 0xFB7B; + t['tchehinitialarabic'] = 0xFB7C; + t['tchehmedialarabic'] = 0xFB7D; + t['tcircle'] = 0x24E3; + t['tcircumflexbelow'] = 0x1E71; + t['tcommaaccent'] = 0x0163; + t['tdieresis'] = 0x1E97; + t['tdotaccent'] = 0x1E6B; + t['tdotbelow'] = 0x1E6D; + t['tecyrillic'] = 0x0442; + t['tedescendercyrillic'] = 0x04AD; + t['teharabic'] = 0x062A; + t['tehfinalarabic'] = 0xFE96; + t['tehhahinitialarabic'] = 0xFCA2; + t['tehhahisolatedarabic'] = 0xFC0C; + t['tehinitialarabic'] = 0xFE97; + t['tehiragana'] = 0x3066; + t['tehjeeminitialarabic'] = 0xFCA1; + t['tehjeemisolatedarabic'] = 0xFC0B; + t['tehmarbutaarabic'] = 0x0629; + t['tehmarbutafinalarabic'] = 0xFE94; + t['tehmedialarabic'] = 0xFE98; + t['tehmeeminitialarabic'] = 0xFCA4; + t['tehmeemisolatedarabic'] = 0xFC0E; + t['tehnoonfinalarabic'] = 0xFC73; + t['tekatakana'] = 0x30C6; + t['tekatakanahalfwidth'] = 0xFF83; + t['telephone'] = 0x2121; + t['telephoneblack'] = 0x260E; + t['telishagedolahebrew'] = 0x05A0; + t['telishaqetanahebrew'] = 0x05A9; + t['tencircle'] = 0x2469; + t['tenideographicparen'] = 0x3229; + t['tenparen'] = 0x247D; + t['tenperiod'] = 0x2491; + t['tenroman'] = 0x2179; + t['tesh'] = 0x02A7; + t['tet'] = 0x05D8; + t['tetdagesh'] = 0xFB38; + t['tetdageshhebrew'] = 0xFB38; + t['tethebrew'] = 0x05D8; + t['tetsecyrillic'] = 0x04B5; + t['tevirhebrew'] = 0x059B; + t['tevirlefthebrew'] = 0x059B; + t['thabengali'] = 0x09A5; + t['thadeva'] = 0x0925; + t['thagujarati'] = 0x0AA5; + t['thagurmukhi'] = 0x0A25; + t['thalarabic'] = 0x0630; + t['thalfinalarabic'] = 0xFEAC; + t['thanthakhatlowleftthai'] = 0xF898; + t['thanthakhatlowrightthai'] = 0xF897; + t['thanthakhatthai'] = 0x0E4C; + t['thanthakhatupperleftthai'] = 0xF896; + t['theharabic'] = 0x062B; + t['thehfinalarabic'] = 0xFE9A; + t['thehinitialarabic'] = 0xFE9B; + t['thehmedialarabic'] = 0xFE9C; + t['thereexists'] = 0x2203; + t['therefore'] = 0x2234; + t['theta'] = 0x03B8; + t['theta1'] = 0x03D1; + t['thetasymbolgreek'] = 0x03D1; + t['thieuthacirclekorean'] = 0x3279; + t['thieuthaparenkorean'] = 0x3219; + t['thieuthcirclekorean'] = 0x326B; + t['thieuthkorean'] = 0x314C; + t['thieuthparenkorean'] = 0x320B; + t['thirteencircle'] = 0x246C; + t['thirteenparen'] = 0x2480; + t['thirteenperiod'] = 0x2494; + t['thonangmonthothai'] = 0x0E11; + t['thook'] = 0x01AD; + t['thophuthaothai'] = 0x0E12; + t['thorn'] = 0x00FE; + t['thothahanthai'] = 0x0E17; + t['thothanthai'] = 0x0E10; + t['thothongthai'] = 0x0E18; + t['thothungthai'] = 0x0E16; + t['thousandcyrillic'] = 0x0482; + t['thousandsseparatorarabic'] = 0x066C; + t['thousandsseparatorpersian'] = 0x066C; + t['three'] = 0x0033; + t['threearabic'] = 0x0663; + t['threebengali'] = 0x09E9; + t['threecircle'] = 0x2462; + t['threecircleinversesansserif'] = 0x278C; + t['threedeva'] = 0x0969; + t['threeeighths'] = 0x215C; + t['threegujarati'] = 0x0AE9; + t['threegurmukhi'] = 0x0A69; + t['threehackarabic'] = 0x0663; + t['threehangzhou'] = 0x3023; + t['threeideographicparen'] = 0x3222; + t['threeinferior'] = 0x2083; + t['threemonospace'] = 0xFF13; + t['threenumeratorbengali'] = 0x09F6; + t['threeoldstyle'] = 0xF733; + t['threeparen'] = 0x2476; + t['threeperiod'] = 0x248A; + t['threepersian'] = 0x06F3; + t['threequarters'] = 0x00BE; + t['threequartersemdash'] = 0xF6DE; + t['threeroman'] = 0x2172; + t['threesuperior'] = 0x00B3; + t['threethai'] = 0x0E53; + t['thzsquare'] = 0x3394; + t['tihiragana'] = 0x3061; + t['tikatakana'] = 0x30C1; + t['tikatakanahalfwidth'] = 0xFF81; + t['tikeutacirclekorean'] = 0x3270; + t['tikeutaparenkorean'] = 0x3210; + t['tikeutcirclekorean'] = 0x3262; + t['tikeutkorean'] = 0x3137; + t['tikeutparenkorean'] = 0x3202; + t['tilde'] = 0x02DC; + t['tildebelowcmb'] = 0x0330; + t['tildecmb'] = 0x0303; + t['tildecomb'] = 0x0303; + t['tildedoublecmb'] = 0x0360; + t['tildeoperator'] = 0x223C; + t['tildeoverlaycmb'] = 0x0334; + t['tildeverticalcmb'] = 0x033E; + t['timescircle'] = 0x2297; + t['tipehahebrew'] = 0x0596; + t['tipehalefthebrew'] = 0x0596; + t['tippigurmukhi'] = 0x0A70; + t['titlocyrilliccmb'] = 0x0483; + t['tiwnarmenian'] = 0x057F; + t['tlinebelow'] = 0x1E6F; + t['tmonospace'] = 0xFF54; + t['toarmenian'] = 0x0569; + t['tohiragana'] = 0x3068; + t['tokatakana'] = 0x30C8; + t['tokatakanahalfwidth'] = 0xFF84; + t['tonebarextrahighmod'] = 0x02E5; + t['tonebarextralowmod'] = 0x02E9; + t['tonebarhighmod'] = 0x02E6; + t['tonebarlowmod'] = 0x02E8; + t['tonebarmidmod'] = 0x02E7; + t['tonefive'] = 0x01BD; + t['tonesix'] = 0x0185; + t['tonetwo'] = 0x01A8; + t['tonos'] = 0x0384; + t['tonsquare'] = 0x3327; + t['topatakthai'] = 0x0E0F; + t['tortoiseshellbracketleft'] = 0x3014; + t['tortoiseshellbracketleftsmall'] = 0xFE5D; + t['tortoiseshellbracketleftvertical'] = 0xFE39; + t['tortoiseshellbracketright'] = 0x3015; + t['tortoiseshellbracketrightsmall'] = 0xFE5E; + t['tortoiseshellbracketrightvertical'] = 0xFE3A; + t['totaothai'] = 0x0E15; + t['tpalatalhook'] = 0x01AB; + t['tparen'] = 0x24AF; + t['trademark'] = 0x2122; + t['trademarksans'] = 0xF8EA; + t['trademarkserif'] = 0xF6DB; + t['tretroflexhook'] = 0x0288; + t['triagdn'] = 0x25BC; + t['triaglf'] = 0x25C4; + t['triagrt'] = 0x25BA; + t['triagup'] = 0x25B2; + t['ts'] = 0x02A6; + t['tsadi'] = 0x05E6; + t['tsadidagesh'] = 0xFB46; + t['tsadidageshhebrew'] = 0xFB46; + t['tsadihebrew'] = 0x05E6; + t['tsecyrillic'] = 0x0446; + t['tsere'] = 0x05B5; + t['tsere12'] = 0x05B5; + t['tsere1e'] = 0x05B5; + t['tsere2b'] = 0x05B5; + t['tserehebrew'] = 0x05B5; + t['tserenarrowhebrew'] = 0x05B5; + t['tserequarterhebrew'] = 0x05B5; + t['tserewidehebrew'] = 0x05B5; + t['tshecyrillic'] = 0x045B; + t['tsuperior'] = 0xF6F3; + t['ttabengali'] = 0x099F; + t['ttadeva'] = 0x091F; + t['ttagujarati'] = 0x0A9F; + t['ttagurmukhi'] = 0x0A1F; + t['tteharabic'] = 0x0679; + t['ttehfinalarabic'] = 0xFB67; + t['ttehinitialarabic'] = 0xFB68; + t['ttehmedialarabic'] = 0xFB69; + t['tthabengali'] = 0x09A0; + t['tthadeva'] = 0x0920; + t['tthagujarati'] = 0x0AA0; + t['tthagurmukhi'] = 0x0A20; + t['tturned'] = 0x0287; + t['tuhiragana'] = 0x3064; + t['tukatakana'] = 0x30C4; + t['tukatakanahalfwidth'] = 0xFF82; + t['tusmallhiragana'] = 0x3063; + t['tusmallkatakana'] = 0x30C3; + t['tusmallkatakanahalfwidth'] = 0xFF6F; + t['twelvecircle'] = 0x246B; + t['twelveparen'] = 0x247F; + t['twelveperiod'] = 0x2493; + t['twelveroman'] = 0x217B; + t['twentycircle'] = 0x2473; + t['twentyhangzhou'] = 0x5344; + t['twentyparen'] = 0x2487; + t['twentyperiod'] = 0x249B; + t['two'] = 0x0032; + t['twoarabic'] = 0x0662; + t['twobengali'] = 0x09E8; + t['twocircle'] = 0x2461; + t['twocircleinversesansserif'] = 0x278B; + t['twodeva'] = 0x0968; + t['twodotenleader'] = 0x2025; + t['twodotleader'] = 0x2025; + t['twodotleadervertical'] = 0xFE30; + t['twogujarati'] = 0x0AE8; + t['twogurmukhi'] = 0x0A68; + t['twohackarabic'] = 0x0662; + t['twohangzhou'] = 0x3022; + t['twoideographicparen'] = 0x3221; + t['twoinferior'] = 0x2082; + t['twomonospace'] = 0xFF12; + t['twonumeratorbengali'] = 0x09F5; + t['twooldstyle'] = 0xF732; + t['twoparen'] = 0x2475; + t['twoperiod'] = 0x2489; + t['twopersian'] = 0x06F2; + t['tworoman'] = 0x2171; + t['twostroke'] = 0x01BB; + t['twosuperior'] = 0x00B2; + t['twothai'] = 0x0E52; + t['twothirds'] = 0x2154; + t['u'] = 0x0075; + t['uacute'] = 0x00FA; + t['ubar'] = 0x0289; + t['ubengali'] = 0x0989; + t['ubopomofo'] = 0x3128; + t['ubreve'] = 0x016D; + t['ucaron'] = 0x01D4; + t['ucircle'] = 0x24E4; + t['ucircumflex'] = 0x00FB; + t['ucircumflexbelow'] = 0x1E77; + t['ucyrillic'] = 0x0443; + t['udattadeva'] = 0x0951; + t['udblacute'] = 0x0171; + t['udblgrave'] = 0x0215; + t['udeva'] = 0x0909; + t['udieresis'] = 0x00FC; + t['udieresisacute'] = 0x01D8; + t['udieresisbelow'] = 0x1E73; + t['udieresiscaron'] = 0x01DA; + t['udieresiscyrillic'] = 0x04F1; + t['udieresisgrave'] = 0x01DC; + t['udieresismacron'] = 0x01D6; + t['udotbelow'] = 0x1EE5; + t['ugrave'] = 0x00F9; + t['ugujarati'] = 0x0A89; + t['ugurmukhi'] = 0x0A09; + t['uhiragana'] = 0x3046; + t['uhookabove'] = 0x1EE7; + t['uhorn'] = 0x01B0; + t['uhornacute'] = 0x1EE9; + t['uhorndotbelow'] = 0x1EF1; + t['uhorngrave'] = 0x1EEB; + t['uhornhookabove'] = 0x1EED; + t['uhorntilde'] = 0x1EEF; + t['uhungarumlaut'] = 0x0171; + t['uhungarumlautcyrillic'] = 0x04F3; + t['uinvertedbreve'] = 0x0217; + t['ukatakana'] = 0x30A6; + t['ukatakanahalfwidth'] = 0xFF73; + t['ukcyrillic'] = 0x0479; + t['ukorean'] = 0x315C; + t['umacron'] = 0x016B; + t['umacroncyrillic'] = 0x04EF; + t['umacrondieresis'] = 0x1E7B; + t['umatragurmukhi'] = 0x0A41; + t['umonospace'] = 0xFF55; + t['underscore'] = 0x005F; + t['underscoredbl'] = 0x2017; + t['underscoremonospace'] = 0xFF3F; + t['underscorevertical'] = 0xFE33; + t['underscorewavy'] = 0xFE4F; + t['union'] = 0x222A; + t['universal'] = 0x2200; + t['uogonek'] = 0x0173; + t['uparen'] = 0x24B0; + t['upblock'] = 0x2580; + t['upperdothebrew'] = 0x05C4; + t['upsilon'] = 0x03C5; + t['upsilondieresis'] = 0x03CB; + t['upsilondieresistonos'] = 0x03B0; + t['upsilonlatin'] = 0x028A; + t['upsilontonos'] = 0x03CD; + t['uptackbelowcmb'] = 0x031D; + t['uptackmod'] = 0x02D4; + t['uragurmukhi'] = 0x0A73; + t['uring'] = 0x016F; + t['ushortcyrillic'] = 0x045E; + t['usmallhiragana'] = 0x3045; + t['usmallkatakana'] = 0x30A5; + t['usmallkatakanahalfwidth'] = 0xFF69; + t['ustraightcyrillic'] = 0x04AF; + t['ustraightstrokecyrillic'] = 0x04B1; + t['utilde'] = 0x0169; + t['utildeacute'] = 0x1E79; + t['utildebelow'] = 0x1E75; + t['uubengali'] = 0x098A; + t['uudeva'] = 0x090A; + t['uugujarati'] = 0x0A8A; + t['uugurmukhi'] = 0x0A0A; + t['uumatragurmukhi'] = 0x0A42; + t['uuvowelsignbengali'] = 0x09C2; + t['uuvowelsigndeva'] = 0x0942; + t['uuvowelsigngujarati'] = 0x0AC2; + t['uvowelsignbengali'] = 0x09C1; + t['uvowelsigndeva'] = 0x0941; + t['uvowelsigngujarati'] = 0x0AC1; + t['v'] = 0x0076; + t['vadeva'] = 0x0935; + t['vagujarati'] = 0x0AB5; + t['vagurmukhi'] = 0x0A35; + t['vakatakana'] = 0x30F7; + t['vav'] = 0x05D5; + t['vavdagesh'] = 0xFB35; + t['vavdagesh65'] = 0xFB35; + t['vavdageshhebrew'] = 0xFB35; + t['vavhebrew'] = 0x05D5; + t['vavholam'] = 0xFB4B; + t['vavholamhebrew'] = 0xFB4B; + t['vavvavhebrew'] = 0x05F0; + t['vavyodhebrew'] = 0x05F1; + t['vcircle'] = 0x24E5; + t['vdotbelow'] = 0x1E7F; + t['vecyrillic'] = 0x0432; + t['veharabic'] = 0x06A4; + t['vehfinalarabic'] = 0xFB6B; + t['vehinitialarabic'] = 0xFB6C; + t['vehmedialarabic'] = 0xFB6D; + t['vekatakana'] = 0x30F9; + t['venus'] = 0x2640; + t['verticalbar'] = 0x007C; + t['verticallineabovecmb'] = 0x030D; + t['verticallinebelowcmb'] = 0x0329; + t['verticallinelowmod'] = 0x02CC; + t['verticallinemod'] = 0x02C8; + t['vewarmenian'] = 0x057E; + t['vhook'] = 0x028B; + t['vikatakana'] = 0x30F8; + t['viramabengali'] = 0x09CD; + t['viramadeva'] = 0x094D; + t['viramagujarati'] = 0x0ACD; + t['visargabengali'] = 0x0983; + t['visargadeva'] = 0x0903; + t['visargagujarati'] = 0x0A83; + t['vmonospace'] = 0xFF56; + t['voarmenian'] = 0x0578; + t['voicediterationhiragana'] = 0x309E; + t['voicediterationkatakana'] = 0x30FE; + t['voicedmarkkana'] = 0x309B; + t['voicedmarkkanahalfwidth'] = 0xFF9E; + t['vokatakana'] = 0x30FA; + t['vparen'] = 0x24B1; + t['vtilde'] = 0x1E7D; + t['vturned'] = 0x028C; + t['vuhiragana'] = 0x3094; + t['vukatakana'] = 0x30F4; + t['w'] = 0x0077; + t['wacute'] = 0x1E83; + t['waekorean'] = 0x3159; + t['wahiragana'] = 0x308F; + t['wakatakana'] = 0x30EF; + t['wakatakanahalfwidth'] = 0xFF9C; + t['wakorean'] = 0x3158; + t['wasmallhiragana'] = 0x308E; + t['wasmallkatakana'] = 0x30EE; + t['wattosquare'] = 0x3357; + t['wavedash'] = 0x301C; + t['wavyunderscorevertical'] = 0xFE34; + t['wawarabic'] = 0x0648; + t['wawfinalarabic'] = 0xFEEE; + t['wawhamzaabovearabic'] = 0x0624; + t['wawhamzaabovefinalarabic'] = 0xFE86; + t['wbsquare'] = 0x33DD; + t['wcircle'] = 0x24E6; + t['wcircumflex'] = 0x0175; + t['wdieresis'] = 0x1E85; + t['wdotaccent'] = 0x1E87; + t['wdotbelow'] = 0x1E89; + t['wehiragana'] = 0x3091; + t['weierstrass'] = 0x2118; + t['wekatakana'] = 0x30F1; + t['wekorean'] = 0x315E; + t['weokorean'] = 0x315D; + t['wgrave'] = 0x1E81; + t['whitebullet'] = 0x25E6; + t['whitecircle'] = 0x25CB; + t['whitecircleinverse'] = 0x25D9; + t['whitecornerbracketleft'] = 0x300E; + t['whitecornerbracketleftvertical'] = 0xFE43; + t['whitecornerbracketright'] = 0x300F; + t['whitecornerbracketrightvertical'] = 0xFE44; + t['whitediamond'] = 0x25C7; + t['whitediamondcontainingblacksmalldiamond'] = 0x25C8; + t['whitedownpointingsmalltriangle'] = 0x25BF; + t['whitedownpointingtriangle'] = 0x25BD; + t['whiteleftpointingsmalltriangle'] = 0x25C3; + t['whiteleftpointingtriangle'] = 0x25C1; + t['whitelenticularbracketleft'] = 0x3016; + t['whitelenticularbracketright'] = 0x3017; + t['whiterightpointingsmalltriangle'] = 0x25B9; + t['whiterightpointingtriangle'] = 0x25B7; + t['whitesmallsquare'] = 0x25AB; + t['whitesmilingface'] = 0x263A; + t['whitesquare'] = 0x25A1; + t['whitestar'] = 0x2606; + t['whitetelephone'] = 0x260F; + t['whitetortoiseshellbracketleft'] = 0x3018; + t['whitetortoiseshellbracketright'] = 0x3019; + t['whiteuppointingsmalltriangle'] = 0x25B5; + t['whiteuppointingtriangle'] = 0x25B3; + t['wihiragana'] = 0x3090; + t['wikatakana'] = 0x30F0; + t['wikorean'] = 0x315F; + t['wmonospace'] = 0xFF57; + t['wohiragana'] = 0x3092; + t['wokatakana'] = 0x30F2; + t['wokatakanahalfwidth'] = 0xFF66; + t['won'] = 0x20A9; + t['wonmonospace'] = 0xFFE6; + t['wowaenthai'] = 0x0E27; + t['wparen'] = 0x24B2; + t['wring'] = 0x1E98; + t['wsuperior'] = 0x02B7; + t['wturned'] = 0x028D; + t['wynn'] = 0x01BF; + t['x'] = 0x0078; + t['xabovecmb'] = 0x033D; + t['xbopomofo'] = 0x3112; + t['xcircle'] = 0x24E7; + t['xdieresis'] = 0x1E8D; + t['xdotaccent'] = 0x1E8B; + t['xeharmenian'] = 0x056D; + t['xi'] = 0x03BE; + t['xmonospace'] = 0xFF58; + t['xparen'] = 0x24B3; + t['xsuperior'] = 0x02E3; + t['y'] = 0x0079; + t['yaadosquare'] = 0x334E; + t['yabengali'] = 0x09AF; + t['yacute'] = 0x00FD; + t['yadeva'] = 0x092F; + t['yaekorean'] = 0x3152; + t['yagujarati'] = 0x0AAF; + t['yagurmukhi'] = 0x0A2F; + t['yahiragana'] = 0x3084; + t['yakatakana'] = 0x30E4; + t['yakatakanahalfwidth'] = 0xFF94; + t['yakorean'] = 0x3151; + t['yamakkanthai'] = 0x0E4E; + t['yasmallhiragana'] = 0x3083; + t['yasmallkatakana'] = 0x30E3; + t['yasmallkatakanahalfwidth'] = 0xFF6C; + t['yatcyrillic'] = 0x0463; + t['ycircle'] = 0x24E8; + t['ycircumflex'] = 0x0177; + t['ydieresis'] = 0x00FF; + t['ydotaccent'] = 0x1E8F; + t['ydotbelow'] = 0x1EF5; + t['yeharabic'] = 0x064A; + t['yehbarreearabic'] = 0x06D2; + t['yehbarreefinalarabic'] = 0xFBAF; + t['yehfinalarabic'] = 0xFEF2; + t['yehhamzaabovearabic'] = 0x0626; + t['yehhamzaabovefinalarabic'] = 0xFE8A; + t['yehhamzaaboveinitialarabic'] = 0xFE8B; + t['yehhamzaabovemedialarabic'] = 0xFE8C; + t['yehinitialarabic'] = 0xFEF3; + t['yehmedialarabic'] = 0xFEF4; + t['yehmeeminitialarabic'] = 0xFCDD; + t['yehmeemisolatedarabic'] = 0xFC58; + t['yehnoonfinalarabic'] = 0xFC94; + t['yehthreedotsbelowarabic'] = 0x06D1; + t['yekorean'] = 0x3156; + t['yen'] = 0x00A5; + t['yenmonospace'] = 0xFFE5; + t['yeokorean'] = 0x3155; + t['yeorinhieuhkorean'] = 0x3186; + t['yerahbenyomohebrew'] = 0x05AA; + t['yerahbenyomolefthebrew'] = 0x05AA; + t['yericyrillic'] = 0x044B; + t['yerudieresiscyrillic'] = 0x04F9; + t['yesieungkorean'] = 0x3181; + t['yesieungpansioskorean'] = 0x3183; + t['yesieungsioskorean'] = 0x3182; + t['yetivhebrew'] = 0x059A; + t['ygrave'] = 0x1EF3; + t['yhook'] = 0x01B4; + t['yhookabove'] = 0x1EF7; + t['yiarmenian'] = 0x0575; + t['yicyrillic'] = 0x0457; + t['yikorean'] = 0x3162; + t['yinyang'] = 0x262F; + t['yiwnarmenian'] = 0x0582; + t['ymonospace'] = 0xFF59; + t['yod'] = 0x05D9; + t['yoddagesh'] = 0xFB39; + t['yoddageshhebrew'] = 0xFB39; + t['yodhebrew'] = 0x05D9; + t['yodyodhebrew'] = 0x05F2; + t['yodyodpatahhebrew'] = 0xFB1F; + t['yohiragana'] = 0x3088; + t['yoikorean'] = 0x3189; + t['yokatakana'] = 0x30E8; + t['yokatakanahalfwidth'] = 0xFF96; + t['yokorean'] = 0x315B; + t['yosmallhiragana'] = 0x3087; + t['yosmallkatakana'] = 0x30E7; + t['yosmallkatakanahalfwidth'] = 0xFF6E; + t['yotgreek'] = 0x03F3; + t['yoyaekorean'] = 0x3188; + t['yoyakorean'] = 0x3187; + t['yoyakthai'] = 0x0E22; + t['yoyingthai'] = 0x0E0D; + t['yparen'] = 0x24B4; + t['ypogegrammeni'] = 0x037A; + t['ypogegrammenigreekcmb'] = 0x0345; + t['yr'] = 0x01A6; + t['yring'] = 0x1E99; + t['ysuperior'] = 0x02B8; + t['ytilde'] = 0x1EF9; + t['yturned'] = 0x028E; + t['yuhiragana'] = 0x3086; + t['yuikorean'] = 0x318C; + t['yukatakana'] = 0x30E6; + t['yukatakanahalfwidth'] = 0xFF95; + t['yukorean'] = 0x3160; + t['yusbigcyrillic'] = 0x046B; + t['yusbigiotifiedcyrillic'] = 0x046D; + t['yuslittlecyrillic'] = 0x0467; + t['yuslittleiotifiedcyrillic'] = 0x0469; + t['yusmallhiragana'] = 0x3085; + t['yusmallkatakana'] = 0x30E5; + t['yusmallkatakanahalfwidth'] = 0xFF6D; + t['yuyekorean'] = 0x318B; + t['yuyeokorean'] = 0x318A; + t['yyabengali'] = 0x09DF; + t['yyadeva'] = 0x095F; + t['z'] = 0x007A; + t['zaarmenian'] = 0x0566; + t['zacute'] = 0x017A; + t['zadeva'] = 0x095B; + t['zagurmukhi'] = 0x0A5B; + t['zaharabic'] = 0x0638; + t['zahfinalarabic'] = 0xFEC6; + t['zahinitialarabic'] = 0xFEC7; + t['zahiragana'] = 0x3056; + t['zahmedialarabic'] = 0xFEC8; + t['zainarabic'] = 0x0632; + t['zainfinalarabic'] = 0xFEB0; + t['zakatakana'] = 0x30B6; + t['zaqefgadolhebrew'] = 0x0595; + t['zaqefqatanhebrew'] = 0x0594; + t['zarqahebrew'] = 0x0598; + t['zayin'] = 0x05D6; + t['zayindagesh'] = 0xFB36; + t['zayindageshhebrew'] = 0xFB36; + t['zayinhebrew'] = 0x05D6; + t['zbopomofo'] = 0x3117; + t['zcaron'] = 0x017E; + t['zcircle'] = 0x24E9; + t['zcircumflex'] = 0x1E91; + t['zcurl'] = 0x0291; + t['zdot'] = 0x017C; + t['zdotaccent'] = 0x017C; + t['zdotbelow'] = 0x1E93; + t['zecyrillic'] = 0x0437; + t['zedescendercyrillic'] = 0x0499; + t['zedieresiscyrillic'] = 0x04DF; + t['zehiragana'] = 0x305C; + t['zekatakana'] = 0x30BC; + t['zero'] = 0x0030; + t['zeroarabic'] = 0x0660; + t['zerobengali'] = 0x09E6; + t['zerodeva'] = 0x0966; + t['zerogujarati'] = 0x0AE6; + t['zerogurmukhi'] = 0x0A66; + t['zerohackarabic'] = 0x0660; + t['zeroinferior'] = 0x2080; + t['zeromonospace'] = 0xFF10; + t['zerooldstyle'] = 0xF730; + t['zeropersian'] = 0x06F0; + t['zerosuperior'] = 0x2070; + t['zerothai'] = 0x0E50; + t['zerowidthjoiner'] = 0xFEFF; + t['zerowidthnonjoiner'] = 0x200C; + t['zerowidthspace'] = 0x200B; + t['zeta'] = 0x03B6; + t['zhbopomofo'] = 0x3113; + t['zhearmenian'] = 0x056A; + t['zhebrevecyrillic'] = 0x04C2; + t['zhecyrillic'] = 0x0436; + t['zhedescendercyrillic'] = 0x0497; + t['zhedieresiscyrillic'] = 0x04DD; + t['zihiragana'] = 0x3058; + t['zikatakana'] = 0x30B8; + t['zinorhebrew'] = 0x05AE; + t['zlinebelow'] = 0x1E95; + t['zmonospace'] = 0xFF5A; + t['zohiragana'] = 0x305E; + t['zokatakana'] = 0x30BE; + t['zparen'] = 0x24B5; + t['zretroflexhook'] = 0x0290; + t['zstroke'] = 0x01B6; + t['zuhiragana'] = 0x305A; + t['zukatakana'] = 0x30BA; + t['.notdef'] = 0x0000; + t['angbracketleftbig'] = 0x2329; + t['angbracketleftBig'] = 0x2329; + t['angbracketleftbigg'] = 0x2329; + t['angbracketleftBigg'] = 0x2329; + t['angbracketrightBig'] = 0x232A; + t['angbracketrightbig'] = 0x232A; + t['angbracketrightBigg'] = 0x232A; + t['angbracketrightbigg'] = 0x232A; + t['arrowhookleft'] = 0x21AA; + t['arrowhookright'] = 0x21A9; + t['arrowlefttophalf'] = 0x21BC; + t['arrowleftbothalf'] = 0x21BD; + t['arrownortheast'] = 0x2197; + t['arrownorthwest'] = 0x2196; + t['arrowrighttophalf'] = 0x21C0; + t['arrowrightbothalf'] = 0x21C1; + t['arrowsoutheast'] = 0x2198; + t['arrowsouthwest'] = 0x2199; + t['backslashbig'] = 0x2216; + t['backslashBig'] = 0x2216; + t['backslashBigg'] = 0x2216; + t['backslashbigg'] = 0x2216; + t['bardbl'] = 0x2016; + t['bracehtipdownleft'] = 0xFE37; + t['bracehtipdownright'] = 0xFE37; + t['bracehtipupleft'] = 0xFE38; + t['bracehtipupright'] = 0xFE38; + t['braceleftBig'] = 0x007B; + t['braceleftbig'] = 0x007B; + t['braceleftbigg'] = 0x007B; + t['braceleftBigg'] = 0x007B; + t['bracerightBig'] = 0x007D; + t['bracerightbig'] = 0x007D; + t['bracerightbigg'] = 0x007D; + t['bracerightBigg'] = 0x007D; + t['bracketleftbig'] = 0x005B; + t['bracketleftBig'] = 0x005B; + t['bracketleftbigg'] = 0x005B; + t['bracketleftBigg'] = 0x005B; + t['bracketrightBig'] = 0x005D; + t['bracketrightbig'] = 0x005D; + t['bracketrightbigg'] = 0x005D; + t['bracketrightBigg'] = 0x005D; + t['ceilingleftbig'] = 0x2308; + t['ceilingleftBig'] = 0x2308; + t['ceilingleftBigg'] = 0x2308; + t['ceilingleftbigg'] = 0x2308; + t['ceilingrightbig'] = 0x2309; + t['ceilingrightBig'] = 0x2309; + t['ceilingrightbigg'] = 0x2309; + t['ceilingrightBigg'] = 0x2309; + t['circledotdisplay'] = 0x2299; + t['circledottext'] = 0x2299; + t['circlemultiplydisplay'] = 0x2297; + t['circlemultiplytext'] = 0x2297; + t['circleplusdisplay'] = 0x2295; + t['circleplustext'] = 0x2295; + t['contintegraldisplay'] = 0x222E; + t['contintegraltext'] = 0x222E; + t['coproductdisplay'] = 0x2210; + t['coproducttext'] = 0x2210; + t['floorleftBig'] = 0x230A; + t['floorleftbig'] = 0x230A; + t['floorleftbigg'] = 0x230A; + t['floorleftBigg'] = 0x230A; + t['floorrightbig'] = 0x230B; + t['floorrightBig'] = 0x230B; + t['floorrightBigg'] = 0x230B; + t['floorrightbigg'] = 0x230B; + t['hatwide'] = 0x0302; + t['hatwider'] = 0x0302; + t['hatwidest'] = 0x0302; + t['intercal'] = 0x1D40; + t['integraldisplay'] = 0x222B; + t['integraltext'] = 0x222B; + t['intersectiondisplay'] = 0x22C2; + t['intersectiontext'] = 0x22C2; + t['logicalanddisplay'] = 0x2227; + t['logicalandtext'] = 0x2227; + t['logicalordisplay'] = 0x2228; + t['logicalortext'] = 0x2228; + t['parenleftBig'] = 0x0028; + t['parenleftbig'] = 0x0028; + t['parenleftBigg'] = 0x0028; + t['parenleftbigg'] = 0x0028; + t['parenrightBig'] = 0x0029; + t['parenrightbig'] = 0x0029; + t['parenrightBigg'] = 0x0029; + t['parenrightbigg'] = 0x0029; + t['prime'] = 0x2032; + t['productdisplay'] = 0x220F; + t['producttext'] = 0x220F; + t['radicalbig'] = 0x221A; + t['radicalBig'] = 0x221A; + t['radicalBigg'] = 0x221A; + t['radicalbigg'] = 0x221A; + t['radicalbt'] = 0x221A; + t['radicaltp'] = 0x221A; + t['radicalvertex'] = 0x221A; + t['slashbig'] = 0x002F; + t['slashBig'] = 0x002F; + t['slashBigg'] = 0x002F; + t['slashbigg'] = 0x002F; + t['summationdisplay'] = 0x2211; + t['summationtext'] = 0x2211; + t['tildewide'] = 0x02DC; + t['tildewider'] = 0x02DC; + t['tildewidest'] = 0x02DC; + t['uniondisplay'] = 0x22C3; + t['unionmultidisplay'] = 0x228E; + t['unionmultitext'] = 0x228E; + t['unionsqdisplay'] = 0x2294; + t['unionsqtext'] = 0x2294; + t['uniontext'] = 0x22C3; + t['vextenddouble'] = 0x2225; + t['vextendsingle'] = 0x2223; +}); +var getDingbatsGlyphsUnicode = getLookupTableFactory(function (t) { + t['space'] = 0x0020; + t['a1'] = 0x2701; + t['a2'] = 0x2702; + t['a202'] = 0x2703; + t['a3'] = 0x2704; + t['a4'] = 0x260E; + t['a5'] = 0x2706; + t['a119'] = 0x2707; + t['a118'] = 0x2708; + t['a117'] = 0x2709; + t['a11'] = 0x261B; + t['a12'] = 0x261E; + t['a13'] = 0x270C; + t['a14'] = 0x270D; + t['a15'] = 0x270E; + t['a16'] = 0x270F; + t['a105'] = 0x2710; + t['a17'] = 0x2711; + t['a18'] = 0x2712; + t['a19'] = 0x2713; + t['a20'] = 0x2714; + t['a21'] = 0x2715; + t['a22'] = 0x2716; + t['a23'] = 0x2717; + t['a24'] = 0x2718; + t['a25'] = 0x2719; + t['a26'] = 0x271A; + t['a27'] = 0x271B; + t['a28'] = 0x271C; + t['a6'] = 0x271D; + t['a7'] = 0x271E; + t['a8'] = 0x271F; + t['a9'] = 0x2720; + t['a10'] = 0x2721; + t['a29'] = 0x2722; + t['a30'] = 0x2723; + t['a31'] = 0x2724; + t['a32'] = 0x2725; + t['a33'] = 0x2726; + t['a34'] = 0x2727; + t['a35'] = 0x2605; + t['a36'] = 0x2729; + t['a37'] = 0x272A; + t['a38'] = 0x272B; + t['a39'] = 0x272C; + t['a40'] = 0x272D; + t['a41'] = 0x272E; + t['a42'] = 0x272F; + t['a43'] = 0x2730; + t['a44'] = 0x2731; + t['a45'] = 0x2732; + t['a46'] = 0x2733; + t['a47'] = 0x2734; + t['a48'] = 0x2735; + t['a49'] = 0x2736; + t['a50'] = 0x2737; + t['a51'] = 0x2738; + t['a52'] = 0x2739; + t['a53'] = 0x273A; + t['a54'] = 0x273B; + t['a55'] = 0x273C; + t['a56'] = 0x273D; + t['a57'] = 0x273E; + t['a58'] = 0x273F; + t['a59'] = 0x2740; + t['a60'] = 0x2741; + t['a61'] = 0x2742; + t['a62'] = 0x2743; + t['a63'] = 0x2744; + t['a64'] = 0x2745; + t['a65'] = 0x2746; + t['a66'] = 0x2747; + t['a67'] = 0x2748; + t['a68'] = 0x2749; + t['a69'] = 0x274A; + t['a70'] = 0x274B; + t['a71'] = 0x25CF; + t['a72'] = 0x274D; + t['a73'] = 0x25A0; + t['a74'] = 0x274F; + t['a203'] = 0x2750; + t['a75'] = 0x2751; + t['a204'] = 0x2752; + t['a76'] = 0x25B2; + t['a77'] = 0x25BC; + t['a78'] = 0x25C6; + t['a79'] = 0x2756; + t['a81'] = 0x25D7; + t['a82'] = 0x2758; + t['a83'] = 0x2759; + t['a84'] = 0x275A; + t['a97'] = 0x275B; + t['a98'] = 0x275C; + t['a99'] = 0x275D; + t['a100'] = 0x275E; + t['a101'] = 0x2761; + t['a102'] = 0x2762; + t['a103'] = 0x2763; + t['a104'] = 0x2764; + t['a106'] = 0x2765; + t['a107'] = 0x2766; + t['a108'] = 0x2767; + t['a112'] = 0x2663; + t['a111'] = 0x2666; + t['a110'] = 0x2665; + t['a109'] = 0x2660; + t['a120'] = 0x2460; + t['a121'] = 0x2461; + t['a122'] = 0x2462; + t['a123'] = 0x2463; + t['a124'] = 0x2464; + t['a125'] = 0x2465; + t['a126'] = 0x2466; + t['a127'] = 0x2467; + t['a128'] = 0x2468; + t['a129'] = 0x2469; + t['a130'] = 0x2776; + t['a131'] = 0x2777; + t['a132'] = 0x2778; + t['a133'] = 0x2779; + t['a134'] = 0x277A; + t['a135'] = 0x277B; + t['a136'] = 0x277C; + t['a137'] = 0x277D; + t['a138'] = 0x277E; + t['a139'] = 0x277F; + t['a140'] = 0x2780; + t['a141'] = 0x2781; + t['a142'] = 0x2782; + t['a143'] = 0x2783; + t['a144'] = 0x2784; + t['a145'] = 0x2785; + t['a146'] = 0x2786; + t['a147'] = 0x2787; + t['a148'] = 0x2788; + t['a149'] = 0x2789; + t['a150'] = 0x278A; + t['a151'] = 0x278B; + t['a152'] = 0x278C; + t['a153'] = 0x278D; + t['a154'] = 0x278E; + t['a155'] = 0x278F; + t['a156'] = 0x2790; + t['a157'] = 0x2791; + t['a158'] = 0x2792; + t['a159'] = 0x2793; + t['a160'] = 0x2794; + t['a161'] = 0x2192; + t['a163'] = 0x2194; + t['a164'] = 0x2195; + t['a196'] = 0x2798; + t['a165'] = 0x2799; + t['a192'] = 0x279A; + t['a166'] = 0x279B; + t['a167'] = 0x279C; + t['a168'] = 0x279D; + t['a169'] = 0x279E; + t['a170'] = 0x279F; + t['a171'] = 0x27A0; + t['a172'] = 0x27A1; + t['a173'] = 0x27A2; + t['a162'] = 0x27A3; + t['a174'] = 0x27A4; + t['a175'] = 0x27A5; + t['a176'] = 0x27A6; + t['a177'] = 0x27A7; + t['a178'] = 0x27A8; + t['a179'] = 0x27A9; + t['a193'] = 0x27AA; + t['a180'] = 0x27AB; + t['a199'] = 0x27AC; + t['a181'] = 0x27AD; + t['a200'] = 0x27AE; + t['a182'] = 0x27AF; + t['a201'] = 0x27B1; + t['a183'] = 0x27B2; + t['a184'] = 0x27B3; + t['a197'] = 0x27B4; + t['a185'] = 0x27B5; + t['a194'] = 0x27B6; + t['a198'] = 0x27B7; + t['a186'] = 0x27B8; + t['a195'] = 0x27B9; + t['a187'] = 0x27BA; + t['a188'] = 0x27BB; + t['a189'] = 0x27BC; + t['a190'] = 0x27BD; + t['a191'] = 0x27BE; + t['a89'] = 0x2768; + t['a90'] = 0x2769; + t['a93'] = 0x276A; + t['a94'] = 0x276B; + t['a91'] = 0x276C; + t['a92'] = 0x276D; + t['a205'] = 0x276E; + t['a85'] = 0x276F; + t['a206'] = 0x2770; + t['a86'] = 0x2771; + t['a87'] = 0x2772; + t['a88'] = 0x2773; + t['a95'] = 0x2774; + t['a96'] = 0x2775; + t['.notdef'] = 0x0000; +}); +exports.getGlyphsUnicode = getGlyphsUnicode; +exports.getDingbatsGlyphsUnicode = getDingbatsGlyphsUnicode; + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var corePrimitives = __w_pdfjs_require__(1); +var corePdfManager = __w_pdfjs_require__(33); +var UNSUPPORTED_FEATURES = sharedUtil.UNSUPPORTED_FEATURES; +var InvalidPDFException = sharedUtil.InvalidPDFException; +var MessageHandler = sharedUtil.MessageHandler; +var MissingPDFException = sharedUtil.MissingPDFException; +var UnexpectedResponseException = sharedUtil.UnexpectedResponseException; +var PasswordException = sharedUtil.PasswordException; +var UnknownErrorException = sharedUtil.UnknownErrorException; +var XRefParseException = sharedUtil.XRefParseException; +var arrayByteLength = sharedUtil.arrayByteLength; +var arraysToBytes = sharedUtil.arraysToBytes; +var assert = sharedUtil.assert; +var createPromiseCapability = sharedUtil.createPromiseCapability; +var info = sharedUtil.info; +var warn = sharedUtil.warn; +var setVerbosityLevel = sharedUtil.setVerbosityLevel; +var isNodeJS = sharedUtil.isNodeJS; +var Ref = corePrimitives.Ref; +var LocalPdfManager = corePdfManager.LocalPdfManager; +var NetworkPdfManager = corePdfManager.NetworkPdfManager; +var WorkerTask = function WorkerTaskClosure() { + function WorkerTask(name) { + this.name = name; + this.terminated = false; + this._capability = createPromiseCapability(); + } + WorkerTask.prototype = { + get finished() { + return this._capability.promise; + }, + finish: function () { + this._capability.resolve(); + }, + terminate: function () { + this.terminated = true; + }, + ensureNotTerminated: function () { + if (this.terminated) { + throw new Error('Worker task was terminated'); + } + } + }; + return WorkerTask; +}(); +var PDFWorkerStream = function PDFWorkerStreamClosure() { + function PDFWorkerStream(params, msgHandler) { + this._queuedChunks = []; + var initialData = params.initialData; + if (initialData && initialData.length > 0) { + this._queuedChunks.push(initialData); + } + this._msgHandler = msgHandler; + this._isRangeSupported = !params.disableRange; + this._isStreamingSupported = !params.disableStream; + this._contentLength = params.length; + this._fullRequestReader = null; + this._rangeReaders = []; + msgHandler.on('OnDataRange', this._onReceiveData.bind(this)); + msgHandler.on('OnDataProgress', this._onProgress.bind(this)); + } + PDFWorkerStream.prototype = { + _onReceiveData: function PDFWorkerStream_onReceiveData(args) { + if (args.begin === undefined) { + if (this._fullRequestReader) { + this._fullRequestReader._enqueue(args.chunk); + } else { + this._queuedChunks.push(args.chunk); + } + } else { + var found = this._rangeReaders.some(function (rangeReader) { + if (rangeReader._begin !== args.begin) { + return false; + } + rangeReader._enqueue(args.chunk); + return true; + }); + assert(found); + } + }, + _onProgress: function PDFWorkerStream_onProgress(evt) { + if (this._rangeReaders.length > 0) { + var firstReader = this._rangeReaders[0]; + if (firstReader.onProgress) { + firstReader.onProgress({ loaded: evt.loaded }); + } + } + }, + _removeRangeReader: function PDFWorkerStream_removeRangeReader(reader) { + var i = this._rangeReaders.indexOf(reader); + if (i >= 0) { + this._rangeReaders.splice(i, 1); + } + }, + getFullReader: function PDFWorkerStream_getFullReader() { + assert(!this._fullRequestReader); + var queuedChunks = this._queuedChunks; + this._queuedChunks = null; + return new PDFWorkerStreamReader(this, queuedChunks); + }, + getRangeReader: function PDFWorkerStream_getRangeReader(begin, end) { + var reader = new PDFWorkerStreamRangeReader(this, begin, end); + this._msgHandler.send('RequestDataRange', { + begin: begin, + end: end + }); + this._rangeReaders.push(reader); + return reader; + }, + cancelAllRequests: function PDFWorkerStream_cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); + } + var readers = this._rangeReaders.slice(0); + readers.forEach(function (rangeReader) { + rangeReader.cancel(reason); + }); + } + }; + function PDFWorkerStreamReader(stream, queuedChunks) { + this._stream = stream; + this._done = false; + this._queuedChunks = queuedChunks || []; + this._requests = []; + this._headersReady = Promise.resolve(); + stream._fullRequestReader = this; + this.onProgress = null; + } + PDFWorkerStreamReader.prototype = { + _enqueue: function PDFWorkerStreamReader_enqueue(chunk) { + if (this._done) { + return; + } + if (this._requests.length > 0) { + var requestCapability = this._requests.shift(); + requestCapability.resolve({ + value: chunk, + done: false + }); + return; + } + this._queuedChunks.push(chunk); + }, + get headersReady() { + return this._headersReady; + }, + get isRangeSupported() { + return this._stream._isRangeSupported; + }, + get isStreamingSupported() { + return this._stream._isStreamingSupported; + }, + get contentLength() { + return this._stream._contentLength; + }, + read: function PDFWorkerStreamReader_read() { + if (this._queuedChunks.length > 0) { + var chunk = this._queuedChunks.shift(); + return Promise.resolve({ + value: chunk, + done: false + }); + } + if (this._done) { + return Promise.resolve({ + value: undefined, + done: true + }); + } + var requestCapability = createPromiseCapability(); + this._requests.push(requestCapability); + return requestCapability.promise; + }, + cancel: function PDFWorkerStreamReader_cancel(reason) { + this._done = true; + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true + }); + }); + this._requests = []; + } + }; + function PDFWorkerStreamRangeReader(stream, begin, end) { + this._stream = stream; + this._begin = begin; + this._end = end; + this._queuedChunk = null; + this._requests = []; + this._done = false; + this.onProgress = null; + } + PDFWorkerStreamRangeReader.prototype = { + _enqueue: function PDFWorkerStreamRangeReader_enqueue(chunk) { + if (this._done) { + return; + } + if (this._requests.length === 0) { + this._queuedChunk = chunk; + } else { + var requestsCapability = this._requests.shift(); + requestsCapability.resolve({ + value: chunk, + done: false + }); + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true + }); + }); + this._requests = []; + } + this._done = true; + this._stream._removeRangeReader(this); + }, + get isStreamingSupported() { + return false; + }, + read: function PDFWorkerStreamRangeReader_read() { + if (this._queuedChunk) { + return Promise.resolve({ + value: this._queuedChunk, + done: false + }); + } + if (this._done) { + return Promise.resolve({ + value: undefined, + done: true + }); + } + var requestCapability = createPromiseCapability(); + this._requests.push(requestCapability); + return requestCapability.promise; + }, + cancel: function PDFWorkerStreamRangeReader_cancel(reason) { + this._done = true; + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true + }); + }); + this._requests = []; + this._stream._removeRangeReader(this); + } + }; + return PDFWorkerStream; +}(); +var PDFNetworkStream; +function setPDFNetworkStreamClass(cls) { + PDFNetworkStream = cls; +} +var WorkerMessageHandler = { + setup: function wphSetup(handler, port) { + var testMessageProcessed = false; + handler.on('test', function wphSetupTest(data) { + if (testMessageProcessed) { + return; + } + testMessageProcessed = true; + if (!(data instanceof Uint8Array)) { + handler.send('test', 'main', false); + return; + } + var supportTransfers = data[0] === 255; + handler.postMessageTransfers = supportTransfers; + var xhr = new XMLHttpRequest(); + var responseExists = 'response' in xhr; + try { + xhr.responseType; + } catch (e) { + responseExists = false; + } + if (!responseExists) { + handler.send('test', false); + return; + } + handler.send('test', { + supportTypedArray: true, + supportTransfers: supportTransfers + }); + }); + handler.on('configure', function wphConfigure(data) { + setVerbosityLevel(data.verbosity); + }); + handler.on('GetDocRequest', function wphSetupDoc(data) { + return WorkerMessageHandler.createDocumentHandler(data, port); + }); + }, + createDocumentHandler: function wphCreateDocumentHandler(docParams, port) { + var pdfManager; + var terminated = false; + var cancelXHRs = null; + var WorkerTasks = []; + var docId = docParams.docId; + var docBaseUrl = docParams.docBaseUrl; + var workerHandlerName = docParams.docId + '_worker'; + var handler = new MessageHandler(workerHandlerName, docId, port); + handler.postMessageTransfers = docParams.postMessageTransfers; + function ensureNotTerminated() { + if (terminated) { + throw new Error('Worker was terminated'); + } + } + function startWorkerTask(task) { + WorkerTasks.push(task); + } + function finishWorkerTask(task) { + task.finish(); + var i = WorkerTasks.indexOf(task); + WorkerTasks.splice(i, 1); + } + function loadDocument(recoveryMode) { + var loadDocumentCapability = createPromiseCapability(); + var parseSuccess = function parseSuccess() { + var numPagesPromise = pdfManager.ensureDoc('numPages'); + var fingerprintPromise = pdfManager.ensureDoc('fingerprint'); + var encryptedPromise = pdfManager.ensureXRef('encrypt'); + Promise.all([ + numPagesPromise, + fingerprintPromise, + encryptedPromise + ]).then(function onDocReady(results) { + var doc = { + numPages: results[0], + fingerprint: results[1], + encrypted: !!results[2] + }; + loadDocumentCapability.resolve(doc); + }, parseFailure); + }; + var parseFailure = function parseFailure(e) { + loadDocumentCapability.reject(e); + }; + pdfManager.ensureDoc('checkHeader', []).then(function () { + pdfManager.ensureDoc('parseStartXRef', []).then(function () { + pdfManager.ensureDoc('parse', [recoveryMode]).then(parseSuccess, parseFailure); + }, parseFailure); + }, parseFailure); + return loadDocumentCapability.promise; + } + function getPdfManager(data, evaluatorOptions) { + var pdfManagerCapability = createPromiseCapability(); + var pdfManager; + var source = data.source; + if (source.data) { + try { + pdfManager = new LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl); + pdfManagerCapability.resolve(pdfManager); + } catch (ex) { + pdfManagerCapability.reject(ex); + } + return pdfManagerCapability.promise; + } + var pdfStream; + try { + if (source.chunkedViewerLoading) { + pdfStream = new PDFWorkerStream(source, handler); + } else { + assert(PDFNetworkStream, 'pdfjs/core/network module is not loaded'); + pdfStream = new PDFNetworkStream(data); + } + } catch (ex) { + pdfManagerCapability.reject(ex); + return pdfManagerCapability.promise; + } + var fullRequest = pdfStream.getFullReader(); + fullRequest.headersReady.then(function () { + if (!fullRequest.isStreamingSupported || !fullRequest.isRangeSupported) { + fullRequest.onProgress = function (evt) { + handler.send('DocProgress', { + loaded: evt.loaded, + total: evt.total + }); + }; + } + if (!fullRequest.isRangeSupported) { + return; + } + var disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported; + pdfManager = new NetworkPdfManager(docId, pdfStream, { + msgHandler: handler, + url: source.url, + password: source.password, + length: fullRequest.contentLength, + disableAutoFetch: disableAutoFetch, + rangeChunkSize: source.rangeChunkSize + }, evaluatorOptions, docBaseUrl); + pdfManagerCapability.resolve(pdfManager); + cancelXHRs = null; + }).catch(function (reason) { + pdfManagerCapability.reject(reason); + cancelXHRs = null; + }); + var cachedChunks = [], loaded = 0; + var flushChunks = function () { + var pdfFile = arraysToBytes(cachedChunks); + if (source.length && pdfFile.length !== source.length) { + warn('reported HTTP length is different from actual'); + } + try { + pdfManager = new LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl); + pdfManagerCapability.resolve(pdfManager); + } catch (ex) { + pdfManagerCapability.reject(ex); + } + cachedChunks = []; + }; + var readPromise = new Promise(function (resolve, reject) { + var readChunk = function (chunk) { + try { + ensureNotTerminated(); + if (chunk.done) { + if (!pdfManager) { + flushChunks(); + } + cancelXHRs = null; + return; + } + var data = chunk.value; + loaded += arrayByteLength(data); + if (!fullRequest.isStreamingSupported) { + handler.send('DocProgress', { + loaded: loaded, + total: Math.max(loaded, fullRequest.contentLength || 0) + }); + } + if (pdfManager) { + pdfManager.sendProgressiveData(data); + } else { + cachedChunks.push(data); + } + fullRequest.read().then(readChunk, reject); + } catch (e) { + reject(e); + } + }; + fullRequest.read().then(readChunk, reject); + }); + readPromise.catch(function (e) { + pdfManagerCapability.reject(e); + cancelXHRs = null; + }); + cancelXHRs = function () { + pdfStream.cancelAllRequests('abort'); + }; + return pdfManagerCapability.promise; + } + function setupDoc(data) { + function onSuccess(doc) { + ensureNotTerminated(); + handler.send('GetDoc', { pdfInfo: doc }); + } + function onFailure(e) { + if (e instanceof PasswordException) { + var task = new WorkerTask('PasswordException: response ' + e.code); + startWorkerTask(task); + handler.sendWithPromise('PasswordRequest', e).then(function (data) { + finishWorkerTask(task); + pdfManager.updatePassword(data.password); + pdfManagerReady(); + }).catch(function (ex) { + finishWorkerTask(task); + handler.send('PasswordException', ex); + }.bind(null, e)); + } else if (e instanceof InvalidPDFException) { + handler.send('InvalidPDF', e); + } else if (e instanceof MissingPDFException) { + handler.send('MissingPDF', e); + } else if (e instanceof UnexpectedResponseException) { + handler.send('UnexpectedResponse', e); + } else { + handler.send('UnknownError', new UnknownErrorException(e.message, e.toString())); + } + } + function pdfManagerReady() { + ensureNotTerminated(); + loadDocument(false).then(onSuccess, function loadFailure(ex) { + ensureNotTerminated(); + if (!(ex instanceof XRefParseException)) { + onFailure(ex); + return; + } + pdfManager.requestLoadedStream(); + pdfManager.onLoadedStream().then(function () { + ensureNotTerminated(); + loadDocument(true).then(onSuccess, onFailure); + }); + }, onFailure); + } + ensureNotTerminated(); + var evaluatorOptions = { + forceDataSchema: data.disableCreateObjectURL, + maxImageSize: data.maxImageSize === undefined ? -1 : data.maxImageSize, + disableFontFace: data.disableFontFace, + disableNativeImageDecoder: data.disableNativeImageDecoder + }; + getPdfManager(data, evaluatorOptions).then(function (newPdfManager) { + if (terminated) { + newPdfManager.terminate(); + throw new Error('Worker was terminated'); + } + pdfManager = newPdfManager; + handler.send('PDFManagerReady', null); + pdfManager.onLoadedStream().then(function (stream) { + handler.send('DataLoaded', { length: stream.bytes.byteLength }); + }); + }).then(pdfManagerReady, onFailure); + } + handler.on('GetPage', function wphSetupGetPage(data) { + return pdfManager.getPage(data.pageIndex).then(function (page) { + var rotatePromise = pdfManager.ensure(page, 'rotate'); + var refPromise = pdfManager.ensure(page, 'ref'); + var userUnitPromise = pdfManager.ensure(page, 'userUnit'); + var viewPromise = pdfManager.ensure(page, 'view'); + return Promise.all([ + rotatePromise, + refPromise, + userUnitPromise, + viewPromise + ]).then(function (results) { + return { + rotate: results[0], + ref: results[1], + userUnit: results[2], + view: results[3] + }; + }); + }); + }); + handler.on('GetPageIndex', function wphSetupGetPageIndex(data) { + var ref = new Ref(data.ref.num, data.ref.gen); + var catalog = pdfManager.pdfDocument.catalog; + return catalog.getPageIndex(ref); + }); + handler.on('GetDestinations', function wphSetupGetDestinations(data) { + return pdfManager.ensureCatalog('destinations'); + }); + handler.on('GetDestination', function wphSetupGetDestination(data) { + return pdfManager.ensureCatalog('getDestination', [data.id]); + }); + handler.on('GetPageLabels', function wphSetupGetPageLabels(data) { + return pdfManager.ensureCatalog('pageLabels'); + }); + handler.on('GetAttachments', function wphSetupGetAttachments(data) { + return pdfManager.ensureCatalog('attachments'); + }); + handler.on('GetJavaScript', function wphSetupGetJavaScript(data) { + return pdfManager.ensureCatalog('javaScript'); + }); + handler.on('GetOutline', function wphSetupGetOutline(data) { + return pdfManager.ensureCatalog('documentOutline'); + }); + handler.on('GetMetadata', function wphSetupGetMetadata(data) { + return Promise.all([ + pdfManager.ensureDoc('documentInfo'), + pdfManager.ensureCatalog('metadata') + ]); + }); + handler.on('GetData', function wphSetupGetData(data) { + pdfManager.requestLoadedStream(); + return pdfManager.onLoadedStream().then(function (stream) { + return stream.bytes; + }); + }); + handler.on('GetStats', function wphSetupGetStats(data) { + return pdfManager.pdfDocument.xref.stats; + }); + handler.on('GetAnnotations', function wphSetupGetAnnotations(data) { + return pdfManager.getPage(data.pageIndex).then(function (page) { + return pdfManager.ensure(page, 'getAnnotationsData', [data.intent]); + }); + }); + handler.on('RenderPageRequest', function wphSetupRenderPage(data) { + var pageIndex = data.pageIndex; + pdfManager.getPage(pageIndex).then(function (page) { + var task = new WorkerTask('RenderPageRequest: page ' + pageIndex); + startWorkerTask(task); + var pageNum = pageIndex + 1; + var start = Date.now(); + page.getOperatorList(handler, task, data.intent, data.renderInteractiveForms).then(function (operatorList) { + finishWorkerTask(task); + info('page=' + pageNum + ' - getOperatorList: time=' + (Date.now() - start) + 'ms, len=' + operatorList.totalLength); + }, function (e) { + finishWorkerTask(task); + if (task.terminated) { + return; + } + handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.unknown }); + var minimumStackMessage = 'worker.js: while trying to getPage() and getOperatorList()'; + var wrappedException; + if (typeof e === 'string') { + wrappedException = { + message: e, + stack: minimumStackMessage + }; + } else if (typeof e === 'object') { + wrappedException = { + message: e.message || e.toString(), + stack: e.stack || minimumStackMessage + }; + } else { + wrappedException = { + message: 'Unknown exception type: ' + typeof e, + stack: minimumStackMessage + }; + } + handler.send('PageError', { + pageNum: pageNum, + error: wrappedException, + intent: data.intent + }); + }); + }); + }, this); + handler.on('GetTextContent', function wphExtractText(data) { + var pageIndex = data.pageIndex; + var normalizeWhitespace = data.normalizeWhitespace; + var combineTextItems = data.combineTextItems; + return pdfManager.getPage(pageIndex).then(function (page) { + var task = new WorkerTask('GetTextContent: page ' + pageIndex); + startWorkerTask(task); + var pageNum = pageIndex + 1; + var start = Date.now(); + return page.extractTextContent(task, normalizeWhitespace, combineTextItems).then(function (textContent) { + finishWorkerTask(task); + info('text indexing: page=' + pageNum + ' - time=' + (Date.now() - start) + 'ms'); + return textContent; + }, function (reason) { + finishWorkerTask(task); + if (task.terminated) { + return; + } + throw reason; + }); + }); + }); + handler.on('Cleanup', function wphCleanup(data) { + return pdfManager.cleanup(); + }); + handler.on('Terminate', function wphTerminate(data) { + terminated = true; + if (pdfManager) { + pdfManager.terminate(); + pdfManager = null; + } + if (cancelXHRs) { + cancelXHRs(); + } + var waitOn = []; + WorkerTasks.forEach(function (task) { + waitOn.push(task.finished); + task.terminate(); + }); + return Promise.all(waitOn).then(function () { + handler.destroy(); + handler = null; + }); + }); + handler.on('Ready', function wphReady(data) { + setupDoc(docParams); + docParams = null; + }); + return workerHandlerName; + } +}; +function initializeWorker() { + var handler = new MessageHandler('worker', 'main', self); + WorkerMessageHandler.setup(handler, self); + handler.send('ready', null); +} +if (typeof window === 'undefined' && !isNodeJS()) { + initializeWorker(); +} +exports.setPDFNetworkStreamClass = setPDFNetworkStreamClass; +exports.WorkerTask = WorkerTask; +exports.WorkerMessageHandler = WorkerMessageHandler; + +/***/ }), +/* 9 */ +/***/ (function(module, exports) { + +var g; +g = function () { + return this; +}(); +try { + g = g || Function("return this")() || (1, eval)("this"); +} catch (e) { + if (typeof window === "object") + g = window; +} +module.exports = g; + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var ArithmeticDecoder = function ArithmeticDecoderClosure() { + var QeTable = [ + { + qe: 0x5601, + nmps: 1, + nlps: 1, + switchFlag: 1 + }, + { + qe: 0x3401, + nmps: 2, + nlps: 6, + switchFlag: 0 + }, + { + qe: 0x1801, + nmps: 3, + nlps: 9, + switchFlag: 0 + }, + { + qe: 0x0AC1, + nmps: 4, + nlps: 12, + switchFlag: 0 + }, + { + qe: 0x0521, + nmps: 5, + nlps: 29, + switchFlag: 0 + }, + { + qe: 0x0221, + nmps: 38, + nlps: 33, + switchFlag: 0 + }, + { + qe: 0x5601, + nmps: 7, + nlps: 6, + switchFlag: 1 + }, + { + qe: 0x5401, + nmps: 8, + nlps: 14, + switchFlag: 0 + }, + { + qe: 0x4801, + nmps: 9, + nlps: 14, + switchFlag: 0 + }, + { + qe: 0x3801, + nmps: 10, + nlps: 14, + switchFlag: 0 + }, + { + qe: 0x3001, + nmps: 11, + nlps: 17, + switchFlag: 0 + }, + { + qe: 0x2401, + nmps: 12, + nlps: 18, + switchFlag: 0 + }, + { + qe: 0x1C01, + nmps: 13, + nlps: 20, + switchFlag: 0 + }, + { + qe: 0x1601, + nmps: 29, + nlps: 21, + switchFlag: 0 + }, + { + qe: 0x5601, + nmps: 15, + nlps: 14, + switchFlag: 1 + }, + { + qe: 0x5401, + nmps: 16, + nlps: 14, + switchFlag: 0 + }, + { + qe: 0x5101, + nmps: 17, + nlps: 15, + switchFlag: 0 + }, + { + qe: 0x4801, + nmps: 18, + nlps: 16, + switchFlag: 0 + }, + { + qe: 0x3801, + nmps: 19, + nlps: 17, + switchFlag: 0 + }, + { + qe: 0x3401, + nmps: 20, + nlps: 18, + switchFlag: 0 + }, + { + qe: 0x3001, + nmps: 21, + nlps: 19, + switchFlag: 0 + }, + { + qe: 0x2801, + nmps: 22, + nlps: 19, + switchFlag: 0 + }, + { + qe: 0x2401, + nmps: 23, + nlps: 20, + switchFlag: 0 + }, + { + qe: 0x2201, + nmps: 24, + nlps: 21, + switchFlag: 0 + }, + { + qe: 0x1C01, + nmps: 25, + nlps: 22, + switchFlag: 0 + }, + { + qe: 0x1801, + nmps: 26, + nlps: 23, + switchFlag: 0 + }, + { + qe: 0x1601, + nmps: 27, + nlps: 24, + switchFlag: 0 + }, + { + qe: 0x1401, + nmps: 28, + nlps: 25, + switchFlag: 0 + }, + { + qe: 0x1201, + nmps: 29, + nlps: 26, + switchFlag: 0 + }, + { + qe: 0x1101, + nmps: 30, + nlps: 27, + switchFlag: 0 + }, + { + qe: 0x0AC1, + nmps: 31, + nlps: 28, + switchFlag: 0 + }, + { + qe: 0x09C1, + nmps: 32, + nlps: 29, + switchFlag: 0 + }, + { + qe: 0x08A1, + nmps: 33, + nlps: 30, + switchFlag: 0 + }, + { + qe: 0x0521, + nmps: 34, + nlps: 31, + switchFlag: 0 + }, + { + qe: 0x0441, + nmps: 35, + nlps: 32, + switchFlag: 0 + }, + { + qe: 0x02A1, + nmps: 36, + nlps: 33, + switchFlag: 0 + }, + { + qe: 0x0221, + nmps: 37, + nlps: 34, + switchFlag: 0 + }, + { + qe: 0x0141, + nmps: 38, + nlps: 35, + switchFlag: 0 + }, + { + qe: 0x0111, + nmps: 39, + nlps: 36, + switchFlag: 0 + }, + { + qe: 0x0085, + nmps: 40, + nlps: 37, + switchFlag: 0 + }, + { + qe: 0x0049, + nmps: 41, + nlps: 38, + switchFlag: 0 + }, + { + qe: 0x0025, + nmps: 42, + nlps: 39, + switchFlag: 0 + }, + { + qe: 0x0015, + nmps: 43, + nlps: 40, + switchFlag: 0 + }, + { + qe: 0x0009, + nmps: 44, + nlps: 41, + switchFlag: 0 + }, + { + qe: 0x0005, + nmps: 45, + nlps: 42, + switchFlag: 0 + }, + { + qe: 0x0001, + nmps: 45, + nlps: 43, + switchFlag: 0 + }, + { + qe: 0x5601, + nmps: 46, + nlps: 46, + switchFlag: 0 + } + ]; + function ArithmeticDecoder(data, start, end) { + this.data = data; + this.bp = start; + this.dataEnd = end; + this.chigh = data[start]; + this.clow = 0; + this.byteIn(); + this.chigh = this.chigh << 7 & 0xFFFF | this.clow >> 9 & 0x7F; + this.clow = this.clow << 7 & 0xFFFF; + this.ct -= 7; + this.a = 0x8000; + } + ArithmeticDecoder.prototype = { + byteIn: function ArithmeticDecoder_byteIn() { + var data = this.data; + var bp = this.bp; + if (data[bp] === 0xFF) { + var b1 = data[bp + 1]; + if (b1 > 0x8F) { + this.clow += 0xFF00; + this.ct = 8; + } else { + bp++; + this.clow += data[bp] << 9; + this.ct = 7; + this.bp = bp; + } + } else { + bp++; + this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xFF00; + this.ct = 8; + this.bp = bp; + } + if (this.clow > 0xFFFF) { + this.chigh += this.clow >> 16; + this.clow &= 0xFFFF; + } + }, + readBit: function ArithmeticDecoder_readBit(contexts, pos) { + var cx_index = contexts[pos] >> 1, cx_mps = contexts[pos] & 1; + var qeTableIcx = QeTable[cx_index]; + var qeIcx = qeTableIcx.qe; + var d; + var a = this.a - qeIcx; + if (this.chigh < qeIcx) { + if (a < qeIcx) { + a = qeIcx; + d = cx_mps; + cx_index = qeTableIcx.nmps; + } else { + a = qeIcx; + d = 1 ^ cx_mps; + if (qeTableIcx.switchFlag === 1) { + cx_mps = d; + } + cx_index = qeTableIcx.nlps; + } + } else { + this.chigh -= qeIcx; + if ((a & 0x8000) !== 0) { + this.a = a; + return cx_mps; + } + if (a < qeIcx) { + d = 1 ^ cx_mps; + if (qeTableIcx.switchFlag === 1) { + cx_mps = d; + } + cx_index = qeTableIcx.nlps; + } else { + d = cx_mps; + cx_index = qeTableIcx.nmps; + } + } + do { + if (this.ct === 0) { + this.byteIn(); + } + a <<= 1; + this.chigh = this.chigh << 1 & 0xFFFF | this.clow >> 15 & 1; + this.clow = this.clow << 1 & 0xFFFF; + this.ct--; + } while ((a & 0x8000) === 0); + this.a = a; + contexts[pos] = cx_index << 1 | cx_mps; + return d; + } + }; + return ArithmeticDecoder; +}(); +exports.ArithmeticDecoder = ArithmeticDecoder; + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var coreCharsets = __w_pdfjs_require__(22); +var coreEncodings = __w_pdfjs_require__(4); +var error = sharedUtil.error; +var info = sharedUtil.info; +var bytesToString = sharedUtil.bytesToString; +var warn = sharedUtil.warn; +var isArray = sharedUtil.isArray; +var Util = sharedUtil.Util; +var stringToBytes = sharedUtil.stringToBytes; +var assert = sharedUtil.assert; +var ISOAdobeCharset = coreCharsets.ISOAdobeCharset; +var ExpertCharset = coreCharsets.ExpertCharset; +var ExpertSubsetCharset = coreCharsets.ExpertSubsetCharset; +var StandardEncoding = coreEncodings.StandardEncoding; +var ExpertEncoding = coreEncodings.ExpertEncoding; +var MAX_SUBR_NESTING = 10; +var CFFStandardStrings = [ + '.notdef', + 'space', + 'exclam', + 'quotedbl', + 'numbersign', + 'dollar', + 'percent', + 'ampersand', + 'quoteright', + 'parenleft', + 'parenright', + 'asterisk', + 'plus', + 'comma', + 'hyphen', + 'period', + 'slash', + 'zero', + 'one', + 'two', + 'three', + 'four', + 'five', + 'six', + 'seven', + 'eight', + 'nine', + 'colon', + 'semicolon', + 'less', + 'equal', + 'greater', + 'question', + 'at', + 'A', + 'B', + 'C', + 'D', + 'E', + 'F', + 'G', + 'H', + 'I', + 'J', + 'K', + 'L', + 'M', + 'N', + 'O', + 'P', + 'Q', + 'R', + 'S', + 'T', + 'U', + 'V', + 'W', + 'X', + 'Y', + 'Z', + 'bracketleft', + 'backslash', + 'bracketright', + 'asciicircum', + 'underscore', + 'quoteleft', + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', + 'k', + 'l', + 'm', + 'n', + 'o', + 'p', + 'q', + 'r', + 's', + 't', + 'u', + 'v', + 'w', + 'x', + 'y', + 'z', + 'braceleft', + 'bar', + 'braceright', + 'asciitilde', + 'exclamdown', + 'cent', + 'sterling', + 'fraction', + 'yen', + 'florin', + 'section', + 'currency', + 'quotesingle', + 'quotedblleft', + 'guillemotleft', + 'guilsinglleft', + 'guilsinglright', + 'fi', + 'fl', + 'endash', + 'dagger', + 'daggerdbl', + 'periodcentered', + 'paragraph', + 'bullet', + 'quotesinglbase', + 'quotedblbase', + 'quotedblright', + 'guillemotright', + 'ellipsis', + 'perthousand', + 'questiondown', + 'grave', + 'acute', + 'circumflex', + 'tilde', + 'macron', + 'breve', + 'dotaccent', + 'dieresis', + 'ring', + 'cedilla', + 'hungarumlaut', + 'ogonek', + 'caron', + 'emdash', + 'AE', + 'ordfeminine', + 'Lslash', + 'Oslash', + 'OE', + 'ordmasculine', + 'ae', + 'dotlessi', + 'lslash', + 'oslash', + 'oe', + 'germandbls', + 'onesuperior', + 'logicalnot', + 'mu', + 'trademark', + 'Eth', + 'onehalf', + 'plusminus', + 'Thorn', + 'onequarter', + 'divide', + 'brokenbar', + 'degree', + 'thorn', + 'threequarters', + 'twosuperior', + 'registered', + 'minus', + 'eth', + 'multiply', + 'threesuperior', + 'copyright', + 'Aacute', + 'Acircumflex', + 'Adieresis', + 'Agrave', + 'Aring', + 'Atilde', + 'Ccedilla', + 'Eacute', + 'Ecircumflex', + 'Edieresis', + 'Egrave', + 'Iacute', + 'Icircumflex', + 'Idieresis', + 'Igrave', + 'Ntilde', + 'Oacute', + 'Ocircumflex', + 'Odieresis', + 'Ograve', + 'Otilde', + 'Scaron', + 'Uacute', + 'Ucircumflex', + 'Udieresis', + 'Ugrave', + 'Yacute', + 'Ydieresis', + 'Zcaron', + 'aacute', + 'acircumflex', + 'adieresis', + 'agrave', + 'aring', + 'atilde', + 'ccedilla', + 'eacute', + 'ecircumflex', + 'edieresis', + 'egrave', + 'iacute', + 'icircumflex', + 'idieresis', + 'igrave', + 'ntilde', + 'oacute', + 'ocircumflex', + 'odieresis', + 'ograve', + 'otilde', + 'scaron', + 'uacute', + 'ucircumflex', + 'udieresis', + 'ugrave', + 'yacute', + 'ydieresis', + 'zcaron', + 'exclamsmall', + 'Hungarumlautsmall', + 'dollaroldstyle', + 'dollarsuperior', + 'ampersandsmall', + 'Acutesmall', + 'parenleftsuperior', + 'parenrightsuperior', + 'twodotenleader', + 'onedotenleader', + 'zerooldstyle', + 'oneoldstyle', + 'twooldstyle', + 'threeoldstyle', + 'fouroldstyle', + 'fiveoldstyle', + 'sixoldstyle', + 'sevenoldstyle', + 'eightoldstyle', + 'nineoldstyle', + 'commasuperior', + 'threequartersemdash', + 'periodsuperior', + 'questionsmall', + 'asuperior', + 'bsuperior', + 'centsuperior', + 'dsuperior', + 'esuperior', + 'isuperior', + 'lsuperior', + 'msuperior', + 'nsuperior', + 'osuperior', + 'rsuperior', + 'ssuperior', + 'tsuperior', + 'ff', + 'ffi', + 'ffl', + 'parenleftinferior', + 'parenrightinferior', + 'Circumflexsmall', + 'hyphensuperior', + 'Gravesmall', + 'Asmall', + 'Bsmall', + 'Csmall', + 'Dsmall', + 'Esmall', + 'Fsmall', + 'Gsmall', + 'Hsmall', + 'Ismall', + 'Jsmall', + 'Ksmall', + 'Lsmall', + 'Msmall', + 'Nsmall', + 'Osmall', + 'Psmall', + 'Qsmall', + 'Rsmall', + 'Ssmall', + 'Tsmall', + 'Usmall', + 'Vsmall', + 'Wsmall', + 'Xsmall', + 'Ysmall', + 'Zsmall', + 'colonmonetary', + 'onefitted', + 'rupiah', + 'Tildesmall', + 'exclamdownsmall', + 'centoldstyle', + 'Lslashsmall', + 'Scaronsmall', + 'Zcaronsmall', + 'Dieresissmall', + 'Brevesmall', + 'Caronsmall', + 'Dotaccentsmall', + 'Macronsmall', + 'figuredash', + 'hypheninferior', + 'Ogoneksmall', + 'Ringsmall', + 'Cedillasmall', + 'questiondownsmall', + 'oneeighth', + 'threeeighths', + 'fiveeighths', + 'seveneighths', + 'onethird', + 'twothirds', + 'zerosuperior', + 'foursuperior', + 'fivesuperior', + 'sixsuperior', + 'sevensuperior', + 'eightsuperior', + 'ninesuperior', + 'zeroinferior', + 'oneinferior', + 'twoinferior', + 'threeinferior', + 'fourinferior', + 'fiveinferior', + 'sixinferior', + 'seveninferior', + 'eightinferior', + 'nineinferior', + 'centinferior', + 'dollarinferior', + 'periodinferior', + 'commainferior', + 'Agravesmall', + 'Aacutesmall', + 'Acircumflexsmall', + 'Atildesmall', + 'Adieresissmall', + 'Aringsmall', + 'AEsmall', + 'Ccedillasmall', + 'Egravesmall', + 'Eacutesmall', + 'Ecircumflexsmall', + 'Edieresissmall', + 'Igravesmall', + 'Iacutesmall', + 'Icircumflexsmall', + 'Idieresissmall', + 'Ethsmall', + 'Ntildesmall', + 'Ogravesmall', + 'Oacutesmall', + 'Ocircumflexsmall', + 'Otildesmall', + 'Odieresissmall', + 'OEsmall', + 'Oslashsmall', + 'Ugravesmall', + 'Uacutesmall', + 'Ucircumflexsmall', + 'Udieresissmall', + 'Yacutesmall', + 'Thornsmall', + 'Ydieresissmall', + '001.000', + '001.001', + '001.002', + '001.003', + 'Black', + 'Bold', + 'Book', + 'Light', + 'Medium', + 'Regular', + 'Roman', + 'Semibold' +]; +var CFFParser = function CFFParserClosure() { + var CharstringValidationData = [ + null, + { + id: 'hstem', + min: 2, + stackClearing: true, + stem: true + }, + null, + { + id: 'vstem', + min: 2, + stackClearing: true, + stem: true + }, + { + id: 'vmoveto', + min: 1, + stackClearing: true + }, + { + id: 'rlineto', + min: 2, + resetStack: true + }, + { + id: 'hlineto', + min: 1, + resetStack: true + }, + { + id: 'vlineto', + min: 1, + resetStack: true + }, + { + id: 'rrcurveto', + min: 6, + resetStack: true + }, + null, + { + id: 'callsubr', + min: 1, + undefStack: true + }, + { + id: 'return', + min: 0, + undefStack: true + }, + null, + null, + { + id: 'endchar', + min: 0, + stackClearing: true + }, + null, + null, + null, + { + id: 'hstemhm', + min: 2, + stackClearing: true, + stem: true + }, + { + id: 'hintmask', + min: 0, + stackClearing: true + }, + { + id: 'cntrmask', + min: 0, + stackClearing: true + }, + { + id: 'rmoveto', + min: 2, + stackClearing: true + }, + { + id: 'hmoveto', + min: 1, + stackClearing: true + }, + { + id: 'vstemhm', + min: 2, + stackClearing: true, + stem: true + }, + { + id: 'rcurveline', + min: 8, + resetStack: true + }, + { + id: 'rlinecurve', + min: 8, + resetStack: true + }, + { + id: 'vvcurveto', + min: 4, + resetStack: true + }, + { + id: 'hhcurveto', + min: 4, + resetStack: true + }, + null, + { + id: 'callgsubr', + min: 1, + undefStack: true + }, + { + id: 'vhcurveto', + min: 4, + resetStack: true + }, + { + id: 'hvcurveto', + min: 4, + resetStack: true + } + ]; + var CharstringValidationData12 = [ + null, + null, + null, + { + id: 'and', + min: 2, + stackDelta: -1 + }, + { + id: 'or', + min: 2, + stackDelta: -1 + }, + { + id: 'not', + min: 1, + stackDelta: 0 + }, + null, + null, + null, + { + id: 'abs', + min: 1, + stackDelta: 0 + }, + { + id: 'add', + min: 2, + stackDelta: -1, + stackFn: function stack_div(stack, index) { + stack[index - 2] = stack[index - 2] + stack[index - 1]; + } + }, + { + id: 'sub', + min: 2, + stackDelta: -1, + stackFn: function stack_div(stack, index) { + stack[index - 2] = stack[index - 2] - stack[index - 1]; + } + }, + { + id: 'div', + min: 2, + stackDelta: -1, + stackFn: function stack_div(stack, index) { + stack[index - 2] = stack[index - 2] / stack[index - 1]; + } + }, + null, + { + id: 'neg', + min: 1, + stackDelta: 0, + stackFn: function stack_div(stack, index) { + stack[index - 1] = -stack[index - 1]; + } + }, + { + id: 'eq', + min: 2, + stackDelta: -1 + }, + null, + null, + { + id: 'drop', + min: 1, + stackDelta: -1 + }, + null, + { + id: 'put', + min: 2, + stackDelta: -2 + }, + { + id: 'get', + min: 1, + stackDelta: 0 + }, + { + id: 'ifelse', + min: 4, + stackDelta: -3 + }, + { + id: 'random', + min: 0, + stackDelta: 1 + }, + { + id: 'mul', + min: 2, + stackDelta: -1, + stackFn: function stack_div(stack, index) { + stack[index - 2] = stack[index - 2] * stack[index - 1]; + } + }, + null, + { + id: 'sqrt', + min: 1, + stackDelta: 0 + }, + { + id: 'dup', + min: 1, + stackDelta: 1 + }, + { + id: 'exch', + min: 2, + stackDelta: 0 + }, + { + id: 'index', + min: 2, + stackDelta: 0 + }, + { + id: 'roll', + min: 3, + stackDelta: -2 + }, + null, + null, + null, + { + id: 'hflex', + min: 7, + resetStack: true + }, + { + id: 'flex', + min: 13, + resetStack: true + }, + { + id: 'hflex1', + min: 9, + resetStack: true + }, + { + id: 'flex1', + min: 11, + resetStack: true + } + ]; + function CFFParser(file, properties, seacAnalysisEnabled) { + this.bytes = file.getBytes(); + this.properties = properties; + this.seacAnalysisEnabled = !!seacAnalysisEnabled; + } + CFFParser.prototype = { + parse: function CFFParser_parse() { + var properties = this.properties; + var cff = new CFF(); + this.cff = cff; + var header = this.parseHeader(); + var nameIndex = this.parseIndex(header.endPos); + var topDictIndex = this.parseIndex(nameIndex.endPos); + var stringIndex = this.parseIndex(topDictIndex.endPos); + var globalSubrIndex = this.parseIndex(stringIndex.endPos); + var topDictParsed = this.parseDict(topDictIndex.obj.get(0)); + var topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings); + cff.header = header.obj; + cff.names = this.parseNameIndex(nameIndex.obj); + cff.strings = this.parseStringIndex(stringIndex.obj); + cff.topDict = topDict; + cff.globalSubrIndex = globalSubrIndex.obj; + this.parsePrivateDict(cff.topDict); + cff.isCIDFont = topDict.hasName('ROS'); + var charStringOffset = topDict.getByName('CharStrings'); + var charStringIndex = this.parseIndex(charStringOffset).obj; + var fontMatrix = topDict.getByName('FontMatrix'); + if (fontMatrix) { + properties.fontMatrix = fontMatrix; + } + var fontBBox = topDict.getByName('FontBBox'); + if (fontBBox) { + properties.ascent = Math.max(fontBBox[3], fontBBox[1]); + properties.descent = Math.min(fontBBox[1], fontBBox[3]); + properties.ascentScaled = true; + } + var charset, encoding; + if (cff.isCIDFont) { + var fdArrayIndex = this.parseIndex(topDict.getByName('FDArray')).obj; + for (var i = 0, ii = fdArrayIndex.count; i < ii; ++i) { + var dictRaw = fdArrayIndex.get(i); + var fontDict = this.createDict(CFFTopDict, this.parseDict(dictRaw), cff.strings); + this.parsePrivateDict(fontDict); + cff.fdArray.push(fontDict); + } + encoding = null; + charset = this.parseCharsets(topDict.getByName('charset'), charStringIndex.count, cff.strings, true); + cff.fdSelect = this.parseFDSelect(topDict.getByName('FDSelect'), charStringIndex.count); + } else { + charset = this.parseCharsets(topDict.getByName('charset'), charStringIndex.count, cff.strings, false); + encoding = this.parseEncoding(topDict.getByName('Encoding'), properties, cff.strings, charset.charset); + } + cff.charset = charset; + cff.encoding = encoding; + var charStringsAndSeacs = this.parseCharStrings(charStringIndex, topDict.privateDict.subrsIndex, globalSubrIndex.obj, cff.fdSelect, cff.fdArray); + cff.charStrings = charStringsAndSeacs.charStrings; + cff.seacs = charStringsAndSeacs.seacs; + cff.widths = charStringsAndSeacs.widths; + return cff; + }, + parseHeader: function CFFParser_parseHeader() { + var bytes = this.bytes; + var bytesLength = bytes.length; + var offset = 0; + while (offset < bytesLength && bytes[offset] !== 1) { + ++offset; + } + if (offset >= bytesLength) { + error('Invalid CFF header'); + } else if (offset !== 0) { + info('cff data is shifted'); + bytes = bytes.subarray(offset); + this.bytes = bytes; + } + var major = bytes[0]; + var minor = bytes[1]; + var hdrSize = bytes[2]; + var offSize = bytes[3]; + var header = new CFFHeader(major, minor, hdrSize, offSize); + return { + obj: header, + endPos: hdrSize + }; + }, + parseDict: function CFFParser_parseDict(dict) { + var pos = 0; + function parseOperand() { + var value = dict[pos++]; + if (value === 30) { + return parseFloatOperand(); + } else if (value === 28) { + value = dict[pos++]; + value = (value << 24 | dict[pos++] << 16) >> 16; + return value; + } else if (value === 29) { + value = dict[pos++]; + value = value << 8 | dict[pos++]; + value = value << 8 | dict[pos++]; + value = value << 8 | dict[pos++]; + return value; + } else if (value >= 32 && value <= 246) { + return value - 139; + } else if (value >= 247 && value <= 250) { + return (value - 247) * 256 + dict[pos++] + 108; + } else if (value >= 251 && value <= 254) { + return -((value - 251) * 256) - dict[pos++] - 108; + } + warn('CFFParser_parseDict: "' + value + '" is a reserved command.'); + return NaN; + } + function parseFloatOperand() { + var str = ''; + var eof = 15; + var lookup = [ + '0', + '1', + '2', + '3', + '4', + '5', + '6', + '7', + '8', + '9', + '.', + 'E', + 'E-', + null, + '-' + ]; + var length = dict.length; + while (pos < length) { + var b = dict[pos++]; + var b1 = b >> 4; + var b2 = b & 15; + if (b1 === eof) { + break; + } + str += lookup[b1]; + if (b2 === eof) { + break; + } + str += lookup[b2]; + } + return parseFloat(str); + } + var operands = []; + var entries = []; + pos = 0; + var end = dict.length; + while (pos < end) { + var b = dict[pos]; + if (b <= 21) { + if (b === 12) { + b = b << 8 | dict[++pos]; + } + entries.push([ + b, + operands + ]); + operands = []; + ++pos; + } else { + operands.push(parseOperand()); + } + } + return entries; + }, + parseIndex: function CFFParser_parseIndex(pos) { + var cffIndex = new CFFIndex(); + var bytes = this.bytes; + var count = bytes[pos++] << 8 | bytes[pos++]; + var offsets = []; + var end = pos; + var i, ii; + if (count !== 0) { + var offsetSize = bytes[pos++]; + var startPos = pos + (count + 1) * offsetSize - 1; + for (i = 0, ii = count + 1; i < ii; ++i) { + var offset = 0; + for (var j = 0; j < offsetSize; ++j) { + offset <<= 8; + offset += bytes[pos++]; + } + offsets.push(startPos + offset); + } + end = offsets[count]; + } + for (i = 0, ii = offsets.length - 1; i < ii; ++i) { + var offsetStart = offsets[i]; + var offsetEnd = offsets[i + 1]; + cffIndex.add(bytes.subarray(offsetStart, offsetEnd)); + } + return { + obj: cffIndex, + endPos: end + }; + }, + parseNameIndex: function CFFParser_parseNameIndex(index) { + var names = []; + for (var i = 0, ii = index.count; i < ii; ++i) { + var name = index.get(i); + var length = Math.min(name.length, 127); + var data = []; + for (var j = 0; j < length; ++j) { + var c = name[j]; + if (j === 0 && c === 0) { + data[j] = c; + continue; + } + if (c < 33 || c > 126 || c === 91 || c === 93 || c === 40 || c === 41 || c === 123 || c === 125 || c === 60 || c === 62 || c === 47 || c === 37 || c === 35) { + data[j] = 95; + continue; + } + data[j] = c; + } + names.push(bytesToString(data)); + } + return names; + }, + parseStringIndex: function CFFParser_parseStringIndex(index) { + var strings = new CFFStrings(); + for (var i = 0, ii = index.count; i < ii; ++i) { + var data = index.get(i); + strings.add(bytesToString(data)); + } + return strings; + }, + createDict: function CFFParser_createDict(Type, dict, strings) { + var cffDict = new Type(strings); + for (var i = 0, ii = dict.length; i < ii; ++i) { + var pair = dict[i]; + var key = pair[0]; + var value = pair[1]; + cffDict.setByKey(key, value); + } + return cffDict; + }, + parseCharString: function CFFParser_parseCharString(state, data, localSubrIndex, globalSubrIndex) { + if (!data || state.callDepth > MAX_SUBR_NESTING) { + return false; + } + var stackSize = state.stackSize; + var stack = state.stack; + var length = data.length; + for (var j = 0; j < length;) { + var value = data[j++]; + var validationCommand = null; + if (value === 12) { + var q = data[j++]; + if (q === 0) { + data[j - 2] = 139; + data[j - 1] = 22; + stackSize = 0; + } else { + validationCommand = CharstringValidationData12[q]; + } + } else if (value === 28) { + stack[stackSize] = (data[j] << 24 | data[j + 1] << 16) >> 16; + j += 2; + stackSize++; + } else if (value === 14) { + if (stackSize >= 4) { + stackSize -= 4; + if (this.seacAnalysisEnabled) { + state.seac = stack.slice(stackSize, stackSize + 4); + return false; + } + } + validationCommand = CharstringValidationData[value]; + } else if (value >= 32 && value <= 246) { + stack[stackSize] = value - 139; + stackSize++; + } else if (value >= 247 && value <= 254) { + stack[stackSize] = value < 251 ? (value - 247 << 8) + data[j] + 108 : -(value - 251 << 8) - data[j] - 108; + j++; + stackSize++; + } else if (value === 255) { + stack[stackSize] = (data[j] << 24 | data[j + 1] << 16 | data[j + 2] << 8 | data[j + 3]) / 65536; + j += 4; + stackSize++; + } else if (value === 19 || value === 20) { + state.hints += stackSize >> 1; + j += state.hints + 7 >> 3; + stackSize %= 2; + validationCommand = CharstringValidationData[value]; + } else if (value === 10 || value === 29) { + var subrsIndex; + if (value === 10) { + subrsIndex = localSubrIndex; + } else { + subrsIndex = globalSubrIndex; + } + if (!subrsIndex) { + validationCommand = CharstringValidationData[value]; + warn('Missing subrsIndex for ' + validationCommand.id); + return false; + } + var bias = 32768; + if (subrsIndex.count < 1240) { + bias = 107; + } else if (subrsIndex.count < 33900) { + bias = 1131; + } + var subrNumber = stack[--stackSize] + bias; + if (subrNumber < 0 || subrNumber >= subrsIndex.count || isNaN(subrNumber)) { + validationCommand = CharstringValidationData[value]; + warn('Out of bounds subrIndex for ' + validationCommand.id); + return false; + } + state.stackSize = stackSize; + state.callDepth++; + var valid = this.parseCharString(state, subrsIndex.get(subrNumber), localSubrIndex, globalSubrIndex); + if (!valid) { + return false; + } + state.callDepth--; + stackSize = state.stackSize; + continue; + } else if (value === 11) { + state.stackSize = stackSize; + return true; + } else { + validationCommand = CharstringValidationData[value]; + } + if (validationCommand) { + if (validationCommand.stem) { + state.hints += stackSize >> 1; + } + if ('min' in validationCommand) { + if (!state.undefStack && stackSize < validationCommand.min) { + warn('Not enough parameters for ' + validationCommand.id + '; actual: ' + stackSize + ', expected: ' + validationCommand.min); + return false; + } + } + if (state.firstStackClearing && validationCommand.stackClearing) { + state.firstStackClearing = false; + stackSize -= validationCommand.min; + if (stackSize >= 2 && validationCommand.stem) { + stackSize %= 2; + } else if (stackSize > 1) { + warn('Found too many parameters for stack-clearing command'); + } + if (stackSize > 0 && stack[stackSize - 1] >= 0) { + state.width = stack[stackSize - 1]; + } + } + if ('stackDelta' in validationCommand) { + if ('stackFn' in validationCommand) { + validationCommand.stackFn(stack, stackSize); + } + stackSize += validationCommand.stackDelta; + } else if (validationCommand.stackClearing) { + stackSize = 0; + } else if (validationCommand.resetStack) { + stackSize = 0; + state.undefStack = false; + } else if (validationCommand.undefStack) { + stackSize = 0; + state.undefStack = true; + state.firstStackClearing = false; + } + } + } + state.stackSize = stackSize; + return true; + }, + parseCharStrings: function CFFParser_parseCharStrings(charStrings, localSubrIndex, globalSubrIndex, fdSelect, fdArray) { + var seacs = []; + var widths = []; + var count = charStrings.count; + for (var i = 0; i < count; i++) { + var charstring = charStrings.get(i); + var state = { + callDepth: 0, + stackSize: 0, + stack: [], + undefStack: true, + hints: 0, + firstStackClearing: true, + seac: null, + width: null + }; + var valid = true; + var localSubrToUse = null; + if (fdSelect && fdArray.length) { + var fdIndex = fdSelect.getFDIndex(i); + if (fdIndex === -1) { + warn('Glyph index is not in fd select.'); + valid = false; + } + if (fdIndex >= fdArray.length) { + warn('Invalid fd index for glyph index.'); + valid = false; + } + if (valid) { + localSubrToUse = fdArray[fdIndex].privateDict.subrsIndex; + } + } else if (localSubrIndex) { + localSubrToUse = localSubrIndex; + } + if (valid) { + valid = this.parseCharString(state, charstring, localSubrToUse, globalSubrIndex); + } + if (state.width !== null) { + widths[i] = state.width; + } + if (state.seac !== null) { + seacs[i] = state.seac; + } + if (!valid) { + charStrings.set(i, new Uint8Array([14])); + } + } + return { + charStrings: charStrings, + seacs: seacs, + widths: widths + }; + }, + emptyPrivateDictionary: function CFFParser_emptyPrivateDictionary(parentDict) { + var privateDict = this.createDict(CFFPrivateDict, [], parentDict.strings); + parentDict.setByKey(18, [ + 0, + 0 + ]); + parentDict.privateDict = privateDict; + }, + parsePrivateDict: function CFFParser_parsePrivateDict(parentDict) { + if (!parentDict.hasName('Private')) { + this.emptyPrivateDictionary(parentDict); + return; + } + var privateOffset = parentDict.getByName('Private'); + if (!isArray(privateOffset) || privateOffset.length !== 2) { + parentDict.removeByName('Private'); + return; + } + var size = privateOffset[0]; + var offset = privateOffset[1]; + if (size === 0 || offset >= this.bytes.length) { + this.emptyPrivateDictionary(parentDict); + return; + } + var privateDictEnd = offset + size; + var dictData = this.bytes.subarray(offset, privateDictEnd); + var dict = this.parseDict(dictData); + var privateDict = this.createDict(CFFPrivateDict, dict, parentDict.strings); + parentDict.privateDict = privateDict; + if (!privateDict.getByName('Subrs')) { + return; + } + var subrsOffset = privateDict.getByName('Subrs'); + var relativeOffset = offset + subrsOffset; + if (subrsOffset === 0 || relativeOffset >= this.bytes.length) { + this.emptyPrivateDictionary(parentDict); + return; + } + var subrsIndex = this.parseIndex(relativeOffset); + privateDict.subrsIndex = subrsIndex.obj; + }, + parseCharsets: function CFFParser_parseCharsets(pos, length, strings, cid) { + if (pos === 0) { + return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE, ISOAdobeCharset); + } else if (pos === 1) { + return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT, ExpertCharset); + } else if (pos === 2) { + return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT_SUBSET, ExpertSubsetCharset); + } + var bytes = this.bytes; + var start = pos; + var format = bytes[pos++]; + var charset = ['.notdef']; + var id, count, i; + length -= 1; + switch (format) { + case 0: + for (i = 0; i < length; i++) { + id = bytes[pos++] << 8 | bytes[pos++]; + charset.push(cid ? id : strings.get(id)); + } + break; + case 1: + while (charset.length <= length) { + id = bytes[pos++] << 8 | bytes[pos++]; + count = bytes[pos++]; + for (i = 0; i <= count; i++) { + charset.push(cid ? id++ : strings.get(id++)); + } + } + break; + case 2: + while (charset.length <= length) { + id = bytes[pos++] << 8 | bytes[pos++]; + count = bytes[pos++] << 8 | bytes[pos++]; + for (i = 0; i <= count; i++) { + charset.push(cid ? id++ : strings.get(id++)); + } + } + break; + default: + error('Unknown charset format'); + } + var end = pos; + var raw = bytes.subarray(start, end); + return new CFFCharset(false, format, charset, raw); + }, + parseEncoding: function CFFParser_parseEncoding(pos, properties, strings, charset) { + var encoding = Object.create(null); + var bytes = this.bytes; + var predefined = false; + var format, i, ii; + var raw = null; + function readSupplement() { + var supplementsCount = bytes[pos++]; + for (i = 0; i < supplementsCount; i++) { + var code = bytes[pos++]; + var sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff); + encoding[code] = charset.indexOf(strings.get(sid)); + } + } + if (pos === 0 || pos === 1) { + predefined = true; + format = pos; + var baseEncoding = pos ? ExpertEncoding : StandardEncoding; + for (i = 0, ii = charset.length; i < ii; i++) { + var index = baseEncoding.indexOf(charset[i]); + if (index !== -1) { + encoding[index] = i; + } + } + } else { + var dataStart = pos; + format = bytes[pos++]; + switch (format & 0x7f) { + case 0: + var glyphsCount = bytes[pos++]; + for (i = 1; i <= glyphsCount; i++) { + encoding[bytes[pos++]] = i; + } + break; + case 1: + var rangesCount = bytes[pos++]; + var gid = 1; + for (i = 0; i < rangesCount; i++) { + var start = bytes[pos++]; + var left = bytes[pos++]; + for (var j = start; j <= start + left; j++) { + encoding[j] = gid++; + } + } + break; + default: + error('Unknown encoding format: ' + format + ' in CFF'); + break; + } + var dataEnd = pos; + if (format & 0x80) { + bytes[dataStart] &= 0x7f; + readSupplement(); + } + raw = bytes.subarray(dataStart, dataEnd); + } + format = format & 0x7f; + return new CFFEncoding(predefined, format, encoding, raw); + }, + parseFDSelect: function CFFParser_parseFDSelect(pos, length) { + var start = pos; + var bytes = this.bytes; + var format = bytes[pos++]; + var fdSelect = [], rawBytes; + var i, invalidFirstGID = false; + switch (format) { + case 0: + for (i = 0; i < length; ++i) { + var id = bytes[pos++]; + fdSelect.push(id); + } + rawBytes = bytes.subarray(start, pos); + break; + case 3: + var rangesCount = bytes[pos++] << 8 | bytes[pos++]; + for (i = 0; i < rangesCount; ++i) { + var first = bytes[pos++] << 8 | bytes[pos++]; + if (i === 0 && first !== 0) { + warn('parseFDSelect: The first range must have a first GID of 0' + ' -- trying to recover.'); + invalidFirstGID = true; + first = 0; + } + var fdIndex = bytes[pos++]; + var next = bytes[pos] << 8 | bytes[pos + 1]; + for (var j = first; j < next; ++j) { + fdSelect.push(fdIndex); + } + } + pos += 2; + rawBytes = bytes.subarray(start, pos); + if (invalidFirstGID) { + rawBytes[3] = rawBytes[4] = 0; + } + break; + default: + error('parseFDSelect: Unknown format "' + format + '".'); + break; + } + assert(fdSelect.length === length, 'parseFDSelect: Invalid font data.'); + return new CFFFDSelect(fdSelect, rawBytes); + } + }; + return CFFParser; +}(); +var CFF = function CFFClosure() { + function CFF() { + this.header = null; + this.names = []; + this.topDict = null; + this.strings = new CFFStrings(); + this.globalSubrIndex = null; + this.encoding = null; + this.charset = null; + this.charStrings = null; + this.fdArray = []; + this.fdSelect = null; + this.isCIDFont = false; + } + return CFF; +}(); +var CFFHeader = function CFFHeaderClosure() { + function CFFHeader(major, minor, hdrSize, offSize) { + this.major = major; + this.minor = minor; + this.hdrSize = hdrSize; + this.offSize = offSize; + } + return CFFHeader; +}(); +var CFFStrings = function CFFStringsClosure() { + function CFFStrings() { + this.strings = []; + } + CFFStrings.prototype = { + get: function CFFStrings_get(index) { + if (index >= 0 && index <= 390) { + return CFFStandardStrings[index]; + } + if (index - 391 <= this.strings.length) { + return this.strings[index - 391]; + } + return CFFStandardStrings[0]; + }, + add: function CFFStrings_add(value) { + this.strings.push(value); + }, + get count() { + return this.strings.length; + } + }; + return CFFStrings; +}(); +var CFFIndex = function CFFIndexClosure() { + function CFFIndex() { + this.objects = []; + this.length = 0; + } + CFFIndex.prototype = { + add: function CFFIndex_add(data) { + this.length += data.length; + this.objects.push(data); + }, + set: function CFFIndex_set(index, data) { + this.length += data.length - this.objects[index].length; + this.objects[index] = data; + }, + get: function CFFIndex_get(index) { + return this.objects[index]; + }, + get count() { + return this.objects.length; + } + }; + return CFFIndex; +}(); +var CFFDict = function CFFDictClosure() { + function CFFDict(tables, strings) { + this.keyToNameMap = tables.keyToNameMap; + this.nameToKeyMap = tables.nameToKeyMap; + this.defaults = tables.defaults; + this.types = tables.types; + this.opcodes = tables.opcodes; + this.order = tables.order; + this.strings = strings; + this.values = Object.create(null); + } + CFFDict.prototype = { + setByKey: function CFFDict_setByKey(key, value) { + if (!(key in this.keyToNameMap)) { + return false; + } + var valueLength = value.length; + if (valueLength === 0) { + return true; + } + for (var i = 0; i < valueLength; i++) { + if (isNaN(value[i])) { + warn('Invalid CFFDict value: "' + value + '" for key "' + key + '".'); + return true; + } + } + var type = this.types[key]; + if (type === 'num' || type === 'sid' || type === 'offset') { + value = value[0]; + } + this.values[key] = value; + return true; + }, + setByName: function CFFDict_setByName(name, value) { + if (!(name in this.nameToKeyMap)) { + error('Invalid dictionary name "' + name + '"'); + } + this.values[this.nameToKeyMap[name]] = value; + }, + hasName: function CFFDict_hasName(name) { + return this.nameToKeyMap[name] in this.values; + }, + getByName: function CFFDict_getByName(name) { + if (!(name in this.nameToKeyMap)) { + error('Invalid dictionary name "' + name + '"'); + } + var key = this.nameToKeyMap[name]; + if (!(key in this.values)) { + return this.defaults[key]; + } + return this.values[key]; + }, + removeByName: function CFFDict_removeByName(name) { + delete this.values[this.nameToKeyMap[name]]; + } + }; + CFFDict.createTables = function CFFDict_createTables(layout) { + var tables = { + keyToNameMap: {}, + nameToKeyMap: {}, + defaults: {}, + types: {}, + opcodes: {}, + order: [] + }; + for (var i = 0, ii = layout.length; i < ii; ++i) { + var entry = layout[i]; + var key = isArray(entry[0]) ? (entry[0][0] << 8) + entry[0][1] : entry[0]; + tables.keyToNameMap[key] = entry[1]; + tables.nameToKeyMap[entry[1]] = key; + tables.types[key] = entry[2]; + tables.defaults[key] = entry[3]; + tables.opcodes[key] = isArray(entry[0]) ? entry[0] : [entry[0]]; + tables.order.push(key); + } + return tables; + }; + return CFFDict; +}(); +var CFFTopDict = function CFFTopDictClosure() { + var layout = [ + [ + [ + 12, + 30 + ], + 'ROS', + [ + 'sid', + 'sid', + 'num' + ], + null + ], + [ + [ + 12, + 20 + ], + 'SyntheticBase', + 'num', + null + ], + [ + 0, + 'version', + 'sid', + null + ], + [ + 1, + 'Notice', + 'sid', + null + ], + [ + [ + 12, + 0 + ], + 'Copyright', + 'sid', + null + ], + [ + 2, + 'FullName', + 'sid', + null + ], + [ + 3, + 'FamilyName', + 'sid', + null + ], + [ + 4, + 'Weight', + 'sid', + null + ], + [ + [ + 12, + 1 + ], + 'isFixedPitch', + 'num', + 0 + ], + [ + [ + 12, + 2 + ], + 'ItalicAngle', + 'num', + 0 + ], + [ + [ + 12, + 3 + ], + 'UnderlinePosition', + 'num', + -100 + ], + [ + [ + 12, + 4 + ], + 'UnderlineThickness', + 'num', + 50 + ], + [ + [ + 12, + 5 + ], + 'PaintType', + 'num', + 0 + ], + [ + [ + 12, + 6 + ], + 'CharstringType', + 'num', + 2 + ], + [ + [ + 12, + 7 + ], + 'FontMatrix', + [ + 'num', + 'num', + 'num', + 'num', + 'num', + 'num' + ], + [ + 0.001, + 0, + 0, + 0.001, + 0, + 0 + ] + ], + [ + 13, + 'UniqueID', + 'num', + null + ], + [ + 5, + 'FontBBox', + [ + 'num', + 'num', + 'num', + 'num' + ], + [ + 0, + 0, + 0, + 0 + ] + ], + [ + [ + 12, + 8 + ], + 'StrokeWidth', + 'num', + 0 + ], + [ + 14, + 'XUID', + 'array', + null + ], + [ + 15, + 'charset', + 'offset', + 0 + ], + [ + 16, + 'Encoding', + 'offset', + 0 + ], + [ + 17, + 'CharStrings', + 'offset', + 0 + ], + [ + 18, + 'Private', + [ + 'offset', + 'offset' + ], + null + ], + [ + [ + 12, + 21 + ], + 'PostScript', + 'sid', + null + ], + [ + [ + 12, + 22 + ], + 'BaseFontName', + 'sid', + null + ], + [ + [ + 12, + 23 + ], + 'BaseFontBlend', + 'delta', + null + ], + [ + [ + 12, + 31 + ], + 'CIDFontVersion', + 'num', + 0 + ], + [ + [ + 12, + 32 + ], + 'CIDFontRevision', + 'num', + 0 + ], + [ + [ + 12, + 33 + ], + 'CIDFontType', + 'num', + 0 + ], + [ + [ + 12, + 34 + ], + 'CIDCount', + 'num', + 8720 + ], + [ + [ + 12, + 35 + ], + 'UIDBase', + 'num', + null + ], + [ + [ + 12, + 37 + ], + 'FDSelect', + 'offset', + null + ], + [ + [ + 12, + 36 + ], + 'FDArray', + 'offset', + null + ], + [ + [ + 12, + 38 + ], + 'FontName', + 'sid', + null + ] + ]; + var tables = null; + function CFFTopDict(strings) { + if (tables === null) { + tables = CFFDict.createTables(layout); + } + CFFDict.call(this, tables, strings); + this.privateDict = null; + } + CFFTopDict.prototype = Object.create(CFFDict.prototype); + return CFFTopDict; +}(); +var CFFPrivateDict = function CFFPrivateDictClosure() { + var layout = [ + [ + 6, + 'BlueValues', + 'delta', + null + ], + [ + 7, + 'OtherBlues', + 'delta', + null + ], + [ + 8, + 'FamilyBlues', + 'delta', + null + ], + [ + 9, + 'FamilyOtherBlues', + 'delta', + null + ], + [ + [ + 12, + 9 + ], + 'BlueScale', + 'num', + 0.039625 + ], + [ + [ + 12, + 10 + ], + 'BlueShift', + 'num', + 7 + ], + [ + [ + 12, + 11 + ], + 'BlueFuzz', + 'num', + 1 + ], + [ + 10, + 'StdHW', + 'num', + null + ], + [ + 11, + 'StdVW', + 'num', + null + ], + [ + [ + 12, + 12 + ], + 'StemSnapH', + 'delta', + null + ], + [ + [ + 12, + 13 + ], + 'StemSnapV', + 'delta', + null + ], + [ + [ + 12, + 14 + ], + 'ForceBold', + 'num', + 0 + ], + [ + [ + 12, + 17 + ], + 'LanguageGroup', + 'num', + 0 + ], + [ + [ + 12, + 18 + ], + 'ExpansionFactor', + 'num', + 0.06 + ], + [ + [ + 12, + 19 + ], + 'initialRandomSeed', + 'num', + 0 + ], + [ + 20, + 'defaultWidthX', + 'num', + 0 + ], + [ + 21, + 'nominalWidthX', + 'num', + 0 + ], + [ + 19, + 'Subrs', + 'offset', + null + ] + ]; + var tables = null; + function CFFPrivateDict(strings) { + if (tables === null) { + tables = CFFDict.createTables(layout); + } + CFFDict.call(this, tables, strings); + this.subrsIndex = null; + } + CFFPrivateDict.prototype = Object.create(CFFDict.prototype); + return CFFPrivateDict; +}(); +var CFFCharsetPredefinedTypes = { + ISO_ADOBE: 0, + EXPERT: 1, + EXPERT_SUBSET: 2 +}; +var CFFCharset = function CFFCharsetClosure() { + function CFFCharset(predefined, format, charset, raw) { + this.predefined = predefined; + this.format = format; + this.charset = charset; + this.raw = raw; + } + return CFFCharset; +}(); +var CFFEncoding = function CFFEncodingClosure() { + function CFFEncoding(predefined, format, encoding, raw) { + this.predefined = predefined; + this.format = format; + this.encoding = encoding; + this.raw = raw; + } + return CFFEncoding; +}(); +var CFFFDSelect = function CFFFDSelectClosure() { + function CFFFDSelect(fdSelect, raw) { + this.fdSelect = fdSelect; + this.raw = raw; + } + CFFFDSelect.prototype = { + getFDIndex: function CFFFDSelect_get(glyphIndex) { + if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) { + return -1; + } + return this.fdSelect[glyphIndex]; + } + }; + return CFFFDSelect; +}(); +var CFFOffsetTracker = function CFFOffsetTrackerClosure() { + function CFFOffsetTracker() { + this.offsets = Object.create(null); + } + CFFOffsetTracker.prototype = { + isTracking: function CFFOffsetTracker_isTracking(key) { + return key in this.offsets; + }, + track: function CFFOffsetTracker_track(key, location) { + if (key in this.offsets) { + error('Already tracking location of ' + key); + } + this.offsets[key] = location; + }, + offset: function CFFOffsetTracker_offset(value) { + for (var key in this.offsets) { + this.offsets[key] += value; + } + }, + setEntryLocation: function CFFOffsetTracker_setEntryLocation(key, values, output) { + if (!(key in this.offsets)) { + error('Not tracking location of ' + key); + } + var data = output.data; + var dataOffset = this.offsets[key]; + var size = 5; + for (var i = 0, ii = values.length; i < ii; ++i) { + var offset0 = i * size + dataOffset; + var offset1 = offset0 + 1; + var offset2 = offset0 + 2; + var offset3 = offset0 + 3; + var offset4 = offset0 + 4; + if (data[offset0] !== 0x1d || data[offset1] !== 0 || data[offset2] !== 0 || data[offset3] !== 0 || data[offset4] !== 0) { + error('writing to an offset that is not empty'); + } + var value = values[i]; + data[offset0] = 0x1d; + data[offset1] = value >> 24 & 0xFF; + data[offset2] = value >> 16 & 0xFF; + data[offset3] = value >> 8 & 0xFF; + data[offset4] = value & 0xFF; + } + } + }; + return CFFOffsetTracker; +}(); +var CFFCompiler = function CFFCompilerClosure() { + function CFFCompiler(cff) { + this.cff = cff; + } + CFFCompiler.prototype = { + compile: function CFFCompiler_compile() { + var cff = this.cff; + var output = { + data: [], + length: 0, + add: function CFFCompiler_add(data) { + this.data = this.data.concat(data); + this.length = this.data.length; + } + }; + var header = this.compileHeader(cff.header); + output.add(header); + var nameIndex = this.compileNameIndex(cff.names); + output.add(nameIndex); + if (cff.isCIDFont) { + if (cff.topDict.hasName('FontMatrix')) { + var base = cff.topDict.getByName('FontMatrix'); + cff.topDict.removeByName('FontMatrix'); + for (var i = 0, ii = cff.fdArray.length; i < ii; i++) { + var subDict = cff.fdArray[i]; + var matrix = base.slice(0); + if (subDict.hasName('FontMatrix')) { + matrix = Util.transform(matrix, subDict.getByName('FontMatrix')); + } + subDict.setByName('FontMatrix', matrix); + } + } + } + var compiled = this.compileTopDicts([cff.topDict], output.length, cff.isCIDFont); + output.add(compiled.output); + var topDictTracker = compiled.trackers[0]; + var stringIndex = this.compileStringIndex(cff.strings.strings); + output.add(stringIndex); + var globalSubrIndex = this.compileIndex(cff.globalSubrIndex); + output.add(globalSubrIndex); + if (cff.encoding && cff.topDict.hasName('Encoding')) { + if (cff.encoding.predefined) { + topDictTracker.setEntryLocation('Encoding', [cff.encoding.format], output); + } else { + var encoding = this.compileEncoding(cff.encoding); + topDictTracker.setEntryLocation('Encoding', [output.length], output); + output.add(encoding); + } + } + if (cff.charset && cff.topDict.hasName('charset')) { + if (cff.charset.predefined) { + topDictTracker.setEntryLocation('charset', [cff.charset.format], output); + } else { + var charset = this.compileCharset(cff.charset); + topDictTracker.setEntryLocation('charset', [output.length], output); + output.add(charset); + } + } + var charStrings = this.compileCharStrings(cff.charStrings); + topDictTracker.setEntryLocation('CharStrings', [output.length], output); + output.add(charStrings); + if (cff.isCIDFont) { + topDictTracker.setEntryLocation('FDSelect', [output.length], output); + var fdSelect = this.compileFDSelect(cff.fdSelect.raw); + output.add(fdSelect); + compiled = this.compileTopDicts(cff.fdArray, output.length, true); + topDictTracker.setEntryLocation('FDArray', [output.length], output); + output.add(compiled.output); + var fontDictTrackers = compiled.trackers; + this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output); + } + this.compilePrivateDicts([cff.topDict], [topDictTracker], output); + output.add([0]); + return output.data; + }, + encodeNumber: function CFFCompiler_encodeNumber(value) { + if (parseFloat(value) === parseInt(value, 10) && !isNaN(value)) { + return this.encodeInteger(value); + } + return this.encodeFloat(value); + }, + encodeFloat: function CFFCompiler_encodeFloat(num) { + var value = num.toString(); + var m = /\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(value); + if (m) { + var epsilon = parseFloat('1e' + ((m[2] ? +m[2] : 0) + m[1].length)); + value = (Math.round(num * epsilon) / epsilon).toString(); + } + var nibbles = ''; + var i, ii; + for (i = 0, ii = value.length; i < ii; ++i) { + var a = value[i]; + if (a === 'e') { + nibbles += value[++i] === '-' ? 'c' : 'b'; + } else if (a === '.') { + nibbles += 'a'; + } else if (a === '-') { + nibbles += 'e'; + } else { + nibbles += a; + } + } + nibbles += nibbles.length & 1 ? 'f' : 'ff'; + var out = [30]; + for (i = 0, ii = nibbles.length; i < ii; i += 2) { + out.push(parseInt(nibbles.substr(i, 2), 16)); + } + return out; + }, + encodeInteger: function CFFCompiler_encodeInteger(value) { + var code; + if (value >= -107 && value <= 107) { + code = [value + 139]; + } else if (value >= 108 && value <= 1131) { + value = value - 108; + code = [ + (value >> 8) + 247, + value & 0xFF + ]; + } else if (value >= -1131 && value <= -108) { + value = -value - 108; + code = [ + (value >> 8) + 251, + value & 0xFF + ]; + } else if (value >= -32768 && value <= 32767) { + code = [ + 0x1c, + value >> 8 & 0xFF, + value & 0xFF + ]; + } else { + code = [ + 0x1d, + value >> 24 & 0xFF, + value >> 16 & 0xFF, + value >> 8 & 0xFF, + value & 0xFF + ]; + } + return code; + }, + compileHeader: function CFFCompiler_compileHeader(header) { + return [ + header.major, + header.minor, + header.hdrSize, + header.offSize + ]; + }, + compileNameIndex: function CFFCompiler_compileNameIndex(names) { + var nameIndex = new CFFIndex(); + for (var i = 0, ii = names.length; i < ii; ++i) { + nameIndex.add(stringToBytes(names[i])); + } + return this.compileIndex(nameIndex); + }, + compileTopDicts: function CFFCompiler_compileTopDicts(dicts, length, removeCidKeys) { + var fontDictTrackers = []; + var fdArrayIndex = new CFFIndex(); + for (var i = 0, ii = dicts.length; i < ii; ++i) { + var fontDict = dicts[i]; + if (removeCidKeys) { + fontDict.removeByName('CIDFontVersion'); + fontDict.removeByName('CIDFontRevision'); + fontDict.removeByName('CIDFontType'); + fontDict.removeByName('CIDCount'); + fontDict.removeByName('UIDBase'); + } + var fontDictTracker = new CFFOffsetTracker(); + var fontDictData = this.compileDict(fontDict, fontDictTracker); + fontDictTrackers.push(fontDictTracker); + fdArrayIndex.add(fontDictData); + fontDictTracker.offset(length); + } + fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers); + return { + trackers: fontDictTrackers, + output: fdArrayIndex + }; + }, + compilePrivateDicts: function CFFCompiler_compilePrivateDicts(dicts, trackers, output) { + for (var i = 0, ii = dicts.length; i < ii; ++i) { + var fontDict = dicts[i]; + assert(fontDict.privateDict && fontDict.hasName('Private'), 'There must be an private dictionary.'); + var privateDict = fontDict.privateDict; + var privateDictTracker = new CFFOffsetTracker(); + var privateDictData = this.compileDict(privateDict, privateDictTracker); + var outputLength = output.length; + privateDictTracker.offset(outputLength); + if (!privateDictData.length) { + outputLength = 0; + } + trackers[i].setEntryLocation('Private', [ + privateDictData.length, + outputLength + ], output); + output.add(privateDictData); + if (privateDict.subrsIndex && privateDict.hasName('Subrs')) { + var subrs = this.compileIndex(privateDict.subrsIndex); + privateDictTracker.setEntryLocation('Subrs', [privateDictData.length], output); + output.add(subrs); + } + } + }, + compileDict: function CFFCompiler_compileDict(dict, offsetTracker) { + var out = []; + var order = dict.order; + for (var i = 0; i < order.length; ++i) { + var key = order[i]; + if (!(key in dict.values)) { + continue; + } + var values = dict.values[key]; + var types = dict.types[key]; + if (!isArray(types)) { + types = [types]; + } + if (!isArray(values)) { + values = [values]; + } + if (values.length === 0) { + continue; + } + for (var j = 0, jj = types.length; j < jj; ++j) { + var type = types[j]; + var value = values[j]; + switch (type) { + case 'num': + case 'sid': + out = out.concat(this.encodeNumber(value)); + break; + case 'offset': + var name = dict.keyToNameMap[key]; + if (!offsetTracker.isTracking(name)) { + offsetTracker.track(name, out.length); + } + out = out.concat([ + 0x1d, + 0, + 0, + 0, + 0 + ]); + break; + case 'array': + case 'delta': + out = out.concat(this.encodeNumber(value)); + for (var k = 1, kk = values.length; k < kk; ++k) { + out = out.concat(this.encodeNumber(values[k])); + } + break; + default: + error('Unknown data type of ' + type); + break; + } + } + out = out.concat(dict.opcodes[key]); + } + return out; + }, + compileStringIndex: function CFFCompiler_compileStringIndex(strings) { + var stringIndex = new CFFIndex(); + for (var i = 0, ii = strings.length; i < ii; ++i) { + stringIndex.add(stringToBytes(strings[i])); + } + return this.compileIndex(stringIndex); + }, + compileGlobalSubrIndex: function CFFCompiler_compileGlobalSubrIndex() { + var globalSubrIndex = this.cff.globalSubrIndex; + this.out.writeByteArray(this.compileIndex(globalSubrIndex)); + }, + compileCharStrings: function CFFCompiler_compileCharStrings(charStrings) { + return this.compileIndex(charStrings); + }, + compileCharset: function CFFCompiler_compileCharset(charset) { + return this.compileTypedArray(charset.raw); + }, + compileEncoding: function CFFCompiler_compileEncoding(encoding) { + return this.compileTypedArray(encoding.raw); + }, + compileFDSelect: function CFFCompiler_compileFDSelect(fdSelect) { + return this.compileTypedArray(fdSelect); + }, + compileTypedArray: function CFFCompiler_compileTypedArray(data) { + var out = []; + for (var i = 0, ii = data.length; i < ii; ++i) { + out[i] = data[i]; + } + return out; + }, + compileIndex: function CFFCompiler_compileIndex(index, trackers) { + trackers = trackers || []; + var objects = index.objects; + var count = objects.length; + if (count === 0) { + return [ + 0, + 0, + 0 + ]; + } + var data = [ + count >> 8 & 0xFF, + count & 0xff + ]; + var lastOffset = 1, i; + for (i = 0; i < count; ++i) { + lastOffset += objects[i].length; + } + var offsetSize; + if (lastOffset < 0x100) { + offsetSize = 1; + } else if (lastOffset < 0x10000) { + offsetSize = 2; + } else if (lastOffset < 0x1000000) { + offsetSize = 3; + } else { + offsetSize = 4; + } + data.push(offsetSize); + var relativeOffset = 1; + for (i = 0; i < count + 1; i++) { + if (offsetSize === 1) { + data.push(relativeOffset & 0xFF); + } else if (offsetSize === 2) { + data.push(relativeOffset >> 8 & 0xFF, relativeOffset & 0xFF); + } else if (offsetSize === 3) { + data.push(relativeOffset >> 16 & 0xFF, relativeOffset >> 8 & 0xFF, relativeOffset & 0xFF); + } else { + data.push(relativeOffset >>> 24 & 0xFF, relativeOffset >> 16 & 0xFF, relativeOffset >> 8 & 0xFF, relativeOffset & 0xFF); + } + if (objects[i]) { + relativeOffset += objects[i].length; + } + } + for (i = 0; i < count; i++) { + if (trackers[i]) { + trackers[i].offset(data.length); + } + for (var j = 0, jj = objects[i].length; j < jj; j++) { + data.push(objects[i][j]); + } + } + return data; + } + }; + return CFFCompiler; +}(); +exports.CFFStandardStrings = CFFStandardStrings; +exports.CFFParser = CFFParser; +exports.CFF = CFF; +exports.CFFHeader = CFFHeader; +exports.CFFStrings = CFFStrings; +exports.CFFIndex = CFFIndex; +exports.CFFCharset = CFFCharset; +exports.CFFTopDict = CFFTopDict; +exports.CFFPrivateDict = CFFPrivateDict; +exports.CFFCompiler = CFFCompiler; + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var MissingDataException = sharedUtil.MissingDataException; +var arrayByteLength = sharedUtil.arrayByteLength; +var arraysToBytes = sharedUtil.arraysToBytes; +var assert = sharedUtil.assert; +var createPromiseCapability = sharedUtil.createPromiseCapability; +var isInt = sharedUtil.isInt; +var isEmptyObj = sharedUtil.isEmptyObj; +var ChunkedStream = function ChunkedStreamClosure() { + function ChunkedStream(length, chunkSize, manager) { + this.bytes = new Uint8Array(length); + this.start = 0; + this.pos = 0; + this.end = length; + this.chunkSize = chunkSize; + this.loadedChunks = []; + this.numChunksLoaded = 0; + this.numChunks = Math.ceil(length / chunkSize); + this.manager = manager; + this.progressiveDataLength = 0; + this.lastSuccessfulEnsureByteChunk = -1; + } + ChunkedStream.prototype = { + getMissingChunks: function ChunkedStream_getMissingChunks() { + var chunks = []; + for (var chunk = 0, n = this.numChunks; chunk < n; ++chunk) { + if (!this.loadedChunks[chunk]) { + chunks.push(chunk); + } + } + return chunks; + }, + getBaseStreams: function ChunkedStream_getBaseStreams() { + return [this]; + }, + allChunksLoaded: function ChunkedStream_allChunksLoaded() { + return this.numChunksLoaded === this.numChunks; + }, + onReceiveData: function ChunkedStream_onReceiveData(begin, chunk) { + var end = begin + chunk.byteLength; + assert(begin % this.chunkSize === 0, 'Bad begin offset: ' + begin); + var length = this.bytes.length; + assert(end % this.chunkSize === 0 || end === length, 'Bad end offset: ' + end); + this.bytes.set(new Uint8Array(chunk), begin); + var chunkSize = this.chunkSize; + var beginChunk = Math.floor(begin / chunkSize); + var endChunk = Math.floor((end - 1) / chunkSize) + 1; + var curChunk; + for (curChunk = beginChunk; curChunk < endChunk; ++curChunk) { + if (!this.loadedChunks[curChunk]) { + this.loadedChunks[curChunk] = true; + ++this.numChunksLoaded; + } + } + }, + onReceiveProgressiveData: function ChunkedStream_onReceiveProgressiveData(data) { + var position = this.progressiveDataLength; + var beginChunk = Math.floor(position / this.chunkSize); + this.bytes.set(new Uint8Array(data), position); + position += data.byteLength; + this.progressiveDataLength = position; + var endChunk = position >= this.end ? this.numChunks : Math.floor(position / this.chunkSize); + var curChunk; + for (curChunk = beginChunk; curChunk < endChunk; ++curChunk) { + if (!this.loadedChunks[curChunk]) { + this.loadedChunks[curChunk] = true; + ++this.numChunksLoaded; + } + } + }, + ensureByte: function ChunkedStream_ensureByte(pos) { + var chunk = Math.floor(pos / this.chunkSize); + if (chunk === this.lastSuccessfulEnsureByteChunk) { + return; + } + if (!this.loadedChunks[chunk]) { + throw new MissingDataException(pos, pos + 1); + } + this.lastSuccessfulEnsureByteChunk = chunk; + }, + ensureRange: function ChunkedStream_ensureRange(begin, end) { + if (begin >= end) { + return; + } + if (end <= this.progressiveDataLength) { + return; + } + var chunkSize = this.chunkSize; + var beginChunk = Math.floor(begin / chunkSize); + var endChunk = Math.floor((end - 1) / chunkSize) + 1; + for (var chunk = beginChunk; chunk < endChunk; ++chunk) { + if (!this.loadedChunks[chunk]) { + throw new MissingDataException(begin, end); + } + } + }, + nextEmptyChunk: function ChunkedStream_nextEmptyChunk(beginChunk) { + var chunk, numChunks = this.numChunks; + for (var i = 0; i < numChunks; ++i) { + chunk = (beginChunk + i) % numChunks; + if (!this.loadedChunks[chunk]) { + return chunk; + } + } + return null; + }, + hasChunk: function ChunkedStream_hasChunk(chunk) { + return !!this.loadedChunks[chunk]; + }, + get length() { + return this.end - this.start; + }, + get isEmpty() { + return this.length === 0; + }, + getByte: function ChunkedStream_getByte() { + var pos = this.pos; + if (pos >= this.end) { + return -1; + } + this.ensureByte(pos); + return this.bytes[this.pos++]; + }, + getUint16: function ChunkedStream_getUint16() { + var b0 = this.getByte(); + var b1 = this.getByte(); + if (b0 === -1 || b1 === -1) { + return -1; + } + return (b0 << 8) + b1; + }, + getInt32: function ChunkedStream_getInt32() { + var b0 = this.getByte(); + var b1 = this.getByte(); + var b2 = this.getByte(); + var b3 = this.getByte(); + return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3; + }, + getBytes: function ChunkedStream_getBytes(length) { + var bytes = this.bytes; + var pos = this.pos; + var strEnd = this.end; + if (!length) { + this.ensureRange(pos, strEnd); + return bytes.subarray(pos, strEnd); + } + var end = pos + length; + if (end > strEnd) { + end = strEnd; + } + this.ensureRange(pos, end); + this.pos = end; + return bytes.subarray(pos, end); + }, + peekByte: function ChunkedStream_peekByte() { + var peekedByte = this.getByte(); + this.pos--; + return peekedByte; + }, + peekBytes: function ChunkedStream_peekBytes(length) { + var bytes = this.getBytes(length); + this.pos -= bytes.length; + return bytes; + }, + getByteRange: function ChunkedStream_getBytes(begin, end) { + this.ensureRange(begin, end); + return this.bytes.subarray(begin, end); + }, + skip: function ChunkedStream_skip(n) { + if (!n) { + n = 1; + } + this.pos += n; + }, + reset: function ChunkedStream_reset() { + this.pos = this.start; + }, + moveStart: function ChunkedStream_moveStart() { + this.start = this.pos; + }, + makeSubStream: function ChunkedStream_makeSubStream(start, length, dict) { + this.ensureRange(start, start + length); + function ChunkedStreamSubstream() { + } + ChunkedStreamSubstream.prototype = Object.create(this); + ChunkedStreamSubstream.prototype.getMissingChunks = function () { + var chunkSize = this.chunkSize; + var beginChunk = Math.floor(this.start / chunkSize); + var endChunk = Math.floor((this.end - 1) / chunkSize) + 1; + var missingChunks = []; + for (var chunk = beginChunk; chunk < endChunk; ++chunk) { + if (!this.loadedChunks[chunk]) { + missingChunks.push(chunk); + } + } + return missingChunks; + }; + var subStream = new ChunkedStreamSubstream(); + subStream.pos = subStream.start = start; + subStream.end = start + length || this.end; + subStream.dict = dict; + return subStream; + } + }; + return ChunkedStream; +}(); +var ChunkedStreamManager = function ChunkedStreamManagerClosure() { + function ChunkedStreamManager(pdfNetworkStream, args) { + var chunkSize = args.rangeChunkSize; + var length = args.length; + this.stream = new ChunkedStream(length, chunkSize, this); + this.length = length; + this.chunkSize = chunkSize; + this.pdfNetworkStream = pdfNetworkStream; + this.url = args.url; + this.disableAutoFetch = args.disableAutoFetch; + this.msgHandler = args.msgHandler; + this.currRequestId = 0; + this.chunksNeededByRequest = Object.create(null); + this.requestsByChunk = Object.create(null); + this.promisesByRequest = Object.create(null); + this.progressiveDataLength = 0; + this.aborted = false; + this._loadedStreamCapability = createPromiseCapability(); + } + ChunkedStreamManager.prototype = { + onLoadedStream: function ChunkedStreamManager_getLoadedStream() { + return this._loadedStreamCapability.promise; + }, + sendRequest: function ChunkedStreamManager_sendRequest(begin, end) { + var rangeReader = this.pdfNetworkStream.getRangeReader(begin, end); + if (!rangeReader.isStreamingSupported) { + rangeReader.onProgress = this.onProgress.bind(this); + } + var chunks = [], loaded = 0; + var manager = this; + var promise = new Promise(function (resolve, reject) { + var readChunk = function (chunk) { + try { + if (!chunk.done) { + var data = chunk.value; + chunks.push(data); + loaded += arrayByteLength(data); + if (rangeReader.isStreamingSupported) { + manager.onProgress({ loaded: loaded }); + } + rangeReader.read().then(readChunk, reject); + return; + } + var chunkData = arraysToBytes(chunks); + chunks = null; + resolve(chunkData); + } catch (e) { + reject(e); + } + }; + rangeReader.read().then(readChunk, reject); + }); + promise.then(function (data) { + if (this.aborted) { + return; + } + this.onReceiveData({ + chunk: data, + begin: begin + }); + }.bind(this)); + }, + requestAllChunks: function ChunkedStreamManager_requestAllChunks() { + var missingChunks = this.stream.getMissingChunks(); + this._requestChunks(missingChunks); + return this._loadedStreamCapability.promise; + }, + _requestChunks: function ChunkedStreamManager_requestChunks(chunks) { + var requestId = this.currRequestId++; + var i, ii; + var chunksNeeded = Object.create(null); + this.chunksNeededByRequest[requestId] = chunksNeeded; + for (i = 0, ii = chunks.length; i < ii; i++) { + if (!this.stream.hasChunk(chunks[i])) { + chunksNeeded[chunks[i]] = true; + } + } + if (isEmptyObj(chunksNeeded)) { + return Promise.resolve(); + } + var capability = createPromiseCapability(); + this.promisesByRequest[requestId] = capability; + var chunksToRequest = []; + for (var chunk in chunksNeeded) { + chunk = chunk | 0; + if (!(chunk in this.requestsByChunk)) { + this.requestsByChunk[chunk] = []; + chunksToRequest.push(chunk); + } + this.requestsByChunk[chunk].push(requestId); + } + if (!chunksToRequest.length) { + return capability.promise; + } + var groupedChunksToRequest = this.groupChunks(chunksToRequest); + for (i = 0; i < groupedChunksToRequest.length; ++i) { + var groupedChunk = groupedChunksToRequest[i]; + var begin = groupedChunk.beginChunk * this.chunkSize; + var end = Math.min(groupedChunk.endChunk * this.chunkSize, this.length); + this.sendRequest(begin, end); + } + return capability.promise; + }, + getStream: function ChunkedStreamManager_getStream() { + return this.stream; + }, + requestRange: function ChunkedStreamManager_requestRange(begin, end) { + end = Math.min(end, this.length); + var beginChunk = this.getBeginChunk(begin); + var endChunk = this.getEndChunk(end); + var chunks = []; + for (var chunk = beginChunk; chunk < endChunk; ++chunk) { + chunks.push(chunk); + } + return this._requestChunks(chunks); + }, + requestRanges: function ChunkedStreamManager_requestRanges(ranges) { + ranges = ranges || []; + var chunksToRequest = []; + for (var i = 0; i < ranges.length; i++) { + var beginChunk = this.getBeginChunk(ranges[i].begin); + var endChunk = this.getEndChunk(ranges[i].end); + for (var chunk = beginChunk; chunk < endChunk; ++chunk) { + if (chunksToRequest.indexOf(chunk) < 0) { + chunksToRequest.push(chunk); + } + } + } + chunksToRequest.sort(function (a, b) { + return a - b; + }); + return this._requestChunks(chunksToRequest); + }, + groupChunks: function ChunkedStreamManager_groupChunks(chunks) { + var groupedChunks = []; + var beginChunk = -1; + var prevChunk = -1; + for (var i = 0; i < chunks.length; ++i) { + var chunk = chunks[i]; + if (beginChunk < 0) { + beginChunk = chunk; + } + if (prevChunk >= 0 && prevChunk + 1 !== chunk) { + groupedChunks.push({ + beginChunk: beginChunk, + endChunk: prevChunk + 1 + }); + beginChunk = chunk; + } + if (i + 1 === chunks.length) { + groupedChunks.push({ + beginChunk: beginChunk, + endChunk: chunk + 1 + }); + } + prevChunk = chunk; + } + return groupedChunks; + }, + onProgress: function ChunkedStreamManager_onProgress(args) { + var bytesLoaded = this.stream.numChunksLoaded * this.chunkSize + args.loaded; + this.msgHandler.send('DocProgress', { + loaded: bytesLoaded, + total: this.length + }); + }, + onReceiveData: function ChunkedStreamManager_onReceiveData(args) { + var chunk = args.chunk; + var isProgressive = args.begin === undefined; + var begin = isProgressive ? this.progressiveDataLength : args.begin; + var end = begin + chunk.byteLength; + var beginChunk = Math.floor(begin / this.chunkSize); + var endChunk = end < this.length ? Math.floor(end / this.chunkSize) : Math.ceil(end / this.chunkSize); + if (isProgressive) { + this.stream.onReceiveProgressiveData(chunk); + this.progressiveDataLength = end; + } else { + this.stream.onReceiveData(begin, chunk); + } + if (this.stream.allChunksLoaded()) { + this._loadedStreamCapability.resolve(this.stream); + } + var loadedRequests = []; + var i, requestId; + for (chunk = beginChunk; chunk < endChunk; ++chunk) { + var requestIds = this.requestsByChunk[chunk] || []; + delete this.requestsByChunk[chunk]; + for (i = 0; i < requestIds.length; ++i) { + requestId = requestIds[i]; + var chunksNeeded = this.chunksNeededByRequest[requestId]; + if (chunk in chunksNeeded) { + delete chunksNeeded[chunk]; + } + if (!isEmptyObj(chunksNeeded)) { + continue; + } + loadedRequests.push(requestId); + } + } + if (!this.disableAutoFetch && isEmptyObj(this.requestsByChunk)) { + var nextEmptyChunk; + if (this.stream.numChunksLoaded === 1) { + var lastChunk = this.stream.numChunks - 1; + if (!this.stream.hasChunk(lastChunk)) { + nextEmptyChunk = lastChunk; + } + } else { + nextEmptyChunk = this.stream.nextEmptyChunk(endChunk); + } + if (isInt(nextEmptyChunk)) { + this._requestChunks([nextEmptyChunk]); + } + } + for (i = 0; i < loadedRequests.length; ++i) { + requestId = loadedRequests[i]; + var capability = this.promisesByRequest[requestId]; + delete this.promisesByRequest[requestId]; + capability.resolve(); + } + this.msgHandler.send('DocProgress', { + loaded: this.stream.numChunksLoaded * this.chunkSize, + total: this.length + }); + }, + onError: function ChunkedStreamManager_onError(err) { + this._loadedStreamCapability.reject(err); + }, + getBeginChunk: function ChunkedStreamManager_getBeginChunk(begin) { + var chunk = Math.floor(begin / this.chunkSize); + return chunk; + }, + getEndChunk: function ChunkedStreamManager_getEndChunk(end) { + var chunk = Math.floor((end - 1) / this.chunkSize) + 1; + return chunk; + }, + abort: function ChunkedStreamManager_abort() { + this.aborted = true; + if (this.pdfNetworkStream) { + this.pdfNetworkStream.cancelAllRequests('abort'); + } + for (var requestId in this.promisesByRequest) { + var capability = this.promisesByRequest[requestId]; + capability.reject(new Error('Request was aborted')); + } + } + }; + return ChunkedStreamManager; +}(); +exports.ChunkedStream = ChunkedStream; +exports.ChunkedStreamManager = ChunkedStreamManager; + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var corePrimitives = __w_pdfjs_require__(1); +var coreStream = __w_pdfjs_require__(2); +var PasswordException = sharedUtil.PasswordException; +var PasswordResponses = sharedUtil.PasswordResponses; +var bytesToString = sharedUtil.bytesToString; +var warn = sharedUtil.warn; +var error = sharedUtil.error; +var assert = sharedUtil.assert; +var isInt = sharedUtil.isInt; +var stringToBytes = sharedUtil.stringToBytes; +var utf8StringToString = sharedUtil.utf8StringToString; +var Name = corePrimitives.Name; +var isName = corePrimitives.isName; +var isDict = corePrimitives.isDict; +var DecryptStream = coreStream.DecryptStream; +var ARCFourCipher = function ARCFourCipherClosure() { + function ARCFourCipher(key) { + this.a = 0; + this.b = 0; + var s = new Uint8Array(256); + var i, j = 0, tmp, keyLength = key.length; + for (i = 0; i < 256; ++i) { + s[i] = i; + } + for (i = 0; i < 256; ++i) { + tmp = s[i]; + j = j + tmp + key[i % keyLength] & 0xFF; + s[i] = s[j]; + s[j] = tmp; + } + this.s = s; + } + ARCFourCipher.prototype = { + encryptBlock: function ARCFourCipher_encryptBlock(data) { + var i, n = data.length, tmp, tmp2; + var a = this.a, b = this.b, s = this.s; + var output = new Uint8Array(n); + for (i = 0; i < n; ++i) { + a = a + 1 & 0xFF; + tmp = s[a]; + b = b + tmp & 0xFF; + tmp2 = s[b]; + s[a] = tmp2; + s[b] = tmp; + output[i] = data[i] ^ s[tmp + tmp2 & 0xFF]; + } + this.a = a; + this.b = b; + return output; + } + }; + ARCFourCipher.prototype.decryptBlock = ARCFourCipher.prototype.encryptBlock; + return ARCFourCipher; +}(); +var calculateMD5 = function calculateMD5Closure() { + var r = new Uint8Array([ + 7, + 12, + 17, + 22, + 7, + 12, + 17, + 22, + 7, + 12, + 17, + 22, + 7, + 12, + 17, + 22, + 5, + 9, + 14, + 20, + 5, + 9, + 14, + 20, + 5, + 9, + 14, + 20, + 5, + 9, + 14, + 20, + 4, + 11, + 16, + 23, + 4, + 11, + 16, + 23, + 4, + 11, + 16, + 23, + 4, + 11, + 16, + 23, + 6, + 10, + 15, + 21, + 6, + 10, + 15, + 21, + 6, + 10, + 15, + 21, + 6, + 10, + 15, + 21 + ]); + var k = new Int32Array([ + -680876936, + -389564586, + 606105819, + -1044525330, + -176418897, + 1200080426, + -1473231341, + -45705983, + 1770035416, + -1958414417, + -42063, + -1990404162, + 1804603682, + -40341101, + -1502002290, + 1236535329, + -165796510, + -1069501632, + 643717713, + -373897302, + -701558691, + 38016083, + -660478335, + -405537848, + 568446438, + -1019803690, + -187363961, + 1163531501, + -1444681467, + -51403784, + 1735328473, + -1926607734, + -378558, + -2022574463, + 1839030562, + -35309556, + -1530992060, + 1272893353, + -155497632, + -1094730640, + 681279174, + -358537222, + -722521979, + 76029189, + -640364487, + -421815835, + 530742520, + -995338651, + -198630844, + 1126891415, + -1416354905, + -57434055, + 1700485571, + -1894986606, + -1051523, + -2054922799, + 1873313359, + -30611744, + -1560198380, + 1309151649, + -145523070, + -1120210379, + 718787259, + -343485551 + ]); + function hash(data, offset, length) { + var h0 = 1732584193, h1 = -271733879, h2 = -1732584194, h3 = 271733878; + var paddedLength = length + 72 & ~63; + var padded = new Uint8Array(paddedLength); + var i, j, n; + for (i = 0; i < length; ++i) { + padded[i] = data[offset++]; + } + padded[i++] = 0x80; + n = paddedLength - 8; + while (i < n) { + padded[i++] = 0; + } + padded[i++] = length << 3 & 0xFF; + padded[i++] = length >> 5 & 0xFF; + padded[i++] = length >> 13 & 0xFF; + padded[i++] = length >> 21 & 0xFF; + padded[i++] = length >>> 29 & 0xFF; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + var w = new Int32Array(16); + for (i = 0; i < paddedLength;) { + for (j = 0; j < 16; ++j, i += 4) { + w[j] = padded[i] | padded[i + 1] << 8 | padded[i + 2] << 16 | padded[i + 3] << 24; + } + var a = h0, b = h1, c = h2, d = h3, f, g; + for (j = 0; j < 64; ++j) { + if (j < 16) { + f = b & c | ~b & d; + g = j; + } else if (j < 32) { + f = d & b | ~d & c; + g = 5 * j + 1 & 15; + } else if (j < 48) { + f = b ^ c ^ d; + g = 3 * j + 5 & 15; + } else { + f = c ^ (b | ~d); + g = 7 * j & 15; + } + var tmp = d, rotateArg = a + f + k[j] + w[g] | 0, rotate = r[j]; + d = c; + c = b; + b = b + (rotateArg << rotate | rotateArg >>> 32 - rotate) | 0; + a = tmp; + } + h0 = h0 + a | 0; + h1 = h1 + b | 0; + h2 = h2 + c | 0; + h3 = h3 + d | 0; + } + return new Uint8Array([ + h0 & 0xFF, + h0 >> 8 & 0xFF, + h0 >> 16 & 0xFF, + h0 >>> 24 & 0xFF, + h1 & 0xFF, + h1 >> 8 & 0xFF, + h1 >> 16 & 0xFF, + h1 >>> 24 & 0xFF, + h2 & 0xFF, + h2 >> 8 & 0xFF, + h2 >> 16 & 0xFF, + h2 >>> 24 & 0xFF, + h3 & 0xFF, + h3 >> 8 & 0xFF, + h3 >> 16 & 0xFF, + h3 >>> 24 & 0xFF + ]); + } + return hash; +}(); +var Word64 = function Word64Closure() { + function Word64(highInteger, lowInteger) { + this.high = highInteger | 0; + this.low = lowInteger | 0; + } + Word64.prototype = { + and: function Word64_and(word) { + this.high &= word.high; + this.low &= word.low; + }, + xor: function Word64_xor(word) { + this.high ^= word.high; + this.low ^= word.low; + }, + or: function Word64_or(word) { + this.high |= word.high; + this.low |= word.low; + }, + shiftRight: function Word64_shiftRight(places) { + if (places >= 32) { + this.low = this.high >>> places - 32 | 0; + this.high = 0; + } else { + this.low = this.low >>> places | this.high << 32 - places; + this.high = this.high >>> places | 0; + } + }, + shiftLeft: function Word64_shiftLeft(places) { + if (places >= 32) { + this.high = this.low << places - 32; + this.low = 0; + } else { + this.high = this.high << places | this.low >>> 32 - places; + this.low = this.low << places; + } + }, + rotateRight: function Word64_rotateRight(places) { + var low, high; + if (places & 32) { + high = this.low; + low = this.high; + } else { + low = this.low; + high = this.high; + } + places &= 31; + this.low = low >>> places | high << 32 - places; + this.high = high >>> places | low << 32 - places; + }, + not: function Word64_not() { + this.high = ~this.high; + this.low = ~this.low; + }, + add: function Word64_add(word) { + var lowAdd = (this.low >>> 0) + (word.low >>> 0); + var highAdd = (this.high >>> 0) + (word.high >>> 0); + if (lowAdd > 0xFFFFFFFF) { + highAdd += 1; + } + this.low = lowAdd | 0; + this.high = highAdd | 0; + }, + copyTo: function Word64_copyTo(bytes, offset) { + bytes[offset] = this.high >>> 24 & 0xFF; + bytes[offset + 1] = this.high >> 16 & 0xFF; + bytes[offset + 2] = this.high >> 8 & 0xFF; + bytes[offset + 3] = this.high & 0xFF; + bytes[offset + 4] = this.low >>> 24 & 0xFF; + bytes[offset + 5] = this.low >> 16 & 0xFF; + bytes[offset + 6] = this.low >> 8 & 0xFF; + bytes[offset + 7] = this.low & 0xFF; + }, + assign: function Word64_assign(word) { + this.high = word.high; + this.low = word.low; + } + }; + return Word64; +}(); +var calculateSHA256 = function calculateSHA256Closure() { + function rotr(x, n) { + return x >>> n | x << 32 - n; + } + function ch(x, y, z) { + return x & y ^ ~x & z; + } + function maj(x, y, z) { + return x & y ^ x & z ^ y & z; + } + function sigma(x) { + return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22); + } + function sigmaPrime(x) { + return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25); + } + function littleSigma(x) { + return rotr(x, 7) ^ rotr(x, 18) ^ x >>> 3; + } + function littleSigmaPrime(x) { + return rotr(x, 17) ^ rotr(x, 19) ^ x >>> 10; + } + var k = [ + 0x428a2f98, + 0x71374491, + 0xb5c0fbcf, + 0xe9b5dba5, + 0x3956c25b, + 0x59f111f1, + 0x923f82a4, + 0xab1c5ed5, + 0xd807aa98, + 0x12835b01, + 0x243185be, + 0x550c7dc3, + 0x72be5d74, + 0x80deb1fe, + 0x9bdc06a7, + 0xc19bf174, + 0xe49b69c1, + 0xefbe4786, + 0x0fc19dc6, + 0x240ca1cc, + 0x2de92c6f, + 0x4a7484aa, + 0x5cb0a9dc, + 0x76f988da, + 0x983e5152, + 0xa831c66d, + 0xb00327c8, + 0xbf597fc7, + 0xc6e00bf3, + 0xd5a79147, + 0x06ca6351, + 0x14292967, + 0x27b70a85, + 0x2e1b2138, + 0x4d2c6dfc, + 0x53380d13, + 0x650a7354, + 0x766a0abb, + 0x81c2c92e, + 0x92722c85, + 0xa2bfe8a1, + 0xa81a664b, + 0xc24b8b70, + 0xc76c51a3, + 0xd192e819, + 0xd6990624, + 0xf40e3585, + 0x106aa070, + 0x19a4c116, + 0x1e376c08, + 0x2748774c, + 0x34b0bcb5, + 0x391c0cb3, + 0x4ed8aa4a, + 0x5b9cca4f, + 0x682e6ff3, + 0x748f82ee, + 0x78a5636f, + 0x84c87814, + 0x8cc70208, + 0x90befffa, + 0xa4506ceb, + 0xbef9a3f7, + 0xc67178f2 + ]; + function hash(data, offset, length) { + var h0 = 0x6a09e667, h1 = 0xbb67ae85, h2 = 0x3c6ef372, h3 = 0xa54ff53a, h4 = 0x510e527f, h5 = 0x9b05688c, h6 = 0x1f83d9ab, h7 = 0x5be0cd19; + var paddedLength = Math.ceil((length + 9) / 64) * 64; + var padded = new Uint8Array(paddedLength); + var i, j, n; + for (i = 0; i < length; ++i) { + padded[i] = data[offset++]; + } + padded[i++] = 0x80; + n = paddedLength - 8; + while (i < n) { + padded[i++] = 0; + } + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = length >>> 29 & 0xFF; + padded[i++] = length >> 21 & 0xFF; + padded[i++] = length >> 13 & 0xFF; + padded[i++] = length >> 5 & 0xFF; + padded[i++] = length << 3 & 0xFF; + var w = new Uint32Array(64); + for (i = 0; i < paddedLength;) { + for (j = 0; j < 16; ++j) { + w[j] = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3]; + i += 4; + } + for (j = 16; j < 64; ++j) { + w[j] = littleSigmaPrime(w[j - 2]) + w[j - 7] + littleSigma(w[j - 15]) + w[j - 16] | 0; + } + var a = h0, b = h1, c = h2, d = h3, e = h4, f = h5, g = h6, h = h7, t1, t2; + for (j = 0; j < 64; ++j) { + t1 = h + sigmaPrime(e) + ch(e, f, g) + k[j] + w[j]; + t2 = sigma(a) + maj(a, b, c); + h = g; + g = f; + f = e; + e = d + t1 | 0; + d = c; + c = b; + b = a; + a = t1 + t2 | 0; + } + h0 = h0 + a | 0; + h1 = h1 + b | 0; + h2 = h2 + c | 0; + h3 = h3 + d | 0; + h4 = h4 + e | 0; + h5 = h5 + f | 0; + h6 = h6 + g | 0; + h7 = h7 + h | 0; + } + return new Uint8Array([ + h0 >> 24 & 0xFF, + h0 >> 16 & 0xFF, + h0 >> 8 & 0xFF, + h0 & 0xFF, + h1 >> 24 & 0xFF, + h1 >> 16 & 0xFF, + h1 >> 8 & 0xFF, + h1 & 0xFF, + h2 >> 24 & 0xFF, + h2 >> 16 & 0xFF, + h2 >> 8 & 0xFF, + h2 & 0xFF, + h3 >> 24 & 0xFF, + h3 >> 16 & 0xFF, + h3 >> 8 & 0xFF, + h3 & 0xFF, + h4 >> 24 & 0xFF, + h4 >> 16 & 0xFF, + h4 >> 8 & 0xFF, + h4 & 0xFF, + h5 >> 24 & 0xFF, + h5 >> 16 & 0xFF, + h5 >> 8 & 0xFF, + h5 & 0xFF, + h6 >> 24 & 0xFF, + h6 >> 16 & 0xFF, + h6 >> 8 & 0xFF, + h6 & 0xFF, + h7 >> 24 & 0xFF, + h7 >> 16 & 0xFF, + h7 >> 8 & 0xFF, + h7 & 0xFF + ]); + } + return hash; +}(); +var calculateSHA512 = function calculateSHA512Closure() { + function ch(result, x, y, z, tmp) { + result.assign(x); + result.and(y); + tmp.assign(x); + tmp.not(); + tmp.and(z); + result.xor(tmp); + } + function maj(result, x, y, z, tmp) { + result.assign(x); + result.and(y); + tmp.assign(x); + tmp.and(z); + result.xor(tmp); + tmp.assign(y); + tmp.and(z); + result.xor(tmp); + } + function sigma(result, x, tmp) { + result.assign(x); + result.rotateRight(28); + tmp.assign(x); + tmp.rotateRight(34); + result.xor(tmp); + tmp.assign(x); + tmp.rotateRight(39); + result.xor(tmp); + } + function sigmaPrime(result, x, tmp) { + result.assign(x); + result.rotateRight(14); + tmp.assign(x); + tmp.rotateRight(18); + result.xor(tmp); + tmp.assign(x); + tmp.rotateRight(41); + result.xor(tmp); + } + function littleSigma(result, x, tmp) { + result.assign(x); + result.rotateRight(1); + tmp.assign(x); + tmp.rotateRight(8); + result.xor(tmp); + tmp.assign(x); + tmp.shiftRight(7); + result.xor(tmp); + } + function littleSigmaPrime(result, x, tmp) { + result.assign(x); + result.rotateRight(19); + tmp.assign(x); + tmp.rotateRight(61); + result.xor(tmp); + tmp.assign(x); + tmp.shiftRight(6); + result.xor(tmp); + } + var k = [ + new Word64(0x428a2f98, 0xd728ae22), + new Word64(0x71374491, 0x23ef65cd), + new Word64(0xb5c0fbcf, 0xec4d3b2f), + new Word64(0xe9b5dba5, 0x8189dbbc), + new Word64(0x3956c25b, 0xf348b538), + new Word64(0x59f111f1, 0xb605d019), + new Word64(0x923f82a4, 0xaf194f9b), + new Word64(0xab1c5ed5, 0xda6d8118), + new Word64(0xd807aa98, 0xa3030242), + new Word64(0x12835b01, 0x45706fbe), + new Word64(0x243185be, 0x4ee4b28c), + new Word64(0x550c7dc3, 0xd5ffb4e2), + new Word64(0x72be5d74, 0xf27b896f), + new Word64(0x80deb1fe, 0x3b1696b1), + new Word64(0x9bdc06a7, 0x25c71235), + new Word64(0xc19bf174, 0xcf692694), + new Word64(0xe49b69c1, 0x9ef14ad2), + new Word64(0xefbe4786, 0x384f25e3), + new Word64(0x0fc19dc6, 0x8b8cd5b5), + new Word64(0x240ca1cc, 0x77ac9c65), + new Word64(0x2de92c6f, 0x592b0275), + new Word64(0x4a7484aa, 0x6ea6e483), + new Word64(0x5cb0a9dc, 0xbd41fbd4), + new Word64(0x76f988da, 0x831153b5), + new Word64(0x983e5152, 0xee66dfab), + new Word64(0xa831c66d, 0x2db43210), + new Word64(0xb00327c8, 0x98fb213f), + new Word64(0xbf597fc7, 0xbeef0ee4), + new Word64(0xc6e00bf3, 0x3da88fc2), + new Word64(0xd5a79147, 0x930aa725), + new Word64(0x06ca6351, 0xe003826f), + new Word64(0x14292967, 0x0a0e6e70), + new Word64(0x27b70a85, 0x46d22ffc), + new Word64(0x2e1b2138, 0x5c26c926), + new Word64(0x4d2c6dfc, 0x5ac42aed), + new Word64(0x53380d13, 0x9d95b3df), + new Word64(0x650a7354, 0x8baf63de), + new Word64(0x766a0abb, 0x3c77b2a8), + new Word64(0x81c2c92e, 0x47edaee6), + new Word64(0x92722c85, 0x1482353b), + new Word64(0xa2bfe8a1, 0x4cf10364), + new Word64(0xa81a664b, 0xbc423001), + new Word64(0xc24b8b70, 0xd0f89791), + new Word64(0xc76c51a3, 0x0654be30), + new Word64(0xd192e819, 0xd6ef5218), + new Word64(0xd6990624, 0x5565a910), + new Word64(0xf40e3585, 0x5771202a), + new Word64(0x106aa070, 0x32bbd1b8), + new Word64(0x19a4c116, 0xb8d2d0c8), + new Word64(0x1e376c08, 0x5141ab53), + new Word64(0x2748774c, 0xdf8eeb99), + new Word64(0x34b0bcb5, 0xe19b48a8), + new Word64(0x391c0cb3, 0xc5c95a63), + new Word64(0x4ed8aa4a, 0xe3418acb), + new Word64(0x5b9cca4f, 0x7763e373), + new Word64(0x682e6ff3, 0xd6b2b8a3), + new Word64(0x748f82ee, 0x5defb2fc), + new Word64(0x78a5636f, 0x43172f60), + new Word64(0x84c87814, 0xa1f0ab72), + new Word64(0x8cc70208, 0x1a6439ec), + new Word64(0x90befffa, 0x23631e28), + new Word64(0xa4506ceb, 0xde82bde9), + new Word64(0xbef9a3f7, 0xb2c67915), + new Word64(0xc67178f2, 0xe372532b), + new Word64(0xca273ece, 0xea26619c), + new Word64(0xd186b8c7, 0x21c0c207), + new Word64(0xeada7dd6, 0xcde0eb1e), + new Word64(0xf57d4f7f, 0xee6ed178), + new Word64(0x06f067aa, 0x72176fba), + new Word64(0x0a637dc5, 0xa2c898a6), + new Word64(0x113f9804, 0xbef90dae), + new Word64(0x1b710b35, 0x131c471b), + new Word64(0x28db77f5, 0x23047d84), + new Word64(0x32caab7b, 0x40c72493), + new Word64(0x3c9ebe0a, 0x15c9bebc), + new Word64(0x431d67c4, 0x9c100d4c), + new Word64(0x4cc5d4be, 0xcb3e42b6), + new Word64(0x597f299c, 0xfc657e2a), + new Word64(0x5fcb6fab, 0x3ad6faec), + new Word64(0x6c44198c, 0x4a475817) + ]; + function hash(data, offset, length, mode384) { + mode384 = !!mode384; + var h0, h1, h2, h3, h4, h5, h6, h7; + if (!mode384) { + h0 = new Word64(0x6a09e667, 0xf3bcc908); + h1 = new Word64(0xbb67ae85, 0x84caa73b); + h2 = new Word64(0x3c6ef372, 0xfe94f82b); + h3 = new Word64(0xa54ff53a, 0x5f1d36f1); + h4 = new Word64(0x510e527f, 0xade682d1); + h5 = new Word64(0x9b05688c, 0x2b3e6c1f); + h6 = new Word64(0x1f83d9ab, 0xfb41bd6b); + h7 = new Word64(0x5be0cd19, 0x137e2179); + } else { + h0 = new Word64(0xcbbb9d5d, 0xc1059ed8); + h1 = new Word64(0x629a292a, 0x367cd507); + h2 = new Word64(0x9159015a, 0x3070dd17); + h3 = new Word64(0x152fecd8, 0xf70e5939); + h4 = new Word64(0x67332667, 0xffc00b31); + h5 = new Word64(0x8eb44a87, 0x68581511); + h6 = new Word64(0xdb0c2e0d, 0x64f98fa7); + h7 = new Word64(0x47b5481d, 0xbefa4fa4); + } + var paddedLength = Math.ceil((length + 17) / 128) * 128; + var padded = new Uint8Array(paddedLength); + var i, j, n; + for (i = 0; i < length; ++i) { + padded[i] = data[offset++]; + } + padded[i++] = 0x80; + n = paddedLength - 16; + while (i < n) { + padded[i++] = 0; + } + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = length >>> 29 & 0xFF; + padded[i++] = length >> 21 & 0xFF; + padded[i++] = length >> 13 & 0xFF; + padded[i++] = length >> 5 & 0xFF; + padded[i++] = length << 3 & 0xFF; + var w = new Array(80); + for (i = 0; i < 80; i++) { + w[i] = new Word64(0, 0); + } + var a = new Word64(0, 0), b = new Word64(0, 0), c = new Word64(0, 0); + var d = new Word64(0, 0), e = new Word64(0, 0), f = new Word64(0, 0); + var g = new Word64(0, 0), h = new Word64(0, 0); + var t1 = new Word64(0, 0), t2 = new Word64(0, 0); + var tmp1 = new Word64(0, 0), tmp2 = new Word64(0, 0), tmp3; + for (i = 0; i < paddedLength;) { + for (j = 0; j < 16; ++j) { + w[j].high = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3]; + w[j].low = padded[i + 4] << 24 | padded[i + 5] << 16 | padded[i + 6] << 8 | padded[i + 7]; + i += 8; + } + for (j = 16; j < 80; ++j) { + tmp3 = w[j]; + littleSigmaPrime(tmp3, w[j - 2], tmp2); + tmp3.add(w[j - 7]); + littleSigma(tmp1, w[j - 15], tmp2); + tmp3.add(tmp1); + tmp3.add(w[j - 16]); + } + a.assign(h0); + b.assign(h1); + c.assign(h2); + d.assign(h3); + e.assign(h4); + f.assign(h5); + g.assign(h6); + h.assign(h7); + for (j = 0; j < 80; ++j) { + t1.assign(h); + sigmaPrime(tmp1, e, tmp2); + t1.add(tmp1); + ch(tmp1, e, f, g, tmp2); + t1.add(tmp1); + t1.add(k[j]); + t1.add(w[j]); + sigma(t2, a, tmp2); + maj(tmp1, a, b, c, tmp2); + t2.add(tmp1); + tmp3 = h; + h = g; + g = f; + f = e; + d.add(t1); + e = d; + d = c; + c = b; + b = a; + tmp3.assign(t1); + tmp3.add(t2); + a = tmp3; + } + h0.add(a); + h1.add(b); + h2.add(c); + h3.add(d); + h4.add(e); + h5.add(f); + h6.add(g); + h7.add(h); + } + var result; + if (!mode384) { + result = new Uint8Array(64); + h0.copyTo(result, 0); + h1.copyTo(result, 8); + h2.copyTo(result, 16); + h3.copyTo(result, 24); + h4.copyTo(result, 32); + h5.copyTo(result, 40); + h6.copyTo(result, 48); + h7.copyTo(result, 56); + } else { + result = new Uint8Array(48); + h0.copyTo(result, 0); + h1.copyTo(result, 8); + h2.copyTo(result, 16); + h3.copyTo(result, 24); + h4.copyTo(result, 32); + h5.copyTo(result, 40); + } + return result; + } + return hash; +}(); +var calculateSHA384 = function calculateSHA384Closure() { + function hash(data, offset, length) { + return calculateSHA512(data, offset, length, true); + } + return hash; +}(); +var NullCipher = function NullCipherClosure() { + function NullCipher() { + } + NullCipher.prototype = { + decryptBlock: function NullCipher_decryptBlock(data) { + return data; + } + }; + return NullCipher; +}(); +var AES128Cipher = function AES128CipherClosure() { + var rcon = new Uint8Array([ + 0x8d, + 0x01, + 0x02, + 0x04, + 0x08, + 0x10, + 0x20, + 0x40, + 0x80, + 0x1b, + 0x36, + 0x6c, + 0xd8, + 0xab, + 0x4d, + 0x9a, + 0x2f, + 0x5e, + 0xbc, + 0x63, + 0xc6, + 0x97, + 0x35, + 0x6a, + 0xd4, + 0xb3, + 0x7d, + 0xfa, + 0xef, + 0xc5, + 0x91, + 0x39, + 0x72, + 0xe4, + 0xd3, + 0xbd, + 0x61, + 0xc2, + 0x9f, + 0x25, + 0x4a, + 0x94, + 0x33, + 0x66, + 0xcc, + 0x83, + 0x1d, + 0x3a, + 0x74, + 0xe8, + 0xcb, + 0x8d, + 0x01, + 0x02, + 0x04, + 0x08, + 0x10, + 0x20, + 0x40, + 0x80, + 0x1b, + 0x36, + 0x6c, + 0xd8, + 0xab, + 0x4d, + 0x9a, + 0x2f, + 0x5e, + 0xbc, + 0x63, + 0xc6, + 0x97, + 0x35, + 0x6a, + 0xd4, + 0xb3, + 0x7d, + 0xfa, + 0xef, + 0xc5, + 0x91, + 0x39, + 0x72, + 0xe4, + 0xd3, + 0xbd, + 0x61, + 0xc2, + 0x9f, + 0x25, + 0x4a, + 0x94, + 0x33, + 0x66, + 0xcc, + 0x83, + 0x1d, + 0x3a, + 0x74, + 0xe8, + 0xcb, + 0x8d, + 0x01, + 0x02, + 0x04, + 0x08, + 0x10, + 0x20, + 0x40, + 0x80, + 0x1b, + 0x36, + 0x6c, + 0xd8, + 0xab, + 0x4d, + 0x9a, + 0x2f, + 0x5e, + 0xbc, + 0x63, + 0xc6, + 0x97, + 0x35, + 0x6a, + 0xd4, + 0xb3, + 0x7d, + 0xfa, + 0xef, + 0xc5, + 0x91, + 0x39, + 0x72, + 0xe4, + 0xd3, + 0xbd, + 0x61, + 0xc2, + 0x9f, + 0x25, + 0x4a, + 0x94, + 0x33, + 0x66, + 0xcc, + 0x83, + 0x1d, + 0x3a, + 0x74, + 0xe8, + 0xcb, + 0x8d, + 0x01, + 0x02, + 0x04, + 0x08, + 0x10, + 0x20, + 0x40, + 0x80, + 0x1b, + 0x36, + 0x6c, + 0xd8, + 0xab, + 0x4d, + 0x9a, + 0x2f, + 0x5e, + 0xbc, + 0x63, + 0xc6, + 0x97, + 0x35, + 0x6a, + 0xd4, + 0xb3, + 0x7d, + 0xfa, + 0xef, + 0xc5, + 0x91, + 0x39, + 0x72, + 0xe4, + 0xd3, + 0xbd, + 0x61, + 0xc2, + 0x9f, + 0x25, + 0x4a, + 0x94, + 0x33, + 0x66, + 0xcc, + 0x83, + 0x1d, + 0x3a, + 0x74, + 0xe8, + 0xcb, + 0x8d, + 0x01, + 0x02, + 0x04, + 0x08, + 0x10, + 0x20, + 0x40, + 0x80, + 0x1b, + 0x36, + 0x6c, + 0xd8, + 0xab, + 0x4d, + 0x9a, + 0x2f, + 0x5e, + 0xbc, + 0x63, + 0xc6, + 0x97, + 0x35, + 0x6a, + 0xd4, + 0xb3, + 0x7d, + 0xfa, + 0xef, + 0xc5, + 0x91, + 0x39, + 0x72, + 0xe4, + 0xd3, + 0xbd, + 0x61, + 0xc2, + 0x9f, + 0x25, + 0x4a, + 0x94, + 0x33, + 0x66, + 0xcc, + 0x83, + 0x1d, + 0x3a, + 0x74, + 0xe8, + 0xcb, + 0x8d + ]); + var s = new Uint8Array([ + 0x63, + 0x7c, + 0x77, + 0x7b, + 0xf2, + 0x6b, + 0x6f, + 0xc5, + 0x30, + 0x01, + 0x67, + 0x2b, + 0xfe, + 0xd7, + 0xab, + 0x76, + 0xca, + 0x82, + 0xc9, + 0x7d, + 0xfa, + 0x59, + 0x47, + 0xf0, + 0xad, + 0xd4, + 0xa2, + 0xaf, + 0x9c, + 0xa4, + 0x72, + 0xc0, + 0xb7, + 0xfd, + 0x93, + 0x26, + 0x36, + 0x3f, + 0xf7, + 0xcc, + 0x34, + 0xa5, + 0xe5, + 0xf1, + 0x71, + 0xd8, + 0x31, + 0x15, + 0x04, + 0xc7, + 0x23, + 0xc3, + 0x18, + 0x96, + 0x05, + 0x9a, + 0x07, + 0x12, + 0x80, + 0xe2, + 0xeb, + 0x27, + 0xb2, + 0x75, + 0x09, + 0x83, + 0x2c, + 0x1a, + 0x1b, + 0x6e, + 0x5a, + 0xa0, + 0x52, + 0x3b, + 0xd6, + 0xb3, + 0x29, + 0xe3, + 0x2f, + 0x84, + 0x53, + 0xd1, + 0x00, + 0xed, + 0x20, + 0xfc, + 0xb1, + 0x5b, + 0x6a, + 0xcb, + 0xbe, + 0x39, + 0x4a, + 0x4c, + 0x58, + 0xcf, + 0xd0, + 0xef, + 0xaa, + 0xfb, + 0x43, + 0x4d, + 0x33, + 0x85, + 0x45, + 0xf9, + 0x02, + 0x7f, + 0x50, + 0x3c, + 0x9f, + 0xa8, + 0x51, + 0xa3, + 0x40, + 0x8f, + 0x92, + 0x9d, + 0x38, + 0xf5, + 0xbc, + 0xb6, + 0xda, + 0x21, + 0x10, + 0xff, + 0xf3, + 0xd2, + 0xcd, + 0x0c, + 0x13, + 0xec, + 0x5f, + 0x97, + 0x44, + 0x17, + 0xc4, + 0xa7, + 0x7e, + 0x3d, + 0x64, + 0x5d, + 0x19, + 0x73, + 0x60, + 0x81, + 0x4f, + 0xdc, + 0x22, + 0x2a, + 0x90, + 0x88, + 0x46, + 0xee, + 0xb8, + 0x14, + 0xde, + 0x5e, + 0x0b, + 0xdb, + 0xe0, + 0x32, + 0x3a, + 0x0a, + 0x49, + 0x06, + 0x24, + 0x5c, + 0xc2, + 0xd3, + 0xac, + 0x62, + 0x91, + 0x95, + 0xe4, + 0x79, + 0xe7, + 0xc8, + 0x37, + 0x6d, + 0x8d, + 0xd5, + 0x4e, + 0xa9, + 0x6c, + 0x56, + 0xf4, + 0xea, + 0x65, + 0x7a, + 0xae, + 0x08, + 0xba, + 0x78, + 0x25, + 0x2e, + 0x1c, + 0xa6, + 0xb4, + 0xc6, + 0xe8, + 0xdd, + 0x74, + 0x1f, + 0x4b, + 0xbd, + 0x8b, + 0x8a, + 0x70, + 0x3e, + 0xb5, + 0x66, + 0x48, + 0x03, + 0xf6, + 0x0e, + 0x61, + 0x35, + 0x57, + 0xb9, + 0x86, + 0xc1, + 0x1d, + 0x9e, + 0xe1, + 0xf8, + 0x98, + 0x11, + 0x69, + 0xd9, + 0x8e, + 0x94, + 0x9b, + 0x1e, + 0x87, + 0xe9, + 0xce, + 0x55, + 0x28, + 0xdf, + 0x8c, + 0xa1, + 0x89, + 0x0d, + 0xbf, + 0xe6, + 0x42, + 0x68, + 0x41, + 0x99, + 0x2d, + 0x0f, + 0xb0, + 0x54, + 0xbb, + 0x16 + ]); + var inv_s = new Uint8Array([ + 0x52, + 0x09, + 0x6a, + 0xd5, + 0x30, + 0x36, + 0xa5, + 0x38, + 0xbf, + 0x40, + 0xa3, + 0x9e, + 0x81, + 0xf3, + 0xd7, + 0xfb, + 0x7c, + 0xe3, + 0x39, + 0x82, + 0x9b, + 0x2f, + 0xff, + 0x87, + 0x34, + 0x8e, + 0x43, + 0x44, + 0xc4, + 0xde, + 0xe9, + 0xcb, + 0x54, + 0x7b, + 0x94, + 0x32, + 0xa6, + 0xc2, + 0x23, + 0x3d, + 0xee, + 0x4c, + 0x95, + 0x0b, + 0x42, + 0xfa, + 0xc3, + 0x4e, + 0x08, + 0x2e, + 0xa1, + 0x66, + 0x28, + 0xd9, + 0x24, + 0xb2, + 0x76, + 0x5b, + 0xa2, + 0x49, + 0x6d, + 0x8b, + 0xd1, + 0x25, + 0x72, + 0xf8, + 0xf6, + 0x64, + 0x86, + 0x68, + 0x98, + 0x16, + 0xd4, + 0xa4, + 0x5c, + 0xcc, + 0x5d, + 0x65, + 0xb6, + 0x92, + 0x6c, + 0x70, + 0x48, + 0x50, + 0xfd, + 0xed, + 0xb9, + 0xda, + 0x5e, + 0x15, + 0x46, + 0x57, + 0xa7, + 0x8d, + 0x9d, + 0x84, + 0x90, + 0xd8, + 0xab, + 0x00, + 0x8c, + 0xbc, + 0xd3, + 0x0a, + 0xf7, + 0xe4, + 0x58, + 0x05, + 0xb8, + 0xb3, + 0x45, + 0x06, + 0xd0, + 0x2c, + 0x1e, + 0x8f, + 0xca, + 0x3f, + 0x0f, + 0x02, + 0xc1, + 0xaf, + 0xbd, + 0x03, + 0x01, + 0x13, + 0x8a, + 0x6b, + 0x3a, + 0x91, + 0x11, + 0x41, + 0x4f, + 0x67, + 0xdc, + 0xea, + 0x97, + 0xf2, + 0xcf, + 0xce, + 0xf0, + 0xb4, + 0xe6, + 0x73, + 0x96, + 0xac, + 0x74, + 0x22, + 0xe7, + 0xad, + 0x35, + 0x85, + 0xe2, + 0xf9, + 0x37, + 0xe8, + 0x1c, + 0x75, + 0xdf, + 0x6e, + 0x47, + 0xf1, + 0x1a, + 0x71, + 0x1d, + 0x29, + 0xc5, + 0x89, + 0x6f, + 0xb7, + 0x62, + 0x0e, + 0xaa, + 0x18, + 0xbe, + 0x1b, + 0xfc, + 0x56, + 0x3e, + 0x4b, + 0xc6, + 0xd2, + 0x79, + 0x20, + 0x9a, + 0xdb, + 0xc0, + 0xfe, + 0x78, + 0xcd, + 0x5a, + 0xf4, + 0x1f, + 0xdd, + 0xa8, + 0x33, + 0x88, + 0x07, + 0xc7, + 0x31, + 0xb1, + 0x12, + 0x10, + 0x59, + 0x27, + 0x80, + 0xec, + 0x5f, + 0x60, + 0x51, + 0x7f, + 0xa9, + 0x19, + 0xb5, + 0x4a, + 0x0d, + 0x2d, + 0xe5, + 0x7a, + 0x9f, + 0x93, + 0xc9, + 0x9c, + 0xef, + 0xa0, + 0xe0, + 0x3b, + 0x4d, + 0xae, + 0x2a, + 0xf5, + 0xb0, + 0xc8, + 0xeb, + 0xbb, + 0x3c, + 0x83, + 0x53, + 0x99, + 0x61, + 0x17, + 0x2b, + 0x04, + 0x7e, + 0xba, + 0x77, + 0xd6, + 0x26, + 0xe1, + 0x69, + 0x14, + 0x63, + 0x55, + 0x21, + 0x0c, + 0x7d + ]); + var mixCol = new Uint8Array(256); + for (var i = 0; i < 256; i++) { + if (i < 128) { + mixCol[i] = i << 1; + } else { + mixCol[i] = i << 1 ^ 0x1b; + } + } + var mix = new Uint32Array([ + 0x00000000, + 0x0e090d0b, + 0x1c121a16, + 0x121b171d, + 0x3824342c, + 0x362d3927, + 0x24362e3a, + 0x2a3f2331, + 0x70486858, + 0x7e416553, + 0x6c5a724e, + 0x62537f45, + 0x486c5c74, + 0x4665517f, + 0x547e4662, + 0x5a774b69, + 0xe090d0b0, + 0xee99ddbb, + 0xfc82caa6, + 0xf28bc7ad, + 0xd8b4e49c, + 0xd6bde997, + 0xc4a6fe8a, + 0xcaaff381, + 0x90d8b8e8, + 0x9ed1b5e3, + 0x8ccaa2fe, + 0x82c3aff5, + 0xa8fc8cc4, + 0xa6f581cf, + 0xb4ee96d2, + 0xbae79bd9, + 0xdb3bbb7b, + 0xd532b670, + 0xc729a16d, + 0xc920ac66, + 0xe31f8f57, + 0xed16825c, + 0xff0d9541, + 0xf104984a, + 0xab73d323, + 0xa57ade28, + 0xb761c935, + 0xb968c43e, + 0x9357e70f, + 0x9d5eea04, + 0x8f45fd19, + 0x814cf012, + 0x3bab6bcb, + 0x35a266c0, + 0x27b971dd, + 0x29b07cd6, + 0x038f5fe7, + 0x0d8652ec, + 0x1f9d45f1, + 0x119448fa, + 0x4be30393, + 0x45ea0e98, + 0x57f11985, + 0x59f8148e, + 0x73c737bf, + 0x7dce3ab4, + 0x6fd52da9, + 0x61dc20a2, + 0xad766df6, + 0xa37f60fd, + 0xb16477e0, + 0xbf6d7aeb, + 0x955259da, + 0x9b5b54d1, + 0x894043cc, + 0x87494ec7, + 0xdd3e05ae, + 0xd33708a5, + 0xc12c1fb8, + 0xcf2512b3, + 0xe51a3182, + 0xeb133c89, + 0xf9082b94, + 0xf701269f, + 0x4de6bd46, + 0x43efb04d, + 0x51f4a750, + 0x5ffdaa5b, + 0x75c2896a, + 0x7bcb8461, + 0x69d0937c, + 0x67d99e77, + 0x3daed51e, + 0x33a7d815, + 0x21bccf08, + 0x2fb5c203, + 0x058ae132, + 0x0b83ec39, + 0x1998fb24, + 0x1791f62f, + 0x764dd68d, + 0x7844db86, + 0x6a5fcc9b, + 0x6456c190, + 0x4e69e2a1, + 0x4060efaa, + 0x527bf8b7, + 0x5c72f5bc, + 0x0605bed5, + 0x080cb3de, + 0x1a17a4c3, + 0x141ea9c8, + 0x3e218af9, + 0x302887f2, + 0x223390ef, + 0x2c3a9de4, + 0x96dd063d, + 0x98d40b36, + 0x8acf1c2b, + 0x84c61120, + 0xaef93211, + 0xa0f03f1a, + 0xb2eb2807, + 0xbce2250c, + 0xe6956e65, + 0xe89c636e, + 0xfa877473, + 0xf48e7978, + 0xdeb15a49, + 0xd0b85742, + 0xc2a3405f, + 0xccaa4d54, + 0x41ecdaf7, + 0x4fe5d7fc, + 0x5dfec0e1, + 0x53f7cdea, + 0x79c8eedb, + 0x77c1e3d0, + 0x65daf4cd, + 0x6bd3f9c6, + 0x31a4b2af, + 0x3fadbfa4, + 0x2db6a8b9, + 0x23bfa5b2, + 0x09808683, + 0x07898b88, + 0x15929c95, + 0x1b9b919e, + 0xa17c0a47, + 0xaf75074c, + 0xbd6e1051, + 0xb3671d5a, + 0x99583e6b, + 0x97513360, + 0x854a247d, + 0x8b432976, + 0xd134621f, + 0xdf3d6f14, + 0xcd267809, + 0xc32f7502, + 0xe9105633, + 0xe7195b38, + 0xf5024c25, + 0xfb0b412e, + 0x9ad7618c, + 0x94de6c87, + 0x86c57b9a, + 0x88cc7691, + 0xa2f355a0, + 0xacfa58ab, + 0xbee14fb6, + 0xb0e842bd, + 0xea9f09d4, + 0xe49604df, + 0xf68d13c2, + 0xf8841ec9, + 0xd2bb3df8, + 0xdcb230f3, + 0xcea927ee, + 0xc0a02ae5, + 0x7a47b13c, + 0x744ebc37, + 0x6655ab2a, + 0x685ca621, + 0x42638510, + 0x4c6a881b, + 0x5e719f06, + 0x5078920d, + 0x0a0fd964, + 0x0406d46f, + 0x161dc372, + 0x1814ce79, + 0x322bed48, + 0x3c22e043, + 0x2e39f75e, + 0x2030fa55, + 0xec9ab701, + 0xe293ba0a, + 0xf088ad17, + 0xfe81a01c, + 0xd4be832d, + 0xdab78e26, + 0xc8ac993b, + 0xc6a59430, + 0x9cd2df59, + 0x92dbd252, + 0x80c0c54f, + 0x8ec9c844, + 0xa4f6eb75, + 0xaaffe67e, + 0xb8e4f163, + 0xb6edfc68, + 0x0c0a67b1, + 0x02036aba, + 0x10187da7, + 0x1e1170ac, + 0x342e539d, + 0x3a275e96, + 0x283c498b, + 0x26354480, + 0x7c420fe9, + 0x724b02e2, + 0x605015ff, + 0x6e5918f4, + 0x44663bc5, + 0x4a6f36ce, + 0x587421d3, + 0x567d2cd8, + 0x37a10c7a, + 0x39a80171, + 0x2bb3166c, + 0x25ba1b67, + 0x0f853856, + 0x018c355d, + 0x13972240, + 0x1d9e2f4b, + 0x47e96422, + 0x49e06929, + 0x5bfb7e34, + 0x55f2733f, + 0x7fcd500e, + 0x71c45d05, + 0x63df4a18, + 0x6dd64713, + 0xd731dcca, + 0xd938d1c1, + 0xcb23c6dc, + 0xc52acbd7, + 0xef15e8e6, + 0xe11ce5ed, + 0xf307f2f0, + 0xfd0efffb, + 0xa779b492, + 0xa970b999, + 0xbb6bae84, + 0xb562a38f, + 0x9f5d80be, + 0x91548db5, + 0x834f9aa8, + 0x8d4697a3 + ]); + function expandKey128(cipherKey) { + var b = 176, result = new Uint8Array(b); + result.set(cipherKey); + for (var j = 16, i = 1; j < b; ++i) { + var t1 = result[j - 3], t2 = result[j - 2], t3 = result[j - 1], t4 = result[j - 4]; + t1 = s[t1]; + t2 = s[t2]; + t3 = s[t3]; + t4 = s[t4]; + t1 = t1 ^ rcon[i]; + for (var n = 0; n < 4; ++n) { + result[j] = t1 ^= result[j - 16]; + j++; + result[j] = t2 ^= result[j - 16]; + j++; + result[j] = t3 ^= result[j - 16]; + j++; + result[j] = t4 ^= result[j - 16]; + j++; + } + } + return result; + } + function decrypt128(input, key) { + var state = new Uint8Array(16); + state.set(input); + var i, j, k; + var t, u, v; + for (j = 0, k = 160; j < 16; ++j, ++k) { + state[j] ^= key[k]; + } + for (i = 9; i >= 1; --i) { + t = state[13]; + state[13] = state[9]; + state[9] = state[5]; + state[5] = state[1]; + state[1] = t; + t = state[14]; + u = state[10]; + state[14] = state[6]; + state[10] = state[2]; + state[6] = t; + state[2] = u; + t = state[15]; + u = state[11]; + v = state[7]; + state[15] = state[3]; + state[11] = t; + state[7] = u; + state[3] = v; + for (j = 0; j < 16; ++j) { + state[j] = inv_s[state[j]]; + } + for (j = 0, k = i * 16; j < 16; ++j, ++k) { + state[j] ^= key[k]; + } + for (j = 0; j < 16; j += 4) { + var s0 = mix[state[j]], s1 = mix[state[j + 1]], s2 = mix[state[j + 2]], s3 = mix[state[j + 3]]; + t = s0 ^ s1 >>> 8 ^ s1 << 24 ^ s2 >>> 16 ^ s2 << 16 ^ s3 >>> 24 ^ s3 << 8; + state[j] = t >>> 24 & 0xFF; + state[j + 1] = t >> 16 & 0xFF; + state[j + 2] = t >> 8 & 0xFF; + state[j + 3] = t & 0xFF; + } + } + t = state[13]; + state[13] = state[9]; + state[9] = state[5]; + state[5] = state[1]; + state[1] = t; + t = state[14]; + u = state[10]; + state[14] = state[6]; + state[10] = state[2]; + state[6] = t; + state[2] = u; + t = state[15]; + u = state[11]; + v = state[7]; + state[15] = state[3]; + state[11] = t; + state[7] = u; + state[3] = v; + for (j = 0; j < 16; ++j) { + state[j] = inv_s[state[j]]; + state[j] ^= key[j]; + } + return state; + } + function encrypt128(input, key) { + var t, u, v, k; + var state = new Uint8Array(16); + state.set(input); + for (j = 0; j < 16; ++j) { + state[j] ^= key[j]; + } + for (i = 1; i < 10; i++) { + for (j = 0; j < 16; ++j) { + state[j] = s[state[j]]; + } + v = state[1]; + state[1] = state[5]; + state[5] = state[9]; + state[9] = state[13]; + state[13] = v; + v = state[2]; + u = state[6]; + state[2] = state[10]; + state[6] = state[14]; + state[10] = v; + state[14] = u; + v = state[3]; + u = state[7]; + t = state[11]; + state[3] = state[15]; + state[7] = v; + state[11] = u; + state[15] = t; + for (var j = 0; j < 16; j += 4) { + var s0 = state[j + 0], s1 = state[j + 1]; + var s2 = state[j + 2], s3 = state[j + 3]; + t = s0 ^ s1 ^ s2 ^ s3; + state[j + 0] ^= t ^ mixCol[s0 ^ s1]; + state[j + 1] ^= t ^ mixCol[s1 ^ s2]; + state[j + 2] ^= t ^ mixCol[s2 ^ s3]; + state[j + 3] ^= t ^ mixCol[s3 ^ s0]; + } + for (j = 0, k = i * 16; j < 16; ++j, ++k) { + state[j] ^= key[k]; + } + } + for (j = 0; j < 16; ++j) { + state[j] = s[state[j]]; + } + v = state[1]; + state[1] = state[5]; + state[5] = state[9]; + state[9] = state[13]; + state[13] = v; + v = state[2]; + u = state[6]; + state[2] = state[10]; + state[6] = state[14]; + state[10] = v; + state[14] = u; + v = state[3]; + u = state[7]; + t = state[11]; + state[3] = state[15]; + state[7] = v; + state[11] = u; + state[15] = t; + for (j = 0, k = 160; j < 16; ++j, ++k) { + state[j] ^= key[k]; + } + return state; + } + function AES128Cipher(key) { + this.key = expandKey128(key); + this.buffer = new Uint8Array(16); + this.bufferPosition = 0; + } + function decryptBlock2(data, finalize) { + var i, j, ii, sourceLength = data.length, buffer = this.buffer, bufferLength = this.bufferPosition, result = [], iv = this.iv; + for (i = 0; i < sourceLength; ++i) { + buffer[bufferLength] = data[i]; + ++bufferLength; + if (bufferLength < 16) { + continue; + } + var plain = decrypt128(buffer, this.key); + for (j = 0; j < 16; ++j) { + plain[j] ^= iv[j]; + } + iv = buffer; + result.push(plain); + buffer = new Uint8Array(16); + bufferLength = 0; + } + this.buffer = buffer; + this.bufferLength = bufferLength; + this.iv = iv; + if (result.length === 0) { + return new Uint8Array([]); + } + var outputLength = 16 * result.length; + if (finalize) { + var lastBlock = result[result.length - 1]; + var psLen = lastBlock[15]; + if (psLen <= 16) { + for (i = 15, ii = 16 - psLen; i >= ii; --i) { + if (lastBlock[i] !== psLen) { + psLen = 0; + break; + } + } + outputLength -= psLen; + result[result.length - 1] = lastBlock.subarray(0, 16 - psLen); + } + } + var output = new Uint8Array(outputLength); + for (i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) { + output.set(result[i], j); + } + return output; + } + AES128Cipher.prototype = { + decryptBlock: function AES128Cipher_decryptBlock(data, finalize) { + var i, sourceLength = data.length; + var buffer = this.buffer, bufferLength = this.bufferPosition; + for (i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) { + buffer[bufferLength] = data[i]; + } + if (bufferLength < 16) { + this.bufferLength = bufferLength; + return new Uint8Array([]); + } + this.iv = buffer; + this.buffer = new Uint8Array(16); + this.bufferLength = 0; + this.decryptBlock = decryptBlock2; + return this.decryptBlock(data.subarray(16), finalize); + }, + encrypt: function AES128Cipher_encrypt(data, iv) { + var i, j, ii, sourceLength = data.length, buffer = this.buffer, bufferLength = this.bufferPosition, result = []; + if (!iv) { + iv = new Uint8Array(16); + } + for (i = 0; i < sourceLength; ++i) { + buffer[bufferLength] = data[i]; + ++bufferLength; + if (bufferLength < 16) { + continue; + } + for (j = 0; j < 16; ++j) { + buffer[j] ^= iv[j]; + } + var cipher = encrypt128(buffer, this.key); + iv = cipher; + result.push(cipher); + buffer = new Uint8Array(16); + bufferLength = 0; + } + this.buffer = buffer; + this.bufferLength = bufferLength; + this.iv = iv; + if (result.length === 0) { + return new Uint8Array([]); + } + var outputLength = 16 * result.length; + var output = new Uint8Array(outputLength); + for (i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) { + output.set(result[i], j); + } + return output; + } + }; + return AES128Cipher; +}(); +var AES256Cipher = function AES256CipherClosure() { + var s = new Uint8Array([ + 0x63, + 0x7c, + 0x77, + 0x7b, + 0xf2, + 0x6b, + 0x6f, + 0xc5, + 0x30, + 0x01, + 0x67, + 0x2b, + 0xfe, + 0xd7, + 0xab, + 0x76, + 0xca, + 0x82, + 0xc9, + 0x7d, + 0xfa, + 0x59, + 0x47, + 0xf0, + 0xad, + 0xd4, + 0xa2, + 0xaf, + 0x9c, + 0xa4, + 0x72, + 0xc0, + 0xb7, + 0xfd, + 0x93, + 0x26, + 0x36, + 0x3f, + 0xf7, + 0xcc, + 0x34, + 0xa5, + 0xe5, + 0xf1, + 0x71, + 0xd8, + 0x31, + 0x15, + 0x04, + 0xc7, + 0x23, + 0xc3, + 0x18, + 0x96, + 0x05, + 0x9a, + 0x07, + 0x12, + 0x80, + 0xe2, + 0xeb, + 0x27, + 0xb2, + 0x75, + 0x09, + 0x83, + 0x2c, + 0x1a, + 0x1b, + 0x6e, + 0x5a, + 0xa0, + 0x52, + 0x3b, + 0xd6, + 0xb3, + 0x29, + 0xe3, + 0x2f, + 0x84, + 0x53, + 0xd1, + 0x00, + 0xed, + 0x20, + 0xfc, + 0xb1, + 0x5b, + 0x6a, + 0xcb, + 0xbe, + 0x39, + 0x4a, + 0x4c, + 0x58, + 0xcf, + 0xd0, + 0xef, + 0xaa, + 0xfb, + 0x43, + 0x4d, + 0x33, + 0x85, + 0x45, + 0xf9, + 0x02, + 0x7f, + 0x50, + 0x3c, + 0x9f, + 0xa8, + 0x51, + 0xa3, + 0x40, + 0x8f, + 0x92, + 0x9d, + 0x38, + 0xf5, + 0xbc, + 0xb6, + 0xda, + 0x21, + 0x10, + 0xff, + 0xf3, + 0xd2, + 0xcd, + 0x0c, + 0x13, + 0xec, + 0x5f, + 0x97, + 0x44, + 0x17, + 0xc4, + 0xa7, + 0x7e, + 0x3d, + 0x64, + 0x5d, + 0x19, + 0x73, + 0x60, + 0x81, + 0x4f, + 0xdc, + 0x22, + 0x2a, + 0x90, + 0x88, + 0x46, + 0xee, + 0xb8, + 0x14, + 0xde, + 0x5e, + 0x0b, + 0xdb, + 0xe0, + 0x32, + 0x3a, + 0x0a, + 0x49, + 0x06, + 0x24, + 0x5c, + 0xc2, + 0xd3, + 0xac, + 0x62, + 0x91, + 0x95, + 0xe4, + 0x79, + 0xe7, + 0xc8, + 0x37, + 0x6d, + 0x8d, + 0xd5, + 0x4e, + 0xa9, + 0x6c, + 0x56, + 0xf4, + 0xea, + 0x65, + 0x7a, + 0xae, + 0x08, + 0xba, + 0x78, + 0x25, + 0x2e, + 0x1c, + 0xa6, + 0xb4, + 0xc6, + 0xe8, + 0xdd, + 0x74, + 0x1f, + 0x4b, + 0xbd, + 0x8b, + 0x8a, + 0x70, + 0x3e, + 0xb5, + 0x66, + 0x48, + 0x03, + 0xf6, + 0x0e, + 0x61, + 0x35, + 0x57, + 0xb9, + 0x86, + 0xc1, + 0x1d, + 0x9e, + 0xe1, + 0xf8, + 0x98, + 0x11, + 0x69, + 0xd9, + 0x8e, + 0x94, + 0x9b, + 0x1e, + 0x87, + 0xe9, + 0xce, + 0x55, + 0x28, + 0xdf, + 0x8c, + 0xa1, + 0x89, + 0x0d, + 0xbf, + 0xe6, + 0x42, + 0x68, + 0x41, + 0x99, + 0x2d, + 0x0f, + 0xb0, + 0x54, + 0xbb, + 0x16 + ]); + var inv_s = new Uint8Array([ + 0x52, + 0x09, + 0x6a, + 0xd5, + 0x30, + 0x36, + 0xa5, + 0x38, + 0xbf, + 0x40, + 0xa3, + 0x9e, + 0x81, + 0xf3, + 0xd7, + 0xfb, + 0x7c, + 0xe3, + 0x39, + 0x82, + 0x9b, + 0x2f, + 0xff, + 0x87, + 0x34, + 0x8e, + 0x43, + 0x44, + 0xc4, + 0xde, + 0xe9, + 0xcb, + 0x54, + 0x7b, + 0x94, + 0x32, + 0xa6, + 0xc2, + 0x23, + 0x3d, + 0xee, + 0x4c, + 0x95, + 0x0b, + 0x42, + 0xfa, + 0xc3, + 0x4e, + 0x08, + 0x2e, + 0xa1, + 0x66, + 0x28, + 0xd9, + 0x24, + 0xb2, + 0x76, + 0x5b, + 0xa2, + 0x49, + 0x6d, + 0x8b, + 0xd1, + 0x25, + 0x72, + 0xf8, + 0xf6, + 0x64, + 0x86, + 0x68, + 0x98, + 0x16, + 0xd4, + 0xa4, + 0x5c, + 0xcc, + 0x5d, + 0x65, + 0xb6, + 0x92, + 0x6c, + 0x70, + 0x48, + 0x50, + 0xfd, + 0xed, + 0xb9, + 0xda, + 0x5e, + 0x15, + 0x46, + 0x57, + 0xa7, + 0x8d, + 0x9d, + 0x84, + 0x90, + 0xd8, + 0xab, + 0x00, + 0x8c, + 0xbc, + 0xd3, + 0x0a, + 0xf7, + 0xe4, + 0x58, + 0x05, + 0xb8, + 0xb3, + 0x45, + 0x06, + 0xd0, + 0x2c, + 0x1e, + 0x8f, + 0xca, + 0x3f, + 0x0f, + 0x02, + 0xc1, + 0xaf, + 0xbd, + 0x03, + 0x01, + 0x13, + 0x8a, + 0x6b, + 0x3a, + 0x91, + 0x11, + 0x41, + 0x4f, + 0x67, + 0xdc, + 0xea, + 0x97, + 0xf2, + 0xcf, + 0xce, + 0xf0, + 0xb4, + 0xe6, + 0x73, + 0x96, + 0xac, + 0x74, + 0x22, + 0xe7, + 0xad, + 0x35, + 0x85, + 0xe2, + 0xf9, + 0x37, + 0xe8, + 0x1c, + 0x75, + 0xdf, + 0x6e, + 0x47, + 0xf1, + 0x1a, + 0x71, + 0x1d, + 0x29, + 0xc5, + 0x89, + 0x6f, + 0xb7, + 0x62, + 0x0e, + 0xaa, + 0x18, + 0xbe, + 0x1b, + 0xfc, + 0x56, + 0x3e, + 0x4b, + 0xc6, + 0xd2, + 0x79, + 0x20, + 0x9a, + 0xdb, + 0xc0, + 0xfe, + 0x78, + 0xcd, + 0x5a, + 0xf4, + 0x1f, + 0xdd, + 0xa8, + 0x33, + 0x88, + 0x07, + 0xc7, + 0x31, + 0xb1, + 0x12, + 0x10, + 0x59, + 0x27, + 0x80, + 0xec, + 0x5f, + 0x60, + 0x51, + 0x7f, + 0xa9, + 0x19, + 0xb5, + 0x4a, + 0x0d, + 0x2d, + 0xe5, + 0x7a, + 0x9f, + 0x93, + 0xc9, + 0x9c, + 0xef, + 0xa0, + 0xe0, + 0x3b, + 0x4d, + 0xae, + 0x2a, + 0xf5, + 0xb0, + 0xc8, + 0xeb, + 0xbb, + 0x3c, + 0x83, + 0x53, + 0x99, + 0x61, + 0x17, + 0x2b, + 0x04, + 0x7e, + 0xba, + 0x77, + 0xd6, + 0x26, + 0xe1, + 0x69, + 0x14, + 0x63, + 0x55, + 0x21, + 0x0c, + 0x7d + ]); + var mixCol = new Uint8Array(256); + for (var i = 0; i < 256; i++) { + if (i < 128) { + mixCol[i] = i << 1; + } else { + mixCol[i] = i << 1 ^ 0x1b; + } + } + var mix = new Uint32Array([ + 0x00000000, + 0x0e090d0b, + 0x1c121a16, + 0x121b171d, + 0x3824342c, + 0x362d3927, + 0x24362e3a, + 0x2a3f2331, + 0x70486858, + 0x7e416553, + 0x6c5a724e, + 0x62537f45, + 0x486c5c74, + 0x4665517f, + 0x547e4662, + 0x5a774b69, + 0xe090d0b0, + 0xee99ddbb, + 0xfc82caa6, + 0xf28bc7ad, + 0xd8b4e49c, + 0xd6bde997, + 0xc4a6fe8a, + 0xcaaff381, + 0x90d8b8e8, + 0x9ed1b5e3, + 0x8ccaa2fe, + 0x82c3aff5, + 0xa8fc8cc4, + 0xa6f581cf, + 0xb4ee96d2, + 0xbae79bd9, + 0xdb3bbb7b, + 0xd532b670, + 0xc729a16d, + 0xc920ac66, + 0xe31f8f57, + 0xed16825c, + 0xff0d9541, + 0xf104984a, + 0xab73d323, + 0xa57ade28, + 0xb761c935, + 0xb968c43e, + 0x9357e70f, + 0x9d5eea04, + 0x8f45fd19, + 0x814cf012, + 0x3bab6bcb, + 0x35a266c0, + 0x27b971dd, + 0x29b07cd6, + 0x038f5fe7, + 0x0d8652ec, + 0x1f9d45f1, + 0x119448fa, + 0x4be30393, + 0x45ea0e98, + 0x57f11985, + 0x59f8148e, + 0x73c737bf, + 0x7dce3ab4, + 0x6fd52da9, + 0x61dc20a2, + 0xad766df6, + 0xa37f60fd, + 0xb16477e0, + 0xbf6d7aeb, + 0x955259da, + 0x9b5b54d1, + 0x894043cc, + 0x87494ec7, + 0xdd3e05ae, + 0xd33708a5, + 0xc12c1fb8, + 0xcf2512b3, + 0xe51a3182, + 0xeb133c89, + 0xf9082b94, + 0xf701269f, + 0x4de6bd46, + 0x43efb04d, + 0x51f4a750, + 0x5ffdaa5b, + 0x75c2896a, + 0x7bcb8461, + 0x69d0937c, + 0x67d99e77, + 0x3daed51e, + 0x33a7d815, + 0x21bccf08, + 0x2fb5c203, + 0x058ae132, + 0x0b83ec39, + 0x1998fb24, + 0x1791f62f, + 0x764dd68d, + 0x7844db86, + 0x6a5fcc9b, + 0x6456c190, + 0x4e69e2a1, + 0x4060efaa, + 0x527bf8b7, + 0x5c72f5bc, + 0x0605bed5, + 0x080cb3de, + 0x1a17a4c3, + 0x141ea9c8, + 0x3e218af9, + 0x302887f2, + 0x223390ef, + 0x2c3a9de4, + 0x96dd063d, + 0x98d40b36, + 0x8acf1c2b, + 0x84c61120, + 0xaef93211, + 0xa0f03f1a, + 0xb2eb2807, + 0xbce2250c, + 0xe6956e65, + 0xe89c636e, + 0xfa877473, + 0xf48e7978, + 0xdeb15a49, + 0xd0b85742, + 0xc2a3405f, + 0xccaa4d54, + 0x41ecdaf7, + 0x4fe5d7fc, + 0x5dfec0e1, + 0x53f7cdea, + 0x79c8eedb, + 0x77c1e3d0, + 0x65daf4cd, + 0x6bd3f9c6, + 0x31a4b2af, + 0x3fadbfa4, + 0x2db6a8b9, + 0x23bfa5b2, + 0x09808683, + 0x07898b88, + 0x15929c95, + 0x1b9b919e, + 0xa17c0a47, + 0xaf75074c, + 0xbd6e1051, + 0xb3671d5a, + 0x99583e6b, + 0x97513360, + 0x854a247d, + 0x8b432976, + 0xd134621f, + 0xdf3d6f14, + 0xcd267809, + 0xc32f7502, + 0xe9105633, + 0xe7195b38, + 0xf5024c25, + 0xfb0b412e, + 0x9ad7618c, + 0x94de6c87, + 0x86c57b9a, + 0x88cc7691, + 0xa2f355a0, + 0xacfa58ab, + 0xbee14fb6, + 0xb0e842bd, + 0xea9f09d4, + 0xe49604df, + 0xf68d13c2, + 0xf8841ec9, + 0xd2bb3df8, + 0xdcb230f3, + 0xcea927ee, + 0xc0a02ae5, + 0x7a47b13c, + 0x744ebc37, + 0x6655ab2a, + 0x685ca621, + 0x42638510, + 0x4c6a881b, + 0x5e719f06, + 0x5078920d, + 0x0a0fd964, + 0x0406d46f, + 0x161dc372, + 0x1814ce79, + 0x322bed48, + 0x3c22e043, + 0x2e39f75e, + 0x2030fa55, + 0xec9ab701, + 0xe293ba0a, + 0xf088ad17, + 0xfe81a01c, + 0xd4be832d, + 0xdab78e26, + 0xc8ac993b, + 0xc6a59430, + 0x9cd2df59, + 0x92dbd252, + 0x80c0c54f, + 0x8ec9c844, + 0xa4f6eb75, + 0xaaffe67e, + 0xb8e4f163, + 0xb6edfc68, + 0x0c0a67b1, + 0x02036aba, + 0x10187da7, + 0x1e1170ac, + 0x342e539d, + 0x3a275e96, + 0x283c498b, + 0x26354480, + 0x7c420fe9, + 0x724b02e2, + 0x605015ff, + 0x6e5918f4, + 0x44663bc5, + 0x4a6f36ce, + 0x587421d3, + 0x567d2cd8, + 0x37a10c7a, + 0x39a80171, + 0x2bb3166c, + 0x25ba1b67, + 0x0f853856, + 0x018c355d, + 0x13972240, + 0x1d9e2f4b, + 0x47e96422, + 0x49e06929, + 0x5bfb7e34, + 0x55f2733f, + 0x7fcd500e, + 0x71c45d05, + 0x63df4a18, + 0x6dd64713, + 0xd731dcca, + 0xd938d1c1, + 0xcb23c6dc, + 0xc52acbd7, + 0xef15e8e6, + 0xe11ce5ed, + 0xf307f2f0, + 0xfd0efffb, + 0xa779b492, + 0xa970b999, + 0xbb6bae84, + 0xb562a38f, + 0x9f5d80be, + 0x91548db5, + 0x834f9aa8, + 0x8d4697a3 + ]); + function expandKey256(cipherKey) { + var b = 240, result = new Uint8Array(b); + var r = 1; + result.set(cipherKey); + for (var j = 32, i = 1; j < b; ++i) { + if (j % 32 === 16) { + t1 = s[t1]; + t2 = s[t2]; + t3 = s[t3]; + t4 = s[t4]; + } else if (j % 32 === 0) { + var t1 = result[j - 3], t2 = result[j - 2], t3 = result[j - 1], t4 = result[j - 4]; + t1 = s[t1]; + t2 = s[t2]; + t3 = s[t3]; + t4 = s[t4]; + t1 = t1 ^ r; + if ((r <<= 1) >= 256) { + r = (r ^ 0x1b) & 0xFF; + } + } + for (var n = 0; n < 4; ++n) { + result[j] = t1 ^= result[j - 32]; + j++; + result[j] = t2 ^= result[j - 32]; + j++; + result[j] = t3 ^= result[j - 32]; + j++; + result[j] = t4 ^= result[j - 32]; + j++; + } + } + return result; + } + function decrypt256(input, key) { + var state = new Uint8Array(16); + state.set(input); + var i, j, k; + var t, u, v; + for (j = 0, k = 224; j < 16; ++j, ++k) { + state[j] ^= key[k]; + } + for (i = 13; i >= 1; --i) { + t = state[13]; + state[13] = state[9]; + state[9] = state[5]; + state[5] = state[1]; + state[1] = t; + t = state[14]; + u = state[10]; + state[14] = state[6]; + state[10] = state[2]; + state[6] = t; + state[2] = u; + t = state[15]; + u = state[11]; + v = state[7]; + state[15] = state[3]; + state[11] = t; + state[7] = u; + state[3] = v; + for (j = 0; j < 16; ++j) { + state[j] = inv_s[state[j]]; + } + for (j = 0, k = i * 16; j < 16; ++j, ++k) { + state[j] ^= key[k]; + } + for (j = 0; j < 16; j += 4) { + var s0 = mix[state[j]], s1 = mix[state[j + 1]], s2 = mix[state[j + 2]], s3 = mix[state[j + 3]]; + t = s0 ^ s1 >>> 8 ^ s1 << 24 ^ s2 >>> 16 ^ s2 << 16 ^ s3 >>> 24 ^ s3 << 8; + state[j] = t >>> 24 & 0xFF; + state[j + 1] = t >> 16 & 0xFF; + state[j + 2] = t >> 8 & 0xFF; + state[j + 3] = t & 0xFF; + } + } + t = state[13]; + state[13] = state[9]; + state[9] = state[5]; + state[5] = state[1]; + state[1] = t; + t = state[14]; + u = state[10]; + state[14] = state[6]; + state[10] = state[2]; + state[6] = t; + state[2] = u; + t = state[15]; + u = state[11]; + v = state[7]; + state[15] = state[3]; + state[11] = t; + state[7] = u; + state[3] = v; + for (j = 0; j < 16; ++j) { + state[j] = inv_s[state[j]]; + state[j] ^= key[j]; + } + return state; + } + function encrypt256(input, key) { + var t, u, v, k; + var state = new Uint8Array(16); + state.set(input); + for (j = 0; j < 16; ++j) { + state[j] ^= key[j]; + } + for (i = 1; i < 14; i++) { + for (j = 0; j < 16; ++j) { + state[j] = s[state[j]]; + } + v = state[1]; + state[1] = state[5]; + state[5] = state[9]; + state[9] = state[13]; + state[13] = v; + v = state[2]; + u = state[6]; + state[2] = state[10]; + state[6] = state[14]; + state[10] = v; + state[14] = u; + v = state[3]; + u = state[7]; + t = state[11]; + state[3] = state[15]; + state[7] = v; + state[11] = u; + state[15] = t; + for (var j = 0; j < 16; j += 4) { + var s0 = state[j + 0], s1 = state[j + 1]; + var s2 = state[j + 2], s3 = state[j + 3]; + t = s0 ^ s1 ^ s2 ^ s3; + state[j + 0] ^= t ^ mixCol[s0 ^ s1]; + state[j + 1] ^= t ^ mixCol[s1 ^ s2]; + state[j + 2] ^= t ^ mixCol[s2 ^ s3]; + state[j + 3] ^= t ^ mixCol[s3 ^ s0]; + } + for (j = 0, k = i * 16; j < 16; ++j, ++k) { + state[j] ^= key[k]; + } + } + for (j = 0; j < 16; ++j) { + state[j] = s[state[j]]; + } + v = state[1]; + state[1] = state[5]; + state[5] = state[9]; + state[9] = state[13]; + state[13] = v; + v = state[2]; + u = state[6]; + state[2] = state[10]; + state[6] = state[14]; + state[10] = v; + state[14] = u; + v = state[3]; + u = state[7]; + t = state[11]; + state[3] = state[15]; + state[7] = v; + state[11] = u; + state[15] = t; + for (j = 0, k = 224; j < 16; ++j, ++k) { + state[j] ^= key[k]; + } + return state; + } + function AES256Cipher(key) { + this.key = expandKey256(key); + this.buffer = new Uint8Array(16); + this.bufferPosition = 0; + } + function decryptBlock2(data, finalize) { + var i, j, ii, sourceLength = data.length, buffer = this.buffer, bufferLength = this.bufferPosition, result = [], iv = this.iv; + for (i = 0; i < sourceLength; ++i) { + buffer[bufferLength] = data[i]; + ++bufferLength; + if (bufferLength < 16) { + continue; + } + var plain = decrypt256(buffer, this.key); + for (j = 0; j < 16; ++j) { + plain[j] ^= iv[j]; + } + iv = buffer; + result.push(plain); + buffer = new Uint8Array(16); + bufferLength = 0; + } + this.buffer = buffer; + this.bufferLength = bufferLength; + this.iv = iv; + if (result.length === 0) { + return new Uint8Array([]); + } + var outputLength = 16 * result.length; + if (finalize) { + var lastBlock = result[result.length - 1]; + var psLen = lastBlock[15]; + if (psLen <= 16) { + for (i = 15, ii = 16 - psLen; i >= ii; --i) { + if (lastBlock[i] !== psLen) { + psLen = 0; + break; + } + } + outputLength -= psLen; + result[result.length - 1] = lastBlock.subarray(0, 16 - psLen); + } + } + var output = new Uint8Array(outputLength); + for (i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) { + output.set(result[i], j); + } + return output; + } + AES256Cipher.prototype = { + decryptBlock: function AES256Cipher_decryptBlock(data, finalize, iv) { + var i, sourceLength = data.length; + var buffer = this.buffer, bufferLength = this.bufferPosition; + if (iv) { + this.iv = iv; + } else { + for (i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) { + buffer[bufferLength] = data[i]; + } + if (bufferLength < 16) { + this.bufferLength = bufferLength; + return new Uint8Array([]); + } + this.iv = buffer; + data = data.subarray(16); + } + this.buffer = new Uint8Array(16); + this.bufferLength = 0; + this.decryptBlock = decryptBlock2; + return this.decryptBlock(data, finalize); + }, + encrypt: function AES256Cipher_encrypt(data, iv) { + var i, j, ii, sourceLength = data.length, buffer = this.buffer, bufferLength = this.bufferPosition, result = []; + if (!iv) { + iv = new Uint8Array(16); + } + for (i = 0; i < sourceLength; ++i) { + buffer[bufferLength] = data[i]; + ++bufferLength; + if (bufferLength < 16) { + continue; + } + for (j = 0; j < 16; ++j) { + buffer[j] ^= iv[j]; + } + var cipher = encrypt256(buffer, this.key); + this.iv = cipher; + result.push(cipher); + buffer = new Uint8Array(16); + bufferLength = 0; + } + this.buffer = buffer; + this.bufferLength = bufferLength; + this.iv = iv; + if (result.length === 0) { + return new Uint8Array([]); + } + var outputLength = 16 * result.length; + var output = new Uint8Array(outputLength); + for (i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) { + output.set(result[i], j); + } + return output; + } + }; + return AES256Cipher; +}(); +var PDF17 = function PDF17Closure() { + function compareByteArrays(array1, array2) { + if (array1.length !== array2.length) { + return false; + } + for (var i = 0; i < array1.length; i++) { + if (array1[i] !== array2[i]) { + return false; + } + } + return true; + } + function PDF17() { + } + PDF17.prototype = { + checkOwnerPassword: function PDF17_checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) { + var hashData = new Uint8Array(password.length + 56); + hashData.set(password, 0); + hashData.set(ownerValidationSalt, password.length); + hashData.set(userBytes, password.length + ownerValidationSalt.length); + var result = calculateSHA256(hashData, 0, hashData.length); + return compareByteArrays(result, ownerPassword); + }, + checkUserPassword: function PDF17_checkUserPassword(password, userValidationSalt, userPassword) { + var hashData = new Uint8Array(password.length + 8); + hashData.set(password, 0); + hashData.set(userValidationSalt, password.length); + var result = calculateSHA256(hashData, 0, hashData.length); + return compareByteArrays(result, userPassword); + }, + getOwnerKey: function PDF17_getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) { + var hashData = new Uint8Array(password.length + 56); + hashData.set(password, 0); + hashData.set(ownerKeySalt, password.length); + hashData.set(userBytes, password.length + ownerKeySalt.length); + var key = calculateSHA256(hashData, 0, hashData.length); + var cipher = new AES256Cipher(key); + return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16)); + }, + getUserKey: function PDF17_getUserKey(password, userKeySalt, userEncryption) { + var hashData = new Uint8Array(password.length + 8); + hashData.set(password, 0); + hashData.set(userKeySalt, password.length); + var key = calculateSHA256(hashData, 0, hashData.length); + var cipher = new AES256Cipher(key); + return cipher.decryptBlock(userEncryption, false, new Uint8Array(16)); + } + }; + return PDF17; +}(); +var PDF20 = function PDF20Closure() { + function concatArrays(array1, array2) { + var t = new Uint8Array(array1.length + array2.length); + t.set(array1, 0); + t.set(array2, array1.length); + return t; + } + function calculatePDF20Hash(password, input, userBytes) { + var k = calculateSHA256(input, 0, input.length).subarray(0, 32); + var e = [0]; + var i = 0; + while (i < 64 || e[e.length - 1] > i - 32) { + var arrayLength = password.length + k.length + userBytes.length; + var k1 = new Uint8Array(arrayLength * 64); + var array = concatArrays(password, k); + array = concatArrays(array, userBytes); + for (var j = 0, pos = 0; j < 64; j++, pos += arrayLength) { + k1.set(array, pos); + } + var cipher = new AES128Cipher(k.subarray(0, 16)); + e = cipher.encrypt(k1, k.subarray(16, 32)); + var remainder = 0; + for (var z = 0; z < 16; z++) { + remainder *= 256 % 3; + remainder %= 3; + remainder += (e[z] >>> 0) % 3; + remainder %= 3; + } + if (remainder === 0) { + k = calculateSHA256(e, 0, e.length); + } else if (remainder === 1) { + k = calculateSHA384(e, 0, e.length); + } else if (remainder === 2) { + k = calculateSHA512(e, 0, e.length); + } + i++; + } + return k.subarray(0, 32); + } + function PDF20() { + } + function compareByteArrays(array1, array2) { + if (array1.length !== array2.length) { + return false; + } + for (var i = 0; i < array1.length; i++) { + if (array1[i] !== array2[i]) { + return false; + } + } + return true; + } + PDF20.prototype = { + hash: function PDF20_hash(password, concatBytes, userBytes) { + return calculatePDF20Hash(password, concatBytes, userBytes); + }, + checkOwnerPassword: function PDF20_checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) { + var hashData = new Uint8Array(password.length + 56); + hashData.set(password, 0); + hashData.set(ownerValidationSalt, password.length); + hashData.set(userBytes, password.length + ownerValidationSalt.length); + var result = calculatePDF20Hash(password, hashData, userBytes); + return compareByteArrays(result, ownerPassword); + }, + checkUserPassword: function PDF20_checkUserPassword(password, userValidationSalt, userPassword) { + var hashData = new Uint8Array(password.length + 8); + hashData.set(password, 0); + hashData.set(userValidationSalt, password.length); + var result = calculatePDF20Hash(password, hashData, []); + return compareByteArrays(result, userPassword); + }, + getOwnerKey: function PDF20_getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) { + var hashData = new Uint8Array(password.length + 56); + hashData.set(password, 0); + hashData.set(ownerKeySalt, password.length); + hashData.set(userBytes, password.length + ownerKeySalt.length); + var key = calculatePDF20Hash(password, hashData, userBytes); + var cipher = new AES256Cipher(key); + return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16)); + }, + getUserKey: function PDF20_getUserKey(password, userKeySalt, userEncryption) { + var hashData = new Uint8Array(password.length + 8); + hashData.set(password, 0); + hashData.set(userKeySalt, password.length); + var key = calculatePDF20Hash(password, hashData, []); + var cipher = new AES256Cipher(key); + return cipher.decryptBlock(userEncryption, false, new Uint8Array(16)); + } + }; + return PDF20; +}(); +var CipherTransform = function CipherTransformClosure() { + function CipherTransform(stringCipherConstructor, streamCipherConstructor) { + this.StringCipherConstructor = stringCipherConstructor; + this.StreamCipherConstructor = streamCipherConstructor; + } + CipherTransform.prototype = { + createStream: function CipherTransform_createStream(stream, length) { + var cipher = new this.StreamCipherConstructor(); + return new DecryptStream(stream, length, function cipherTransformDecryptStream(data, finalize) { + return cipher.decryptBlock(data, finalize); + }); + }, + decryptString: function CipherTransform_decryptString(s) { + var cipher = new this.StringCipherConstructor(); + var data = stringToBytes(s); + data = cipher.decryptBlock(data, true); + return bytesToString(data); + } + }; + return CipherTransform; +}(); +var CipherTransformFactory = function CipherTransformFactoryClosure() { + var defaultPasswordBytes = new Uint8Array([ + 0x28, + 0xBF, + 0x4E, + 0x5E, + 0x4E, + 0x75, + 0x8A, + 0x41, + 0x64, + 0x00, + 0x4E, + 0x56, + 0xFF, + 0xFA, + 0x01, + 0x08, + 0x2E, + 0x2E, + 0x00, + 0xB6, + 0xD0, + 0x68, + 0x3E, + 0x80, + 0x2F, + 0x0C, + 0xA9, + 0xFE, + 0x64, + 0x53, + 0x69, + 0x7A + ]); + function createEncryptionKey20(revision, password, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms) { + if (password) { + var passwordLength = Math.min(127, password.length); + password = password.subarray(0, passwordLength); + } else { + password = []; + } + var pdfAlgorithm; + if (revision === 6) { + pdfAlgorithm = new PDF20(); + } else { + pdfAlgorithm = new PDF17(); + } + if (pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)) { + return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption); + } else if (password.length && pdfAlgorithm.checkOwnerPassword(password, ownerValidationSalt, uBytes, ownerPassword)) { + return pdfAlgorithm.getOwnerKey(password, ownerKeySalt, uBytes, ownerEncryption); + } + return null; + } + function prepareKeyData(fileId, password, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata) { + var hashDataSize = 40 + ownerPassword.length + fileId.length; + var hashData = new Uint8Array(hashDataSize), i = 0, j, n; + if (password) { + n = Math.min(32, password.length); + for (; i < n; ++i) { + hashData[i] = password[i]; + } + } + j = 0; + while (i < 32) { + hashData[i++] = defaultPasswordBytes[j++]; + } + for (j = 0, n = ownerPassword.length; j < n; ++j) { + hashData[i++] = ownerPassword[j]; + } + hashData[i++] = flags & 0xFF; + hashData[i++] = flags >> 8 & 0xFF; + hashData[i++] = flags >> 16 & 0xFF; + hashData[i++] = flags >>> 24 & 0xFF; + for (j = 0, n = fileId.length; j < n; ++j) { + hashData[i++] = fileId[j]; + } + if (revision >= 4 && !encryptMetadata) { + hashData[i++] = 0xFF; + hashData[i++] = 0xFF; + hashData[i++] = 0xFF; + hashData[i++] = 0xFF; + } + var hash = calculateMD5(hashData, 0, i); + var keyLengthInBytes = keyLength >> 3; + if (revision >= 3) { + for (j = 0; j < 50; ++j) { + hash = calculateMD5(hash, 0, keyLengthInBytes); + } + } + var encryptionKey = hash.subarray(0, keyLengthInBytes); + var cipher, checkData; + if (revision >= 3) { + for (i = 0; i < 32; ++i) { + hashData[i] = defaultPasswordBytes[i]; + } + for (j = 0, n = fileId.length; j < n; ++j) { + hashData[i++] = fileId[j]; + } + cipher = new ARCFourCipher(encryptionKey); + checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i)); + n = encryptionKey.length; + var derivedKey = new Uint8Array(n), k; + for (j = 1; j <= 19; ++j) { + for (k = 0; k < n; ++k) { + derivedKey[k] = encryptionKey[k] ^ j; + } + cipher = new ARCFourCipher(derivedKey); + checkData = cipher.encryptBlock(checkData); + } + for (j = 0, n = checkData.length; j < n; ++j) { + if (userPassword[j] !== checkData[j]) { + return null; + } + } + } else { + cipher = new ARCFourCipher(encryptionKey); + checkData = cipher.encryptBlock(defaultPasswordBytes); + for (j = 0, n = checkData.length; j < n; ++j) { + if (userPassword[j] !== checkData[j]) { + return null; + } + } + } + return encryptionKey; + } + function decodeUserPassword(password, ownerPassword, revision, keyLength) { + var hashData = new Uint8Array(32), i = 0, j, n; + n = Math.min(32, password.length); + for (; i < n; ++i) { + hashData[i] = password[i]; + } + j = 0; + while (i < 32) { + hashData[i++] = defaultPasswordBytes[j++]; + } + var hash = calculateMD5(hashData, 0, i); + var keyLengthInBytes = keyLength >> 3; + if (revision >= 3) { + for (j = 0; j < 50; ++j) { + hash = calculateMD5(hash, 0, hash.length); + } + } + var cipher, userPassword; + if (revision >= 3) { + userPassword = ownerPassword; + var derivedKey = new Uint8Array(keyLengthInBytes), k; + for (j = 19; j >= 0; j--) { + for (k = 0; k < keyLengthInBytes; ++k) { + derivedKey[k] = hash[k] ^ j; + } + cipher = new ARCFourCipher(derivedKey); + userPassword = cipher.encryptBlock(userPassword); + } + } else { + cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes)); + userPassword = cipher.encryptBlock(ownerPassword); + } + return userPassword; + } + var identityName = Name.get('Identity'); + function CipherTransformFactory(dict, fileId, password) { + var filter = dict.get('Filter'); + if (!isName(filter, 'Standard')) { + error('unknown encryption method'); + } + this.dict = dict; + var algorithm = dict.get('V'); + if (!isInt(algorithm) || algorithm !== 1 && algorithm !== 2 && algorithm !== 4 && algorithm !== 5) { + error('unsupported encryption algorithm'); + } + this.algorithm = algorithm; + var keyLength = dict.get('Length'); + if (!keyLength) { + if (algorithm <= 3) { + keyLength = 40; + } else { + var cfDict = dict.get('CF'); + var streamCryptoName = dict.get('StmF'); + if (isDict(cfDict) && isName(streamCryptoName)) { + cfDict.suppressEncryption = true; + var handlerDict = cfDict.get(streamCryptoName.name); + keyLength = handlerDict && handlerDict.get('Length') || 128; + if (keyLength < 40) { + keyLength <<= 3; + } + } + } + } + if (!isInt(keyLength) || keyLength < 40 || keyLength % 8 !== 0) { + error('invalid key length'); + } + var ownerPassword = stringToBytes(dict.get('O')).subarray(0, 32); + var userPassword = stringToBytes(dict.get('U')).subarray(0, 32); + var flags = dict.get('P'); + var revision = dict.get('R'); + var encryptMetadata = (algorithm === 4 || algorithm === 5) && dict.get('EncryptMetadata') !== false; + this.encryptMetadata = encryptMetadata; + var fileIdBytes = stringToBytes(fileId); + var passwordBytes; + if (password) { + if (revision === 6) { + try { + password = utf8StringToString(password); + } catch (ex) { + warn('CipherTransformFactory: ' + 'Unable to convert UTF8 encoded password.'); + } + } + passwordBytes = stringToBytes(password); + } + var encryptionKey; + if (algorithm !== 5) { + encryptionKey = prepareKeyData(fileIdBytes, passwordBytes, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata); + } else { + var ownerValidationSalt = stringToBytes(dict.get('O')).subarray(32, 40); + var ownerKeySalt = stringToBytes(dict.get('O')).subarray(40, 48); + var uBytes = stringToBytes(dict.get('U')).subarray(0, 48); + var userValidationSalt = stringToBytes(dict.get('U')).subarray(32, 40); + var userKeySalt = stringToBytes(dict.get('U')).subarray(40, 48); + var ownerEncryption = stringToBytes(dict.get('OE')); + var userEncryption = stringToBytes(dict.get('UE')); + var perms = stringToBytes(dict.get('Perms')); + encryptionKey = createEncryptionKey20(revision, passwordBytes, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms); + } + if (!encryptionKey && !password) { + throw new PasswordException('No password given', PasswordResponses.NEED_PASSWORD); + } else if (!encryptionKey && password) { + var decodedPassword = decodeUserPassword(passwordBytes, ownerPassword, revision, keyLength); + encryptionKey = prepareKeyData(fileIdBytes, decodedPassword, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata); + } + if (!encryptionKey) { + throw new PasswordException('Incorrect Password', PasswordResponses.INCORRECT_PASSWORD); + } + this.encryptionKey = encryptionKey; + if (algorithm >= 4) { + var cf = dict.get('CF'); + if (isDict(cf)) { + cf.suppressEncryption = true; + } + this.cf = cf; + this.stmf = dict.get('StmF') || identityName; + this.strf = dict.get('StrF') || identityName; + this.eff = dict.get('EFF') || this.stmf; + } + } + function buildObjectKey(num, gen, encryptionKey, isAes) { + var key = new Uint8Array(encryptionKey.length + 9), i, n; + for (i = 0, n = encryptionKey.length; i < n; ++i) { + key[i] = encryptionKey[i]; + } + key[i++] = num & 0xFF; + key[i++] = num >> 8 & 0xFF; + key[i++] = num >> 16 & 0xFF; + key[i++] = gen & 0xFF; + key[i++] = gen >> 8 & 0xFF; + if (isAes) { + key[i++] = 0x73; + key[i++] = 0x41; + key[i++] = 0x6C; + key[i++] = 0x54; + } + var hash = calculateMD5(key, 0, i); + return hash.subarray(0, Math.min(encryptionKey.length + 5, 16)); + } + function buildCipherConstructor(cf, name, num, gen, key) { + assert(isName(name), 'Invalid crypt filter name.'); + var cryptFilter = cf.get(name.name); + var cfm; + if (cryptFilter !== null && cryptFilter !== undefined) { + cfm = cryptFilter.get('CFM'); + } + if (!cfm || cfm.name === 'None') { + return function cipherTransformFactoryBuildCipherConstructorNone() { + return new NullCipher(); + }; + } + if (cfm.name === 'V2') { + return function cipherTransformFactoryBuildCipherConstructorV2() { + return new ARCFourCipher(buildObjectKey(num, gen, key, false)); + }; + } + if (cfm.name === 'AESV2') { + return function cipherTransformFactoryBuildCipherConstructorAESV2() { + return new AES128Cipher(buildObjectKey(num, gen, key, true)); + }; + } + if (cfm.name === 'AESV3') { + return function cipherTransformFactoryBuildCipherConstructorAESV3() { + return new AES256Cipher(key); + }; + } + error('Unknown crypto method'); + } + CipherTransformFactory.prototype = { + createCipherTransform: function CipherTransformFactory_createCipherTransform(num, gen) { + if (this.algorithm === 4 || this.algorithm === 5) { + return new CipherTransform(buildCipherConstructor(this.cf, this.stmf, num, gen, this.encryptionKey), buildCipherConstructor(this.cf, this.strf, num, gen, this.encryptionKey)); + } + var key = buildObjectKey(num, gen, this.encryptionKey, false); + var cipherConstructor = function buildCipherCipherConstructor() { + return new ARCFourCipher(key); + }; + return new CipherTransform(cipherConstructor, cipherConstructor); + } + }; + return CipherTransformFactory; +}(); +exports.AES128Cipher = AES128Cipher; +exports.AES256Cipher = AES256Cipher; +exports.ARCFourCipher = ARCFourCipher; +exports.CipherTransformFactory = CipherTransformFactory; +exports.PDF17 = PDF17; +exports.PDF20 = PDF20; +exports.calculateMD5 = calculateMD5; +exports.calculateSHA256 = calculateSHA256; +exports.calculateSHA384 = calculateSHA384; +exports.calculateSHA512 = calculateSHA512; + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var corePrimitives = __w_pdfjs_require__(1); +var coreStream = __w_pdfjs_require__(2); +var coreParser = __w_pdfjs_require__(5); +var coreImage = __w_pdfjs_require__(27); +var coreColorSpace = __w_pdfjs_require__(3); +var coreMurmurHash3 = __w_pdfjs_require__(31); +var coreFonts = __w_pdfjs_require__(26); +var coreFunction = __w_pdfjs_require__(6); +var corePattern = __w_pdfjs_require__(32); +var coreCMap = __w_pdfjs_require__(23); +var coreMetrics = __w_pdfjs_require__(30); +var coreBidi = __w_pdfjs_require__(21); +var coreEncodings = __w_pdfjs_require__(4); +var coreStandardFonts = __w_pdfjs_require__(17); +var coreUnicode = __w_pdfjs_require__(18); +var coreGlyphList = __w_pdfjs_require__(7); +var FONT_IDENTITY_MATRIX = sharedUtil.FONT_IDENTITY_MATRIX; +var IDENTITY_MATRIX = sharedUtil.IDENTITY_MATRIX; +var UNSUPPORTED_FEATURES = sharedUtil.UNSUPPORTED_FEATURES; +var ImageKind = sharedUtil.ImageKind; +var OPS = sharedUtil.OPS; +var TextRenderingMode = sharedUtil.TextRenderingMode; +var CMapCompressionType = sharedUtil.CMapCompressionType; +var Util = sharedUtil.Util; +var assert = sharedUtil.assert; +var createPromiseCapability = sharedUtil.createPromiseCapability; +var error = sharedUtil.error; +var info = sharedUtil.info; +var isArray = sharedUtil.isArray; +var isNum = sharedUtil.isNum; +var isString = sharedUtil.isString; +var getLookupTableFactory = sharedUtil.getLookupTableFactory; +var warn = sharedUtil.warn; +var Dict = corePrimitives.Dict; +var Name = corePrimitives.Name; +var isEOF = corePrimitives.isEOF; +var isCmd = corePrimitives.isCmd; +var isDict = corePrimitives.isDict; +var isName = corePrimitives.isName; +var isRef = corePrimitives.isRef; +var isStream = corePrimitives.isStream; +var DecodeStream = coreStream.DecodeStream; +var JpegStream = coreStream.JpegStream; +var Stream = coreStream.Stream; +var Lexer = coreParser.Lexer; +var Parser = coreParser.Parser; +var PDFImage = coreImage.PDFImage; +var ColorSpace = coreColorSpace.ColorSpace; +var MurmurHash3_64 = coreMurmurHash3.MurmurHash3_64; +var ErrorFont = coreFonts.ErrorFont; +var FontFlags = coreFonts.FontFlags; +var Font = coreFonts.Font; +var IdentityToUnicodeMap = coreFonts.IdentityToUnicodeMap; +var ToUnicodeMap = coreFonts.ToUnicodeMap; +var getFontType = coreFonts.getFontType; +var isPDFFunction = coreFunction.isPDFFunction; +var PDFFunction = coreFunction.PDFFunction; +var Pattern = corePattern.Pattern; +var getTilingPatternIR = corePattern.getTilingPatternIR; +var CMapFactory = coreCMap.CMapFactory; +var IdentityCMap = coreCMap.IdentityCMap; +var getMetrics = coreMetrics.getMetrics; +var bidi = coreBidi.bidi; +var WinAnsiEncoding = coreEncodings.WinAnsiEncoding; +var StandardEncoding = coreEncodings.StandardEncoding; +var MacRomanEncoding = coreEncodings.MacRomanEncoding; +var SymbolSetEncoding = coreEncodings.SymbolSetEncoding; +var ZapfDingbatsEncoding = coreEncodings.ZapfDingbatsEncoding; +var getEncoding = coreEncodings.getEncoding; +var getStdFontMap = coreStandardFonts.getStdFontMap; +var getSerifFonts = coreStandardFonts.getSerifFonts; +var getSymbolsFonts = coreStandardFonts.getSymbolsFonts; +var getNormalizedUnicodes = coreUnicode.getNormalizedUnicodes; +var reverseIfRtl = coreUnicode.reverseIfRtl; +var getUnicodeForGlyph = coreUnicode.getUnicodeForGlyph; +var getGlyphsUnicode = coreGlyphList.getGlyphsUnicode; +var PartialEvaluator = function PartialEvaluatorClosure() { + var DefaultPartialEvaluatorOptions = { + forceDataSchema: false, + maxImageSize: -1, + disableFontFace: false, + disableNativeImageDecoder: false + }; + function NativeImageDecoder(xref, resources, handler, forceDataSchema) { + this.xref = xref; + this.resources = resources; + this.handler = handler; + this.forceDataSchema = forceDataSchema; + } + NativeImageDecoder.prototype = { + canDecode: function (image) { + return image instanceof JpegStream && NativeImageDecoder.isDecodable(image, this.xref, this.resources); + }, + decode: function (image) { + var dict = image.dict; + var colorSpace = dict.get('ColorSpace', 'CS'); + colorSpace = ColorSpace.parse(colorSpace, this.xref, this.resources); + var numComps = colorSpace.numComps; + var decodePromise = this.handler.sendWithPromise('JpegDecode', [ + image.getIR(this.forceDataSchema), + numComps + ]); + return decodePromise.then(function (message) { + var data = message.data; + return new Stream(data, 0, data.length, image.dict); + }); + } + }; + NativeImageDecoder.isSupported = function NativeImageDecoder_isSupported(image, xref, res) { + var dict = image.dict; + if (dict.has('DecodeParms') || dict.has('DP')) { + return false; + } + var cs = ColorSpace.parse(dict.get('ColorSpace', 'CS'), xref, res); + return (cs.name === 'DeviceGray' || cs.name === 'DeviceRGB') && cs.isDefaultDecode(dict.getArray('Decode', 'D')); + }; + NativeImageDecoder.isDecodable = function NativeImageDecoder_isDecodable(image, xref, res) { + var dict = image.dict; + if (dict.has('DecodeParms') || dict.has('DP')) { + return false; + } + var cs = ColorSpace.parse(dict.get('ColorSpace', 'CS'), xref, res); + return (cs.numComps === 1 || cs.numComps === 3) && cs.isDefaultDecode(dict.getArray('Decode', 'D')); + }; + function PartialEvaluator(pdfManager, xref, handler, pageIndex, idFactory, fontCache, builtInCMapCache, options) { + this.pdfManager = pdfManager; + this.xref = xref; + this.handler = handler; + this.pageIndex = pageIndex; + this.idFactory = idFactory; + this.fontCache = fontCache; + this.builtInCMapCache = builtInCMapCache; + this.options = options || DefaultPartialEvaluatorOptions; + this.fetchBuiltInCMap = function (name) { + var cachedCMap = builtInCMapCache[name]; + if (cachedCMap) { + return Promise.resolve(cachedCMap); + } + return handler.sendWithPromise('FetchBuiltInCMap', { name: name }).then(function (data) { + if (data.compressionType !== CMapCompressionType.NONE) { + builtInCMapCache[name] = data; + } + return data; + }); + }; + } + var TIME_SLOT_DURATION_MS = 20; + var CHECK_TIME_EVERY = 100; + function TimeSlotManager() { + this.reset(); + } + TimeSlotManager.prototype = { + check: function TimeSlotManager_check() { + if (++this.checked < CHECK_TIME_EVERY) { + return false; + } + this.checked = 0; + return this.endTime <= Date.now(); + }, + reset: function TimeSlotManager_reset() { + this.endTime = Date.now() + TIME_SLOT_DURATION_MS; + this.checked = 0; + } + }; + var deferred = Promise.resolve(); + var TILING_PATTERN = 1, SHADING_PATTERN = 2; + PartialEvaluator.prototype = { + hasBlendModes: function PartialEvaluator_hasBlendModes(resources) { + if (!isDict(resources)) { + return false; + } + var processed = Object.create(null); + if (resources.objId) { + processed[resources.objId] = true; + } + var nodes = [resources], xref = this.xref; + while (nodes.length) { + var key, i, ii; + var node = nodes.shift(); + var graphicStates = node.get('ExtGState'); + if (isDict(graphicStates)) { + var graphicStatesKeys = graphicStates.getKeys(); + for (i = 0, ii = graphicStatesKeys.length; i < ii; i++) { + key = graphicStatesKeys[i]; + var graphicState = graphicStates.get(key); + var bm = graphicState.get('BM'); + if (isName(bm) && bm.name !== 'Normal') { + return true; + } + } + } + var xObjects = node.get('XObject'); + if (!isDict(xObjects)) { + continue; + } + var xObjectsKeys = xObjects.getKeys(); + for (i = 0, ii = xObjectsKeys.length; i < ii; i++) { + key = xObjectsKeys[i]; + var xObject = xObjects.getRaw(key); + if (isRef(xObject)) { + if (processed[xObject.toString()]) { + continue; + } + xObject = xref.fetch(xObject); + } + if (!isStream(xObject)) { + continue; + } + if (xObject.dict.objId) { + if (processed[xObject.dict.objId]) { + continue; + } + processed[xObject.dict.objId] = true; + } + var xResources = xObject.dict.get('Resources'); + if (isDict(xResources) && (!xResources.objId || !processed[xResources.objId])) { + nodes.push(xResources); + if (xResources.objId) { + processed[xResources.objId] = true; + } + } + } + } + return false; + }, + buildFormXObject: function PartialEvaluator_buildFormXObject(resources, xobj, smask, operatorList, task, initialState) { + var matrix = xobj.dict.getArray('Matrix'); + var bbox = xobj.dict.getArray('BBox'); + var group = xobj.dict.get('Group'); + if (group) { + var groupOptions = { + matrix: matrix, + bbox: bbox, + smask: smask, + isolated: false, + knockout: false + }; + var groupSubtype = group.get('S'); + var colorSpace; + if (isName(groupSubtype, 'Transparency')) { + groupOptions.isolated = group.get('I') || false; + groupOptions.knockout = group.get('K') || false; + colorSpace = group.has('CS') ? ColorSpace.parse(group.get('CS'), this.xref, resources) : null; + } + if (smask && smask.backdrop) { + colorSpace = colorSpace || ColorSpace.singletons.rgb; + smask.backdrop = colorSpace.getRgb(smask.backdrop, 0); + } + operatorList.addOp(OPS.beginGroup, [groupOptions]); + } + operatorList.addOp(OPS.paintFormXObjectBegin, [ + matrix, + bbox + ]); + return this.getOperatorList(xobj, task, xobj.dict.get('Resources') || resources, operatorList, initialState).then(function () { + operatorList.addOp(OPS.paintFormXObjectEnd, []); + if (group) { + operatorList.addOp(OPS.endGroup, [groupOptions]); + } + }); + }, + buildPaintImageXObject: function PartialEvaluator_buildPaintImageXObject(resources, image, inline, operatorList, cacheKey, imageCache) { + var self = this; + var dict = image.dict; + var w = dict.get('Width', 'W'); + var h = dict.get('Height', 'H'); + if (!(w && isNum(w)) || !(h && isNum(h))) { + warn('Image dimensions are missing, or not numbers.'); + return; + } + var maxImageSize = this.options.maxImageSize; + if (maxImageSize !== -1 && w * h > maxImageSize) { + warn('Image exceeded maximum allowed size and was removed.'); + return; + } + var imageMask = dict.get('ImageMask', 'IM') || false; + var imgData, args; + if (imageMask) { + var width = dict.get('Width', 'W'); + var height = dict.get('Height', 'H'); + var bitStrideLength = width + 7 >> 3; + var imgArray = image.getBytes(bitStrideLength * height); + var decode = dict.getArray('Decode', 'D'); + var inverseDecode = !!decode && decode[0] > 0; + imgData = PDFImage.createMask(imgArray, width, height, image instanceof DecodeStream, inverseDecode); + imgData.cached = true; + args = [imgData]; + operatorList.addOp(OPS.paintImageMaskXObject, args); + if (cacheKey) { + imageCache[cacheKey] = { + fn: OPS.paintImageMaskXObject, + args: args + }; + } + return; + } + var softMask = dict.get('SMask', 'SM') || false; + var mask = dict.get('Mask') || false; + var SMALL_IMAGE_DIMENSIONS = 200; + if (inline && !softMask && !mask && !(image instanceof JpegStream) && w + h < SMALL_IMAGE_DIMENSIONS) { + var imageObj = new PDFImage(this.xref, resources, image, inline, null, null); + imgData = imageObj.createImageData(true); + operatorList.addOp(OPS.paintInlineImageXObject, [imgData]); + return; + } + var useNativeImageDecoder = !this.options.disableNativeImageDecoder; + var objId = 'img_' + this.idFactory.createObjId(); + operatorList.addDependency(objId); + args = [ + objId, + w, + h + ]; + if (useNativeImageDecoder && !softMask && !mask && image instanceof JpegStream && NativeImageDecoder.isSupported(image, this.xref, resources)) { + operatorList.addOp(OPS.paintJpegXObject, args); + this.handler.send('obj', [ + objId, + this.pageIndex, + 'JpegStream', + image.getIR(this.options.forceDataSchema) + ]); + return; + } + var nativeImageDecoder = null; + if (useNativeImageDecoder && (image instanceof JpegStream || mask instanceof JpegStream || softMask instanceof JpegStream)) { + nativeImageDecoder = new NativeImageDecoder(self.xref, resources, self.handler, self.options.forceDataSchema); + } + PDFImage.buildImage(self.handler, self.xref, resources, image, inline, nativeImageDecoder).then(function (imageObj) { + var imgData = imageObj.createImageData(false); + self.handler.send('obj', [ + objId, + self.pageIndex, + 'Image', + imgData + ], [imgData.data.buffer]); + }).then(undefined, function (reason) { + warn('Unable to decode image: ' + reason); + self.handler.send('obj', [ + objId, + self.pageIndex, + 'Image', + null + ]); + }); + operatorList.addOp(OPS.paintImageXObject, args); + if (cacheKey) { + imageCache[cacheKey] = { + fn: OPS.paintImageXObject, + args: args + }; + } + }, + handleSMask: function PartialEvaluator_handleSmask(smask, resources, operatorList, task, stateManager) { + var smaskContent = smask.get('G'); + var smaskOptions = { + subtype: smask.get('S').name, + backdrop: smask.get('BC') + }; + var transferObj = smask.get('TR'); + if (isPDFFunction(transferObj)) { + var transferFn = PDFFunction.parse(this.xref, transferObj); + var transferMap = new Uint8Array(256); + var tmp = new Float32Array(1); + for (var i = 0; i < 256; i++) { + tmp[0] = i / 255; + transferFn(tmp, 0, tmp, 0); + transferMap[i] = tmp[0] * 255 | 0; + } + smaskOptions.transferMap = transferMap; + } + return this.buildFormXObject(resources, smaskContent, smaskOptions, operatorList, task, stateManager.state.clone()); + }, + handleTilingType: function PartialEvaluator_handleTilingType(fn, args, resources, pattern, patternDict, operatorList, task) { + var tilingOpList = new OperatorList(); + var resourcesArray = [ + patternDict.get('Resources'), + resources + ]; + var patternResources = Dict.merge(this.xref, resourcesArray); + return this.getOperatorList(pattern, task, patternResources, tilingOpList).then(function () { + operatorList.addDependencies(tilingOpList.dependencies); + operatorList.addOp(fn, getTilingPatternIR({ + fnArray: tilingOpList.fnArray, + argsArray: tilingOpList.argsArray + }, patternDict, args)); + }); + }, + handleSetFont: function PartialEvaluator_handleSetFont(resources, fontArgs, fontRef, operatorList, task, state) { + var fontName; + if (fontArgs) { + fontArgs = fontArgs.slice(); + fontName = fontArgs[0].name; + } + var self = this; + return this.loadFont(fontName, fontRef, this.xref, resources).then(function (translated) { + if (!translated.font.isType3Font) { + return translated; + } + return translated.loadType3Data(self, resources, operatorList, task).then(function () { + return translated; + }, function (reason) { + self.handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.font }); + return new TranslatedFont('g_font_error', new ErrorFont('Type3 font load error: ' + reason), translated.font); + }); + }).then(function (translated) { + state.font = translated.font; + translated.send(self.handler); + return translated.loadedName; + }); + }, + handleText: function PartialEvaluator_handleText(chars, state) { + var font = state.font; + var glyphs = font.charsToGlyphs(chars); + var isAddToPathSet = !!(state.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG); + if (font.data && (isAddToPathSet || this.options.disableFontFace)) { + var buildPath = function (fontChar) { + if (!font.renderer.hasBuiltPath(fontChar)) { + var path = font.renderer.getPathJs(fontChar); + this.handler.send('commonobj', [ + font.loadedName + '_path_' + fontChar, + 'FontPath', + path + ]); + } + }.bind(this); + for (var i = 0, ii = glyphs.length; i < ii; i++) { + var glyph = glyphs[i]; + buildPath(glyph.fontChar); + var accent = glyph.accent; + if (accent && accent.fontChar) { + buildPath(accent.fontChar); + } + } + } + return glyphs; + }, + setGState: function PartialEvaluator_setGState(resources, gState, operatorList, task, xref, stateManager) { + var gStateObj = []; + var gStateKeys = gState.getKeys(); + var self = this; + var promise = Promise.resolve(); + for (var i = 0, ii = gStateKeys.length; i < ii; i++) { + var key = gStateKeys[i]; + var value = gState.get(key); + switch (key) { + case 'Type': + break; + case 'LW': + case 'LC': + case 'LJ': + case 'ML': + case 'D': + case 'RI': + case 'FL': + case 'CA': + case 'ca': + gStateObj.push([ + key, + value + ]); + break; + case 'Font': + promise = promise.then(function () { + return self.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state).then(function (loadedName) { + operatorList.addDependency(loadedName); + gStateObj.push([ + key, + [ + loadedName, + value[1] + ] + ]); + }); + }); + break; + case 'BM': + gStateObj.push([ + key, + value + ]); + break; + case 'SMask': + if (isName(value, 'None')) { + gStateObj.push([ + key, + false + ]); + break; + } + if (isDict(value)) { + promise = promise.then(function (dict) { + return self.handleSMask(dict, resources, operatorList, task, stateManager); + }.bind(this, value)); + gStateObj.push([ + key, + true + ]); + } else { + warn('Unsupported SMask type'); + } + break; + case 'OP': + case 'op': + case 'OPM': + case 'BG': + case 'BG2': + case 'UCR': + case 'UCR2': + case 'TR': + case 'TR2': + case 'HT': + case 'SM': + case 'SA': + case 'AIS': + case 'TK': + info('graphic state operator ' + key); + break; + default: + info('Unknown graphic state operator ' + key); + break; + } + } + return promise.then(function () { + if (gStateObj.length > 0) { + operatorList.addOp(OPS.setGState, [gStateObj]); + } + }); + }, + loadFont: function PartialEvaluator_loadFont(fontName, font, xref, resources) { + function errorFont() { + return Promise.resolve(new TranslatedFont('g_font_error', new ErrorFont('Font ' + fontName + ' is not available'), font)); + } + var fontRef; + if (font) { + assert(isRef(font)); + fontRef = font; + } else { + var fontRes = resources.get('Font'); + if (fontRes) { + fontRef = fontRes.getRaw(fontName); + } else { + warn('fontRes not available'); + return errorFont(); + } + } + if (!fontRef) { + warn('fontRef not available'); + return errorFont(); + } + if (this.fontCache.has(fontRef)) { + return this.fontCache.get(fontRef); + } + font = xref.fetchIfRef(fontRef); + if (!isDict(font)) { + return errorFont(); + } + if (font.translated) { + return font.translated; + } + var fontCapability = createPromiseCapability(); + var preEvaluatedFont = this.preEvaluateFont(font, xref); + var descriptor = preEvaluatedFont.descriptor; + var fontRefIsRef = isRef(fontRef), fontID; + if (fontRefIsRef) { + fontID = fontRef.toString(); + } + if (isDict(descriptor)) { + if (!descriptor.fontAliases) { + descriptor.fontAliases = Object.create(null); + } + var fontAliases = descriptor.fontAliases; + var hash = preEvaluatedFont.hash; + if (fontAliases[hash]) { + var aliasFontRef = fontAliases[hash].aliasRef; + if (fontRefIsRef && aliasFontRef && this.fontCache.has(aliasFontRef)) { + this.fontCache.putAlias(fontRef, aliasFontRef); + return this.fontCache.get(fontRef); + } + } else { + fontAliases[hash] = { fontID: Font.getFontID() }; + } + if (fontRefIsRef) { + fontAliases[hash].aliasRef = fontRef; + } + fontID = fontAliases[hash].fontID; + } + if (fontRefIsRef) { + this.fontCache.put(fontRef, fontCapability.promise); + } else { + if (!fontID) { + fontID = this.idFactory.createObjId(); + } + this.fontCache.put('id_' + fontID, fontCapability.promise); + } + assert(fontID, 'The "fontID" must be defined.'); + font.loadedName = 'g_' + this.pdfManager.docId + '_f' + fontID; + font.translated = fontCapability.promise; + var translatedPromise; + try { + translatedPromise = this.translateFont(preEvaluatedFont, xref); + } catch (e) { + translatedPromise = Promise.reject(e); + } + var self = this; + translatedPromise.then(function (translatedFont) { + if (translatedFont.fontType !== undefined) { + var xrefFontStats = xref.stats.fontTypes; + xrefFontStats[translatedFont.fontType] = true; + } + fontCapability.resolve(new TranslatedFont(font.loadedName, translatedFont, font)); + }, function (reason) { + self.handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.font }); + try { + var descriptor = preEvaluatedFont.descriptor; + var fontFile3 = descriptor && descriptor.get('FontFile3'); + var subtype = fontFile3 && fontFile3.get('Subtype'); + var fontType = getFontType(preEvaluatedFont.type, subtype && subtype.name); + var xrefFontStats = xref.stats.fontTypes; + xrefFontStats[fontType] = true; + } catch (ex) { + } + fontCapability.resolve(new TranslatedFont(font.loadedName, new ErrorFont(reason instanceof Error ? reason.message : reason), font)); + }); + return fontCapability.promise; + }, + buildPath: function PartialEvaluator_buildPath(operatorList, fn, args) { + var lastIndex = operatorList.length - 1; + if (!args) { + args = []; + } + if (lastIndex < 0 || operatorList.fnArray[lastIndex] !== OPS.constructPath) { + operatorList.addOp(OPS.constructPath, [ + [fn], + args + ]); + } else { + var opArgs = operatorList.argsArray[lastIndex]; + opArgs[0].push(fn); + Array.prototype.push.apply(opArgs[1], args); + } + }, + handleColorN: function PartialEvaluator_handleColorN(operatorList, fn, args, cs, patterns, resources, task, xref) { + var patternName = args[args.length - 1]; + var pattern; + if (isName(patternName) && (pattern = patterns.get(patternName.name))) { + var dict = isStream(pattern) ? pattern.dict : pattern; + var typeNum = dict.get('PatternType'); + if (typeNum === TILING_PATTERN) { + var color = cs.base ? cs.base.getRgb(args, 0) : null; + return this.handleTilingType(fn, color, resources, pattern, dict, operatorList, task); + } else if (typeNum === SHADING_PATTERN) { + var shading = dict.get('Shading'); + var matrix = dict.getArray('Matrix'); + pattern = Pattern.parseShading(shading, matrix, xref, resources, this.handler); + operatorList.addOp(fn, pattern.getIR()); + return Promise.resolve(); + } + return Promise.reject('Unknown PatternType: ' + typeNum); + } + operatorList.addOp(fn, args); + return Promise.resolve(); + }, + getOperatorList: function PartialEvaluator_getOperatorList(stream, task, resources, operatorList, initialState) { + var self = this; + var xref = this.xref; + var imageCache = Object.create(null); + assert(operatorList); + resources = resources || Dict.empty; + var xobjs = resources.get('XObject') || Dict.empty; + var patterns = resources.get('Pattern') || Dict.empty; + var stateManager = new StateManager(initialState || new EvalState()); + var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager); + var timeSlotManager = new TimeSlotManager(); + return new Promise(function promiseBody(resolve, reject) { + var next = function (promise) { + promise.then(function () { + try { + promiseBody(resolve, reject); + } catch (ex) { + reject(ex); + } + }, reject); + }; + task.ensureNotTerminated(); + timeSlotManager.reset(); + var stop, operation = {}, i, ii, cs; + while (!(stop = timeSlotManager.check())) { + operation.args = null; + if (!preprocessor.read(operation)) { + break; + } + var args = operation.args; + var fn = operation.fn; + switch (fn | 0) { + case OPS.paintXObject: + if (args[0].code) { + break; + } + var name = args[0].name; + if (!name) { + warn('XObject must be referred to by name.'); + continue; + } + if (imageCache[name] !== undefined) { + operatorList.addOp(imageCache[name].fn, imageCache[name].args); + args = null; + continue; + } + var xobj = xobjs.get(name); + if (xobj) { + assert(isStream(xobj), 'XObject should be a stream'); + var type = xobj.dict.get('Subtype'); + assert(isName(type), 'XObject should have a Name subtype'); + if (type.name === 'Form') { + stateManager.save(); + next(self.buildFormXObject(resources, xobj, null, operatorList, task, stateManager.state.clone()).then(function () { + stateManager.restore(); + })); + return; + } else if (type.name === 'Image') { + self.buildPaintImageXObject(resources, xobj, false, operatorList, name, imageCache); + args = null; + continue; + } else if (type.name === 'PS') { + info('Ignored XObject subtype PS'); + continue; + } else { + error('Unhandled XObject subtype ' + type.name); + } + } + break; + case OPS.setFont: + var fontSize = args[1]; + next(self.handleSetFont(resources, args, null, operatorList, task, stateManager.state).then(function (loadedName) { + operatorList.addDependency(loadedName); + operatorList.addOp(OPS.setFont, [ + loadedName, + fontSize + ]); + })); + return; + case OPS.endInlineImage: + var cacheKey = args[0].cacheKey; + if (cacheKey) { + var cacheEntry = imageCache[cacheKey]; + if (cacheEntry !== undefined) { + operatorList.addOp(cacheEntry.fn, cacheEntry.args); + args = null; + continue; + } + } + self.buildPaintImageXObject(resources, args[0], true, operatorList, cacheKey, imageCache); + args = null; + continue; + case OPS.showText: + args[0] = self.handleText(args[0], stateManager.state); + break; + case OPS.showSpacedText: + var arr = args[0]; + var combinedGlyphs = []; + var arrLength = arr.length; + var state = stateManager.state; + for (i = 0; i < arrLength; ++i) { + var arrItem = arr[i]; + if (isString(arrItem)) { + Array.prototype.push.apply(combinedGlyphs, self.handleText(arrItem, state)); + } else if (isNum(arrItem)) { + combinedGlyphs.push(arrItem); + } + } + args[0] = combinedGlyphs; + fn = OPS.showText; + break; + case OPS.nextLineShowText: + operatorList.addOp(OPS.nextLine); + args[0] = self.handleText(args[0], stateManager.state); + fn = OPS.showText; + break; + case OPS.nextLineSetSpacingShowText: + operatorList.addOp(OPS.nextLine); + operatorList.addOp(OPS.setWordSpacing, [args.shift()]); + operatorList.addOp(OPS.setCharSpacing, [args.shift()]); + args[0] = self.handleText(args[0], stateManager.state); + fn = OPS.showText; + break; + case OPS.setTextRenderingMode: + stateManager.state.textRenderingMode = args[0]; + break; + case OPS.setFillColorSpace: + stateManager.state.fillColorSpace = ColorSpace.parse(args[0], xref, resources); + continue; + case OPS.setStrokeColorSpace: + stateManager.state.strokeColorSpace = ColorSpace.parse(args[0], xref, resources); + continue; + case OPS.setFillColor: + cs = stateManager.state.fillColorSpace; + args = cs.getRgb(args, 0); + fn = OPS.setFillRGBColor; + break; + case OPS.setStrokeColor: + cs = stateManager.state.strokeColorSpace; + args = cs.getRgb(args, 0); + fn = OPS.setStrokeRGBColor; + break; + case OPS.setFillGray: + stateManager.state.fillColorSpace = ColorSpace.singletons.gray; + args = ColorSpace.singletons.gray.getRgb(args, 0); + fn = OPS.setFillRGBColor; + break; + case OPS.setStrokeGray: + stateManager.state.strokeColorSpace = ColorSpace.singletons.gray; + args = ColorSpace.singletons.gray.getRgb(args, 0); + fn = OPS.setStrokeRGBColor; + break; + case OPS.setFillCMYKColor: + stateManager.state.fillColorSpace = ColorSpace.singletons.cmyk; + args = ColorSpace.singletons.cmyk.getRgb(args, 0); + fn = OPS.setFillRGBColor; + break; + case OPS.setStrokeCMYKColor: + stateManager.state.strokeColorSpace = ColorSpace.singletons.cmyk; + args = ColorSpace.singletons.cmyk.getRgb(args, 0); + fn = OPS.setStrokeRGBColor; + break; + case OPS.setFillRGBColor: + stateManager.state.fillColorSpace = ColorSpace.singletons.rgb; + args = ColorSpace.singletons.rgb.getRgb(args, 0); + break; + case OPS.setStrokeRGBColor: + stateManager.state.strokeColorSpace = ColorSpace.singletons.rgb; + args = ColorSpace.singletons.rgb.getRgb(args, 0); + break; + case OPS.setFillColorN: + cs = stateManager.state.fillColorSpace; + if (cs.name === 'Pattern') { + next(self.handleColorN(operatorList, OPS.setFillColorN, args, cs, patterns, resources, task, xref)); + return; + } + args = cs.getRgb(args, 0); + fn = OPS.setFillRGBColor; + break; + case OPS.setStrokeColorN: + cs = stateManager.state.strokeColorSpace; + if (cs.name === 'Pattern') { + next(self.handleColorN(operatorList, OPS.setStrokeColorN, args, cs, patterns, resources, task, xref)); + return; + } + args = cs.getRgb(args, 0); + fn = OPS.setStrokeRGBColor; + break; + case OPS.shadingFill: + var shadingRes = resources.get('Shading'); + if (!shadingRes) { + error('No shading resource found'); + } + var shading = shadingRes.get(args[0].name); + if (!shading) { + error('No shading object found'); + } + var shadingFill = Pattern.parseShading(shading, null, xref, resources, self.handler); + var patternIR = shadingFill.getIR(); + args = [patternIR]; + fn = OPS.shadingFill; + break; + case OPS.setGState: + var dictName = args[0]; + var extGState = resources.get('ExtGState'); + if (!isDict(extGState) || !extGState.has(dictName.name)) { + break; + } + var gState = extGState.get(dictName.name); + next(self.setGState(resources, gState, operatorList, task, xref, stateManager)); + return; + case OPS.moveTo: + case OPS.lineTo: + case OPS.curveTo: + case OPS.curveTo2: + case OPS.curveTo3: + case OPS.closePath: + self.buildPath(operatorList, fn, args); + continue; + case OPS.rectangle: + self.buildPath(operatorList, fn, args); + continue; + case OPS.markPoint: + case OPS.markPointProps: + case OPS.beginMarkedContent: + case OPS.beginMarkedContentProps: + case OPS.endMarkedContent: + case OPS.beginCompat: + case OPS.endCompat: + continue; + default: + if (args !== null) { + for (i = 0, ii = args.length; i < ii; i++) { + if (args[i] instanceof Dict) { + break; + } + } + if (i < ii) { + warn('getOperatorList - ignoring operator: ' + fn); + continue; + } + } + } + operatorList.addOp(fn, args); + } + if (stop) { + next(deferred); + return; + } + for (i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) { + operatorList.addOp(OPS.restore, []); + } + resolve(); + }); + }, + getTextContent: function PartialEvaluator_getTextContent(stream, task, resources, stateManager, normalizeWhitespace, combineTextItems) { + stateManager = stateManager || new StateManager(new TextState()); + var WhitespaceRegexp = /\s/g; + var textContent = { + items: [], + styles: Object.create(null) + }; + var textContentItem = { + initialized: false, + str: [], + width: 0, + height: 0, + vertical: false, + lastAdvanceWidth: 0, + lastAdvanceHeight: 0, + textAdvanceScale: 0, + spaceWidth: 0, + fakeSpaceMin: Infinity, + fakeMultiSpaceMin: Infinity, + fakeMultiSpaceMax: -0, + textRunBreakAllowed: false, + transform: null, + fontName: null + }; + var SPACE_FACTOR = 0.3; + var MULTI_SPACE_FACTOR = 1.5; + var MULTI_SPACE_FACTOR_MAX = 4; + var self = this; + var xref = this.xref; + resources = xref.fetchIfRef(resources) || Dict.empty; + var xobjs = null; + var xobjsCache = Object.create(null); + var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager); + var textState; + function ensureTextContentItem() { + if (textContentItem.initialized) { + return textContentItem; + } + var font = textState.font; + if (!(font.loadedName in textContent.styles)) { + textContent.styles[font.loadedName] = { + fontFamily: font.fallbackName, + ascent: font.ascent, + descent: font.descent, + vertical: font.vertical + }; + } + textContentItem.fontName = font.loadedName; + var tsm = [ + textState.fontSize * textState.textHScale, + 0, + 0, + textState.fontSize, + 0, + textState.textRise + ]; + if (font.isType3Font && textState.fontMatrix !== FONT_IDENTITY_MATRIX && textState.fontSize === 1) { + var glyphHeight = font.bbox[3] - font.bbox[1]; + if (glyphHeight > 0) { + glyphHeight = glyphHeight * textState.fontMatrix[3]; + tsm[3] *= glyphHeight; + } + } + var trm = Util.transform(textState.ctm, Util.transform(textState.textMatrix, tsm)); + textContentItem.transform = trm; + if (!font.vertical) { + textContentItem.width = 0; + textContentItem.height = Math.sqrt(trm[2] * trm[2] + trm[3] * trm[3]); + textContentItem.vertical = false; + } else { + textContentItem.width = Math.sqrt(trm[0] * trm[0] + trm[1] * trm[1]); + textContentItem.height = 0; + textContentItem.vertical = true; + } + var a = textState.textLineMatrix[0]; + var b = textState.textLineMatrix[1]; + var scaleLineX = Math.sqrt(a * a + b * b); + a = textState.ctm[0]; + b = textState.ctm[1]; + var scaleCtmX = Math.sqrt(a * a + b * b); + textContentItem.textAdvanceScale = scaleCtmX * scaleLineX; + textContentItem.lastAdvanceWidth = 0; + textContentItem.lastAdvanceHeight = 0; + var spaceWidth = font.spaceWidth / 1000 * textState.fontSize; + if (spaceWidth) { + textContentItem.spaceWidth = spaceWidth; + textContentItem.fakeSpaceMin = spaceWidth * SPACE_FACTOR; + textContentItem.fakeMultiSpaceMin = spaceWidth * MULTI_SPACE_FACTOR; + textContentItem.fakeMultiSpaceMax = spaceWidth * MULTI_SPACE_FACTOR_MAX; + textContentItem.textRunBreakAllowed = !font.isMonospace; + } else { + textContentItem.spaceWidth = 0; + textContentItem.fakeSpaceMin = Infinity; + textContentItem.fakeMultiSpaceMin = Infinity; + textContentItem.fakeMultiSpaceMax = 0; + textContentItem.textRunBreakAllowed = false; + } + textContentItem.initialized = true; + return textContentItem; + } + function replaceWhitespace(str) { + var i = 0, ii = str.length, code; + while (i < ii && (code = str.charCodeAt(i)) >= 0x20 && code <= 0x7F) { + i++; + } + return i < ii ? str.replace(WhitespaceRegexp, ' ') : str; + } + function runBidiTransform(textChunk) { + var str = textChunk.str.join(''); + var bidiResult = bidi(str, -1, textChunk.vertical); + return { + str: normalizeWhitespace ? replaceWhitespace(bidiResult.str) : bidiResult.str, + dir: bidiResult.dir, + width: textChunk.width, + height: textChunk.height, + transform: textChunk.transform, + fontName: textChunk.fontName + }; + } + function handleSetFont(fontName, fontRef) { + return self.loadFont(fontName, fontRef, xref, resources).then(function (translated) { + textState.font = translated.font; + textState.fontMatrix = translated.font.fontMatrix || FONT_IDENTITY_MATRIX; + }); + } + function buildTextContentItem(chars) { + var font = textState.font; + var textChunk = ensureTextContentItem(); + var width = 0; + var height = 0; + var glyphs = font.charsToGlyphs(chars); + for (var i = 0; i < glyphs.length; i++) { + var glyph = glyphs[i]; + var glyphWidth = null; + if (font.vertical && glyph.vmetric) { + glyphWidth = glyph.vmetric[0]; + } else { + glyphWidth = glyph.width; + } + var glyphUnicode = glyph.unicode; + var NormalizedUnicodes = getNormalizedUnicodes(); + if (NormalizedUnicodes[glyphUnicode] !== undefined) { + glyphUnicode = NormalizedUnicodes[glyphUnicode]; + } + glyphUnicode = reverseIfRtl(glyphUnicode); + var charSpacing = textState.charSpacing; + if (glyph.isSpace) { + var wordSpacing = textState.wordSpacing; + charSpacing += wordSpacing; + if (wordSpacing > 0) { + addFakeSpaces(wordSpacing, textChunk.str); + } + } + var tx = 0; + var ty = 0; + if (!font.vertical) { + var w0 = glyphWidth * textState.fontMatrix[0]; + tx = (w0 * textState.fontSize + charSpacing) * textState.textHScale; + width += tx; + } else { + var w1 = glyphWidth * textState.fontMatrix[0]; + ty = w1 * textState.fontSize + charSpacing; + height += ty; + } + textState.translateTextMatrix(tx, ty); + textChunk.str.push(glyphUnicode); + } + if (!font.vertical) { + textChunk.lastAdvanceWidth = width; + textChunk.width += width; + } else { + textChunk.lastAdvanceHeight = height; + textChunk.height += Math.abs(height); + } + return textChunk; + } + function addFakeSpaces(width, strBuf) { + if (width < textContentItem.fakeSpaceMin) { + return; + } + if (width < textContentItem.fakeMultiSpaceMin) { + strBuf.push(' '); + return; + } + var fakeSpaces = Math.round(width / textContentItem.spaceWidth); + while (fakeSpaces-- > 0) { + strBuf.push(' '); + } + } + function flushTextContentItem() { + if (!textContentItem.initialized) { + return; + } + textContentItem.width *= textContentItem.textAdvanceScale; + textContentItem.height *= textContentItem.textAdvanceScale; + textContent.items.push(runBidiTransform(textContentItem)); + textContentItem.initialized = false; + textContentItem.str.length = 0; + } + var timeSlotManager = new TimeSlotManager(); + return new Promise(function promiseBody(resolve, reject) { + var next = function (promise) { + promise.then(function () { + try { + promiseBody(resolve, reject); + } catch (ex) { + reject(ex); + } + }, reject); + }; + task.ensureNotTerminated(); + timeSlotManager.reset(); + var stop, operation = {}, args = []; + while (!(stop = timeSlotManager.check())) { + args.length = 0; + operation.args = args; + if (!preprocessor.read(operation)) { + break; + } + textState = stateManager.state; + var fn = operation.fn; + args = operation.args; + var advance, diff; + switch (fn | 0) { + case OPS.setFont: + var fontNameArg = args[0].name, fontSizeArg = args[1]; + if (textState.font && fontNameArg === textState.fontName && fontSizeArg === textState.fontSize) { + break; + } + flushTextContentItem(); + textState.fontName = fontNameArg; + textState.fontSize = fontSizeArg; + next(handleSetFont(fontNameArg, null)); + return; + case OPS.setTextRise: + flushTextContentItem(); + textState.textRise = args[0]; + break; + case OPS.setHScale: + flushTextContentItem(); + textState.textHScale = args[0] / 100; + break; + case OPS.setLeading: + flushTextContentItem(); + textState.leading = args[0]; + break; + case OPS.moveText: + var isSameTextLine = !textState.font ? false : (textState.font.vertical ? args[0] : args[1]) === 0; + advance = args[0] - args[1]; + if (combineTextItems && isSameTextLine && textContentItem.initialized && advance > 0 && advance <= textContentItem.fakeMultiSpaceMax) { + textState.translateTextLineMatrix(args[0], args[1]); + textContentItem.width += args[0] - textContentItem.lastAdvanceWidth; + textContentItem.height += args[1] - textContentItem.lastAdvanceHeight; + diff = args[0] - textContentItem.lastAdvanceWidth - (args[1] - textContentItem.lastAdvanceHeight); + addFakeSpaces(diff, textContentItem.str); + break; + } + flushTextContentItem(); + textState.translateTextLineMatrix(args[0], args[1]); + textState.textMatrix = textState.textLineMatrix.slice(); + break; + case OPS.setLeadingMoveText: + flushTextContentItem(); + textState.leading = -args[1]; + textState.translateTextLineMatrix(args[0], args[1]); + textState.textMatrix = textState.textLineMatrix.slice(); + break; + case OPS.nextLine: + flushTextContentItem(); + textState.carriageReturn(); + break; + case OPS.setTextMatrix: + advance = textState.calcTextLineMatrixAdvance(args[0], args[1], args[2], args[3], args[4], args[5]); + if (combineTextItems && advance !== null && textContentItem.initialized && advance.value > 0 && advance.value <= textContentItem.fakeMultiSpaceMax) { + textState.translateTextLineMatrix(advance.width, advance.height); + textContentItem.width += advance.width - textContentItem.lastAdvanceWidth; + textContentItem.height += advance.height - textContentItem.lastAdvanceHeight; + diff = advance.width - textContentItem.lastAdvanceWidth - (advance.height - textContentItem.lastAdvanceHeight); + addFakeSpaces(diff, textContentItem.str); + break; + } + flushTextContentItem(); + textState.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); + textState.setTextLineMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); + break; + case OPS.setCharSpacing: + textState.charSpacing = args[0]; + break; + case OPS.setWordSpacing: + textState.wordSpacing = args[0]; + break; + case OPS.beginText: + flushTextContentItem(); + textState.textMatrix = IDENTITY_MATRIX.slice(); + textState.textLineMatrix = IDENTITY_MATRIX.slice(); + break; + case OPS.showSpacedText: + var items = args[0]; + var offset; + for (var j = 0, jj = items.length; j < jj; j++) { + if (typeof items[j] === 'string') { + buildTextContentItem(items[j]); + } else if (isNum(items[j])) { + ensureTextContentItem(); + advance = items[j] * textState.fontSize / 1000; + var breakTextRun = false; + if (textState.font.vertical) { + offset = advance; + textState.translateTextMatrix(0, offset); + breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax; + if (!breakTextRun) { + textContentItem.height += offset; + } + } else { + advance = -advance; + offset = advance * textState.textHScale; + textState.translateTextMatrix(offset, 0); + breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax; + if (!breakTextRun) { + textContentItem.width += offset; + } + } + if (breakTextRun) { + flushTextContentItem(); + } else if (advance > 0) { + addFakeSpaces(advance, textContentItem.str); + } + } + } + break; + case OPS.showText: + buildTextContentItem(args[0]); + break; + case OPS.nextLineShowText: + flushTextContentItem(); + textState.carriageReturn(); + buildTextContentItem(args[0]); + break; + case OPS.nextLineSetSpacingShowText: + flushTextContentItem(); + textState.wordSpacing = args[0]; + textState.charSpacing = args[1]; + textState.carriageReturn(); + buildTextContentItem(args[2]); + break; + case OPS.paintXObject: + flushTextContentItem(); + if (args[0].code) { + break; + } + if (!xobjs) { + xobjs = resources.get('XObject') || Dict.empty; + } + var name = args[0].name; + if (xobjsCache.key === name) { + if (xobjsCache.texts) { + Util.appendToArray(textContent.items, xobjsCache.texts.items); + Util.extendObj(textContent.styles, xobjsCache.texts.styles); + } + break; + } + var xobj = xobjs.get(name); + if (!xobj) { + break; + } + assert(isStream(xobj), 'XObject should be a stream'); + var type = xobj.dict.get('Subtype'); + assert(isName(type), 'XObject should have a Name subtype'); + if ('Form' !== type.name) { + xobjsCache.key = name; + xobjsCache.texts = null; + break; + } + stateManager.save(); + var matrix = xobj.dict.getArray('Matrix'); + if (isArray(matrix) && matrix.length === 6) { + stateManager.transform(matrix); + } + next(self.getTextContent(xobj, task, xobj.dict.get('Resources') || resources, stateManager, normalizeWhitespace, combineTextItems).then(function (formTextContent) { + Util.appendToArray(textContent.items, formTextContent.items); + Util.extendObj(textContent.styles, formTextContent.styles); + stateManager.restore(); + xobjsCache.key = name; + xobjsCache.texts = formTextContent; + })); + return; + case OPS.setGState: + flushTextContentItem(); + var dictName = args[0]; + var extGState = resources.get('ExtGState'); + if (!isDict(extGState) || !isName(dictName)) { + break; + } + var gState = extGState.get(dictName.name); + if (!isDict(gState)) { + break; + } + var gStateFont = gState.get('Font'); + if (gStateFont) { + textState.fontName = null; + textState.fontSize = gStateFont[1]; + next(handleSetFont(null, gStateFont[0])); + return; + } + break; + } + } + if (stop) { + next(deferred); + return; + } + flushTextContentItem(); + resolve(textContent); + }); + }, + extractDataStructures: function PartialEvaluator_extractDataStructures(dict, baseDict, xref, properties) { + var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode'); + var toUnicodePromise = toUnicode ? this.readToUnicode(toUnicode) : Promise.resolve(undefined); + if (properties.composite) { + var cidSystemInfo = dict.get('CIDSystemInfo'); + if (isDict(cidSystemInfo)) { + properties.cidSystemInfo = { + registry: cidSystemInfo.get('Registry'), + ordering: cidSystemInfo.get('Ordering'), + supplement: cidSystemInfo.get('Supplement') + }; + } + var cidToGidMap = dict.get('CIDToGIDMap'); + if (isStream(cidToGidMap)) { + properties.cidToGidMap = this.readCidToGidMap(cidToGidMap); + } + } + var differences = []; + var baseEncodingName = null; + var encoding; + if (dict.has('Encoding')) { + encoding = dict.get('Encoding'); + if (isDict(encoding)) { + baseEncodingName = encoding.get('BaseEncoding'); + baseEncodingName = isName(baseEncodingName) ? baseEncodingName.name : null; + if (encoding.has('Differences')) { + var diffEncoding = encoding.get('Differences'); + var index = 0; + for (var j = 0, jj = diffEncoding.length; j < jj; j++) { + var data = xref.fetchIfRef(diffEncoding[j]); + if (isNum(data)) { + index = data; + } else if (isName(data)) { + differences[index++] = data.name; + } else { + error('Invalid entry in \'Differences\' array: ' + data); + } + } + } + } else if (isName(encoding)) { + baseEncodingName = encoding.name; + } else { + error('Encoding is not a Name nor a Dict'); + } + if (baseEncodingName !== 'MacRomanEncoding' && baseEncodingName !== 'MacExpertEncoding' && baseEncodingName !== 'WinAnsiEncoding') { + baseEncodingName = null; + } + } + if (baseEncodingName) { + properties.defaultEncoding = getEncoding(baseEncodingName).slice(); + } else { + var isSymbolicFont = !!(properties.flags & FontFlags.Symbolic); + var isNonsymbolicFont = !!(properties.flags & FontFlags.Nonsymbolic); + encoding = StandardEncoding; + if (properties.type === 'TrueType' && !isNonsymbolicFont) { + encoding = WinAnsiEncoding; + } + if (isSymbolicFont) { + encoding = MacRomanEncoding; + if (!properties.file) { + if (/Symbol/i.test(properties.name)) { + encoding = SymbolSetEncoding; + } else if (/Dingbats/i.test(properties.name)) { + encoding = ZapfDingbatsEncoding; + } + } + } + properties.defaultEncoding = encoding; + } + properties.differences = differences; + properties.baseEncodingName = baseEncodingName; + properties.hasEncoding = !!baseEncodingName || differences.length > 0; + properties.dict = dict; + return toUnicodePromise.then(function (toUnicode) { + properties.toUnicode = toUnicode; + return this.buildToUnicode(properties); + }.bind(this)).then(function (toUnicode) { + properties.toUnicode = toUnicode; + return properties; + }); + }, + buildToUnicode: function PartialEvaluator_buildToUnicode(properties) { + properties.hasIncludedToUnicodeMap = !!properties.toUnicode && properties.toUnicode.length > 0; + if (properties.hasIncludedToUnicodeMap) { + return Promise.resolve(properties.toUnicode); + } + var toUnicode, charcode, glyphName; + if (!properties.composite) { + toUnicode = []; + var encoding = properties.defaultEncoding.slice(); + var baseEncodingName = properties.baseEncodingName; + var differences = properties.differences; + for (charcode in differences) { + glyphName = differences[charcode]; + if (glyphName === '.notdef') { + continue; + } + encoding[charcode] = glyphName; + } + var glyphsUnicodeMap = getGlyphsUnicode(); + for (charcode in encoding) { + glyphName = encoding[charcode]; + if (glyphName === '') { + continue; + } else if (glyphsUnicodeMap[glyphName] === undefined) { + var code = 0; + switch (glyphName[0]) { + case 'G': + if (glyphName.length === 3) { + code = parseInt(glyphName.substr(1), 16); + } + break; + case 'g': + if (glyphName.length === 5) { + code = parseInt(glyphName.substr(1), 16); + } + break; + case 'C': + case 'c': + if (glyphName.length >= 3) { + code = +glyphName.substr(1); + } + break; + default: + var unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap); + if (unicode !== -1) { + code = unicode; + } + } + if (code) { + if (baseEncodingName && code === +charcode) { + var baseEncoding = getEncoding(baseEncodingName); + if (baseEncoding && (glyphName = baseEncoding[charcode])) { + toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]); + continue; + } + } + toUnicode[charcode] = String.fromCharCode(code); + } + continue; + } + toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]); + } + return Promise.resolve(new ToUnicodeMap(toUnicode)); + } + if (properties.composite && (properties.cMap.builtInCMap && !(properties.cMap instanceof IdentityCMap) || properties.cidSystemInfo.registry === 'Adobe' && (properties.cidSystemInfo.ordering === 'GB1' || properties.cidSystemInfo.ordering === 'CNS1' || properties.cidSystemInfo.ordering === 'Japan1' || properties.cidSystemInfo.ordering === 'Korea1'))) { + var registry = properties.cidSystemInfo.registry; + var ordering = properties.cidSystemInfo.ordering; + var ucs2CMapName = Name.get(registry + '-' + ordering + '-UCS2'); + return CMapFactory.create({ + encoding: ucs2CMapName, + fetchBuiltInCMap: this.fetchBuiltInCMap, + useCMap: null + }).then(function (ucs2CMap) { + var cMap = properties.cMap; + toUnicode = []; + cMap.forEach(function (charcode, cid) { + assert(cid <= 0xffff, 'Max size of CID is 65,535'); + var ucs2 = ucs2CMap.lookup(cid); + if (ucs2) { + toUnicode[charcode] = String.fromCharCode((ucs2.charCodeAt(0) << 8) + ucs2.charCodeAt(1)); + } + }); + return new ToUnicodeMap(toUnicode); + }); + } + return Promise.resolve(new IdentityToUnicodeMap(properties.firstChar, properties.lastChar)); + }, + readToUnicode: function PartialEvaluator_readToUnicode(toUnicode) { + var cmapObj = toUnicode; + if (isName(cmapObj)) { + return CMapFactory.create({ + encoding: cmapObj, + fetchBuiltInCMap: this.fetchBuiltInCMap, + useCMap: null + }).then(function (cmap) { + if (cmap instanceof IdentityCMap) { + return new IdentityToUnicodeMap(0, 0xFFFF); + } + return new ToUnicodeMap(cmap.getMap()); + }); + } else if (isStream(cmapObj)) { + return CMapFactory.create({ + encoding: cmapObj, + fetchBuiltInCMap: this.fetchBuiltInCMap, + useCMap: null + }).then(function (cmap) { + if (cmap instanceof IdentityCMap) { + return new IdentityToUnicodeMap(0, 0xFFFF); + } + var map = new Array(cmap.length); + cmap.forEach(function (charCode, token) { + var str = []; + for (var k = 0; k < token.length; k += 2) { + var w1 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1); + if ((w1 & 0xF800) !== 0xD800) { + str.push(w1); + continue; + } + k += 2; + var w2 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1); + str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000); + } + map[charCode] = String.fromCharCode.apply(String, str); + }); + return new ToUnicodeMap(map); + }); + } + return Promise.resolve(null); + }, + readCidToGidMap: function PartialEvaluator_readCidToGidMap(cidToGidStream) { + var glyphsData = cidToGidStream.getBytes(); + var result = []; + for (var j = 0, jj = glyphsData.length; j < jj; j++) { + var glyphID = glyphsData[j++] << 8 | glyphsData[j]; + if (glyphID === 0) { + continue; + } + var code = j >> 1; + result[code] = glyphID; + } + return result; + }, + extractWidths: function PartialEvaluator_extractWidths(dict, xref, descriptor, properties) { + var glyphsWidths = []; + var defaultWidth = 0; + var glyphsVMetrics = []; + var defaultVMetrics; + var i, ii, j, jj, start, code, widths; + if (properties.composite) { + defaultWidth = dict.get('DW') || 1000; + widths = dict.get('W'); + if (widths) { + for (i = 0, ii = widths.length; i < ii; i++) { + start = xref.fetchIfRef(widths[i++]); + code = xref.fetchIfRef(widths[i]); + if (isArray(code)) { + for (j = 0, jj = code.length; j < jj; j++) { + glyphsWidths[start++] = xref.fetchIfRef(code[j]); + } + } else { + var width = xref.fetchIfRef(widths[++i]); + for (j = start; j <= code; j++) { + glyphsWidths[j] = width; + } + } + } + } + if (properties.vertical) { + var vmetrics = dict.getArray('DW2') || [ + 880, + -1000 + ]; + defaultVMetrics = [ + vmetrics[1], + defaultWidth * 0.5, + vmetrics[0] + ]; + vmetrics = dict.get('W2'); + if (vmetrics) { + for (i = 0, ii = vmetrics.length; i < ii; i++) { + start = xref.fetchIfRef(vmetrics[i++]); + code = xref.fetchIfRef(vmetrics[i]); + if (isArray(code)) { + for (j = 0, jj = code.length; j < jj; j++) { + glyphsVMetrics[start++] = [ + xref.fetchIfRef(code[j++]), + xref.fetchIfRef(code[j++]), + xref.fetchIfRef(code[j]) + ]; + } + } else { + var vmetric = [ + xref.fetchIfRef(vmetrics[++i]), + xref.fetchIfRef(vmetrics[++i]), + xref.fetchIfRef(vmetrics[++i]) + ]; + for (j = start; j <= code; j++) { + glyphsVMetrics[j] = vmetric; + } + } + } + } + } + } else { + var firstChar = properties.firstChar; + widths = dict.get('Widths'); + if (widths) { + j = firstChar; + for (i = 0, ii = widths.length; i < ii; i++) { + glyphsWidths[j++] = xref.fetchIfRef(widths[i]); + } + defaultWidth = parseFloat(descriptor.get('MissingWidth')) || 0; + } else { + var baseFontName = dict.get('BaseFont'); + if (isName(baseFontName)) { + var metrics = this.getBaseFontMetrics(baseFontName.name); + glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties); + defaultWidth = metrics.defaultWidth; + } + } + } + var isMonospace = true; + var firstWidth = defaultWidth; + for (var glyph in glyphsWidths) { + var glyphWidth = glyphsWidths[glyph]; + if (!glyphWidth) { + continue; + } + if (!firstWidth) { + firstWidth = glyphWidth; + continue; + } + if (firstWidth !== glyphWidth) { + isMonospace = false; + break; + } + } + if (isMonospace) { + properties.flags |= FontFlags.FixedPitch; + } + properties.defaultWidth = defaultWidth; + properties.widths = glyphsWidths; + properties.defaultVMetrics = defaultVMetrics; + properties.vmetrics = glyphsVMetrics; + }, + isSerifFont: function PartialEvaluator_isSerifFont(baseFontName) { + var fontNameWoStyle = baseFontName.split('-')[0]; + return fontNameWoStyle in getSerifFonts() || fontNameWoStyle.search(/serif/gi) !== -1; + }, + getBaseFontMetrics: function PartialEvaluator_getBaseFontMetrics(name) { + var defaultWidth = 0; + var widths = []; + var monospace = false; + var stdFontMap = getStdFontMap(); + var lookupName = stdFontMap[name] || name; + var Metrics = getMetrics(); + if (!(lookupName in Metrics)) { + if (this.isSerifFont(name)) { + lookupName = 'Times-Roman'; + } else { + lookupName = 'Helvetica'; + } + } + var glyphWidths = Metrics[lookupName]; + if (isNum(glyphWidths)) { + defaultWidth = glyphWidths; + monospace = true; + } else { + widths = glyphWidths(); + } + return { + defaultWidth: defaultWidth, + monospace: monospace, + widths: widths + }; + }, + buildCharCodeToWidth: function PartialEvaluator_bulildCharCodeToWidth(widthsByGlyphName, properties) { + var widths = Object.create(null); + var differences = properties.differences; + var encoding = properties.defaultEncoding; + for (var charCode = 0; charCode < 256; charCode++) { + if (charCode in differences && widthsByGlyphName[differences[charCode]]) { + widths[charCode] = widthsByGlyphName[differences[charCode]]; + continue; + } + if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) { + widths[charCode] = widthsByGlyphName[encoding[charCode]]; + continue; + } + } + return widths; + }, + preEvaluateFont: function PartialEvaluator_preEvaluateFont(dict, xref) { + var baseDict = dict; + var type = dict.get('Subtype'); + assert(isName(type), 'invalid font Subtype'); + var composite = false; + var uint8array; + if (type.name === 'Type0') { + var df = dict.get('DescendantFonts'); + if (!df) { + error('Descendant fonts are not specified'); + } + dict = isArray(df) ? xref.fetchIfRef(df[0]) : df; + type = dict.get('Subtype'); + assert(isName(type), 'invalid font Subtype'); + composite = true; + } + var descriptor = dict.get('FontDescriptor'); + if (descriptor) { + var hash = new MurmurHash3_64(); + var encoding = baseDict.getRaw('Encoding'); + if (isName(encoding)) { + hash.update(encoding.name); + } else if (isRef(encoding)) { + hash.update(encoding.toString()); + } else if (isDict(encoding)) { + var keys = encoding.getKeys(); + for (var i = 0, ii = keys.length; i < ii; i++) { + var entry = encoding.getRaw(keys[i]); + if (isName(entry)) { + hash.update(entry.name); + } else if (isRef(entry)) { + hash.update(entry.toString()); + } else if (isArray(entry)) { + var diffLength = entry.length, diffBuf = new Array(diffLength); + for (var j = 0; j < diffLength; j++) { + var diffEntry = entry[j]; + if (isName(diffEntry)) { + diffBuf[j] = diffEntry.name; + } else if (isNum(diffEntry) || isRef(diffEntry)) { + diffBuf[j] = diffEntry.toString(); + } + } + hash.update(diffBuf.join()); + } + } + } + var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode'); + if (isStream(toUnicode)) { + var stream = toUnicode.str || toUnicode; + uint8array = stream.buffer ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength) : new Uint8Array(stream.bytes.buffer, stream.start, stream.end - stream.start); + hash.update(uint8array); + } else if (isName(toUnicode)) { + hash.update(toUnicode.name); + } + var widths = dict.get('Widths') || baseDict.get('Widths'); + if (widths) { + uint8array = new Uint8Array(new Uint32Array(widths).buffer); + hash.update(uint8array); + } + } + return { + descriptor: descriptor, + dict: dict, + baseDict: baseDict, + composite: composite, + type: type.name, + hash: hash ? hash.hexdigest() : '' + }; + }, + translateFont: function PartialEvaluator_translateFont(preEvaluatedFont, xref) { + var baseDict = preEvaluatedFont.baseDict; + var dict = preEvaluatedFont.dict; + var composite = preEvaluatedFont.composite; + var descriptor = preEvaluatedFont.descriptor; + var type = preEvaluatedFont.type; + var maxCharIndex = composite ? 0xFFFF : 0xFF; + var properties; + if (!descriptor) { + if (type === 'Type3') { + descriptor = new Dict(null); + descriptor.set('FontName', Name.get(type)); + descriptor.set('FontBBox', dict.getArray('FontBBox')); + } else { + var baseFontName = dict.get('BaseFont'); + if (!isName(baseFontName)) { + error('Base font is not specified'); + } + baseFontName = baseFontName.name.replace(/[,_]/g, '-'); + var metrics = this.getBaseFontMetrics(baseFontName); + var fontNameWoStyle = baseFontName.split('-')[0]; + var flags = (this.isSerifFont(fontNameWoStyle) ? FontFlags.Serif : 0) | (metrics.monospace ? FontFlags.FixedPitch : 0) | (getSymbolsFonts()[fontNameWoStyle] ? FontFlags.Symbolic : FontFlags.Nonsymbolic); + properties = { + type: type, + name: baseFontName, + widths: metrics.widths, + defaultWidth: metrics.defaultWidth, + flags: flags, + firstChar: 0, + lastChar: maxCharIndex + }; + return this.extractDataStructures(dict, dict, xref, properties).then(function (properties) { + properties.widths = this.buildCharCodeToWidth(metrics.widths, properties); + return new Font(baseFontName, null, properties); + }.bind(this)); + } + } + var firstChar = dict.get('FirstChar') || 0; + var lastChar = dict.get('LastChar') || maxCharIndex; + var fontName = descriptor.get('FontName'); + var baseFont = dict.get('BaseFont'); + if (isString(fontName)) { + fontName = Name.get(fontName); + } + if (isString(baseFont)) { + baseFont = Name.get(baseFont); + } + if (type !== 'Type3') { + var fontNameStr = fontName && fontName.name; + var baseFontStr = baseFont && baseFont.name; + if (fontNameStr !== baseFontStr) { + info('The FontDescriptor\'s FontName is "' + fontNameStr + '" but should be the same as the Font\'s BaseFont "' + baseFontStr + '"'); + if (fontNameStr && baseFontStr && baseFontStr.indexOf(fontNameStr) === 0) { + fontName = baseFont; + } + } + } + fontName = fontName || baseFont; + assert(isName(fontName), 'invalid font name'); + var fontFile = descriptor.get('FontFile', 'FontFile2', 'FontFile3'); + if (fontFile) { + if (fontFile.dict) { + var subtype = fontFile.dict.get('Subtype'); + if (subtype) { + subtype = subtype.name; + } + var length1 = fontFile.dict.get('Length1'); + var length2 = fontFile.dict.get('Length2'); + var length3 = fontFile.dict.get('Length3'); + } + } + properties = { + type: type, + name: fontName.name, + subtype: subtype, + file: fontFile, + length1: length1, + length2: length2, + length3: length3, + loadedName: baseDict.loadedName, + composite: composite, + wideChars: composite, + fixedPitch: false, + fontMatrix: dict.getArray('FontMatrix') || FONT_IDENTITY_MATRIX, + firstChar: firstChar || 0, + lastChar: lastChar || maxCharIndex, + bbox: descriptor.getArray('FontBBox'), + ascent: descriptor.get('Ascent'), + descent: descriptor.get('Descent'), + xHeight: descriptor.get('XHeight'), + capHeight: descriptor.get('CapHeight'), + flags: descriptor.get('Flags'), + italicAngle: descriptor.get('ItalicAngle'), + coded: false + }; + var cMapPromise; + if (composite) { + var cidEncoding = baseDict.get('Encoding'); + if (isName(cidEncoding)) { + properties.cidEncoding = cidEncoding.name; + } + cMapPromise = CMapFactory.create({ + encoding: cidEncoding, + fetchBuiltInCMap: this.fetchBuiltInCMap, + useCMap: null + }).then(function (cMap) { + properties.cMap = cMap; + properties.vertical = properties.cMap.vertical; + }); + } else { + cMapPromise = Promise.resolve(undefined); + } + return cMapPromise.then(function () { + return this.extractDataStructures(dict, baseDict, xref, properties); + }.bind(this)).then(function (properties) { + this.extractWidths(dict, xref, descriptor, properties); + if (type === 'Type3') { + properties.isType3Font = true; + } + return new Font(fontName.name, fontFile, properties); + }.bind(this)); + } + }; + return PartialEvaluator; +}(); +var TranslatedFont = function TranslatedFontClosure() { + function TranslatedFont(loadedName, font, dict) { + this.loadedName = loadedName; + this.font = font; + this.dict = dict; + this.type3Loaded = null; + this.sent = false; + } + TranslatedFont.prototype = { + send: function (handler) { + if (this.sent) { + return; + } + var fontData = this.font.exportData(); + handler.send('commonobj', [ + this.loadedName, + 'Font', + fontData + ]); + this.sent = true; + }, + loadType3Data: function (evaluator, resources, parentOperatorList, task) { + assert(this.font.isType3Font); + if (this.type3Loaded) { + return this.type3Loaded; + } + var translatedFont = this.font; + var loadCharProcsPromise = Promise.resolve(); + var charProcs = this.dict.get('CharProcs'); + var fontResources = this.dict.get('Resources') || resources; + var charProcKeys = charProcs.getKeys(); + var charProcOperatorList = Object.create(null); + for (var i = 0, n = charProcKeys.length; i < n; ++i) { + loadCharProcsPromise = loadCharProcsPromise.then(function (key) { + var glyphStream = charProcs.get(key); + var operatorList = new OperatorList(); + return evaluator.getOperatorList(glyphStream, task, fontResources, operatorList).then(function () { + charProcOperatorList[key] = operatorList.getIR(); + parentOperatorList.addDependencies(operatorList.dependencies); + }, function (reason) { + warn('Type3 font resource \"' + key + '\" is not available'); + var operatorList = new OperatorList(); + charProcOperatorList[key] = operatorList.getIR(); + }); + }.bind(this, charProcKeys[i])); + } + this.type3Loaded = loadCharProcsPromise.then(function () { + translatedFont.charProcOperatorList = charProcOperatorList; + }); + return this.type3Loaded; + } + }; + return TranslatedFont; +}(); +var OperatorList = function OperatorListClosure() { + var CHUNK_SIZE = 1000; + var CHUNK_SIZE_ABOUT = CHUNK_SIZE - 5; + function getTransfers(queue) { + var transfers = []; + var fnArray = queue.fnArray, argsArray = queue.argsArray; + for (var i = 0, ii = queue.length; i < ii; i++) { + switch (fnArray[i]) { + case OPS.paintInlineImageXObject: + case OPS.paintInlineImageXObjectGroup: + case OPS.paintImageMaskXObject: + var arg = argsArray[i][0]; + if (!arg.cached) { + transfers.push(arg.data.buffer); + } + break; + } + } + return transfers; + } + function OperatorList(intent, messageHandler, pageIndex) { + this.messageHandler = messageHandler; + this.fnArray = []; + this.argsArray = []; + this.dependencies = Object.create(null); + this._totalLength = 0; + this.pageIndex = pageIndex; + this.intent = intent; + } + OperatorList.prototype = { + get length() { + return this.argsArray.length; + }, + get totalLength() { + return this._totalLength + this.length; + }, + addOp: function (fn, args) { + this.fnArray.push(fn); + this.argsArray.push(args); + if (this.messageHandler) { + if (this.fnArray.length >= CHUNK_SIZE) { + this.flush(); + } else if (this.fnArray.length >= CHUNK_SIZE_ABOUT && (fn === OPS.restore || fn === OPS.endText)) { + this.flush(); + } + } + }, + addDependency: function (dependency) { + if (dependency in this.dependencies) { + return; + } + this.dependencies[dependency] = true; + this.addOp(OPS.dependency, [dependency]); + }, + addDependencies: function (dependencies) { + for (var key in dependencies) { + this.addDependency(key); + } + }, + addOpList: function (opList) { + Util.extendObj(this.dependencies, opList.dependencies); + for (var i = 0, ii = opList.length; i < ii; i++) { + this.addOp(opList.fnArray[i], opList.argsArray[i]); + } + }, + getIR: function () { + return { + fnArray: this.fnArray, + argsArray: this.argsArray, + length: this.length + }; + }, + flush: function (lastChunk) { + if (this.intent !== 'oplist') { + new QueueOptimizer().optimize(this); + } + var transfers = getTransfers(this); + var length = this.length; + this._totalLength += length; + this.messageHandler.send('RenderPageChunk', { + operatorList: { + fnArray: this.fnArray, + argsArray: this.argsArray, + lastChunk: lastChunk, + length: length + }, + pageIndex: this.pageIndex, + intent: this.intent + }, transfers); + this.dependencies = Object.create(null); + this.fnArray.length = 0; + this.argsArray.length = 0; + } + }; + return OperatorList; +}(); +var StateManager = function StateManagerClosure() { + function StateManager(initialState) { + this.state = initialState; + this.stateStack = []; + } + StateManager.prototype = { + save: function () { + var old = this.state; + this.stateStack.push(this.state); + this.state = old.clone(); + }, + restore: function () { + var prev = this.stateStack.pop(); + if (prev) { + this.state = prev; + } + }, + transform: function (args) { + this.state.ctm = Util.transform(this.state.ctm, args); + } + }; + return StateManager; +}(); +var TextState = function TextStateClosure() { + function TextState() { + this.ctm = new Float32Array(IDENTITY_MATRIX); + this.fontName = null; + this.fontSize = 0; + this.font = null; + this.fontMatrix = FONT_IDENTITY_MATRIX; + this.textMatrix = IDENTITY_MATRIX.slice(); + this.textLineMatrix = IDENTITY_MATRIX.slice(); + this.charSpacing = 0; + this.wordSpacing = 0; + this.leading = 0; + this.textHScale = 1; + this.textRise = 0; + } + TextState.prototype = { + setTextMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) { + var m = this.textMatrix; + m[0] = a; + m[1] = b; + m[2] = c; + m[3] = d; + m[4] = e; + m[5] = f; + }, + setTextLineMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) { + var m = this.textLineMatrix; + m[0] = a; + m[1] = b; + m[2] = c; + m[3] = d; + m[4] = e; + m[5] = f; + }, + translateTextMatrix: function TextState_translateTextMatrix(x, y) { + var m = this.textMatrix; + m[4] = m[0] * x + m[2] * y + m[4]; + m[5] = m[1] * x + m[3] * y + m[5]; + }, + translateTextLineMatrix: function TextState_translateTextMatrix(x, y) { + var m = this.textLineMatrix; + m[4] = m[0] * x + m[2] * y + m[4]; + m[5] = m[1] * x + m[3] * y + m[5]; + }, + calcTextLineMatrixAdvance: function TextState_calcTextLineMatrixAdvance(a, b, c, d, e, f) { + var font = this.font; + if (!font) { + return null; + } + var m = this.textLineMatrix; + if (!(a === m[0] && b === m[1] && c === m[2] && d === m[3])) { + return null; + } + var txDiff = e - m[4], tyDiff = f - m[5]; + if (font.vertical && txDiff !== 0 || !font.vertical && tyDiff !== 0) { + return null; + } + var tx, ty, denominator = a * d - b * c; + if (font.vertical) { + tx = -tyDiff * c / denominator; + ty = tyDiff * a / denominator; + } else { + tx = txDiff * d / denominator; + ty = -txDiff * b / denominator; + } + return { + width: tx, + height: ty, + value: font.vertical ? ty : tx + }; + }, + calcRenderMatrix: function TextState_calcRendeMatrix(ctm) { + var tsm = [ + this.fontSize * this.textHScale, + 0, + 0, + this.fontSize, + 0, + this.textRise + ]; + return Util.transform(ctm, Util.transform(this.textMatrix, tsm)); + }, + carriageReturn: function TextState_carriageReturn() { + this.translateTextLineMatrix(0, -this.leading); + this.textMatrix = this.textLineMatrix.slice(); + }, + clone: function TextState_clone() { + var clone = Object.create(this); + clone.textMatrix = this.textMatrix.slice(); + clone.textLineMatrix = this.textLineMatrix.slice(); + clone.fontMatrix = this.fontMatrix.slice(); + return clone; + } + }; + return TextState; +}(); +var EvalState = function EvalStateClosure() { + function EvalState() { + this.ctm = new Float32Array(IDENTITY_MATRIX); + this.font = null; + this.textRenderingMode = TextRenderingMode.FILL; + this.fillColorSpace = ColorSpace.singletons.gray; + this.strokeColorSpace = ColorSpace.singletons.gray; + } + EvalState.prototype = { + clone: function CanvasExtraState_clone() { + return Object.create(this); + } + }; + return EvalState; +}(); +var EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() { + var getOPMap = getLookupTableFactory(function (t) { + t['w'] = { + id: OPS.setLineWidth, + numArgs: 1, + variableArgs: false + }; + t['J'] = { + id: OPS.setLineCap, + numArgs: 1, + variableArgs: false + }; + t['j'] = { + id: OPS.setLineJoin, + numArgs: 1, + variableArgs: false + }; + t['M'] = { + id: OPS.setMiterLimit, + numArgs: 1, + variableArgs: false + }; + t['d'] = { + id: OPS.setDash, + numArgs: 2, + variableArgs: false + }; + t['ri'] = { + id: OPS.setRenderingIntent, + numArgs: 1, + variableArgs: false + }; + t['i'] = { + id: OPS.setFlatness, + numArgs: 1, + variableArgs: false + }; + t['gs'] = { + id: OPS.setGState, + numArgs: 1, + variableArgs: false + }; + t['q'] = { + id: OPS.save, + numArgs: 0, + variableArgs: false + }; + t['Q'] = { + id: OPS.restore, + numArgs: 0, + variableArgs: false + }; + t['cm'] = { + id: OPS.transform, + numArgs: 6, + variableArgs: false + }; + t['m'] = { + id: OPS.moveTo, + numArgs: 2, + variableArgs: false + }; + t['l'] = { + id: OPS.lineTo, + numArgs: 2, + variableArgs: false + }; + t['c'] = { + id: OPS.curveTo, + numArgs: 6, + variableArgs: false + }; + t['v'] = { + id: OPS.curveTo2, + numArgs: 4, + variableArgs: false + }; + t['y'] = { + id: OPS.curveTo3, + numArgs: 4, + variableArgs: false + }; + t['h'] = { + id: OPS.closePath, + numArgs: 0, + variableArgs: false + }; + t['re'] = { + id: OPS.rectangle, + numArgs: 4, + variableArgs: false + }; + t['S'] = { + id: OPS.stroke, + numArgs: 0, + variableArgs: false + }; + t['s'] = { + id: OPS.closeStroke, + numArgs: 0, + variableArgs: false + }; + t['f'] = { + id: OPS.fill, + numArgs: 0, + variableArgs: false + }; + t['F'] = { + id: OPS.fill, + numArgs: 0, + variableArgs: false + }; + t['f*'] = { + id: OPS.eoFill, + numArgs: 0, + variableArgs: false + }; + t['B'] = { + id: OPS.fillStroke, + numArgs: 0, + variableArgs: false + }; + t['B*'] = { + id: OPS.eoFillStroke, + numArgs: 0, + variableArgs: false + }; + t['b'] = { + id: OPS.closeFillStroke, + numArgs: 0, + variableArgs: false + }; + t['b*'] = { + id: OPS.closeEOFillStroke, + numArgs: 0, + variableArgs: false + }; + t['n'] = { + id: OPS.endPath, + numArgs: 0, + variableArgs: false + }; + t['W'] = { + id: OPS.clip, + numArgs: 0, + variableArgs: false + }; + t['W*'] = { + id: OPS.eoClip, + numArgs: 0, + variableArgs: false + }; + t['BT'] = { + id: OPS.beginText, + numArgs: 0, + variableArgs: false + }; + t['ET'] = { + id: OPS.endText, + numArgs: 0, + variableArgs: false + }; + t['Tc'] = { + id: OPS.setCharSpacing, + numArgs: 1, + variableArgs: false + }; + t['Tw'] = { + id: OPS.setWordSpacing, + numArgs: 1, + variableArgs: false + }; + t['Tz'] = { + id: OPS.setHScale, + numArgs: 1, + variableArgs: false + }; + t['TL'] = { + id: OPS.setLeading, + numArgs: 1, + variableArgs: false + }; + t['Tf'] = { + id: OPS.setFont, + numArgs: 2, + variableArgs: false + }; + t['Tr'] = { + id: OPS.setTextRenderingMode, + numArgs: 1, + variableArgs: false + }; + t['Ts'] = { + id: OPS.setTextRise, + numArgs: 1, + variableArgs: false + }; + t['Td'] = { + id: OPS.moveText, + numArgs: 2, + variableArgs: false + }; + t['TD'] = { + id: OPS.setLeadingMoveText, + numArgs: 2, + variableArgs: false + }; + t['Tm'] = { + id: OPS.setTextMatrix, + numArgs: 6, + variableArgs: false + }; + t['T*'] = { + id: OPS.nextLine, + numArgs: 0, + variableArgs: false + }; + t['Tj'] = { + id: OPS.showText, + numArgs: 1, + variableArgs: false + }; + t['TJ'] = { + id: OPS.showSpacedText, + numArgs: 1, + variableArgs: false + }; + t['\''] = { + id: OPS.nextLineShowText, + numArgs: 1, + variableArgs: false + }; + t['"'] = { + id: OPS.nextLineSetSpacingShowText, + numArgs: 3, + variableArgs: false + }; + t['d0'] = { + id: OPS.setCharWidth, + numArgs: 2, + variableArgs: false + }; + t['d1'] = { + id: OPS.setCharWidthAndBounds, + numArgs: 6, + variableArgs: false + }; + t['CS'] = { + id: OPS.setStrokeColorSpace, + numArgs: 1, + variableArgs: false + }; + t['cs'] = { + id: OPS.setFillColorSpace, + numArgs: 1, + variableArgs: false + }; + t['SC'] = { + id: OPS.setStrokeColor, + numArgs: 4, + variableArgs: true + }; + t['SCN'] = { + id: OPS.setStrokeColorN, + numArgs: 33, + variableArgs: true + }; + t['sc'] = { + id: OPS.setFillColor, + numArgs: 4, + variableArgs: true + }; + t['scn'] = { + id: OPS.setFillColorN, + numArgs: 33, + variableArgs: true + }; + t['G'] = { + id: OPS.setStrokeGray, + numArgs: 1, + variableArgs: false + }; + t['g'] = { + id: OPS.setFillGray, + numArgs: 1, + variableArgs: false + }; + t['RG'] = { + id: OPS.setStrokeRGBColor, + numArgs: 3, + variableArgs: false + }; + t['rg'] = { + id: OPS.setFillRGBColor, + numArgs: 3, + variableArgs: false + }; + t['K'] = { + id: OPS.setStrokeCMYKColor, + numArgs: 4, + variableArgs: false + }; + t['k'] = { + id: OPS.setFillCMYKColor, + numArgs: 4, + variableArgs: false + }; + t['sh'] = { + id: OPS.shadingFill, + numArgs: 1, + variableArgs: false + }; + t['BI'] = { + id: OPS.beginInlineImage, + numArgs: 0, + variableArgs: false + }; + t['ID'] = { + id: OPS.beginImageData, + numArgs: 0, + variableArgs: false + }; + t['EI'] = { + id: OPS.endInlineImage, + numArgs: 1, + variableArgs: false + }; + t['Do'] = { + id: OPS.paintXObject, + numArgs: 1, + variableArgs: false + }; + t['MP'] = { + id: OPS.markPoint, + numArgs: 1, + variableArgs: false + }; + t['DP'] = { + id: OPS.markPointProps, + numArgs: 2, + variableArgs: false + }; + t['BMC'] = { + id: OPS.beginMarkedContent, + numArgs: 1, + variableArgs: false + }; + t['BDC'] = { + id: OPS.beginMarkedContentProps, + numArgs: 2, + variableArgs: false + }; + t['EMC'] = { + id: OPS.endMarkedContent, + numArgs: 0, + variableArgs: false + }; + t['BX'] = { + id: OPS.beginCompat, + numArgs: 0, + variableArgs: false + }; + t['EX'] = { + id: OPS.endCompat, + numArgs: 0, + variableArgs: false + }; + t['BM'] = null; + t['BD'] = null; + t['true'] = null; + t['fa'] = null; + t['fal'] = null; + t['fals'] = null; + t['false'] = null; + t['nu'] = null; + t['nul'] = null; + t['null'] = null; + }); + function EvaluatorPreprocessor(stream, xref, stateManager) { + this.opMap = getOPMap(); + this.parser = new Parser(new Lexer(stream, this.opMap), false, xref); + this.stateManager = stateManager; + this.nonProcessedArgs = []; + } + EvaluatorPreprocessor.prototype = { + get savedStatesDepth() { + return this.stateManager.stateStack.length; + }, + read: function EvaluatorPreprocessor_read(operation) { + var args = operation.args; + while (true) { + var obj = this.parser.getObj(); + if (isCmd(obj)) { + var cmd = obj.cmd; + var opSpec = this.opMap[cmd]; + if (!opSpec) { + warn('Unknown command "' + cmd + '"'); + continue; + } + var fn = opSpec.id; + var numArgs = opSpec.numArgs; + var argsLength = args !== null ? args.length : 0; + if (!opSpec.variableArgs) { + if (argsLength !== numArgs) { + var nonProcessedArgs = this.nonProcessedArgs; + while (argsLength > numArgs) { + nonProcessedArgs.push(args.shift()); + argsLength--; + } + while (argsLength < numArgs && nonProcessedArgs.length !== 0) { + if (args === null) { + args = []; + } + args.unshift(nonProcessedArgs.pop()); + argsLength++; + } + } + if (argsLength < numArgs) { + warn('Skipping command ' + fn + ': expected ' + numArgs + ' args, but received ' + argsLength + ' args.'); + if (args !== null) { + args.length = 0; + } + continue; + } + } else if (argsLength > numArgs) { + info('Command ' + fn + ': expected [0,' + numArgs + '] args, but received ' + argsLength + ' args.'); + } + this.preprocessCommand(fn, args); + operation.fn = fn; + operation.args = args; + return true; + } + if (isEOF(obj)) { + return false; + } + if (obj !== null) { + if (args === null) { + args = []; + } + args.push(obj); + assert(args.length <= 33, 'Too many arguments'); + } + } + }, + preprocessCommand: function EvaluatorPreprocessor_preprocessCommand(fn, args) { + switch (fn | 0) { + case OPS.save: + this.stateManager.save(); + break; + case OPS.restore: + this.stateManager.restore(); + break; + case OPS.transform: + this.stateManager.transform(args); + break; + } + } + }; + return EvaluatorPreprocessor; +}(); +var QueueOptimizer = function QueueOptimizerClosure() { + function addState(parentState, pattern, fn) { + var state = parentState; + for (var i = 0, ii = pattern.length - 1; i < ii; i++) { + var item = pattern[i]; + state = state[item] || (state[item] = []); + } + state[pattern[pattern.length - 1]] = fn; + } + function handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray) { + var iFirstPIMXO = iFirstSave + 2; + for (var i = 0; i < count; i++) { + var arg = argsArray[iFirstPIMXO + 4 * i]; + var imageMask = arg.length === 1 && arg[0]; + if (imageMask && imageMask.width === 1 && imageMask.height === 1 && (!imageMask.data.length || imageMask.data.length === 1 && imageMask.data[0] === 0)) { + fnArray[iFirstPIMXO + 4 * i] = OPS.paintSolidColorImageMask; + continue; + } + break; + } + return count - i; + } + var InitialState = []; + addState(InitialState, [ + OPS.save, + OPS.transform, + OPS.paintInlineImageXObject, + OPS.restore + ], function foundInlineImageGroup(context) { + var MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10; + var MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200; + var MAX_WIDTH = 1000; + var IMAGE_PADDING = 1; + var fnArray = context.fnArray, argsArray = context.argsArray; + var curr = context.iCurr; + var iFirstSave = curr - 3; + var iFirstTransform = curr - 2; + var iFirstPIIXO = curr - 1; + var i = iFirstSave + 4; + var ii = fnArray.length; + while (i + 3 < ii) { + if (fnArray[i] !== OPS.save || fnArray[i + 1] !== OPS.transform || fnArray[i + 2] !== OPS.paintInlineImageXObject || fnArray[i + 3] !== OPS.restore) { + break; + } + i += 4; + } + var count = Math.min((i - iFirstSave) / 4, MAX_IMAGES_IN_INLINE_IMAGES_BLOCK); + if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) { + return i; + } + var maxX = 0; + var map = [], maxLineHeight = 0; + var currentX = IMAGE_PADDING, currentY = IMAGE_PADDING; + var q; + for (q = 0; q < count; q++) { + var transform = argsArray[iFirstTransform + (q << 2)]; + var img = argsArray[iFirstPIIXO + (q << 2)][0]; + if (currentX + img.width > MAX_WIDTH) { + maxX = Math.max(maxX, currentX); + currentY += maxLineHeight + 2 * IMAGE_PADDING; + currentX = 0; + maxLineHeight = 0; + } + map.push({ + transform: transform, + x: currentX, + y: currentY, + w: img.width, + h: img.height + }); + currentX += img.width + 2 * IMAGE_PADDING; + maxLineHeight = Math.max(maxLineHeight, img.height); + } + var imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING; + var imgHeight = currentY + maxLineHeight + IMAGE_PADDING; + var imgData = new Uint8Array(imgWidth * imgHeight * 4); + var imgRowSize = imgWidth << 2; + for (q = 0; q < count; q++) { + var data = argsArray[iFirstPIIXO + (q << 2)][0].data; + var rowSize = map[q].w << 2; + var dataOffset = 0; + var offset = map[q].x + map[q].y * imgWidth << 2; + imgData.set(data.subarray(0, rowSize), offset - imgRowSize); + for (var k = 0, kk = map[q].h; k < kk; k++) { + imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset); + dataOffset += rowSize; + offset += imgRowSize; + } + imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset); + while (offset >= 0) { + data[offset - 4] = data[offset]; + data[offset - 3] = data[offset + 1]; + data[offset - 2] = data[offset + 2]; + data[offset - 1] = data[offset + 3]; + data[offset + rowSize] = data[offset + rowSize - 4]; + data[offset + rowSize + 1] = data[offset + rowSize - 3]; + data[offset + rowSize + 2] = data[offset + rowSize - 2]; + data[offset + rowSize + 3] = data[offset + rowSize - 1]; + offset -= imgRowSize; + } + } + fnArray.splice(iFirstSave, count * 4, OPS.paintInlineImageXObjectGroup); + argsArray.splice(iFirstSave, count * 4, [ + { + width: imgWidth, + height: imgHeight, + kind: ImageKind.RGBA_32BPP, + data: imgData + }, + map + ]); + return iFirstSave + 1; + }); + addState(InitialState, [ + OPS.save, + OPS.transform, + OPS.paintImageMaskXObject, + OPS.restore + ], function foundImageMaskGroup(context) { + var MIN_IMAGES_IN_MASKS_BLOCK = 10; + var MAX_IMAGES_IN_MASKS_BLOCK = 100; + var MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000; + var fnArray = context.fnArray, argsArray = context.argsArray; + var curr = context.iCurr; + var iFirstSave = curr - 3; + var iFirstTransform = curr - 2; + var iFirstPIMXO = curr - 1; + var i = iFirstSave + 4; + var ii = fnArray.length; + while (i + 3 < ii) { + if (fnArray[i] !== OPS.save || fnArray[i + 1] !== OPS.transform || fnArray[i + 2] !== OPS.paintImageMaskXObject || fnArray[i + 3] !== OPS.restore) { + break; + } + i += 4; + } + var count = (i - iFirstSave) / 4; + count = handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray); + if (count < MIN_IMAGES_IN_MASKS_BLOCK) { + return i; + } + var q; + var isSameImage = false; + var iTransform, transformArgs; + var firstPIMXOArg0 = argsArray[iFirstPIMXO][0]; + if (argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0) { + isSameImage = true; + var firstTransformArg0 = argsArray[iFirstTransform][0]; + var firstTransformArg3 = argsArray[iFirstTransform][3]; + iTransform = iFirstTransform + 4; + var iPIMXO = iFirstPIMXO + 4; + for (q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) { + transformArgs = argsArray[iTransform]; + if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== 0 || transformArgs[2] !== 0 || transformArgs[3] !== firstTransformArg3) { + if (q < MIN_IMAGES_IN_MASKS_BLOCK) { + isSameImage = false; + } else { + count = q; + } + break; + } + } + } + if (isSameImage) { + count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK); + var positions = new Float32Array(count * 2); + iTransform = iFirstTransform; + for (q = 0; q < count; q++, iTransform += 4) { + transformArgs = argsArray[iTransform]; + positions[q << 1] = transformArgs[4]; + positions[(q << 1) + 1] = transformArgs[5]; + } + fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectRepeat); + argsArray.splice(iFirstSave, count * 4, [ + firstPIMXOArg0, + firstTransformArg0, + firstTransformArg3, + positions + ]); + } else { + count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK); + var images = []; + for (q = 0; q < count; q++) { + transformArgs = argsArray[iFirstTransform + (q << 2)]; + var maskParams = argsArray[iFirstPIMXO + (q << 2)][0]; + images.push({ + data: maskParams.data, + width: maskParams.width, + height: maskParams.height, + transform: transformArgs + }); + } + fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectGroup); + argsArray.splice(iFirstSave, count * 4, [images]); + } + return iFirstSave + 1; + }); + addState(InitialState, [ + OPS.save, + OPS.transform, + OPS.paintImageXObject, + OPS.restore + ], function (context) { + var MIN_IMAGES_IN_BLOCK = 3; + var MAX_IMAGES_IN_BLOCK = 1000; + var fnArray = context.fnArray, argsArray = context.argsArray; + var curr = context.iCurr; + var iFirstSave = curr - 3; + var iFirstTransform = curr - 2; + var iFirstPIXO = curr - 1; + var iFirstRestore = curr; + if (argsArray[iFirstTransform][1] !== 0 || argsArray[iFirstTransform][2] !== 0) { + return iFirstRestore + 1; + } + var firstPIXOArg0 = argsArray[iFirstPIXO][0]; + var firstTransformArg0 = argsArray[iFirstTransform][0]; + var firstTransformArg3 = argsArray[iFirstTransform][3]; + var i = iFirstSave + 4; + var ii = fnArray.length; + while (i + 3 < ii) { + if (fnArray[i] !== OPS.save || fnArray[i + 1] !== OPS.transform || fnArray[i + 2] !== OPS.paintImageXObject || fnArray[i + 3] !== OPS.restore) { + break; + } + if (argsArray[i + 1][0] !== firstTransformArg0 || argsArray[i + 1][1] !== 0 || argsArray[i + 1][2] !== 0 || argsArray[i + 1][3] !== firstTransformArg3) { + break; + } + if (argsArray[i + 2][0] !== firstPIXOArg0) { + break; + } + i += 4; + } + var count = Math.min((i - iFirstSave) / 4, MAX_IMAGES_IN_BLOCK); + if (count < MIN_IMAGES_IN_BLOCK) { + return i; + } + var positions = new Float32Array(count * 2); + var iTransform = iFirstTransform; + for (var q = 0; q < count; q++, iTransform += 4) { + var transformArgs = argsArray[iTransform]; + positions[q << 1] = transformArgs[4]; + positions[(q << 1) + 1] = transformArgs[5]; + } + var args = [ + firstPIXOArg0, + firstTransformArg0, + firstTransformArg3, + positions + ]; + fnArray.splice(iFirstSave, count * 4, OPS.paintImageXObjectRepeat); + argsArray.splice(iFirstSave, count * 4, args); + return iFirstSave + 1; + }); + addState(InitialState, [ + OPS.beginText, + OPS.setFont, + OPS.setTextMatrix, + OPS.showText, + OPS.endText + ], function (context) { + var MIN_CHARS_IN_BLOCK = 3; + var MAX_CHARS_IN_BLOCK = 1000; + var fnArray = context.fnArray, argsArray = context.argsArray; + var curr = context.iCurr; + var iFirstBeginText = curr - 4; + var iFirstSetFont = curr - 3; + var iFirstSetTextMatrix = curr - 2; + var iFirstShowText = curr - 1; + var iFirstEndText = curr; + var firstSetFontArg0 = argsArray[iFirstSetFont][0]; + var firstSetFontArg1 = argsArray[iFirstSetFont][1]; + var i = iFirstBeginText + 5; + var ii = fnArray.length; + while (i + 4 < ii) { + if (fnArray[i] !== OPS.beginText || fnArray[i + 1] !== OPS.setFont || fnArray[i + 2] !== OPS.setTextMatrix || fnArray[i + 3] !== OPS.showText || fnArray[i + 4] !== OPS.endText) { + break; + } + if (argsArray[i + 1][0] !== firstSetFontArg0 || argsArray[i + 1][1] !== firstSetFontArg1) { + break; + } + i += 5; + } + var count = Math.min((i - iFirstBeginText) / 5, MAX_CHARS_IN_BLOCK); + if (count < MIN_CHARS_IN_BLOCK) { + return i; + } + var iFirst = iFirstBeginText; + if (iFirstBeginText >= 4 && fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] && fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] && fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] && fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] && argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 && argsArray[iFirstBeginText - 4][1] === firstSetFontArg1) { + count++; + iFirst -= 5; + } + var iEndText = iFirst + 4; + for (var q = 1; q < count; q++) { + fnArray.splice(iEndText, 3); + argsArray.splice(iEndText, 3); + iEndText += 2; + } + return iEndText + 1; + }); + function QueueOptimizer() { + } + QueueOptimizer.prototype = { + optimize: function QueueOptimizer_optimize(queue) { + var fnArray = queue.fnArray, argsArray = queue.argsArray; + var context = { + iCurr: 0, + fnArray: fnArray, + argsArray: argsArray + }; + var state; + var i = 0, ii = fnArray.length; + while (i < ii) { + state = (state || InitialState)[fnArray[i]]; + if (typeof state === 'function') { + context.iCurr = i; + i = state(context); + state = undefined; + ii = context.fnArray.length; + } else { + i++; + } + } + } + }; + return QueueOptimizer; +}(); +exports.OperatorList = OperatorList; +exports.PartialEvaluator = PartialEvaluator; + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var coreArithmeticDecoder = __w_pdfjs_require__(10); +var info = sharedUtil.info; +var warn = sharedUtil.warn; +var error = sharedUtil.error; +var log2 = sharedUtil.log2; +var readUint16 = sharedUtil.readUint16; +var readUint32 = sharedUtil.readUint32; +var ArithmeticDecoder = coreArithmeticDecoder.ArithmeticDecoder; +var JpxImage = function JpxImageClosure() { + var SubbandsGainLog2 = { + 'LL': 0, + 'LH': 1, + 'HL': 1, + 'HH': 2 + }; + function JpxImage() { + this.failOnCorruptedImage = false; + } + JpxImage.prototype = { + parse: function JpxImage_parse(data) { + var head = readUint16(data, 0); + if (head === 0xFF4F) { + this.parseCodestream(data, 0, data.length); + return; + } + var position = 0, length = data.length; + while (position < length) { + var headerSize = 8; + var lbox = readUint32(data, position); + var tbox = readUint32(data, position + 4); + position += headerSize; + if (lbox === 1) { + lbox = readUint32(data, position) * 4294967296 + readUint32(data, position + 4); + position += 8; + headerSize += 8; + } + if (lbox === 0) { + lbox = length - position + headerSize; + } + if (lbox < headerSize) { + error('JPX Error: Invalid box field size'); + } + var dataLength = lbox - headerSize; + var jumpDataLength = true; + switch (tbox) { + case 0x6A703268: + jumpDataLength = false; + break; + case 0x636F6C72: + var method = data[position]; + if (method === 1) { + var colorspace = readUint32(data, position + 3); + switch (colorspace) { + case 16: + case 17: + case 18: + break; + default: + warn('Unknown colorspace ' + colorspace); + break; + } + } else if (method === 2) { + info('ICC profile not supported'); + } + break; + case 0x6A703263: + this.parseCodestream(data, position, position + dataLength); + break; + case 0x6A502020: + if (0x0d0a870a !== readUint32(data, position)) { + warn('Invalid JP2 signature'); + } + break; + case 0x6A501A1A: + case 0x66747970: + case 0x72726571: + case 0x72657320: + case 0x69686472: + break; + default: + var headerType = String.fromCharCode(tbox >> 24 & 0xFF, tbox >> 16 & 0xFF, tbox >> 8 & 0xFF, tbox & 0xFF); + warn('Unsupported header type ' + tbox + ' (' + headerType + ')'); + break; + } + if (jumpDataLength) { + position += dataLength; + } + } + }, + parseImageProperties: function JpxImage_parseImageProperties(stream) { + var newByte = stream.getByte(); + while (newByte >= 0) { + var oldByte = newByte; + newByte = stream.getByte(); + var code = oldByte << 8 | newByte; + if (code === 0xFF51) { + stream.skip(4); + var Xsiz = stream.getInt32() >>> 0; + var Ysiz = stream.getInt32() >>> 0; + var XOsiz = stream.getInt32() >>> 0; + var YOsiz = stream.getInt32() >>> 0; + stream.skip(16); + var Csiz = stream.getUint16(); + this.width = Xsiz - XOsiz; + this.height = Ysiz - YOsiz; + this.componentsCount = Csiz; + this.bitsPerComponent = 8; + return; + } + } + error('JPX Error: No size marker found in JPX stream'); + }, + parseCodestream: function JpxImage_parseCodestream(data, start, end) { + var context = {}; + var doNotRecover = false; + try { + var position = start; + while (position + 1 < end) { + var code = readUint16(data, position); + position += 2; + var length = 0, j, sqcd, spqcds, spqcdSize, scalarExpounded, tile; + switch (code) { + case 0xFF4F: + context.mainHeader = true; + break; + case 0xFFD9: + break; + case 0xFF51: + length = readUint16(data, position); + var siz = {}; + siz.Xsiz = readUint32(data, position + 4); + siz.Ysiz = readUint32(data, position + 8); + siz.XOsiz = readUint32(data, position + 12); + siz.YOsiz = readUint32(data, position + 16); + siz.XTsiz = readUint32(data, position + 20); + siz.YTsiz = readUint32(data, position + 24); + siz.XTOsiz = readUint32(data, position + 28); + siz.YTOsiz = readUint32(data, position + 32); + var componentsCount = readUint16(data, position + 36); + siz.Csiz = componentsCount; + var components = []; + j = position + 38; + for (var i = 0; i < componentsCount; i++) { + var component = { + precision: (data[j] & 0x7F) + 1, + isSigned: !!(data[j] & 0x80), + XRsiz: data[j + 1], + YRsiz: data[j + 1] + }; + calculateComponentDimensions(component, siz); + components.push(component); + } + context.SIZ = siz; + context.components = components; + calculateTileGrids(context, components); + context.QCC = []; + context.COC = []; + break; + case 0xFF5C: + length = readUint16(data, position); + var qcd = {}; + j = position + 2; + sqcd = data[j++]; + switch (sqcd & 0x1F) { + case 0: + spqcdSize = 8; + scalarExpounded = true; + break; + case 1: + spqcdSize = 16; + scalarExpounded = false; + break; + case 2: + spqcdSize = 16; + scalarExpounded = true; + break; + default: + throw new Error('Invalid SQcd value ' + sqcd); + } + qcd.noQuantization = spqcdSize === 8; + qcd.scalarExpounded = scalarExpounded; + qcd.guardBits = sqcd >> 5; + spqcds = []; + while (j < length + position) { + var spqcd = {}; + if (spqcdSize === 8) { + spqcd.epsilon = data[j++] >> 3; + spqcd.mu = 0; + } else { + spqcd.epsilon = data[j] >> 3; + spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1]; + j += 2; + } + spqcds.push(spqcd); + } + qcd.SPqcds = spqcds; + if (context.mainHeader) { + context.QCD = qcd; + } else { + context.currentTile.QCD = qcd; + context.currentTile.QCC = []; + } + break; + case 0xFF5D: + length = readUint16(data, position); + var qcc = {}; + j = position + 2; + var cqcc; + if (context.SIZ.Csiz < 257) { + cqcc = data[j++]; + } else { + cqcc = readUint16(data, j); + j += 2; + } + sqcd = data[j++]; + switch (sqcd & 0x1F) { + case 0: + spqcdSize = 8; + scalarExpounded = true; + break; + case 1: + spqcdSize = 16; + scalarExpounded = false; + break; + case 2: + spqcdSize = 16; + scalarExpounded = true; + break; + default: + throw new Error('Invalid SQcd value ' + sqcd); + } + qcc.noQuantization = spqcdSize === 8; + qcc.scalarExpounded = scalarExpounded; + qcc.guardBits = sqcd >> 5; + spqcds = []; + while (j < length + position) { + spqcd = {}; + if (spqcdSize === 8) { + spqcd.epsilon = data[j++] >> 3; + spqcd.mu = 0; + } else { + spqcd.epsilon = data[j] >> 3; + spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1]; + j += 2; + } + spqcds.push(spqcd); + } + qcc.SPqcds = spqcds; + if (context.mainHeader) { + context.QCC[cqcc] = qcc; + } else { + context.currentTile.QCC[cqcc] = qcc; + } + break; + case 0xFF52: + length = readUint16(data, position); + var cod = {}; + j = position + 2; + var scod = data[j++]; + cod.entropyCoderWithCustomPrecincts = !!(scod & 1); + cod.sopMarkerUsed = !!(scod & 2); + cod.ephMarkerUsed = !!(scod & 4); + cod.progressionOrder = data[j++]; + cod.layersCount = readUint16(data, j); + j += 2; + cod.multipleComponentTransform = data[j++]; + cod.decompositionLevelsCount = data[j++]; + cod.xcb = (data[j++] & 0xF) + 2; + cod.ycb = (data[j++] & 0xF) + 2; + var blockStyle = data[j++]; + cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1); + cod.resetContextProbabilities = !!(blockStyle & 2); + cod.terminationOnEachCodingPass = !!(blockStyle & 4); + cod.verticalyStripe = !!(blockStyle & 8); + cod.predictableTermination = !!(blockStyle & 16); + cod.segmentationSymbolUsed = !!(blockStyle & 32); + cod.reversibleTransformation = data[j++]; + if (cod.entropyCoderWithCustomPrecincts) { + var precinctsSizes = []; + while (j < length + position) { + var precinctsSize = data[j++]; + precinctsSizes.push({ + PPx: precinctsSize & 0xF, + PPy: precinctsSize >> 4 + }); + } + cod.precinctsSizes = precinctsSizes; + } + var unsupported = []; + if (cod.selectiveArithmeticCodingBypass) { + unsupported.push('selectiveArithmeticCodingBypass'); + } + if (cod.resetContextProbabilities) { + unsupported.push('resetContextProbabilities'); + } + if (cod.terminationOnEachCodingPass) { + unsupported.push('terminationOnEachCodingPass'); + } + if (cod.verticalyStripe) { + unsupported.push('verticalyStripe'); + } + if (cod.predictableTermination) { + unsupported.push('predictableTermination'); + } + if (unsupported.length > 0) { + doNotRecover = true; + throw new Error('Unsupported COD options (' + unsupported.join(', ') + ')'); + } + if (context.mainHeader) { + context.COD = cod; + } else { + context.currentTile.COD = cod; + context.currentTile.COC = []; + } + break; + case 0xFF90: + length = readUint16(data, position); + tile = {}; + tile.index = readUint16(data, position + 2); + tile.length = readUint32(data, position + 4); + tile.dataEnd = tile.length + position - 2; + tile.partIndex = data[position + 8]; + tile.partsCount = data[position + 9]; + context.mainHeader = false; + if (tile.partIndex === 0) { + tile.COD = context.COD; + tile.COC = context.COC.slice(0); + tile.QCD = context.QCD; + tile.QCC = context.QCC.slice(0); + } + context.currentTile = tile; + break; + case 0xFF93: + tile = context.currentTile; + if (tile.partIndex === 0) { + initializeTile(context, tile.index); + buildPackets(context); + } + length = tile.dataEnd - position; + parseTilePackets(context, data, position, length); + break; + case 0xFF55: + case 0xFF57: + case 0xFF58: + case 0xFF64: + length = readUint16(data, position); + break; + case 0xFF53: + throw new Error('Codestream code 0xFF53 (COC) is ' + 'not implemented'); + default: + throw new Error('Unknown codestream code: ' + code.toString(16)); + } + position += length; + } + } catch (e) { + if (doNotRecover || this.failOnCorruptedImage) { + error('JPX Error: ' + e.message); + } else { + warn('JPX: Trying to recover from: ' + e.message); + } + } + this.tiles = transformComponents(context); + this.width = context.SIZ.Xsiz - context.SIZ.XOsiz; + this.height = context.SIZ.Ysiz - context.SIZ.YOsiz; + this.componentsCount = context.SIZ.Csiz; + } + }; + function calculateComponentDimensions(component, siz) { + component.x0 = Math.ceil(siz.XOsiz / component.XRsiz); + component.x1 = Math.ceil(siz.Xsiz / component.XRsiz); + component.y0 = Math.ceil(siz.YOsiz / component.YRsiz); + component.y1 = Math.ceil(siz.Ysiz / component.YRsiz); + component.width = component.x1 - component.x0; + component.height = component.y1 - component.y0; + } + function calculateTileGrids(context, components) { + var siz = context.SIZ; + var tile, tiles = []; + var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz); + var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz); + for (var q = 0; q < numYtiles; q++) { + for (var p = 0; p < numXtiles; p++) { + tile = {}; + tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz); + tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz); + tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz); + tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz); + tile.width = tile.tx1 - tile.tx0; + tile.height = tile.ty1 - tile.ty0; + tile.components = []; + tiles.push(tile); + } + } + context.tiles = tiles; + var componentsCount = siz.Csiz; + for (var i = 0, ii = componentsCount; i < ii; i++) { + var component = components[i]; + for (var j = 0, jj = tiles.length; j < jj; j++) { + var tileComponent = {}; + tile = tiles[j]; + tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz); + tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz); + tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz); + tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz); + tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0; + tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0; + tile.components[i] = tileComponent; + } + } + } + function getBlocksDimensions(context, component, r) { + var codOrCoc = component.codingStyleParameters; + var result = {}; + if (!codOrCoc.entropyCoderWithCustomPrecincts) { + result.PPx = 15; + result.PPy = 15; + } else { + result.PPx = codOrCoc.precinctsSizes[r].PPx; + result.PPy = codOrCoc.precinctsSizes[r].PPy; + } + result.xcb_ = r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) : Math.min(codOrCoc.xcb, result.PPx); + result.ycb_ = r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) : Math.min(codOrCoc.ycb, result.PPy); + return result; + } + function buildPrecincts(context, resolution, dimensions) { + var precinctWidth = 1 << dimensions.PPx; + var precinctHeight = 1 << dimensions.PPy; + var isZeroRes = resolution.resLevel === 0; + var precinctWidthInSubband = 1 << dimensions.PPx + (isZeroRes ? 0 : -1); + var precinctHeightInSubband = 1 << dimensions.PPy + (isZeroRes ? 0 : -1); + var numprecinctswide = resolution.trx1 > resolution.trx0 ? Math.ceil(resolution.trx1 / precinctWidth) - Math.floor(resolution.trx0 / precinctWidth) : 0; + var numprecinctshigh = resolution.try1 > resolution.try0 ? Math.ceil(resolution.try1 / precinctHeight) - Math.floor(resolution.try0 / precinctHeight) : 0; + var numprecincts = numprecinctswide * numprecinctshigh; + resolution.precinctParameters = { + precinctWidth: precinctWidth, + precinctHeight: precinctHeight, + numprecinctswide: numprecinctswide, + numprecinctshigh: numprecinctshigh, + numprecincts: numprecincts, + precinctWidthInSubband: precinctWidthInSubband, + precinctHeightInSubband: precinctHeightInSubband + }; + } + function buildCodeblocks(context, subband, dimensions) { + var xcb_ = dimensions.xcb_; + var ycb_ = dimensions.ycb_; + var codeblockWidth = 1 << xcb_; + var codeblockHeight = 1 << ycb_; + var cbx0 = subband.tbx0 >> xcb_; + var cby0 = subband.tby0 >> ycb_; + var cbx1 = subband.tbx1 + codeblockWidth - 1 >> xcb_; + var cby1 = subband.tby1 + codeblockHeight - 1 >> ycb_; + var precinctParameters = subband.resolution.precinctParameters; + var codeblocks = []; + var precincts = []; + var i, j, codeblock, precinctNumber; + for (j = cby0; j < cby1; j++) { + for (i = cbx0; i < cbx1; i++) { + codeblock = { + cbx: i, + cby: j, + tbx0: codeblockWidth * i, + tby0: codeblockHeight * j, + tbx1: codeblockWidth * (i + 1), + tby1: codeblockHeight * (j + 1) + }; + codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0); + codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0); + codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1); + codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1); + var pi = Math.floor((codeblock.tbx0_ - subband.tbx0) / precinctParameters.precinctWidthInSubband); + var pj = Math.floor((codeblock.tby0_ - subband.tby0) / precinctParameters.precinctHeightInSubband); + precinctNumber = pi + pj * precinctParameters.numprecinctswide; + codeblock.precinctNumber = precinctNumber; + codeblock.subbandType = subband.type; + codeblock.Lblock = 3; + if (codeblock.tbx1_ <= codeblock.tbx0_ || codeblock.tby1_ <= codeblock.tby0_) { + continue; + } + codeblocks.push(codeblock); + var precinct = precincts[precinctNumber]; + if (precinct !== undefined) { + if (i < precinct.cbxMin) { + precinct.cbxMin = i; + } else if (i > precinct.cbxMax) { + precinct.cbxMax = i; + } + if (j < precinct.cbyMin) { + precinct.cbxMin = j; + } else if (j > precinct.cbyMax) { + precinct.cbyMax = j; + } + } else { + precincts[precinctNumber] = precinct = { + cbxMin: i, + cbyMin: j, + cbxMax: i, + cbyMax: j + }; + } + codeblock.precinct = precinct; + } + } + subband.codeblockParameters = { + codeblockWidth: xcb_, + codeblockHeight: ycb_, + numcodeblockwide: cbx1 - cbx0 + 1, + numcodeblockhigh: cby1 - cby0 + 1 + }; + subband.codeblocks = codeblocks; + subband.precincts = precincts; + } + function createPacket(resolution, precinctNumber, layerNumber) { + var precinctCodeblocks = []; + var subbands = resolution.subbands; + for (var i = 0, ii = subbands.length; i < ii; i++) { + var subband = subbands[i]; + var codeblocks = subband.codeblocks; + for (var j = 0, jj = codeblocks.length; j < jj; j++) { + var codeblock = codeblocks[j]; + if (codeblock.precinctNumber !== precinctNumber) { + continue; + } + precinctCodeblocks.push(codeblock); + } + } + return { + layerNumber: layerNumber, + codeblocks: precinctCodeblocks + }; + } + function LayerResolutionComponentPositionIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var maxDecompositionLevelsCount = 0; + for (var q = 0; q < componentsCount; q++) { + maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount); + } + var l = 0, r = 0, i = 0, k = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; l < layersCount; l++) { + for (; r <= maxDecompositionLevelsCount; r++) { + for (; i < componentsCount; i++) { + var component = tile.components[i]; + if (r > component.codingStyleParameters.decompositionLevelsCount) { + continue; + } + var resolution = component.resolutions[r]; + var numprecincts = resolution.precinctParameters.numprecincts; + for (; k < numprecincts;) { + var packet = createPacket(resolution, k, l); + k++; + return packet; + } + k = 0; + } + i = 0; + } + r = 0; + } + error('JPX Error: Out of packets'); + }; + } + function ResolutionLayerComponentPositionIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var maxDecompositionLevelsCount = 0; + for (var q = 0; q < componentsCount; q++) { + maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount); + } + var r = 0, l = 0, i = 0, k = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; r <= maxDecompositionLevelsCount; r++) { + for (; l < layersCount; l++) { + for (; i < componentsCount; i++) { + var component = tile.components[i]; + if (r > component.codingStyleParameters.decompositionLevelsCount) { + continue; + } + var resolution = component.resolutions[r]; + var numprecincts = resolution.precinctParameters.numprecincts; + for (; k < numprecincts;) { + var packet = createPacket(resolution, k, l); + k++; + return packet; + } + k = 0; + } + i = 0; + } + l = 0; + } + error('JPX Error: Out of packets'); + }; + } + function ResolutionPositionComponentLayerIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var l, r, c, p; + var maxDecompositionLevelsCount = 0; + for (c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, component.codingStyleParameters.decompositionLevelsCount); + } + var maxNumPrecinctsInLevel = new Int32Array(maxDecompositionLevelsCount + 1); + for (r = 0; r <= maxDecompositionLevelsCount; ++r) { + var maxNumPrecincts = 0; + for (c = 0; c < componentsCount; ++c) { + var resolutions = tile.components[c].resolutions; + if (r < resolutions.length) { + maxNumPrecincts = Math.max(maxNumPrecincts, resolutions[r].precinctParameters.numprecincts); + } + } + maxNumPrecinctsInLevel[r] = maxNumPrecincts; + } + l = 0; + r = 0; + c = 0; + p = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; r <= maxDecompositionLevelsCount; r++) { + for (; p < maxNumPrecinctsInLevel[r]; p++) { + for (; c < componentsCount; c++) { + var component = tile.components[c]; + if (r > component.codingStyleParameters.decompositionLevelsCount) { + continue; + } + var resolution = component.resolutions[r]; + var numprecincts = resolution.precinctParameters.numprecincts; + if (p >= numprecincts) { + continue; + } + for (; l < layersCount;) { + var packet = createPacket(resolution, p, l); + l++; + return packet; + } + l = 0; + } + c = 0; + } + p = 0; + } + error('JPX Error: Out of packets'); + }; + } + function PositionComponentResolutionLayerIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var precinctsSizes = getPrecinctSizesInImageScale(tile); + var precinctsIterationSizes = precinctsSizes; + var l = 0, r = 0, c = 0, px = 0, py = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; py < precinctsIterationSizes.maxNumHigh; py++) { + for (; px < precinctsIterationSizes.maxNumWide; px++) { + for (; c < componentsCount; c++) { + var component = tile.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + for (; r <= decompositionLevelsCount; r++) { + var resolution = component.resolutions[r]; + var sizeInImageScale = precinctsSizes.components[c].resolutions[r]; + var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution); + if (k === null) { + continue; + } + for (; l < layersCount;) { + var packet = createPacket(resolution, k, l); + l++; + return packet; + } + l = 0; + } + r = 0; + } + c = 0; + } + px = 0; + } + error('JPX Error: Out of packets'); + }; + } + function ComponentPositionResolutionLayerIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var precinctsSizes = getPrecinctSizesInImageScale(tile); + var l = 0, r = 0, c = 0, px = 0, py = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; c < componentsCount; ++c) { + var component = tile.components[c]; + var precinctsIterationSizes = precinctsSizes.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + for (; py < precinctsIterationSizes.maxNumHigh; py++) { + for (; px < precinctsIterationSizes.maxNumWide; px++) { + for (; r <= decompositionLevelsCount; r++) { + var resolution = component.resolutions[r]; + var sizeInImageScale = precinctsIterationSizes.resolutions[r]; + var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution); + if (k === null) { + continue; + } + for (; l < layersCount;) { + var packet = createPacket(resolution, k, l); + l++; + return packet; + } + l = 0; + } + r = 0; + } + px = 0; + } + py = 0; + } + error('JPX Error: Out of packets'); + }; + } + function getPrecinctIndexIfExist(pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) { + var posX = pxIndex * precinctIterationSizes.minWidth; + var posY = pyIndex * precinctIterationSizes.minHeight; + if (posX % sizeInImageScale.width !== 0 || posY % sizeInImageScale.height !== 0) { + return null; + } + var startPrecinctRowIndex = posY / sizeInImageScale.width * resolution.precinctParameters.numprecinctswide; + return posX / sizeInImageScale.height + startPrecinctRowIndex; + } + function getPrecinctSizesInImageScale(tile) { + var componentsCount = tile.components.length; + var minWidth = Number.MAX_VALUE; + var minHeight = Number.MAX_VALUE; + var maxNumWide = 0; + var maxNumHigh = 0; + var sizePerComponent = new Array(componentsCount); + for (var c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + var sizePerResolution = new Array(decompositionLevelsCount + 1); + var minWidthCurrentComponent = Number.MAX_VALUE; + var minHeightCurrentComponent = Number.MAX_VALUE; + var maxNumWideCurrentComponent = 0; + var maxNumHighCurrentComponent = 0; + var scale = 1; + for (var r = decompositionLevelsCount; r >= 0; --r) { + var resolution = component.resolutions[r]; + var widthCurrentResolution = scale * resolution.precinctParameters.precinctWidth; + var heightCurrentResolution = scale * resolution.precinctParameters.precinctHeight; + minWidthCurrentComponent = Math.min(minWidthCurrentComponent, widthCurrentResolution); + minHeightCurrentComponent = Math.min(minHeightCurrentComponent, heightCurrentResolution); + maxNumWideCurrentComponent = Math.max(maxNumWideCurrentComponent, resolution.precinctParameters.numprecinctswide); + maxNumHighCurrentComponent = Math.max(maxNumHighCurrentComponent, resolution.precinctParameters.numprecinctshigh); + sizePerResolution[r] = { + width: widthCurrentResolution, + height: heightCurrentResolution + }; + scale <<= 1; + } + minWidth = Math.min(minWidth, minWidthCurrentComponent); + minHeight = Math.min(minHeight, minHeightCurrentComponent); + maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent); + maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent); + sizePerComponent[c] = { + resolutions: sizePerResolution, + minWidth: minWidthCurrentComponent, + minHeight: minHeightCurrentComponent, + maxNumWide: maxNumWideCurrentComponent, + maxNumHigh: maxNumHighCurrentComponent + }; + } + return { + components: sizePerComponent, + minWidth: minWidth, + minHeight: minHeight, + maxNumWide: maxNumWide, + maxNumHigh: maxNumHigh + }; + } + function buildPackets(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var componentsCount = siz.Csiz; + for (var c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + var resolutions = []; + var subbands = []; + for (var r = 0; r <= decompositionLevelsCount; r++) { + var blocksDimensions = getBlocksDimensions(context, component, r); + var resolution = {}; + var scale = 1 << decompositionLevelsCount - r; + resolution.trx0 = Math.ceil(component.tcx0 / scale); + resolution.try0 = Math.ceil(component.tcy0 / scale); + resolution.trx1 = Math.ceil(component.tcx1 / scale); + resolution.try1 = Math.ceil(component.tcy1 / scale); + resolution.resLevel = r; + buildPrecincts(context, resolution, blocksDimensions); + resolutions.push(resolution); + var subband; + if (r === 0) { + subband = {}; + subband.type = 'LL'; + subband.tbx0 = Math.ceil(component.tcx0 / scale); + subband.tby0 = Math.ceil(component.tcy0 / scale); + subband.tbx1 = Math.ceil(component.tcx1 / scale); + subband.tby1 = Math.ceil(component.tcy1 / scale); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolution.subbands = [subband]; + } else { + var bscale = 1 << decompositionLevelsCount - r + 1; + var resolutionSubbands = []; + subband = {}; + subband.type = 'HL'; + subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5); + subband.tby0 = Math.ceil(component.tcy0 / bscale); + subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5); + subband.tby1 = Math.ceil(component.tcy1 / bscale); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolutionSubbands.push(subband); + subband = {}; + subband.type = 'LH'; + subband.tbx0 = Math.ceil(component.tcx0 / bscale); + subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5); + subband.tbx1 = Math.ceil(component.tcx1 / bscale); + subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolutionSubbands.push(subband); + subband = {}; + subband.type = 'HH'; + subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5); + subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5); + subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5); + subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolutionSubbands.push(subband); + resolution.subbands = resolutionSubbands; + } + } + component.resolutions = resolutions; + component.subbands = subbands; + } + var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder; + switch (progressionOrder) { + case 0: + tile.packetsIterator = new LayerResolutionComponentPositionIterator(context); + break; + case 1: + tile.packetsIterator = new ResolutionLayerComponentPositionIterator(context); + break; + case 2: + tile.packetsIterator = new ResolutionPositionComponentLayerIterator(context); + break; + case 3: + tile.packetsIterator = new PositionComponentResolutionLayerIterator(context); + break; + case 4: + tile.packetsIterator = new ComponentPositionResolutionLayerIterator(context); + break; + default: + error('JPX Error: Unsupported progression order ' + progressionOrder); + } + } + function parseTilePackets(context, data, offset, dataLength) { + var position = 0; + var buffer, bufferSize = 0, skipNextBit = false; + function readBits(count) { + while (bufferSize < count) { + var b = data[offset + position]; + position++; + if (skipNextBit) { + buffer = buffer << 7 | b; + bufferSize += 7; + skipNextBit = false; + } else { + buffer = buffer << 8 | b; + bufferSize += 8; + } + if (b === 0xFF) { + skipNextBit = true; + } + } + bufferSize -= count; + return buffer >>> bufferSize & (1 << count) - 1; + } + function skipMarkerIfEqual(value) { + if (data[offset + position - 1] === 0xFF && data[offset + position] === value) { + skipBytes(1); + return true; + } else if (data[offset + position] === 0xFF && data[offset + position + 1] === value) { + skipBytes(2); + return true; + } + return false; + } + function skipBytes(count) { + position += count; + } + function alignToByte() { + bufferSize = 0; + if (skipNextBit) { + position++; + skipNextBit = false; + } + } + function readCodingpasses() { + if (readBits(1) === 0) { + return 1; + } + if (readBits(1) === 0) { + return 2; + } + var value = readBits(2); + if (value < 3) { + return value + 3; + } + value = readBits(5); + if (value < 31) { + return value + 6; + } + value = readBits(7); + return value + 37; + } + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var sopMarkerUsed = context.COD.sopMarkerUsed; + var ephMarkerUsed = context.COD.ephMarkerUsed; + var packetsIterator = tile.packetsIterator; + while (position < dataLength) { + alignToByte(); + if (sopMarkerUsed && skipMarkerIfEqual(0x91)) { + skipBytes(4); + } + var packet = packetsIterator.nextPacket(); + if (!readBits(1)) { + continue; + } + var layerNumber = packet.layerNumber; + var queue = [], codeblock; + for (var i = 0, ii = packet.codeblocks.length; i < ii; i++) { + codeblock = packet.codeblocks[i]; + var precinct = codeblock.precinct; + var codeblockColumn = codeblock.cbx - precinct.cbxMin; + var codeblockRow = codeblock.cby - precinct.cbyMin; + var codeblockIncluded = false; + var firstTimeInclusion = false; + var valueReady; + if (codeblock['included'] !== undefined) { + codeblockIncluded = !!readBits(1); + } else { + precinct = codeblock.precinct; + var inclusionTree, zeroBitPlanesTree; + if (precinct['inclusionTree'] !== undefined) { + inclusionTree = precinct.inclusionTree; + } else { + var width = precinct.cbxMax - precinct.cbxMin + 1; + var height = precinct.cbyMax - precinct.cbyMin + 1; + inclusionTree = new InclusionTree(width, height, layerNumber); + zeroBitPlanesTree = new TagTree(width, height); + precinct.inclusionTree = inclusionTree; + precinct.zeroBitPlanesTree = zeroBitPlanesTree; + } + if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) { + while (true) { + if (readBits(1)) { + valueReady = !inclusionTree.nextLevel(); + if (valueReady) { + codeblock.included = true; + codeblockIncluded = firstTimeInclusion = true; + break; + } + } else { + inclusionTree.incrementValue(layerNumber); + break; + } + } + } + } + if (!codeblockIncluded) { + continue; + } + if (firstTimeInclusion) { + zeroBitPlanesTree = precinct.zeroBitPlanesTree; + zeroBitPlanesTree.reset(codeblockColumn, codeblockRow); + while (true) { + if (readBits(1)) { + valueReady = !zeroBitPlanesTree.nextLevel(); + if (valueReady) { + break; + } + } else { + zeroBitPlanesTree.incrementValue(); + } + } + codeblock.zeroBitPlanes = zeroBitPlanesTree.value; + } + var codingpasses = readCodingpasses(); + while (readBits(1)) { + codeblock.Lblock++; + } + var codingpassesLog2 = log2(codingpasses); + var bits = (codingpasses < 1 << codingpassesLog2 ? codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock; + var codedDataLength = readBits(bits); + queue.push({ + codeblock: codeblock, + codingpasses: codingpasses, + dataLength: codedDataLength + }); + } + alignToByte(); + if (ephMarkerUsed) { + skipMarkerIfEqual(0x92); + } + while (queue.length > 0) { + var packetItem = queue.shift(); + codeblock = packetItem.codeblock; + if (codeblock['data'] === undefined) { + codeblock.data = []; + } + codeblock.data.push({ + data: data, + start: offset + position, + end: offset + position + packetItem.dataLength, + codingpasses: packetItem.codingpasses + }); + position += packetItem.dataLength; + } + } + return position; + } + function copyCoefficients(coefficients, levelWidth, levelHeight, subband, delta, mb, reversible, segmentationSymbolUsed) { + var x0 = subband.tbx0; + var y0 = subband.tby0; + var width = subband.tbx1 - subband.tbx0; + var codeblocks = subband.codeblocks; + var right = subband.type.charAt(0) === 'H' ? 1 : 0; + var bottom = subband.type.charAt(1) === 'H' ? levelWidth : 0; + for (var i = 0, ii = codeblocks.length; i < ii; ++i) { + var codeblock = codeblocks[i]; + var blockWidth = codeblock.tbx1_ - codeblock.tbx0_; + var blockHeight = codeblock.tby1_ - codeblock.tby0_; + if (blockWidth === 0 || blockHeight === 0) { + continue; + } + if (codeblock['data'] === undefined) { + continue; + } + var bitModel, currentCodingpassType; + bitModel = new BitModel(blockWidth, blockHeight, codeblock.subbandType, codeblock.zeroBitPlanes, mb); + currentCodingpassType = 2; + var data = codeblock.data, totalLength = 0, codingpasses = 0; + var j, jj, dataItem; + for (j = 0, jj = data.length; j < jj; j++) { + dataItem = data[j]; + totalLength += dataItem.end - dataItem.start; + codingpasses += dataItem.codingpasses; + } + var encodedData = new Uint8Array(totalLength); + var position = 0; + for (j = 0, jj = data.length; j < jj; j++) { + dataItem = data[j]; + var chunk = dataItem.data.subarray(dataItem.start, dataItem.end); + encodedData.set(chunk, position); + position += chunk.length; + } + var decoder = new ArithmeticDecoder(encodedData, 0, totalLength); + bitModel.setDecoder(decoder); + for (j = 0; j < codingpasses; j++) { + switch (currentCodingpassType) { + case 0: + bitModel.runSignificancePropagationPass(); + break; + case 1: + bitModel.runMagnitudeRefinementPass(); + break; + case 2: + bitModel.runCleanupPass(); + if (segmentationSymbolUsed) { + bitModel.checkSegmentationSymbol(); + } + break; + } + currentCodingpassType = (currentCodingpassType + 1) % 3; + } + var offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width; + var sign = bitModel.coefficentsSign; + var magnitude = bitModel.coefficentsMagnitude; + var bitsDecoded = bitModel.bitsDecoded; + var magnitudeCorrection = reversible ? 0 : 0.5; + var k, n, nb; + position = 0; + var interleave = subband.type !== 'LL'; + for (j = 0; j < blockHeight; j++) { + var row = offset / width | 0; + var levelOffset = 2 * row * (levelWidth - width) + right + bottom; + for (k = 0; k < blockWidth; k++) { + n = magnitude[position]; + if (n !== 0) { + n = (n + magnitudeCorrection) * delta; + if (sign[position] !== 0) { + n = -n; + } + nb = bitsDecoded[position]; + var pos = interleave ? levelOffset + (offset << 1) : offset; + if (reversible && nb >= mb) { + coefficients[pos] = n; + } else { + coefficients[pos] = n * (1 << mb - nb); + } + } + offset++; + position++; + } + offset += width - blockWidth; + } + } + } + function transformTile(context, tile, c) { + var component = tile.components[c]; + var codingStyleParameters = component.codingStyleParameters; + var quantizationParameters = component.quantizationParameters; + var decompositionLevelsCount = codingStyleParameters.decompositionLevelsCount; + var spqcds = quantizationParameters.SPqcds; + var scalarExpounded = quantizationParameters.scalarExpounded; + var guardBits = quantizationParameters.guardBits; + var segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed; + var precision = context.components[c].precision; + var reversible = codingStyleParameters.reversibleTransformation; + var transform = reversible ? new ReversibleTransform() : new IrreversibleTransform(); + var subbandCoefficients = []; + var b = 0; + for (var i = 0; i <= decompositionLevelsCount; i++) { + var resolution = component.resolutions[i]; + var width = resolution.trx1 - resolution.trx0; + var height = resolution.try1 - resolution.try0; + var coefficients = new Float32Array(width * height); + for (var j = 0, jj = resolution.subbands.length; j < jj; j++) { + var mu, epsilon; + if (!scalarExpounded) { + mu = spqcds[0].mu; + epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0); + } else { + mu = spqcds[b].mu; + epsilon = spqcds[b].epsilon; + b++; + } + var subband = resolution.subbands[j]; + var gainLog2 = SubbandsGainLog2[subband.type]; + var delta = reversible ? 1 : Math.pow(2, precision + gainLog2 - epsilon) * (1 + mu / 2048); + var mb = guardBits + epsilon - 1; + copyCoefficients(coefficients, width, height, subband, delta, mb, reversible, segmentationSymbolUsed); + } + subbandCoefficients.push({ + width: width, + height: height, + items: coefficients + }); + } + var result = transform.calculate(subbandCoefficients, component.tcx0, component.tcy0); + return { + left: component.tcx0, + top: component.tcy0, + width: result.width, + height: result.height, + items: result.items + }; + } + function transformComponents(context) { + var siz = context.SIZ; + var components = context.components; + var componentsCount = siz.Csiz; + var resultImages = []; + for (var i = 0, ii = context.tiles.length; i < ii; i++) { + var tile = context.tiles[i]; + var transformedTiles = []; + var c; + for (c = 0; c < componentsCount; c++) { + transformedTiles[c] = transformTile(context, tile, c); + } + var tile0 = transformedTiles[0]; + var out = new Uint8Array(tile0.items.length * componentsCount); + var result = { + left: tile0.left, + top: tile0.top, + width: tile0.width, + height: tile0.height, + items: out + }; + var shift, offset, max, min, maxK; + var pos = 0, j, jj, y0, y1, y2, r, g, b, k, val; + if (tile.codingStyleDefaultParameters.multipleComponentTransform) { + var fourComponents = componentsCount === 4; + var y0items = transformedTiles[0].items; + var y1items = transformedTiles[1].items; + var y2items = transformedTiles[2].items; + var y3items = fourComponents ? transformedTiles[3].items : null; + shift = components[0].precision - 8; + offset = (128 << shift) + 0.5; + max = 255 * (1 << shift); + maxK = max * 0.5; + min = -maxK; + var component0 = tile.components[0]; + var alpha01 = componentsCount - 3; + jj = y0items.length; + if (!component0.codingStyleParameters.reversibleTransformation) { + for (j = 0; j < jj; j++, pos += alpha01) { + y0 = y0items[j] + offset; + y1 = y1items[j]; + y2 = y2items[j]; + r = y0 + 1.402 * y2; + g = y0 - 0.34413 * y1 - 0.71414 * y2; + b = y0 + 1.772 * y1; + out[pos++] = r <= 0 ? 0 : r >= max ? 255 : r >> shift; + out[pos++] = g <= 0 ? 0 : g >= max ? 255 : g >> shift; + out[pos++] = b <= 0 ? 0 : b >= max ? 255 : b >> shift; + } + } else { + for (j = 0; j < jj; j++, pos += alpha01) { + y0 = y0items[j] + offset; + y1 = y1items[j]; + y2 = y2items[j]; + g = y0 - (y2 + y1 >> 2); + r = g + y2; + b = g + y1; + out[pos++] = r <= 0 ? 0 : r >= max ? 255 : r >> shift; + out[pos++] = g <= 0 ? 0 : g >= max ? 255 : g >> shift; + out[pos++] = b <= 0 ? 0 : b >= max ? 255 : b >> shift; + } + } + if (fourComponents) { + for (j = 0, pos = 3; j < jj; j++, pos += 4) { + k = y3items[j]; + out[pos] = k <= min ? 0 : k >= maxK ? 255 : k + offset >> shift; + } + } + } else { + for (c = 0; c < componentsCount; c++) { + var items = transformedTiles[c].items; + shift = components[c].precision - 8; + offset = (128 << shift) + 0.5; + max = 127.5 * (1 << shift); + min = -max; + for (pos = c, j = 0, jj = items.length; j < jj; j++) { + val = items[j]; + out[pos] = val <= min ? 0 : val >= max ? 255 : val + offset >> shift; + pos += componentsCount; + } + } + } + resultImages.push(result); + } + return resultImages; + } + function initializeTile(context, tileIndex) { + var siz = context.SIZ; + var componentsCount = siz.Csiz; + var tile = context.tiles[tileIndex]; + for (var c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + var qcdOrQcc = context.currentTile.QCC[c] !== undefined ? context.currentTile.QCC[c] : context.currentTile.QCD; + component.quantizationParameters = qcdOrQcc; + var codOrCoc = context.currentTile.COC[c] !== undefined ? context.currentTile.COC[c] : context.currentTile.COD; + component.codingStyleParameters = codOrCoc; + } + tile.codingStyleDefaultParameters = context.currentTile.COD; + } + var TagTree = function TagTreeClosure() { + function TagTree(width, height) { + var levelsLength = log2(Math.max(width, height)) + 1; + this.levels = []; + for (var i = 0; i < levelsLength; i++) { + var level = { + width: width, + height: height, + items: [] + }; + this.levels.push(level); + width = Math.ceil(width / 2); + height = Math.ceil(height / 2); + } + } + TagTree.prototype = { + reset: function TagTree_reset(i, j) { + var currentLevel = 0, value = 0, level; + while (currentLevel < this.levels.length) { + level = this.levels[currentLevel]; + var index = i + j * level.width; + if (level.items[index] !== undefined) { + value = level.items[index]; + break; + } + level.index = index; + i >>= 1; + j >>= 1; + currentLevel++; + } + currentLevel--; + level = this.levels[currentLevel]; + level.items[level.index] = value; + this.currentLevel = currentLevel; + delete this.value; + }, + incrementValue: function TagTree_incrementValue() { + var level = this.levels[this.currentLevel]; + level.items[level.index]++; + }, + nextLevel: function TagTree_nextLevel() { + var currentLevel = this.currentLevel; + var level = this.levels[currentLevel]; + var value = level.items[level.index]; + currentLevel--; + if (currentLevel < 0) { + this.value = value; + return false; + } + this.currentLevel = currentLevel; + level = this.levels[currentLevel]; + level.items[level.index] = value; + return true; + } + }; + return TagTree; + }(); + var InclusionTree = function InclusionTreeClosure() { + function InclusionTree(width, height, defaultValue) { + var levelsLength = log2(Math.max(width, height)) + 1; + this.levels = []; + for (var i = 0; i < levelsLength; i++) { + var items = new Uint8Array(width * height); + for (var j = 0, jj = items.length; j < jj; j++) { + items[j] = defaultValue; + } + var level = { + width: width, + height: height, + items: items + }; + this.levels.push(level); + width = Math.ceil(width / 2); + height = Math.ceil(height / 2); + } + } + InclusionTree.prototype = { + reset: function InclusionTree_reset(i, j, stopValue) { + var currentLevel = 0; + while (currentLevel < this.levels.length) { + var level = this.levels[currentLevel]; + var index = i + j * level.width; + level.index = index; + var value = level.items[index]; + if (value === 0xFF) { + break; + } + if (value > stopValue) { + this.currentLevel = currentLevel; + this.propagateValues(); + return false; + } + i >>= 1; + j >>= 1; + currentLevel++; + } + this.currentLevel = currentLevel - 1; + return true; + }, + incrementValue: function InclusionTree_incrementValue(stopValue) { + var level = this.levels[this.currentLevel]; + level.items[level.index] = stopValue + 1; + this.propagateValues(); + }, + propagateValues: function InclusionTree_propagateValues() { + var levelIndex = this.currentLevel; + var level = this.levels[levelIndex]; + var currentValue = level.items[level.index]; + while (--levelIndex >= 0) { + level = this.levels[levelIndex]; + level.items[level.index] = currentValue; + } + }, + nextLevel: function InclusionTree_nextLevel() { + var currentLevel = this.currentLevel; + var level = this.levels[currentLevel]; + var value = level.items[level.index]; + level.items[level.index] = 0xFF; + currentLevel--; + if (currentLevel < 0) { + return false; + } + this.currentLevel = currentLevel; + level = this.levels[currentLevel]; + level.items[level.index] = value; + return true; + } + }; + return InclusionTree; + }(); + var BitModel = function BitModelClosure() { + var UNIFORM_CONTEXT = 17; + var RUNLENGTH_CONTEXT = 18; + var LLAndLHContextsLabel = new Uint8Array([ + 0, + 5, + 8, + 0, + 3, + 7, + 8, + 0, + 4, + 7, + 8, + 0, + 0, + 0, + 0, + 0, + 1, + 6, + 8, + 0, + 3, + 7, + 8, + 0, + 4, + 7, + 8, + 0, + 0, + 0, + 0, + 0, + 2, + 6, + 8, + 0, + 3, + 7, + 8, + 0, + 4, + 7, + 8, + 0, + 0, + 0, + 0, + 0, + 2, + 6, + 8, + 0, + 3, + 7, + 8, + 0, + 4, + 7, + 8, + 0, + 0, + 0, + 0, + 0, + 2, + 6, + 8, + 0, + 3, + 7, + 8, + 0, + 4, + 7, + 8 + ]); + var HLContextLabel = new Uint8Array([ + 0, + 3, + 4, + 0, + 5, + 7, + 7, + 0, + 8, + 8, + 8, + 0, + 0, + 0, + 0, + 0, + 1, + 3, + 4, + 0, + 6, + 7, + 7, + 0, + 8, + 8, + 8, + 0, + 0, + 0, + 0, + 0, + 2, + 3, + 4, + 0, + 6, + 7, + 7, + 0, + 8, + 8, + 8, + 0, + 0, + 0, + 0, + 0, + 2, + 3, + 4, + 0, + 6, + 7, + 7, + 0, + 8, + 8, + 8, + 0, + 0, + 0, + 0, + 0, + 2, + 3, + 4, + 0, + 6, + 7, + 7, + 0, + 8, + 8, + 8 + ]); + var HHContextLabel = new Uint8Array([ + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 3, + 4, + 5, + 0, + 4, + 5, + 5, + 0, + 5, + 5, + 5, + 0, + 0, + 0, + 0, + 0, + 6, + 7, + 7, + 0, + 7, + 7, + 7, + 0, + 7, + 7, + 7, + 0, + 0, + 0, + 0, + 0, + 8, + 8, + 8, + 0, + 8, + 8, + 8, + 0, + 8, + 8, + 8, + 0, + 0, + 0, + 0, + 0, + 8, + 8, + 8, + 0, + 8, + 8, + 8, + 0, + 8, + 8, + 8 + ]); + function BitModel(width, height, subband, zeroBitPlanes, mb) { + this.width = width; + this.height = height; + this.contextLabelTable = subband === 'HH' ? HHContextLabel : subband === 'HL' ? HLContextLabel : LLAndLHContextsLabel; + var coefficientCount = width * height; + this.neighborsSignificance = new Uint8Array(coefficientCount); + this.coefficentsSign = new Uint8Array(coefficientCount); + this.coefficentsMagnitude = mb > 14 ? new Uint32Array(coefficientCount) : mb > 6 ? new Uint16Array(coefficientCount) : new Uint8Array(coefficientCount); + this.processingFlags = new Uint8Array(coefficientCount); + var bitsDecoded = new Uint8Array(coefficientCount); + if (zeroBitPlanes !== 0) { + for (var i = 0; i < coefficientCount; i++) { + bitsDecoded[i] = zeroBitPlanes; + } + } + this.bitsDecoded = bitsDecoded; + this.reset(); + } + BitModel.prototype = { + setDecoder: function BitModel_setDecoder(decoder) { + this.decoder = decoder; + }, + reset: function BitModel_reset() { + this.contexts = new Int8Array(19); + this.contexts[0] = 4 << 1 | 0; + this.contexts[UNIFORM_CONTEXT] = 46 << 1 | 0; + this.contexts[RUNLENGTH_CONTEXT] = 3 << 1 | 0; + }, + setNeighborsSignificance: function BitModel_setNeighborsSignificance(row, column, index) { + var neighborsSignificance = this.neighborsSignificance; + var width = this.width, height = this.height; + var left = column > 0; + var right = column + 1 < width; + var i; + if (row > 0) { + i = index - width; + if (left) { + neighborsSignificance[i - 1] += 0x10; + } + if (right) { + neighborsSignificance[i + 1] += 0x10; + } + neighborsSignificance[i] += 0x04; + } + if (row + 1 < height) { + i = index + width; + if (left) { + neighborsSignificance[i - 1] += 0x10; + } + if (right) { + neighborsSignificance[i + 1] += 0x10; + } + neighborsSignificance[i] += 0x04; + } + if (left) { + neighborsSignificance[index - 1] += 0x01; + } + if (right) { + neighborsSignificance[index + 1] += 0x01; + } + neighborsSignificance[index] |= 0x80; + }, + runSignificancePropagationPass: function BitModel_runSignificancePropagationPass() { + var decoder = this.decoder; + var width = this.width, height = this.height; + var coefficentsMagnitude = this.coefficentsMagnitude; + var coefficentsSign = this.coefficentsSign; + var neighborsSignificance = this.neighborsSignificance; + var processingFlags = this.processingFlags; + var contexts = this.contexts; + var labels = this.contextLabelTable; + var bitsDecoded = this.bitsDecoded; + var processedInverseMask = ~1; + var processedMask = 1; + var firstMagnitudeBitMask = 2; + for (var i0 = 0; i0 < height; i0 += 4) { + for (var j = 0; j < width; j++) { + var index = i0 * width + j; + for (var i1 = 0; i1 < 4; i1++, index += width) { + var i = i0 + i1; + if (i >= height) { + break; + } + processingFlags[index] &= processedInverseMask; + if (coefficentsMagnitude[index] || !neighborsSignificance[index]) { + continue; + } + var contextLabel = labels[neighborsSignificance[index]]; + var decision = decoder.readBit(contexts, contextLabel); + if (decision) { + var sign = this.decodeSignBit(i, j, index); + coefficentsSign[index] = sign; + coefficentsMagnitude[index] = 1; + this.setNeighborsSignificance(i, j, index); + processingFlags[index] |= firstMagnitudeBitMask; + } + bitsDecoded[index]++; + processingFlags[index] |= processedMask; + } + } + } + }, + decodeSignBit: function BitModel_decodeSignBit(row, column, index) { + var width = this.width, height = this.height; + var coefficentsMagnitude = this.coefficentsMagnitude; + var coefficentsSign = this.coefficentsSign; + var contribution, sign0, sign1, significance1; + var contextLabel, decoded; + significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0; + if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) { + sign1 = coefficentsSign[index + 1]; + if (significance1) { + sign0 = coefficentsSign[index - 1]; + contribution = 1 - sign1 - sign0; + } else { + contribution = 1 - sign1 - sign1; + } + } else if (significance1) { + sign0 = coefficentsSign[index - 1]; + contribution = 1 - sign0 - sign0; + } else { + contribution = 0; + } + var horizontalContribution = 3 * contribution; + significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0; + if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) { + sign1 = coefficentsSign[index + width]; + if (significance1) { + sign0 = coefficentsSign[index - width]; + contribution = 1 - sign1 - sign0 + horizontalContribution; + } else { + contribution = 1 - sign1 - sign1 + horizontalContribution; + } + } else if (significance1) { + sign0 = coefficentsSign[index - width]; + contribution = 1 - sign0 - sign0 + horizontalContribution; + } else { + contribution = horizontalContribution; + } + if (contribution >= 0) { + contextLabel = 9 + contribution; + decoded = this.decoder.readBit(this.contexts, contextLabel); + } else { + contextLabel = 9 - contribution; + decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1; + } + return decoded; + }, + runMagnitudeRefinementPass: function BitModel_runMagnitudeRefinementPass() { + var decoder = this.decoder; + var width = this.width, height = this.height; + var coefficentsMagnitude = this.coefficentsMagnitude; + var neighborsSignificance = this.neighborsSignificance; + var contexts = this.contexts; + var bitsDecoded = this.bitsDecoded; + var processingFlags = this.processingFlags; + var processedMask = 1; + var firstMagnitudeBitMask = 2; + var length = width * height; + var width4 = width * 4; + for (var index0 = 0, indexNext; index0 < length; index0 = indexNext) { + indexNext = Math.min(length, index0 + width4); + for (var j = 0; j < width; j++) { + for (var index = index0 + j; index < indexNext; index += width) { + if (!coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) { + continue; + } + var contextLabel = 16; + if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) { + processingFlags[index] ^= firstMagnitudeBitMask; + var significance = neighborsSignificance[index] & 127; + contextLabel = significance === 0 ? 15 : 14; + } + var bit = decoder.readBit(contexts, contextLabel); + coefficentsMagnitude[index] = coefficentsMagnitude[index] << 1 | bit; + bitsDecoded[index]++; + processingFlags[index] |= processedMask; + } + } + } + }, + runCleanupPass: function BitModel_runCleanupPass() { + var decoder = this.decoder; + var width = this.width, height = this.height; + var neighborsSignificance = this.neighborsSignificance; + var coefficentsMagnitude = this.coefficentsMagnitude; + var coefficentsSign = this.coefficentsSign; + var contexts = this.contexts; + var labels = this.contextLabelTable; + var bitsDecoded = this.bitsDecoded; + var processingFlags = this.processingFlags; + var processedMask = 1; + var firstMagnitudeBitMask = 2; + var oneRowDown = width; + var twoRowsDown = width * 2; + var threeRowsDown = width * 3; + var iNext; + for (var i0 = 0; i0 < height; i0 = iNext) { + iNext = Math.min(i0 + 4, height); + var indexBase = i0 * width; + var checkAllEmpty = i0 + 3 < height; + for (var j = 0; j < width; j++) { + var index0 = indexBase + j; + var allEmpty = checkAllEmpty && processingFlags[index0] === 0 && processingFlags[index0 + oneRowDown] === 0 && processingFlags[index0 + twoRowsDown] === 0 && processingFlags[index0 + threeRowsDown] === 0 && neighborsSignificance[index0] === 0 && neighborsSignificance[index0 + oneRowDown] === 0 && neighborsSignificance[index0 + twoRowsDown] === 0 && neighborsSignificance[index0 + threeRowsDown] === 0; + var i1 = 0, index = index0; + var i = i0, sign; + if (allEmpty) { + var hasSignificantCoefficent = decoder.readBit(contexts, RUNLENGTH_CONTEXT); + if (!hasSignificantCoefficent) { + bitsDecoded[index0]++; + bitsDecoded[index0 + oneRowDown]++; + bitsDecoded[index0 + twoRowsDown]++; + bitsDecoded[index0 + threeRowsDown]++; + continue; + } + i1 = decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT); + if (i1 !== 0) { + i = i0 + i1; + index += i1 * width; + } + sign = this.decodeSignBit(i, j, index); + coefficentsSign[index] = sign; + coefficentsMagnitude[index] = 1; + this.setNeighborsSignificance(i, j, index); + processingFlags[index] |= firstMagnitudeBitMask; + index = index0; + for (var i2 = i0; i2 <= i; i2++, index += width) { + bitsDecoded[index]++; + } + i1++; + } + for (i = i0 + i1; i < iNext; i++, index += width) { + if (coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) { + continue; + } + var contextLabel = labels[neighborsSignificance[index]]; + var decision = decoder.readBit(contexts, contextLabel); + if (decision === 1) { + sign = this.decodeSignBit(i, j, index); + coefficentsSign[index] = sign; + coefficentsMagnitude[index] = 1; + this.setNeighborsSignificance(i, j, index); + processingFlags[index] |= firstMagnitudeBitMask; + } + bitsDecoded[index]++; + } + } + } + }, + checkSegmentationSymbol: function BitModel_checkSegmentationSymbol() { + var decoder = this.decoder; + var contexts = this.contexts; + var symbol = decoder.readBit(contexts, UNIFORM_CONTEXT) << 3 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 2 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT); + if (symbol !== 0xA) { + error('JPX Error: Invalid segmentation symbol'); + } + } + }; + return BitModel; + }(); + var Transform = function TransformClosure() { + function Transform() { + } + Transform.prototype.calculate = function transformCalculate(subbands, u0, v0) { + var ll = subbands[0]; + for (var i = 1, ii = subbands.length; i < ii; i++) { + ll = this.iterate(ll, subbands[i], u0, v0); + } + return ll; + }; + Transform.prototype.extend = function extend(buffer, offset, size) { + var i1 = offset - 1, j1 = offset + 1; + var i2 = offset + size - 2, j2 = offset + size; + buffer[i1--] = buffer[j1++]; + buffer[j2++] = buffer[i2--]; + buffer[i1--] = buffer[j1++]; + buffer[j2++] = buffer[i2--]; + buffer[i1--] = buffer[j1++]; + buffer[j2++] = buffer[i2--]; + buffer[i1] = buffer[j1]; + buffer[j2] = buffer[i2]; + }; + Transform.prototype.iterate = function Transform_iterate(ll, hl_lh_hh, u0, v0) { + var llWidth = ll.width, llHeight = ll.height, llItems = ll.items; + var width = hl_lh_hh.width; + var height = hl_lh_hh.height; + var items = hl_lh_hh.items; + var i, j, k, l, u, v; + for (k = 0, i = 0; i < llHeight; i++) { + l = i * 2 * width; + for (j = 0; j < llWidth; j++, k++, l += 2) { + items[l] = llItems[k]; + } + } + llItems = ll.items = null; + var bufferPadding = 4; + var rowBuffer = new Float32Array(width + 2 * bufferPadding); + if (width === 1) { + if ((u0 & 1) !== 0) { + for (v = 0, k = 0; v < height; v++, k += width) { + items[k] *= 0.5; + } + } + } else { + for (v = 0, k = 0; v < height; v++, k += width) { + rowBuffer.set(items.subarray(k, k + width), bufferPadding); + this.extend(rowBuffer, bufferPadding, width); + this.filter(rowBuffer, bufferPadding, width); + items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k); + } + } + var numBuffers = 16; + var colBuffers = []; + for (i = 0; i < numBuffers; i++) { + colBuffers.push(new Float32Array(height + 2 * bufferPadding)); + } + var b, currentBuffer = 0; + ll = bufferPadding + height; + if (height === 1) { + if ((v0 & 1) !== 0) { + for (u = 0; u < width; u++) { + items[u] *= 0.5; + } + } + } else { + for (u = 0; u < width; u++) { + if (currentBuffer === 0) { + numBuffers = Math.min(width - u, numBuffers); + for (k = u, l = bufferPadding; l < ll; k += width, l++) { + for (b = 0; b < numBuffers; b++) { + colBuffers[b][l] = items[k + b]; + } + } + currentBuffer = numBuffers; + } + currentBuffer--; + var buffer = colBuffers[currentBuffer]; + this.extend(buffer, bufferPadding, height); + this.filter(buffer, bufferPadding, height); + if (currentBuffer === 0) { + k = u - numBuffers + 1; + for (l = bufferPadding; l < ll; k += width, l++) { + for (b = 0; b < numBuffers; b++) { + items[k + b] = colBuffers[b][l]; + } + } + } + } + } + return { + width: width, + height: height, + items: items + }; + }; + return Transform; + }(); + var IrreversibleTransform = function IrreversibleTransformClosure() { + function IrreversibleTransform() { + Transform.call(this); + } + IrreversibleTransform.prototype = Object.create(Transform.prototype); + IrreversibleTransform.prototype.filter = function irreversibleTransformFilter(x, offset, length) { + var len = length >> 1; + offset = offset | 0; + var j, n, current, next; + var alpha = -1.586134342059924; + var beta = -0.052980118572961; + var gamma = 0.882911075530934; + var delta = 0.443506852043971; + var K = 1.230174104914001; + var K_ = 1 / K; + j = offset - 3; + for (n = len + 4; n--; j += 2) { + x[j] *= K_; + } + j = offset - 2; + current = delta * x[j - 1]; + for (n = len + 3; n--; j += 2) { + next = delta * x[j + 1]; + x[j] = K * x[j] - current - next; + if (n--) { + j += 2; + current = delta * x[j + 1]; + x[j] = K * x[j] - current - next; + } else { + break; + } + } + j = offset - 1; + current = gamma * x[j - 1]; + for (n = len + 2; n--; j += 2) { + next = gamma * x[j + 1]; + x[j] -= current + next; + if (n--) { + j += 2; + current = gamma * x[j + 1]; + x[j] -= current + next; + } else { + break; + } + } + j = offset; + current = beta * x[j - 1]; + for (n = len + 1; n--; j += 2) { + next = beta * x[j + 1]; + x[j] -= current + next; + if (n--) { + j += 2; + current = beta * x[j + 1]; + x[j] -= current + next; + } else { + break; + } + } + if (len !== 0) { + j = offset + 1; + current = alpha * x[j - 1]; + for (n = len; n--; j += 2) { + next = alpha * x[j + 1]; + x[j] -= current + next; + if (n--) { + j += 2; + current = alpha * x[j + 1]; + x[j] -= current + next; + } else { + break; + } + } + } + }; + return IrreversibleTransform; + }(); + var ReversibleTransform = function ReversibleTransformClosure() { + function ReversibleTransform() { + Transform.call(this); + } + ReversibleTransform.prototype = Object.create(Transform.prototype); + ReversibleTransform.prototype.filter = function reversibleTransformFilter(x, offset, length) { + var len = length >> 1; + offset = offset | 0; + var j, n; + for (j = offset, n = len + 1; n--; j += 2) { + x[j] -= x[j - 1] + x[j + 1] + 2 >> 2; + } + for (j = offset + 1, n = len; n--; j += 2) { + x[j] += x[j - 1] + x[j + 1] >> 1; + } + }; + return ReversibleTransform; + }(); + return JpxImage; +}(); +exports.JpxImage = JpxImage; + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var corePrimitives = __w_pdfjs_require__(1); +var coreCrypto = __w_pdfjs_require__(13); +var coreParser = __w_pdfjs_require__(5); +var coreChunkedStream = __w_pdfjs_require__(12); +var coreColorSpace = __w_pdfjs_require__(3); +var InvalidPDFException = sharedUtil.InvalidPDFException; +var MissingDataException = sharedUtil.MissingDataException; +var XRefParseException = sharedUtil.XRefParseException; +var assert = sharedUtil.assert; +var bytesToString = sharedUtil.bytesToString; +var createPromiseCapability = sharedUtil.createPromiseCapability; +var error = sharedUtil.error; +var info = sharedUtil.info; +var isArray = sharedUtil.isArray; +var isBool = sharedUtil.isBool; +var isInt = sharedUtil.isInt; +var isString = sharedUtil.isString; +var shadow = sharedUtil.shadow; +var stringToPDFString = sharedUtil.stringToPDFString; +var stringToUTF8String = sharedUtil.stringToUTF8String; +var warn = sharedUtil.warn; +var createValidAbsoluteUrl = sharedUtil.createValidAbsoluteUrl; +var Util = sharedUtil.Util; +var Ref = corePrimitives.Ref; +var RefSet = corePrimitives.RefSet; +var RefSetCache = corePrimitives.RefSetCache; +var isName = corePrimitives.isName; +var isCmd = corePrimitives.isCmd; +var isDict = corePrimitives.isDict; +var isRef = corePrimitives.isRef; +var isRefsEqual = corePrimitives.isRefsEqual; +var isStream = corePrimitives.isStream; +var CipherTransformFactory = coreCrypto.CipherTransformFactory; +var Lexer = coreParser.Lexer; +var Parser = coreParser.Parser; +var ChunkedStream = coreChunkedStream.ChunkedStream; +var ColorSpace = coreColorSpace.ColorSpace; +var Catalog = function CatalogClosure() { + function Catalog(pdfManager, xref, pageFactory) { + this.pdfManager = pdfManager; + this.xref = xref; + this.catDict = xref.getCatalogObj(); + this.fontCache = new RefSetCache(); + this.builtInCMapCache = Object.create(null); + assert(isDict(this.catDict), 'catalog object is not a dictionary'); + this.pageFactory = pageFactory; + this.pagePromises = []; + } + Catalog.prototype = { + get metadata() { + var streamRef = this.catDict.getRaw('Metadata'); + if (!isRef(streamRef)) { + return shadow(this, 'metadata', null); + } + var encryptMetadata = !this.xref.encrypt ? false : this.xref.encrypt.encryptMetadata; + var stream = this.xref.fetch(streamRef, !encryptMetadata); + var metadata; + if (stream && isDict(stream.dict)) { + var type = stream.dict.get('Type'); + var subtype = stream.dict.get('Subtype'); + if (isName(type, 'Metadata') && isName(subtype, 'XML')) { + try { + metadata = stringToUTF8String(bytesToString(stream.getBytes())); + } catch (e) { + info('Skipping invalid metadata.'); + } + } + } + return shadow(this, 'metadata', metadata); + }, + get toplevelPagesDict() { + var pagesObj = this.catDict.get('Pages'); + assert(isDict(pagesObj), 'invalid top-level pages dictionary'); + return shadow(this, 'toplevelPagesDict', pagesObj); + }, + get documentOutline() { + var obj = null; + try { + obj = this.readDocumentOutline(); + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn('Unable to read document outline'); + } + return shadow(this, 'documentOutline', obj); + }, + readDocumentOutline: function Catalog_readDocumentOutline() { + var obj = this.catDict.get('Outlines'); + if (!isDict(obj)) { + return null; + } + obj = obj.getRaw('First'); + if (!isRef(obj)) { + return null; + } + var root = { items: [] }; + var queue = [{ + obj: obj, + parent: root + }]; + var processed = new RefSet(); + processed.put(obj); + var xref = this.xref, blackColor = new Uint8Array(3); + while (queue.length > 0) { + var i = queue.shift(); + var outlineDict = xref.fetchIfRef(i.obj); + if (outlineDict === null) { + continue; + } + assert(outlineDict.has('Title'), 'Invalid outline item'); + var data = { + url: null, + dest: null + }; + Catalog.parseDestDictionary({ + destDict: outlineDict, + resultObj: data, + docBaseUrl: this.pdfManager.docBaseUrl + }); + var title = outlineDict.get('Title'); + var flags = outlineDict.get('F') || 0; + var color = outlineDict.getArray('C'), rgbColor = blackColor; + if (isArray(color) && color.length === 3 && (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)) { + rgbColor = ColorSpace.singletons.rgb.getRgb(color, 0); + } + var outlineItem = { + dest: data.dest, + url: data.url, + unsafeUrl: data.unsafeUrl, + newWindow: data.newWindow, + title: stringToPDFString(title), + color: rgbColor, + count: outlineDict.get('Count'), + bold: !!(flags & 2), + italic: !!(flags & 1), + items: [] + }; + i.parent.items.push(outlineItem); + obj = outlineDict.getRaw('First'); + if (isRef(obj) && !processed.has(obj)) { + queue.push({ + obj: obj, + parent: outlineItem + }); + processed.put(obj); + } + obj = outlineDict.getRaw('Next'); + if (isRef(obj) && !processed.has(obj)) { + queue.push({ + obj: obj, + parent: i.parent + }); + processed.put(obj); + } + } + return root.items.length > 0 ? root.items : null; + }, + get numPages() { + var obj = this.toplevelPagesDict.get('Count'); + assert(isInt(obj), 'page count in top level pages object is not an integer'); + return shadow(this, 'num', obj); + }, + get destinations() { + function fetchDestination(dest) { + return isDict(dest) ? dest.get('D') : dest; + } + var xref = this.xref; + var dests = {}, nameTreeRef, nameDictionaryRef; + var obj = this.catDict.get('Names'); + if (obj && obj.has('Dests')) { + nameTreeRef = obj.getRaw('Dests'); + } else if (this.catDict.has('Dests')) { + nameDictionaryRef = this.catDict.get('Dests'); + } + if (nameDictionaryRef) { + obj = nameDictionaryRef; + obj.forEach(function catalogForEach(key, value) { + if (!value) { + return; + } + dests[key] = fetchDestination(value); + }); + } + if (nameTreeRef) { + var nameTree = new NameTree(nameTreeRef, xref); + var names = nameTree.getAll(); + for (var name in names) { + dests[name] = fetchDestination(names[name]); + } + } + return shadow(this, 'destinations', dests); + }, + getDestination: function Catalog_getDestination(destinationId) { + function fetchDestination(dest) { + return isDict(dest) ? dest.get('D') : dest; + } + var xref = this.xref; + var dest = null, nameTreeRef, nameDictionaryRef; + var obj = this.catDict.get('Names'); + if (obj && obj.has('Dests')) { + nameTreeRef = obj.getRaw('Dests'); + } else if (this.catDict.has('Dests')) { + nameDictionaryRef = this.catDict.get('Dests'); + } + if (nameDictionaryRef) { + var value = nameDictionaryRef.get(destinationId); + if (value) { + dest = fetchDestination(value); + } + } + if (nameTreeRef) { + var nameTree = new NameTree(nameTreeRef, xref); + dest = fetchDestination(nameTree.get(destinationId)); + } + return dest; + }, + get pageLabels() { + var obj = null; + try { + obj = this.readPageLabels(); + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn('Unable to read page labels.'); + } + return shadow(this, 'pageLabels', obj); + }, + readPageLabels: function Catalog_readPageLabels() { + var obj = this.catDict.getRaw('PageLabels'); + if (!obj) { + return null; + } + var pageLabels = new Array(this.numPages); + var style = null; + var prefix = ''; + var numberTree = new NumberTree(obj, this.xref); + var nums = numberTree.getAll(); + var currentLabel = '', currentIndex = 1; + for (var i = 0, ii = this.numPages; i < ii; i++) { + if (i in nums) { + var labelDict = nums[i]; + assert(isDict(labelDict), 'The PageLabel is not a dictionary.'); + var type = labelDict.get('Type'); + assert(!type || isName(type, 'PageLabel'), 'Invalid type in PageLabel dictionary.'); + var s = labelDict.get('S'); + assert(!s || isName(s), 'Invalid style in PageLabel dictionary.'); + style = s ? s.name : null; + var p = labelDict.get('P'); + assert(!p || isString(p), 'Invalid prefix in PageLabel dictionary.'); + prefix = p ? stringToPDFString(p) : ''; + var st = labelDict.get('St'); + assert(!st || isInt(st) && st >= 1, 'Invalid start in PageLabel dictionary.'); + currentIndex = st || 1; + } + switch (style) { + case 'D': + currentLabel = currentIndex; + break; + case 'R': + case 'r': + currentLabel = Util.toRoman(currentIndex, style === 'r'); + break; + case 'A': + case 'a': + var LIMIT = 26; + var A_UPPER_CASE = 0x41, A_LOWER_CASE = 0x61; + var baseCharCode = style === 'a' ? A_LOWER_CASE : A_UPPER_CASE; + var letterIndex = currentIndex - 1; + var character = String.fromCharCode(baseCharCode + letterIndex % LIMIT); + var charBuf = []; + for (var j = 0, jj = letterIndex / LIMIT | 0; j <= jj; j++) { + charBuf.push(character); + } + currentLabel = charBuf.join(''); + break; + default: + assert(!style, 'Invalid style "' + style + '" in PageLabel dictionary.'); + } + pageLabels[i] = prefix + currentLabel; + currentLabel = ''; + currentIndex++; + } + return pageLabels; + }, + get attachments() { + var xref = this.xref; + var attachments = null, nameTreeRef; + var obj = this.catDict.get('Names'); + if (obj) { + nameTreeRef = obj.getRaw('EmbeddedFiles'); + } + if (nameTreeRef) { + var nameTree = new NameTree(nameTreeRef, xref); + var names = nameTree.getAll(); + for (var name in names) { + var fs = new FileSpec(names[name], xref); + if (!attachments) { + attachments = Object.create(null); + } + attachments[stringToPDFString(name)] = fs.serializable; + } + } + return shadow(this, 'attachments', attachments); + }, + get javaScript() { + var xref = this.xref; + var obj = this.catDict.get('Names'); + var javaScript = []; + function appendIfJavaScriptDict(jsDict) { + var type = jsDict.get('S'); + if (!isName(type, 'JavaScript')) { + return; + } + var js = jsDict.get('JS'); + if (isStream(js)) { + js = bytesToString(js.getBytes()); + } else if (!isString(js)) { + return; + } + javaScript.push(stringToPDFString(js)); + } + if (obj && obj.has('JavaScript')) { + var nameTree = new NameTree(obj.getRaw('JavaScript'), xref); + var names = nameTree.getAll(); + for (var name in names) { + var jsDict = names[name]; + if (isDict(jsDict)) { + appendIfJavaScriptDict(jsDict); + } + } + } + var openactionDict = this.catDict.get('OpenAction'); + if (isDict(openactionDict, 'Action')) { + var actionType = openactionDict.get('S'); + if (isName(actionType, 'Named')) { + var action = openactionDict.get('N'); + if (isName(action, 'Print')) { + javaScript.push('print({});'); + } + } else { + appendIfJavaScriptDict(openactionDict); + } + } + return shadow(this, 'javaScript', javaScript); + }, + cleanup: function Catalog_cleanup() { + var promises = []; + this.fontCache.forEach(function (promise) { + promises.push(promise); + }); + return Promise.all(promises).then(function (translatedFonts) { + for (var i = 0, ii = translatedFonts.length; i < ii; i++) { + var font = translatedFonts[i].dict; + delete font.translated; + } + this.fontCache.clear(); + this.builtInCMapCache = Object.create(null); + }.bind(this)); + }, + getPage: function Catalog_getPage(pageIndex) { + if (!(pageIndex in this.pagePromises)) { + this.pagePromises[pageIndex] = this.getPageDict(pageIndex).then(function (a) { + var dict = a[0]; + var ref = a[1]; + return this.pageFactory.createPage(pageIndex, dict, ref, this.fontCache, this.builtInCMapCache); + }.bind(this)); + } + return this.pagePromises[pageIndex]; + }, + getPageDict: function Catalog_getPageDict(pageIndex) { + var capability = createPromiseCapability(); + var nodesToVisit = [this.catDict.getRaw('Pages')]; + var currentPageIndex = 0; + var xref = this.xref; + function next() { + while (nodesToVisit.length) { + var currentNode = nodesToVisit.pop(); + if (isRef(currentNode)) { + xref.fetchAsync(currentNode).then(function (obj) { + if (isDict(obj, 'Page') || isDict(obj) && !obj.has('Kids')) { + if (pageIndex === currentPageIndex) { + capability.resolve([ + obj, + currentNode + ]); + } else { + currentPageIndex++; + next(); + } + return; + } + nodesToVisit.push(obj); + next(); + }, capability.reject); + return; + } + assert(isDict(currentNode), 'page dictionary kid reference points to wrong type of object'); + var count = currentNode.get('Count'); + if (currentPageIndex + count <= pageIndex) { + currentPageIndex += count; + continue; + } + var kids = currentNode.get('Kids'); + assert(isArray(kids), 'page dictionary kids object is not an array'); + for (var last = kids.length - 1; last >= 0; last--) { + nodesToVisit.push(kids[last]); + } + } + capability.reject('Page index ' + pageIndex + ' not found.'); + } + next(); + return capability.promise; + }, + getPageIndex: function Catalog_getPageIndex(pageRef) { + var xref = this.xref; + function pagesBeforeRef(kidRef) { + var total = 0; + var parentRef; + return xref.fetchAsync(kidRef).then(function (node) { + if (isRefsEqual(kidRef, pageRef) && !isDict(node, 'Page') && !(isDict(node) && !node.has('Type') && node.has('Contents'))) { + throw new Error('The reference does not point to a /Page Dict.'); + } + if (!node) { + return null; + } + assert(isDict(node), 'node must be a Dict.'); + parentRef = node.getRaw('Parent'); + return node.getAsync('Parent'); + }).then(function (parent) { + if (!parent) { + return null; + } + assert(isDict(parent), 'parent must be a Dict.'); + return parent.getAsync('Kids'); + }).then(function (kids) { + if (!kids) { + return null; + } + var kidPromises = []; + var found = false; + for (var i = 0; i < kids.length; i++) { + var kid = kids[i]; + assert(isRef(kid), 'kid must be a Ref.'); + if (kid.num === kidRef.num) { + found = true; + break; + } + kidPromises.push(xref.fetchAsync(kid).then(function (kid) { + if (kid.has('Count')) { + var count = kid.get('Count'); + total += count; + } else { + total++; + } + })); + } + if (!found) { + error('kid ref not found in parents kids'); + } + return Promise.all(kidPromises).then(function () { + return [ + total, + parentRef + ]; + }); + }); + } + var total = 0; + function next(ref) { + return pagesBeforeRef(ref).then(function (args) { + if (!args) { + return total; + } + var count = args[0]; + var parentRef = args[1]; + total += count; + return next(parentRef); + }); + } + return next(pageRef); + } + }; + Catalog.parseDestDictionary = function Catalog_parseDestDictionary(params) { + function addDefaultProtocolToUrl(url) { + if (url.indexOf('www.') === 0) { + return 'http://' + url; + } + return url; + } + function tryConvertUrlEncoding(url) { + try { + return stringToUTF8String(url); + } catch (e) { + return url; + } + } + var destDict = params.destDict; + if (!isDict(destDict)) { + warn('Catalog_parseDestDictionary: "destDict" must be a dictionary.'); + return; + } + var resultObj = params.resultObj; + if (typeof resultObj !== 'object') { + warn('Catalog_parseDestDictionary: "resultObj" must be an object.'); + return; + } + var docBaseUrl = params.docBaseUrl || null; + var action = destDict.get('A'), url, dest; + if (isDict(action)) { + var linkType = action.get('S').name; + switch (linkType) { + case 'URI': + url = action.get('URI'); + if (isName(url)) { + url = '/' + url.name; + } else if (isString(url)) { + url = addDefaultProtocolToUrl(url); + } + break; + case 'GoTo': + dest = action.get('D'); + break; + case 'Launch': + case 'GoToR': + var urlDict = action.get('F'); + if (isDict(urlDict)) { + url = urlDict.get('F') || null; + } else if (isString(urlDict)) { + url = urlDict; + } + var remoteDest = action.get('D'); + if (remoteDest) { + if (isName(remoteDest)) { + remoteDest = remoteDest.name; + } + if (isString(url)) { + var baseUrl = url.split('#')[0]; + if (isString(remoteDest)) { + url = baseUrl + '#' + (/^\d+$/.test(remoteDest) ? 'nameddest=' : '') + remoteDest; + } else if (isArray(remoteDest)) { + url = baseUrl + '#' + JSON.stringify(remoteDest); + } + } + } + var newWindow = action.get('NewWindow'); + if (isBool(newWindow)) { + resultObj.newWindow = newWindow; + } + break; + case 'Named': + var namedAction = action.get('N'); + if (isName(namedAction)) { + resultObj.action = namedAction.name; + } + break; + case 'JavaScript': + var jsAction = action.get('JS'), js; + if (isStream(jsAction)) { + js = bytesToString(jsAction.getBytes()); + } else if (isString(jsAction)) { + js = jsAction; + } + if (js) { + var URL_OPEN_METHODS = [ + 'app.launchURL', + 'window.open' + ]; + var regex = new RegExp('^\\s*(' + URL_OPEN_METHODS.join('|').split('.').join('\\.') + ')\\((?:\'|\")([^\'\"]*)(?:\'|\")(?:,\\s*(\\w+)\\)|\\))', 'i'); + var jsUrl = regex.exec(stringToPDFString(js)); + if (jsUrl && jsUrl[2]) { + url = jsUrl[2]; + if (jsUrl[3] === 'true' && jsUrl[1] === 'app.launchURL') { + resultObj.newWindow = true; + } + break; + } + } + default: + warn('Catalog_parseDestDictionary: Unrecognized link type "' + linkType + '".'); + break; + } + } else if (destDict.has('Dest')) { + dest = destDict.get('Dest'); + } + if (isString(url)) { + url = tryConvertUrlEncoding(url); + var absoluteUrl = createValidAbsoluteUrl(url, docBaseUrl); + if (absoluteUrl) { + resultObj.url = absoluteUrl.href; + } + resultObj.unsafeUrl = url; + } + if (dest) { + if (isName(dest)) { + dest = dest.name; + } + if (isString(dest) || isArray(dest)) { + resultObj.dest = dest; + } + } + }; + return Catalog; +}(); +var XRef = function XRefClosure() { + function XRef(stream, pdfManager) { + this.stream = stream; + this.pdfManager = pdfManager; + this.entries = []; + this.xrefstms = Object.create(null); + this.cache = []; + this.stats = { + streamTypes: [], + fontTypes: [] + }; + } + XRef.prototype = { + setStartXRef: function XRef_setStartXRef(startXRef) { + this.startXRefQueue = [startXRef]; + }, + parse: function XRef_parse(recoveryMode) { + var trailerDict; + if (!recoveryMode) { + trailerDict = this.readXRef(); + } else { + warn('Indexing all PDF objects'); + trailerDict = this.indexObjects(); + } + trailerDict.assignXref(this); + this.trailer = trailerDict; + var encrypt = trailerDict.get('Encrypt'); + if (isDict(encrypt)) { + var ids = trailerDict.get('ID'); + var fileId = ids && ids.length ? ids[0] : ''; + encrypt.suppressEncryption = true; + this.encrypt = new CipherTransformFactory(encrypt, fileId, this.pdfManager.password); + } + if (!(this.root = trailerDict.get('Root'))) { + error('Invalid root reference'); + } + }, + processXRefTable: function XRef_processXRefTable(parser) { + if (!('tableState' in this)) { + this.tableState = { + entryNum: 0, + streamPos: parser.lexer.stream.pos, + parserBuf1: parser.buf1, + parserBuf2: parser.buf2 + }; + } + var obj = this.readXRefTable(parser); + if (!isCmd(obj, 'trailer')) { + error('Invalid XRef table: could not find trailer dictionary'); + } + var dict = parser.getObj(); + if (!isDict(dict) && dict.dict) { + dict = dict.dict; + } + if (!isDict(dict)) { + error('Invalid XRef table: could not parse trailer dictionary'); + } + delete this.tableState; + return dict; + }, + readXRefTable: function XRef_readXRefTable(parser) { + var stream = parser.lexer.stream; + var tableState = this.tableState; + stream.pos = tableState.streamPos; + parser.buf1 = tableState.parserBuf1; + parser.buf2 = tableState.parserBuf2; + var obj; + while (true) { + if (!('firstEntryNum' in tableState) || !('entryCount' in tableState)) { + if (isCmd(obj = parser.getObj(), 'trailer')) { + break; + } + tableState.firstEntryNum = obj; + tableState.entryCount = parser.getObj(); + } + var first = tableState.firstEntryNum; + var count = tableState.entryCount; + if (!isInt(first) || !isInt(count)) { + error('Invalid XRef table: wrong types in subsection header'); + } + for (var i = tableState.entryNum; i < count; i++) { + tableState.streamPos = stream.pos; + tableState.entryNum = i; + tableState.parserBuf1 = parser.buf1; + tableState.parserBuf2 = parser.buf2; + var entry = {}; + entry.offset = parser.getObj(); + entry.gen = parser.getObj(); + var type = parser.getObj(); + if (isCmd(type, 'f')) { + entry.free = true; + } else if (isCmd(type, 'n')) { + entry.uncompressed = true; + } + if (!isInt(entry.offset) || !isInt(entry.gen) || !(entry.free || entry.uncompressed)) { + error('Invalid entry in XRef subsection: ' + first + ', ' + count); + } + if (i === 0 && entry.free && first === 1) { + first = 0; + } + if (!this.entries[i + first]) { + this.entries[i + first] = entry; + } + } + tableState.entryNum = 0; + tableState.streamPos = stream.pos; + tableState.parserBuf1 = parser.buf1; + tableState.parserBuf2 = parser.buf2; + delete tableState.firstEntryNum; + delete tableState.entryCount; + } + if (this.entries[0] && !this.entries[0].free) { + error('Invalid XRef table: unexpected first object'); + } + return obj; + }, + processXRefStream: function XRef_processXRefStream(stream) { + if (!('streamState' in this)) { + var streamParameters = stream.dict; + var byteWidths = streamParameters.get('W'); + var range = streamParameters.get('Index'); + if (!range) { + range = [ + 0, + streamParameters.get('Size') + ]; + } + this.streamState = { + entryRanges: range, + byteWidths: byteWidths, + entryNum: 0, + streamPos: stream.pos + }; + } + this.readXRefStream(stream); + delete this.streamState; + return stream.dict; + }, + readXRefStream: function XRef_readXRefStream(stream) { + var i, j; + var streamState = this.streamState; + stream.pos = streamState.streamPos; + var byteWidths = streamState.byteWidths; + var typeFieldWidth = byteWidths[0]; + var offsetFieldWidth = byteWidths[1]; + var generationFieldWidth = byteWidths[2]; + var entryRanges = streamState.entryRanges; + while (entryRanges.length > 0) { + var first = entryRanges[0]; + var n = entryRanges[1]; + if (!isInt(first) || !isInt(n)) { + error('Invalid XRef range fields: ' + first + ', ' + n); + } + if (!isInt(typeFieldWidth) || !isInt(offsetFieldWidth) || !isInt(generationFieldWidth)) { + error('Invalid XRef entry fields length: ' + first + ', ' + n); + } + for (i = streamState.entryNum; i < n; ++i) { + streamState.entryNum = i; + streamState.streamPos = stream.pos; + var type = 0, offset = 0, generation = 0; + for (j = 0; j < typeFieldWidth; ++j) { + type = type << 8 | stream.getByte(); + } + if (typeFieldWidth === 0) { + type = 1; + } + for (j = 0; j < offsetFieldWidth; ++j) { + offset = offset << 8 | stream.getByte(); + } + for (j = 0; j < generationFieldWidth; ++j) { + generation = generation << 8 | stream.getByte(); + } + var entry = {}; + entry.offset = offset; + entry.gen = generation; + switch (type) { + case 0: + entry.free = true; + break; + case 1: + entry.uncompressed = true; + break; + case 2: + break; + default: + error('Invalid XRef entry type: ' + type); + } + if (!this.entries[first + i]) { + this.entries[first + i] = entry; + } + } + streamState.entryNum = 0; + streamState.streamPos = stream.pos; + entryRanges.splice(0, 2); + } + }, + indexObjects: function XRef_indexObjects() { + var TAB = 0x9, LF = 0xA, CR = 0xD, SPACE = 0x20; + var PERCENT = 0x25, LT = 0x3C; + function readToken(data, offset) { + var token = '', ch = data[offset]; + while (ch !== LF && ch !== CR && ch !== LT) { + if (++offset >= data.length) { + break; + } + token += String.fromCharCode(ch); + ch = data[offset]; + } + return token; + } + function skipUntil(data, offset, what) { + var length = what.length, dataLength = data.length; + var skipped = 0; + while (offset < dataLength) { + var i = 0; + while (i < length && data[offset + i] === what[i]) { + ++i; + } + if (i >= length) { + break; + } + offset++; + skipped++; + } + return skipped; + } + var objRegExp = /^(\d+)\s+(\d+)\s+obj\b/; + var trailerBytes = new Uint8Array([ + 116, + 114, + 97, + 105, + 108, + 101, + 114 + ]); + var startxrefBytes = new Uint8Array([ + 115, + 116, + 97, + 114, + 116, + 120, + 114, + 101, + 102 + ]); + var endobjBytes = new Uint8Array([ + 101, + 110, + 100, + 111, + 98, + 106 + ]); + var xrefBytes = new Uint8Array([ + 47, + 88, + 82, + 101, + 102 + ]); + this.entries.length = 0; + var stream = this.stream; + stream.pos = 0; + var buffer = stream.getBytes(); + var position = stream.start, length = buffer.length; + var trailers = [], xrefStms = []; + while (position < length) { + var ch = buffer[position]; + if (ch === TAB || ch === LF || ch === CR || ch === SPACE) { + ++position; + continue; + } + if (ch === PERCENT) { + do { + ++position; + if (position >= length) { + break; + } + ch = buffer[position]; + } while (ch !== LF && ch !== CR); + continue; + } + var token = readToken(buffer, position); + var m; + if (token.indexOf('xref') === 0 && (token.length === 4 || /\s/.test(token[4]))) { + position += skipUntil(buffer, position, trailerBytes); + trailers.push(position); + position += skipUntil(buffer, position, startxrefBytes); + } else if (m = objRegExp.exec(token)) { + if (typeof this.entries[m[1]] === 'undefined') { + this.entries[m[1]] = { + offset: position - stream.start, + gen: m[2] | 0, + uncompressed: true + }; + } + var contentLength = skipUntil(buffer, position, endobjBytes) + 7; + var content = buffer.subarray(position, position + contentLength); + var xrefTagOffset = skipUntil(content, 0, xrefBytes); + if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) { + xrefStms.push(position - stream.start); + this.xrefstms[position - stream.start] = 1; + } + position += contentLength; + } else if (token.indexOf('trailer') === 0 && (token.length === 7 || /\s/.test(token[7]))) { + trailers.push(position); + position += skipUntil(buffer, position, startxrefBytes); + } else { + position += token.length + 1; + } + } + var i, ii; + for (i = 0, ii = xrefStms.length; i < ii; ++i) { + this.startXRefQueue.push(xrefStms[i]); + this.readXRef(true); + } + var dict; + for (i = 0, ii = trailers.length; i < ii; ++i) { + stream.pos = trailers[i]; + var parser = new Parser(new Lexer(stream), true, this, true); + var obj = parser.getObj(); + if (!isCmd(obj, 'trailer')) { + continue; + } + dict = parser.getObj(); + if (!isDict(dict)) { + continue; + } + if (dict.has('ID')) { + return dict; + } + } + if (dict) { + return dict; + } + throw new InvalidPDFException('Invalid PDF structure'); + }, + readXRef: function XRef_readXRef(recoveryMode) { + var stream = this.stream; + try { + while (this.startXRefQueue.length) { + var startXRef = this.startXRefQueue[0]; + stream.pos = startXRef + stream.start; + var parser = new Parser(new Lexer(stream), true, this); + var obj = parser.getObj(); + var dict; + if (isCmd(obj, 'xref')) { + dict = this.processXRefTable(parser); + if (!this.topDict) { + this.topDict = dict; + } + obj = dict.get('XRefStm'); + if (isInt(obj)) { + var pos = obj; + if (!(pos in this.xrefstms)) { + this.xrefstms[pos] = 1; + this.startXRefQueue.push(pos); + } + } + } else if (isInt(obj)) { + if (!isInt(parser.getObj()) || !isCmd(parser.getObj(), 'obj') || !isStream(obj = parser.getObj())) { + error('Invalid XRef stream'); + } + dict = this.processXRefStream(obj); + if (!this.topDict) { + this.topDict = dict; + } + if (!dict) { + error('Failed to read XRef stream'); + } + } else { + error('Invalid XRef stream header'); + } + obj = dict.get('Prev'); + if (isInt(obj)) { + this.startXRefQueue.push(obj); + } else if (isRef(obj)) { + this.startXRefQueue.push(obj.num); + } + this.startXRefQueue.shift(); + } + return this.topDict; + } catch (e) { + if (e instanceof MissingDataException) { + throw e; + } + info('(while reading XRef): ' + e); + } + if (recoveryMode) { + return; + } + throw new XRefParseException(); + }, + getEntry: function XRef_getEntry(i) { + var xrefEntry = this.entries[i]; + if (xrefEntry && !xrefEntry.free && xrefEntry.offset) { + return xrefEntry; + } + return null; + }, + fetchIfRef: function XRef_fetchIfRef(obj, suppressEncryption) { + if (!isRef(obj)) { + return obj; + } + return this.fetch(obj, suppressEncryption); + }, + fetch: function XRef_fetch(ref, suppressEncryption) { + assert(isRef(ref), 'ref object is not a reference'); + var num = ref.num; + if (num in this.cache) { + var cacheEntry = this.cache[num]; + if (isDict(cacheEntry) && !cacheEntry.objId) { + cacheEntry.objId = ref.toString(); + } + return cacheEntry; + } + var xrefEntry = this.getEntry(num); + if (xrefEntry === null) { + return this.cache[num] = null; + } + if (xrefEntry.uncompressed) { + xrefEntry = this.fetchUncompressed(ref, xrefEntry, suppressEncryption); + } else { + xrefEntry = this.fetchCompressed(xrefEntry, suppressEncryption); + } + if (isDict(xrefEntry)) { + xrefEntry.objId = ref.toString(); + } else if (isStream(xrefEntry)) { + xrefEntry.dict.objId = ref.toString(); + } + return xrefEntry; + }, + fetchUncompressed: function XRef_fetchUncompressed(ref, xrefEntry, suppressEncryption) { + var gen = ref.gen; + var num = ref.num; + if (xrefEntry.gen !== gen) { + error('inconsistent generation in XRef'); + } + var stream = this.stream.makeSubStream(xrefEntry.offset + this.stream.start); + var parser = new Parser(new Lexer(stream), true, this); + var obj1 = parser.getObj(); + var obj2 = parser.getObj(); + var obj3 = parser.getObj(); + if (!isInt(obj1) || parseInt(obj1, 10) !== num || !isInt(obj2) || parseInt(obj2, 10) !== gen || !isCmd(obj3)) { + error('bad XRef entry'); + } + if (!isCmd(obj3, 'obj')) { + if (obj3.cmd.indexOf('obj') === 0) { + num = parseInt(obj3.cmd.substring(3), 10); + if (!isNaN(num)) { + return num; + } + } + error('bad XRef entry'); + } + if (this.encrypt && !suppressEncryption) { + xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num, gen)); + } else { + xrefEntry = parser.getObj(); + } + if (!isStream(xrefEntry)) { + this.cache[num] = xrefEntry; + } + return xrefEntry; + }, + fetchCompressed: function XRef_fetchCompressed(xrefEntry, suppressEncryption) { + var tableOffset = xrefEntry.offset; + var stream = this.fetch(new Ref(tableOffset, 0)); + if (!isStream(stream)) { + error('bad ObjStm stream'); + } + var first = stream.dict.get('First'); + var n = stream.dict.get('N'); + if (!isInt(first) || !isInt(n)) { + error('invalid first and n parameters for ObjStm stream'); + } + var parser = new Parser(new Lexer(stream), false, this); + parser.allowStreams = true; + var i, entries = [], num, nums = []; + for (i = 0; i < n; ++i) { + num = parser.getObj(); + if (!isInt(num)) { + error('invalid object number in the ObjStm stream: ' + num); + } + nums.push(num); + var offset = parser.getObj(); + if (!isInt(offset)) { + error('invalid object offset in the ObjStm stream: ' + offset); + } + } + for (i = 0; i < n; ++i) { + entries.push(parser.getObj()); + if (isCmd(parser.buf1, 'endobj')) { + parser.shift(); + } + num = nums[i]; + var entry = this.entries[num]; + if (entry && entry.offset === tableOffset && entry.gen === i) { + this.cache[num] = entries[i]; + } + } + xrefEntry = entries[xrefEntry.gen]; + if (xrefEntry === undefined) { + error('bad XRef entry for compressed object'); + } + return xrefEntry; + }, + fetchIfRefAsync: function XRef_fetchIfRefAsync(obj, suppressEncryption) { + if (!isRef(obj)) { + return Promise.resolve(obj); + } + return this.fetchAsync(obj, suppressEncryption); + }, + fetchAsync: function XRef_fetchAsync(ref, suppressEncryption) { + var streamManager = this.stream.manager; + var xref = this; + return new Promise(function tryFetch(resolve, reject) { + try { + resolve(xref.fetch(ref, suppressEncryption)); + } catch (e) { + if (e instanceof MissingDataException) { + streamManager.requestRange(e.begin, e.end).then(function () { + tryFetch(resolve, reject); + }, reject); + return; + } + reject(e); + } + }); + }, + getCatalogObj: function XRef_getCatalogObj() { + return this.root; + } + }; + return XRef; +}(); +var NameOrNumberTree = function NameOrNumberTreeClosure() { + function NameOrNumberTree(root, xref) { + throw new Error('Cannot initialize NameOrNumberTree.'); + } + NameOrNumberTree.prototype = { + getAll: function NameOrNumberTree_getAll() { + var dict = Object.create(null); + if (!this.root) { + return dict; + } + var xref = this.xref; + var processed = new RefSet(); + processed.put(this.root); + var queue = [this.root]; + while (queue.length > 0) { + var i, n; + var obj = xref.fetchIfRef(queue.shift()); + if (!isDict(obj)) { + continue; + } + if (obj.has('Kids')) { + var kids = obj.get('Kids'); + for (i = 0, n = kids.length; i < n; i++) { + var kid = kids[i]; + assert(!processed.has(kid), 'Duplicate entry in "' + this._type + '" tree.'); + queue.push(kid); + processed.put(kid); + } + continue; + } + var entries = obj.get(this._type); + if (isArray(entries)) { + for (i = 0, n = entries.length; i < n; i += 2) { + dict[xref.fetchIfRef(entries[i])] = xref.fetchIfRef(entries[i + 1]); + } + } + } + return dict; + }, + get: function NameOrNumberTree_get(key) { + if (!this.root) { + return null; + } + var xref = this.xref; + var kidsOrEntries = xref.fetchIfRef(this.root); + var loopCount = 0; + var MAX_LEVELS = 10; + var l, r, m; + while (kidsOrEntries.has('Kids')) { + if (++loopCount > MAX_LEVELS) { + warn('Search depth limit reached for "' + this._type + '" tree.'); + return null; + } + var kids = kidsOrEntries.get('Kids'); + if (!isArray(kids)) { + return null; + } + l = 0; + r = kids.length - 1; + while (l <= r) { + m = l + r >> 1; + var kid = xref.fetchIfRef(kids[m]); + var limits = kid.get('Limits'); + if (key < xref.fetchIfRef(limits[0])) { + r = m - 1; + } else if (key > xref.fetchIfRef(limits[1])) { + l = m + 1; + } else { + kidsOrEntries = xref.fetchIfRef(kids[m]); + break; + } + } + if (l > r) { + return null; + } + } + var entries = kidsOrEntries.get(this._type); + if (isArray(entries)) { + l = 0; + r = entries.length - 2; + while (l <= r) { + m = l + r & ~1; + var currentKey = xref.fetchIfRef(entries[m]); + if (key < currentKey) { + r = m - 2; + } else if (key > currentKey) { + l = m + 2; + } else { + return xref.fetchIfRef(entries[m + 1]); + } + } + } + return null; + } + }; + return NameOrNumberTree; +}(); +var NameTree = function NameTreeClosure() { + function NameTree(root, xref) { + this.root = root; + this.xref = xref; + this._type = 'Names'; + } + Util.inherit(NameTree, NameOrNumberTree, {}); + return NameTree; +}(); +var NumberTree = function NumberTreeClosure() { + function NumberTree(root, xref) { + this.root = root; + this.xref = xref; + this._type = 'Nums'; + } + Util.inherit(NumberTree, NameOrNumberTree, {}); + return NumberTree; +}(); +var FileSpec = function FileSpecClosure() { + function FileSpec(root, xref) { + if (!root || !isDict(root)) { + return; + } + this.xref = xref; + this.root = root; + if (root.has('FS')) { + this.fs = root.get('FS'); + } + this.description = root.has('Desc') ? stringToPDFString(root.get('Desc')) : ''; + if (root.has('RF')) { + warn('Related file specifications are not supported'); + } + this.contentAvailable = true; + if (!root.has('EF')) { + this.contentAvailable = false; + warn('Non-embedded file specifications are not supported'); + } + } + function pickPlatformItem(dict) { + if (dict.has('UF')) { + return dict.get('UF'); + } else if (dict.has('F')) { + return dict.get('F'); + } else if (dict.has('Unix')) { + return dict.get('Unix'); + } else if (dict.has('Mac')) { + return dict.get('Mac'); + } else if (dict.has('DOS')) { + return dict.get('DOS'); + } + return null; + } + FileSpec.prototype = { + get filename() { + if (!this._filename && this.root) { + var filename = pickPlatformItem(this.root) || 'unnamed'; + this._filename = stringToPDFString(filename).replace(/\\\\/g, '\\').replace(/\\\//g, '/').replace(/\\/g, '/'); + } + return this._filename; + }, + get content() { + if (!this.contentAvailable) { + return null; + } + if (!this.contentRef && this.root) { + this.contentRef = pickPlatformItem(this.root.get('EF')); + } + var content = null; + if (this.contentRef) { + var xref = this.xref; + var fileObj = xref.fetchIfRef(this.contentRef); + if (fileObj && isStream(fileObj)) { + content = fileObj.getBytes(); + } else { + warn('Embedded file specification points to non-existing/invalid ' + 'content'); + } + } else { + warn('Embedded file specification does not have a content'); + } + return content; + }, + get serializable() { + return { + filename: this.filename, + content: this.content + }; + } + }; + return FileSpec; +}(); +var ObjectLoader = function () { + function mayHaveChildren(value) { + return isRef(value) || isDict(value) || isArray(value) || isStream(value); + } + function addChildren(node, nodesToVisit) { + var value; + if (isDict(node) || isStream(node)) { + var map; + if (isDict(node)) { + map = node.map; + } else { + map = node.dict.map; + } + for (var key in map) { + value = map[key]; + if (mayHaveChildren(value)) { + nodesToVisit.push(value); + } + } + } else if (isArray(node)) { + for (var i = 0, ii = node.length; i < ii; i++) { + value = node[i]; + if (mayHaveChildren(value)) { + nodesToVisit.push(value); + } + } + } + } + function ObjectLoader(obj, keys, xref) { + this.obj = obj; + this.keys = keys; + this.xref = xref; + this.refSet = null; + this.capability = null; + } + ObjectLoader.prototype = { + load: function ObjectLoader_load() { + var keys = this.keys; + this.capability = createPromiseCapability(); + if (!(this.xref.stream instanceof ChunkedStream) || this.xref.stream.getMissingChunks().length === 0) { + this.capability.resolve(); + return this.capability.promise; + } + this.refSet = new RefSet(); + var nodesToVisit = []; + for (var i = 0; i < keys.length; i++) { + nodesToVisit.push(this.obj[keys[i]]); + } + this._walk(nodesToVisit); + return this.capability.promise; + }, + _walk: function ObjectLoader_walk(nodesToVisit) { + var nodesToRevisit = []; + var pendingRequests = []; + while (nodesToVisit.length) { + var currentNode = nodesToVisit.pop(); + if (isRef(currentNode)) { + if (this.refSet.has(currentNode)) { + continue; + } + try { + var ref = currentNode; + this.refSet.put(ref); + currentNode = this.xref.fetch(currentNode); + } catch (e) { + if (!(e instanceof MissingDataException)) { + throw e; + } + nodesToRevisit.push(currentNode); + pendingRequests.push({ + begin: e.begin, + end: e.end + }); + } + } + if (currentNode && currentNode.getBaseStreams) { + var baseStreams = currentNode.getBaseStreams(); + var foundMissingData = false; + for (var i = 0; i < baseStreams.length; i++) { + var stream = baseStreams[i]; + if (stream.getMissingChunks && stream.getMissingChunks().length) { + foundMissingData = true; + pendingRequests.push({ + begin: stream.start, + end: stream.end + }); + } + } + if (foundMissingData) { + nodesToRevisit.push(currentNode); + } + } + addChildren(currentNode, nodesToVisit); + } + if (pendingRequests.length) { + this.xref.stream.manager.requestRanges(pendingRequests).then(function pendingRequestCallback() { + nodesToVisit = nodesToRevisit; + for (var i = 0; i < nodesToRevisit.length; i++) { + var node = nodesToRevisit[i]; + if (isRef(node)) { + this.refSet.remove(node); + } + } + this._walk(nodesToVisit); + }.bind(this), this.capability.reject); + return; + } + this.refSet = null; + this.capability.resolve(); + } + }; + return ObjectLoader; +}(); +exports.Catalog = Catalog; +exports.ObjectLoader = ObjectLoader; +exports.XRef = XRef; +exports.FileSpec = FileSpec; + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var getLookupTableFactory = sharedUtil.getLookupTableFactory; +var getStdFontMap = getLookupTableFactory(function (t) { + t['ArialNarrow'] = 'Helvetica'; + t['ArialNarrow-Bold'] = 'Helvetica-Bold'; + t['ArialNarrow-BoldItalic'] = 'Helvetica-BoldOblique'; + t['ArialNarrow-Italic'] = 'Helvetica-Oblique'; + t['ArialBlack'] = 'Helvetica'; + t['ArialBlack-Bold'] = 'Helvetica-Bold'; + t['ArialBlack-BoldItalic'] = 'Helvetica-BoldOblique'; + t['ArialBlack-Italic'] = 'Helvetica-Oblique'; + t['Arial-Black'] = 'Helvetica'; + t['Arial-Black-Bold'] = 'Helvetica-Bold'; + t['Arial-Black-BoldItalic'] = 'Helvetica-BoldOblique'; + t['Arial-Black-Italic'] = 'Helvetica-Oblique'; + t['Arial'] = 'Helvetica'; + t['Arial-Bold'] = 'Helvetica-Bold'; + t['Arial-BoldItalic'] = 'Helvetica-BoldOblique'; + t['Arial-Italic'] = 'Helvetica-Oblique'; + t['Arial-BoldItalicMT'] = 'Helvetica-BoldOblique'; + t['Arial-BoldMT'] = 'Helvetica-Bold'; + t['Arial-ItalicMT'] = 'Helvetica-Oblique'; + t['ArialMT'] = 'Helvetica'; + t['Courier-Bold'] = 'Courier-Bold'; + t['Courier-BoldItalic'] = 'Courier-BoldOblique'; + t['Courier-Italic'] = 'Courier-Oblique'; + t['CourierNew'] = 'Courier'; + t['CourierNew-Bold'] = 'Courier-Bold'; + t['CourierNew-BoldItalic'] = 'Courier-BoldOblique'; + t['CourierNew-Italic'] = 'Courier-Oblique'; + t['CourierNewPS-BoldItalicMT'] = 'Courier-BoldOblique'; + t['CourierNewPS-BoldMT'] = 'Courier-Bold'; + t['CourierNewPS-ItalicMT'] = 'Courier-Oblique'; + t['CourierNewPSMT'] = 'Courier'; + t['Helvetica'] = 'Helvetica'; + t['Helvetica-Bold'] = 'Helvetica-Bold'; + t['Helvetica-BoldItalic'] = 'Helvetica-BoldOblique'; + t['Helvetica-BoldOblique'] = 'Helvetica-BoldOblique'; + t['Helvetica-Italic'] = 'Helvetica-Oblique'; + t['Helvetica-Oblique'] = 'Helvetica-Oblique'; + t['Symbol-Bold'] = 'Symbol'; + t['Symbol-BoldItalic'] = 'Symbol'; + t['Symbol-Italic'] = 'Symbol'; + t['TimesNewRoman'] = 'Times-Roman'; + t['TimesNewRoman-Bold'] = 'Times-Bold'; + t['TimesNewRoman-BoldItalic'] = 'Times-BoldItalic'; + t['TimesNewRoman-Italic'] = 'Times-Italic'; + t['TimesNewRomanPS'] = 'Times-Roman'; + t['TimesNewRomanPS-Bold'] = 'Times-Bold'; + t['TimesNewRomanPS-BoldItalic'] = 'Times-BoldItalic'; + t['TimesNewRomanPS-BoldItalicMT'] = 'Times-BoldItalic'; + t['TimesNewRomanPS-BoldMT'] = 'Times-Bold'; + t['TimesNewRomanPS-Italic'] = 'Times-Italic'; + t['TimesNewRomanPS-ItalicMT'] = 'Times-Italic'; + t['TimesNewRomanPSMT'] = 'Times-Roman'; + t['TimesNewRomanPSMT-Bold'] = 'Times-Bold'; + t['TimesNewRomanPSMT-BoldItalic'] = 'Times-BoldItalic'; + t['TimesNewRomanPSMT-Italic'] = 'Times-Italic'; +}); +var getNonStdFontMap = getLookupTableFactory(function (t) { + t['CenturyGothic'] = 'Helvetica'; + t['CenturyGothic-Bold'] = 'Helvetica-Bold'; + t['CenturyGothic-BoldItalic'] = 'Helvetica-BoldOblique'; + t['CenturyGothic-Italic'] = 'Helvetica-Oblique'; + t['ComicSansMS'] = 'Comic Sans MS'; + t['ComicSansMS-Bold'] = 'Comic Sans MS-Bold'; + t['ComicSansMS-BoldItalic'] = 'Comic Sans MS-BoldItalic'; + t['ComicSansMS-Italic'] = 'Comic Sans MS-Italic'; + t['LucidaConsole'] = 'Courier'; + t['LucidaConsole-Bold'] = 'Courier-Bold'; + t['LucidaConsole-BoldItalic'] = 'Courier-BoldOblique'; + t['LucidaConsole-Italic'] = 'Courier-Oblique'; + t['MS-Gothic'] = 'MS Gothic'; + t['MS-Gothic-Bold'] = 'MS Gothic-Bold'; + t['MS-Gothic-BoldItalic'] = 'MS Gothic-BoldItalic'; + t['MS-Gothic-Italic'] = 'MS Gothic-Italic'; + t['MS-Mincho'] = 'MS Mincho'; + t['MS-Mincho-Bold'] = 'MS Mincho-Bold'; + t['MS-Mincho-BoldItalic'] = 'MS Mincho-BoldItalic'; + t['MS-Mincho-Italic'] = 'MS Mincho-Italic'; + t['MS-PGothic'] = 'MS PGothic'; + t['MS-PGothic-Bold'] = 'MS PGothic-Bold'; + t['MS-PGothic-BoldItalic'] = 'MS PGothic-BoldItalic'; + t['MS-PGothic-Italic'] = 'MS PGothic-Italic'; + t['MS-PMincho'] = 'MS PMincho'; + t['MS-PMincho-Bold'] = 'MS PMincho-Bold'; + t['MS-PMincho-BoldItalic'] = 'MS PMincho-BoldItalic'; + t['MS-PMincho-Italic'] = 'MS PMincho-Italic'; + t['NuptialScript'] = 'Times-Italic'; + t['Wingdings'] = 'ZapfDingbats'; +}); +var getSerifFonts = getLookupTableFactory(function (t) { + t['Adobe Jenson'] = true; + t['Adobe Text'] = true; + t['Albertus'] = true; + t['Aldus'] = true; + t['Alexandria'] = true; + t['Algerian'] = true; + t['American Typewriter'] = true; + t['Antiqua'] = true; + t['Apex'] = true; + t['Arno'] = true; + t['Aster'] = true; + t['Aurora'] = true; + t['Baskerville'] = true; + t['Bell'] = true; + t['Bembo'] = true; + t['Bembo Schoolbook'] = true; + t['Benguiat'] = true; + t['Berkeley Old Style'] = true; + t['Bernhard Modern'] = true; + t['Berthold City'] = true; + t['Bodoni'] = true; + t['Bauer Bodoni'] = true; + t['Book Antiqua'] = true; + t['Bookman'] = true; + t['Bordeaux Roman'] = true; + t['Californian FB'] = true; + t['Calisto'] = true; + t['Calvert'] = true; + t['Capitals'] = true; + t['Cambria'] = true; + t['Cartier'] = true; + t['Caslon'] = true; + t['Catull'] = true; + t['Centaur'] = true; + t['Century Old Style'] = true; + t['Century Schoolbook'] = true; + t['Chaparral'] = true; + t['Charis SIL'] = true; + t['Cheltenham'] = true; + t['Cholla Slab'] = true; + t['Clarendon'] = true; + t['Clearface'] = true; + t['Cochin'] = true; + t['Colonna'] = true; + t['Computer Modern'] = true; + t['Concrete Roman'] = true; + t['Constantia'] = true; + t['Cooper Black'] = true; + t['Corona'] = true; + t['Ecotype'] = true; + t['Egyptienne'] = true; + t['Elephant'] = true; + t['Excelsior'] = true; + t['Fairfield'] = true; + t['FF Scala'] = true; + t['Folkard'] = true; + t['Footlight'] = true; + t['FreeSerif'] = true; + t['Friz Quadrata'] = true; + t['Garamond'] = true; + t['Gentium'] = true; + t['Georgia'] = true; + t['Gloucester'] = true; + t['Goudy Old Style'] = true; + t['Goudy Schoolbook'] = true; + t['Goudy Pro Font'] = true; + t['Granjon'] = true; + t['Guardian Egyptian'] = true; + t['Heather'] = true; + t['Hercules'] = true; + t['High Tower Text'] = true; + t['Hiroshige'] = true; + t['Hoefler Text'] = true; + t['Humana Serif'] = true; + t['Imprint'] = true; + t['Ionic No. 5'] = true; + t['Janson'] = true; + t['Joanna'] = true; + t['Korinna'] = true; + t['Lexicon'] = true; + t['Liberation Serif'] = true; + t['Linux Libertine'] = true; + t['Literaturnaya'] = true; + t['Lucida'] = true; + t['Lucida Bright'] = true; + t['Melior'] = true; + t['Memphis'] = true; + t['Miller'] = true; + t['Minion'] = true; + t['Modern'] = true; + t['Mona Lisa'] = true; + t['Mrs Eaves'] = true; + t['MS Serif'] = true; + t['Museo Slab'] = true; + t['New York'] = true; + t['Nimbus Roman'] = true; + t['NPS Rawlinson Roadway'] = true; + t['NuptialScript'] = true; + t['Palatino'] = true; + t['Perpetua'] = true; + t['Plantin'] = true; + t['Plantin Schoolbook'] = true; + t['Playbill'] = true; + t['Poor Richard'] = true; + t['Rawlinson Roadway'] = true; + t['Renault'] = true; + t['Requiem'] = true; + t['Rockwell'] = true; + t['Roman'] = true; + t['Rotis Serif'] = true; + t['Sabon'] = true; + t['Scala'] = true; + t['Seagull'] = true; + t['Sistina'] = true; + t['Souvenir'] = true; + t['STIX'] = true; + t['Stone Informal'] = true; + t['Stone Serif'] = true; + t['Sylfaen'] = true; + t['Times'] = true; + t['Trajan'] = true; + t['Trinité'] = true; + t['Trump Mediaeval'] = true; + t['Utopia'] = true; + t['Vale Type'] = true; + t['Bitstream Vera'] = true; + t['Vera Serif'] = true; + t['Versailles'] = true; + t['Wanted'] = true; + t['Weiss'] = true; + t['Wide Latin'] = true; + t['Windsor'] = true; + t['XITS'] = true; +}); +var getSymbolsFonts = getLookupTableFactory(function (t) { + t['Dingbats'] = true; + t['Symbol'] = true; + t['ZapfDingbats'] = true; +}); +var getGlyphMapForStandardFonts = getLookupTableFactory(function (t) { + t[2] = 10; + t[3] = 32; + t[4] = 33; + t[5] = 34; + t[6] = 35; + t[7] = 36; + t[8] = 37; + t[9] = 38; + t[10] = 39; + t[11] = 40; + t[12] = 41; + t[13] = 42; + t[14] = 43; + t[15] = 44; + t[16] = 45; + t[17] = 46; + t[18] = 47; + t[19] = 48; + t[20] = 49; + t[21] = 50; + t[22] = 51; + t[23] = 52; + t[24] = 53; + t[25] = 54; + t[26] = 55; + t[27] = 56; + t[28] = 57; + t[29] = 58; + t[30] = 894; + t[31] = 60; + t[32] = 61; + t[33] = 62; + t[34] = 63; + t[35] = 64; + t[36] = 65; + t[37] = 66; + t[38] = 67; + t[39] = 68; + t[40] = 69; + t[41] = 70; + t[42] = 71; + t[43] = 72; + t[44] = 73; + t[45] = 74; + t[46] = 75; + t[47] = 76; + t[48] = 77; + t[49] = 78; + t[50] = 79; + t[51] = 80; + t[52] = 81; + t[53] = 82; + t[54] = 83; + t[55] = 84; + t[56] = 85; + t[57] = 86; + t[58] = 87; + t[59] = 88; + t[60] = 89; + t[61] = 90; + t[62] = 91; + t[63] = 92; + t[64] = 93; + t[65] = 94; + t[66] = 95; + t[67] = 96; + t[68] = 97; + t[69] = 98; + t[70] = 99; + t[71] = 100; + t[72] = 101; + t[73] = 102; + t[74] = 103; + t[75] = 104; + t[76] = 105; + t[77] = 106; + t[78] = 107; + t[79] = 108; + t[80] = 109; + t[81] = 110; + t[82] = 111; + t[83] = 112; + t[84] = 113; + t[85] = 114; + t[86] = 115; + t[87] = 116; + t[88] = 117; + t[89] = 118; + t[90] = 119; + t[91] = 120; + t[92] = 121; + t[93] = 122; + t[94] = 123; + t[95] = 124; + t[96] = 125; + t[97] = 126; + t[98] = 196; + t[99] = 197; + t[100] = 199; + t[101] = 201; + t[102] = 209; + t[103] = 214; + t[104] = 220; + t[105] = 225; + t[106] = 224; + t[107] = 226; + t[108] = 228; + t[109] = 227; + t[110] = 229; + t[111] = 231; + t[112] = 233; + t[113] = 232; + t[114] = 234; + t[115] = 235; + t[116] = 237; + t[117] = 236; + t[118] = 238; + t[119] = 239; + t[120] = 241; + t[121] = 243; + t[122] = 242; + t[123] = 244; + t[124] = 246; + t[125] = 245; + t[126] = 250; + t[127] = 249; + t[128] = 251; + t[129] = 252; + t[130] = 8224; + t[131] = 176; + t[132] = 162; + t[133] = 163; + t[134] = 167; + t[135] = 8226; + t[136] = 182; + t[137] = 223; + t[138] = 174; + t[139] = 169; + t[140] = 8482; + t[141] = 180; + t[142] = 168; + t[143] = 8800; + t[144] = 198; + t[145] = 216; + t[146] = 8734; + t[147] = 177; + t[148] = 8804; + t[149] = 8805; + t[150] = 165; + t[151] = 181; + t[152] = 8706; + t[153] = 8721; + t[154] = 8719; + t[156] = 8747; + t[157] = 170; + t[158] = 186; + t[159] = 8486; + t[160] = 230; + t[161] = 248; + t[162] = 191; + t[163] = 161; + t[164] = 172; + t[165] = 8730; + t[166] = 402; + t[167] = 8776; + t[168] = 8710; + t[169] = 171; + t[170] = 187; + t[171] = 8230; + t[210] = 218; + t[223] = 711; + t[224] = 321; + t[225] = 322; + t[227] = 353; + t[229] = 382; + t[234] = 253; + t[252] = 263; + t[253] = 268; + t[254] = 269; + t[258] = 258; + t[260] = 260; + t[261] = 261; + t[265] = 280; + t[266] = 281; + t[268] = 283; + t[269] = 313; + t[275] = 323; + t[276] = 324; + t[278] = 328; + t[284] = 345; + t[285] = 346; + t[286] = 347; + t[292] = 367; + t[295] = 377; + t[296] = 378; + t[298] = 380; + t[305] = 963; + t[306] = 964; + t[307] = 966; + t[308] = 8215; + t[309] = 8252; + t[310] = 8319; + t[311] = 8359; + t[312] = 8592; + t[313] = 8593; + t[337] = 9552; + t[493] = 1039; + t[494] = 1040; + t[705] = 1524; + t[706] = 8362; + t[710] = 64288; + t[711] = 64298; + t[759] = 1617; + t[761] = 1776; + t[763] = 1778; + t[775] = 1652; + t[777] = 1764; + t[778] = 1780; + t[779] = 1781; + t[780] = 1782; + t[782] = 771; + t[783] = 64726; + t[786] = 8363; + t[788] = 8532; + t[790] = 768; + t[791] = 769; + t[792] = 768; + t[795] = 803; + t[797] = 64336; + t[798] = 64337; + t[799] = 64342; + t[800] = 64343; + t[801] = 64344; + t[802] = 64345; + t[803] = 64362; + t[804] = 64363; + t[805] = 64364; + t[2424] = 7821; + t[2425] = 7822; + t[2426] = 7823; + t[2427] = 7824; + t[2428] = 7825; + t[2429] = 7826; + t[2430] = 7827; + t[2433] = 7682; + t[2678] = 8045; + t[2679] = 8046; + t[2830] = 1552; + t[2838] = 686; + t[2840] = 751; + t[2842] = 753; + t[2843] = 754; + t[2844] = 755; + t[2846] = 757; + t[2856] = 767; + t[2857] = 848; + t[2858] = 849; + t[2862] = 853; + t[2863] = 854; + t[2864] = 855; + t[2865] = 861; + t[2866] = 862; + t[2906] = 7460; + t[2908] = 7462; + t[2909] = 7463; + t[2910] = 7464; + t[2912] = 7466; + t[2913] = 7467; + t[2914] = 7468; + t[2916] = 7470; + t[2917] = 7471; + t[2918] = 7472; + t[2920] = 7474; + t[2921] = 7475; + t[2922] = 7476; + t[2924] = 7478; + t[2925] = 7479; + t[2926] = 7480; + t[2928] = 7482; + t[2929] = 7483; + t[2930] = 7484; + t[2932] = 7486; + t[2933] = 7487; + t[2934] = 7488; + t[2936] = 7490; + t[2937] = 7491; + t[2938] = 7492; + t[2940] = 7494; + t[2941] = 7495; + t[2942] = 7496; + t[2944] = 7498; + t[2946] = 7500; + t[2948] = 7502; + t[2950] = 7504; + t[2951] = 7505; + t[2952] = 7506; + t[2954] = 7508; + t[2955] = 7509; + t[2956] = 7510; + t[2958] = 7512; + t[2959] = 7513; + t[2960] = 7514; + t[2962] = 7516; + t[2963] = 7517; + t[2964] = 7518; + t[2966] = 7520; + t[2967] = 7521; + t[2968] = 7522; + t[2970] = 7524; + t[2971] = 7525; + t[2972] = 7526; + t[2974] = 7528; + t[2975] = 7529; + t[2976] = 7530; + t[2978] = 1537; + t[2979] = 1538; + t[2980] = 1539; + t[2982] = 1549; + t[2983] = 1551; + t[2984] = 1552; + t[2986] = 1554; + t[2987] = 1555; + t[2988] = 1556; + t[2990] = 1623; + t[2991] = 1624; + t[2995] = 1775; + t[2999] = 1791; + t[3002] = 64290; + t[3003] = 64291; + t[3004] = 64292; + t[3006] = 64294; + t[3007] = 64295; + t[3008] = 64296; + t[3011] = 1900; + t[3014] = 8223; + t[3015] = 8244; + t[3017] = 7532; + t[3018] = 7533; + t[3019] = 7534; + t[3075] = 7590; + t[3076] = 7591; + t[3079] = 7594; + t[3080] = 7595; + t[3083] = 7598; + t[3084] = 7599; + t[3087] = 7602; + t[3088] = 7603; + t[3091] = 7606; + t[3092] = 7607; + t[3095] = 7610; + t[3096] = 7611; + t[3099] = 7614; + t[3100] = 7615; + t[3103] = 7618; + t[3104] = 7619; + t[3107] = 8337; + t[3108] = 8338; + t[3116] = 1884; + t[3119] = 1885; + t[3120] = 1885; + t[3123] = 1886; + t[3124] = 1886; + t[3127] = 1887; + t[3128] = 1887; + t[3131] = 1888; + t[3132] = 1888; + t[3135] = 1889; + t[3136] = 1889; + t[3139] = 1890; + t[3140] = 1890; + t[3143] = 1891; + t[3144] = 1891; + t[3147] = 1892; + t[3148] = 1892; + t[3153] = 580; + t[3154] = 581; + t[3157] = 584; + t[3158] = 585; + t[3161] = 588; + t[3162] = 589; + t[3165] = 891; + t[3166] = 892; + t[3169] = 1274; + t[3170] = 1275; + t[3173] = 1278; + t[3174] = 1279; + t[3181] = 7622; + t[3182] = 7623; + t[3282] = 11799; + t[3316] = 578; + t[3379] = 42785; + t[3393] = 1159; + t[3416] = 8377; +}); +var getSupplementalGlyphMapForArialBlack = getLookupTableFactory(function (t) { + t[227] = 322; + t[264] = 261; + t[291] = 346; +}); +exports.getStdFontMap = getStdFontMap; +exports.getNonStdFontMap = getNonStdFontMap; +exports.getSerifFonts = getSerifFonts; +exports.getSymbolsFonts = getSymbolsFonts; +exports.getGlyphMapForStandardFonts = getGlyphMapForStandardFonts; +exports.getSupplementalGlyphMapForArialBlack = getSupplementalGlyphMapForArialBlack; + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var getLookupTableFactory = sharedUtil.getLookupTableFactory; +var getSpecialPUASymbols = getLookupTableFactory(function (t) { + t[63721] = 0x00A9; + t[63193] = 0x00A9; + t[63720] = 0x00AE; + t[63194] = 0x00AE; + t[63722] = 0x2122; + t[63195] = 0x2122; + t[63729] = 0x23A7; + t[63730] = 0x23A8; + t[63731] = 0x23A9; + t[63740] = 0x23AB; + t[63741] = 0x23AC; + t[63742] = 0x23AD; + t[63726] = 0x23A1; + t[63727] = 0x23A2; + t[63728] = 0x23A3; + t[63737] = 0x23A4; + t[63738] = 0x23A5; + t[63739] = 0x23A6; + t[63723] = 0x239B; + t[63724] = 0x239C; + t[63725] = 0x239D; + t[63734] = 0x239E; + t[63735] = 0x239F; + t[63736] = 0x23A0; +}); +function mapSpecialUnicodeValues(code) { + if (code >= 0xFFF0 && code <= 0xFFFF) { + return 0; + } else if (code >= 0xF600 && code <= 0xF8FF) { + return getSpecialPUASymbols()[code] || code; + } + return code; +} +function getUnicodeForGlyph(name, glyphsUnicodeMap) { + var unicode = glyphsUnicodeMap[name]; + if (unicode !== undefined) { + return unicode; + } + if (!name) { + return -1; + } + if (name[0] === 'u') { + var nameLen = name.length, hexStr; + if (nameLen === 7 && name[1] === 'n' && name[2] === 'i') { + hexStr = name.substr(3); + } else if (nameLen >= 5 && nameLen <= 7) { + hexStr = name.substr(1); + } else { + return -1; + } + if (hexStr === hexStr.toUpperCase()) { + unicode = parseInt(hexStr, 16); + if (unicode >= 0) { + return unicode; + } + } + } + return -1; +} +var UnicodeRanges = [ + { + 'begin': 0x0000, + 'end': 0x007F + }, + { + 'begin': 0x0080, + 'end': 0x00FF + }, + { + 'begin': 0x0100, + 'end': 0x017F + }, + { + 'begin': 0x0180, + 'end': 0x024F + }, + { + 'begin': 0x0250, + 'end': 0x02AF + }, + { + 'begin': 0x02B0, + 'end': 0x02FF + }, + { + 'begin': 0x0300, + 'end': 0x036F + }, + { + 'begin': 0x0370, + 'end': 0x03FF + }, + { + 'begin': 0x2C80, + 'end': 0x2CFF + }, + { + 'begin': 0x0400, + 'end': 0x04FF + }, + { + 'begin': 0x0530, + 'end': 0x058F + }, + { + 'begin': 0x0590, + 'end': 0x05FF + }, + { + 'begin': 0xA500, + 'end': 0xA63F + }, + { + 'begin': 0x0600, + 'end': 0x06FF + }, + { + 'begin': 0x07C0, + 'end': 0x07FF + }, + { + 'begin': 0x0900, + 'end': 0x097F + }, + { + 'begin': 0x0980, + 'end': 0x09FF + }, + { + 'begin': 0x0A00, + 'end': 0x0A7F + }, + { + 'begin': 0x0A80, + 'end': 0x0AFF + }, + { + 'begin': 0x0B00, + 'end': 0x0B7F + }, + { + 'begin': 0x0B80, + 'end': 0x0BFF + }, + { + 'begin': 0x0C00, + 'end': 0x0C7F + }, + { + 'begin': 0x0C80, + 'end': 0x0CFF + }, + { + 'begin': 0x0D00, + 'end': 0x0D7F + }, + { + 'begin': 0x0E00, + 'end': 0x0E7F + }, + { + 'begin': 0x0E80, + 'end': 0x0EFF + }, + { + 'begin': 0x10A0, + 'end': 0x10FF + }, + { + 'begin': 0x1B00, + 'end': 0x1B7F + }, + { + 'begin': 0x1100, + 'end': 0x11FF + }, + { + 'begin': 0x1E00, + 'end': 0x1EFF + }, + { + 'begin': 0x1F00, + 'end': 0x1FFF + }, + { + 'begin': 0x2000, + 'end': 0x206F + }, + { + 'begin': 0x2070, + 'end': 0x209F + }, + { + 'begin': 0x20A0, + 'end': 0x20CF + }, + { + 'begin': 0x20D0, + 'end': 0x20FF + }, + { + 'begin': 0x2100, + 'end': 0x214F + }, + { + 'begin': 0x2150, + 'end': 0x218F + }, + { + 'begin': 0x2190, + 'end': 0x21FF + }, + { + 'begin': 0x2200, + 'end': 0x22FF + }, + { + 'begin': 0x2300, + 'end': 0x23FF + }, + { + 'begin': 0x2400, + 'end': 0x243F + }, + { + 'begin': 0x2440, + 'end': 0x245F + }, + { + 'begin': 0x2460, + 'end': 0x24FF + }, + { + 'begin': 0x2500, + 'end': 0x257F + }, + { + 'begin': 0x2580, + 'end': 0x259F + }, + { + 'begin': 0x25A0, + 'end': 0x25FF + }, + { + 'begin': 0x2600, + 'end': 0x26FF + }, + { + 'begin': 0x2700, + 'end': 0x27BF + }, + { + 'begin': 0x3000, + 'end': 0x303F + }, + { + 'begin': 0x3040, + 'end': 0x309F + }, + { + 'begin': 0x30A0, + 'end': 0x30FF + }, + { + 'begin': 0x3100, + 'end': 0x312F + }, + { + 'begin': 0x3130, + 'end': 0x318F + }, + { + 'begin': 0xA840, + 'end': 0xA87F + }, + { + 'begin': 0x3200, + 'end': 0x32FF + }, + { + 'begin': 0x3300, + 'end': 0x33FF + }, + { + 'begin': 0xAC00, + 'end': 0xD7AF + }, + { + 'begin': 0xD800, + 'end': 0xDFFF + }, + { + 'begin': 0x10900, + 'end': 0x1091F + }, + { + 'begin': 0x4E00, + 'end': 0x9FFF + }, + { + 'begin': 0xE000, + 'end': 0xF8FF + }, + { + 'begin': 0x31C0, + 'end': 0x31EF + }, + { + 'begin': 0xFB00, + 'end': 0xFB4F + }, + { + 'begin': 0xFB50, + 'end': 0xFDFF + }, + { + 'begin': 0xFE20, + 'end': 0xFE2F + }, + { + 'begin': 0xFE10, + 'end': 0xFE1F + }, + { + 'begin': 0xFE50, + 'end': 0xFE6F + }, + { + 'begin': 0xFE70, + 'end': 0xFEFF + }, + { + 'begin': 0xFF00, + 'end': 0xFFEF + }, + { + 'begin': 0xFFF0, + 'end': 0xFFFF + }, + { + 'begin': 0x0F00, + 'end': 0x0FFF + }, + { + 'begin': 0x0700, + 'end': 0x074F + }, + { + 'begin': 0x0780, + 'end': 0x07BF + }, + { + 'begin': 0x0D80, + 'end': 0x0DFF + }, + { + 'begin': 0x1000, + 'end': 0x109F + }, + { + 'begin': 0x1200, + 'end': 0x137F + }, + { + 'begin': 0x13A0, + 'end': 0x13FF + }, + { + 'begin': 0x1400, + 'end': 0x167F + }, + { + 'begin': 0x1680, + 'end': 0x169F + }, + { + 'begin': 0x16A0, + 'end': 0x16FF + }, + { + 'begin': 0x1780, + 'end': 0x17FF + }, + { + 'begin': 0x1800, + 'end': 0x18AF + }, + { + 'begin': 0x2800, + 'end': 0x28FF + }, + { + 'begin': 0xA000, + 'end': 0xA48F + }, + { + 'begin': 0x1700, + 'end': 0x171F + }, + { + 'begin': 0x10300, + 'end': 0x1032F + }, + { + 'begin': 0x10330, + 'end': 0x1034F + }, + { + 'begin': 0x10400, + 'end': 0x1044F + }, + { + 'begin': 0x1D000, + 'end': 0x1D0FF + }, + { + 'begin': 0x1D400, + 'end': 0x1D7FF + }, + { + 'begin': 0xFF000, + 'end': 0xFFFFD + }, + { + 'begin': 0xFE00, + 'end': 0xFE0F + }, + { + 'begin': 0xE0000, + 'end': 0xE007F + }, + { + 'begin': 0x1900, + 'end': 0x194F + }, + { + 'begin': 0x1950, + 'end': 0x197F + }, + { + 'begin': 0x1980, + 'end': 0x19DF + }, + { + 'begin': 0x1A00, + 'end': 0x1A1F + }, + { + 'begin': 0x2C00, + 'end': 0x2C5F + }, + { + 'begin': 0x2D30, + 'end': 0x2D7F + }, + { + 'begin': 0x4DC0, + 'end': 0x4DFF + }, + { + 'begin': 0xA800, + 'end': 0xA82F + }, + { + 'begin': 0x10000, + 'end': 0x1007F + }, + { + 'begin': 0x10140, + 'end': 0x1018F + }, + { + 'begin': 0x10380, + 'end': 0x1039F + }, + { + 'begin': 0x103A0, + 'end': 0x103DF + }, + { + 'begin': 0x10450, + 'end': 0x1047F + }, + { + 'begin': 0x10480, + 'end': 0x104AF + }, + { + 'begin': 0x10800, + 'end': 0x1083F + }, + { + 'begin': 0x10A00, + 'end': 0x10A5F + }, + { + 'begin': 0x1D300, + 'end': 0x1D35F + }, + { + 'begin': 0x12000, + 'end': 0x123FF + }, + { + 'begin': 0x1D360, + 'end': 0x1D37F + }, + { + 'begin': 0x1B80, + 'end': 0x1BBF + }, + { + 'begin': 0x1C00, + 'end': 0x1C4F + }, + { + 'begin': 0x1C50, + 'end': 0x1C7F + }, + { + 'begin': 0xA880, + 'end': 0xA8DF + }, + { + 'begin': 0xA900, + 'end': 0xA92F + }, + { + 'begin': 0xA930, + 'end': 0xA95F + }, + { + 'begin': 0xAA00, + 'end': 0xAA5F + }, + { + 'begin': 0x10190, + 'end': 0x101CF + }, + { + 'begin': 0x101D0, + 'end': 0x101FF + }, + { + 'begin': 0x102A0, + 'end': 0x102DF + }, + { + 'begin': 0x1F030, + 'end': 0x1F09F + } +]; +function getUnicodeRangeFor(value) { + for (var i = 0, ii = UnicodeRanges.length; i < ii; i++) { + var range = UnicodeRanges[i]; + if (value >= range.begin && value < range.end) { + return i; + } + } + return -1; +} +function isRTLRangeFor(value) { + var range = UnicodeRanges[13]; + if (value >= range.begin && value < range.end) { + return true; + } + range = UnicodeRanges[11]; + if (value >= range.begin && value < range.end) { + return true; + } + return false; +} +var getNormalizedUnicodes = getLookupTableFactory(function (t) { + t['\u00A8'] = '\u0020\u0308'; + t['\u00AF'] = '\u0020\u0304'; + t['\u00B4'] = '\u0020\u0301'; + t['\u00B5'] = '\u03BC'; + t['\u00B8'] = '\u0020\u0327'; + t['\u0132'] = '\u0049\u004A'; + t['\u0133'] = '\u0069\u006A'; + t['\u013F'] = '\u004C\u00B7'; + t['\u0140'] = '\u006C\u00B7'; + t['\u0149'] = '\u02BC\u006E'; + t['\u017F'] = '\u0073'; + t['\u01C4'] = '\u0044\u017D'; + t['\u01C5'] = '\u0044\u017E'; + t['\u01C6'] = '\u0064\u017E'; + t['\u01C7'] = '\u004C\u004A'; + t['\u01C8'] = '\u004C\u006A'; + t['\u01C9'] = '\u006C\u006A'; + t['\u01CA'] = '\u004E\u004A'; + t['\u01CB'] = '\u004E\u006A'; + t['\u01CC'] = '\u006E\u006A'; + t['\u01F1'] = '\u0044\u005A'; + t['\u01F2'] = '\u0044\u007A'; + t['\u01F3'] = '\u0064\u007A'; + t['\u02D8'] = '\u0020\u0306'; + t['\u02D9'] = '\u0020\u0307'; + t['\u02DA'] = '\u0020\u030A'; + t['\u02DB'] = '\u0020\u0328'; + t['\u02DC'] = '\u0020\u0303'; + t['\u02DD'] = '\u0020\u030B'; + t['\u037A'] = '\u0020\u0345'; + t['\u0384'] = '\u0020\u0301'; + t['\u03D0'] = '\u03B2'; + t['\u03D1'] = '\u03B8'; + t['\u03D2'] = '\u03A5'; + t['\u03D5'] = '\u03C6'; + t['\u03D6'] = '\u03C0'; + t['\u03F0'] = '\u03BA'; + t['\u03F1'] = '\u03C1'; + t['\u03F2'] = '\u03C2'; + t['\u03F4'] = '\u0398'; + t['\u03F5'] = '\u03B5'; + t['\u03F9'] = '\u03A3'; + t['\u0587'] = '\u0565\u0582'; + t['\u0675'] = '\u0627\u0674'; + t['\u0676'] = '\u0648\u0674'; + t['\u0677'] = '\u06C7\u0674'; + t['\u0678'] = '\u064A\u0674'; + t['\u0E33'] = '\u0E4D\u0E32'; + t['\u0EB3'] = '\u0ECD\u0EB2'; + t['\u0EDC'] = '\u0EAB\u0E99'; + t['\u0EDD'] = '\u0EAB\u0EA1'; + t['\u0F77'] = '\u0FB2\u0F81'; + t['\u0F79'] = '\u0FB3\u0F81'; + t['\u1E9A'] = '\u0061\u02BE'; + t['\u1FBD'] = '\u0020\u0313'; + t['\u1FBF'] = '\u0020\u0313'; + t['\u1FC0'] = '\u0020\u0342'; + t['\u1FFE'] = '\u0020\u0314'; + t['\u2002'] = '\u0020'; + t['\u2003'] = '\u0020'; + t['\u2004'] = '\u0020'; + t['\u2005'] = '\u0020'; + t['\u2006'] = '\u0020'; + t['\u2008'] = '\u0020'; + t['\u2009'] = '\u0020'; + t['\u200A'] = '\u0020'; + t['\u2017'] = '\u0020\u0333'; + t['\u2024'] = '\u002E'; + t['\u2025'] = '\u002E\u002E'; + t['\u2026'] = '\u002E\u002E\u002E'; + t['\u2033'] = '\u2032\u2032'; + t['\u2034'] = '\u2032\u2032\u2032'; + t['\u2036'] = '\u2035\u2035'; + t['\u2037'] = '\u2035\u2035\u2035'; + t['\u203C'] = '\u0021\u0021'; + t['\u203E'] = '\u0020\u0305'; + t['\u2047'] = '\u003F\u003F'; + t['\u2048'] = '\u003F\u0021'; + t['\u2049'] = '\u0021\u003F'; + t['\u2057'] = '\u2032\u2032\u2032\u2032'; + t['\u205F'] = '\u0020'; + t['\u20A8'] = '\u0052\u0073'; + t['\u2100'] = '\u0061\u002F\u0063'; + t['\u2101'] = '\u0061\u002F\u0073'; + t['\u2103'] = '\u00B0\u0043'; + t['\u2105'] = '\u0063\u002F\u006F'; + t['\u2106'] = '\u0063\u002F\u0075'; + t['\u2107'] = '\u0190'; + t['\u2109'] = '\u00B0\u0046'; + t['\u2116'] = '\u004E\u006F'; + t['\u2121'] = '\u0054\u0045\u004C'; + t['\u2135'] = '\u05D0'; + t['\u2136'] = '\u05D1'; + t['\u2137'] = '\u05D2'; + t['\u2138'] = '\u05D3'; + t['\u213B'] = '\u0046\u0041\u0058'; + t['\u2160'] = '\u0049'; + t['\u2161'] = '\u0049\u0049'; + t['\u2162'] = '\u0049\u0049\u0049'; + t['\u2163'] = '\u0049\u0056'; + t['\u2164'] = '\u0056'; + t['\u2165'] = '\u0056\u0049'; + t['\u2166'] = '\u0056\u0049\u0049'; + t['\u2167'] = '\u0056\u0049\u0049\u0049'; + t['\u2168'] = '\u0049\u0058'; + t['\u2169'] = '\u0058'; + t['\u216A'] = '\u0058\u0049'; + t['\u216B'] = '\u0058\u0049\u0049'; + t['\u216C'] = '\u004C'; + t['\u216D'] = '\u0043'; + t['\u216E'] = '\u0044'; + t['\u216F'] = '\u004D'; + t['\u2170'] = '\u0069'; + t['\u2171'] = '\u0069\u0069'; + t['\u2172'] = '\u0069\u0069\u0069'; + t['\u2173'] = '\u0069\u0076'; + t['\u2174'] = '\u0076'; + t['\u2175'] = '\u0076\u0069'; + t['\u2176'] = '\u0076\u0069\u0069'; + t['\u2177'] = '\u0076\u0069\u0069\u0069'; + t['\u2178'] = '\u0069\u0078'; + t['\u2179'] = '\u0078'; + t['\u217A'] = '\u0078\u0069'; + t['\u217B'] = '\u0078\u0069\u0069'; + t['\u217C'] = '\u006C'; + t['\u217D'] = '\u0063'; + t['\u217E'] = '\u0064'; + t['\u217F'] = '\u006D'; + t['\u222C'] = '\u222B\u222B'; + t['\u222D'] = '\u222B\u222B\u222B'; + t['\u222F'] = '\u222E\u222E'; + t['\u2230'] = '\u222E\u222E\u222E'; + t['\u2474'] = '\u0028\u0031\u0029'; + t['\u2475'] = '\u0028\u0032\u0029'; + t['\u2476'] = '\u0028\u0033\u0029'; + t['\u2477'] = '\u0028\u0034\u0029'; + t['\u2478'] = '\u0028\u0035\u0029'; + t['\u2479'] = '\u0028\u0036\u0029'; + t['\u247A'] = '\u0028\u0037\u0029'; + t['\u247B'] = '\u0028\u0038\u0029'; + t['\u247C'] = '\u0028\u0039\u0029'; + t['\u247D'] = '\u0028\u0031\u0030\u0029'; + t['\u247E'] = '\u0028\u0031\u0031\u0029'; + t['\u247F'] = '\u0028\u0031\u0032\u0029'; + t['\u2480'] = '\u0028\u0031\u0033\u0029'; + t['\u2481'] = '\u0028\u0031\u0034\u0029'; + t['\u2482'] = '\u0028\u0031\u0035\u0029'; + t['\u2483'] = '\u0028\u0031\u0036\u0029'; + t['\u2484'] = '\u0028\u0031\u0037\u0029'; + t['\u2485'] = '\u0028\u0031\u0038\u0029'; + t['\u2486'] = '\u0028\u0031\u0039\u0029'; + t['\u2487'] = '\u0028\u0032\u0030\u0029'; + t['\u2488'] = '\u0031\u002E'; + t['\u2489'] = '\u0032\u002E'; + t['\u248A'] = '\u0033\u002E'; + t['\u248B'] = '\u0034\u002E'; + t['\u248C'] = '\u0035\u002E'; + t['\u248D'] = '\u0036\u002E'; + t['\u248E'] = '\u0037\u002E'; + t['\u248F'] = '\u0038\u002E'; + t['\u2490'] = '\u0039\u002E'; + t['\u2491'] = '\u0031\u0030\u002E'; + t['\u2492'] = '\u0031\u0031\u002E'; + t['\u2493'] = '\u0031\u0032\u002E'; + t['\u2494'] = '\u0031\u0033\u002E'; + t['\u2495'] = '\u0031\u0034\u002E'; + t['\u2496'] = '\u0031\u0035\u002E'; + t['\u2497'] = '\u0031\u0036\u002E'; + t['\u2498'] = '\u0031\u0037\u002E'; + t['\u2499'] = '\u0031\u0038\u002E'; + t['\u249A'] = '\u0031\u0039\u002E'; + t['\u249B'] = '\u0032\u0030\u002E'; + t['\u249C'] = '\u0028\u0061\u0029'; + t['\u249D'] = '\u0028\u0062\u0029'; + t['\u249E'] = '\u0028\u0063\u0029'; + t['\u249F'] = '\u0028\u0064\u0029'; + t['\u24A0'] = '\u0028\u0065\u0029'; + t['\u24A1'] = '\u0028\u0066\u0029'; + t['\u24A2'] = '\u0028\u0067\u0029'; + t['\u24A3'] = '\u0028\u0068\u0029'; + t['\u24A4'] = '\u0028\u0069\u0029'; + t['\u24A5'] = '\u0028\u006A\u0029'; + t['\u24A6'] = '\u0028\u006B\u0029'; + t['\u24A7'] = '\u0028\u006C\u0029'; + t['\u24A8'] = '\u0028\u006D\u0029'; + t['\u24A9'] = '\u0028\u006E\u0029'; + t['\u24AA'] = '\u0028\u006F\u0029'; + t['\u24AB'] = '\u0028\u0070\u0029'; + t['\u24AC'] = '\u0028\u0071\u0029'; + t['\u24AD'] = '\u0028\u0072\u0029'; + t['\u24AE'] = '\u0028\u0073\u0029'; + t['\u24AF'] = '\u0028\u0074\u0029'; + t['\u24B0'] = '\u0028\u0075\u0029'; + t['\u24B1'] = '\u0028\u0076\u0029'; + t['\u24B2'] = '\u0028\u0077\u0029'; + t['\u24B3'] = '\u0028\u0078\u0029'; + t['\u24B4'] = '\u0028\u0079\u0029'; + t['\u24B5'] = '\u0028\u007A\u0029'; + t['\u2A0C'] = '\u222B\u222B\u222B\u222B'; + t['\u2A74'] = '\u003A\u003A\u003D'; + t['\u2A75'] = '\u003D\u003D'; + t['\u2A76'] = '\u003D\u003D\u003D'; + t['\u2E9F'] = '\u6BCD'; + t['\u2EF3'] = '\u9F9F'; + t['\u2F00'] = '\u4E00'; + t['\u2F01'] = '\u4E28'; + t['\u2F02'] = '\u4E36'; + t['\u2F03'] = '\u4E3F'; + t['\u2F04'] = '\u4E59'; + t['\u2F05'] = '\u4E85'; + t['\u2F06'] = '\u4E8C'; + t['\u2F07'] = '\u4EA0'; + t['\u2F08'] = '\u4EBA'; + t['\u2F09'] = '\u513F'; + t['\u2F0A'] = '\u5165'; + t['\u2F0B'] = '\u516B'; + t['\u2F0C'] = '\u5182'; + t['\u2F0D'] = '\u5196'; + t['\u2F0E'] = '\u51AB'; + t['\u2F0F'] = '\u51E0'; + t['\u2F10'] = '\u51F5'; + t['\u2F11'] = '\u5200'; + t['\u2F12'] = '\u529B'; + t['\u2F13'] = '\u52F9'; + t['\u2F14'] = '\u5315'; + t['\u2F15'] = '\u531A'; + t['\u2F16'] = '\u5338'; + t['\u2F17'] = '\u5341'; + t['\u2F18'] = '\u535C'; + t['\u2F19'] = '\u5369'; + t['\u2F1A'] = '\u5382'; + t['\u2F1B'] = '\u53B6'; + t['\u2F1C'] = '\u53C8'; + t['\u2F1D'] = '\u53E3'; + t['\u2F1E'] = '\u56D7'; + t['\u2F1F'] = '\u571F'; + t['\u2F20'] = '\u58EB'; + t['\u2F21'] = '\u5902'; + t['\u2F22'] = '\u590A'; + t['\u2F23'] = '\u5915'; + t['\u2F24'] = '\u5927'; + t['\u2F25'] = '\u5973'; + t['\u2F26'] = '\u5B50'; + t['\u2F27'] = '\u5B80'; + t['\u2F28'] = '\u5BF8'; + t['\u2F29'] = '\u5C0F'; + t['\u2F2A'] = '\u5C22'; + t['\u2F2B'] = '\u5C38'; + t['\u2F2C'] = '\u5C6E'; + t['\u2F2D'] = '\u5C71'; + t['\u2F2E'] = '\u5DDB'; + t['\u2F2F'] = '\u5DE5'; + t['\u2F30'] = '\u5DF1'; + t['\u2F31'] = '\u5DFE'; + t['\u2F32'] = '\u5E72'; + t['\u2F33'] = '\u5E7A'; + t['\u2F34'] = '\u5E7F'; + t['\u2F35'] = '\u5EF4'; + t['\u2F36'] = '\u5EFE'; + t['\u2F37'] = '\u5F0B'; + t['\u2F38'] = '\u5F13'; + t['\u2F39'] = '\u5F50'; + t['\u2F3A'] = '\u5F61'; + t['\u2F3B'] = '\u5F73'; + t['\u2F3C'] = '\u5FC3'; + t['\u2F3D'] = '\u6208'; + t['\u2F3E'] = '\u6236'; + t['\u2F3F'] = '\u624B'; + t['\u2F40'] = '\u652F'; + t['\u2F41'] = '\u6534'; + t['\u2F42'] = '\u6587'; + t['\u2F43'] = '\u6597'; + t['\u2F44'] = '\u65A4'; + t['\u2F45'] = '\u65B9'; + t['\u2F46'] = '\u65E0'; + t['\u2F47'] = '\u65E5'; + t['\u2F48'] = '\u66F0'; + t['\u2F49'] = '\u6708'; + t['\u2F4A'] = '\u6728'; + t['\u2F4B'] = '\u6B20'; + t['\u2F4C'] = '\u6B62'; + t['\u2F4D'] = '\u6B79'; + t['\u2F4E'] = '\u6BB3'; + t['\u2F4F'] = '\u6BCB'; + t['\u2F50'] = '\u6BD4'; + t['\u2F51'] = '\u6BDB'; + t['\u2F52'] = '\u6C0F'; + t['\u2F53'] = '\u6C14'; + t['\u2F54'] = '\u6C34'; + t['\u2F55'] = '\u706B'; + t['\u2F56'] = '\u722A'; + t['\u2F57'] = '\u7236'; + t['\u2F58'] = '\u723B'; + t['\u2F59'] = '\u723F'; + t['\u2F5A'] = '\u7247'; + t['\u2F5B'] = '\u7259'; + t['\u2F5C'] = '\u725B'; + t['\u2F5D'] = '\u72AC'; + t['\u2F5E'] = '\u7384'; + t['\u2F5F'] = '\u7389'; + t['\u2F60'] = '\u74DC'; + t['\u2F61'] = '\u74E6'; + t['\u2F62'] = '\u7518'; + t['\u2F63'] = '\u751F'; + t['\u2F64'] = '\u7528'; + t['\u2F65'] = '\u7530'; + t['\u2F66'] = '\u758B'; + t['\u2F67'] = '\u7592'; + t['\u2F68'] = '\u7676'; + t['\u2F69'] = '\u767D'; + t['\u2F6A'] = '\u76AE'; + t['\u2F6B'] = '\u76BF'; + t['\u2F6C'] = '\u76EE'; + t['\u2F6D'] = '\u77DB'; + t['\u2F6E'] = '\u77E2'; + t['\u2F6F'] = '\u77F3'; + t['\u2F70'] = '\u793A'; + t['\u2F71'] = '\u79B8'; + t['\u2F72'] = '\u79BE'; + t['\u2F73'] = '\u7A74'; + t['\u2F74'] = '\u7ACB'; + t['\u2F75'] = '\u7AF9'; + t['\u2F76'] = '\u7C73'; + t['\u2F77'] = '\u7CF8'; + t['\u2F78'] = '\u7F36'; + t['\u2F79'] = '\u7F51'; + t['\u2F7A'] = '\u7F8A'; + t['\u2F7B'] = '\u7FBD'; + t['\u2F7C'] = '\u8001'; + t['\u2F7D'] = '\u800C'; + t['\u2F7E'] = '\u8012'; + t['\u2F7F'] = '\u8033'; + t['\u2F80'] = '\u807F'; + t['\u2F81'] = '\u8089'; + t['\u2F82'] = '\u81E3'; + t['\u2F83'] = '\u81EA'; + t['\u2F84'] = '\u81F3'; + t['\u2F85'] = '\u81FC'; + t['\u2F86'] = '\u820C'; + t['\u2F87'] = '\u821B'; + t['\u2F88'] = '\u821F'; + t['\u2F89'] = '\u826E'; + t['\u2F8A'] = '\u8272'; + t['\u2F8B'] = '\u8278'; + t['\u2F8C'] = '\u864D'; + t['\u2F8D'] = '\u866B'; + t['\u2F8E'] = '\u8840'; + t['\u2F8F'] = '\u884C'; + t['\u2F90'] = '\u8863'; + t['\u2F91'] = '\u897E'; + t['\u2F92'] = '\u898B'; + t['\u2F93'] = '\u89D2'; + t['\u2F94'] = '\u8A00'; + t['\u2F95'] = '\u8C37'; + t['\u2F96'] = '\u8C46'; + t['\u2F97'] = '\u8C55'; + t['\u2F98'] = '\u8C78'; + t['\u2F99'] = '\u8C9D'; + t['\u2F9A'] = '\u8D64'; + t['\u2F9B'] = '\u8D70'; + t['\u2F9C'] = '\u8DB3'; + t['\u2F9D'] = '\u8EAB'; + t['\u2F9E'] = '\u8ECA'; + t['\u2F9F'] = '\u8F9B'; + t['\u2FA0'] = '\u8FB0'; + t['\u2FA1'] = '\u8FB5'; + t['\u2FA2'] = '\u9091'; + t['\u2FA3'] = '\u9149'; + t['\u2FA4'] = '\u91C6'; + t['\u2FA5'] = '\u91CC'; + t['\u2FA6'] = '\u91D1'; + t['\u2FA7'] = '\u9577'; + t['\u2FA8'] = '\u9580'; + t['\u2FA9'] = '\u961C'; + t['\u2FAA'] = '\u96B6'; + t['\u2FAB'] = '\u96B9'; + t['\u2FAC'] = '\u96E8'; + t['\u2FAD'] = '\u9751'; + t['\u2FAE'] = '\u975E'; + t['\u2FAF'] = '\u9762'; + t['\u2FB0'] = '\u9769'; + t['\u2FB1'] = '\u97CB'; + t['\u2FB2'] = '\u97ED'; + t['\u2FB3'] = '\u97F3'; + t['\u2FB4'] = '\u9801'; + t['\u2FB5'] = '\u98A8'; + t['\u2FB6'] = '\u98DB'; + t['\u2FB7'] = '\u98DF'; + t['\u2FB8'] = '\u9996'; + t['\u2FB9'] = '\u9999'; + t['\u2FBA'] = '\u99AC'; + t['\u2FBB'] = '\u9AA8'; + t['\u2FBC'] = '\u9AD8'; + t['\u2FBD'] = '\u9ADF'; + t['\u2FBE'] = '\u9B25'; + t['\u2FBF'] = '\u9B2F'; + t['\u2FC0'] = '\u9B32'; + t['\u2FC1'] = '\u9B3C'; + t['\u2FC2'] = '\u9B5A'; + t['\u2FC3'] = '\u9CE5'; + t['\u2FC4'] = '\u9E75'; + t['\u2FC5'] = '\u9E7F'; + t['\u2FC6'] = '\u9EA5'; + t['\u2FC7'] = '\u9EBB'; + t['\u2FC8'] = '\u9EC3'; + t['\u2FC9'] = '\u9ECD'; + t['\u2FCA'] = '\u9ED1'; + t['\u2FCB'] = '\u9EF9'; + t['\u2FCC'] = '\u9EFD'; + t['\u2FCD'] = '\u9F0E'; + t['\u2FCE'] = '\u9F13'; + t['\u2FCF'] = '\u9F20'; + t['\u2FD0'] = '\u9F3B'; + t['\u2FD1'] = '\u9F4A'; + t['\u2FD2'] = '\u9F52'; + t['\u2FD3'] = '\u9F8D'; + t['\u2FD4'] = '\u9F9C'; + t['\u2FD5'] = '\u9FA0'; + t['\u3036'] = '\u3012'; + t['\u3038'] = '\u5341'; + t['\u3039'] = '\u5344'; + t['\u303A'] = '\u5345'; + t['\u309B'] = '\u0020\u3099'; + t['\u309C'] = '\u0020\u309A'; + t['\u3131'] = '\u1100'; + t['\u3132'] = '\u1101'; + t['\u3133'] = '\u11AA'; + t['\u3134'] = '\u1102'; + t['\u3135'] = '\u11AC'; + t['\u3136'] = '\u11AD'; + t['\u3137'] = '\u1103'; + t['\u3138'] = '\u1104'; + t['\u3139'] = '\u1105'; + t['\u313A'] = '\u11B0'; + t['\u313B'] = '\u11B1'; + t['\u313C'] = '\u11B2'; + t['\u313D'] = '\u11B3'; + t['\u313E'] = '\u11B4'; + t['\u313F'] = '\u11B5'; + t['\u3140'] = '\u111A'; + t['\u3141'] = '\u1106'; + t['\u3142'] = '\u1107'; + t['\u3143'] = '\u1108'; + t['\u3144'] = '\u1121'; + t['\u3145'] = '\u1109'; + t['\u3146'] = '\u110A'; + t['\u3147'] = '\u110B'; + t['\u3148'] = '\u110C'; + t['\u3149'] = '\u110D'; + t['\u314A'] = '\u110E'; + t['\u314B'] = '\u110F'; + t['\u314C'] = '\u1110'; + t['\u314D'] = '\u1111'; + t['\u314E'] = '\u1112'; + t['\u314F'] = '\u1161'; + t['\u3150'] = '\u1162'; + t['\u3151'] = '\u1163'; + t['\u3152'] = '\u1164'; + t['\u3153'] = '\u1165'; + t['\u3154'] = '\u1166'; + t['\u3155'] = '\u1167'; + t['\u3156'] = '\u1168'; + t['\u3157'] = '\u1169'; + t['\u3158'] = '\u116A'; + t['\u3159'] = '\u116B'; + t['\u315A'] = '\u116C'; + t['\u315B'] = '\u116D'; + t['\u315C'] = '\u116E'; + t['\u315D'] = '\u116F'; + t['\u315E'] = '\u1170'; + t['\u315F'] = '\u1171'; + t['\u3160'] = '\u1172'; + t['\u3161'] = '\u1173'; + t['\u3162'] = '\u1174'; + t['\u3163'] = '\u1175'; + t['\u3164'] = '\u1160'; + t['\u3165'] = '\u1114'; + t['\u3166'] = '\u1115'; + t['\u3167'] = '\u11C7'; + t['\u3168'] = '\u11C8'; + t['\u3169'] = '\u11CC'; + t['\u316A'] = '\u11CE'; + t['\u316B'] = '\u11D3'; + t['\u316C'] = '\u11D7'; + t['\u316D'] = '\u11D9'; + t['\u316E'] = '\u111C'; + t['\u316F'] = '\u11DD'; + t['\u3170'] = '\u11DF'; + t['\u3171'] = '\u111D'; + t['\u3172'] = '\u111E'; + t['\u3173'] = '\u1120'; + t['\u3174'] = '\u1122'; + t['\u3175'] = '\u1123'; + t['\u3176'] = '\u1127'; + t['\u3177'] = '\u1129'; + t['\u3178'] = '\u112B'; + t['\u3179'] = '\u112C'; + t['\u317A'] = '\u112D'; + t['\u317B'] = '\u112E'; + t['\u317C'] = '\u112F'; + t['\u317D'] = '\u1132'; + t['\u317E'] = '\u1136'; + t['\u317F'] = '\u1140'; + t['\u3180'] = '\u1147'; + t['\u3181'] = '\u114C'; + t['\u3182'] = '\u11F1'; + t['\u3183'] = '\u11F2'; + t['\u3184'] = '\u1157'; + t['\u3185'] = '\u1158'; + t['\u3186'] = '\u1159'; + t['\u3187'] = '\u1184'; + t['\u3188'] = '\u1185'; + t['\u3189'] = '\u1188'; + t['\u318A'] = '\u1191'; + t['\u318B'] = '\u1192'; + t['\u318C'] = '\u1194'; + t['\u318D'] = '\u119E'; + t['\u318E'] = '\u11A1'; + t['\u3200'] = '\u0028\u1100\u0029'; + t['\u3201'] = '\u0028\u1102\u0029'; + t['\u3202'] = '\u0028\u1103\u0029'; + t['\u3203'] = '\u0028\u1105\u0029'; + t['\u3204'] = '\u0028\u1106\u0029'; + t['\u3205'] = '\u0028\u1107\u0029'; + t['\u3206'] = '\u0028\u1109\u0029'; + t['\u3207'] = '\u0028\u110B\u0029'; + t['\u3208'] = '\u0028\u110C\u0029'; + t['\u3209'] = '\u0028\u110E\u0029'; + t['\u320A'] = '\u0028\u110F\u0029'; + t['\u320B'] = '\u0028\u1110\u0029'; + t['\u320C'] = '\u0028\u1111\u0029'; + t['\u320D'] = '\u0028\u1112\u0029'; + t['\u320E'] = '\u0028\u1100\u1161\u0029'; + t['\u320F'] = '\u0028\u1102\u1161\u0029'; + t['\u3210'] = '\u0028\u1103\u1161\u0029'; + t['\u3211'] = '\u0028\u1105\u1161\u0029'; + t['\u3212'] = '\u0028\u1106\u1161\u0029'; + t['\u3213'] = '\u0028\u1107\u1161\u0029'; + t['\u3214'] = '\u0028\u1109\u1161\u0029'; + t['\u3215'] = '\u0028\u110B\u1161\u0029'; + t['\u3216'] = '\u0028\u110C\u1161\u0029'; + t['\u3217'] = '\u0028\u110E\u1161\u0029'; + t['\u3218'] = '\u0028\u110F\u1161\u0029'; + t['\u3219'] = '\u0028\u1110\u1161\u0029'; + t['\u321A'] = '\u0028\u1111\u1161\u0029'; + t['\u321B'] = '\u0028\u1112\u1161\u0029'; + t['\u321C'] = '\u0028\u110C\u116E\u0029'; + t['\u321D'] = '\u0028\u110B\u1169\u110C\u1165\u11AB\u0029'; + t['\u321E'] = '\u0028\u110B\u1169\u1112\u116E\u0029'; + t['\u3220'] = '\u0028\u4E00\u0029'; + t['\u3221'] = '\u0028\u4E8C\u0029'; + t['\u3222'] = '\u0028\u4E09\u0029'; + t['\u3223'] = '\u0028\u56DB\u0029'; + t['\u3224'] = '\u0028\u4E94\u0029'; + t['\u3225'] = '\u0028\u516D\u0029'; + t['\u3226'] = '\u0028\u4E03\u0029'; + t['\u3227'] = '\u0028\u516B\u0029'; + t['\u3228'] = '\u0028\u4E5D\u0029'; + t['\u3229'] = '\u0028\u5341\u0029'; + t['\u322A'] = '\u0028\u6708\u0029'; + t['\u322B'] = '\u0028\u706B\u0029'; + t['\u322C'] = '\u0028\u6C34\u0029'; + t['\u322D'] = '\u0028\u6728\u0029'; + t['\u322E'] = '\u0028\u91D1\u0029'; + t['\u322F'] = '\u0028\u571F\u0029'; + t['\u3230'] = '\u0028\u65E5\u0029'; + t['\u3231'] = '\u0028\u682A\u0029'; + t['\u3232'] = '\u0028\u6709\u0029'; + t['\u3233'] = '\u0028\u793E\u0029'; + t['\u3234'] = '\u0028\u540D\u0029'; + t['\u3235'] = '\u0028\u7279\u0029'; + t['\u3236'] = '\u0028\u8CA1\u0029'; + t['\u3237'] = '\u0028\u795D\u0029'; + t['\u3238'] = '\u0028\u52B4\u0029'; + t['\u3239'] = '\u0028\u4EE3\u0029'; + t['\u323A'] = '\u0028\u547C\u0029'; + t['\u323B'] = '\u0028\u5B66\u0029'; + t['\u323C'] = '\u0028\u76E3\u0029'; + t['\u323D'] = '\u0028\u4F01\u0029'; + t['\u323E'] = '\u0028\u8CC7\u0029'; + t['\u323F'] = '\u0028\u5354\u0029'; + t['\u3240'] = '\u0028\u796D\u0029'; + t['\u3241'] = '\u0028\u4F11\u0029'; + t['\u3242'] = '\u0028\u81EA\u0029'; + t['\u3243'] = '\u0028\u81F3\u0029'; + t['\u32C0'] = '\u0031\u6708'; + t['\u32C1'] = '\u0032\u6708'; + t['\u32C2'] = '\u0033\u6708'; + t['\u32C3'] = '\u0034\u6708'; + t['\u32C4'] = '\u0035\u6708'; + t['\u32C5'] = '\u0036\u6708'; + t['\u32C6'] = '\u0037\u6708'; + t['\u32C7'] = '\u0038\u6708'; + t['\u32C8'] = '\u0039\u6708'; + t['\u32C9'] = '\u0031\u0030\u6708'; + t['\u32CA'] = '\u0031\u0031\u6708'; + t['\u32CB'] = '\u0031\u0032\u6708'; + t['\u3358'] = '\u0030\u70B9'; + t['\u3359'] = '\u0031\u70B9'; + t['\u335A'] = '\u0032\u70B9'; + t['\u335B'] = '\u0033\u70B9'; + t['\u335C'] = '\u0034\u70B9'; + t['\u335D'] = '\u0035\u70B9'; + t['\u335E'] = '\u0036\u70B9'; + t['\u335F'] = '\u0037\u70B9'; + t['\u3360'] = '\u0038\u70B9'; + t['\u3361'] = '\u0039\u70B9'; + t['\u3362'] = '\u0031\u0030\u70B9'; + t['\u3363'] = '\u0031\u0031\u70B9'; + t['\u3364'] = '\u0031\u0032\u70B9'; + t['\u3365'] = '\u0031\u0033\u70B9'; + t['\u3366'] = '\u0031\u0034\u70B9'; + t['\u3367'] = '\u0031\u0035\u70B9'; + t['\u3368'] = '\u0031\u0036\u70B9'; + t['\u3369'] = '\u0031\u0037\u70B9'; + t['\u336A'] = '\u0031\u0038\u70B9'; + t['\u336B'] = '\u0031\u0039\u70B9'; + t['\u336C'] = '\u0032\u0030\u70B9'; + t['\u336D'] = '\u0032\u0031\u70B9'; + t['\u336E'] = '\u0032\u0032\u70B9'; + t['\u336F'] = '\u0032\u0033\u70B9'; + t['\u3370'] = '\u0032\u0034\u70B9'; + t['\u33E0'] = '\u0031\u65E5'; + t['\u33E1'] = '\u0032\u65E5'; + t['\u33E2'] = '\u0033\u65E5'; + t['\u33E3'] = '\u0034\u65E5'; + t['\u33E4'] = '\u0035\u65E5'; + t['\u33E5'] = '\u0036\u65E5'; + t['\u33E6'] = '\u0037\u65E5'; + t['\u33E7'] = '\u0038\u65E5'; + t['\u33E8'] = '\u0039\u65E5'; + t['\u33E9'] = '\u0031\u0030\u65E5'; + t['\u33EA'] = '\u0031\u0031\u65E5'; + t['\u33EB'] = '\u0031\u0032\u65E5'; + t['\u33EC'] = '\u0031\u0033\u65E5'; + t['\u33ED'] = '\u0031\u0034\u65E5'; + t['\u33EE'] = '\u0031\u0035\u65E5'; + t['\u33EF'] = '\u0031\u0036\u65E5'; + t['\u33F0'] = '\u0031\u0037\u65E5'; + t['\u33F1'] = '\u0031\u0038\u65E5'; + t['\u33F2'] = '\u0031\u0039\u65E5'; + t['\u33F3'] = '\u0032\u0030\u65E5'; + t['\u33F4'] = '\u0032\u0031\u65E5'; + t['\u33F5'] = '\u0032\u0032\u65E5'; + t['\u33F6'] = '\u0032\u0033\u65E5'; + t['\u33F7'] = '\u0032\u0034\u65E5'; + t['\u33F8'] = '\u0032\u0035\u65E5'; + t['\u33F9'] = '\u0032\u0036\u65E5'; + t['\u33FA'] = '\u0032\u0037\u65E5'; + t['\u33FB'] = '\u0032\u0038\u65E5'; + t['\u33FC'] = '\u0032\u0039\u65E5'; + t['\u33FD'] = '\u0033\u0030\u65E5'; + t['\u33FE'] = '\u0033\u0031\u65E5'; + t['\uFB00'] = '\u0066\u0066'; + t['\uFB01'] = '\u0066\u0069'; + t['\uFB02'] = '\u0066\u006C'; + t['\uFB03'] = '\u0066\u0066\u0069'; + t['\uFB04'] = '\u0066\u0066\u006C'; + t['\uFB05'] = '\u017F\u0074'; + t['\uFB06'] = '\u0073\u0074'; + t['\uFB13'] = '\u0574\u0576'; + t['\uFB14'] = '\u0574\u0565'; + t['\uFB15'] = '\u0574\u056B'; + t['\uFB16'] = '\u057E\u0576'; + t['\uFB17'] = '\u0574\u056D'; + t['\uFB4F'] = '\u05D0\u05DC'; + t['\uFB50'] = '\u0671'; + t['\uFB51'] = '\u0671'; + t['\uFB52'] = '\u067B'; + t['\uFB53'] = '\u067B'; + t['\uFB54'] = '\u067B'; + t['\uFB55'] = '\u067B'; + t['\uFB56'] = '\u067E'; + t['\uFB57'] = '\u067E'; + t['\uFB58'] = '\u067E'; + t['\uFB59'] = '\u067E'; + t['\uFB5A'] = '\u0680'; + t['\uFB5B'] = '\u0680'; + t['\uFB5C'] = '\u0680'; + t['\uFB5D'] = '\u0680'; + t['\uFB5E'] = '\u067A'; + t['\uFB5F'] = '\u067A'; + t['\uFB60'] = '\u067A'; + t['\uFB61'] = '\u067A'; + t['\uFB62'] = '\u067F'; + t['\uFB63'] = '\u067F'; + t['\uFB64'] = '\u067F'; + t['\uFB65'] = '\u067F'; + t['\uFB66'] = '\u0679'; + t['\uFB67'] = '\u0679'; + t['\uFB68'] = '\u0679'; + t['\uFB69'] = '\u0679'; + t['\uFB6A'] = '\u06A4'; + t['\uFB6B'] = '\u06A4'; + t['\uFB6C'] = '\u06A4'; + t['\uFB6D'] = '\u06A4'; + t['\uFB6E'] = '\u06A6'; + t['\uFB6F'] = '\u06A6'; + t['\uFB70'] = '\u06A6'; + t['\uFB71'] = '\u06A6'; + t['\uFB72'] = '\u0684'; + t['\uFB73'] = '\u0684'; + t['\uFB74'] = '\u0684'; + t['\uFB75'] = '\u0684'; + t['\uFB76'] = '\u0683'; + t['\uFB77'] = '\u0683'; + t['\uFB78'] = '\u0683'; + t['\uFB79'] = '\u0683'; + t['\uFB7A'] = '\u0686'; + t['\uFB7B'] = '\u0686'; + t['\uFB7C'] = '\u0686'; + t['\uFB7D'] = '\u0686'; + t['\uFB7E'] = '\u0687'; + t['\uFB7F'] = '\u0687'; + t['\uFB80'] = '\u0687'; + t['\uFB81'] = '\u0687'; + t['\uFB82'] = '\u068D'; + t['\uFB83'] = '\u068D'; + t['\uFB84'] = '\u068C'; + t['\uFB85'] = '\u068C'; + t['\uFB86'] = '\u068E'; + t['\uFB87'] = '\u068E'; + t['\uFB88'] = '\u0688'; + t['\uFB89'] = '\u0688'; + t['\uFB8A'] = '\u0698'; + t['\uFB8B'] = '\u0698'; + t['\uFB8C'] = '\u0691'; + t['\uFB8D'] = '\u0691'; + t['\uFB8E'] = '\u06A9'; + t['\uFB8F'] = '\u06A9'; + t['\uFB90'] = '\u06A9'; + t['\uFB91'] = '\u06A9'; + t['\uFB92'] = '\u06AF'; + t['\uFB93'] = '\u06AF'; + t['\uFB94'] = '\u06AF'; + t['\uFB95'] = '\u06AF'; + t['\uFB96'] = '\u06B3'; + t['\uFB97'] = '\u06B3'; + t['\uFB98'] = '\u06B3'; + t['\uFB99'] = '\u06B3'; + t['\uFB9A'] = '\u06B1'; + t['\uFB9B'] = '\u06B1'; + t['\uFB9C'] = '\u06B1'; + t['\uFB9D'] = '\u06B1'; + t['\uFB9E'] = '\u06BA'; + t['\uFB9F'] = '\u06BA'; + t['\uFBA0'] = '\u06BB'; + t['\uFBA1'] = '\u06BB'; + t['\uFBA2'] = '\u06BB'; + t['\uFBA3'] = '\u06BB'; + t['\uFBA4'] = '\u06C0'; + t['\uFBA5'] = '\u06C0'; + t['\uFBA6'] = '\u06C1'; + t['\uFBA7'] = '\u06C1'; + t['\uFBA8'] = '\u06C1'; + t['\uFBA9'] = '\u06C1'; + t['\uFBAA'] = '\u06BE'; + t['\uFBAB'] = '\u06BE'; + t['\uFBAC'] = '\u06BE'; + t['\uFBAD'] = '\u06BE'; + t['\uFBAE'] = '\u06D2'; + t['\uFBAF'] = '\u06D2'; + t['\uFBB0'] = '\u06D3'; + t['\uFBB1'] = '\u06D3'; + t['\uFBD3'] = '\u06AD'; + t['\uFBD4'] = '\u06AD'; + t['\uFBD5'] = '\u06AD'; + t['\uFBD6'] = '\u06AD'; + t['\uFBD7'] = '\u06C7'; + t['\uFBD8'] = '\u06C7'; + t['\uFBD9'] = '\u06C6'; + t['\uFBDA'] = '\u06C6'; + t['\uFBDB'] = '\u06C8'; + t['\uFBDC'] = '\u06C8'; + t['\uFBDD'] = '\u0677'; + t['\uFBDE'] = '\u06CB'; + t['\uFBDF'] = '\u06CB'; + t['\uFBE0'] = '\u06C5'; + t['\uFBE1'] = '\u06C5'; + t['\uFBE2'] = '\u06C9'; + t['\uFBE3'] = '\u06C9'; + t['\uFBE4'] = '\u06D0'; + t['\uFBE5'] = '\u06D0'; + t['\uFBE6'] = '\u06D0'; + t['\uFBE7'] = '\u06D0'; + t['\uFBE8'] = '\u0649'; + t['\uFBE9'] = '\u0649'; + t['\uFBEA'] = '\u0626\u0627'; + t['\uFBEB'] = '\u0626\u0627'; + t['\uFBEC'] = '\u0626\u06D5'; + t['\uFBED'] = '\u0626\u06D5'; + t['\uFBEE'] = '\u0626\u0648'; + t['\uFBEF'] = '\u0626\u0648'; + t['\uFBF0'] = '\u0626\u06C7'; + t['\uFBF1'] = '\u0626\u06C7'; + t['\uFBF2'] = '\u0626\u06C6'; + t['\uFBF3'] = '\u0626\u06C6'; + t['\uFBF4'] = '\u0626\u06C8'; + t['\uFBF5'] = '\u0626\u06C8'; + t['\uFBF6'] = '\u0626\u06D0'; + t['\uFBF7'] = '\u0626\u06D0'; + t['\uFBF8'] = '\u0626\u06D0'; + t['\uFBF9'] = '\u0626\u0649'; + t['\uFBFA'] = '\u0626\u0649'; + t['\uFBFB'] = '\u0626\u0649'; + t['\uFBFC'] = '\u06CC'; + t['\uFBFD'] = '\u06CC'; + t['\uFBFE'] = '\u06CC'; + t['\uFBFF'] = '\u06CC'; + t['\uFC00'] = '\u0626\u062C'; + t['\uFC01'] = '\u0626\u062D'; + t['\uFC02'] = '\u0626\u0645'; + t['\uFC03'] = '\u0626\u0649'; + t['\uFC04'] = '\u0626\u064A'; + t['\uFC05'] = '\u0628\u062C'; + t['\uFC06'] = '\u0628\u062D'; + t['\uFC07'] = '\u0628\u062E'; + t['\uFC08'] = '\u0628\u0645'; + t['\uFC09'] = '\u0628\u0649'; + t['\uFC0A'] = '\u0628\u064A'; + t['\uFC0B'] = '\u062A\u062C'; + t['\uFC0C'] = '\u062A\u062D'; + t['\uFC0D'] = '\u062A\u062E'; + t['\uFC0E'] = '\u062A\u0645'; + t['\uFC0F'] = '\u062A\u0649'; + t['\uFC10'] = '\u062A\u064A'; + t['\uFC11'] = '\u062B\u062C'; + t['\uFC12'] = '\u062B\u0645'; + t['\uFC13'] = '\u062B\u0649'; + t['\uFC14'] = '\u062B\u064A'; + t['\uFC15'] = '\u062C\u062D'; + t['\uFC16'] = '\u062C\u0645'; + t['\uFC17'] = '\u062D\u062C'; + t['\uFC18'] = '\u062D\u0645'; + t['\uFC19'] = '\u062E\u062C'; + t['\uFC1A'] = '\u062E\u062D'; + t['\uFC1B'] = '\u062E\u0645'; + t['\uFC1C'] = '\u0633\u062C'; + t['\uFC1D'] = '\u0633\u062D'; + t['\uFC1E'] = '\u0633\u062E'; + t['\uFC1F'] = '\u0633\u0645'; + t['\uFC20'] = '\u0635\u062D'; + t['\uFC21'] = '\u0635\u0645'; + t['\uFC22'] = '\u0636\u062C'; + t['\uFC23'] = '\u0636\u062D'; + t['\uFC24'] = '\u0636\u062E'; + t['\uFC25'] = '\u0636\u0645'; + t['\uFC26'] = '\u0637\u062D'; + t['\uFC27'] = '\u0637\u0645'; + t['\uFC28'] = '\u0638\u0645'; + t['\uFC29'] = '\u0639\u062C'; + t['\uFC2A'] = '\u0639\u0645'; + t['\uFC2B'] = '\u063A\u062C'; + t['\uFC2C'] = '\u063A\u0645'; + t['\uFC2D'] = '\u0641\u062C'; + t['\uFC2E'] = '\u0641\u062D'; + t['\uFC2F'] = '\u0641\u062E'; + t['\uFC30'] = '\u0641\u0645'; + t['\uFC31'] = '\u0641\u0649'; + t['\uFC32'] = '\u0641\u064A'; + t['\uFC33'] = '\u0642\u062D'; + t['\uFC34'] = '\u0642\u0645'; + t['\uFC35'] = '\u0642\u0649'; + t['\uFC36'] = '\u0642\u064A'; + t['\uFC37'] = '\u0643\u0627'; + t['\uFC38'] = '\u0643\u062C'; + t['\uFC39'] = '\u0643\u062D'; + t['\uFC3A'] = '\u0643\u062E'; + t['\uFC3B'] = '\u0643\u0644'; + t['\uFC3C'] = '\u0643\u0645'; + t['\uFC3D'] = '\u0643\u0649'; + t['\uFC3E'] = '\u0643\u064A'; + t['\uFC3F'] = '\u0644\u062C'; + t['\uFC40'] = '\u0644\u062D'; + t['\uFC41'] = '\u0644\u062E'; + t['\uFC42'] = '\u0644\u0645'; + t['\uFC43'] = '\u0644\u0649'; + t['\uFC44'] = '\u0644\u064A'; + t['\uFC45'] = '\u0645\u062C'; + t['\uFC46'] = '\u0645\u062D'; + t['\uFC47'] = '\u0645\u062E'; + t['\uFC48'] = '\u0645\u0645'; + t['\uFC49'] = '\u0645\u0649'; + t['\uFC4A'] = '\u0645\u064A'; + t['\uFC4B'] = '\u0646\u062C'; + t['\uFC4C'] = '\u0646\u062D'; + t['\uFC4D'] = '\u0646\u062E'; + t['\uFC4E'] = '\u0646\u0645'; + t['\uFC4F'] = '\u0646\u0649'; + t['\uFC50'] = '\u0646\u064A'; + t['\uFC51'] = '\u0647\u062C'; + t['\uFC52'] = '\u0647\u0645'; + t['\uFC53'] = '\u0647\u0649'; + t['\uFC54'] = '\u0647\u064A'; + t['\uFC55'] = '\u064A\u062C'; + t['\uFC56'] = '\u064A\u062D'; + t['\uFC57'] = '\u064A\u062E'; + t['\uFC58'] = '\u064A\u0645'; + t['\uFC59'] = '\u064A\u0649'; + t['\uFC5A'] = '\u064A\u064A'; + t['\uFC5B'] = '\u0630\u0670'; + t['\uFC5C'] = '\u0631\u0670'; + t['\uFC5D'] = '\u0649\u0670'; + t['\uFC5E'] = '\u0020\u064C\u0651'; + t['\uFC5F'] = '\u0020\u064D\u0651'; + t['\uFC60'] = '\u0020\u064E\u0651'; + t['\uFC61'] = '\u0020\u064F\u0651'; + t['\uFC62'] = '\u0020\u0650\u0651'; + t['\uFC63'] = '\u0020\u0651\u0670'; + t['\uFC64'] = '\u0626\u0631'; + t['\uFC65'] = '\u0626\u0632'; + t['\uFC66'] = '\u0626\u0645'; + t['\uFC67'] = '\u0626\u0646'; + t['\uFC68'] = '\u0626\u0649'; + t['\uFC69'] = '\u0626\u064A'; + t['\uFC6A'] = '\u0628\u0631'; + t['\uFC6B'] = '\u0628\u0632'; + t['\uFC6C'] = '\u0628\u0645'; + t['\uFC6D'] = '\u0628\u0646'; + t['\uFC6E'] = '\u0628\u0649'; + t['\uFC6F'] = '\u0628\u064A'; + t['\uFC70'] = '\u062A\u0631'; + t['\uFC71'] = '\u062A\u0632'; + t['\uFC72'] = '\u062A\u0645'; + t['\uFC73'] = '\u062A\u0646'; + t['\uFC74'] = '\u062A\u0649'; + t['\uFC75'] = '\u062A\u064A'; + t['\uFC76'] = '\u062B\u0631'; + t['\uFC77'] = '\u062B\u0632'; + t['\uFC78'] = '\u062B\u0645'; + t['\uFC79'] = '\u062B\u0646'; + t['\uFC7A'] = '\u062B\u0649'; + t['\uFC7B'] = '\u062B\u064A'; + t['\uFC7C'] = '\u0641\u0649'; + t['\uFC7D'] = '\u0641\u064A'; + t['\uFC7E'] = '\u0642\u0649'; + t['\uFC7F'] = '\u0642\u064A'; + t['\uFC80'] = '\u0643\u0627'; + t['\uFC81'] = '\u0643\u0644'; + t['\uFC82'] = '\u0643\u0645'; + t['\uFC83'] = '\u0643\u0649'; + t['\uFC84'] = '\u0643\u064A'; + t['\uFC85'] = '\u0644\u0645'; + t['\uFC86'] = '\u0644\u0649'; + t['\uFC87'] = '\u0644\u064A'; + t['\uFC88'] = '\u0645\u0627'; + t['\uFC89'] = '\u0645\u0645'; + t['\uFC8A'] = '\u0646\u0631'; + t['\uFC8B'] = '\u0646\u0632'; + t['\uFC8C'] = '\u0646\u0645'; + t['\uFC8D'] = '\u0646\u0646'; + t['\uFC8E'] = '\u0646\u0649'; + t['\uFC8F'] = '\u0646\u064A'; + t['\uFC90'] = '\u0649\u0670'; + t['\uFC91'] = '\u064A\u0631'; + t['\uFC92'] = '\u064A\u0632'; + t['\uFC93'] = '\u064A\u0645'; + t['\uFC94'] = '\u064A\u0646'; + t['\uFC95'] = '\u064A\u0649'; + t['\uFC96'] = '\u064A\u064A'; + t['\uFC97'] = '\u0626\u062C'; + t['\uFC98'] = '\u0626\u062D'; + t['\uFC99'] = '\u0626\u062E'; + t['\uFC9A'] = '\u0626\u0645'; + t['\uFC9B'] = '\u0626\u0647'; + t['\uFC9C'] = '\u0628\u062C'; + t['\uFC9D'] = '\u0628\u062D'; + t['\uFC9E'] = '\u0628\u062E'; + t['\uFC9F'] = '\u0628\u0645'; + t['\uFCA0'] = '\u0628\u0647'; + t['\uFCA1'] = '\u062A\u062C'; + t['\uFCA2'] = '\u062A\u062D'; + t['\uFCA3'] = '\u062A\u062E'; + t['\uFCA4'] = '\u062A\u0645'; + t['\uFCA5'] = '\u062A\u0647'; + t['\uFCA6'] = '\u062B\u0645'; + t['\uFCA7'] = '\u062C\u062D'; + t['\uFCA8'] = '\u062C\u0645'; + t['\uFCA9'] = '\u062D\u062C'; + t['\uFCAA'] = '\u062D\u0645'; + t['\uFCAB'] = '\u062E\u062C'; + t['\uFCAC'] = '\u062E\u0645'; + t['\uFCAD'] = '\u0633\u062C'; + t['\uFCAE'] = '\u0633\u062D'; + t['\uFCAF'] = '\u0633\u062E'; + t['\uFCB0'] = '\u0633\u0645'; + t['\uFCB1'] = '\u0635\u062D'; + t['\uFCB2'] = '\u0635\u062E'; + t['\uFCB3'] = '\u0635\u0645'; + t['\uFCB4'] = '\u0636\u062C'; + t['\uFCB5'] = '\u0636\u062D'; + t['\uFCB6'] = '\u0636\u062E'; + t['\uFCB7'] = '\u0636\u0645'; + t['\uFCB8'] = '\u0637\u062D'; + t['\uFCB9'] = '\u0638\u0645'; + t['\uFCBA'] = '\u0639\u062C'; + t['\uFCBB'] = '\u0639\u0645'; + t['\uFCBC'] = '\u063A\u062C'; + t['\uFCBD'] = '\u063A\u0645'; + t['\uFCBE'] = '\u0641\u062C'; + t['\uFCBF'] = '\u0641\u062D'; + t['\uFCC0'] = '\u0641\u062E'; + t['\uFCC1'] = '\u0641\u0645'; + t['\uFCC2'] = '\u0642\u062D'; + t['\uFCC3'] = '\u0642\u0645'; + t['\uFCC4'] = '\u0643\u062C'; + t['\uFCC5'] = '\u0643\u062D'; + t['\uFCC6'] = '\u0643\u062E'; + t['\uFCC7'] = '\u0643\u0644'; + t['\uFCC8'] = '\u0643\u0645'; + t['\uFCC9'] = '\u0644\u062C'; + t['\uFCCA'] = '\u0644\u062D'; + t['\uFCCB'] = '\u0644\u062E'; + t['\uFCCC'] = '\u0644\u0645'; + t['\uFCCD'] = '\u0644\u0647'; + t['\uFCCE'] = '\u0645\u062C'; + t['\uFCCF'] = '\u0645\u062D'; + t['\uFCD0'] = '\u0645\u062E'; + t['\uFCD1'] = '\u0645\u0645'; + t['\uFCD2'] = '\u0646\u062C'; + t['\uFCD3'] = '\u0646\u062D'; + t['\uFCD4'] = '\u0646\u062E'; + t['\uFCD5'] = '\u0646\u0645'; + t['\uFCD6'] = '\u0646\u0647'; + t['\uFCD7'] = '\u0647\u062C'; + t['\uFCD8'] = '\u0647\u0645'; + t['\uFCD9'] = '\u0647\u0670'; + t['\uFCDA'] = '\u064A\u062C'; + t['\uFCDB'] = '\u064A\u062D'; + t['\uFCDC'] = '\u064A\u062E'; + t['\uFCDD'] = '\u064A\u0645'; + t['\uFCDE'] = '\u064A\u0647'; + t['\uFCDF'] = '\u0626\u0645'; + t['\uFCE0'] = '\u0626\u0647'; + t['\uFCE1'] = '\u0628\u0645'; + t['\uFCE2'] = '\u0628\u0647'; + t['\uFCE3'] = '\u062A\u0645'; + t['\uFCE4'] = '\u062A\u0647'; + t['\uFCE5'] = '\u062B\u0645'; + t['\uFCE6'] = '\u062B\u0647'; + t['\uFCE7'] = '\u0633\u0645'; + t['\uFCE8'] = '\u0633\u0647'; + t['\uFCE9'] = '\u0634\u0645'; + t['\uFCEA'] = '\u0634\u0647'; + t['\uFCEB'] = '\u0643\u0644'; + t['\uFCEC'] = '\u0643\u0645'; + t['\uFCED'] = '\u0644\u0645'; + t['\uFCEE'] = '\u0646\u0645'; + t['\uFCEF'] = '\u0646\u0647'; + t['\uFCF0'] = '\u064A\u0645'; + t['\uFCF1'] = '\u064A\u0647'; + t['\uFCF2'] = '\u0640\u064E\u0651'; + t['\uFCF3'] = '\u0640\u064F\u0651'; + t['\uFCF4'] = '\u0640\u0650\u0651'; + t['\uFCF5'] = '\u0637\u0649'; + t['\uFCF6'] = '\u0637\u064A'; + t['\uFCF7'] = '\u0639\u0649'; + t['\uFCF8'] = '\u0639\u064A'; + t['\uFCF9'] = '\u063A\u0649'; + t['\uFCFA'] = '\u063A\u064A'; + t['\uFCFB'] = '\u0633\u0649'; + t['\uFCFC'] = '\u0633\u064A'; + t['\uFCFD'] = '\u0634\u0649'; + t['\uFCFE'] = '\u0634\u064A'; + t['\uFCFF'] = '\u062D\u0649'; + t['\uFD00'] = '\u062D\u064A'; + t['\uFD01'] = '\u062C\u0649'; + t['\uFD02'] = '\u062C\u064A'; + t['\uFD03'] = '\u062E\u0649'; + t['\uFD04'] = '\u062E\u064A'; + t['\uFD05'] = '\u0635\u0649'; + t['\uFD06'] = '\u0635\u064A'; + t['\uFD07'] = '\u0636\u0649'; + t['\uFD08'] = '\u0636\u064A'; + t['\uFD09'] = '\u0634\u062C'; + t['\uFD0A'] = '\u0634\u062D'; + t['\uFD0B'] = '\u0634\u062E'; + t['\uFD0C'] = '\u0634\u0645'; + t['\uFD0D'] = '\u0634\u0631'; + t['\uFD0E'] = '\u0633\u0631'; + t['\uFD0F'] = '\u0635\u0631'; + t['\uFD10'] = '\u0636\u0631'; + t['\uFD11'] = '\u0637\u0649'; + t['\uFD12'] = '\u0637\u064A'; + t['\uFD13'] = '\u0639\u0649'; + t['\uFD14'] = '\u0639\u064A'; + t['\uFD15'] = '\u063A\u0649'; + t['\uFD16'] = '\u063A\u064A'; + t['\uFD17'] = '\u0633\u0649'; + t['\uFD18'] = '\u0633\u064A'; + t['\uFD19'] = '\u0634\u0649'; + t['\uFD1A'] = '\u0634\u064A'; + t['\uFD1B'] = '\u062D\u0649'; + t['\uFD1C'] = '\u062D\u064A'; + t['\uFD1D'] = '\u062C\u0649'; + t['\uFD1E'] = '\u062C\u064A'; + t['\uFD1F'] = '\u062E\u0649'; + t['\uFD20'] = '\u062E\u064A'; + t['\uFD21'] = '\u0635\u0649'; + t['\uFD22'] = '\u0635\u064A'; + t['\uFD23'] = '\u0636\u0649'; + t['\uFD24'] = '\u0636\u064A'; + t['\uFD25'] = '\u0634\u062C'; + t['\uFD26'] = '\u0634\u062D'; + t['\uFD27'] = '\u0634\u062E'; + t['\uFD28'] = '\u0634\u0645'; + t['\uFD29'] = '\u0634\u0631'; + t['\uFD2A'] = '\u0633\u0631'; + t['\uFD2B'] = '\u0635\u0631'; + t['\uFD2C'] = '\u0636\u0631'; + t['\uFD2D'] = '\u0634\u062C'; + t['\uFD2E'] = '\u0634\u062D'; + t['\uFD2F'] = '\u0634\u062E'; + t['\uFD30'] = '\u0634\u0645'; + t['\uFD31'] = '\u0633\u0647'; + t['\uFD32'] = '\u0634\u0647'; + t['\uFD33'] = '\u0637\u0645'; + t['\uFD34'] = '\u0633\u062C'; + t['\uFD35'] = '\u0633\u062D'; + t['\uFD36'] = '\u0633\u062E'; + t['\uFD37'] = '\u0634\u062C'; + t['\uFD38'] = '\u0634\u062D'; + t['\uFD39'] = '\u0634\u062E'; + t['\uFD3A'] = '\u0637\u0645'; + t['\uFD3B'] = '\u0638\u0645'; + t['\uFD3C'] = '\u0627\u064B'; + t['\uFD3D'] = '\u0627\u064B'; + t['\uFD50'] = '\u062A\u062C\u0645'; + t['\uFD51'] = '\u062A\u062D\u062C'; + t['\uFD52'] = '\u062A\u062D\u062C'; + t['\uFD53'] = '\u062A\u062D\u0645'; + t['\uFD54'] = '\u062A\u062E\u0645'; + t['\uFD55'] = '\u062A\u0645\u062C'; + t['\uFD56'] = '\u062A\u0645\u062D'; + t['\uFD57'] = '\u062A\u0645\u062E'; + t['\uFD58'] = '\u062C\u0645\u062D'; + t['\uFD59'] = '\u062C\u0645\u062D'; + t['\uFD5A'] = '\u062D\u0645\u064A'; + t['\uFD5B'] = '\u062D\u0645\u0649'; + t['\uFD5C'] = '\u0633\u062D\u062C'; + t['\uFD5D'] = '\u0633\u062C\u062D'; + t['\uFD5E'] = '\u0633\u062C\u0649'; + t['\uFD5F'] = '\u0633\u0645\u062D'; + t['\uFD60'] = '\u0633\u0645\u062D'; + t['\uFD61'] = '\u0633\u0645\u062C'; + t['\uFD62'] = '\u0633\u0645\u0645'; + t['\uFD63'] = '\u0633\u0645\u0645'; + t['\uFD64'] = '\u0635\u062D\u062D'; + t['\uFD65'] = '\u0635\u062D\u062D'; + t['\uFD66'] = '\u0635\u0645\u0645'; + t['\uFD67'] = '\u0634\u062D\u0645'; + t['\uFD68'] = '\u0634\u062D\u0645'; + t['\uFD69'] = '\u0634\u062C\u064A'; + t['\uFD6A'] = '\u0634\u0645\u062E'; + t['\uFD6B'] = '\u0634\u0645\u062E'; + t['\uFD6C'] = '\u0634\u0645\u0645'; + t['\uFD6D'] = '\u0634\u0645\u0645'; + t['\uFD6E'] = '\u0636\u062D\u0649'; + t['\uFD6F'] = '\u0636\u062E\u0645'; + t['\uFD70'] = '\u0636\u062E\u0645'; + t['\uFD71'] = '\u0637\u0645\u062D'; + t['\uFD72'] = '\u0637\u0645\u062D'; + t['\uFD73'] = '\u0637\u0645\u0645'; + t['\uFD74'] = '\u0637\u0645\u064A'; + t['\uFD75'] = '\u0639\u062C\u0645'; + t['\uFD76'] = '\u0639\u0645\u0645'; + t['\uFD77'] = '\u0639\u0645\u0645'; + t['\uFD78'] = '\u0639\u0645\u0649'; + t['\uFD79'] = '\u063A\u0645\u0645'; + t['\uFD7A'] = '\u063A\u0645\u064A'; + t['\uFD7B'] = '\u063A\u0645\u0649'; + t['\uFD7C'] = '\u0641\u062E\u0645'; + t['\uFD7D'] = '\u0641\u062E\u0645'; + t['\uFD7E'] = '\u0642\u0645\u062D'; + t['\uFD7F'] = '\u0642\u0645\u0645'; + t['\uFD80'] = '\u0644\u062D\u0645'; + t['\uFD81'] = '\u0644\u062D\u064A'; + t['\uFD82'] = '\u0644\u062D\u0649'; + t['\uFD83'] = '\u0644\u062C\u062C'; + t['\uFD84'] = '\u0644\u062C\u062C'; + t['\uFD85'] = '\u0644\u062E\u0645'; + t['\uFD86'] = '\u0644\u062E\u0645'; + t['\uFD87'] = '\u0644\u0645\u062D'; + t['\uFD88'] = '\u0644\u0645\u062D'; + t['\uFD89'] = '\u0645\u062D\u062C'; + t['\uFD8A'] = '\u0645\u062D\u0645'; + t['\uFD8B'] = '\u0645\u062D\u064A'; + t['\uFD8C'] = '\u0645\u062C\u062D'; + t['\uFD8D'] = '\u0645\u062C\u0645'; + t['\uFD8E'] = '\u0645\u062E\u062C'; + t['\uFD8F'] = '\u0645\u062E\u0645'; + t['\uFD92'] = '\u0645\u062C\u062E'; + t['\uFD93'] = '\u0647\u0645\u062C'; + t['\uFD94'] = '\u0647\u0645\u0645'; + t['\uFD95'] = '\u0646\u062D\u0645'; + t['\uFD96'] = '\u0646\u062D\u0649'; + t['\uFD97'] = '\u0646\u062C\u0645'; + t['\uFD98'] = '\u0646\u062C\u0645'; + t['\uFD99'] = '\u0646\u062C\u0649'; + t['\uFD9A'] = '\u0646\u0645\u064A'; + t['\uFD9B'] = '\u0646\u0645\u0649'; + t['\uFD9C'] = '\u064A\u0645\u0645'; + t['\uFD9D'] = '\u064A\u0645\u0645'; + t['\uFD9E'] = '\u0628\u062E\u064A'; + t['\uFD9F'] = '\u062A\u062C\u064A'; + t['\uFDA0'] = '\u062A\u062C\u0649'; + t['\uFDA1'] = '\u062A\u062E\u064A'; + t['\uFDA2'] = '\u062A\u062E\u0649'; + t['\uFDA3'] = '\u062A\u0645\u064A'; + t['\uFDA4'] = '\u062A\u0645\u0649'; + t['\uFDA5'] = '\u062C\u0645\u064A'; + t['\uFDA6'] = '\u062C\u062D\u0649'; + t['\uFDA7'] = '\u062C\u0645\u0649'; + t['\uFDA8'] = '\u0633\u062E\u0649'; + t['\uFDA9'] = '\u0635\u062D\u064A'; + t['\uFDAA'] = '\u0634\u062D\u064A'; + t['\uFDAB'] = '\u0636\u062D\u064A'; + t['\uFDAC'] = '\u0644\u062C\u064A'; + t['\uFDAD'] = '\u0644\u0645\u064A'; + t['\uFDAE'] = '\u064A\u062D\u064A'; + t['\uFDAF'] = '\u064A\u062C\u064A'; + t['\uFDB0'] = '\u064A\u0645\u064A'; + t['\uFDB1'] = '\u0645\u0645\u064A'; + t['\uFDB2'] = '\u0642\u0645\u064A'; + t['\uFDB3'] = '\u0646\u062D\u064A'; + t['\uFDB4'] = '\u0642\u0645\u062D'; + t['\uFDB5'] = '\u0644\u062D\u0645'; + t['\uFDB6'] = '\u0639\u0645\u064A'; + t['\uFDB7'] = '\u0643\u0645\u064A'; + t['\uFDB8'] = '\u0646\u062C\u062D'; + t['\uFDB9'] = '\u0645\u062E\u064A'; + t['\uFDBA'] = '\u0644\u062C\u0645'; + t['\uFDBB'] = '\u0643\u0645\u0645'; + t['\uFDBC'] = '\u0644\u062C\u0645'; + t['\uFDBD'] = '\u0646\u062C\u062D'; + t['\uFDBE'] = '\u062C\u062D\u064A'; + t['\uFDBF'] = '\u062D\u062C\u064A'; + t['\uFDC0'] = '\u0645\u062C\u064A'; + t['\uFDC1'] = '\u0641\u0645\u064A'; + t['\uFDC2'] = '\u0628\u062D\u064A'; + t['\uFDC3'] = '\u0643\u0645\u0645'; + t['\uFDC4'] = '\u0639\u062C\u0645'; + t['\uFDC5'] = '\u0635\u0645\u0645'; + t['\uFDC6'] = '\u0633\u062E\u064A'; + t['\uFDC7'] = '\u0646\u062C\u064A'; + t['\uFE49'] = '\u203E'; + t['\uFE4A'] = '\u203E'; + t['\uFE4B'] = '\u203E'; + t['\uFE4C'] = '\u203E'; + t['\uFE4D'] = '\u005F'; + t['\uFE4E'] = '\u005F'; + t['\uFE4F'] = '\u005F'; + t['\uFE80'] = '\u0621'; + t['\uFE81'] = '\u0622'; + t['\uFE82'] = '\u0622'; + t['\uFE83'] = '\u0623'; + t['\uFE84'] = '\u0623'; + t['\uFE85'] = '\u0624'; + t['\uFE86'] = '\u0624'; + t['\uFE87'] = '\u0625'; + t['\uFE88'] = '\u0625'; + t['\uFE89'] = '\u0626'; + t['\uFE8A'] = '\u0626'; + t['\uFE8B'] = '\u0626'; + t['\uFE8C'] = '\u0626'; + t['\uFE8D'] = '\u0627'; + t['\uFE8E'] = '\u0627'; + t['\uFE8F'] = '\u0628'; + t['\uFE90'] = '\u0628'; + t['\uFE91'] = '\u0628'; + t['\uFE92'] = '\u0628'; + t['\uFE93'] = '\u0629'; + t['\uFE94'] = '\u0629'; + t['\uFE95'] = '\u062A'; + t['\uFE96'] = '\u062A'; + t['\uFE97'] = '\u062A'; + t['\uFE98'] = '\u062A'; + t['\uFE99'] = '\u062B'; + t['\uFE9A'] = '\u062B'; + t['\uFE9B'] = '\u062B'; + t['\uFE9C'] = '\u062B'; + t['\uFE9D'] = '\u062C'; + t['\uFE9E'] = '\u062C'; + t['\uFE9F'] = '\u062C'; + t['\uFEA0'] = '\u062C'; + t['\uFEA1'] = '\u062D'; + t['\uFEA2'] = '\u062D'; + t['\uFEA3'] = '\u062D'; + t['\uFEA4'] = '\u062D'; + t['\uFEA5'] = '\u062E'; + t['\uFEA6'] = '\u062E'; + t['\uFEA7'] = '\u062E'; + t['\uFEA8'] = '\u062E'; + t['\uFEA9'] = '\u062F'; + t['\uFEAA'] = '\u062F'; + t['\uFEAB'] = '\u0630'; + t['\uFEAC'] = '\u0630'; + t['\uFEAD'] = '\u0631'; + t['\uFEAE'] = '\u0631'; + t['\uFEAF'] = '\u0632'; + t['\uFEB0'] = '\u0632'; + t['\uFEB1'] = '\u0633'; + t['\uFEB2'] = '\u0633'; + t['\uFEB3'] = '\u0633'; + t['\uFEB4'] = '\u0633'; + t['\uFEB5'] = '\u0634'; + t['\uFEB6'] = '\u0634'; + t['\uFEB7'] = '\u0634'; + t['\uFEB8'] = '\u0634'; + t['\uFEB9'] = '\u0635'; + t['\uFEBA'] = '\u0635'; + t['\uFEBB'] = '\u0635'; + t['\uFEBC'] = '\u0635'; + t['\uFEBD'] = '\u0636'; + t['\uFEBE'] = '\u0636'; + t['\uFEBF'] = '\u0636'; + t['\uFEC0'] = '\u0636'; + t['\uFEC1'] = '\u0637'; + t['\uFEC2'] = '\u0637'; + t['\uFEC3'] = '\u0637'; + t['\uFEC4'] = '\u0637'; + t['\uFEC5'] = '\u0638'; + t['\uFEC6'] = '\u0638'; + t['\uFEC7'] = '\u0638'; + t['\uFEC8'] = '\u0638'; + t['\uFEC9'] = '\u0639'; + t['\uFECA'] = '\u0639'; + t['\uFECB'] = '\u0639'; + t['\uFECC'] = '\u0639'; + t['\uFECD'] = '\u063A'; + t['\uFECE'] = '\u063A'; + t['\uFECF'] = '\u063A'; + t['\uFED0'] = '\u063A'; + t['\uFED1'] = '\u0641'; + t['\uFED2'] = '\u0641'; + t['\uFED3'] = '\u0641'; + t['\uFED4'] = '\u0641'; + t['\uFED5'] = '\u0642'; + t['\uFED6'] = '\u0642'; + t['\uFED7'] = '\u0642'; + t['\uFED8'] = '\u0642'; + t['\uFED9'] = '\u0643'; + t['\uFEDA'] = '\u0643'; + t['\uFEDB'] = '\u0643'; + t['\uFEDC'] = '\u0643'; + t['\uFEDD'] = '\u0644'; + t['\uFEDE'] = '\u0644'; + t['\uFEDF'] = '\u0644'; + t['\uFEE0'] = '\u0644'; + t['\uFEE1'] = '\u0645'; + t['\uFEE2'] = '\u0645'; + t['\uFEE3'] = '\u0645'; + t['\uFEE4'] = '\u0645'; + t['\uFEE5'] = '\u0646'; + t['\uFEE6'] = '\u0646'; + t['\uFEE7'] = '\u0646'; + t['\uFEE8'] = '\u0646'; + t['\uFEE9'] = '\u0647'; + t['\uFEEA'] = '\u0647'; + t['\uFEEB'] = '\u0647'; + t['\uFEEC'] = '\u0647'; + t['\uFEED'] = '\u0648'; + t['\uFEEE'] = '\u0648'; + t['\uFEEF'] = '\u0649'; + t['\uFEF0'] = '\u0649'; + t['\uFEF1'] = '\u064A'; + t['\uFEF2'] = '\u064A'; + t['\uFEF3'] = '\u064A'; + t['\uFEF4'] = '\u064A'; + t['\uFEF5'] = '\u0644\u0622'; + t['\uFEF6'] = '\u0644\u0622'; + t['\uFEF7'] = '\u0644\u0623'; + t['\uFEF8'] = '\u0644\u0623'; + t['\uFEF9'] = '\u0644\u0625'; + t['\uFEFA'] = '\u0644\u0625'; + t['\uFEFB'] = '\u0644\u0627'; + t['\uFEFC'] = '\u0644\u0627'; +}); +function reverseIfRtl(chars) { + var charsLength = chars.length; + if (charsLength <= 1 || !isRTLRangeFor(chars.charCodeAt(0))) { + return chars; + } + var s = ''; + for (var ii = charsLength - 1; ii >= 0; ii--) { + s += chars[ii]; + } + return s; +} +exports.mapSpecialUnicodeValues = mapSpecialUnicodeValues; +exports.reverseIfRtl = reverseIfRtl; +exports.getUnicodeRangeFor = getUnicodeRangeFor; +exports.getNormalizedUnicodes = getNormalizedUnicodes; +exports.getUnicodeForGlyph = getUnicodeForGlyph; + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var coreWorker = __w_pdfjs_require__(8); +var globalScope = sharedUtil.globalScope; +var OK_RESPONSE = 200; +var PARTIAL_CONTENT_RESPONSE = 206; +function NetworkManager(url, args) { + this.url = url; + args = args || {}; + this.isHttp = /^https?:/i.test(url); + this.httpHeaders = this.isHttp && args.httpHeaders || {}; + this.withCredentials = args.withCredentials || false; + this.getXhr = args.getXhr || function NetworkManager_getXhr() { + return new XMLHttpRequest(); + }; + this.currXhrId = 0; + this.pendingRequests = Object.create(null); + this.loadedRequests = Object.create(null); +} +function getArrayBuffer(xhr) { + var data = xhr.response; + if (typeof data !== 'string') { + return data; + } + var length = data.length; + var array = new Uint8Array(length); + for (var i = 0; i < length; i++) { + array[i] = data.charCodeAt(i) & 0xFF; + } + return array.buffer; +} +var supportsMozChunked = function supportsMozChunkedClosure() { + try { + var x = new XMLHttpRequest(); + x.open('GET', globalScope.location.href); + x.responseType = 'moz-chunked-arraybuffer'; + return x.responseType === 'moz-chunked-arraybuffer'; + } catch (e) { + return false; + } +}(); +NetworkManager.prototype = { + requestRange: function NetworkManager_requestRange(begin, end, listeners) { + var args = { + begin: begin, + end: end + }; + for (var prop in listeners) { + args[prop] = listeners[prop]; + } + return this.request(args); + }, + requestFull: function NetworkManager_requestFull(listeners) { + return this.request(listeners); + }, + request: function NetworkManager_request(args) { + var xhr = this.getXhr(); + var xhrId = this.currXhrId++; + var pendingRequest = this.pendingRequests[xhrId] = { xhr: xhr }; + xhr.open('GET', this.url); + xhr.withCredentials = this.withCredentials; + for (var property in this.httpHeaders) { + var value = this.httpHeaders[property]; + if (typeof value === 'undefined') { + continue; + } + xhr.setRequestHeader(property, value); + } + if (this.isHttp && 'begin' in args && 'end' in args) { + var rangeStr = args.begin + '-' + (args.end - 1); + xhr.setRequestHeader('Range', 'bytes=' + rangeStr); + pendingRequest.expectedStatus = 206; + } else { + pendingRequest.expectedStatus = 200; + } + var useMozChunkedLoading = supportsMozChunked && !!args.onProgressiveData; + if (useMozChunkedLoading) { + xhr.responseType = 'moz-chunked-arraybuffer'; + pendingRequest.onProgressiveData = args.onProgressiveData; + pendingRequest.mozChunked = true; + } else { + xhr.responseType = 'arraybuffer'; + } + if (args.onError) { + xhr.onerror = function (evt) { + args.onError(xhr.status); + }; + } + xhr.onreadystatechange = this.onStateChange.bind(this, xhrId); + xhr.onprogress = this.onProgress.bind(this, xhrId); + pendingRequest.onHeadersReceived = args.onHeadersReceived; + pendingRequest.onDone = args.onDone; + pendingRequest.onError = args.onError; + pendingRequest.onProgress = args.onProgress; + xhr.send(null); + return xhrId; + }, + onProgress: function NetworkManager_onProgress(xhrId, evt) { + var pendingRequest = this.pendingRequests[xhrId]; + if (!pendingRequest) { + return; + } + if (pendingRequest.mozChunked) { + var chunk = getArrayBuffer(pendingRequest.xhr); + pendingRequest.onProgressiveData(chunk); + } + var onProgress = pendingRequest.onProgress; + if (onProgress) { + onProgress(evt); + } + }, + onStateChange: function NetworkManager_onStateChange(xhrId, evt) { + var pendingRequest = this.pendingRequests[xhrId]; + if (!pendingRequest) { + return; + } + var xhr = pendingRequest.xhr; + if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) { + pendingRequest.onHeadersReceived(); + delete pendingRequest.onHeadersReceived; + } + if (xhr.readyState !== 4) { + return; + } + if (!(xhrId in this.pendingRequests)) { + return; + } + delete this.pendingRequests[xhrId]; + if (xhr.status === 0 && this.isHttp) { + if (pendingRequest.onError) { + pendingRequest.onError(xhr.status); + } + return; + } + var xhrStatus = xhr.status || OK_RESPONSE; + var ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE; + if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) { + if (pendingRequest.onError) { + pendingRequest.onError(xhr.status); + } + return; + } + this.loadedRequests[xhrId] = true; + var chunk = getArrayBuffer(xhr); + if (xhrStatus === PARTIAL_CONTENT_RESPONSE) { + var rangeHeader = xhr.getResponseHeader('Content-Range'); + var matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader); + var begin = parseInt(matches[1], 10); + pendingRequest.onDone({ + begin: begin, + chunk: chunk + }); + } else if (pendingRequest.onProgressiveData) { + pendingRequest.onDone(null); + } else if (chunk) { + pendingRequest.onDone({ + begin: 0, + chunk: chunk + }); + } else if (pendingRequest.onError) { + pendingRequest.onError(xhr.status); + } + }, + hasPendingRequests: function NetworkManager_hasPendingRequests() { + for (var xhrId in this.pendingRequests) { + return true; + } + return false; + }, + getRequestXhr: function NetworkManager_getXhr(xhrId) { + return this.pendingRequests[xhrId].xhr; + }, + isStreamingRequest: function NetworkManager_isStreamingRequest(xhrId) { + return !!this.pendingRequests[xhrId].onProgressiveData; + }, + isPendingRequest: function NetworkManager_isPendingRequest(xhrId) { + return xhrId in this.pendingRequests; + }, + isLoadedRequest: function NetworkManager_isLoadedRequest(xhrId) { + return xhrId in this.loadedRequests; + }, + abortAllRequests: function NetworkManager_abortAllRequests() { + for (var xhrId in this.pendingRequests) { + this.abortRequest(xhrId | 0); + } + }, + abortRequest: function NetworkManager_abortRequest(xhrId) { + var xhr = this.pendingRequests[xhrId].xhr; + delete this.pendingRequests[xhrId]; + xhr.abort(); + } +}; +var assert = sharedUtil.assert; +var createPromiseCapability = sharedUtil.createPromiseCapability; +var isInt = sharedUtil.isInt; +var MissingPDFException = sharedUtil.MissingPDFException; +var UnexpectedResponseException = sharedUtil.UnexpectedResponseException; +function PDFNetworkStream(options) { + this._options = options; + var source = options.source; + this._manager = new NetworkManager(source.url, { + httpHeaders: source.httpHeaders, + withCredentials: source.withCredentials + }); + this._rangeChunkSize = source.rangeChunkSize; + this._fullRequestReader = null; + this._rangeRequestReaders = []; +} +PDFNetworkStream.prototype = { + _onRangeRequestReaderClosed: function PDFNetworkStream_onRangeRequestReaderClosed(reader) { + var i = this._rangeRequestReaders.indexOf(reader); + if (i >= 0) { + this._rangeRequestReaders.splice(i, 1); + } + }, + getFullReader: function PDFNetworkStream_getFullReader() { + assert(!this._fullRequestReader); + this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._options); + return this._fullRequestReader; + }, + getRangeReader: function PDFNetworkStream_getRangeReader(begin, end) { + var reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end); + reader.onClosed = this._onRangeRequestReaderClosed.bind(this); + this._rangeRequestReaders.push(reader); + return reader; + }, + cancelAllRequests: function PDFNetworkStream_cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); + } + var readers = this._rangeRequestReaders.slice(0); + readers.forEach(function (reader) { + reader.cancel(reason); + }); + } +}; +function PDFNetworkStreamFullRequestReader(manager, options) { + this._manager = manager; + var source = options.source; + var args = { + onHeadersReceived: this._onHeadersReceived.bind(this), + onProgressiveData: source.disableStream ? null : this._onProgressiveData.bind(this), + onDone: this._onDone.bind(this), + onError: this._onError.bind(this), + onProgress: this._onProgress.bind(this) + }; + this._url = source.url; + this._fullRequestId = manager.requestFull(args); + this._headersReceivedCapability = createPromiseCapability(); + this._disableRange = options.disableRange || false; + this._contentLength = source.length; + this._rangeChunkSize = source.rangeChunkSize; + if (!this._rangeChunkSize && !this._disableRange) { + this._disableRange = true; + } + this._isStreamingSupported = false; + this._isRangeSupported = false; + this._cachedChunks = []; + this._requests = []; + this._done = false; + this._storedError = undefined; + this.onProgress = null; +} +PDFNetworkStreamFullRequestReader.prototype = { + _validateRangeRequestCapabilities: function PDFNetworkStreamFullRequestReader_validateRangeRequestCapabilities() { + if (this._disableRange) { + return false; + } + var networkManager = this._manager; + if (!networkManager.isHttp) { + return false; + } + var fullRequestXhrId = this._fullRequestId; + var fullRequestXhr = networkManager.getRequestXhr(fullRequestXhrId); + if (fullRequestXhr.getResponseHeader('Accept-Ranges') !== 'bytes') { + return false; + } + var contentEncoding = fullRequestXhr.getResponseHeader('Content-Encoding') || 'identity'; + if (contentEncoding !== 'identity') { + return false; + } + var length = fullRequestXhr.getResponseHeader('Content-Length'); + length = parseInt(length, 10); + if (!isInt(length)) { + return false; + } + this._contentLength = length; + if (length <= 2 * this._rangeChunkSize) { + return false; + } + return true; + }, + _onHeadersReceived: function PDFNetworkStreamFullRequestReader_onHeadersReceived() { + if (this._validateRangeRequestCapabilities()) { + this._isRangeSupported = true; + } + var networkManager = this._manager; + var fullRequestXhrId = this._fullRequestId; + if (networkManager.isStreamingRequest(fullRequestXhrId)) { + this._isStreamingSupported = true; + } else if (this._isRangeSupported) { + networkManager.abortRequest(fullRequestXhrId); + } + this._headersReceivedCapability.resolve(); + }, + _onProgressiveData: function PDFNetworkStreamFullRequestReader_onProgressiveData(chunk) { + if (this._requests.length > 0) { + var requestCapability = this._requests.shift(); + requestCapability.resolve({ + value: chunk, + done: false + }); + } else { + this._cachedChunks.push(chunk); + } + }, + _onDone: function PDFNetworkStreamFullRequestReader_onDone(args) { + if (args) { + this._onProgressiveData(args.chunk); + } + this._done = true; + if (this._cachedChunks.length > 0) { + return; + } + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true + }); + }); + this._requests = []; + }, + _onError: function PDFNetworkStreamFullRequestReader_onError(status) { + var url = this._url; + var exception; + if (status === 404 || status === 0 && /^file:/.test(url)) { + exception = new MissingPDFException('Missing PDF "' + url + '".'); + } else { + exception = new UnexpectedResponseException('Unexpected server response (' + status + ') while retrieving PDF "' + url + '".', status); + } + this._storedError = exception; + this._headersReceivedCapability.reject(exception); + this._requests.forEach(function (requestCapability) { + requestCapability.reject(exception); + }); + this._requests = []; + this._cachedChunks = []; + }, + _onProgress: function PDFNetworkStreamFullRequestReader_onProgress(data) { + if (this.onProgress) { + this.onProgress({ + loaded: data.loaded, + total: data.lengthComputable ? data.total : this._contentLength + }); + } + }, + get isRangeSupported() { + return this._isRangeSupported; + }, + get isStreamingSupported() { + return this._isStreamingSupported; + }, + get contentLength() { + return this._contentLength; + }, + get headersReady() { + return this._headersReceivedCapability.promise; + }, + read: function PDFNetworkStreamFullRequestReader_read() { + if (this._storedError) { + return Promise.reject(this._storedError); + } + if (this._cachedChunks.length > 0) { + var chunk = this._cachedChunks.shift(); + return Promise.resolve(chunk); + } + if (this._done) { + return Promise.resolve({ + value: undefined, + done: true + }); + } + var requestCapability = createPromiseCapability(); + this._requests.push(requestCapability); + return requestCapability.promise; + }, + cancel: function PDFNetworkStreamFullRequestReader_cancel(reason) { + this._done = true; + this._headersReceivedCapability.reject(reason); + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true + }); + }); + this._requests = []; + if (this._manager.isPendingRequest(this._fullRequestId)) { + this._manager.abortRequest(this._fullRequestId); + } + this._fullRequestReader = null; + } +}; +function PDFNetworkStreamRangeRequestReader(manager, begin, end) { + this._manager = manager; + var args = { + onDone: this._onDone.bind(this), + onProgress: this._onProgress.bind(this) + }; + this._requestId = manager.requestRange(begin, end, args); + this._requests = []; + this._queuedChunk = null; + this._done = false; + this.onProgress = null; + this.onClosed = null; +} +PDFNetworkStreamRangeRequestReader.prototype = { + _close: function PDFNetworkStreamRangeRequestReader_close() { + if (this.onClosed) { + this.onClosed(this); + } + }, + _onDone: function PDFNetworkStreamRangeRequestReader_onDone(data) { + var chunk = data.chunk; + if (this._requests.length > 0) { + var requestCapability = this._requests.shift(); + requestCapability.resolve({ + value: chunk, + done: false + }); + } else { + this._queuedChunk = chunk; + } + this._done = true; + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true + }); + }); + this._requests = []; + this._close(); + }, + _onProgress: function PDFNetworkStreamRangeRequestReader_onProgress(evt) { + if (!this.isStreamingSupported && this.onProgress) { + this.onProgress({ loaded: evt.loaded }); + } + }, + get isStreamingSupported() { + return false; + }, + read: function PDFNetworkStreamRangeRequestReader_read() { + if (this._queuedChunk !== null) { + var chunk = this._queuedChunk; + this._queuedChunk = null; + return Promise.resolve({ + value: chunk, + done: false + }); + } + if (this._done) { + return Promise.resolve({ + value: undefined, + done: true + }); + } + var requestCapability = createPromiseCapability(); + this._requests.push(requestCapability); + return requestCapability.promise; + }, + cancel: function PDFNetworkStreamRangeRequestReader_cancel(reason) { + this._done = true; + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true + }); + }); + this._requests = []; + if (this._manager.isPendingRequest(this._requestId)) { + this._manager.abortRequest(this._requestId); + } + this._close(); + } +}; +coreWorker.setPDFNetworkStreamClass(PDFNetworkStream); +exports.PDFNetworkStream = PDFNetworkStream; +exports.NetworkManager = NetworkManager; + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var corePrimitives = __w_pdfjs_require__(1); +var coreStream = __w_pdfjs_require__(2); +var coreColorSpace = __w_pdfjs_require__(3); +var coreObj = __w_pdfjs_require__(16); +var coreEvaluator = __w_pdfjs_require__(14); +var AnnotationBorderStyleType = sharedUtil.AnnotationBorderStyleType; +var AnnotationFieldFlag = sharedUtil.AnnotationFieldFlag; +var AnnotationFlag = sharedUtil.AnnotationFlag; +var AnnotationType = sharedUtil.AnnotationType; +var OPS = sharedUtil.OPS; +var Util = sharedUtil.Util; +var isArray = sharedUtil.isArray; +var isInt = sharedUtil.isInt; +var stringToBytes = sharedUtil.stringToBytes; +var stringToPDFString = sharedUtil.stringToPDFString; +var warn = sharedUtil.warn; +var Dict = corePrimitives.Dict; +var isDict = corePrimitives.isDict; +var isName = corePrimitives.isName; +var isRef = corePrimitives.isRef; +var isStream = corePrimitives.isStream; +var Stream = coreStream.Stream; +var ColorSpace = coreColorSpace.ColorSpace; +var Catalog = coreObj.Catalog; +var ObjectLoader = coreObj.ObjectLoader; +var FileSpec = coreObj.FileSpec; +var OperatorList = coreEvaluator.OperatorList; +function AnnotationFactory() { +} +AnnotationFactory.prototype = { + create: function AnnotationFactory_create(xref, ref, pdfManager, idFactory) { + var dict = xref.fetchIfRef(ref); + if (!isDict(dict)) { + return; + } + var id = isRef(ref) ? ref.toString() : 'annot_' + idFactory.createObjId(); + var subtype = dict.get('Subtype'); + subtype = isName(subtype) ? subtype.name : null; + var parameters = { + xref: xref, + dict: dict, + ref: isRef(ref) ? ref : null, + subtype: subtype, + id: id, + pdfManager: pdfManager + }; + switch (subtype) { + case 'Link': + return new LinkAnnotation(parameters); + case 'Text': + return new TextAnnotation(parameters); + case 'Widget': + var fieldType = Util.getInheritableProperty(dict, 'FT'); + fieldType = isName(fieldType) ? fieldType.name : null; + switch (fieldType) { + case 'Tx': + return new TextWidgetAnnotation(parameters); + case 'Btn': + return new ButtonWidgetAnnotation(parameters); + case 'Ch': + return new ChoiceWidgetAnnotation(parameters); + } + warn('Unimplemented widget field type "' + fieldType + '", ' + 'falling back to base field type.'); + return new WidgetAnnotation(parameters); + case 'Popup': + return new PopupAnnotation(parameters); + case 'Highlight': + return new HighlightAnnotation(parameters); + case 'Underline': + return new UnderlineAnnotation(parameters); + case 'Squiggly': + return new SquigglyAnnotation(parameters); + case 'StrikeOut': + return new StrikeOutAnnotation(parameters); + case 'FileAttachment': + return new FileAttachmentAnnotation(parameters); + default: + if (!subtype) { + warn('Annotation is missing the required /Subtype.'); + } else { + warn('Unimplemented annotation type "' + subtype + '", ' + 'falling back to base annotation.'); + } + return new Annotation(parameters); + } + } +}; +var Annotation = function AnnotationClosure() { + function getTransformMatrix(rect, bbox, matrix) { + var bounds = Util.getAxialAlignedBoundingBox(bbox, matrix); + var minX = bounds[0]; + var minY = bounds[1]; + var maxX = bounds[2]; + var maxY = bounds[3]; + if (minX === maxX || minY === maxY) { + return [ + 1, + 0, + 0, + 1, + rect[0], + rect[1] + ]; + } + var xRatio = (rect[2] - rect[0]) / (maxX - minX); + var yRatio = (rect[3] - rect[1]) / (maxY - minY); + return [ + xRatio, + 0, + 0, + yRatio, + rect[0] - minX * xRatio, + rect[1] - minY * yRatio + ]; + } + function Annotation(params) { + var dict = params.dict; + this.setFlags(dict.get('F')); + this.setRectangle(dict.getArray('Rect')); + this.setColor(dict.getArray('C')); + this.setBorderStyle(dict); + this.setAppearance(dict); + this.data = {}; + this.data.id = params.id; + this.data.subtype = params.subtype; + this.data.annotationFlags = this.flags; + this.data.rect = this.rectangle; + this.data.color = this.color; + this.data.borderStyle = this.borderStyle; + this.data.hasAppearance = !!this.appearance; + } + Annotation.prototype = { + _hasFlag: function Annotation_hasFlag(flags, flag) { + return !!(flags & flag); + }, + _isViewable: function Annotation_isViewable(flags) { + return !this._hasFlag(flags, AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, AnnotationFlag.HIDDEN) && !this._hasFlag(flags, AnnotationFlag.NOVIEW); + }, + _isPrintable: function AnnotationFlag_isPrintable(flags) { + return this._hasFlag(flags, AnnotationFlag.PRINT) && !this._hasFlag(flags, AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, AnnotationFlag.HIDDEN); + }, + get viewable() { + if (this.flags === 0) { + return true; + } + return this._isViewable(this.flags); + }, + get printable() { + if (this.flags === 0) { + return false; + } + return this._isPrintable(this.flags); + }, + setFlags: function Annotation_setFlags(flags) { + this.flags = isInt(flags) && flags > 0 ? flags : 0; + }, + hasFlag: function Annotation_hasFlag(flag) { + return this._hasFlag(this.flags, flag); + }, + setRectangle: function Annotation_setRectangle(rectangle) { + if (isArray(rectangle) && rectangle.length === 4) { + this.rectangle = Util.normalizeRect(rectangle); + } else { + this.rectangle = [ + 0, + 0, + 0, + 0 + ]; + } + }, + setColor: function Annotation_setColor(color) { + var rgbColor = new Uint8Array(3); + if (!isArray(color)) { + this.color = rgbColor; + return; + } + switch (color.length) { + case 0: + this.color = null; + break; + case 1: + ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0); + this.color = rgbColor; + break; + case 3: + ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0); + this.color = rgbColor; + break; + case 4: + ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0); + this.color = rgbColor; + break; + default: + this.color = rgbColor; + break; + } + }, + setBorderStyle: function Annotation_setBorderStyle(borderStyle) { + this.borderStyle = new AnnotationBorderStyle(); + if (!isDict(borderStyle)) { + return; + } + if (borderStyle.has('BS')) { + var dict = borderStyle.get('BS'); + var dictType = dict.get('Type'); + if (!dictType || isName(dictType, 'Border')) { + this.borderStyle.setWidth(dict.get('W')); + this.borderStyle.setStyle(dict.get('S')); + this.borderStyle.setDashArray(dict.getArray('D')); + } + } else if (borderStyle.has('Border')) { + var array = borderStyle.getArray('Border'); + if (isArray(array) && array.length >= 3) { + this.borderStyle.setHorizontalCornerRadius(array[0]); + this.borderStyle.setVerticalCornerRadius(array[1]); + this.borderStyle.setWidth(array[2]); + if (array.length === 4) { + this.borderStyle.setDashArray(array[3]); + } + } + } else { + this.borderStyle.setWidth(0); + } + }, + setAppearance: function Annotation_setAppearance(dict) { + this.appearance = null; + var appearanceStates = dict.get('AP'); + if (!isDict(appearanceStates)) { + return; + } + var normalAppearanceState = appearanceStates.get('N'); + if (isStream(normalAppearanceState)) { + this.appearance = normalAppearanceState; + return; + } + if (!isDict(normalAppearanceState)) { + return; + } + var as = dict.get('AS'); + if (!isName(as) || !normalAppearanceState.has(as.name)) { + return; + } + this.appearance = normalAppearanceState.get(as.name); + }, + _preparePopup: function Annotation_preparePopup(dict) { + if (!dict.has('C')) { + this.data.color = null; + } + this.data.hasPopup = dict.has('Popup'); + this.data.title = stringToPDFString(dict.get('T') || ''); + this.data.contents = stringToPDFString(dict.get('Contents') || ''); + }, + loadResources: function Annotation_loadResources(keys) { + return new Promise(function (resolve, reject) { + this.appearance.dict.getAsync('Resources').then(function (resources) { + if (!resources) { + resolve(); + return; + } + var objectLoader = new ObjectLoader(resources.map, keys, resources.xref); + objectLoader.load().then(function () { + resolve(resources); + }, reject); + }, reject); + }.bind(this)); + }, + getOperatorList: function Annotation_getOperatorList(evaluator, task, renderForms) { + if (!this.appearance) { + return Promise.resolve(new OperatorList()); + } + var data = this.data; + var appearanceDict = this.appearance.dict; + var resourcesPromise = this.loadResources([ + 'ExtGState', + 'ColorSpace', + 'Pattern', + 'Shading', + 'XObject', + 'Font' + ]); + var bbox = appearanceDict.getArray('BBox') || [ + 0, + 0, + 1, + 1 + ]; + var matrix = appearanceDict.getArray('Matrix') || [ + 1, + 0, + 0, + 1, + 0, + 0 + ]; + var transform = getTransformMatrix(data.rect, bbox, matrix); + var self = this; + return resourcesPromise.then(function (resources) { + var opList = new OperatorList(); + opList.addOp(OPS.beginAnnotation, [ + data.rect, + transform, + matrix + ]); + return evaluator.getOperatorList(self.appearance, task, resources, opList).then(function () { + opList.addOp(OPS.endAnnotation, []); + self.appearance.reset(); + return opList; + }); + }); + } + }; + return Annotation; +}(); +var AnnotationBorderStyle = function AnnotationBorderStyleClosure() { + function AnnotationBorderStyle() { + this.width = 1; + this.style = AnnotationBorderStyleType.SOLID; + this.dashArray = [3]; + this.horizontalCornerRadius = 0; + this.verticalCornerRadius = 0; + } + AnnotationBorderStyle.prototype = { + setWidth: function AnnotationBorderStyle_setWidth(width) { + if (width === (width | 0)) { + this.width = width; + } + }, + setStyle: function AnnotationBorderStyle_setStyle(style) { + if (!style) { + return; + } + switch (style.name) { + case 'S': + this.style = AnnotationBorderStyleType.SOLID; + break; + case 'D': + this.style = AnnotationBorderStyleType.DASHED; + break; + case 'B': + this.style = AnnotationBorderStyleType.BEVELED; + break; + case 'I': + this.style = AnnotationBorderStyleType.INSET; + break; + case 'U': + this.style = AnnotationBorderStyleType.UNDERLINE; + break; + default: + break; + } + }, + setDashArray: function AnnotationBorderStyle_setDashArray(dashArray) { + if (isArray(dashArray) && dashArray.length > 0) { + var isValid = true; + var allZeros = true; + for (var i = 0, len = dashArray.length; i < len; i++) { + var element = dashArray[i]; + var validNumber = +element >= 0; + if (!validNumber) { + isValid = false; + break; + } else if (element > 0) { + allZeros = false; + } + } + if (isValid && !allZeros) { + this.dashArray = dashArray; + } else { + this.width = 0; + } + } else if (dashArray) { + this.width = 0; + } + }, + setHorizontalCornerRadius: function AnnotationBorderStyle_setHorizontalCornerRadius(radius) { + if (radius === (radius | 0)) { + this.horizontalCornerRadius = radius; + } + }, + setVerticalCornerRadius: function AnnotationBorderStyle_setVerticalCornerRadius(radius) { + if (radius === (radius | 0)) { + this.verticalCornerRadius = radius; + } + } + }; + return AnnotationBorderStyle; +}(); +var WidgetAnnotation = function WidgetAnnotationClosure() { + function WidgetAnnotation(params) { + Annotation.call(this, params); + var dict = params.dict; + var data = this.data; + data.annotationType = AnnotationType.WIDGET; + data.fieldName = this._constructFieldName(dict); + data.fieldValue = Util.getInheritableProperty(dict, 'V', true); + data.alternativeText = stringToPDFString(dict.get('TU') || ''); + data.defaultAppearance = Util.getInheritableProperty(dict, 'DA') || ''; + var fieldType = Util.getInheritableProperty(dict, 'FT'); + data.fieldType = isName(fieldType) ? fieldType.name : null; + this.fieldResources = Util.getInheritableProperty(dict, 'DR') || Dict.empty; + data.fieldFlags = Util.getInheritableProperty(dict, 'Ff'); + if (!isInt(data.fieldFlags) || data.fieldFlags < 0) { + data.fieldFlags = 0; + } + data.readOnly = this.hasFieldFlag(AnnotationFieldFlag.READONLY); + if (data.fieldType === 'Sig') { + this.setFlags(AnnotationFlag.HIDDEN); + } + } + Util.inherit(WidgetAnnotation, Annotation, { + _constructFieldName: function WidgetAnnotation_constructFieldName(dict) { + if (!dict.has('T') && !dict.has('Parent')) { + warn('Unknown field name, falling back to empty field name.'); + return ''; + } + if (!dict.has('Parent')) { + return stringToPDFString(dict.get('T')); + } + var fieldName = []; + if (dict.has('T')) { + fieldName.unshift(stringToPDFString(dict.get('T'))); + } + var loopDict = dict; + while (loopDict.has('Parent')) { + loopDict = loopDict.get('Parent'); + if (!isDict(loopDict)) { + break; + } + if (loopDict.has('T')) { + fieldName.unshift(stringToPDFString(loopDict.get('T'))); + } + } + return fieldName.join('.'); + }, + hasFieldFlag: function WidgetAnnotation_hasFieldFlag(flag) { + return !!(this.data.fieldFlags & flag); + } + }); + return WidgetAnnotation; +}(); +var TextWidgetAnnotation = function TextWidgetAnnotationClosure() { + function TextWidgetAnnotation(params) { + WidgetAnnotation.call(this, params); + this.data.fieldValue = stringToPDFString(this.data.fieldValue || ''); + var alignment = Util.getInheritableProperty(params.dict, 'Q'); + if (!isInt(alignment) || alignment < 0 || alignment > 2) { + alignment = null; + } + this.data.textAlignment = alignment; + var maximumLength = Util.getInheritableProperty(params.dict, 'MaxLen'); + if (!isInt(maximumLength) || maximumLength < 0) { + maximumLength = null; + } + this.data.maxLen = maximumLength; + this.data.multiLine = this.hasFieldFlag(AnnotationFieldFlag.MULTILINE); + this.data.comb = this.hasFieldFlag(AnnotationFieldFlag.COMB) && !this.hasFieldFlag(AnnotationFieldFlag.MULTILINE) && !this.hasFieldFlag(AnnotationFieldFlag.PASSWORD) && !this.hasFieldFlag(AnnotationFieldFlag.FILESELECT) && this.data.maxLen !== null; + } + Util.inherit(TextWidgetAnnotation, WidgetAnnotation, { + getOperatorList: function TextWidgetAnnotation_getOperatorList(evaluator, task, renderForms) { + var operatorList = new OperatorList(); + if (renderForms) { + return Promise.resolve(operatorList); + } + if (this.appearance) { + return Annotation.prototype.getOperatorList.call(this, evaluator, task, renderForms); + } + if (!this.data.defaultAppearance) { + return Promise.resolve(operatorList); + } + var stream = new Stream(stringToBytes(this.data.defaultAppearance)); + return evaluator.getOperatorList(stream, task, this.fieldResources, operatorList).then(function () { + return operatorList; + }); + } + }); + return TextWidgetAnnotation; +}(); +var ButtonWidgetAnnotation = function ButtonWidgetAnnotationClosure() { + function ButtonWidgetAnnotation(params) { + WidgetAnnotation.call(this, params); + this.data.checkBox = !this.hasFieldFlag(AnnotationFieldFlag.RADIO) && !this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON); + if (this.data.checkBox) { + if (!isName(this.data.fieldValue)) { + return; + } + this.data.fieldValue = this.data.fieldValue.name; + } + this.data.radioButton = this.hasFieldFlag(AnnotationFieldFlag.RADIO) && !this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON); + if (this.data.radioButton) { + this.data.fieldValue = this.data.buttonValue = null; + var fieldParent = params.dict.get('Parent'); + if (isDict(fieldParent) && fieldParent.has('V')) { + var fieldParentValue = fieldParent.get('V'); + if (isName(fieldParentValue)) { + this.data.fieldValue = fieldParentValue.name; + } + } + var appearanceStates = params.dict.get('AP'); + if (!isDict(appearanceStates)) { + return; + } + var normalAppearanceState = appearanceStates.get('N'); + if (!isDict(normalAppearanceState)) { + return; + } + var keys = normalAppearanceState.getKeys(); + for (var i = 0, ii = keys.length; i < ii; i++) { + if (keys[i] !== 'Off') { + this.data.buttonValue = keys[i]; + break; + } + } + } + } + Util.inherit(ButtonWidgetAnnotation, WidgetAnnotation, { + getOperatorList: function ButtonWidgetAnnotation_getOperatorList(evaluator, task, renderForms) { + var operatorList = new OperatorList(); + if (renderForms) { + return Promise.resolve(operatorList); + } + if (this.appearance) { + return Annotation.prototype.getOperatorList.call(this, evaluator, task, renderForms); + } + return Promise.resolve(operatorList); + } + }); + return ButtonWidgetAnnotation; +}(); +var ChoiceWidgetAnnotation = function ChoiceWidgetAnnotationClosure() { + function ChoiceWidgetAnnotation(params) { + WidgetAnnotation.call(this, params); + this.data.options = []; + var options = Util.getInheritableProperty(params.dict, 'Opt'); + if (isArray(options)) { + var xref = params.xref; + for (var i = 0, ii = options.length; i < ii; i++) { + var option = xref.fetchIfRef(options[i]); + var isOptionArray = isArray(option); + this.data.options[i] = { + exportValue: isOptionArray ? xref.fetchIfRef(option[0]) : option, + displayValue: isOptionArray ? xref.fetchIfRef(option[1]) : option + }; + } + } + if (!isArray(this.data.fieldValue)) { + this.data.fieldValue = [this.data.fieldValue]; + } + this.data.combo = this.hasFieldFlag(AnnotationFieldFlag.COMBO); + this.data.multiSelect = this.hasFieldFlag(AnnotationFieldFlag.MULTISELECT); + } + Util.inherit(ChoiceWidgetAnnotation, WidgetAnnotation, { + getOperatorList: function ChoiceWidgetAnnotation_getOperatorList(evaluator, task, renderForms) { + var operatorList = new OperatorList(); + if (renderForms) { + return Promise.resolve(operatorList); + } + return Annotation.prototype.getOperatorList.call(this, evaluator, task, renderForms); + } + }); + return ChoiceWidgetAnnotation; +}(); +var TextAnnotation = function TextAnnotationClosure() { + var DEFAULT_ICON_SIZE = 22; + function TextAnnotation(parameters) { + Annotation.call(this, parameters); + this.data.annotationType = AnnotationType.TEXT; + if (this.data.hasAppearance) { + this.data.name = 'NoIcon'; + } else { + this.data.rect[1] = this.data.rect[3] - DEFAULT_ICON_SIZE; + this.data.rect[2] = this.data.rect[0] + DEFAULT_ICON_SIZE; + this.data.name = parameters.dict.has('Name') ? parameters.dict.get('Name').name : 'Note'; + } + this._preparePopup(parameters.dict); + } + Util.inherit(TextAnnotation, Annotation, {}); + return TextAnnotation; +}(); +var LinkAnnotation = function LinkAnnotationClosure() { + function LinkAnnotation(params) { + Annotation.call(this, params); + var data = this.data; + data.annotationType = AnnotationType.LINK; + Catalog.parseDestDictionary({ + destDict: params.dict, + resultObj: data, + docBaseUrl: params.pdfManager.docBaseUrl + }); + } + Util.inherit(LinkAnnotation, Annotation, {}); + return LinkAnnotation; +}(); +var PopupAnnotation = function PopupAnnotationClosure() { + function PopupAnnotation(parameters) { + Annotation.call(this, parameters); + this.data.annotationType = AnnotationType.POPUP; + var dict = parameters.dict; + var parentItem = dict.get('Parent'); + if (!parentItem) { + warn('Popup annotation has a missing or invalid parent annotation.'); + return; + } + this.data.parentId = dict.getRaw('Parent').toString(); + this.data.title = stringToPDFString(parentItem.get('T') || ''); + this.data.contents = stringToPDFString(parentItem.get('Contents') || ''); + if (!parentItem.has('C')) { + this.data.color = null; + } else { + this.setColor(parentItem.getArray('C')); + this.data.color = this.color; + } + if (!this.viewable) { + var parentFlags = parentItem.get('F'); + if (this._isViewable(parentFlags)) { + this.setFlags(parentFlags); + } + } + } + Util.inherit(PopupAnnotation, Annotation, {}); + return PopupAnnotation; +}(); +var HighlightAnnotation = function HighlightAnnotationClosure() { + function HighlightAnnotation(parameters) { + Annotation.call(this, parameters); + this.data.annotationType = AnnotationType.HIGHLIGHT; + this._preparePopup(parameters.dict); + this.data.borderStyle.setWidth(0); + } + Util.inherit(HighlightAnnotation, Annotation, {}); + return HighlightAnnotation; +}(); +var UnderlineAnnotation = function UnderlineAnnotationClosure() { + function UnderlineAnnotation(parameters) { + Annotation.call(this, parameters); + this.data.annotationType = AnnotationType.UNDERLINE; + this._preparePopup(parameters.dict); + this.data.borderStyle.setWidth(0); + } + Util.inherit(UnderlineAnnotation, Annotation, {}); + return UnderlineAnnotation; +}(); +var SquigglyAnnotation = function SquigglyAnnotationClosure() { + function SquigglyAnnotation(parameters) { + Annotation.call(this, parameters); + this.data.annotationType = AnnotationType.SQUIGGLY; + this._preparePopup(parameters.dict); + this.data.borderStyle.setWidth(0); + } + Util.inherit(SquigglyAnnotation, Annotation, {}); + return SquigglyAnnotation; +}(); +var StrikeOutAnnotation = function StrikeOutAnnotationClosure() { + function StrikeOutAnnotation(parameters) { + Annotation.call(this, parameters); + this.data.annotationType = AnnotationType.STRIKEOUT; + this._preparePopup(parameters.dict); + this.data.borderStyle.setWidth(0); + } + Util.inherit(StrikeOutAnnotation, Annotation, {}); + return StrikeOutAnnotation; +}(); +var FileAttachmentAnnotation = function FileAttachmentAnnotationClosure() { + function FileAttachmentAnnotation(parameters) { + Annotation.call(this, parameters); + var file = new FileSpec(parameters.dict.get('FS'), parameters.xref); + this.data.annotationType = AnnotationType.FILEATTACHMENT; + this.data.file = file.serializable; + this._preparePopup(parameters.dict); + } + Util.inherit(FileAttachmentAnnotation, Annotation, {}); + return FileAttachmentAnnotation; +}(); +exports.Annotation = Annotation; +exports.AnnotationBorderStyle = AnnotationBorderStyle; +exports.AnnotationFactory = AnnotationFactory; + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var warn = sharedUtil.warn; +var baseTypes = [ + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'S', + 'B', + 'S', + 'WS', + 'B', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'B', + 'B', + 'B', + 'S', + 'WS', + 'ON', + 'ON', + 'ET', + 'ET', + 'ET', + 'ON', + 'ON', + 'ON', + 'ON', + 'ON', + 'ES', + 'CS', + 'ES', + 'CS', + 'CS', + 'EN', + 'EN', + 'EN', + 'EN', + 'EN', + 'EN', + 'EN', + 'EN', + 'EN', + 'EN', + 'CS', + 'ON', + 'ON', + 'ON', + 'ON', + 'ON', + 'ON', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'ON', + 'ON', + 'ON', + 'ON', + 'ON', + 'ON', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'ON', + 'ON', + 'ON', + 'ON', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'B', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'BN', + 'CS', + 'ON', + 'ET', + 'ET', + 'ET', + 'ET', + 'ON', + 'ON', + 'ON', + 'ON', + 'L', + 'ON', + 'ON', + 'BN', + 'ON', + 'ON', + 'ET', + 'ET', + 'EN', + 'EN', + 'ON', + 'L', + 'ON', + 'ON', + 'ON', + 'EN', + 'L', + 'ON', + 'ON', + 'ON', + 'ON', + 'ON', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'ON', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'ON', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L', + 'L' +]; +var arabicTypes = [ + 'AN', + 'AN', + 'AN', + 'AN', + 'AN', + 'AN', + 'ON', + 'ON', + 'AL', + 'ET', + 'ET', + 'AL', + 'CS', + 'AL', + 'ON', + 'ON', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'AL', + 'AL', + '', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'AN', + 'AN', + 'AN', + 'AN', + 'AN', + 'AN', + 'AN', + 'AN', + 'AN', + 'AN', + 'ET', + 'AN', + 'AN', + 'AL', + 'AL', + 'AL', + 'NSM', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'AN', + 'ON', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'AL', + 'AL', + 'NSM', + 'NSM', + 'ON', + 'NSM', + 'NSM', + 'NSM', + 'NSM', + 'AL', + 'AL', + 'EN', + 'EN', + 'EN', + 'EN', + 'EN', + 'EN', + 'EN', + 'EN', + 'EN', + 'EN', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL', + 'AL' +]; +function isOdd(i) { + return (i & 1) !== 0; +} +function isEven(i) { + return (i & 1) === 0; +} +function findUnequal(arr, start, value) { + for (var j = start, jj = arr.length; j < jj; ++j) { + if (arr[j] !== value) { + return j; + } + } + return j; +} +function setValues(arr, start, end, value) { + for (var j = start; j < end; ++j) { + arr[j] = value; + } +} +function reverseValues(arr, start, end) { + for (var i = start, j = end - 1; i < j; ++i, --j) { + var temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + } +} +function createBidiText(str, isLTR, vertical) { + return { + str: str, + dir: vertical ? 'ttb' : isLTR ? 'ltr' : 'rtl' + }; +} +var chars = []; +var types = []; +function bidi(str, startLevel, vertical) { + var isLTR = true; + var strLength = str.length; + if (strLength === 0 || vertical) { + return createBidiText(str, isLTR, vertical); + } + chars.length = strLength; + types.length = strLength; + var numBidi = 0; + var i, ii; + for (i = 0; i < strLength; ++i) { + chars[i] = str.charAt(i); + var charCode = str.charCodeAt(i); + var charType = 'L'; + if (charCode <= 0x00ff) { + charType = baseTypes[charCode]; + } else if (0x0590 <= charCode && charCode <= 0x05f4) { + charType = 'R'; + } else if (0x0600 <= charCode && charCode <= 0x06ff) { + charType = arabicTypes[charCode & 0xff]; + if (!charType) { + warn('Bidi: invalid Unicode character ' + charCode.toString(16)); + } + } else if (0x0700 <= charCode && charCode <= 0x08AC) { + charType = 'AL'; + } + if (charType === 'R' || charType === 'AL' || charType === 'AN') { + numBidi++; + } + types[i] = charType; + } + if (numBidi === 0) { + isLTR = true; + return createBidiText(str, isLTR); + } + if (startLevel === -1) { + if (numBidi / strLength < 0.3) { + isLTR = true; + startLevel = 0; + } else { + isLTR = false; + startLevel = 1; + } + } + var levels = []; + for (i = 0; i < strLength; ++i) { + levels[i] = startLevel; + } + var e = isOdd(startLevel) ? 'R' : 'L'; + var sor = e; + var eor = sor; + var lastType = sor; + for (i = 0; i < strLength; ++i) { + if (types[i] === 'NSM') { + types[i] = lastType; + } else { + lastType = types[i]; + } + } + lastType = sor; + var t; + for (i = 0; i < strLength; ++i) { + t = types[i]; + if (t === 'EN') { + types[i] = lastType === 'AL' ? 'AN' : 'EN'; + } else if (t === 'R' || t === 'L' || t === 'AL') { + lastType = t; + } + } + for (i = 0; i < strLength; ++i) { + t = types[i]; + if (t === 'AL') { + types[i] = 'R'; + } + } + for (i = 1; i < strLength - 1; ++i) { + if (types[i] === 'ES' && types[i - 1] === 'EN' && types[i + 1] === 'EN') { + types[i] = 'EN'; + } + if (types[i] === 'CS' && (types[i - 1] === 'EN' || types[i - 1] === 'AN') && types[i + 1] === types[i - 1]) { + types[i] = types[i - 1]; + } + } + for (i = 0; i < strLength; ++i) { + if (types[i] === 'EN') { + var j; + for (j = i - 1; j >= 0; --j) { + if (types[j] !== 'ET') { + break; + } + types[j] = 'EN'; + } + for (j = i + 1; j < strLength; ++j) { + if (types[j] !== 'ET') { + break; + } + types[j] = 'EN'; + } + } + } + for (i = 0; i < strLength; ++i) { + t = types[i]; + if (t === 'WS' || t === 'ES' || t === 'ET' || t === 'CS') { + types[i] = 'ON'; + } + } + lastType = sor; + for (i = 0; i < strLength; ++i) { + t = types[i]; + if (t === 'EN') { + types[i] = lastType === 'L' ? 'L' : 'EN'; + } else if (t === 'R' || t === 'L') { + lastType = t; + } + } + for (i = 0; i < strLength; ++i) { + if (types[i] === 'ON') { + var end = findUnequal(types, i + 1, 'ON'); + var before = sor; + if (i > 0) { + before = types[i - 1]; + } + var after = eor; + if (end + 1 < strLength) { + after = types[end + 1]; + } + if (before !== 'L') { + before = 'R'; + } + if (after !== 'L') { + after = 'R'; + } + if (before === after) { + setValues(types, i, end, before); + } + i = end - 1; + } + } + for (i = 0; i < strLength; ++i) { + if (types[i] === 'ON') { + types[i] = e; + } + } + for (i = 0; i < strLength; ++i) { + t = types[i]; + if (isEven(levels[i])) { + if (t === 'R') { + levels[i] += 1; + } else if (t === 'AN' || t === 'EN') { + levels[i] += 2; + } + } else { + if (t === 'L' || t === 'AN' || t === 'EN') { + levels[i] += 1; + } + } + } + var highestLevel = -1; + var lowestOddLevel = 99; + var level; + for (i = 0, ii = levels.length; i < ii; ++i) { + level = levels[i]; + if (highestLevel < level) { + highestLevel = level; + } + if (lowestOddLevel > level && isOdd(level)) { + lowestOddLevel = level; + } + } + for (level = highestLevel; level >= lowestOddLevel; --level) { + var start = -1; + for (i = 0, ii = levels.length; i < ii; ++i) { + if (levels[i] < level) { + if (start >= 0) { + reverseValues(chars, start, i); + start = -1; + } + } else if (start < 0) { + start = i; + } + } + if (start >= 0) { + reverseValues(chars, start, levels.length); + } + } + for (i = 0, ii = chars.length; i < ii; ++i) { + var ch = chars[i]; + if (ch === '<' || ch === '>') { + chars[i] = ''; + } + } + return createBidiText(chars.join(''), isLTR); +} +exports.bidi = bidi; + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var ISOAdobeCharset = [ + '.notdef', + 'space', + 'exclam', + 'quotedbl', + 'numbersign', + 'dollar', + 'percent', + 'ampersand', + 'quoteright', + 'parenleft', + 'parenright', + 'asterisk', + 'plus', + 'comma', + 'hyphen', + 'period', + 'slash', + 'zero', + 'one', + 'two', + 'three', + 'four', + 'five', + 'six', + 'seven', + 'eight', + 'nine', + 'colon', + 'semicolon', + 'less', + 'equal', + 'greater', + 'question', + 'at', + 'A', + 'B', + 'C', + 'D', + 'E', + 'F', + 'G', + 'H', + 'I', + 'J', + 'K', + 'L', + 'M', + 'N', + 'O', + 'P', + 'Q', + 'R', + 'S', + 'T', + 'U', + 'V', + 'W', + 'X', + 'Y', + 'Z', + 'bracketleft', + 'backslash', + 'bracketright', + 'asciicircum', + 'underscore', + 'quoteleft', + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', + 'k', + 'l', + 'm', + 'n', + 'o', + 'p', + 'q', + 'r', + 's', + 't', + 'u', + 'v', + 'w', + 'x', + 'y', + 'z', + 'braceleft', + 'bar', + 'braceright', + 'asciitilde', + 'exclamdown', + 'cent', + 'sterling', + 'fraction', + 'yen', + 'florin', + 'section', + 'currency', + 'quotesingle', + 'quotedblleft', + 'guillemotleft', + 'guilsinglleft', + 'guilsinglright', + 'fi', + 'fl', + 'endash', + 'dagger', + 'daggerdbl', + 'periodcentered', + 'paragraph', + 'bullet', + 'quotesinglbase', + 'quotedblbase', + 'quotedblright', + 'guillemotright', + 'ellipsis', + 'perthousand', + 'questiondown', + 'grave', + 'acute', + 'circumflex', + 'tilde', + 'macron', + 'breve', + 'dotaccent', + 'dieresis', + 'ring', + 'cedilla', + 'hungarumlaut', + 'ogonek', + 'caron', + 'emdash', + 'AE', + 'ordfeminine', + 'Lslash', + 'Oslash', + 'OE', + 'ordmasculine', + 'ae', + 'dotlessi', + 'lslash', + 'oslash', + 'oe', + 'germandbls', + 'onesuperior', + 'logicalnot', + 'mu', + 'trademark', + 'Eth', + 'onehalf', + 'plusminus', + 'Thorn', + 'onequarter', + 'divide', + 'brokenbar', + 'degree', + 'thorn', + 'threequarters', + 'twosuperior', + 'registered', + 'minus', + 'eth', + 'multiply', + 'threesuperior', + 'copyright', + 'Aacute', + 'Acircumflex', + 'Adieresis', + 'Agrave', + 'Aring', + 'Atilde', + 'Ccedilla', + 'Eacute', + 'Ecircumflex', + 'Edieresis', + 'Egrave', + 'Iacute', + 'Icircumflex', + 'Idieresis', + 'Igrave', + 'Ntilde', + 'Oacute', + 'Ocircumflex', + 'Odieresis', + 'Ograve', + 'Otilde', + 'Scaron', + 'Uacute', + 'Ucircumflex', + 'Udieresis', + 'Ugrave', + 'Yacute', + 'Ydieresis', + 'Zcaron', + 'aacute', + 'acircumflex', + 'adieresis', + 'agrave', + 'aring', + 'atilde', + 'ccedilla', + 'eacute', + 'ecircumflex', + 'edieresis', + 'egrave', + 'iacute', + 'icircumflex', + 'idieresis', + 'igrave', + 'ntilde', + 'oacute', + 'ocircumflex', + 'odieresis', + 'ograve', + 'otilde', + 'scaron', + 'uacute', + 'ucircumflex', + 'udieresis', + 'ugrave', + 'yacute', + 'ydieresis', + 'zcaron' +]; +var ExpertCharset = [ + '.notdef', + 'space', + 'exclamsmall', + 'Hungarumlautsmall', + 'dollaroldstyle', + 'dollarsuperior', + 'ampersandsmall', + 'Acutesmall', + 'parenleftsuperior', + 'parenrightsuperior', + 'twodotenleader', + 'onedotenleader', + 'comma', + 'hyphen', + 'period', + 'fraction', + 'zerooldstyle', + 'oneoldstyle', + 'twooldstyle', + 'threeoldstyle', + 'fouroldstyle', + 'fiveoldstyle', + 'sixoldstyle', + 'sevenoldstyle', + 'eightoldstyle', + 'nineoldstyle', + 'colon', + 'semicolon', + 'commasuperior', + 'threequartersemdash', + 'periodsuperior', + 'questionsmall', + 'asuperior', + 'bsuperior', + 'centsuperior', + 'dsuperior', + 'esuperior', + 'isuperior', + 'lsuperior', + 'msuperior', + 'nsuperior', + 'osuperior', + 'rsuperior', + 'ssuperior', + 'tsuperior', + 'ff', + 'fi', + 'fl', + 'ffi', + 'ffl', + 'parenleftinferior', + 'parenrightinferior', + 'Circumflexsmall', + 'hyphensuperior', + 'Gravesmall', + 'Asmall', + 'Bsmall', + 'Csmall', + 'Dsmall', + 'Esmall', + 'Fsmall', + 'Gsmall', + 'Hsmall', + 'Ismall', + 'Jsmall', + 'Ksmall', + 'Lsmall', + 'Msmall', + 'Nsmall', + 'Osmall', + 'Psmall', + 'Qsmall', + 'Rsmall', + 'Ssmall', + 'Tsmall', + 'Usmall', + 'Vsmall', + 'Wsmall', + 'Xsmall', + 'Ysmall', + 'Zsmall', + 'colonmonetary', + 'onefitted', + 'rupiah', + 'Tildesmall', + 'exclamdownsmall', + 'centoldstyle', + 'Lslashsmall', + 'Scaronsmall', + 'Zcaronsmall', + 'Dieresissmall', + 'Brevesmall', + 'Caronsmall', + 'Dotaccentsmall', + 'Macronsmall', + 'figuredash', + 'hypheninferior', + 'Ogoneksmall', + 'Ringsmall', + 'Cedillasmall', + 'onequarter', + 'onehalf', + 'threequarters', + 'questiondownsmall', + 'oneeighth', + 'threeeighths', + 'fiveeighths', + 'seveneighths', + 'onethird', + 'twothirds', + 'zerosuperior', + 'onesuperior', + 'twosuperior', + 'threesuperior', + 'foursuperior', + 'fivesuperior', + 'sixsuperior', + 'sevensuperior', + 'eightsuperior', + 'ninesuperior', + 'zeroinferior', + 'oneinferior', + 'twoinferior', + 'threeinferior', + 'fourinferior', + 'fiveinferior', + 'sixinferior', + 'seveninferior', + 'eightinferior', + 'nineinferior', + 'centinferior', + 'dollarinferior', + 'periodinferior', + 'commainferior', + 'Agravesmall', + 'Aacutesmall', + 'Acircumflexsmall', + 'Atildesmall', + 'Adieresissmall', + 'Aringsmall', + 'AEsmall', + 'Ccedillasmall', + 'Egravesmall', + 'Eacutesmall', + 'Ecircumflexsmall', + 'Edieresissmall', + 'Igravesmall', + 'Iacutesmall', + 'Icircumflexsmall', + 'Idieresissmall', + 'Ethsmall', + 'Ntildesmall', + 'Ogravesmall', + 'Oacutesmall', + 'Ocircumflexsmall', + 'Otildesmall', + 'Odieresissmall', + 'OEsmall', + 'Oslashsmall', + 'Ugravesmall', + 'Uacutesmall', + 'Ucircumflexsmall', + 'Udieresissmall', + 'Yacutesmall', + 'Thornsmall', + 'Ydieresissmall' +]; +var ExpertSubsetCharset = [ + '.notdef', + 'space', + 'dollaroldstyle', + 'dollarsuperior', + 'parenleftsuperior', + 'parenrightsuperior', + 'twodotenleader', + 'onedotenleader', + 'comma', + 'hyphen', + 'period', + 'fraction', + 'zerooldstyle', + 'oneoldstyle', + 'twooldstyle', + 'threeoldstyle', + 'fouroldstyle', + 'fiveoldstyle', + 'sixoldstyle', + 'sevenoldstyle', + 'eightoldstyle', + 'nineoldstyle', + 'colon', + 'semicolon', + 'commasuperior', + 'threequartersemdash', + 'periodsuperior', + 'asuperior', + 'bsuperior', + 'centsuperior', + 'dsuperior', + 'esuperior', + 'isuperior', + 'lsuperior', + 'msuperior', + 'nsuperior', + 'osuperior', + 'rsuperior', + 'ssuperior', + 'tsuperior', + 'ff', + 'fi', + 'fl', + 'ffi', + 'ffl', + 'parenleftinferior', + 'parenrightinferior', + 'hyphensuperior', + 'colonmonetary', + 'onefitted', + 'rupiah', + 'centoldstyle', + 'figuredash', + 'hypheninferior', + 'onequarter', + 'onehalf', + 'threequarters', + 'oneeighth', + 'threeeighths', + 'fiveeighths', + 'seveneighths', + 'onethird', + 'twothirds', + 'zerosuperior', + 'onesuperior', + 'twosuperior', + 'threesuperior', + 'foursuperior', + 'fivesuperior', + 'sixsuperior', + 'sevensuperior', + 'eightsuperior', + 'ninesuperior', + 'zeroinferior', + 'oneinferior', + 'twoinferior', + 'threeinferior', + 'fourinferior', + 'fiveinferior', + 'sixinferior', + 'seveninferior', + 'eightinferior', + 'nineinferior', + 'centinferior', + 'dollarinferior', + 'periodinferior', + 'commainferior' +]; +exports.ISOAdobeCharset = ISOAdobeCharset; +exports.ExpertCharset = ExpertCharset; +exports.ExpertSubsetCharset = ExpertSubsetCharset; + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var corePrimitives = __w_pdfjs_require__(1); +var coreStream = __w_pdfjs_require__(2); +var coreParser = __w_pdfjs_require__(5); +var Util = sharedUtil.Util; +var assert = sharedUtil.assert; +var warn = sharedUtil.warn; +var error = sharedUtil.error; +var isInt = sharedUtil.isInt; +var isString = sharedUtil.isString; +var MissingDataException = sharedUtil.MissingDataException; +var CMapCompressionType = sharedUtil.CMapCompressionType; +var isEOF = corePrimitives.isEOF; +var isName = corePrimitives.isName; +var isCmd = corePrimitives.isCmd; +var isStream = corePrimitives.isStream; +var Stream = coreStream.Stream; +var Lexer = coreParser.Lexer; +var BUILT_IN_CMAPS = [ + 'Adobe-GB1-UCS2', + 'Adobe-CNS1-UCS2', + 'Adobe-Japan1-UCS2', + 'Adobe-Korea1-UCS2', + '78-EUC-H', + '78-EUC-V', + '78-H', + '78-RKSJ-H', + '78-RKSJ-V', + '78-V', + '78ms-RKSJ-H', + '78ms-RKSJ-V', + '83pv-RKSJ-H', + '90ms-RKSJ-H', + '90ms-RKSJ-V', + '90msp-RKSJ-H', + '90msp-RKSJ-V', + '90pv-RKSJ-H', + '90pv-RKSJ-V', + 'Add-H', + 'Add-RKSJ-H', + 'Add-RKSJ-V', + 'Add-V', + 'Adobe-CNS1-0', + 'Adobe-CNS1-1', + 'Adobe-CNS1-2', + 'Adobe-CNS1-3', + 'Adobe-CNS1-4', + 'Adobe-CNS1-5', + 'Adobe-CNS1-6', + 'Adobe-GB1-0', + 'Adobe-GB1-1', + 'Adobe-GB1-2', + 'Adobe-GB1-3', + 'Adobe-GB1-4', + 'Adobe-GB1-5', + 'Adobe-Japan1-0', + 'Adobe-Japan1-1', + 'Adobe-Japan1-2', + 'Adobe-Japan1-3', + 'Adobe-Japan1-4', + 'Adobe-Japan1-5', + 'Adobe-Japan1-6', + 'Adobe-Korea1-0', + 'Adobe-Korea1-1', + 'Adobe-Korea1-2', + 'B5-H', + 'B5-V', + 'B5pc-H', + 'B5pc-V', + 'CNS-EUC-H', + 'CNS-EUC-V', + 'CNS1-H', + 'CNS1-V', + 'CNS2-H', + 'CNS2-V', + 'ETHK-B5-H', + 'ETHK-B5-V', + 'ETen-B5-H', + 'ETen-B5-V', + 'ETenms-B5-H', + 'ETenms-B5-V', + 'EUC-H', + 'EUC-V', + 'Ext-H', + 'Ext-RKSJ-H', + 'Ext-RKSJ-V', + 'Ext-V', + 'GB-EUC-H', + 'GB-EUC-V', + 'GB-H', + 'GB-V', + 'GBK-EUC-H', + 'GBK-EUC-V', + 'GBK2K-H', + 'GBK2K-V', + 'GBKp-EUC-H', + 'GBKp-EUC-V', + 'GBT-EUC-H', + 'GBT-EUC-V', + 'GBT-H', + 'GBT-V', + 'GBTpc-EUC-H', + 'GBTpc-EUC-V', + 'GBpc-EUC-H', + 'GBpc-EUC-V', + 'H', + 'HKdla-B5-H', + 'HKdla-B5-V', + 'HKdlb-B5-H', + 'HKdlb-B5-V', + 'HKgccs-B5-H', + 'HKgccs-B5-V', + 'HKm314-B5-H', + 'HKm314-B5-V', + 'HKm471-B5-H', + 'HKm471-B5-V', + 'HKscs-B5-H', + 'HKscs-B5-V', + 'Hankaku', + 'Hiragana', + 'KSC-EUC-H', + 'KSC-EUC-V', + 'KSC-H', + 'KSC-Johab-H', + 'KSC-Johab-V', + 'KSC-V', + 'KSCms-UHC-H', + 'KSCms-UHC-HW-H', + 'KSCms-UHC-HW-V', + 'KSCms-UHC-V', + 'KSCpc-EUC-H', + 'KSCpc-EUC-V', + 'Katakana', + 'NWP-H', + 'NWP-V', + 'RKSJ-H', + 'RKSJ-V', + 'Roman', + 'UniCNS-UCS2-H', + 'UniCNS-UCS2-V', + 'UniCNS-UTF16-H', + 'UniCNS-UTF16-V', + 'UniCNS-UTF32-H', + 'UniCNS-UTF32-V', + 'UniCNS-UTF8-H', + 'UniCNS-UTF8-V', + 'UniGB-UCS2-H', + 'UniGB-UCS2-V', + 'UniGB-UTF16-H', + 'UniGB-UTF16-V', + 'UniGB-UTF32-H', + 'UniGB-UTF32-V', + 'UniGB-UTF8-H', + 'UniGB-UTF8-V', + 'UniJIS-UCS2-H', + 'UniJIS-UCS2-HW-H', + 'UniJIS-UCS2-HW-V', + 'UniJIS-UCS2-V', + 'UniJIS-UTF16-H', + 'UniJIS-UTF16-V', + 'UniJIS-UTF32-H', + 'UniJIS-UTF32-V', + 'UniJIS-UTF8-H', + 'UniJIS-UTF8-V', + 'UniJIS2004-UTF16-H', + 'UniJIS2004-UTF16-V', + 'UniJIS2004-UTF32-H', + 'UniJIS2004-UTF32-V', + 'UniJIS2004-UTF8-H', + 'UniJIS2004-UTF8-V', + 'UniJISPro-UCS2-HW-V', + 'UniJISPro-UCS2-V', + 'UniJISPro-UTF8-V', + 'UniJISX0213-UTF32-H', + 'UniJISX0213-UTF32-V', + 'UniJISX02132004-UTF32-H', + 'UniJISX02132004-UTF32-V', + 'UniKS-UCS2-H', + 'UniKS-UCS2-V', + 'UniKS-UTF16-H', + 'UniKS-UTF16-V', + 'UniKS-UTF32-H', + 'UniKS-UTF32-V', + 'UniKS-UTF8-H', + 'UniKS-UTF8-V', + 'V', + 'WP-Symbol' +]; +var CMap = function CMapClosure() { + function CMap(builtInCMap) { + this.codespaceRanges = [ + [], + [], + [], + [] + ]; + this.numCodespaceRanges = 0; + this._map = []; + this.name = ''; + this.vertical = false; + this.useCMap = null; + this.builtInCMap = builtInCMap; + } + CMap.prototype = { + addCodespaceRange: function (n, low, high) { + this.codespaceRanges[n - 1].push(low, high); + this.numCodespaceRanges++; + }, + mapCidRange: function (low, high, dstLow) { + while (low <= high) { + this._map[low++] = dstLow++; + } + }, + mapBfRange: function (low, high, dstLow) { + var lastByte = dstLow.length - 1; + while (low <= high) { + this._map[low++] = dstLow; + dstLow = dstLow.substr(0, lastByte) + String.fromCharCode(dstLow.charCodeAt(lastByte) + 1); + } + }, + mapBfRangeToArray: function (low, high, array) { + var i = 0, ii = array.length; + while (low <= high && i < ii) { + this._map[low] = array[i++]; + ++low; + } + }, + mapOne: function (src, dst) { + this._map[src] = dst; + }, + lookup: function (code) { + return this._map[code]; + }, + contains: function (code) { + return this._map[code] !== undefined; + }, + forEach: function (callback) { + var map = this._map; + var length = map.length; + var i; + if (length <= 0x10000) { + for (i = 0; i < length; i++) { + if (map[i] !== undefined) { + callback(i, map[i]); + } + } + } else { + for (i in this._map) { + callback(i, map[i]); + } + } + }, + charCodeOf: function (value) { + return this._map.indexOf(value); + }, + getMap: function () { + return this._map; + }, + readCharCode: function (str, offset, out) { + var c = 0; + var codespaceRanges = this.codespaceRanges; + var codespaceRangesLen = this.codespaceRanges.length; + for (var n = 0; n < codespaceRangesLen; n++) { + c = (c << 8 | str.charCodeAt(offset + n)) >>> 0; + var codespaceRange = codespaceRanges[n]; + for (var k = 0, kk = codespaceRange.length; k < kk;) { + var low = codespaceRange[k++]; + var high = codespaceRange[k++]; + if (c >= low && c <= high) { + out.charcode = c; + out.length = n + 1; + return; + } + } + } + out.charcode = 0; + out.length = 1; + }, + get length() { + return this._map.length; + }, + get isIdentityCMap() { + if (!(this.name === 'Identity-H' || this.name === 'Identity-V')) { + return false; + } + if (this._map.length !== 0x10000) { + return false; + } + for (var i = 0; i < 0x10000; i++) { + if (this._map[i] !== i) { + return false; + } + } + return true; + } + }; + return CMap; +}(); +var IdentityCMap = function IdentityCMapClosure() { + function IdentityCMap(vertical, n) { + CMap.call(this); + this.vertical = vertical; + this.addCodespaceRange(n, 0, 0xffff); + } + Util.inherit(IdentityCMap, CMap, {}); + IdentityCMap.prototype = { + addCodespaceRange: CMap.prototype.addCodespaceRange, + mapCidRange: function (low, high, dstLow) { + error('should not call mapCidRange'); + }, + mapBfRange: function (low, high, dstLow) { + error('should not call mapBfRange'); + }, + mapBfRangeToArray: function (low, high, array) { + error('should not call mapBfRangeToArray'); + }, + mapOne: function (src, dst) { + error('should not call mapCidOne'); + }, + lookup: function (code) { + return isInt(code) && code <= 0xffff ? code : undefined; + }, + contains: function (code) { + return isInt(code) && code <= 0xffff; + }, + forEach: function (callback) { + for (var i = 0; i <= 0xffff; i++) { + callback(i, i); + } + }, + charCodeOf: function (value) { + return isInt(value) && value <= 0xffff ? value : -1; + }, + getMap: function () { + var map = new Array(0x10000); + for (var i = 0; i <= 0xffff; i++) { + map[i] = i; + } + return map; + }, + readCharCode: CMap.prototype.readCharCode, + get length() { + return 0x10000; + }, + get isIdentityCMap() { + error('should not access .isIdentityCMap'); + } + }; + return IdentityCMap; +}(); +var BinaryCMapReader = function BinaryCMapReaderClosure() { + function hexToInt(a, size) { + var n = 0; + for (var i = 0; i <= size; i++) { + n = n << 8 | a[i]; + } + return n >>> 0; + } + function hexToStr(a, size) { + if (size === 1) { + return String.fromCharCode(a[0], a[1]); + } + if (size === 3) { + return String.fromCharCode(a[0], a[1], a[2], a[3]); + } + return String.fromCharCode.apply(null, a.subarray(0, size + 1)); + } + function addHex(a, b, size) { + var c = 0; + for (var i = size; i >= 0; i--) { + c += a[i] + b[i]; + a[i] = c & 255; + c >>= 8; + } + } + function incHex(a, size) { + var c = 1; + for (var i = size; i >= 0 && c > 0; i--) { + c += a[i]; + a[i] = c & 255; + c >>= 8; + } + } + var MAX_NUM_SIZE = 16; + var MAX_ENCODED_NUM_SIZE = 19; + function BinaryCMapStream(data) { + this.buffer = data; + this.pos = 0; + this.end = data.length; + this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE); + } + BinaryCMapStream.prototype = { + readByte: function () { + if (this.pos >= this.end) { + return -1; + } + return this.buffer[this.pos++]; + }, + readNumber: function () { + var n = 0; + var last; + do { + var b = this.readByte(); + if (b < 0) { + error('unexpected EOF in bcmap'); + } + last = !(b & 0x80); + n = n << 7 | b & 0x7F; + } while (!last); + return n; + }, + readSigned: function () { + var n = this.readNumber(); + return n & 1 ? ~(n >>> 1) : n >>> 1; + }, + readHex: function (num, size) { + num.set(this.buffer.subarray(this.pos, this.pos + size + 1)); + this.pos += size + 1; + }, + readHexNumber: function (num, size) { + var last; + var stack = this.tmpBuf, sp = 0; + do { + var b = this.readByte(); + if (b < 0) { + error('unexpected EOF in bcmap'); + } + last = !(b & 0x80); + stack[sp++] = b & 0x7F; + } while (!last); + var i = size, buffer = 0, bufferSize = 0; + while (i >= 0) { + while (bufferSize < 8 && stack.length > 0) { + buffer = stack[--sp] << bufferSize | buffer; + bufferSize += 7; + } + num[i] = buffer & 255; + i--; + buffer >>= 8; + bufferSize -= 8; + } + }, + readHexSigned: function (num, size) { + this.readHexNumber(num, size); + var sign = num[size] & 1 ? 255 : 0; + var c = 0; + for (var i = 0; i <= size; i++) { + c = (c & 1) << 8 | num[i]; + num[i] = c >> 1 ^ sign; + } + }, + readString: function () { + var len = this.readNumber(); + var s = ''; + for (var i = 0; i < len; i++) { + s += String.fromCharCode(this.readNumber()); + } + return s; + } + }; + function processBinaryCMap(data, cMap, extend) { + return new Promise(function (resolve, reject) { + var stream = new BinaryCMapStream(data); + var header = stream.readByte(); + cMap.vertical = !!(header & 1); + var useCMap = null; + var start = new Uint8Array(MAX_NUM_SIZE); + var end = new Uint8Array(MAX_NUM_SIZE); + var char = new Uint8Array(MAX_NUM_SIZE); + var charCode = new Uint8Array(MAX_NUM_SIZE); + var tmp = new Uint8Array(MAX_NUM_SIZE); + var code; + var b; + while ((b = stream.readByte()) >= 0) { + var type = b >> 5; + if (type === 7) { + switch (b & 0x1F) { + case 0: + stream.readString(); + break; + case 1: + useCMap = stream.readString(); + break; + } + continue; + } + var sequence = !!(b & 0x10); + var dataSize = b & 15; + assert(dataSize + 1 <= MAX_NUM_SIZE); + var ucs2DataSize = 1; + var subitemsCount = stream.readNumber(); + var i; + switch (type) { + case 0: + stream.readHex(start, dataSize); + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize)); + for (i = 1; i < subitemsCount; i++) { + incHex(end, dataSize); + stream.readHexNumber(start, dataSize); + addHex(start, end, dataSize); + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize)); + } + break; + case 1: + stream.readHex(start, dataSize); + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + code = stream.readNumber(); + for (i = 1; i < subitemsCount; i++) { + incHex(end, dataSize); + stream.readHexNumber(start, dataSize); + addHex(start, end, dataSize); + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + code = stream.readNumber(); + } + break; + case 2: + stream.readHex(char, dataSize); + code = stream.readNumber(); + cMap.mapOne(hexToInt(char, dataSize), code); + for (i = 1; i < subitemsCount; i++) { + incHex(char, dataSize); + if (!sequence) { + stream.readHexNumber(tmp, dataSize); + addHex(char, tmp, dataSize); + } + code = stream.readSigned() + (code + 1); + cMap.mapOne(hexToInt(char, dataSize), code); + } + break; + case 3: + stream.readHex(start, dataSize); + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + code = stream.readNumber(); + cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code); + for (i = 1; i < subitemsCount; i++) { + incHex(end, dataSize); + if (!sequence) { + stream.readHexNumber(start, dataSize); + addHex(start, end, dataSize); + } else { + start.set(end); + } + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + code = stream.readNumber(); + cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code); + } + break; + case 4: + stream.readHex(char, ucs2DataSize); + stream.readHex(charCode, dataSize); + cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize)); + for (i = 1; i < subitemsCount; i++) { + incHex(char, ucs2DataSize); + if (!sequence) { + stream.readHexNumber(tmp, ucs2DataSize); + addHex(char, tmp, ucs2DataSize); + } + incHex(charCode, dataSize); + stream.readHexSigned(tmp, dataSize); + addHex(charCode, tmp, dataSize); + cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize)); + } + break; + case 5: + stream.readHex(start, ucs2DataSize); + stream.readHexNumber(end, ucs2DataSize); + addHex(end, start, ucs2DataSize); + stream.readHex(charCode, dataSize); + cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize)); + for (i = 1; i < subitemsCount; i++) { + incHex(end, ucs2DataSize); + if (!sequence) { + stream.readHexNumber(start, ucs2DataSize); + addHex(start, end, ucs2DataSize); + } else { + start.set(end); + } + stream.readHexNumber(end, ucs2DataSize); + addHex(end, start, ucs2DataSize); + stream.readHex(charCode, dataSize); + cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize)); + } + break; + default: + reject(new Error('processBinaryCMap: Unknown type: ' + type)); + return; + } + } + if (useCMap) { + resolve(extend(useCMap)); + return; + } + resolve(cMap); + }); + } + function BinaryCMapReader() { + } + BinaryCMapReader.prototype = { process: processBinaryCMap }; + return BinaryCMapReader; +}(); +var CMapFactory = function CMapFactoryClosure() { + function strToInt(str) { + var a = 0; + for (var i = 0; i < str.length; i++) { + a = a << 8 | str.charCodeAt(i); + } + return a >>> 0; + } + function expectString(obj) { + if (!isString(obj)) { + error('Malformed CMap: expected string.'); + } + } + function expectInt(obj) { + if (!isInt(obj)) { + error('Malformed CMap: expected int.'); + } + } + function parseBfChar(cMap, lexer) { + while (true) { + var obj = lexer.getObj(); + if (isEOF(obj)) { + break; + } + if (isCmd(obj, 'endbfchar')) { + return; + } + expectString(obj); + var src = strToInt(obj); + obj = lexer.getObj(); + expectString(obj); + var dst = obj; + cMap.mapOne(src, dst); + } + } + function parseBfRange(cMap, lexer) { + while (true) { + var obj = lexer.getObj(); + if (isEOF(obj)) { + break; + } + if (isCmd(obj, 'endbfrange')) { + return; + } + expectString(obj); + var low = strToInt(obj); + obj = lexer.getObj(); + expectString(obj); + var high = strToInt(obj); + obj = lexer.getObj(); + if (isInt(obj) || isString(obj)) { + var dstLow = isInt(obj) ? String.fromCharCode(obj) : obj; + cMap.mapBfRange(low, high, dstLow); + } else if (isCmd(obj, '[')) { + obj = lexer.getObj(); + var array = []; + while (!isCmd(obj, ']') && !isEOF(obj)) { + array.push(obj); + obj = lexer.getObj(); + } + cMap.mapBfRangeToArray(low, high, array); + } else { + break; + } + } + error('Invalid bf range.'); + } + function parseCidChar(cMap, lexer) { + while (true) { + var obj = lexer.getObj(); + if (isEOF(obj)) { + break; + } + if (isCmd(obj, 'endcidchar')) { + return; + } + expectString(obj); + var src = strToInt(obj); + obj = lexer.getObj(); + expectInt(obj); + var dst = obj; + cMap.mapOne(src, dst); + } + } + function parseCidRange(cMap, lexer) { + while (true) { + var obj = lexer.getObj(); + if (isEOF(obj)) { + break; + } + if (isCmd(obj, 'endcidrange')) { + return; + } + expectString(obj); + var low = strToInt(obj); + obj = lexer.getObj(); + expectString(obj); + var high = strToInt(obj); + obj = lexer.getObj(); + expectInt(obj); + var dstLow = obj; + cMap.mapCidRange(low, high, dstLow); + } + } + function parseCodespaceRange(cMap, lexer) { + while (true) { + var obj = lexer.getObj(); + if (isEOF(obj)) { + break; + } + if (isCmd(obj, 'endcodespacerange')) { + return; + } + if (!isString(obj)) { + break; + } + var low = strToInt(obj); + obj = lexer.getObj(); + if (!isString(obj)) { + break; + } + var high = strToInt(obj); + cMap.addCodespaceRange(obj.length, low, high); + } + error('Invalid codespace range.'); + } + function parseWMode(cMap, lexer) { + var obj = lexer.getObj(); + if (isInt(obj)) { + cMap.vertical = !!obj; + } + } + function parseCMapName(cMap, lexer) { + var obj = lexer.getObj(); + if (isName(obj) && isString(obj.name)) { + cMap.name = obj.name; + } + } + function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) { + var previous; + var embededUseCMap; + objLoop: + while (true) { + try { + var obj = lexer.getObj(); + if (isEOF(obj)) { + break; + } else if (isName(obj)) { + if (obj.name === 'WMode') { + parseWMode(cMap, lexer); + } else if (obj.name === 'CMapName') { + parseCMapName(cMap, lexer); + } + previous = obj; + } else if (isCmd(obj)) { + switch (obj.cmd) { + case 'endcmap': + break objLoop; + case 'usecmap': + if (isName(previous)) { + embededUseCMap = previous.name; + } + break; + case 'begincodespacerange': + parseCodespaceRange(cMap, lexer); + break; + case 'beginbfchar': + parseBfChar(cMap, lexer); + break; + case 'begincidchar': + parseCidChar(cMap, lexer); + break; + case 'beginbfrange': + parseBfRange(cMap, lexer); + break; + case 'begincidrange': + parseCidRange(cMap, lexer); + break; + } + } + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn('Invalid cMap data: ' + ex); + continue; + } + } + if (!useCMap && embededUseCMap) { + useCMap = embededUseCMap; + } + if (useCMap) { + return extendCMap(cMap, fetchBuiltInCMap, useCMap); + } + return Promise.resolve(cMap); + } + function extendCMap(cMap, fetchBuiltInCMap, useCMap) { + return createBuiltInCMap(useCMap, fetchBuiltInCMap).then(function (newCMap) { + cMap.useCMap = newCMap; + if (cMap.numCodespaceRanges === 0) { + var useCodespaceRanges = cMap.useCMap.codespaceRanges; + for (var i = 0; i < useCodespaceRanges.length; i++) { + cMap.codespaceRanges[i] = useCodespaceRanges[i].slice(); + } + cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges; + } + cMap.useCMap.forEach(function (key, value) { + if (!cMap.contains(key)) { + cMap.mapOne(key, cMap.useCMap.lookup(key)); + } + }); + return cMap; + }); + } + function createBuiltInCMap(name, fetchBuiltInCMap) { + if (name === 'Identity-H') { + return Promise.resolve(new IdentityCMap(false, 2)); + } else if (name === 'Identity-V') { + return Promise.resolve(new IdentityCMap(true, 2)); + } + if (BUILT_IN_CMAPS.indexOf(name) === -1) { + return Promise.reject(new Error('Unknown cMap name: ' + name)); + } + assert(fetchBuiltInCMap, 'Built-in CMap parameters are not provided.'); + return fetchBuiltInCMap(name).then(function (data) { + var cMapData = data.cMapData, compressionType = data.compressionType; + var cMap = new CMap(true); + if (compressionType === CMapCompressionType.BINARY) { + return new BinaryCMapReader().process(cMapData, cMap, function (useCMap) { + return extendCMap(cMap, fetchBuiltInCMap, useCMap); + }); + } + assert(compressionType === CMapCompressionType.NONE, 'TODO: Only BINARY/NONE CMap compression is currently supported.'); + var lexer = new Lexer(new Stream(cMapData)); + return parseCMap(cMap, lexer, fetchBuiltInCMap, null); + }); + } + return { + create: function (params) { + var encoding = params.encoding; + var fetchBuiltInCMap = params.fetchBuiltInCMap; + var useCMap = params.useCMap; + if (isName(encoding)) { + return createBuiltInCMap(encoding.name, fetchBuiltInCMap); + } else if (isStream(encoding)) { + var cMap = new CMap(); + var lexer = new Lexer(encoding); + return parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap).then(function (parsedCMap) { + if (parsedCMap.isIdentityCMap) { + return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap); + } + return parsedCMap; + }); + } + return Promise.reject(new Error('Encoding required.')); + } + }; +}(); +exports.CMap = CMap; +exports.CMapFactory = CMapFactory; +exports.IdentityCMap = IdentityCMap; + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var corePrimitives = __w_pdfjs_require__(1); +var coreStream = __w_pdfjs_require__(2); +var coreObj = __w_pdfjs_require__(16); +var coreParser = __w_pdfjs_require__(5); +var coreCrypto = __w_pdfjs_require__(13); +var coreEvaluator = __w_pdfjs_require__(14); +var coreAnnotation = __w_pdfjs_require__(20); +var OPS = sharedUtil.OPS; +var MissingDataException = sharedUtil.MissingDataException; +var Util = sharedUtil.Util; +var assert = sharedUtil.assert; +var error = sharedUtil.error; +var info = sharedUtil.info; +var isArray = sharedUtil.isArray; +var isArrayBuffer = sharedUtil.isArrayBuffer; +var isNum = sharedUtil.isNum; +var isString = sharedUtil.isString; +var shadow = sharedUtil.shadow; +var stringToBytes = sharedUtil.stringToBytes; +var stringToPDFString = sharedUtil.stringToPDFString; +var warn = sharedUtil.warn; +var isSpace = sharedUtil.isSpace; +var Dict = corePrimitives.Dict; +var isDict = corePrimitives.isDict; +var isName = corePrimitives.isName; +var isStream = corePrimitives.isStream; +var NullStream = coreStream.NullStream; +var Stream = coreStream.Stream; +var StreamsSequenceStream = coreStream.StreamsSequenceStream; +var Catalog = coreObj.Catalog; +var ObjectLoader = coreObj.ObjectLoader; +var XRef = coreObj.XRef; +var Linearization = coreParser.Linearization; +var calculateMD5 = coreCrypto.calculateMD5; +var OperatorList = coreEvaluator.OperatorList; +var PartialEvaluator = coreEvaluator.PartialEvaluator; +var AnnotationFactory = coreAnnotation.AnnotationFactory; +var Page = function PageClosure() { + var DEFAULT_USER_UNIT = 1.0; + var LETTER_SIZE_MEDIABOX = [ + 0, + 0, + 612, + 792 + ]; + function isAnnotationRenderable(annotation, intent) { + return intent === 'display' && annotation.viewable || intent === 'print' && annotation.printable; + } + function Page(pdfManager, xref, pageIndex, pageDict, ref, fontCache, builtInCMapCache) { + this.pdfManager = pdfManager; + this.pageIndex = pageIndex; + this.pageDict = pageDict; + this.xref = xref; + this.ref = ref; + this.fontCache = fontCache; + this.builtInCMapCache = builtInCMapCache; + this.evaluatorOptions = pdfManager.evaluatorOptions; + this.resourcesPromise = null; + var uniquePrefix = 'p' + this.pageIndex + '_'; + var idCounters = { obj: 0 }; + this.idFactory = { + createObjId: function () { + return uniquePrefix + ++idCounters.obj; + } + }; + } + Page.prototype = { + getPageProp: function Page_getPageProp(key) { + return this.pageDict.get(key); + }, + getInheritedPageProp: function Page_getInheritedPageProp(key, getArray) { + var dict = this.pageDict, valueArray = null, loopCount = 0; + var MAX_LOOP_COUNT = 100; + getArray = getArray || false; + while (dict) { + var value = getArray ? dict.getArray(key) : dict.get(key); + if (value !== undefined) { + if (!valueArray) { + valueArray = []; + } + valueArray.push(value); + } + if (++loopCount > MAX_LOOP_COUNT) { + warn('getInheritedPageProp: maximum loop count exceeded for ' + key); + return valueArray ? valueArray[0] : undefined; + } + dict = dict.get('Parent'); + } + if (!valueArray) { + return undefined; + } + if (valueArray.length === 1 || !isDict(valueArray[0])) { + return valueArray[0]; + } + return Dict.merge(this.xref, valueArray); + }, + get content() { + return this.getPageProp('Contents'); + }, + get resources() { + return shadow(this, 'resources', this.getInheritedPageProp('Resources') || Dict.empty); + }, + get mediaBox() { + var mediaBox = this.getInheritedPageProp('MediaBox', true); + if (!isArray(mediaBox) || mediaBox.length !== 4) { + return shadow(this, 'mediaBox', LETTER_SIZE_MEDIABOX); + } + return shadow(this, 'mediaBox', mediaBox); + }, + get cropBox() { + var cropBox = this.getInheritedPageProp('CropBox', true); + if (!isArray(cropBox) || cropBox.length !== 4) { + return shadow(this, 'cropBox', this.mediaBox); + } + return shadow(this, 'cropBox', cropBox); + }, + get userUnit() { + var obj = this.getPageProp('UserUnit'); + if (!isNum(obj) || obj <= 0) { + obj = DEFAULT_USER_UNIT; + } + return shadow(this, 'userUnit', obj); + }, + get view() { + var mediaBox = this.mediaBox, cropBox = this.cropBox; + if (mediaBox === cropBox) { + return shadow(this, 'view', mediaBox); + } + var intersection = Util.intersect(cropBox, mediaBox); + return shadow(this, 'view', intersection || mediaBox); + }, + get rotate() { + var rotate = this.getInheritedPageProp('Rotate') || 0; + if (rotate % 90 !== 0) { + rotate = 0; + } else if (rotate >= 360) { + rotate = rotate % 360; + } else if (rotate < 0) { + rotate = (rotate % 360 + 360) % 360; + } + return shadow(this, 'rotate', rotate); + }, + getContentStream: function Page_getContentStream() { + var content = this.content; + var stream; + if (isArray(content)) { + var xref = this.xref; + var i, n = content.length; + var streams = []; + for (i = 0; i < n; ++i) { + streams.push(xref.fetchIfRef(content[i])); + } + stream = new StreamsSequenceStream(streams); + } else if (isStream(content)) { + stream = content; + } else { + stream = new NullStream(); + } + return stream; + }, + loadResources: function Page_loadResources(keys) { + if (!this.resourcesPromise) { + this.resourcesPromise = this.pdfManager.ensure(this, 'resources'); + } + return this.resourcesPromise.then(function resourceSuccess() { + var objectLoader = new ObjectLoader(this.resources.map, keys, this.xref); + return objectLoader.load(); + }.bind(this)); + }, + getOperatorList: function Page_getOperatorList(handler, task, intent, renderInteractiveForms) { + var self = this; + var pdfManager = this.pdfManager; + var contentStreamPromise = pdfManager.ensure(this, 'getContentStream', []); + var resourcesPromise = this.loadResources([ + 'ExtGState', + 'ColorSpace', + 'Pattern', + 'Shading', + 'XObject', + 'Font' + ]); + var partialEvaluator = new PartialEvaluator(pdfManager, this.xref, handler, this.pageIndex, this.idFactory, this.fontCache, this.builtInCMapCache, this.evaluatorOptions); + var dataPromises = Promise.all([ + contentStreamPromise, + resourcesPromise + ]); + var pageListPromise = dataPromises.then(function (data) { + var contentStream = data[0]; + var opList = new OperatorList(intent, handler, self.pageIndex); + handler.send('StartRenderPage', { + transparency: partialEvaluator.hasBlendModes(self.resources), + pageIndex: self.pageIndex, + intent: intent + }); + return partialEvaluator.getOperatorList(contentStream, task, self.resources, opList).then(function () { + return opList; + }); + }); + var annotationsPromise = pdfManager.ensure(this, 'annotations'); + return Promise.all([ + pageListPromise, + annotationsPromise + ]).then(function (datas) { + var pageOpList = datas[0]; + var annotations = datas[1]; + if (annotations.length === 0) { + pageOpList.flush(true); + return pageOpList; + } + var i, ii, opListPromises = []; + for (i = 0, ii = annotations.length; i < ii; i++) { + if (isAnnotationRenderable(annotations[i], intent)) { + opListPromises.push(annotations[i].getOperatorList(partialEvaluator, task, renderInteractiveForms)); + } + } + return Promise.all(opListPromises).then(function (opLists) { + pageOpList.addOp(OPS.beginAnnotations, []); + for (i = 0, ii = opLists.length; i < ii; i++) { + pageOpList.addOpList(opLists[i]); + } + pageOpList.addOp(OPS.endAnnotations, []); + pageOpList.flush(true); + return pageOpList; + }); + }); + }, + extractTextContent: function Page_extractTextContent(task, normalizeWhitespace, combineTextItems) { + var handler = { + on: function nullHandlerOn() { + }, + send: function nullHandlerSend() { + } + }; + var self = this; + var pdfManager = this.pdfManager; + var contentStreamPromise = pdfManager.ensure(this, 'getContentStream', []); + var resourcesPromise = this.loadResources([ + 'ExtGState', + 'XObject', + 'Font' + ]); + var dataPromises = Promise.all([ + contentStreamPromise, + resourcesPromise + ]); + return dataPromises.then(function (data) { + var contentStream = data[0]; + var partialEvaluator = new PartialEvaluator(pdfManager, self.xref, handler, self.pageIndex, self.idFactory, self.fontCache, self.builtInCMapCache, self.evaluatorOptions); + return partialEvaluator.getTextContent(contentStream, task, self.resources, null, normalizeWhitespace, combineTextItems); + }); + }, + getAnnotationsData: function Page_getAnnotationsData(intent) { + var annotations = this.annotations; + var annotationsData = []; + for (var i = 0, n = annotations.length; i < n; ++i) { + if (!intent || isAnnotationRenderable(annotations[i], intent)) { + annotationsData.push(annotations[i].data); + } + } + return annotationsData; + }, + get annotations() { + var annotations = []; + var annotationRefs = this.getInheritedPageProp('Annots') || []; + var annotationFactory = new AnnotationFactory(); + for (var i = 0, n = annotationRefs.length; i < n; ++i) { + var annotationRef = annotationRefs[i]; + var annotation = annotationFactory.create(this.xref, annotationRef, this.pdfManager, this.idFactory); + if (annotation) { + annotations.push(annotation); + } + } + return shadow(this, 'annotations', annotations); + } + }; + return Page; +}(); +var PDFDocument = function PDFDocumentClosure() { + var FINGERPRINT_FIRST_BYTES = 1024; + var EMPTY_FINGERPRINT = '\x00\x00\x00\x00\x00\x00\x00' + '\x00\x00\x00\x00\x00\x00\x00\x00\x00'; + function PDFDocument(pdfManager, arg) { + var stream; + if (isStream(arg)) { + stream = arg; + } else if (isArrayBuffer(arg)) { + stream = new Stream(arg); + } else { + error('PDFDocument: Unknown argument type'); + } + assert(stream.length > 0, 'stream must have data'); + this.pdfManager = pdfManager; + this.stream = stream; + this.xref = new XRef(stream, pdfManager); + } + function find(stream, needle, limit, backwards) { + var pos = stream.pos; + var end = stream.end; + var strBuf = []; + if (pos + limit > end) { + limit = end - pos; + } + for (var n = 0; n < limit; ++n) { + strBuf.push(String.fromCharCode(stream.getByte())); + } + var str = strBuf.join(''); + stream.pos = pos; + var index = backwards ? str.lastIndexOf(needle) : str.indexOf(needle); + if (index === -1) { + return false; + } + stream.pos += index; + return true; + } + var DocumentInfoValidators = { + get entries() { + return shadow(this, 'entries', { + Title: isString, + Author: isString, + Subject: isString, + Keywords: isString, + Creator: isString, + Producer: isString, + CreationDate: isString, + ModDate: isString, + Trapped: isName + }); + } + }; + PDFDocument.prototype = { + parse: function PDFDocument_parse(recoveryMode) { + this.setup(recoveryMode); + var version = this.catalog.catDict.get('Version'); + if (isName(version)) { + this.pdfFormatVersion = version.name; + } + try { + this.acroForm = this.catalog.catDict.get('AcroForm'); + if (this.acroForm) { + this.xfa = this.acroForm.get('XFA'); + var fields = this.acroForm.get('Fields'); + if ((!fields || !isArray(fields) || fields.length === 0) && !this.xfa) { + this.acroForm = null; + } + } + } catch (ex) { + info('Something wrong with AcroForm entry'); + this.acroForm = null; + } + }, + get linearization() { + var linearization = null; + if (this.stream.length) { + try { + linearization = Linearization.create(this.stream); + } catch (err) { + if (err instanceof MissingDataException) { + throw err; + } + info(err); + } + } + return shadow(this, 'linearization', linearization); + }, + get startXRef() { + var stream = this.stream; + var startXRef = 0; + var linearization = this.linearization; + if (linearization) { + stream.reset(); + if (find(stream, 'endobj', 1024)) { + startXRef = stream.pos + 6; + } + } else { + var step = 1024; + var found = false, pos = stream.end; + while (!found && pos > 0) { + pos -= step - 'startxref'.length; + if (pos < 0) { + pos = 0; + } + stream.pos = pos; + found = find(stream, 'startxref', step, true); + } + if (found) { + stream.skip(9); + var ch; + do { + ch = stream.getByte(); + } while (isSpace(ch)); + var str = ''; + while (ch >= 0x20 && ch <= 0x39) { + str += String.fromCharCode(ch); + ch = stream.getByte(); + } + startXRef = parseInt(str, 10); + if (isNaN(startXRef)) { + startXRef = 0; + } + } + } + return shadow(this, 'startXRef', startXRef); + }, + get mainXRefEntriesOffset() { + var mainXRefEntriesOffset = 0; + var linearization = this.linearization; + if (linearization) { + mainXRefEntriesOffset = linearization.mainXRefEntriesOffset; + } + return shadow(this, 'mainXRefEntriesOffset', mainXRefEntriesOffset); + }, + checkHeader: function PDFDocument_checkHeader() { + var stream = this.stream; + stream.reset(); + if (find(stream, '%PDF-', 1024)) { + stream.moveStart(); + var MAX_VERSION_LENGTH = 12; + var version = '', ch; + while ((ch = stream.getByte()) > 0x20) { + if (version.length >= MAX_VERSION_LENGTH) { + break; + } + version += String.fromCharCode(ch); + } + if (!this.pdfFormatVersion) { + this.pdfFormatVersion = version.substring(5); + } + return; + } + }, + parseStartXRef: function PDFDocument_parseStartXRef() { + var startXRef = this.startXRef; + this.xref.setStartXRef(startXRef); + }, + setup: function PDFDocument_setup(recoveryMode) { + this.xref.parse(recoveryMode); + var self = this; + var pageFactory = { + createPage: function (pageIndex, dict, ref, fontCache, builtInCMapCache) { + return new Page(self.pdfManager, self.xref, pageIndex, dict, ref, fontCache, builtInCMapCache); + } + }; + this.catalog = new Catalog(this.pdfManager, this.xref, pageFactory); + }, + get numPages() { + var linearization = this.linearization; + var num = linearization ? linearization.numPages : this.catalog.numPages; + return shadow(this, 'numPages', num); + }, + get documentInfo() { + var docInfo = { + PDFFormatVersion: this.pdfFormatVersion, + IsAcroFormPresent: !!this.acroForm, + IsXFAPresent: !!this.xfa + }; + var infoDict; + try { + infoDict = this.xref.trailer.get('Info'); + } catch (err) { + info('The document information dictionary is invalid.'); + } + if (infoDict) { + var validEntries = DocumentInfoValidators.entries; + for (var key in validEntries) { + if (infoDict.has(key)) { + var value = infoDict.get(key); + if (validEntries[key](value)) { + docInfo[key] = typeof value !== 'string' ? value : stringToPDFString(value); + } else { + info('Bad value in document info for "' + key + '"'); + } + } + } + } + return shadow(this, 'documentInfo', docInfo); + }, + get fingerprint() { + var xref = this.xref, hash, fileID = ''; + var idArray = xref.trailer.get('ID'); + if (idArray && isArray(idArray) && idArray[0] && isString(idArray[0]) && idArray[0] !== EMPTY_FINGERPRINT) { + hash = stringToBytes(idArray[0]); + } else { + if (this.stream.ensureRange) { + this.stream.ensureRange(0, Math.min(FINGERPRINT_FIRST_BYTES, this.stream.end)); + } + hash = calculateMD5(this.stream.bytes.subarray(0, FINGERPRINT_FIRST_BYTES), 0, FINGERPRINT_FIRST_BYTES); + } + for (var i = 0, n = hash.length; i < n; i++) { + var hex = hash[i].toString(16); + fileID += hex.length === 1 ? '0' + hex : hex; + } + return shadow(this, 'fingerprint', fileID); + }, + getPage: function PDFDocument_getPage(pageIndex) { + return this.catalog.getPage(pageIndex); + }, + cleanup: function PDFDocument_cleanup() { + return this.catalog.cleanup(); + } + }; + return PDFDocument; +}(); +exports.Page = Page; +exports.PDFDocument = PDFDocument; + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var coreStream = __w_pdfjs_require__(2); +var coreGlyphList = __w_pdfjs_require__(7); +var coreEncodings = __w_pdfjs_require__(4); +var coreCFFParser = __w_pdfjs_require__(11); +var Util = sharedUtil.Util; +var bytesToString = sharedUtil.bytesToString; +var error = sharedUtil.error; +var Stream = coreStream.Stream; +var getGlyphsUnicode = coreGlyphList.getGlyphsUnicode; +var StandardEncoding = coreEncodings.StandardEncoding; +var CFFParser = coreCFFParser.CFFParser; +var FontRendererFactory = function FontRendererFactoryClosure() { + function getLong(data, offset) { + return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]; + } + function getUshort(data, offset) { + return data[offset] << 8 | data[offset + 1]; + } + function parseCmap(data, start, end) { + var offset = getUshort(data, start + 2) === 1 ? getLong(data, start + 8) : getLong(data, start + 16); + var format = getUshort(data, start + offset); + var ranges, p, i; + if (format === 4) { + getUshort(data, start + offset + 2); + var segCount = getUshort(data, start + offset + 6) >> 1; + p = start + offset + 14; + ranges = []; + for (i = 0; i < segCount; i++, p += 2) { + ranges[i] = { end: getUshort(data, p) }; + } + p += 2; + for (i = 0; i < segCount; i++, p += 2) { + ranges[i].start = getUshort(data, p); + } + for (i = 0; i < segCount; i++, p += 2) { + ranges[i].idDelta = getUshort(data, p); + } + for (i = 0; i < segCount; i++, p += 2) { + var idOffset = getUshort(data, p); + if (idOffset === 0) { + continue; + } + ranges[i].ids = []; + for (var j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) { + ranges[i].ids[j] = getUshort(data, p + idOffset); + idOffset += 2; + } + } + return ranges; + } else if (format === 12) { + getLong(data, start + offset + 4); + var groups = getLong(data, start + offset + 12); + p = start + offset + 16; + ranges = []; + for (i = 0; i < groups; i++) { + ranges.push({ + start: getLong(data, p), + end: getLong(data, p + 4), + idDelta: getLong(data, p + 8) - getLong(data, p) + }); + p += 12; + } + return ranges; + } + error('not supported cmap: ' + format); + } + function parseCff(data, start, end, seacAnalysisEnabled) { + var properties = {}; + var parser = new CFFParser(new Stream(data, start, end - start), properties, seacAnalysisEnabled); + var cff = parser.parse(); + return { + glyphs: cff.charStrings.objects, + subrs: cff.topDict.privateDict && cff.topDict.privateDict.subrsIndex && cff.topDict.privateDict.subrsIndex.objects, + gsubrs: cff.globalSubrIndex && cff.globalSubrIndex.objects + }; + } + function parseGlyfTable(glyf, loca, isGlyphLocationsLong) { + var itemSize, itemDecode; + if (isGlyphLocationsLong) { + itemSize = 4; + itemDecode = function fontItemDecodeLong(data, offset) { + return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]; + }; + } else { + itemSize = 2; + itemDecode = function fontItemDecode(data, offset) { + return data[offset] << 9 | data[offset + 1] << 1; + }; + } + var glyphs = []; + var startOffset = itemDecode(loca, 0); + for (var j = itemSize; j < loca.length; j += itemSize) { + var endOffset = itemDecode(loca, j); + glyphs.push(glyf.subarray(startOffset, endOffset)); + startOffset = endOffset; + } + return glyphs; + } + function lookupCmap(ranges, unicode) { + var code = unicode.charCodeAt(0), gid = 0; + var l = 0, r = ranges.length - 1; + while (l < r) { + var c = l + r + 1 >> 1; + if (code < ranges[c].start) { + r = c - 1; + } else { + l = c; + } + } + if (ranges[l].start <= code && code <= ranges[l].end) { + gid = ranges[l].idDelta + (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code) & 0xFFFF; + } + return { + charCode: code, + glyphId: gid + }; + } + function compileGlyf(code, cmds, font) { + function moveTo(x, y) { + cmds.push({ + cmd: 'moveTo', + args: [ + x, + y + ] + }); + } + function lineTo(x, y) { + cmds.push({ + cmd: 'lineTo', + args: [ + x, + y + ] + }); + } + function quadraticCurveTo(xa, ya, x, y) { + cmds.push({ + cmd: 'quadraticCurveTo', + args: [ + xa, + ya, + x, + y + ] + }); + } + var i = 0; + var numberOfContours = (code[i] << 24 | code[i + 1] << 16) >> 16; + var flags; + var x = 0, y = 0; + i += 10; + if (numberOfContours < 0) { + do { + flags = code[i] << 8 | code[i + 1]; + var glyphIndex = code[i + 2] << 8 | code[i + 3]; + i += 4; + var arg1, arg2; + if (flags & 0x01) { + arg1 = (code[i] << 24 | code[i + 1] << 16) >> 16; + arg2 = (code[i + 2] << 24 | code[i + 3] << 16) >> 16; + i += 4; + } else { + arg1 = code[i++]; + arg2 = code[i++]; + } + if (flags & 0x02) { + x = arg1; + y = arg2; + } else { + x = 0; + y = 0; + } + var scaleX = 1, scaleY = 1, scale01 = 0, scale10 = 0; + if (flags & 0x08) { + scaleX = scaleY = (code[i] << 24 | code[i + 1] << 16) / 1073741824; + i += 2; + } else if (flags & 0x40) { + scaleX = (code[i] << 24 | code[i + 1] << 16) / 1073741824; + scaleY = (code[i + 2] << 24 | code[i + 3] << 16) / 1073741824; + i += 4; + } else if (flags & 0x80) { + scaleX = (code[i] << 24 | code[i + 1] << 16) / 1073741824; + scale01 = (code[i + 2] << 24 | code[i + 3] << 16) / 1073741824; + scale10 = (code[i + 4] << 24 | code[i + 5] << 16) / 1073741824; + scaleY = (code[i + 6] << 24 | code[i + 7] << 16) / 1073741824; + i += 8; + } + var subglyph = font.glyphs[glyphIndex]; + if (subglyph) { + cmds.push({ cmd: 'save' }); + cmds.push({ + cmd: 'transform', + args: [ + scaleX, + scale01, + scale10, + scaleY, + x, + y + ] + }); + compileGlyf(subglyph, cmds, font); + cmds.push({ cmd: 'restore' }); + } + } while (flags & 0x20); + } else { + var endPtsOfContours = []; + var j, jj; + for (j = 0; j < numberOfContours; j++) { + endPtsOfContours.push(code[i] << 8 | code[i + 1]); + i += 2; + } + var instructionLength = code[i] << 8 | code[i + 1]; + i += 2 + instructionLength; + var numberOfPoints = endPtsOfContours[endPtsOfContours.length - 1] + 1; + var points = []; + while (points.length < numberOfPoints) { + flags = code[i++]; + var repeat = 1; + if (flags & 0x08) { + repeat += code[i++]; + } + while (repeat-- > 0) { + points.push({ flags: flags }); + } + } + for (j = 0; j < numberOfPoints; j++) { + switch (points[j].flags & 0x12) { + case 0x00: + x += (code[i] << 24 | code[i + 1] << 16) >> 16; + i += 2; + break; + case 0x02: + x -= code[i++]; + break; + case 0x12: + x += code[i++]; + break; + } + points[j].x = x; + } + for (j = 0; j < numberOfPoints; j++) { + switch (points[j].flags & 0x24) { + case 0x00: + y += (code[i] << 24 | code[i + 1] << 16) >> 16; + i += 2; + break; + case 0x04: + y -= code[i++]; + break; + case 0x24: + y += code[i++]; + break; + } + points[j].y = y; + } + var startPoint = 0; + for (i = 0; i < numberOfContours; i++) { + var endPoint = endPtsOfContours[i]; + var contour = points.slice(startPoint, endPoint + 1); + if (contour[0].flags & 1) { + contour.push(contour[0]); + } else if (contour[contour.length - 1].flags & 1) { + contour.unshift(contour[contour.length - 1]); + } else { + var p = { + flags: 1, + x: (contour[0].x + contour[contour.length - 1].x) / 2, + y: (contour[0].y + contour[contour.length - 1].y) / 2 + }; + contour.unshift(p); + contour.push(p); + } + moveTo(contour[0].x, contour[0].y); + for (j = 1, jj = contour.length; j < jj; j++) { + if (contour[j].flags & 1) { + lineTo(contour[j].x, contour[j].y); + } else if (contour[j + 1].flags & 1) { + quadraticCurveTo(contour[j].x, contour[j].y, contour[j + 1].x, contour[j + 1].y); + j++; + } else { + quadraticCurveTo(contour[j].x, contour[j].y, (contour[j].x + contour[j + 1].x) / 2, (contour[j].y + contour[j + 1].y) / 2); + } + } + startPoint = endPoint + 1; + } + } + } + function compileCharString(code, cmds, font) { + var stack = []; + var x = 0, y = 0; + var stems = 0; + function moveTo(x, y) { + cmds.push({ + cmd: 'moveTo', + args: [ + x, + y + ] + }); + } + function lineTo(x, y) { + cmds.push({ + cmd: 'lineTo', + args: [ + x, + y + ] + }); + } + function bezierCurveTo(x1, y1, x2, y2, x, y) { + cmds.push({ + cmd: 'bezierCurveTo', + args: [ + x1, + y1, + x2, + y2, + x, + y + ] + }); + } + function parse(code) { + var i = 0; + while (i < code.length) { + var stackClean = false; + var v = code[i++]; + var xa, xb, ya, yb, y1, y2, y3, n, subrCode; + switch (v) { + case 1: + stems += stack.length >> 1; + stackClean = true; + break; + case 3: + stems += stack.length >> 1; + stackClean = true; + break; + case 4: + y += stack.pop(); + moveTo(x, y); + stackClean = true; + break; + case 5: + while (stack.length > 0) { + x += stack.shift(); + y += stack.shift(); + lineTo(x, y); + } + break; + case 6: + while (stack.length > 0) { + x += stack.shift(); + lineTo(x, y); + if (stack.length === 0) { + break; + } + y += stack.shift(); + lineTo(x, y); + } + break; + case 7: + while (stack.length > 0) { + y += stack.shift(); + lineTo(x, y); + if (stack.length === 0) { + break; + } + x += stack.shift(); + lineTo(x, y); + } + break; + case 8: + while (stack.length > 0) { + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + } + break; + case 10: + n = stack.pop() + font.subrsBias; + subrCode = font.subrs[n]; + if (subrCode) { + parse(subrCode); + } + break; + case 11: + return; + case 12: + v = code[i++]; + switch (v) { + case 34: + xa = x + stack.shift(); + xb = xa + stack.shift(); + y1 = y + stack.shift(); + x = xb + stack.shift(); + bezierCurveTo(xa, y, xb, y1, x, y1); + xa = x + stack.shift(); + xb = xa + stack.shift(); + x = xb + stack.shift(); + bezierCurveTo(xa, y1, xb, y, x, y); + break; + case 35: + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + stack.pop(); + break; + case 36: + xa = x + stack.shift(); + y1 = y + stack.shift(); + xb = xa + stack.shift(); + y2 = y1 + stack.shift(); + x = xb + stack.shift(); + bezierCurveTo(xa, y1, xb, y2, x, y2); + xa = x + stack.shift(); + xb = xa + stack.shift(); + y3 = y2 + stack.shift(); + x = xb + stack.shift(); + bezierCurveTo(xa, y2, xb, y3, x, y); + break; + case 37: + var x0 = x, y0 = y; + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb; + y = yb; + if (Math.abs(x - x0) > Math.abs(y - y0)) { + x += stack.shift(); + } else { + y += stack.shift(); + } + bezierCurveTo(xa, ya, xb, yb, x, y); + break; + default: + error('unknown operator: 12 ' + v); + } + break; + case 14: + if (stack.length >= 4) { + var achar = stack.pop(); + var bchar = stack.pop(); + y = stack.pop(); + x = stack.pop(); + cmds.push({ cmd: 'save' }); + cmds.push({ + cmd: 'translate', + args: [ + x, + y + ] + }); + var cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[StandardEncoding[achar]])); + compileCharString(font.glyphs[cmap.glyphId], cmds, font); + cmds.push({ cmd: 'restore' }); + cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[StandardEncoding[bchar]])); + compileCharString(font.glyphs[cmap.glyphId], cmds, font); + } + return; + case 18: + stems += stack.length >> 1; + stackClean = true; + break; + case 19: + stems += stack.length >> 1; + i += stems + 7 >> 3; + stackClean = true; + break; + case 20: + stems += stack.length >> 1; + i += stems + 7 >> 3; + stackClean = true; + break; + case 21: + y += stack.pop(); + x += stack.pop(); + moveTo(x, y); + stackClean = true; + break; + case 22: + x += stack.pop(); + moveTo(x, y); + stackClean = true; + break; + case 23: + stems += stack.length >> 1; + stackClean = true; + break; + case 24: + while (stack.length > 2) { + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + } + x += stack.shift(); + y += stack.shift(); + lineTo(x, y); + break; + case 25: + while (stack.length > 6) { + x += stack.shift(); + y += stack.shift(); + lineTo(x, y); + } + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + break; + case 26: + if (stack.length % 2) { + x += stack.shift(); + } + while (stack.length > 0) { + xa = x; + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb; + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + } + break; + case 27: + if (stack.length % 2) { + y += stack.shift(); + } + while (stack.length > 0) { + xa = x + stack.shift(); + ya = y; + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb; + bezierCurveTo(xa, ya, xb, yb, x, y); + } + break; + case 28: + stack.push((code[i] << 24 | code[i + 1] << 16) >> 16); + i += 2; + break; + case 29: + n = stack.pop() + font.gsubrsBias; + subrCode = font.gsubrs[n]; + if (subrCode) { + parse(subrCode); + } + break; + case 30: + while (stack.length > 0) { + xa = x; + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + (stack.length === 1 ? stack.shift() : 0); + bezierCurveTo(xa, ya, xb, yb, x, y); + if (stack.length === 0) { + break; + } + xa = x + stack.shift(); + ya = y; + xb = xa + stack.shift(); + yb = ya + stack.shift(); + y = yb + stack.shift(); + x = xb + (stack.length === 1 ? stack.shift() : 0); + bezierCurveTo(xa, ya, xb, yb, x, y); + } + break; + case 31: + while (stack.length > 0) { + xa = x + stack.shift(); + ya = y; + xb = xa + stack.shift(); + yb = ya + stack.shift(); + y = yb + stack.shift(); + x = xb + (stack.length === 1 ? stack.shift() : 0); + bezierCurveTo(xa, ya, xb, yb, x, y); + if (stack.length === 0) { + break; + } + xa = x; + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + (stack.length === 1 ? stack.shift() : 0); + bezierCurveTo(xa, ya, xb, yb, x, y); + } + break; + default: + if (v < 32) { + error('unknown operator: ' + v); + } + if (v < 247) { + stack.push(v - 139); + } else if (v < 251) { + stack.push((v - 247) * 256 + code[i++] + 108); + } else if (v < 255) { + stack.push(-(v - 251) * 256 - code[i++] - 108); + } else { + stack.push((code[i] << 24 | code[i + 1] << 16 | code[i + 2] << 8 | code[i + 3]) / 65536); + i += 4; + } + break; + } + if (stackClean) { + stack.length = 0; + } + } + } + parse(code); + } + var noop = ''; + function CompiledFont(fontMatrix) { + this.compiledGlyphs = Object.create(null); + this.compiledCharCodeToGlyphId = Object.create(null); + this.fontMatrix = fontMatrix; + } + CompiledFont.prototype = { + getPathJs: function (unicode) { + var cmap = lookupCmap(this.cmap, unicode); + var fn = this.compiledGlyphs[cmap.glyphId]; + if (!fn) { + fn = this.compileGlyph(this.glyphs[cmap.glyphId]); + this.compiledGlyphs[cmap.glyphId] = fn; + } + if (this.compiledCharCodeToGlyphId[cmap.charCode] === undefined) { + this.compiledCharCodeToGlyphId[cmap.charCode] = cmap.glyphId; + } + return fn; + }, + compileGlyph: function (code) { + if (!code || code.length === 0 || code[0] === 14) { + return noop; + } + var cmds = []; + cmds.push({ cmd: 'save' }); + cmds.push({ + cmd: 'transform', + args: this.fontMatrix.slice() + }); + cmds.push({ + cmd: 'scale', + args: [ + 'size', + '-size' + ] + }); + this.compileGlyphImpl(code, cmds); + cmds.push({ cmd: 'restore' }); + return cmds; + }, + compileGlyphImpl: function () { + error('Children classes should implement this.'); + }, + hasBuiltPath: function (unicode) { + var cmap = lookupCmap(this.cmap, unicode); + return this.compiledGlyphs[cmap.glyphId] !== undefined && this.compiledCharCodeToGlyphId[cmap.charCode] !== undefined; + } + }; + function TrueTypeCompiled(glyphs, cmap, fontMatrix) { + fontMatrix = fontMatrix || [ + 0.000488, + 0, + 0, + 0.000488, + 0, + 0 + ]; + CompiledFont.call(this, fontMatrix); + this.glyphs = glyphs; + this.cmap = cmap; + } + Util.inherit(TrueTypeCompiled, CompiledFont, { + compileGlyphImpl: function (code, cmds) { + compileGlyf(code, cmds, this); + } + }); + function Type2Compiled(cffInfo, cmap, fontMatrix, glyphNameMap) { + fontMatrix = fontMatrix || [ + 0.001, + 0, + 0, + 0.001, + 0, + 0 + ]; + CompiledFont.call(this, fontMatrix); + this.glyphs = cffInfo.glyphs; + this.gsubrs = cffInfo.gsubrs || []; + this.subrs = cffInfo.subrs || []; + this.cmap = cmap; + this.glyphNameMap = glyphNameMap || getGlyphsUnicode(); + this.gsubrsBias = this.gsubrs.length < 1240 ? 107 : this.gsubrs.length < 33900 ? 1131 : 32768; + this.subrsBias = this.subrs.length < 1240 ? 107 : this.subrs.length < 33900 ? 1131 : 32768; + } + Util.inherit(Type2Compiled, CompiledFont, { + compileGlyphImpl: function (code, cmds) { + compileCharString(code, cmds, this); + } + }); + return { + create: function FontRendererFactory_create(font, seacAnalysisEnabled) { + var data = new Uint8Array(font.data); + var cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm; + var numTables = getUshort(data, 4); + for (var i = 0, p = 12; i < numTables; i++, p += 16) { + var tag = bytesToString(data.subarray(p, p + 4)); + var offset = getLong(data, p + 8); + var length = getLong(data, p + 12); + switch (tag) { + case 'cmap': + cmap = parseCmap(data, offset, offset + length); + break; + case 'glyf': + glyf = data.subarray(offset, offset + length); + break; + case 'loca': + loca = data.subarray(offset, offset + length); + break; + case 'head': + unitsPerEm = getUshort(data, offset + 18); + indexToLocFormat = getUshort(data, offset + 50); + break; + case 'CFF ': + cff = parseCff(data, offset, offset + length, seacAnalysisEnabled); + break; + } + } + if (glyf) { + var fontMatrix = !unitsPerEm ? font.fontMatrix : [ + 1 / unitsPerEm, + 0, + 0, + 1 / unitsPerEm, + 0, + 0 + ]; + return new TrueTypeCompiled(parseGlyfTable(glyf, loca, indexToLocFormat), cmap, fontMatrix); + } + return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap); + } + }; +}(); +exports.FontRendererFactory = FontRendererFactory; + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var corePrimitives = __w_pdfjs_require__(1); +var coreStream = __w_pdfjs_require__(2); +var coreGlyphList = __w_pdfjs_require__(7); +var coreFontRenderer = __w_pdfjs_require__(25); +var coreEncodings = __w_pdfjs_require__(4); +var coreStandardFonts = __w_pdfjs_require__(17); +var coreUnicode = __w_pdfjs_require__(18); +var coreType1Parser = __w_pdfjs_require__(35); +var coreCFFParser = __w_pdfjs_require__(11); +var FONT_IDENTITY_MATRIX = sharedUtil.FONT_IDENTITY_MATRIX; +var FontType = sharedUtil.FontType; +var assert = sharedUtil.assert; +var bytesToString = sharedUtil.bytesToString; +var error = sharedUtil.error; +var info = sharedUtil.info; +var isArray = sharedUtil.isArray; +var isInt = sharedUtil.isInt; +var isNum = sharedUtil.isNum; +var readUint32 = sharedUtil.readUint32; +var shadow = sharedUtil.shadow; +var string32 = sharedUtil.string32; +var warn = sharedUtil.warn; +var MissingDataException = sharedUtil.MissingDataException; +var isSpace = sharedUtil.isSpace; +var Stream = coreStream.Stream; +var getGlyphsUnicode = coreGlyphList.getGlyphsUnicode; +var getDingbatsGlyphsUnicode = coreGlyphList.getDingbatsGlyphsUnicode; +var FontRendererFactory = coreFontRenderer.FontRendererFactory; +var StandardEncoding = coreEncodings.StandardEncoding; +var MacRomanEncoding = coreEncodings.MacRomanEncoding; +var SymbolSetEncoding = coreEncodings.SymbolSetEncoding; +var ZapfDingbatsEncoding = coreEncodings.ZapfDingbatsEncoding; +var getEncoding = coreEncodings.getEncoding; +var getStdFontMap = coreStandardFonts.getStdFontMap; +var getNonStdFontMap = coreStandardFonts.getNonStdFontMap; +var getGlyphMapForStandardFonts = coreStandardFonts.getGlyphMapForStandardFonts; +var getSupplementalGlyphMapForArialBlack = coreStandardFonts.getSupplementalGlyphMapForArialBlack; +var getUnicodeRangeFor = coreUnicode.getUnicodeRangeFor; +var mapSpecialUnicodeValues = coreUnicode.mapSpecialUnicodeValues; +var getUnicodeForGlyph = coreUnicode.getUnicodeForGlyph; +var Type1Parser = coreType1Parser.Type1Parser; +var CFFStandardStrings = coreCFFParser.CFFStandardStrings; +var CFFParser = coreCFFParser.CFFParser; +var CFFCompiler = coreCFFParser.CFFCompiler; +var CFF = coreCFFParser.CFF; +var CFFHeader = coreCFFParser.CFFHeader; +var CFFTopDict = coreCFFParser.CFFTopDict; +var CFFPrivateDict = coreCFFParser.CFFPrivateDict; +var CFFStrings = coreCFFParser.CFFStrings; +var CFFIndex = coreCFFParser.CFFIndex; +var CFFCharset = coreCFFParser.CFFCharset; +var PRIVATE_USE_OFFSET_START = 0xE000; +var PRIVATE_USE_OFFSET_END = 0xF8FF; +var SKIP_PRIVATE_USE_RANGE_F000_TO_F01F = false; +var PDF_GLYPH_SPACE_UNITS = 1000; +var SEAC_ANALYSIS_ENABLED = false; +var FontFlags = { + FixedPitch: 1, + Serif: 2, + Symbolic: 4, + Script: 8, + Nonsymbolic: 32, + Italic: 64, + AllCap: 65536, + SmallCap: 131072, + ForceBold: 262144 +}; +var MacStandardGlyphOrdering = [ + '.notdef', + '.null', + 'nonmarkingreturn', + 'space', + 'exclam', + 'quotedbl', + 'numbersign', + 'dollar', + 'percent', + 'ampersand', + 'quotesingle', + 'parenleft', + 'parenright', + 'asterisk', + 'plus', + 'comma', + 'hyphen', + 'period', + 'slash', + 'zero', + 'one', + 'two', + 'three', + 'four', + 'five', + 'six', + 'seven', + 'eight', + 'nine', + 'colon', + 'semicolon', + 'less', + 'equal', + 'greater', + 'question', + 'at', + 'A', + 'B', + 'C', + 'D', + 'E', + 'F', + 'G', + 'H', + 'I', + 'J', + 'K', + 'L', + 'M', + 'N', + 'O', + 'P', + 'Q', + 'R', + 'S', + 'T', + 'U', + 'V', + 'W', + 'X', + 'Y', + 'Z', + 'bracketleft', + 'backslash', + 'bracketright', + 'asciicircum', + 'underscore', + 'grave', + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', + 'k', + 'l', + 'm', + 'n', + 'o', + 'p', + 'q', + 'r', + 's', + 't', + 'u', + 'v', + 'w', + 'x', + 'y', + 'z', + 'braceleft', + 'bar', + 'braceright', + 'asciitilde', + 'Adieresis', + 'Aring', + 'Ccedilla', + 'Eacute', + 'Ntilde', + 'Odieresis', + 'Udieresis', + 'aacute', + 'agrave', + 'acircumflex', + 'adieresis', + 'atilde', + 'aring', + 'ccedilla', + 'eacute', + 'egrave', + 'ecircumflex', + 'edieresis', + 'iacute', + 'igrave', + 'icircumflex', + 'idieresis', + 'ntilde', + 'oacute', + 'ograve', + 'ocircumflex', + 'odieresis', + 'otilde', + 'uacute', + 'ugrave', + 'ucircumflex', + 'udieresis', + 'dagger', + 'degree', + 'cent', + 'sterling', + 'section', + 'bullet', + 'paragraph', + 'germandbls', + 'registered', + 'copyright', + 'trademark', + 'acute', + 'dieresis', + 'notequal', + 'AE', + 'Oslash', + 'infinity', + 'plusminus', + 'lessequal', + 'greaterequal', + 'yen', + 'mu', + 'partialdiff', + 'summation', + 'product', + 'pi', + 'integral', + 'ordfeminine', + 'ordmasculine', + 'Omega', + 'ae', + 'oslash', + 'questiondown', + 'exclamdown', + 'logicalnot', + 'radical', + 'florin', + 'approxequal', + 'Delta', + 'guillemotleft', + 'guillemotright', + 'ellipsis', + 'nonbreakingspace', + 'Agrave', + 'Atilde', + 'Otilde', + 'OE', + 'oe', + 'endash', + 'emdash', + 'quotedblleft', + 'quotedblright', + 'quoteleft', + 'quoteright', + 'divide', + 'lozenge', + 'ydieresis', + 'Ydieresis', + 'fraction', + 'currency', + 'guilsinglleft', + 'guilsinglright', + 'fi', + 'fl', + 'daggerdbl', + 'periodcentered', + 'quotesinglbase', + 'quotedblbase', + 'perthousand', + 'Acircumflex', + 'Ecircumflex', + 'Aacute', + 'Edieresis', + 'Egrave', + 'Iacute', + 'Icircumflex', + 'Idieresis', + 'Igrave', + 'Oacute', + 'Ocircumflex', + 'apple', + 'Ograve', + 'Uacute', + 'Ucircumflex', + 'Ugrave', + 'dotlessi', + 'circumflex', + 'tilde', + 'macron', + 'breve', + 'dotaccent', + 'ring', + 'cedilla', + 'hungarumlaut', + 'ogonek', + 'caron', + 'Lslash', + 'lslash', + 'Scaron', + 'scaron', + 'Zcaron', + 'zcaron', + 'brokenbar', + 'Eth', + 'eth', + 'Yacute', + 'yacute', + 'Thorn', + 'thorn', + 'minus', + 'multiply', + 'onesuperior', + 'twosuperior', + 'threesuperior', + 'onehalf', + 'onequarter', + 'threequarters', + 'franc', + 'Gbreve', + 'gbreve', + 'Idotaccent', + 'Scedilla', + 'scedilla', + 'Cacute', + 'cacute', + 'Ccaron', + 'ccaron', + 'dcroat' +]; +function adjustWidths(properties) { + if (!properties.fontMatrix) { + return; + } + if (properties.fontMatrix[0] === FONT_IDENTITY_MATRIX[0]) { + return; + } + var scale = 0.001 / properties.fontMatrix[0]; + var glyphsWidths = properties.widths; + for (var glyph in glyphsWidths) { + glyphsWidths[glyph] *= scale; + } + properties.defaultWidth *= scale; +} +function adjustToUnicode(properties, builtInEncoding) { + if (properties.hasIncludedToUnicodeMap) { + return; + } + if (properties.hasEncoding) { + return; + } + if (builtInEncoding === properties.defaultEncoding) { + return; + } + if (properties.toUnicode instanceof IdentityToUnicodeMap) { + return; + } + var toUnicode = [], glyphsUnicodeMap = getGlyphsUnicode(); + for (var charCode in builtInEncoding) { + var glyphName = builtInEncoding[charCode]; + var unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap); + if (unicode !== -1) { + toUnicode[charCode] = String.fromCharCode(unicode); + } + } + properties.toUnicode.amend(toUnicode); +} +function getFontType(type, subtype) { + switch (type) { + case 'Type1': + return subtype === 'Type1C' ? FontType.TYPE1C : FontType.TYPE1; + case 'CIDFontType0': + return subtype === 'CIDFontType0C' ? FontType.CIDFONTTYPE0C : FontType.CIDFONTTYPE0; + case 'OpenType': + return FontType.OPENTYPE; + case 'TrueType': + return FontType.TRUETYPE; + case 'CIDFontType2': + return FontType.CIDFONTTYPE2; + case 'MMType1': + return FontType.MMTYPE1; + case 'Type0': + return FontType.TYPE0; + default: + return FontType.UNKNOWN; + } +} +function recoverGlyphName(name, glyphsUnicodeMap) { + if (glyphsUnicodeMap[name] !== undefined) { + return name; + } + var unicode = getUnicodeForGlyph(name, glyphsUnicodeMap); + if (unicode !== -1) { + for (var key in glyphsUnicodeMap) { + if (glyphsUnicodeMap[key] === unicode) { + return key; + } + } + } + info('Unable to recover a standard glyph name for: ' + name); + return name; +} +var Glyph = function GlyphClosure() { + function Glyph(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) { + this.fontChar = fontChar; + this.unicode = unicode; + this.accent = accent; + this.width = width; + this.vmetric = vmetric; + this.operatorListId = operatorListId; + this.isSpace = isSpace; + this.isInFont = isInFont; + } + Glyph.prototype.matchesForCache = function (fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) { + return this.fontChar === fontChar && this.unicode === unicode && this.accent === accent && this.width === width && this.vmetric === vmetric && this.operatorListId === operatorListId && this.isSpace === isSpace && this.isInFont === isInFont; + }; + return Glyph; +}(); +var ToUnicodeMap = function ToUnicodeMapClosure() { + function ToUnicodeMap(cmap) { + this._map = cmap; + } + ToUnicodeMap.prototype = { + get length() { + return this._map.length; + }, + forEach: function (callback) { + for (var charCode in this._map) { + callback(charCode, this._map[charCode].charCodeAt(0)); + } + }, + has: function (i) { + return this._map[i] !== undefined; + }, + get: function (i) { + return this._map[i]; + }, + charCodeOf: function (v) { + return this._map.indexOf(v); + }, + amend: function (map) { + for (var charCode in map) { + this._map[charCode] = map[charCode]; + } + } + }; + return ToUnicodeMap; +}(); +var IdentityToUnicodeMap = function IdentityToUnicodeMapClosure() { + function IdentityToUnicodeMap(firstChar, lastChar) { + this.firstChar = firstChar; + this.lastChar = lastChar; + } + IdentityToUnicodeMap.prototype = { + get length() { + return this.lastChar + 1 - this.firstChar; + }, + forEach: function (callback) { + for (var i = this.firstChar, ii = this.lastChar; i <= ii; i++) { + callback(i, i); + } + }, + has: function (i) { + return this.firstChar <= i && i <= this.lastChar; + }, + get: function (i) { + if (this.firstChar <= i && i <= this.lastChar) { + return String.fromCharCode(i); + } + return undefined; + }, + charCodeOf: function (v) { + return isInt(v) && v >= this.firstChar && v <= this.lastChar ? v : -1; + }, + amend: function (map) { + error('Should not call amend()'); + } + }; + return IdentityToUnicodeMap; +}(); +var OpenTypeFileBuilder = function OpenTypeFileBuilderClosure() { + function writeInt16(dest, offset, num) { + dest[offset] = num >> 8 & 0xFF; + dest[offset + 1] = num & 0xFF; + } + function writeInt32(dest, offset, num) { + dest[offset] = num >> 24 & 0xFF; + dest[offset + 1] = num >> 16 & 0xFF; + dest[offset + 2] = num >> 8 & 0xFF; + dest[offset + 3] = num & 0xFF; + } + function writeData(dest, offset, data) { + var i, ii; + if (data instanceof Uint8Array) { + dest.set(data, offset); + } else if (typeof data === 'string') { + for (i = 0, ii = data.length; i < ii; i++) { + dest[offset++] = data.charCodeAt(i) & 0xFF; + } + } else { + for (i = 0, ii = data.length; i < ii; i++) { + dest[offset++] = data[i] & 0xFF; + } + } + } + function OpenTypeFileBuilder(sfnt) { + this.sfnt = sfnt; + this.tables = Object.create(null); + } + OpenTypeFileBuilder.getSearchParams = function OpenTypeFileBuilder_getSearchParams(entriesCount, entrySize) { + var maxPower2 = 1, log2 = 0; + while ((maxPower2 ^ entriesCount) > maxPower2) { + maxPower2 <<= 1; + log2++; + } + var searchRange = maxPower2 * entrySize; + return { + range: searchRange, + entry: log2, + rangeShift: entrySize * entriesCount - searchRange + }; + }; + var OTF_HEADER_SIZE = 12; + var OTF_TABLE_ENTRY_SIZE = 16; + OpenTypeFileBuilder.prototype = { + toArray: function OpenTypeFileBuilder_toArray() { + var sfnt = this.sfnt; + var tables = this.tables; + var tablesNames = Object.keys(tables); + tablesNames.sort(); + var numTables = tablesNames.length; + var i, j, jj, table, tableName; + var offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE; + var tableOffsets = [offset]; + for (i = 0; i < numTables; i++) { + table = tables[tablesNames[i]]; + var paddedLength = (table.length + 3 & ~3) >>> 0; + offset += paddedLength; + tableOffsets.push(offset); + } + var file = new Uint8Array(offset); + for (i = 0; i < numTables; i++) { + table = tables[tablesNames[i]]; + writeData(file, tableOffsets[i], table); + } + if (sfnt === 'true') { + sfnt = string32(0x00010000); + } + file[0] = sfnt.charCodeAt(0) & 0xFF; + file[1] = sfnt.charCodeAt(1) & 0xFF; + file[2] = sfnt.charCodeAt(2) & 0xFF; + file[3] = sfnt.charCodeAt(3) & 0xFF; + writeInt16(file, 4, numTables); + var searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16); + writeInt16(file, 6, searchParams.range); + writeInt16(file, 8, searchParams.entry); + writeInt16(file, 10, searchParams.rangeShift); + offset = OTF_HEADER_SIZE; + for (i = 0; i < numTables; i++) { + tableName = tablesNames[i]; + file[offset] = tableName.charCodeAt(0) & 0xFF; + file[offset + 1] = tableName.charCodeAt(1) & 0xFF; + file[offset + 2] = tableName.charCodeAt(2) & 0xFF; + file[offset + 3] = tableName.charCodeAt(3) & 0xFF; + var checksum = 0; + for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) { + var quad = readUint32(file, j); + checksum = checksum + quad >>> 0; + } + writeInt32(file, offset + 4, checksum); + writeInt32(file, offset + 8, tableOffsets[i]); + writeInt32(file, offset + 12, tables[tableName].length); + offset += OTF_TABLE_ENTRY_SIZE; + } + return file; + }, + addTable: function OpenTypeFileBuilder_addTable(tag, data) { + if (tag in this.tables) { + throw new Error('Table ' + tag + ' already exists'); + } + this.tables[tag] = data; + } + }; + return OpenTypeFileBuilder; +}(); +var ProblematicCharRanges = new Int32Array([ + 0x0000, + 0x0020, + 0x007F, + 0x00A1, + 0x00AD, + 0x00AE, + 0x0600, + 0x0780, + 0x08A0, + 0x10A0, + 0x1780, + 0x1800, + 0x1C00, + 0x1C50, + 0x2000, + 0x2010, + 0x2011, + 0x2012, + 0x2028, + 0x2030, + 0x205F, + 0x2070, + 0x25CC, + 0x25CD, + 0x3000, + 0x3001, + 0xAA60, + 0xAA80, + 0xFFF0, + 0x10000 +]); +var Font = function FontClosure() { + function Font(name, file, properties) { + var charCode, glyphName, unicode; + this.name = name; + this.loadedName = properties.loadedName; + this.isType3Font = properties.isType3Font; + this.sizes = []; + this.missingFile = false; + this.glyphCache = Object.create(null); + this.isSerifFont = !!(properties.flags & FontFlags.Serif); + this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic); + this.isMonospace = !!(properties.flags & FontFlags.FixedPitch); + var type = properties.type; + var subtype = properties.subtype; + this.type = type; + this.fallbackName = this.isMonospace ? 'monospace' : this.isSerifFont ? 'serif' : 'sans-serif'; + this.differences = properties.differences; + this.widths = properties.widths; + this.defaultWidth = properties.defaultWidth; + this.composite = properties.composite; + this.wideChars = properties.wideChars; + this.cMap = properties.cMap; + this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS; + this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS; + this.fontMatrix = properties.fontMatrix; + this.bbox = properties.bbox; + this.toUnicode = properties.toUnicode; + this.toFontChar = []; + if (properties.type === 'Type3') { + for (charCode = 0; charCode < 256; charCode++) { + this.toFontChar[charCode] = this.differences[charCode] || properties.defaultEncoding[charCode]; + } + this.fontType = FontType.TYPE3; + return; + } + this.cidEncoding = properties.cidEncoding; + this.vertical = properties.vertical; + if (this.vertical) { + this.vmetrics = properties.vmetrics; + this.defaultVMetrics = properties.defaultVMetrics; + } + var glyphsUnicodeMap; + if (!file || file.isEmpty) { + if (file) { + warn('Font file is empty in "' + name + '" (' + this.loadedName + ')'); + } + this.missingFile = true; + var fontName = name.replace(/[,_]/g, '-'); + var stdFontMap = getStdFontMap(), nonStdFontMap = getNonStdFontMap(); + var isStandardFont = !!stdFontMap[fontName] || !!(nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]); + fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName; + this.bold = fontName.search(/bold/gi) !== -1; + this.italic = fontName.search(/oblique/gi) !== -1 || fontName.search(/italic/gi) !== -1; + this.black = name.search(/Black/g) !== -1; + this.remeasure = Object.keys(this.widths).length > 0; + if (isStandardFont && type === 'CIDFontType2' && properties.cidEncoding.indexOf('Identity-') === 0) { + var GlyphMapForStandardFonts = getGlyphMapForStandardFonts(); + var map = []; + for (charCode in GlyphMapForStandardFonts) { + map[+charCode] = GlyphMapForStandardFonts[charCode]; + } + if (/Arial-?Black/i.test(name)) { + var SupplementalGlyphMapForArialBlack = getSupplementalGlyphMapForArialBlack(); + for (charCode in SupplementalGlyphMapForArialBlack) { + map[+charCode] = SupplementalGlyphMapForArialBlack[charCode]; + } + } + var isIdentityUnicode = this.toUnicode instanceof IdentityToUnicodeMap; + if (!isIdentityUnicode) { + this.toUnicode.forEach(function (charCode, unicodeCharCode) { + map[+charCode] = unicodeCharCode; + }); + } + this.toFontChar = map; + this.toUnicode = new ToUnicodeMap(map); + } else if (/Symbol/i.test(fontName)) { + this.toFontChar = buildToFontChar(SymbolSetEncoding, getGlyphsUnicode(), properties.differences); + } else if (/Dingbats/i.test(fontName)) { + if (/Wingdings/i.test(name)) { + warn('Non-embedded Wingdings font, falling back to ZapfDingbats.'); + } + this.toFontChar = buildToFontChar(ZapfDingbatsEncoding, getDingbatsGlyphsUnicode(), properties.differences); + } else if (isStandardFont) { + this.toFontChar = buildToFontChar(properties.defaultEncoding, getGlyphsUnicode(), properties.differences); + } else { + glyphsUnicodeMap = getGlyphsUnicode(); + this.toUnicode.forEach(function (charCode, unicodeCharCode) { + if (!this.composite) { + glyphName = properties.differences[charCode] || properties.defaultEncoding[charCode]; + unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap); + if (unicode !== -1) { + unicodeCharCode = unicode; + } + } + this.toFontChar[charCode] = unicodeCharCode; + }.bind(this)); + } + this.loadedName = fontName.split('-')[0]; + this.loading = false; + this.fontType = getFontType(type, subtype); + return; + } + if (subtype === 'Type1C') { + if (type !== 'Type1' && type !== 'MMType1') { + if (isTrueTypeFile(file)) { + subtype = 'TrueType'; + } else { + type = 'Type1'; + } + } else if (isOpenTypeFile(file)) { + type = subtype = 'OpenType'; + } + } + if (subtype === 'CIDFontType0C' && type !== 'CIDFontType0') { + type = 'CIDFontType0'; + } + if (subtype === 'OpenType') { + type = 'OpenType'; + } + if (type === 'CIDFontType0') { + if (isType1File(file)) { + subtype = 'CIDFontType0'; + } else if (isOpenTypeFile(file)) { + type = subtype = 'OpenType'; + } else { + subtype = 'CIDFontType0C'; + } + } + var data; + switch (type) { + case 'MMType1': + info('MMType1 font (' + name + '), falling back to Type1.'); + case 'Type1': + case 'CIDFontType0': + this.mimetype = 'font/opentype'; + var cff = subtype === 'Type1C' || subtype === 'CIDFontType0C' ? new CFFFont(file, properties) : new Type1Font(name, file, properties); + adjustWidths(properties); + data = this.convert(name, cff, properties); + break; + case 'OpenType': + case 'TrueType': + case 'CIDFontType2': + this.mimetype = 'font/opentype'; + data = this.checkAndRepair(name, file, properties); + if (this.isOpenType) { + adjustWidths(properties); + type = 'OpenType'; + } + break; + default: + error('Font ' + type + ' is not supported'); + break; + } + this.data = data; + this.fontType = getFontType(type, subtype); + this.fontMatrix = properties.fontMatrix; + this.widths = properties.widths; + this.defaultWidth = properties.defaultWidth; + this.toUnicode = properties.toUnicode; + this.encoding = properties.baseEncoding; + this.seacMap = properties.seacMap; + this.loading = true; + } + Font.getFontID = function () { + var ID = 1; + return function Font_getFontID() { + return String(ID++); + }; + }(); + function int16(b0, b1) { + return (b0 << 8) + b1; + } + function signedInt16(b0, b1) { + var value = (b0 << 8) + b1; + return value & 1 << 15 ? value - 0x10000 : value; + } + function int32(b0, b1, b2, b3) { + return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3; + } + function string16(value) { + return String.fromCharCode(value >> 8 & 0xff, value & 0xff); + } + function safeString16(value) { + value = value > 0x7FFF ? 0x7FFF : value < -0x8000 ? -0x8000 : value; + return String.fromCharCode(value >> 8 & 0xff, value & 0xff); + } + function isTrueTypeFile(file) { + var header = file.peekBytes(4); + return readUint32(header, 0) === 0x00010000; + } + function isOpenTypeFile(file) { + var header = file.peekBytes(4); + return bytesToString(header) === 'OTTO'; + } + function isType1File(file) { + var header = file.peekBytes(2); + if (header[0] === 0x25 && header[1] === 0x21) { + return true; + } + if (header[0] === 0x80 && header[1] === 0x01) { + return true; + } + return false; + } + function buildToFontChar(encoding, glyphsUnicodeMap, differences) { + var toFontChar = [], unicode; + for (var i = 0, ii = encoding.length; i < ii; i++) { + unicode = getUnicodeForGlyph(encoding[i], glyphsUnicodeMap); + if (unicode !== -1) { + toFontChar[i] = unicode; + } + } + for (var charCode in differences) { + unicode = getUnicodeForGlyph(differences[charCode], glyphsUnicodeMap); + if (unicode !== -1) { + toFontChar[+charCode] = unicode; + } + } + return toFontChar; + } + function isProblematicUnicodeLocation(code) { + var i = 0, j = ProblematicCharRanges.length - 1; + while (i < j) { + var c = i + j + 1 >> 1; + if (code < ProblematicCharRanges[c]) { + j = c - 1; + } else { + i = c; + } + } + return !(i & 1); + } + function adjustMapping(charCodeToGlyphId, properties) { + var toUnicode = properties.toUnicode; + var isSymbolic = !!(properties.flags & FontFlags.Symbolic); + var isIdentityUnicode = properties.toUnicode instanceof IdentityToUnicodeMap; + var newMap = Object.create(null); + var toFontChar = []; + var usedFontCharCodes = []; + var nextAvailableFontCharCode = PRIVATE_USE_OFFSET_START; + for (var originalCharCode in charCodeToGlyphId) { + originalCharCode |= 0; + var glyphId = charCodeToGlyphId[originalCharCode]; + var fontCharCode = originalCharCode; + var hasUnicodeValue = false; + if (!isIdentityUnicode && toUnicode.has(originalCharCode)) { + hasUnicodeValue = true; + var unicode = toUnicode.get(fontCharCode); + if (unicode.length === 1) { + fontCharCode = unicode.charCodeAt(0); + } + } + if ((usedFontCharCodes[fontCharCode] !== undefined || isProblematicUnicodeLocation(fontCharCode) || isSymbolic && !hasUnicodeValue) && nextAvailableFontCharCode <= PRIVATE_USE_OFFSET_END) { + do { + fontCharCode = nextAvailableFontCharCode++; + if (SKIP_PRIVATE_USE_RANGE_F000_TO_F01F && fontCharCode === 0xF000) { + fontCharCode = 0xF020; + nextAvailableFontCharCode = fontCharCode + 1; + } + } while (usedFontCharCodes[fontCharCode] !== undefined && nextAvailableFontCharCode <= PRIVATE_USE_OFFSET_END); + } + newMap[fontCharCode] = glyphId; + toFontChar[originalCharCode] = fontCharCode; + usedFontCharCodes[fontCharCode] = true; + } + return { + toFontChar: toFontChar, + charCodeToGlyphId: newMap, + nextAvailableFontCharCode: nextAvailableFontCharCode + }; + } + function getRanges(glyphs, numGlyphs) { + var codes = []; + for (var charCode in glyphs) { + if (glyphs[charCode] >= numGlyphs) { + continue; + } + codes.push({ + fontCharCode: charCode | 0, + glyphId: glyphs[charCode] + }); + } + codes.sort(function fontGetRangesSort(a, b) { + return a.fontCharCode - b.fontCharCode; + }); + var ranges = []; + var length = codes.length; + for (var n = 0; n < length;) { + var start = codes[n].fontCharCode; + var codeIndices = [codes[n].glyphId]; + ++n; + var end = start; + while (n < length && end + 1 === codes[n].fontCharCode) { + codeIndices.push(codes[n].glyphId); + ++end; + ++n; + if (end === 0xFFFF) { + break; + } + } + ranges.push([ + start, + end, + codeIndices + ]); + } + return ranges; + } + function createCmapTable(glyphs, numGlyphs) { + var ranges = getRanges(glyphs, numGlyphs); + var numTables = ranges[ranges.length - 1][1] > 0xFFFF ? 2 : 1; + var cmap = '\x00\x00' + string16(numTables) + '\x00\x03' + '\x00\x01' + string32(4 + numTables * 8); + var i, ii, j, jj; + for (i = ranges.length - 1; i >= 0; --i) { + if (ranges[i][0] <= 0xFFFF) { + break; + } + } + var bmpLength = i + 1; + if (ranges[i][0] < 0xFFFF && ranges[i][1] === 0xFFFF) { + ranges[i][1] = 0xFFFE; + } + var trailingRangesCount = ranges[i][1] < 0xFFFF ? 1 : 0; + var segCount = bmpLength + trailingRangesCount; + var searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2); + var startCount = ''; + var endCount = ''; + var idDeltas = ''; + var idRangeOffsets = ''; + var glyphsIds = ''; + var bias = 0; + var range, start, end, codes; + for (i = 0, ii = bmpLength; i < ii; i++) { + range = ranges[i]; + start = range[0]; + end = range[1]; + startCount += string16(start); + endCount += string16(end); + codes = range[2]; + var contiguous = true; + for (j = 1, jj = codes.length; j < jj; ++j) { + if (codes[j] !== codes[j - 1] + 1) { + contiguous = false; + break; + } + } + if (!contiguous) { + var offset = (segCount - i) * 2 + bias * 2; + bias += end - start + 1; + idDeltas += string16(0); + idRangeOffsets += string16(offset); + for (j = 0, jj = codes.length; j < jj; ++j) { + glyphsIds += string16(codes[j]); + } + } else { + var startCode = codes[0]; + idDeltas += string16(startCode - start & 0xFFFF); + idRangeOffsets += string16(0); + } + } + if (trailingRangesCount > 0) { + endCount += '\xFF\xFF'; + startCount += '\xFF\xFF'; + idDeltas += '\x00\x01'; + idRangeOffsets += '\x00\x00'; + } + var format314 = '\x00\x00' + string16(2 * segCount) + string16(searchParams.range) + string16(searchParams.entry) + string16(searchParams.rangeShift) + endCount + '\x00\x00' + startCount + idDeltas + idRangeOffsets + glyphsIds; + var format31012 = ''; + var header31012 = ''; + if (numTables > 1) { + cmap += '\x00\x03' + '\x00\x0A' + string32(4 + numTables * 8 + 4 + format314.length); + format31012 = ''; + for (i = 0, ii = ranges.length; i < ii; i++) { + range = ranges[i]; + start = range[0]; + codes = range[2]; + var code = codes[0]; + for (j = 1, jj = codes.length; j < jj; ++j) { + if (codes[j] !== codes[j - 1] + 1) { + end = range[0] + j - 1; + format31012 += string32(start) + string32(end) + string32(code); + start = end + 1; + code = codes[j]; + } + } + format31012 += string32(start) + string32(range[1]) + string32(code); + } + header31012 = '\x00\x0C' + '\x00\x00' + string32(format31012.length + 16) + '\x00\x00\x00\x00' + string32(format31012.length / 12); + } + return cmap + '\x00\x04' + string16(format314.length + 4) + format314 + header31012 + format31012; + } + function validateOS2Table(os2) { + var stream = new Stream(os2.data); + var version = stream.getUint16(); + stream.getBytes(60); + var selection = stream.getUint16(); + if (version < 4 && selection & 0x0300) { + return false; + } + var firstChar = stream.getUint16(); + var lastChar = stream.getUint16(); + if (firstChar > lastChar) { + return false; + } + stream.getBytes(6); + var usWinAscent = stream.getUint16(); + if (usWinAscent === 0) { + return false; + } + os2.data[8] = os2.data[9] = 0; + return true; + } + function createOS2Table(properties, charstrings, override) { + override = override || { + unitsPerEm: 0, + yMax: 0, + yMin: 0, + ascent: 0, + descent: 0 + }; + var ulUnicodeRange1 = 0; + var ulUnicodeRange2 = 0; + var ulUnicodeRange3 = 0; + var ulUnicodeRange4 = 0; + var firstCharIndex = null; + var lastCharIndex = 0; + if (charstrings) { + for (var code in charstrings) { + code |= 0; + if (firstCharIndex > code || !firstCharIndex) { + firstCharIndex = code; + } + if (lastCharIndex < code) { + lastCharIndex = code; + } + var position = getUnicodeRangeFor(code); + if (position < 32) { + ulUnicodeRange1 |= 1 << position; + } else if (position < 64) { + ulUnicodeRange2 |= 1 << position - 32; + } else if (position < 96) { + ulUnicodeRange3 |= 1 << position - 64; + } else if (position < 123) { + ulUnicodeRange4 |= 1 << position - 96; + } else { + error('Unicode ranges Bits > 123 are reserved for internal usage'); + } + } + } else { + firstCharIndex = 0; + lastCharIndex = 255; + } + var bbox = properties.bbox || [ + 0, + 0, + 0, + 0 + ]; + var unitsPerEm = override.unitsPerEm || 1 / (properties.fontMatrix || FONT_IDENTITY_MATRIX)[0]; + var scale = properties.ascentScaled ? 1.0 : unitsPerEm / PDF_GLYPH_SPACE_UNITS; + var typoAscent = override.ascent || Math.round(scale * (properties.ascent || bbox[3])); + var typoDescent = override.descent || Math.round(scale * (properties.descent || bbox[1])); + if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) { + typoDescent = -typoDescent; + } + var winAscent = override.yMax || typoAscent; + var winDescent = -override.yMin || -typoDescent; + return '\x00\x03' + '\x02\x24' + '\x01\xF4' + '\x00\x05' + '\x00\x00' + '\x02\x8A' + '\x02\xBB' + '\x00\x00' + '\x00\x8C' + '\x02\x8A' + '\x02\xBB' + '\x00\x00' + '\x01\xDF' + '\x00\x31' + '\x01\x02' + '\x00\x00' + '\x00\x00\x06' + String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) + '\x00\x00\x00\x00\x00\x00' + string32(ulUnicodeRange1) + string32(ulUnicodeRange2) + string32(ulUnicodeRange3) + string32(ulUnicodeRange4) + '\x2A\x32\x31\x2A' + string16(properties.italicAngle ? 1 : 0) + string16(firstCharIndex || properties.firstChar) + string16(lastCharIndex || properties.lastChar) + string16(typoAscent) + string16(typoDescent) + '\x00\x64' + string16(winAscent) + string16(winDescent) + '\x00\x00\x00\x00' + '\x00\x00\x00\x00' + string16(properties.xHeight) + string16(properties.capHeight) + string16(0) + string16(firstCharIndex || properties.firstChar) + '\x00\x03'; + } + function createPostTable(properties) { + var angle = Math.floor(properties.italicAngle * Math.pow(2, 16)); + return '\x00\x03\x00\x00' + string32(angle) + '\x00\x00' + '\x00\x00' + string32(properties.fixedPitch) + '\x00\x00\x00\x00' + '\x00\x00\x00\x00' + '\x00\x00\x00\x00' + '\x00\x00\x00\x00'; + } + function createNameTable(name, proto) { + if (!proto) { + proto = [ + [], + [] + ]; + } + var strings = [ + proto[0][0] || 'Original licence', + proto[0][1] || name, + proto[0][2] || 'Unknown', + proto[0][3] || 'uniqueID', + proto[0][4] || name, + proto[0][5] || 'Version 0.11', + proto[0][6] || '', + proto[0][7] || 'Unknown', + proto[0][8] || 'Unknown', + proto[0][9] || 'Unknown' + ]; + var stringsUnicode = []; + var i, ii, j, jj, str; + for (i = 0, ii = strings.length; i < ii; i++) { + str = proto[1][i] || strings[i]; + var strBufUnicode = []; + for (j = 0, jj = str.length; j < jj; j++) { + strBufUnicode.push(string16(str.charCodeAt(j))); + } + stringsUnicode.push(strBufUnicode.join('')); + } + var names = [ + strings, + stringsUnicode + ]; + var platforms = [ + '\x00\x01', + '\x00\x03' + ]; + var encodings = [ + '\x00\x00', + '\x00\x01' + ]; + var languages = [ + '\x00\x00', + '\x04\x09' + ]; + var namesRecordCount = strings.length * platforms.length; + var nameTable = '\x00\x00' + string16(namesRecordCount) + string16(namesRecordCount * 12 + 6); + var strOffset = 0; + for (i = 0, ii = platforms.length; i < ii; i++) { + var strs = names[i]; + for (j = 0, jj = strs.length; j < jj; j++) { + str = strs[j]; + var nameRecord = platforms[i] + encodings[i] + languages[i] + string16(j) + string16(str.length) + string16(strOffset); + nameTable += nameRecord; + strOffset += str.length; + } + } + nameTable += strings.join('') + stringsUnicode.join(''); + return nameTable; + } + Font.prototype = { + name: null, + font: null, + mimetype: null, + encoding: null, + get renderer() { + var renderer = FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED); + return shadow(this, 'renderer', renderer); + }, + exportData: function Font_exportData() { + var data = {}; + for (var i in this) { + if (this.hasOwnProperty(i)) { + data[i] = this[i]; + } + } + return data; + }, + checkAndRepair: function Font_checkAndRepair(name, font, properties) { + function readTableEntry(file) { + var tag = bytesToString(file.getBytes(4)); + var checksum = file.getInt32() >>> 0; + var offset = file.getInt32() >>> 0; + var length = file.getInt32() >>> 0; + var previousPosition = file.pos; + file.pos = file.start ? file.start : 0; + file.skip(offset); + var data = file.getBytes(length); + file.pos = previousPosition; + if (tag === 'head') { + data[8] = data[9] = data[10] = data[11] = 0; + data[17] |= 0x20; + } + return { + tag: tag, + checksum: checksum, + length: length, + offset: offset, + data: data + }; + } + function readOpenTypeHeader(ttf) { + return { + version: bytesToString(ttf.getBytes(4)), + numTables: ttf.getUint16(), + searchRange: ttf.getUint16(), + entrySelector: ttf.getUint16(), + rangeShift: ttf.getUint16() + }; + } + function readCmapTable(cmap, font, isSymbolicFont, hasEncoding) { + if (!cmap) { + warn('No cmap table available.'); + return { + platformId: -1, + encodingId: -1, + mappings: [], + hasShortCmap: false + }; + } + var segment; + var start = (font.start ? font.start : 0) + cmap.offset; + font.pos = start; + font.getUint16(); + var numTables = font.getUint16(); + var potentialTable; + var canBreak = false; + for (var i = 0; i < numTables; i++) { + var platformId = font.getUint16(); + var encodingId = font.getUint16(); + var offset = font.getInt32() >>> 0; + var useTable = false; + if (platformId === 0 && encodingId === 0) { + useTable = true; + } else if (platformId === 1 && encodingId === 0) { + useTable = true; + } else if (platformId === 3 && encodingId === 1 && (hasEncoding || !potentialTable)) { + useTable = true; + if (!isSymbolicFont) { + canBreak = true; + } + } else if (isSymbolicFont && platformId === 3 && encodingId === 0) { + useTable = true; + canBreak = true; + } + if (useTable) { + potentialTable = { + platformId: platformId, + encodingId: encodingId, + offset: offset + }; + } + if (canBreak) { + break; + } + } + if (potentialTable) { + font.pos = start + potentialTable.offset; + } + if (!potentialTable || font.peekByte() === -1) { + warn('Could not find a preferred cmap table.'); + return { + platformId: -1, + encodingId: -1, + mappings: [], + hasShortCmap: false + }; + } + var format = font.getUint16(); + font.getUint16(); + font.getUint16(); + var hasShortCmap = false; + var mappings = []; + var j, glyphId; + if (format === 0) { + for (j = 0; j < 256; j++) { + var index = font.getByte(); + if (!index) { + continue; + } + mappings.push({ + charCode: j, + glyphId: index + }); + } + hasShortCmap = true; + } else if (format === 4) { + var segCount = font.getUint16() >> 1; + font.getBytes(6); + var segIndex, segments = []; + for (segIndex = 0; segIndex < segCount; segIndex++) { + segments.push({ end: font.getUint16() }); + } + font.getUint16(); + for (segIndex = 0; segIndex < segCount; segIndex++) { + segments[segIndex].start = font.getUint16(); + } + for (segIndex = 0; segIndex < segCount; segIndex++) { + segments[segIndex].delta = font.getUint16(); + } + var offsetsCount = 0; + for (segIndex = 0; segIndex < segCount; segIndex++) { + segment = segments[segIndex]; + var rangeOffset = font.getUint16(); + if (!rangeOffset) { + segment.offsetIndex = -1; + continue; + } + var offsetIndex = (rangeOffset >> 1) - (segCount - segIndex); + segment.offsetIndex = offsetIndex; + offsetsCount = Math.max(offsetsCount, offsetIndex + segment.end - segment.start + 1); + } + var offsets = []; + for (j = 0; j < offsetsCount; j++) { + offsets.push(font.getUint16()); + } + for (segIndex = 0; segIndex < segCount; segIndex++) { + segment = segments[segIndex]; + start = segment.start; + var end = segment.end; + var delta = segment.delta; + offsetIndex = segment.offsetIndex; + for (j = start; j <= end; j++) { + if (j === 0xFFFF) { + continue; + } + glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start]; + glyphId = glyphId + delta & 0xFFFF; + if (glyphId === 0) { + continue; + } + mappings.push({ + charCode: j, + glyphId: glyphId + }); + } + } + } else if (format === 6) { + var firstCode = font.getUint16(); + var entryCount = font.getUint16(); + for (j = 0; j < entryCount; j++) { + glyphId = font.getUint16(); + var charCode = firstCode + j; + mappings.push({ + charCode: charCode, + glyphId: glyphId + }); + } + } else { + warn('cmap table has unsupported format: ' + format); + return { + platformId: -1, + encodingId: -1, + mappings: [], + hasShortCmap: false + }; + } + mappings.sort(function (a, b) { + return a.charCode - b.charCode; + }); + for (i = 1; i < mappings.length; i++) { + if (mappings[i - 1].charCode === mappings[i].charCode) { + mappings.splice(i, 1); + i--; + } + } + return { + platformId: potentialTable.platformId, + encodingId: potentialTable.encodingId, + mappings: mappings, + hasShortCmap: hasShortCmap + }; + } + function sanitizeMetrics(font, header, metrics, numGlyphs) { + if (!header) { + if (metrics) { + metrics.data = null; + } + return; + } + font.pos = (font.start ? font.start : 0) + header.offset; + font.pos += header.length - 2; + var numOfMetrics = font.getUint16(); + if (numOfMetrics > numGlyphs) { + info('The numOfMetrics (' + numOfMetrics + ') should not be ' + 'greater than the numGlyphs (' + numGlyphs + ')'); + numOfMetrics = numGlyphs; + header.data[34] = (numOfMetrics & 0xff00) >> 8; + header.data[35] = numOfMetrics & 0x00ff; + } + var numOfSidebearings = numGlyphs - numOfMetrics; + var numMissing = numOfSidebearings - (metrics.length - numOfMetrics * 4 >> 1); + if (numMissing > 0) { + var entries = new Uint8Array(metrics.length + numMissing * 2); + entries.set(metrics.data); + metrics.data = entries; + } + } + function sanitizeGlyph(source, sourceStart, sourceEnd, dest, destStart, hintsValid) { + if (sourceEnd - sourceStart <= 12) { + return 0; + } + var glyf = source.subarray(sourceStart, sourceEnd); + var contoursCount = glyf[0] << 8 | glyf[1]; + if (contoursCount & 0x8000) { + dest.set(glyf, destStart); + return glyf.length; + } + var i, j = 10, flagsCount = 0; + for (i = 0; i < contoursCount; i++) { + var endPoint = glyf[j] << 8 | glyf[j + 1]; + flagsCount = endPoint + 1; + j += 2; + } + var instructionsStart = j; + var instructionsLength = glyf[j] << 8 | glyf[j + 1]; + j += 2 + instructionsLength; + var instructionsEnd = j; + var coordinatesLength = 0; + for (i = 0; i < flagsCount; i++) { + var flag = glyf[j++]; + if (flag & 0xC0) { + glyf[j - 1] = flag & 0x3F; + } + var xyLength = (flag & 2 ? 1 : flag & 16 ? 0 : 2) + (flag & 4 ? 1 : flag & 32 ? 0 : 2); + coordinatesLength += xyLength; + if (flag & 8) { + var repeat = glyf[j++]; + i += repeat; + coordinatesLength += repeat * xyLength; + } + } + if (coordinatesLength === 0) { + return 0; + } + var glyphDataLength = j + coordinatesLength; + if (glyphDataLength > glyf.length) { + return 0; + } + if (!hintsValid && instructionsLength > 0) { + dest.set(glyf.subarray(0, instructionsStart), destStart); + dest.set([ + 0, + 0 + ], destStart + instructionsStart); + dest.set(glyf.subarray(instructionsEnd, glyphDataLength), destStart + instructionsStart + 2); + glyphDataLength -= instructionsLength; + if (glyf.length - glyphDataLength > 3) { + glyphDataLength = glyphDataLength + 3 & ~3; + } + return glyphDataLength; + } + if (glyf.length - glyphDataLength > 3) { + glyphDataLength = glyphDataLength + 3 & ~3; + dest.set(glyf.subarray(0, glyphDataLength), destStart); + return glyphDataLength; + } + dest.set(glyf, destStart); + return glyf.length; + } + function sanitizeHead(head, numGlyphs, locaLength) { + var data = head.data; + var version = int32(data[0], data[1], data[2], data[3]); + if (version >> 16 !== 1) { + info('Attempting to fix invalid version in head table: ' + version); + data[0] = 0; + data[1] = 1; + data[2] = 0; + data[3] = 0; + } + var indexToLocFormat = int16(data[50], data[51]); + if (indexToLocFormat < 0 || indexToLocFormat > 1) { + info('Attempting to fix invalid indexToLocFormat in head table: ' + indexToLocFormat); + var numGlyphsPlusOne = numGlyphs + 1; + if (locaLength === numGlyphsPlusOne << 1) { + data[50] = 0; + data[51] = 0; + } else if (locaLength === numGlyphsPlusOne << 2) { + data[50] = 0; + data[51] = 1; + } else { + warn('Could not fix indexToLocFormat: ' + indexToLocFormat); + } + } + } + function sanitizeGlyphLocations(loca, glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry) { + var itemSize, itemDecode, itemEncode; + if (isGlyphLocationsLong) { + itemSize = 4; + itemDecode = function fontItemDecodeLong(data, offset) { + return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]; + }; + itemEncode = function fontItemEncodeLong(data, offset, value) { + data[offset] = value >>> 24 & 0xFF; + data[offset + 1] = value >> 16 & 0xFF; + data[offset + 2] = value >> 8 & 0xFF; + data[offset + 3] = value & 0xFF; + }; + } else { + itemSize = 2; + itemDecode = function fontItemDecode(data, offset) { + return data[offset] << 9 | data[offset + 1] << 1; + }; + itemEncode = function fontItemEncode(data, offset, value) { + data[offset] = value >> 9 & 0xFF; + data[offset + 1] = value >> 1 & 0xFF; + }; + } + var locaData = loca.data; + var locaDataSize = itemSize * (1 + numGlyphs); + if (locaData.length !== locaDataSize) { + locaData = new Uint8Array(locaDataSize); + locaData.set(loca.data.subarray(0, locaDataSize)); + loca.data = locaData; + } + var oldGlyfData = glyf.data; + var oldGlyfDataLength = oldGlyfData.length; + var newGlyfData = new Uint8Array(oldGlyfDataLength); + var startOffset = itemDecode(locaData, 0); + var writeOffset = 0; + var missingGlyphData = Object.create(null); + itemEncode(locaData, 0, writeOffset); + var i, j; + for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) { + var endOffset = itemDecode(locaData, j); + if (endOffset > oldGlyfDataLength && (oldGlyfDataLength + 3 & ~3) === endOffset) { + endOffset = oldGlyfDataLength; + } + if (endOffset > oldGlyfDataLength) { + itemEncode(locaData, j, writeOffset); + startOffset = endOffset; + continue; + } + if (startOffset === endOffset) { + missingGlyphData[i] = true; + } + var newLength = sanitizeGlyph(oldGlyfData, startOffset, endOffset, newGlyfData, writeOffset, hintsValid); + writeOffset += newLength; + itemEncode(locaData, j, writeOffset); + startOffset = endOffset; + } + if (writeOffset === 0) { + var simpleGlyph = new Uint8Array([ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 49, + 0 + ]); + for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) { + itemEncode(locaData, j, simpleGlyph.length); + } + glyf.data = simpleGlyph; + return missingGlyphData; + } + if (dupFirstEntry) { + var firstEntryLength = itemDecode(locaData, itemSize); + if (newGlyfData.length > firstEntryLength + writeOffset) { + glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset); + } else { + glyf.data = new Uint8Array(firstEntryLength + writeOffset); + glyf.data.set(newGlyfData.subarray(0, writeOffset)); + } + glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset); + itemEncode(loca.data, locaData.length - itemSize, writeOffset + firstEntryLength); + } else { + glyf.data = newGlyfData.subarray(0, writeOffset); + } + return missingGlyphData; + } + function readPostScriptTable(post, properties, maxpNumGlyphs) { + var start = (font.start ? font.start : 0) + post.offset; + font.pos = start; + var length = post.length, end = start + length; + var version = font.getInt32(); + font.getBytes(28); + var glyphNames; + var valid = true; + var i; + switch (version) { + case 0x00010000: + glyphNames = MacStandardGlyphOrdering; + break; + case 0x00020000: + var numGlyphs = font.getUint16(); + if (numGlyphs !== maxpNumGlyphs) { + valid = false; + break; + } + var glyphNameIndexes = []; + for (i = 0; i < numGlyphs; ++i) { + var index = font.getUint16(); + if (index >= 32768) { + valid = false; + break; + } + glyphNameIndexes.push(index); + } + if (!valid) { + break; + } + var customNames = []; + var strBuf = []; + while (font.pos < end) { + var stringLength = font.getByte(); + strBuf.length = stringLength; + for (i = 0; i < stringLength; ++i) { + strBuf[i] = String.fromCharCode(font.getByte()); + } + customNames.push(strBuf.join('')); + } + glyphNames = []; + for (i = 0; i < numGlyphs; ++i) { + var j = glyphNameIndexes[i]; + if (j < 258) { + glyphNames.push(MacStandardGlyphOrdering[j]); + continue; + } + glyphNames.push(customNames[j - 258]); + } + break; + case 0x00030000: + break; + default: + warn('Unknown/unsupported post table version ' + version); + valid = false; + if (properties.defaultEncoding) { + glyphNames = properties.defaultEncoding; + } + break; + } + properties.glyphNames = glyphNames; + return valid; + } + function readNameTable(nameTable) { + var start = (font.start ? font.start : 0) + nameTable.offset; + font.pos = start; + var names = [ + [], + [] + ]; + var length = nameTable.length, end = start + length; + var format = font.getUint16(); + var FORMAT_0_HEADER_LENGTH = 6; + if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) { + return names; + } + var numRecords = font.getUint16(); + var stringsStart = font.getUint16(); + var records = []; + var NAME_RECORD_LENGTH = 12; + var i, ii; + for (i = 0; i < numRecords && font.pos + NAME_RECORD_LENGTH <= end; i++) { + var r = { + platform: font.getUint16(), + encoding: font.getUint16(), + language: font.getUint16(), + name: font.getUint16(), + length: font.getUint16(), + offset: font.getUint16() + }; + if (r.platform === 1 && r.encoding === 0 && r.language === 0 || r.platform === 3 && r.encoding === 1 && r.language === 0x409) { + records.push(r); + } + } + for (i = 0, ii = records.length; i < ii; i++) { + var record = records[i]; + if (record.length <= 0) { + continue; + } + var pos = start + stringsStart + record.offset; + if (pos + record.length > end) { + continue; + } + font.pos = pos; + var nameIndex = record.name; + if (record.encoding) { + var str = ''; + for (var j = 0, jj = record.length; j < jj; j += 2) { + str += String.fromCharCode(font.getUint16()); + } + names[1][nameIndex] = str; + } else { + names[0][nameIndex] = bytesToString(font.getBytes(record.length)); + } + } + return names; + } + var TTOpsStackDeltas = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2, + -2, + -2, + -2, + 0, + 0, + -2, + -5, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 0, + 0, + -1, + 0, + -1, + -1, + -1, + -1, + 1, + -1, + -999, + 0, + 1, + 0, + -1, + -2, + 0, + -1, + -2, + -1, + -1, + 0, + -1, + -1, + 0, + 0, + -999, + -999, + -1, + -1, + -1, + -1, + -2, + -999, + -2, + -2, + -999, + 0, + -2, + -2, + 0, + 0, + -2, + 0, + -2, + 0, + 0, + 0, + -2, + -1, + -1, + 1, + 1, + 0, + 0, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 0, + 0, + -1, + 0, + -1, + -1, + 0, + -999, + -1, + -1, + -1, + -1, + -1, + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2, + -999, + -999, + -999, + -999, + -999, + -1, + -1, + -2, + -2, + 0, + 0, + 0, + 0, + -1, + -1, + -999, + -2, + -2, + 0, + 0, + -1, + -2, + -2, + 0, + 0, + 0, + -1, + -1, + -1, + -2 + ]; + function sanitizeTTProgram(table, ttContext) { + var data = table.data; + var i = 0, j, n, b, funcId, pc, lastEndf = 0, lastDeff = 0; + var stack = []; + var callstack = []; + var functionsCalled = []; + var tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions; + var inFDEF = false, ifLevel = 0, inELSE = 0; + for (var ii = data.length; i < ii;) { + var op = data[i++]; + if (op === 0x40) { + n = data[i++]; + if (inFDEF || inELSE) { + i += n; + } else { + for (j = 0; j < n; j++) { + stack.push(data[i++]); + } + } + } else if (op === 0x41) { + n = data[i++]; + if (inFDEF || inELSE) { + i += n * 2; + } else { + for (j = 0; j < n; j++) { + b = data[i++]; + stack.push(b << 8 | data[i++]); + } + } + } else if ((op & 0xF8) === 0xB0) { + n = op - 0xB0 + 1; + if (inFDEF || inELSE) { + i += n; + } else { + for (j = 0; j < n; j++) { + stack.push(data[i++]); + } + } + } else if ((op & 0xF8) === 0xB8) { + n = op - 0xB8 + 1; + if (inFDEF || inELSE) { + i += n * 2; + } else { + for (j = 0; j < n; j++) { + b = data[i++]; + stack.push(b << 8 | data[i++]); + } + } + } else if (op === 0x2B && !tooComplexToFollowFunctions) { + if (!inFDEF && !inELSE) { + funcId = stack[stack.length - 1]; + ttContext.functionsUsed[funcId] = true; + if (funcId in ttContext.functionsStackDeltas) { + stack.length += ttContext.functionsStackDeltas[funcId]; + } else if (funcId in ttContext.functionsDefined && functionsCalled.indexOf(funcId) < 0) { + callstack.push({ + data: data, + i: i, + stackTop: stack.length - 1 + }); + functionsCalled.push(funcId); + pc = ttContext.functionsDefined[funcId]; + if (!pc) { + warn('TT: CALL non-existent function'); + ttContext.hintsValid = false; + return; + } + data = pc.data; + i = pc.i; + } + } + } else if (op === 0x2C && !tooComplexToFollowFunctions) { + if (inFDEF || inELSE) { + warn('TT: nested FDEFs not allowed'); + tooComplexToFollowFunctions = true; + } + inFDEF = true; + lastDeff = i; + funcId = stack.pop(); + ttContext.functionsDefined[funcId] = { + data: data, + i: i + }; + } else if (op === 0x2D) { + if (inFDEF) { + inFDEF = false; + lastEndf = i; + } else { + pc = callstack.pop(); + if (!pc) { + warn('TT: ENDF bad stack'); + ttContext.hintsValid = false; + return; + } + funcId = functionsCalled.pop(); + data = pc.data; + i = pc.i; + ttContext.functionsStackDeltas[funcId] = stack.length - pc.stackTop; + } + } else if (op === 0x89) { + if (inFDEF || inELSE) { + warn('TT: nested IDEFs not allowed'); + tooComplexToFollowFunctions = true; + } + inFDEF = true; + lastDeff = i; + } else if (op === 0x58) { + ++ifLevel; + } else if (op === 0x1B) { + inELSE = ifLevel; + } else if (op === 0x59) { + if (inELSE === ifLevel) { + inELSE = 0; + } + --ifLevel; + } else if (op === 0x1C) { + if (!inFDEF && !inELSE) { + var offset = stack[stack.length - 1]; + if (offset > 0) { + i += offset - 1; + } + } + } + if (!inFDEF && !inELSE) { + var stackDelta = op <= 0x8E ? TTOpsStackDeltas[op] : op >= 0xC0 && op <= 0xDF ? -1 : op >= 0xE0 ? -2 : 0; + if (op >= 0x71 && op <= 0x75) { + n = stack.pop(); + if (!isNaN(n)) { + stackDelta = -n * 2; + } + } + while (stackDelta < 0 && stack.length > 0) { + stack.pop(); + stackDelta++; + } + while (stackDelta > 0) { + stack.push(NaN); + stackDelta--; + } + } + } + ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions; + var content = [data]; + if (i > data.length) { + content.push(new Uint8Array(i - data.length)); + } + if (lastDeff > lastEndf) { + warn('TT: complementing a missing function tail'); + content.push(new Uint8Array([ + 0x22, + 0x2D + ])); + } + foldTTTable(table, content); + } + function checkInvalidFunctions(ttContext, maxFunctionDefs) { + if (ttContext.tooComplexToFollowFunctions) { + return; + } + if (ttContext.functionsDefined.length > maxFunctionDefs) { + warn('TT: more functions defined than expected'); + ttContext.hintsValid = false; + return; + } + for (var j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) { + if (j > maxFunctionDefs) { + warn('TT: invalid function id: ' + j); + ttContext.hintsValid = false; + return; + } + if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) { + warn('TT: undefined function: ' + j); + ttContext.hintsValid = false; + return; + } + } + } + function foldTTTable(table, content) { + if (content.length > 1) { + var newLength = 0; + var j, jj; + for (j = 0, jj = content.length; j < jj; j++) { + newLength += content[j].length; + } + newLength = newLength + 3 & ~3; + var result = new Uint8Array(newLength); + var pos = 0; + for (j = 0, jj = content.length; j < jj; j++) { + result.set(content[j], pos); + pos += content[j].length; + } + table.data = result; + table.length = newLength; + } + } + function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) { + var ttContext = { + functionsDefined: [], + functionsUsed: [], + functionsStackDeltas: [], + tooComplexToFollowFunctions: false, + hintsValid: true + }; + if (fpgm) { + sanitizeTTProgram(fpgm, ttContext); + } + if (prep) { + sanitizeTTProgram(prep, ttContext); + } + if (fpgm) { + checkInvalidFunctions(ttContext, maxFunctionDefs); + } + if (cvt && cvt.length & 1) { + var cvtData = new Uint8Array(cvt.length + 1); + cvtData.set(cvt.data); + cvt.data = cvtData; + } + return ttContext.hintsValid; + } + font = new Stream(new Uint8Array(font.getBytes())); + var VALID_TABLES = [ + 'OS/2', + 'cmap', + 'head', + 'hhea', + 'hmtx', + 'maxp', + 'name', + 'post', + 'loca', + 'glyf', + 'fpgm', + 'prep', + 'cvt ', + 'CFF ' + ]; + var header = readOpenTypeHeader(font); + var numTables = header.numTables; + var cff, cffFile; + var tables = Object.create(null); + tables['OS/2'] = null; + tables['cmap'] = null; + tables['head'] = null; + tables['hhea'] = null; + tables['hmtx'] = null; + tables['maxp'] = null; + tables['name'] = null; + tables['post'] = null; + var table; + for (var i = 0; i < numTables; i++) { + table = readTableEntry(font); + if (VALID_TABLES.indexOf(table.tag) < 0) { + continue; + } + if (table.length === 0) { + continue; + } + tables[table.tag] = table; + } + var isTrueType = !tables['CFF ']; + if (!isTrueType) { + if (header.version === 'OTTO' && !properties.composite || !tables['head'] || !tables['hhea'] || !tables['maxp'] || !tables['post']) { + cffFile = new Stream(tables['CFF '].data); + cff = new CFFFont(cffFile, properties); + adjustWidths(properties); + return this.convert(name, cff, properties); + } + delete tables['glyf']; + delete tables['loca']; + delete tables['fpgm']; + delete tables['prep']; + delete tables['cvt ']; + this.isOpenType = true; + } else { + if (!tables['loca']) { + error('Required "loca" table is not found'); + } + if (!tables['glyf']) { + warn('Required "glyf" table is not found -- trying to recover.'); + tables['glyf'] = { + tag: 'glyf', + data: new Uint8Array(0) + }; + } + this.isOpenType = false; + } + if (!tables['maxp']) { + error('Required "maxp" table is not found'); + } + font.pos = (font.start || 0) + tables['maxp'].offset; + var version = font.getInt32(); + var numGlyphs = font.getUint16(); + var maxFunctionDefs = 0; + if (version >= 0x00010000 && tables['maxp'].length >= 22) { + font.pos += 8; + var maxZones = font.getUint16(); + if (maxZones > 2) { + tables['maxp'].data[14] = 0; + tables['maxp'].data[15] = 2; + } + font.pos += 4; + maxFunctionDefs = font.getUint16(); + } + var dupFirstEntry = false; + if (properties.type === 'CIDFontType2' && properties.toUnicode && properties.toUnicode.get(0) > '\u0000') { + dupFirstEntry = true; + numGlyphs++; + tables['maxp'].data[4] = numGlyphs >> 8; + tables['maxp'].data[5] = numGlyphs & 255; + } + var hintsValid = sanitizeTTPrograms(tables['fpgm'], tables['prep'], tables['cvt '], maxFunctionDefs); + if (!hintsValid) { + delete tables['fpgm']; + delete tables['prep']; + delete tables['cvt ']; + } + sanitizeMetrics(font, tables['hhea'], tables['hmtx'], numGlyphs); + if (!tables['head']) { + error('Required "head" table is not found'); + } + sanitizeHead(tables['head'], numGlyphs, isTrueType ? tables['loca'].length : 0); + var missingGlyphs = Object.create(null); + if (isTrueType) { + var isGlyphLocationsLong = int16(tables['head'].data[50], tables['head'].data[51]); + missingGlyphs = sanitizeGlyphLocations(tables['loca'], tables['glyf'], numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry); + } + if (!tables['hhea']) { + error('Required "hhea" table is not found'); + } + if (tables['hhea'].data[10] === 0 && tables['hhea'].data[11] === 0) { + tables['hhea'].data[10] = 0xFF; + tables['hhea'].data[11] = 0xFF; + } + var metricsOverride = { + unitsPerEm: int16(tables['head'].data[18], tables['head'].data[19]), + yMax: int16(tables['head'].data[42], tables['head'].data[43]), + yMin: signedInt16(tables['head'].data[38], tables['head'].data[39]), + ascent: int16(tables['hhea'].data[4], tables['hhea'].data[5]), + descent: signedInt16(tables['hhea'].data[6], tables['hhea'].data[7]) + }; + this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm; + this.descent = metricsOverride.descent / metricsOverride.unitsPerEm; + if (tables['post']) { + var valid = readPostScriptTable(tables['post'], properties, numGlyphs); + if (!valid) { + tables['post'] = null; + } + } + var charCodeToGlyphId = [], charCode; + var toUnicode = properties.toUnicode, widths = properties.widths; + var skipToUnicode = toUnicode instanceof IdentityToUnicodeMap || toUnicode.length === 0x10000; + function hasGlyph(glyphId, charCode, widthCode) { + if (!missingGlyphs[glyphId]) { + return true; + } + if (!skipToUnicode && charCode >= 0 && toUnicode.has(charCode)) { + return true; + } + if (widths && widthCode >= 0 && isNum(widths[widthCode])) { + return true; + } + return false; + } + if (properties.composite) { + var cidToGidMap = properties.cidToGidMap || []; + var isCidToGidMapEmpty = cidToGidMap.length === 0; + properties.cMap.forEach(function (charCode, cid) { + assert(cid <= 0xffff, 'Max size of CID is 65,535'); + var glyphId = -1; + if (isCidToGidMapEmpty) { + glyphId = cid; + } else if (cidToGidMap[cid] !== undefined) { + glyphId = cidToGidMap[cid]; + } + if (glyphId >= 0 && glyphId < numGlyphs && hasGlyph(glyphId, charCode, cid)) { + charCodeToGlyphId[charCode] = glyphId; + } + }); + if (dupFirstEntry && (isCidToGidMapEmpty || !charCodeToGlyphId[0])) { + charCodeToGlyphId[0] = numGlyphs - 1; + } + } else { + var cmapTable = readCmapTable(tables['cmap'], font, this.isSymbolicFont, properties.hasEncoding); + var cmapPlatformId = cmapTable.platformId; + var cmapEncodingId = cmapTable.encodingId; + var cmapMappings = cmapTable.mappings; + var cmapMappingsLength = cmapMappings.length; + if (properties.hasEncoding && (cmapPlatformId === 3 && cmapEncodingId === 1 || cmapPlatformId === 1 && cmapEncodingId === 0) || cmapPlatformId === -1 && cmapEncodingId === -1 && !!getEncoding(properties.baseEncodingName)) { + var baseEncoding = []; + if (properties.baseEncodingName === 'MacRomanEncoding' || properties.baseEncodingName === 'WinAnsiEncoding') { + baseEncoding = getEncoding(properties.baseEncodingName); + } + var glyphsUnicodeMap = getGlyphsUnicode(); + for (charCode = 0; charCode < 256; charCode++) { + var glyphName, standardGlyphName; + if (this.differences && charCode in this.differences) { + glyphName = this.differences[charCode]; + } else if (charCode in baseEncoding && baseEncoding[charCode] !== '') { + glyphName = baseEncoding[charCode]; + } else { + glyphName = StandardEncoding[charCode]; + } + if (!glyphName) { + continue; + } + standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap); + var unicodeOrCharCode, isUnicode = false; + if (cmapPlatformId === 3 && cmapEncodingId === 1) { + unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName]; + isUnicode = true; + } else if (cmapPlatformId === 1 && cmapEncodingId === 0) { + unicodeOrCharCode = MacRomanEncoding.indexOf(standardGlyphName); + } + var found = false; + for (i = 0; i < cmapMappingsLength; ++i) { + if (cmapMappings[i].charCode !== unicodeOrCharCode) { + continue; + } + var code = isUnicode ? charCode : unicodeOrCharCode; + if (hasGlyph(cmapMappings[i].glyphId, code, -1)) { + charCodeToGlyphId[charCode] = cmapMappings[i].glyphId; + found = true; + break; + } + } + if (!found && properties.glyphNames) { + var glyphId = properties.glyphNames.indexOf(glyphName); + if (glyphId === -1 && standardGlyphName !== glyphName) { + glyphId = properties.glyphNames.indexOf(standardGlyphName); + } + if (glyphId > 0 && hasGlyph(glyphId, -1, -1)) { + charCodeToGlyphId[charCode] = glyphId; + found = true; + } + } + if (!found) { + charCodeToGlyphId[charCode] = 0; + } + } + } else if (cmapPlatformId === 0 && cmapEncodingId === 0) { + for (i = 0; i < cmapMappingsLength; ++i) { + charCodeToGlyphId[cmapMappings[i].charCode] = cmapMappings[i].glyphId; + } + } else { + for (i = 0; i < cmapMappingsLength; ++i) { + charCode = cmapMappings[i].charCode & 0xFF; + charCodeToGlyphId[charCode] = cmapMappings[i].glyphId; + } + } + } + if (charCodeToGlyphId.length === 0) { + charCodeToGlyphId[0] = 0; + } + var newMapping = adjustMapping(charCodeToGlyphId, properties); + this.toFontChar = newMapping.toFontChar; + tables['cmap'] = { + tag: 'cmap', + data: createCmapTable(newMapping.charCodeToGlyphId, numGlyphs) + }; + if (!tables['OS/2'] || !validateOS2Table(tables['OS/2'])) { + tables['OS/2'] = { + tag: 'OS/2', + data: createOS2Table(properties, newMapping.charCodeToGlyphId, metricsOverride) + }; + } + if (!tables['post']) { + tables['post'] = { + tag: 'post', + data: createPostTable(properties) + }; + } + if (!isTrueType) { + try { + cffFile = new Stream(tables['CFF '].data); + var parser = new CFFParser(cffFile, properties, SEAC_ANALYSIS_ENABLED); + cff = parser.parse(); + var compiler = new CFFCompiler(cff); + tables['CFF '].data = compiler.compile(); + } catch (e) { + warn('Failed to compile font ' + properties.loadedName); + } + } + if (!tables['name']) { + tables['name'] = { + tag: 'name', + data: createNameTable(this.name) + }; + } else { + var namePrototype = readNameTable(tables['name']); + tables['name'].data = createNameTable(name, namePrototype); + } + var builder = new OpenTypeFileBuilder(header.version); + for (var tableTag in tables) { + builder.addTable(tableTag, tables[tableTag].data); + } + return builder.toArray(); + }, + convert: function Font_convert(fontName, font, properties) { + properties.fixedPitch = false; + if (properties.builtInEncoding) { + adjustToUnicode(properties, properties.builtInEncoding); + } + var mapping = font.getGlyphMapping(properties); + var newMapping = adjustMapping(mapping, properties); + this.toFontChar = newMapping.toFontChar; + var numGlyphs = font.numGlyphs; + function getCharCodes(charCodeToGlyphId, glyphId) { + var charCodes = null; + for (var charCode in charCodeToGlyphId) { + if (glyphId === charCodeToGlyphId[charCode]) { + if (!charCodes) { + charCodes = []; + } + charCodes.push(charCode | 0); + } + } + return charCodes; + } + function createCharCode(charCodeToGlyphId, glyphId) { + for (var charCode in charCodeToGlyphId) { + if (glyphId === charCodeToGlyphId[charCode]) { + return charCode | 0; + } + } + newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] = glyphId; + return newMapping.nextAvailableFontCharCode++; + } + var seacs = font.seacs; + if (SEAC_ANALYSIS_ENABLED && seacs && seacs.length) { + var matrix = properties.fontMatrix || FONT_IDENTITY_MATRIX; + var charset = font.getCharset(); + var seacMap = Object.create(null); + for (var glyphId in seacs) { + glyphId |= 0; + var seac = seacs[glyphId]; + var baseGlyphName = StandardEncoding[seac[2]]; + var accentGlyphName = StandardEncoding[seac[3]]; + var baseGlyphId = charset.indexOf(baseGlyphName); + var accentGlyphId = charset.indexOf(accentGlyphName); + if (baseGlyphId < 0 || accentGlyphId < 0) { + continue; + } + var accentOffset = { + x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4], + y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5] + }; + var charCodes = getCharCodes(mapping, glyphId); + if (!charCodes) { + continue; + } + for (var i = 0, ii = charCodes.length; i < ii; i++) { + var charCode = charCodes[i]; + var charCodeToGlyphId = newMapping.charCodeToGlyphId; + var baseFontCharCode = createCharCode(charCodeToGlyphId, baseGlyphId); + var accentFontCharCode = createCharCode(charCodeToGlyphId, accentGlyphId); + seacMap[charCode] = { + baseFontCharCode: baseFontCharCode, + accentFontCharCode: accentFontCharCode, + accentOffset: accentOffset + }; + } + } + properties.seacMap = seacMap; + } + var unitsPerEm = 1 / (properties.fontMatrix || FONT_IDENTITY_MATRIX)[0]; + var builder = new OpenTypeFileBuilder('\x4F\x54\x54\x4F'); + builder.addTable('CFF ', font.data); + builder.addTable('OS/2', createOS2Table(properties, newMapping.charCodeToGlyphId)); + builder.addTable('cmap', createCmapTable(newMapping.charCodeToGlyphId, numGlyphs)); + builder.addTable('head', '\x00\x01\x00\x00' + '\x00\x00\x10\x00' + '\x00\x00\x00\x00' + '\x5F\x0F\x3C\xF5' + '\x00\x00' + safeString16(unitsPerEm) + '\x00\x00\x00\x00\x9e\x0b\x7e\x27' + '\x00\x00\x00\x00\x9e\x0b\x7e\x27' + '\x00\x00' + safeString16(properties.descent) + '\x0F\xFF' + safeString16(properties.ascent) + string16(properties.italicAngle ? 2 : 0) + '\x00\x11' + '\x00\x00' + '\x00\x00' + '\x00\x00'); + builder.addTable('hhea', '\x00\x01\x00\x00' + safeString16(properties.ascent) + safeString16(properties.descent) + '\x00\x00' + '\xFF\xFF' + '\x00\x00' + '\x00\x00' + '\x00\x00' + safeString16(properties.capHeight) + safeString16(Math.tan(properties.italicAngle) * properties.xHeight) + '\x00\x00' + '\x00\x00' + '\x00\x00' + '\x00\x00' + '\x00\x00' + '\x00\x00' + string16(numGlyphs)); + builder.addTable('hmtx', function fontFieldsHmtx() { + var charstrings = font.charstrings; + var cffWidths = font.cff ? font.cff.widths : null; + var hmtx = '\x00\x00\x00\x00'; + for (var i = 1, ii = numGlyphs; i < ii; i++) { + var width = 0; + if (charstrings) { + var charstring = charstrings[i - 1]; + width = 'width' in charstring ? charstring.width : 0; + } else if (cffWidths) { + width = Math.ceil(cffWidths[i] || 0); + } + hmtx += string16(width) + string16(0); + } + return hmtx; + }()); + builder.addTable('maxp', '\x00\x00\x50\x00' + string16(numGlyphs)); + builder.addTable('name', createNameTable(fontName)); + builder.addTable('post', createPostTable(properties)); + return builder.toArray(); + }, + get spaceWidth() { + if ('_shadowWidth' in this) { + return this._shadowWidth; + } + var possibleSpaceReplacements = [ + 'space', + 'minus', + 'one', + 'i', + 'I' + ]; + var width; + for (var i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) { + var glyphName = possibleSpaceReplacements[i]; + if (glyphName in this.widths) { + width = this.widths[glyphName]; + break; + } + var glyphsUnicodeMap = getGlyphsUnicode(); + var glyphUnicode = glyphsUnicodeMap[glyphName]; + var charcode = 0; + if (this.composite) { + if (this.cMap.contains(glyphUnicode)) { + charcode = this.cMap.lookup(glyphUnicode); + } + } + if (!charcode && this.toUnicode) { + charcode = this.toUnicode.charCodeOf(glyphUnicode); + } + if (charcode <= 0) { + charcode = glyphUnicode; + } + width = this.widths[charcode]; + if (width) { + break; + } + } + width = width || this.defaultWidth; + this._shadowWidth = width; + return width; + }, + charToGlyph: function Font_charToGlyph(charcode, isSpace) { + var fontCharCode, width, operatorListId; + var widthCode = charcode; + if (this.cMap && this.cMap.contains(charcode)) { + widthCode = this.cMap.lookup(charcode); + } + width = this.widths[widthCode]; + width = isNum(width) ? width : this.defaultWidth; + var vmetric = this.vmetrics && this.vmetrics[widthCode]; + var unicode = this.toUnicode.get(charcode) || charcode; + if (typeof unicode === 'number') { + unicode = String.fromCharCode(unicode); + } + var isInFont = charcode in this.toFontChar; + fontCharCode = this.toFontChar[charcode] || charcode; + if (this.missingFile) { + fontCharCode = mapSpecialUnicodeValues(fontCharCode); + } + if (this.isType3Font) { + operatorListId = fontCharCode; + } + var accent = null; + if (this.seacMap && this.seacMap[charcode]) { + isInFont = true; + var seac = this.seacMap[charcode]; + fontCharCode = seac.baseFontCharCode; + accent = { + fontChar: String.fromCharCode(seac.accentFontCharCode), + offset: seac.accentOffset + }; + } + var fontChar = String.fromCharCode(fontCharCode); + var glyph = this.glyphCache[charcode]; + if (!glyph || !glyph.matchesForCache(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont)) { + glyph = new Glyph(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont); + this.glyphCache[charcode] = glyph; + } + return glyph; + }, + charsToGlyphs: function Font_charsToGlyphs(chars) { + var charsCache = this.charsCache; + var glyphs, glyph, charcode; + if (charsCache) { + glyphs = charsCache[chars]; + if (glyphs) { + return glyphs; + } + } + if (!charsCache) { + charsCache = this.charsCache = Object.create(null); + } + glyphs = []; + var charsCacheKey = chars; + var i = 0, ii; + if (this.cMap) { + var c = Object.create(null); + while (i < chars.length) { + this.cMap.readCharCode(chars, i, c); + charcode = c.charcode; + var length = c.length; + i += length; + var isSpace = length === 1 && chars.charCodeAt(i - 1) === 0x20; + glyph = this.charToGlyph(charcode, isSpace); + glyphs.push(glyph); + } + } else { + for (i = 0, ii = chars.length; i < ii; ++i) { + charcode = chars.charCodeAt(i); + glyph = this.charToGlyph(charcode, charcode === 0x20); + glyphs.push(glyph); + } + } + return charsCache[charsCacheKey] = glyphs; + } + }; + return Font; +}(); +var ErrorFont = function ErrorFontClosure() { + function ErrorFont(error) { + this.error = error; + this.loadedName = 'g_font_error'; + this.loading = false; + } + ErrorFont.prototype = { + charsToGlyphs: function ErrorFont_charsToGlyphs() { + return []; + }, + exportData: function ErrorFont_exportData() { + return { error: this.error }; + } + }; + return ErrorFont; +}(); +function type1FontGlyphMapping(properties, builtInEncoding, glyphNames) { + var charCodeToGlyphId = Object.create(null); + var glyphId, charCode, baseEncoding; + var isSymbolicFont = !!(properties.flags & FontFlags.Symbolic); + if (properties.baseEncodingName) { + baseEncoding = getEncoding(properties.baseEncodingName); + for (charCode = 0; charCode < baseEncoding.length; charCode++) { + glyphId = glyphNames.indexOf(baseEncoding[charCode]); + if (glyphId >= 0) { + charCodeToGlyphId[charCode] = glyphId; + } else { + charCodeToGlyphId[charCode] = 0; + } + } + } else if (isSymbolicFont) { + for (charCode in builtInEncoding) { + charCodeToGlyphId[charCode] = builtInEncoding[charCode]; + } + } else { + baseEncoding = StandardEncoding; + for (charCode = 0; charCode < baseEncoding.length; charCode++) { + glyphId = glyphNames.indexOf(baseEncoding[charCode]); + if (glyphId >= 0) { + charCodeToGlyphId[charCode] = glyphId; + } else { + charCodeToGlyphId[charCode] = 0; + } + } + } + var differences = properties.differences, glyphsUnicodeMap; + if (differences) { + for (charCode in differences) { + var glyphName = differences[charCode]; + glyphId = glyphNames.indexOf(glyphName); + if (glyphId === -1) { + if (!glyphsUnicodeMap) { + glyphsUnicodeMap = getGlyphsUnicode(); + } + var standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap); + if (standardGlyphName !== glyphName) { + glyphId = glyphNames.indexOf(standardGlyphName); + } + } + if (glyphId >= 0) { + charCodeToGlyphId[charCode] = glyphId; + } else { + charCodeToGlyphId[charCode] = 0; + } + } + } + return charCodeToGlyphId; +} +var Type1Font = function Type1FontClosure() { + function findBlock(streamBytes, signature, startIndex) { + var streamBytesLength = streamBytes.length; + var signatureLength = signature.length; + var scanLength = streamBytesLength - signatureLength; + var i = startIndex, j, found = false; + while (i < scanLength) { + j = 0; + while (j < signatureLength && streamBytes[i + j] === signature[j]) { + j++; + } + if (j >= signatureLength) { + i += j; + while (i < streamBytesLength && isSpace(streamBytes[i])) { + i++; + } + found = true; + break; + } + i++; + } + return { + found: found, + length: i + }; + } + function getHeaderBlock(stream, suggestedLength) { + var EEXEC_SIGNATURE = [ + 0x65, + 0x65, + 0x78, + 0x65, + 0x63 + ]; + var streamStartPos = stream.pos; + var headerBytes, headerBytesLength, block; + try { + headerBytes = stream.getBytes(suggestedLength); + headerBytesLength = headerBytes.length; + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + } + if (headerBytesLength === suggestedLength) { + block = findBlock(headerBytes, EEXEC_SIGNATURE, suggestedLength - 2 * EEXEC_SIGNATURE.length); + if (block.found && block.length === suggestedLength) { + return { + stream: new Stream(headerBytes), + length: suggestedLength + }; + } + } + warn('Invalid "Length1" property in Type1 font -- trying to recover.'); + stream.pos = streamStartPos; + var SCAN_BLOCK_LENGTH = 2048; + var actualLength; + while (true) { + var scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH); + block = findBlock(scanBytes, EEXEC_SIGNATURE, 0); + if (block.length === 0) { + break; + } + stream.pos += block.length; + if (block.found) { + actualLength = stream.pos - streamStartPos; + break; + } + } + stream.pos = streamStartPos; + if (actualLength) { + return { + stream: new Stream(stream.getBytes(actualLength)), + length: actualLength + }; + } + warn('Unable to recover "Length1" property in Type1 font -- using as is.'); + return { + stream: new Stream(stream.getBytes(suggestedLength)), + length: suggestedLength + }; + } + function getEexecBlock(stream, suggestedLength) { + var eexecBytes = stream.getBytes(); + return { + stream: new Stream(eexecBytes), + length: eexecBytes.length + }; + } + function Type1Font(name, file, properties) { + var PFB_HEADER_SIZE = 6; + var headerBlockLength = properties.length1; + var eexecBlockLength = properties.length2; + var pfbHeader = file.peekBytes(PFB_HEADER_SIZE); + var pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01; + if (pfbHeaderPresent) { + file.skip(PFB_HEADER_SIZE); + headerBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2]; + } + var headerBlock = getHeaderBlock(file, headerBlockLength); + headerBlockLength = headerBlock.length; + var headerBlockParser = new Type1Parser(headerBlock.stream, false, SEAC_ANALYSIS_ENABLED); + headerBlockParser.extractFontHeader(properties); + if (pfbHeaderPresent) { + pfbHeader = file.getBytes(PFB_HEADER_SIZE); + eexecBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2]; + } + var eexecBlock = getEexecBlock(file, eexecBlockLength); + eexecBlockLength = eexecBlock.length; + var eexecBlockParser = new Type1Parser(eexecBlock.stream, true, SEAC_ANALYSIS_ENABLED); + var data = eexecBlockParser.extractFontProgram(); + for (var info in data.properties) { + properties[info] = data.properties[info]; + } + var charstrings = data.charstrings; + var type2Charstrings = this.getType2Charstrings(charstrings); + var subrs = this.getType2Subrs(data.subrs); + this.charstrings = charstrings; + this.data = this.wrap(name, type2Charstrings, this.charstrings, subrs, properties); + this.seacs = this.getSeacs(data.charstrings); + } + Type1Font.prototype = { + get numGlyphs() { + return this.charstrings.length + 1; + }, + getCharset: function Type1Font_getCharset() { + var charset = ['.notdef']; + var charstrings = this.charstrings; + for (var glyphId = 0; glyphId < charstrings.length; glyphId++) { + charset.push(charstrings[glyphId].glyphName); + } + return charset; + }, + getGlyphMapping: function Type1Font_getGlyphMapping(properties) { + var charstrings = this.charstrings; + var glyphNames = ['.notdef'], glyphId; + for (glyphId = 0; glyphId < charstrings.length; glyphId++) { + glyphNames.push(charstrings[glyphId].glyphName); + } + var encoding = properties.builtInEncoding; + if (encoding) { + var builtInEncoding = Object.create(null); + for (var charCode in encoding) { + glyphId = glyphNames.indexOf(encoding[charCode]); + if (glyphId >= 0) { + builtInEncoding[charCode] = glyphId; + } + } + } + return type1FontGlyphMapping(properties, builtInEncoding, glyphNames); + }, + getSeacs: function Type1Font_getSeacs(charstrings) { + var i, ii; + var seacMap = []; + for (i = 0, ii = charstrings.length; i < ii; i++) { + var charstring = charstrings[i]; + if (charstring.seac) { + seacMap[i + 1] = charstring.seac; + } + } + return seacMap; + }, + getType2Charstrings: function Type1Font_getType2Charstrings(type1Charstrings) { + var type2Charstrings = []; + for (var i = 0, ii = type1Charstrings.length; i < ii; i++) { + type2Charstrings.push(type1Charstrings[i].charstring); + } + return type2Charstrings; + }, + getType2Subrs: function Type1Font_getType2Subrs(type1Subrs) { + var bias = 0; + var count = type1Subrs.length; + if (count < 1133) { + bias = 107; + } else if (count < 33769) { + bias = 1131; + } else { + bias = 32768; + } + var type2Subrs = []; + var i; + for (i = 0; i < bias; i++) { + type2Subrs.push([0x0B]); + } + for (i = 0; i < count; i++) { + type2Subrs.push(type1Subrs[i]); + } + return type2Subrs; + }, + wrap: function Type1Font_wrap(name, glyphs, charstrings, subrs, properties) { + var cff = new CFF(); + cff.header = new CFFHeader(1, 0, 4, 4); + cff.names = [name]; + var topDict = new CFFTopDict(); + topDict.setByName('version', 391); + topDict.setByName('Notice', 392); + topDict.setByName('FullName', 393); + topDict.setByName('FamilyName', 394); + topDict.setByName('Weight', 395); + topDict.setByName('Encoding', null); + topDict.setByName('FontMatrix', properties.fontMatrix); + topDict.setByName('FontBBox', properties.bbox); + topDict.setByName('charset', null); + topDict.setByName('CharStrings', null); + topDict.setByName('Private', null); + cff.topDict = topDict; + var strings = new CFFStrings(); + strings.add('Version 0.11'); + strings.add('See original notice'); + strings.add(name); + strings.add(name); + strings.add('Medium'); + cff.strings = strings; + cff.globalSubrIndex = new CFFIndex(); + var count = glyphs.length; + var charsetArray = [0]; + var i, ii; + for (i = 0; i < count; i++) { + var index = CFFStandardStrings.indexOf(charstrings[i].glyphName); + if (index === -1) { + index = 0; + } + charsetArray.push(index >> 8 & 0xff, index & 0xff); + } + cff.charset = new CFFCharset(false, 0, [], charsetArray); + var charStringsIndex = new CFFIndex(); + charStringsIndex.add([ + 0x8B, + 0x0E + ]); + for (i = 0; i < count; i++) { + var glyph = glyphs[i]; + if (glyph.length === 0) { + charStringsIndex.add([ + 0x8B, + 0x0E + ]); + continue; + } + charStringsIndex.add(glyph); + } + cff.charStrings = charStringsIndex; + var privateDict = new CFFPrivateDict(); + privateDict.setByName('Subrs', null); + var fields = [ + 'BlueValues', + 'OtherBlues', + 'FamilyBlues', + 'FamilyOtherBlues', + 'StemSnapH', + 'StemSnapV', + 'BlueShift', + 'BlueFuzz', + 'BlueScale', + 'LanguageGroup', + 'ExpansionFactor', + 'ForceBold', + 'StdHW', + 'StdVW' + ]; + for (i = 0, ii = fields.length; i < ii; i++) { + var field = fields[i]; + if (!(field in properties.privateData)) { + continue; + } + var value = properties.privateData[field]; + if (isArray(value)) { + for (var j = value.length - 1; j > 0; j--) { + value[j] -= value[j - 1]; + } + } + privateDict.setByName(field, value); + } + cff.topDict.privateDict = privateDict; + var subrIndex = new CFFIndex(); + for (i = 0, ii = subrs.length; i < ii; i++) { + subrIndex.add(subrs[i]); + } + privateDict.subrsIndex = subrIndex; + var compiler = new CFFCompiler(cff); + return compiler.compile(); + } + }; + return Type1Font; +}(); +var CFFFont = function CFFFontClosure() { + function CFFFont(file, properties) { + this.properties = properties; + var parser = new CFFParser(file, properties, SEAC_ANALYSIS_ENABLED); + this.cff = parser.parse(); + var compiler = new CFFCompiler(this.cff); + this.seacs = this.cff.seacs; + try { + this.data = compiler.compile(); + } catch (e) { + warn('Failed to compile font ' + properties.loadedName); + this.data = file; + } + } + CFFFont.prototype = { + get numGlyphs() { + return this.cff.charStrings.count; + }, + getCharset: function CFFFont_getCharset() { + return this.cff.charset.charset; + }, + getGlyphMapping: function CFFFont_getGlyphMapping() { + var cff = this.cff; + var properties = this.properties; + var charsets = cff.charset.charset; + var charCodeToGlyphId; + var glyphId; + if (properties.composite) { + charCodeToGlyphId = Object.create(null); + if (cff.isCIDFont) { + for (glyphId = 0; glyphId < charsets.length; glyphId++) { + var cid = charsets[glyphId]; + var charCode = properties.cMap.charCodeOf(cid); + charCodeToGlyphId[charCode] = glyphId; + } + } else { + for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) { + charCodeToGlyphId[glyphId] = glyphId; + } + } + return charCodeToGlyphId; + } + var encoding = cff.encoding ? cff.encoding.encoding : null; + charCodeToGlyphId = type1FontGlyphMapping(properties, encoding, charsets); + return charCodeToGlyphId; + } + }; + return CFFFont; +}(); +(function checkSeacSupport() { + if (typeof navigator !== 'undefined' && /Windows/.test(navigator.userAgent)) { + SEAC_ANALYSIS_ENABLED = true; + } +}()); +(function checkChromeWindows() { + if (typeof navigator !== 'undefined' && /Windows.*Chrome/.test(navigator.userAgent)) { + SKIP_PRIVATE_USE_RANGE_F000_TO_F01F = true; + } +}()); +exports.SEAC_ANALYSIS_ENABLED = SEAC_ANALYSIS_ENABLED; +exports.PRIVATE_USE_OFFSET_START = PRIVATE_USE_OFFSET_START; +exports.PRIVATE_USE_OFFSET_END = PRIVATE_USE_OFFSET_END; +exports.ErrorFont = ErrorFont; +exports.Font = Font; +exports.FontFlags = FontFlags; +exports.IdentityToUnicodeMap = IdentityToUnicodeMap; +exports.ProblematicCharRanges = ProblematicCharRanges; +exports.ToUnicodeMap = ToUnicodeMap; +exports.getFontType = getFontType; + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var corePrimitives = __w_pdfjs_require__(1); +var coreColorSpace = __w_pdfjs_require__(3); +var coreStream = __w_pdfjs_require__(2); +var coreJpx = __w_pdfjs_require__(15); +var ImageKind = sharedUtil.ImageKind; +var assert = sharedUtil.assert; +var error = sharedUtil.error; +var info = sharedUtil.info; +var isArray = sharedUtil.isArray; +var warn = sharedUtil.warn; +var Name = corePrimitives.Name; +var isStream = corePrimitives.isStream; +var ColorSpace = coreColorSpace.ColorSpace; +var DecodeStream = coreStream.DecodeStream; +var JpegStream = coreStream.JpegStream; +var JpxImage = coreJpx.JpxImage; +var PDFImage = function PDFImageClosure() { + function handleImageData(image, nativeDecoder) { + if (nativeDecoder && nativeDecoder.canDecode(image)) { + return nativeDecoder.decode(image); + } + return Promise.resolve(image); + } + function decodeAndClamp(value, addend, coefficient, max) { + value = addend + value * coefficient; + return value < 0 ? 0 : value > max ? max : value; + } + function resizeImageMask(src, bpc, w1, h1, w2, h2) { + var length = w2 * h2; + var dest = bpc <= 8 ? new Uint8Array(length) : bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length); + var xRatio = w1 / w2; + var yRatio = h1 / h2; + var i, j, py, newIndex = 0, oldIndex; + var xScaled = new Uint16Array(w2); + var w1Scanline = w1; + for (i = 0; i < w2; i++) { + xScaled[i] = Math.floor(i * xRatio); + } + for (i = 0; i < h2; i++) { + py = Math.floor(i * yRatio) * w1Scanline; + for (j = 0; j < w2; j++) { + oldIndex = py + xScaled[j]; + dest[newIndex++] = src[oldIndex]; + } + } + return dest; + } + function PDFImage(xref, res, image, inline, smask, mask, isMask) { + this.image = image; + var dict = image.dict; + if (dict.has('Filter')) { + var filter = dict.get('Filter').name; + if (filter === 'JPXDecode') { + var jpxImage = new JpxImage(); + jpxImage.parseImageProperties(image.stream); + image.stream.reset(); + image.bitsPerComponent = jpxImage.bitsPerComponent; + image.numComps = jpxImage.componentsCount; + } else if (filter === 'JBIG2Decode') { + image.bitsPerComponent = 1; + image.numComps = 1; + } + } + this.width = dict.get('Width', 'W'); + this.height = dict.get('Height', 'H'); + if (this.width < 1 || this.height < 1) { + error('Invalid image width: ' + this.width + ' or height: ' + this.height); + } + this.interpolate = dict.get('Interpolate', 'I') || false; + this.imageMask = dict.get('ImageMask', 'IM') || false; + this.matte = dict.get('Matte') || false; + var bitsPerComponent = image.bitsPerComponent; + if (!bitsPerComponent) { + bitsPerComponent = dict.get('BitsPerComponent', 'BPC'); + if (!bitsPerComponent) { + if (this.imageMask) { + bitsPerComponent = 1; + } else { + error('Bits per component missing in image: ' + this.imageMask); + } + } + } + this.bpc = bitsPerComponent; + if (!this.imageMask) { + var colorSpace = dict.get('ColorSpace', 'CS'); + if (!colorSpace) { + info('JPX images (which do not require color spaces)'); + switch (image.numComps) { + case 1: + colorSpace = Name.get('DeviceGray'); + break; + case 3: + colorSpace = Name.get('DeviceRGB'); + break; + case 4: + colorSpace = Name.get('DeviceCMYK'); + break; + default: + error('JPX images with ' + this.numComps + ' color components not supported.'); + } + } + this.colorSpace = ColorSpace.parse(colorSpace, xref, res); + this.numComps = this.colorSpace.numComps; + } + this.decode = dict.getArray('Decode', 'D'); + this.needsDecode = false; + if (this.decode && (this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode) || isMask && !ColorSpace.isDefaultDecode(this.decode, 1))) { + this.needsDecode = true; + var max = (1 << bitsPerComponent) - 1; + this.decodeCoefficients = []; + this.decodeAddends = []; + for (var i = 0, j = 0; i < this.decode.length; i += 2, ++j) { + var dmin = this.decode[i]; + var dmax = this.decode[i + 1]; + this.decodeCoefficients[j] = dmax - dmin; + this.decodeAddends[j] = max * dmin; + } + } + if (smask) { + this.smask = new PDFImage(xref, res, smask, false); + } else if (mask) { + if (isStream(mask)) { + var maskDict = mask.dict, imageMask = maskDict.get('ImageMask', 'IM'); + if (!imageMask) { + warn('Ignoring /Mask in image without /ImageMask.'); + } else { + this.mask = new PDFImage(xref, res, mask, false, null, null, true); + } + } else { + this.mask = mask; + } + } + } + PDFImage.buildImage = function PDFImage_buildImage(handler, xref, res, image, inline, nativeDecoder) { + var imagePromise = handleImageData(image, nativeDecoder); + var smaskPromise; + var maskPromise; + var smask = image.dict.get('SMask'); + var mask = image.dict.get('Mask'); + if (smask) { + smaskPromise = handleImageData(smask, nativeDecoder); + maskPromise = Promise.resolve(null); + } else { + smaskPromise = Promise.resolve(null); + if (mask) { + if (isStream(mask)) { + maskPromise = handleImageData(mask, nativeDecoder); + } else if (isArray(mask)) { + maskPromise = Promise.resolve(mask); + } else { + warn('Unsupported mask format.'); + maskPromise = Promise.resolve(null); + } + } else { + maskPromise = Promise.resolve(null); + } + } + return Promise.all([ + imagePromise, + smaskPromise, + maskPromise + ]).then(function (results) { + var imageData = results[0]; + var smaskData = results[1]; + var maskData = results[2]; + return new PDFImage(xref, res, imageData, inline, smaskData, maskData); + }); + }; + PDFImage.createMask = function PDFImage_createMask(imgArray, width, height, imageIsFromDecodeStream, inverseDecode) { + var computedLength = (width + 7 >> 3) * height; + var actualLength = imgArray.byteLength; + var haveFullData = computedLength === actualLength; + var data, i; + if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) { + data = imgArray; + } else if (!inverseDecode) { + data = new Uint8Array(actualLength); + data.set(imgArray); + } else { + data = new Uint8Array(computedLength); + data.set(imgArray); + for (i = actualLength; i < computedLength; i++) { + data[i] = 0xff; + } + } + if (inverseDecode) { + for (i = 0; i < actualLength; i++) { + data[i] = ~data[i]; + } + } + return { + data: data, + width: width, + height: height + }; + }; + PDFImage.prototype = { + get drawWidth() { + return Math.max(this.width, this.smask && this.smask.width || 0, this.mask && this.mask.width || 0); + }, + get drawHeight() { + return Math.max(this.height, this.smask && this.smask.height || 0, this.mask && this.mask.height || 0); + }, + decodeBuffer: function PDFImage_decodeBuffer(buffer) { + var bpc = this.bpc; + var numComps = this.numComps; + var decodeAddends = this.decodeAddends; + var decodeCoefficients = this.decodeCoefficients; + var max = (1 << bpc) - 1; + var i, ii; + if (bpc === 1) { + for (i = 0, ii = buffer.length; i < ii; i++) { + buffer[i] = +!buffer[i]; + } + return; + } + var index = 0; + for (i = 0, ii = this.width * this.height; i < ii; i++) { + for (var j = 0; j < numComps; j++) { + buffer[index] = decodeAndClamp(buffer[index], decodeAddends[j], decodeCoefficients[j], max); + index++; + } + } + }, + getComponents: function PDFImage_getComponents(buffer) { + var bpc = this.bpc; + if (bpc === 8) { + return buffer; + } + var width = this.width; + var height = this.height; + var numComps = this.numComps; + var length = width * height * numComps; + var bufferPos = 0; + var output = bpc <= 8 ? new Uint8Array(length) : bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length); + var rowComps = width * numComps; + var max = (1 << bpc) - 1; + var i = 0, ii, buf; + if (bpc === 1) { + var mask, loop1End, loop2End; + for (var j = 0; j < height; j++) { + loop1End = i + (rowComps & ~7); + loop2End = i + rowComps; + while (i < loop1End) { + buf = buffer[bufferPos++]; + output[i] = buf >> 7 & 1; + output[i + 1] = buf >> 6 & 1; + output[i + 2] = buf >> 5 & 1; + output[i + 3] = buf >> 4 & 1; + output[i + 4] = buf >> 3 & 1; + output[i + 5] = buf >> 2 & 1; + output[i + 6] = buf >> 1 & 1; + output[i + 7] = buf & 1; + i += 8; + } + if (i < loop2End) { + buf = buffer[bufferPos++]; + mask = 128; + while (i < loop2End) { + output[i++] = +!!(buf & mask); + mask >>= 1; + } + } + } + } else { + var bits = 0; + buf = 0; + for (i = 0, ii = length; i < ii; ++i) { + if (i % rowComps === 0) { + buf = 0; + bits = 0; + } + while (bits < bpc) { + buf = buf << 8 | buffer[bufferPos++]; + bits += 8; + } + var remainingBits = bits - bpc; + var value = buf >> remainingBits; + output[i] = value < 0 ? 0 : value > max ? max : value; + buf = buf & (1 << remainingBits) - 1; + bits = remainingBits; + } + } + return output; + }, + fillOpacity: function PDFImage_fillOpacity(rgbaBuf, width, height, actualHeight, image) { + var smask = this.smask; + var mask = this.mask; + var alphaBuf, sw, sh, i, ii, j; + if (smask) { + sw = smask.width; + sh = smask.height; + alphaBuf = new Uint8Array(sw * sh); + smask.fillGrayBuffer(alphaBuf); + if (sw !== width || sh !== height) { + alphaBuf = resizeImageMask(alphaBuf, smask.bpc, sw, sh, width, height); + } + } else if (mask) { + if (mask instanceof PDFImage) { + sw = mask.width; + sh = mask.height; + alphaBuf = new Uint8Array(sw * sh); + mask.numComps = 1; + mask.fillGrayBuffer(alphaBuf); + for (i = 0, ii = sw * sh; i < ii; ++i) { + alphaBuf[i] = 255 - alphaBuf[i]; + } + if (sw !== width || sh !== height) { + alphaBuf = resizeImageMask(alphaBuf, mask.bpc, sw, sh, width, height); + } + } else if (isArray(mask)) { + alphaBuf = new Uint8Array(width * height); + var numComps = this.numComps; + for (i = 0, ii = width * height; i < ii; ++i) { + var opacity = 0; + var imageOffset = i * numComps; + for (j = 0; j < numComps; ++j) { + var color = image[imageOffset + j]; + var maskOffset = j * 2; + if (color < mask[maskOffset] || color > mask[maskOffset + 1]) { + opacity = 255; + break; + } + } + alphaBuf[i] = opacity; + } + } else { + error('Unknown mask format.'); + } + } + if (alphaBuf) { + for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) { + rgbaBuf[j] = alphaBuf[i]; + } + } else { + for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) { + rgbaBuf[j] = 255; + } + } + }, + undoPreblend: function PDFImage_undoPreblend(buffer, width, height) { + var matte = this.smask && this.smask.matte; + if (!matte) { + return; + } + var matteRgb = this.colorSpace.getRgb(matte, 0); + var matteR = matteRgb[0]; + var matteG = matteRgb[1]; + var matteB = matteRgb[2]; + var length = width * height * 4; + var r, g, b; + for (var i = 0; i < length; i += 4) { + var alpha = buffer[i + 3]; + if (alpha === 0) { + buffer[i] = 255; + buffer[i + 1] = 255; + buffer[i + 2] = 255; + continue; + } + var k = 255 / alpha; + r = (buffer[i] - matteR) * k + matteR; + g = (buffer[i + 1] - matteG) * k + matteG; + b = (buffer[i + 2] - matteB) * k + matteB; + buffer[i] = r <= 0 ? 0 : r >= 255 ? 255 : r | 0; + buffer[i + 1] = g <= 0 ? 0 : g >= 255 ? 255 : g | 0; + buffer[i + 2] = b <= 0 ? 0 : b >= 255 ? 255 : b | 0; + } + }, + createImageData: function PDFImage_createImageData(forceRGBA) { + var drawWidth = this.drawWidth; + var drawHeight = this.drawHeight; + var imgData = { + width: drawWidth, + height: drawHeight + }; + var numComps = this.numComps; + var originalWidth = this.width; + var originalHeight = this.height; + var bpc = this.bpc; + var rowBytes = originalWidth * numComps * bpc + 7 >> 3; + var imgArray; + if (!forceRGBA) { + var kind; + if (this.colorSpace.name === 'DeviceGray' && bpc === 1) { + kind = ImageKind.GRAYSCALE_1BPP; + } else if (this.colorSpace.name === 'DeviceRGB' && bpc === 8 && !this.needsDecode) { + kind = ImageKind.RGB_24BPP; + } + if (kind && !this.smask && !this.mask && drawWidth === originalWidth && drawHeight === originalHeight) { + imgData.kind = kind; + imgArray = this.getImageBytes(originalHeight * rowBytes); + if (this.image instanceof DecodeStream) { + imgData.data = imgArray; + } else { + var newArray = new Uint8Array(imgArray.length); + newArray.set(imgArray); + imgData.data = newArray; + } + if (this.needsDecode) { + assert(kind === ImageKind.GRAYSCALE_1BPP); + var buffer = imgData.data; + for (var i = 0, ii = buffer.length; i < ii; i++) { + buffer[i] ^= 0xff; + } + } + return imgData; + } + if (this.image instanceof JpegStream && !this.smask && !this.mask && (this.colorSpace.name === 'DeviceGray' || this.colorSpace.name === 'DeviceRGB' || this.colorSpace.name === 'DeviceCMYK')) { + imgData.kind = ImageKind.RGB_24BPP; + imgData.data = this.getImageBytes(originalHeight * rowBytes, drawWidth, drawHeight, true); + return imgData; + } + } + imgArray = this.getImageBytes(originalHeight * rowBytes); + var actualHeight = 0 | imgArray.length / rowBytes * drawHeight / originalHeight; + var comps = this.getComponents(imgArray); + var alpha01, maybeUndoPreblend; + if (!forceRGBA && !this.smask && !this.mask) { + imgData.kind = ImageKind.RGB_24BPP; + imgData.data = new Uint8Array(drawWidth * drawHeight * 3); + alpha01 = 0; + maybeUndoPreblend = false; + } else { + imgData.kind = ImageKind.RGBA_32BPP; + imgData.data = new Uint8Array(drawWidth * drawHeight * 4); + alpha01 = 1; + maybeUndoPreblend = true; + this.fillOpacity(imgData.data, drawWidth, drawHeight, actualHeight, comps); + } + if (this.needsDecode) { + this.decodeBuffer(comps); + } + this.colorSpace.fillRgb(imgData.data, originalWidth, originalHeight, drawWidth, drawHeight, actualHeight, bpc, comps, alpha01); + if (maybeUndoPreblend) { + this.undoPreblend(imgData.data, drawWidth, actualHeight); + } + return imgData; + }, + fillGrayBuffer: function PDFImage_fillGrayBuffer(buffer) { + var numComps = this.numComps; + if (numComps !== 1) { + error('Reading gray scale from a color image: ' + numComps); + } + var width = this.width; + var height = this.height; + var bpc = this.bpc; + var rowBytes = width * numComps * bpc + 7 >> 3; + var imgArray = this.getImageBytes(height * rowBytes); + var comps = this.getComponents(imgArray); + var i, length; + if (bpc === 1) { + length = width * height; + if (this.needsDecode) { + for (i = 0; i < length; ++i) { + buffer[i] = comps[i] - 1 & 255; + } + } else { + for (i = 0; i < length; ++i) { + buffer[i] = -comps[i] & 255; + } + } + return; + } + if (this.needsDecode) { + this.decodeBuffer(comps); + } + length = width * height; + var scale = 255 / ((1 << bpc) - 1); + for (i = 0; i < length; ++i) { + buffer[i] = scale * comps[i] | 0; + } + }, + getImageBytes: function PDFImage_getImageBytes(length, drawWidth, drawHeight, forceRGB) { + this.image.reset(); + this.image.drawWidth = drawWidth || this.width; + this.image.drawHeight = drawHeight || this.height; + this.image.forceRGB = !!forceRGB; + return this.image.getBytes(length); + } + }; + return PDFImage; +}(); +exports.PDFImage = PDFImage; + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var coreArithmeticDecoder = __w_pdfjs_require__(10); +var error = sharedUtil.error; +var log2 = sharedUtil.log2; +var readInt8 = sharedUtil.readInt8; +var readUint16 = sharedUtil.readUint16; +var readUint32 = sharedUtil.readUint32; +var shadow = sharedUtil.shadow; +var ArithmeticDecoder = coreArithmeticDecoder.ArithmeticDecoder; +var Jbig2Image = function Jbig2ImageClosure() { + function ContextCache() { + } + ContextCache.prototype = { + getContexts: function (id) { + if (id in this) { + return this[id]; + } + return this[id] = new Int8Array(1 << 16); + } + }; + function DecodingContext(data, start, end) { + this.data = data; + this.start = start; + this.end = end; + } + DecodingContext.prototype = { + get decoder() { + var decoder = new ArithmeticDecoder(this.data, this.start, this.end); + return shadow(this, 'decoder', decoder); + }, + get contextCache() { + var cache = new ContextCache(); + return shadow(this, 'contextCache', cache); + } + }; + function decodeInteger(contextCache, procedure, decoder) { + var contexts = contextCache.getContexts(procedure); + var prev = 1; + function readBits(length) { + var v = 0; + for (var i = 0; i < length; i++) { + var bit = decoder.readBit(contexts, prev); + prev = prev < 256 ? prev << 1 | bit : (prev << 1 | bit) & 511 | 256; + v = v << 1 | bit; + } + return v >>> 0; + } + var sign = readBits(1); + var value = readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(32) + 4436 : readBits(12) + 340 : readBits(8) + 84 : readBits(6) + 20 : readBits(4) + 4 : readBits(2); + return sign === 0 ? value : value > 0 ? -value : null; + } + function decodeIAID(contextCache, decoder, codeLength) { + var contexts = contextCache.getContexts('IAID'); + var prev = 1; + for (var i = 0; i < codeLength; i++) { + var bit = decoder.readBit(contexts, prev); + prev = prev << 1 | bit; + } + if (codeLength < 31) { + return prev & (1 << codeLength) - 1; + } + return prev & 0x7FFFFFFF; + } + var SegmentTypes = [ + 'SymbolDictionary', + null, + null, + null, + 'IntermediateTextRegion', + null, + 'ImmediateTextRegion', + 'ImmediateLosslessTextRegion', + null, + null, + null, + null, + null, + null, + null, + null, + 'patternDictionary', + null, + null, + null, + 'IntermediateHalftoneRegion', + null, + 'ImmediateHalftoneRegion', + 'ImmediateLosslessHalftoneRegion', + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 'IntermediateGenericRegion', + null, + 'ImmediateGenericRegion', + 'ImmediateLosslessGenericRegion', + 'IntermediateGenericRefinementRegion', + null, + 'ImmediateGenericRefinementRegion', + 'ImmediateLosslessGenericRefinementRegion', + null, + null, + null, + null, + 'PageInformation', + 'EndOfPage', + 'EndOfStripe', + 'EndOfFile', + 'Profiles', + 'Tables', + null, + null, + null, + null, + null, + null, + null, + null, + 'Extension' + ]; + var CodingTemplates = [ + [ + { + x: -1, + y: -2 + }, + { + x: 0, + y: -2 + }, + { + x: 1, + y: -2 + }, + { + x: -2, + y: -1 + }, + { + x: -1, + y: -1 + }, + { + x: 0, + y: -1 + }, + { + x: 1, + y: -1 + }, + { + x: 2, + y: -1 + }, + { + x: -4, + y: 0 + }, + { + x: -3, + y: 0 + }, + { + x: -2, + y: 0 + }, + { + x: -1, + y: 0 + } + ], + [ + { + x: -1, + y: -2 + }, + { + x: 0, + y: -2 + }, + { + x: 1, + y: -2 + }, + { + x: 2, + y: -2 + }, + { + x: -2, + y: -1 + }, + { + x: -1, + y: -1 + }, + { + x: 0, + y: -1 + }, + { + x: 1, + y: -1 + }, + { + x: 2, + y: -1 + }, + { + x: -3, + y: 0 + }, + { + x: -2, + y: 0 + }, + { + x: -1, + y: 0 + } + ], + [ + { + x: -1, + y: -2 + }, + { + x: 0, + y: -2 + }, + { + x: 1, + y: -2 + }, + { + x: -2, + y: -1 + }, + { + x: -1, + y: -1 + }, + { + x: 0, + y: -1 + }, + { + x: 1, + y: -1 + }, + { + x: -2, + y: 0 + }, + { + x: -1, + y: 0 + } + ], + [ + { + x: -3, + y: -1 + }, + { + x: -2, + y: -1 + }, + { + x: -1, + y: -1 + }, + { + x: 0, + y: -1 + }, + { + x: 1, + y: -1 + }, + { + x: -4, + y: 0 + }, + { + x: -3, + y: 0 + }, + { + x: -2, + y: 0 + }, + { + x: -1, + y: 0 + } + ] + ]; + var RefinementTemplates = [ + { + coding: [ + { + x: 0, + y: -1 + }, + { + x: 1, + y: -1 + }, + { + x: -1, + y: 0 + } + ], + reference: [ + { + x: 0, + y: -1 + }, + { + x: 1, + y: -1 + }, + { + x: -1, + y: 0 + }, + { + x: 0, + y: 0 + }, + { + x: 1, + y: 0 + }, + { + x: -1, + y: 1 + }, + { + x: 0, + y: 1 + }, + { + x: 1, + y: 1 + } + ] + }, + { + coding: [ + { + x: -1, + y: -1 + }, + { + x: 0, + y: -1 + }, + { + x: 1, + y: -1 + }, + { + x: -1, + y: 0 + } + ], + reference: [ + { + x: 0, + y: -1 + }, + { + x: -1, + y: 0 + }, + { + x: 0, + y: 0 + }, + { + x: 1, + y: 0 + }, + { + x: 0, + y: 1 + }, + { + x: 1, + y: 1 + } + ] + } + ]; + var ReusedContexts = [ + 0x9B25, + 0x0795, + 0x00E5, + 0x0195 + ]; + var RefinementReusedContexts = [ + 0x0020, + 0x0008 + ]; + function decodeBitmapTemplate0(width, height, decodingContext) { + var decoder = decodingContext.decoder; + var contexts = decodingContext.contextCache.getContexts('GB'); + var contextLabel, i, j, pixel, row, row1, row2, bitmap = []; + var OLD_PIXEL_MASK = 0x7BF7; + for (i = 0; i < height; i++) { + row = bitmap[i] = new Uint8Array(width); + row1 = i < 1 ? row : bitmap[i - 1]; + row2 = i < 2 ? row : bitmap[i - 2]; + contextLabel = row2[0] << 13 | row2[1] << 12 | row2[2] << 11 | row1[0] << 7 | row1[1] << 6 | row1[2] << 5 | row1[3] << 4; + for (j = 0; j < width; j++) { + row[j] = pixel = decoder.readBit(contexts, contextLabel); + contextLabel = (contextLabel & OLD_PIXEL_MASK) << 1 | (j + 3 < width ? row2[j + 3] << 11 : 0) | (j + 4 < width ? row1[j + 4] << 4 : 0) | pixel; + } + } + return bitmap; + } + function decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at, decodingContext) { + if (mmr) { + error('JBIG2 error: MMR encoding is not supported'); + } + if (templateIndex === 0 && !skip && !prediction && at.length === 4 && at[0].x === 3 && at[0].y === -1 && at[1].x === -3 && at[1].y === -1 && at[2].x === 2 && at[2].y === -2 && at[3].x === -2 && at[3].y === -2) { + return decodeBitmapTemplate0(width, height, decodingContext); + } + var useskip = !!skip; + var template = CodingTemplates[templateIndex].concat(at); + template.sort(function (a, b) { + return a.y - b.y || a.x - b.x; + }); + var templateLength = template.length; + var templateX = new Int8Array(templateLength); + var templateY = new Int8Array(templateLength); + var changingTemplateEntries = []; + var reuseMask = 0, minX = 0, maxX = 0, minY = 0; + var c, k; + for (k = 0; k < templateLength; k++) { + templateX[k] = template[k].x; + templateY[k] = template[k].y; + minX = Math.min(minX, template[k].x); + maxX = Math.max(maxX, template[k].x); + minY = Math.min(minY, template[k].y); + if (k < templateLength - 1 && template[k].y === template[k + 1].y && template[k].x === template[k + 1].x - 1) { + reuseMask |= 1 << templateLength - 1 - k; + } else { + changingTemplateEntries.push(k); + } + } + var changingEntriesLength = changingTemplateEntries.length; + var changingTemplateX = new Int8Array(changingEntriesLength); + var changingTemplateY = new Int8Array(changingEntriesLength); + var changingTemplateBit = new Uint16Array(changingEntriesLength); + for (c = 0; c < changingEntriesLength; c++) { + k = changingTemplateEntries[c]; + changingTemplateX[c] = template[k].x; + changingTemplateY[c] = template[k].y; + changingTemplateBit[c] = 1 << templateLength - 1 - k; + } + var sbb_left = -minX; + var sbb_top = -minY; + var sbb_right = width - maxX; + var pseudoPixelContext = ReusedContexts[templateIndex]; + var row = new Uint8Array(width); + var bitmap = []; + var decoder = decodingContext.decoder; + var contexts = decodingContext.contextCache.getContexts('GB'); + var ltp = 0, j, i0, j0, contextLabel = 0, bit, shift; + for (var i = 0; i < height; i++) { + if (prediction) { + var sltp = decoder.readBit(contexts, pseudoPixelContext); + ltp ^= sltp; + if (ltp) { + bitmap.push(row); + continue; + } + } + row = new Uint8Array(row); + bitmap.push(row); + for (j = 0; j < width; j++) { + if (useskip && skip[i][j]) { + row[j] = 0; + continue; + } + if (j >= sbb_left && j < sbb_right && i >= sbb_top) { + contextLabel = contextLabel << 1 & reuseMask; + for (k = 0; k < changingEntriesLength; k++) { + i0 = i + changingTemplateY[k]; + j0 = j + changingTemplateX[k]; + bit = bitmap[i0][j0]; + if (bit) { + bit = changingTemplateBit[k]; + contextLabel |= bit; + } + } + } else { + contextLabel = 0; + shift = templateLength - 1; + for (k = 0; k < templateLength; k++, shift--) { + j0 = j + templateX[k]; + if (j0 >= 0 && j0 < width) { + i0 = i + templateY[k]; + if (i0 >= 0) { + bit = bitmap[i0][j0]; + if (bit) { + contextLabel |= bit << shift; + } + } + } + } + } + var pixel = decoder.readBit(contexts, contextLabel); + row[j] = pixel; + } + } + return bitmap; + } + function decodeRefinement(width, height, templateIndex, referenceBitmap, offsetX, offsetY, prediction, at, decodingContext) { + var codingTemplate = RefinementTemplates[templateIndex].coding; + if (templateIndex === 0) { + codingTemplate = codingTemplate.concat([at[0]]); + } + var codingTemplateLength = codingTemplate.length; + var codingTemplateX = new Int32Array(codingTemplateLength); + var codingTemplateY = new Int32Array(codingTemplateLength); + var k; + for (k = 0; k < codingTemplateLength; k++) { + codingTemplateX[k] = codingTemplate[k].x; + codingTemplateY[k] = codingTemplate[k].y; + } + var referenceTemplate = RefinementTemplates[templateIndex].reference; + if (templateIndex === 0) { + referenceTemplate = referenceTemplate.concat([at[1]]); + } + var referenceTemplateLength = referenceTemplate.length; + var referenceTemplateX = new Int32Array(referenceTemplateLength); + var referenceTemplateY = new Int32Array(referenceTemplateLength); + for (k = 0; k < referenceTemplateLength; k++) { + referenceTemplateX[k] = referenceTemplate[k].x; + referenceTemplateY[k] = referenceTemplate[k].y; + } + var referenceWidth = referenceBitmap[0].length; + var referenceHeight = referenceBitmap.length; + var pseudoPixelContext = RefinementReusedContexts[templateIndex]; + var bitmap = []; + var decoder = decodingContext.decoder; + var contexts = decodingContext.contextCache.getContexts('GR'); + var ltp = 0; + for (var i = 0; i < height; i++) { + if (prediction) { + var sltp = decoder.readBit(contexts, pseudoPixelContext); + ltp ^= sltp; + if (ltp) { + error('JBIG2 error: prediction is not supported'); + } + } + var row = new Uint8Array(width); + bitmap.push(row); + for (var j = 0; j < width; j++) { + var i0, j0; + var contextLabel = 0; + for (k = 0; k < codingTemplateLength; k++) { + i0 = i + codingTemplateY[k]; + j0 = j + codingTemplateX[k]; + if (i0 < 0 || j0 < 0 || j0 >= width) { + contextLabel <<= 1; + } else { + contextLabel = contextLabel << 1 | bitmap[i0][j0]; + } + } + for (k = 0; k < referenceTemplateLength; k++) { + i0 = i + referenceTemplateY[k] + offsetY; + j0 = j + referenceTemplateX[k] + offsetX; + if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) { + contextLabel <<= 1; + } else { + contextLabel = contextLabel << 1 | referenceBitmap[i0][j0]; + } + } + var pixel = decoder.readBit(contexts, contextLabel); + row[j] = pixel; + } + } + return bitmap; + } + function decodeSymbolDictionary(huffman, refinement, symbols, numberOfNewSymbols, numberOfExportedSymbols, huffmanTables, templateIndex, at, refinementTemplateIndex, refinementAt, decodingContext) { + if (huffman) { + error('JBIG2 error: huffman is not supported'); + } + var newSymbols = []; + var currentHeight = 0; + var symbolCodeLength = log2(symbols.length + numberOfNewSymbols); + var decoder = decodingContext.decoder; + var contextCache = decodingContext.contextCache; + while (newSymbols.length < numberOfNewSymbols) { + var deltaHeight = decodeInteger(contextCache, 'IADH', decoder); + currentHeight += deltaHeight; + var currentWidth = 0; + while (true) { + var deltaWidth = decodeInteger(contextCache, 'IADW', decoder); + if (deltaWidth === null) { + break; + } + currentWidth += deltaWidth; + var bitmap; + if (refinement) { + var numberOfInstances = decodeInteger(contextCache, 'IAAI', decoder); + if (numberOfInstances > 1) { + bitmap = decodeTextRegion(huffman, refinement, currentWidth, currentHeight, 0, numberOfInstances, 1, symbols.concat(newSymbols), symbolCodeLength, 0, 0, 1, 0, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext); + } else { + var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength); + var rdx = decodeInteger(contextCache, 'IARDX', decoder); + var rdy = decodeInteger(contextCache, 'IARDY', decoder); + var symbol = symbolId < symbols.length ? symbols[symbolId] : newSymbols[symbolId - symbols.length]; + bitmap = decodeRefinement(currentWidth, currentHeight, refinementTemplateIndex, symbol, rdx, rdy, false, refinementAt, decodingContext); + } + } else { + bitmap = decodeBitmap(false, currentWidth, currentHeight, templateIndex, false, null, at, decodingContext); + } + newSymbols.push(bitmap); + } + } + var exportedSymbols = []; + var flags = [], currentFlag = false; + var totalSymbolsLength = symbols.length + numberOfNewSymbols; + while (flags.length < totalSymbolsLength) { + var runLength = decodeInteger(contextCache, 'IAEX', decoder); + while (runLength--) { + flags.push(currentFlag); + } + currentFlag = !currentFlag; + } + for (var i = 0, ii = symbols.length; i < ii; i++) { + if (flags[i]) { + exportedSymbols.push(symbols[i]); + } + } + for (var j = 0; j < numberOfNewSymbols; i++, j++) { + if (flags[i]) { + exportedSymbols.push(newSymbols[j]); + } + } + return exportedSymbols; + } + function decodeTextRegion(huffman, refinement, width, height, defaultPixelValue, numberOfSymbolInstances, stripSize, inputSymbols, symbolCodeLength, transposed, dsOffset, referenceCorner, combinationOperator, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext) { + if (huffman) { + error('JBIG2 error: huffman is not supported'); + } + var bitmap = []; + var i, row; + for (i = 0; i < height; i++) { + row = new Uint8Array(width); + if (defaultPixelValue) { + for (var j = 0; j < width; j++) { + row[j] = defaultPixelValue; + } + } + bitmap.push(row); + } + var decoder = decodingContext.decoder; + var contextCache = decodingContext.contextCache; + var stripT = -decodeInteger(contextCache, 'IADT', decoder); + var firstS = 0; + i = 0; + while (i < numberOfSymbolInstances) { + var deltaT = decodeInteger(contextCache, 'IADT', decoder); + stripT += deltaT; + var deltaFirstS = decodeInteger(contextCache, 'IAFS', decoder); + firstS += deltaFirstS; + var currentS = firstS; + do { + var currentT = stripSize === 1 ? 0 : decodeInteger(contextCache, 'IAIT', decoder); + var t = stripSize * stripT + currentT; + var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength); + var applyRefinement = refinement && decodeInteger(contextCache, 'IARI', decoder); + var symbolBitmap = inputSymbols[symbolId]; + var symbolWidth = symbolBitmap[0].length; + var symbolHeight = symbolBitmap.length; + if (applyRefinement) { + var rdw = decodeInteger(contextCache, 'IARDW', decoder); + var rdh = decodeInteger(contextCache, 'IARDH', decoder); + var rdx = decodeInteger(contextCache, 'IARDX', decoder); + var rdy = decodeInteger(contextCache, 'IARDY', decoder); + symbolWidth += rdw; + symbolHeight += rdh; + symbolBitmap = decodeRefinement(symbolWidth, symbolHeight, refinementTemplateIndex, symbolBitmap, (rdw >> 1) + rdx, (rdh >> 1) + rdy, false, refinementAt, decodingContext); + } + var offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight); + var offsetS = currentS - (referenceCorner & 2 ? symbolWidth : 0); + var s2, t2, symbolRow; + if (transposed) { + for (s2 = 0; s2 < symbolHeight; s2++) { + row = bitmap[offsetS + s2]; + if (!row) { + continue; + } + symbolRow = symbolBitmap[s2]; + var maxWidth = Math.min(width - offsetT, symbolWidth); + switch (combinationOperator) { + case 0: + for (t2 = 0; t2 < maxWidth; t2++) { + row[offsetT + t2] |= symbolRow[t2]; + } + break; + case 2: + for (t2 = 0; t2 < maxWidth; t2++) { + row[offsetT + t2] ^= symbolRow[t2]; + } + break; + default: + error('JBIG2 error: operator ' + combinationOperator + ' is not supported'); + } + } + currentS += symbolHeight - 1; + } else { + for (t2 = 0; t2 < symbolHeight; t2++) { + row = bitmap[offsetT + t2]; + if (!row) { + continue; + } + symbolRow = symbolBitmap[t2]; + switch (combinationOperator) { + case 0: + for (s2 = 0; s2 < symbolWidth; s2++) { + row[offsetS + s2] |= symbolRow[s2]; + } + break; + case 2: + for (s2 = 0; s2 < symbolWidth; s2++) { + row[offsetS + s2] ^= symbolRow[s2]; + } + break; + default: + error('JBIG2 error: operator ' + combinationOperator + ' is not supported'); + } + } + currentS += symbolWidth - 1; + } + i++; + var deltaS = decodeInteger(contextCache, 'IADS', decoder); + if (deltaS === null) { + break; + } + currentS += deltaS + dsOffset; + } while (true); + } + return bitmap; + } + function readSegmentHeader(data, start) { + var segmentHeader = {}; + segmentHeader.number = readUint32(data, start); + var flags = data[start + 4]; + var segmentType = flags & 0x3F; + if (!SegmentTypes[segmentType]) { + error('JBIG2 error: invalid segment type: ' + segmentType); + } + segmentHeader.type = segmentType; + segmentHeader.typeName = SegmentTypes[segmentType]; + segmentHeader.deferredNonRetain = !!(flags & 0x80); + var pageAssociationFieldSize = !!(flags & 0x40); + var referredFlags = data[start + 5]; + var referredToCount = referredFlags >> 5 & 7; + var retainBits = [referredFlags & 31]; + var position = start + 6; + if (referredFlags === 7) { + referredToCount = readUint32(data, position - 1) & 0x1FFFFFFF; + position += 3; + var bytes = referredToCount + 7 >> 3; + retainBits[0] = data[position++]; + while (--bytes > 0) { + retainBits.push(data[position++]); + } + } else if (referredFlags === 5 || referredFlags === 6) { + error('JBIG2 error: invalid referred-to flags'); + } + segmentHeader.retainBits = retainBits; + var referredToSegmentNumberSize = segmentHeader.number <= 256 ? 1 : segmentHeader.number <= 65536 ? 2 : 4; + var referredTo = []; + var i, ii; + for (i = 0; i < referredToCount; i++) { + var number = referredToSegmentNumberSize === 1 ? data[position] : referredToSegmentNumberSize === 2 ? readUint16(data, position) : readUint32(data, position); + referredTo.push(number); + position += referredToSegmentNumberSize; + } + segmentHeader.referredTo = referredTo; + if (!pageAssociationFieldSize) { + segmentHeader.pageAssociation = data[position++]; + } else { + segmentHeader.pageAssociation = readUint32(data, position); + position += 4; + } + segmentHeader.length = readUint32(data, position); + position += 4; + if (segmentHeader.length === 0xFFFFFFFF) { + if (segmentType === 38) { + var genericRegionInfo = readRegionSegmentInformation(data, position); + var genericRegionSegmentFlags = data[position + RegionSegmentInformationFieldLength]; + var genericRegionMmr = !!(genericRegionSegmentFlags & 1); + var searchPatternLength = 6; + var searchPattern = new Uint8Array(searchPatternLength); + if (!genericRegionMmr) { + searchPattern[0] = 0xFF; + searchPattern[1] = 0xAC; + } + searchPattern[2] = genericRegionInfo.height >>> 24 & 0xFF; + searchPattern[3] = genericRegionInfo.height >> 16 & 0xFF; + searchPattern[4] = genericRegionInfo.height >> 8 & 0xFF; + searchPattern[5] = genericRegionInfo.height & 0xFF; + for (i = position, ii = data.length; i < ii; i++) { + var j = 0; + while (j < searchPatternLength && searchPattern[j] === data[i + j]) { + j++; + } + if (j === searchPatternLength) { + segmentHeader.length = i + searchPatternLength; + break; + } + } + if (segmentHeader.length === 0xFFFFFFFF) { + error('JBIG2 error: segment end was not found'); + } + } else { + error('JBIG2 error: invalid unknown segment length'); + } + } + segmentHeader.headerEnd = position; + return segmentHeader; + } + function readSegments(header, data, start, end) { + var segments = []; + var position = start; + while (position < end) { + var segmentHeader = readSegmentHeader(data, position); + position = segmentHeader.headerEnd; + var segment = { + header: segmentHeader, + data: data + }; + if (!header.randomAccess) { + segment.start = position; + position += segmentHeader.length; + segment.end = position; + } + segments.push(segment); + if (segmentHeader.type === 51) { + break; + } + } + if (header.randomAccess) { + for (var i = 0, ii = segments.length; i < ii; i++) { + segments[i].start = position; + position += segments[i].header.length; + segments[i].end = position; + } + } + return segments; + } + function readRegionSegmentInformation(data, start) { + return { + width: readUint32(data, start), + height: readUint32(data, start + 4), + x: readUint32(data, start + 8), + y: readUint32(data, start + 12), + combinationOperator: data[start + 16] & 7 + }; + } + var RegionSegmentInformationFieldLength = 17; + function processSegment(segment, visitor) { + var header = segment.header; + var data = segment.data, position = segment.start, end = segment.end; + var args, at, i, atLength; + switch (header.type) { + case 0: + var dictionary = {}; + var dictionaryFlags = readUint16(data, position); + dictionary.huffman = !!(dictionaryFlags & 1); + dictionary.refinement = !!(dictionaryFlags & 2); + dictionary.huffmanDHSelector = dictionaryFlags >> 2 & 3; + dictionary.huffmanDWSelector = dictionaryFlags >> 4 & 3; + dictionary.bitmapSizeSelector = dictionaryFlags >> 6 & 1; + dictionary.aggregationInstancesSelector = dictionaryFlags >> 7 & 1; + dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256); + dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512); + dictionary.template = dictionaryFlags >> 10 & 3; + dictionary.refinementTemplate = dictionaryFlags >> 12 & 1; + position += 2; + if (!dictionary.huffman) { + atLength = dictionary.template === 0 ? 4 : 1; + at = []; + for (i = 0; i < atLength; i++) { + at.push({ + x: readInt8(data, position), + y: readInt8(data, position + 1) + }); + position += 2; + } + dictionary.at = at; + } + if (dictionary.refinement && !dictionary.refinementTemplate) { + at = []; + for (i = 0; i < 2; i++) { + at.push({ + x: readInt8(data, position), + y: readInt8(data, position + 1) + }); + position += 2; + } + dictionary.refinementAt = at; + } + dictionary.numberOfExportedSymbols = readUint32(data, position); + position += 4; + dictionary.numberOfNewSymbols = readUint32(data, position); + position += 4; + args = [ + dictionary, + header.number, + header.referredTo, + data, + position, + end + ]; + break; + case 6: + case 7: + var textRegion = {}; + textRegion.info = readRegionSegmentInformation(data, position); + position += RegionSegmentInformationFieldLength; + var textRegionSegmentFlags = readUint16(data, position); + position += 2; + textRegion.huffman = !!(textRegionSegmentFlags & 1); + textRegion.refinement = !!(textRegionSegmentFlags & 2); + textRegion.stripSize = 1 << (textRegionSegmentFlags >> 2 & 3); + textRegion.referenceCorner = textRegionSegmentFlags >> 4 & 3; + textRegion.transposed = !!(textRegionSegmentFlags & 64); + textRegion.combinationOperator = textRegionSegmentFlags >> 7 & 3; + textRegion.defaultPixelValue = textRegionSegmentFlags >> 9 & 1; + textRegion.dsOffset = textRegionSegmentFlags << 17 >> 27; + textRegion.refinementTemplate = textRegionSegmentFlags >> 15 & 1; + if (textRegion.huffman) { + var textRegionHuffmanFlags = readUint16(data, position); + position += 2; + textRegion.huffmanFS = textRegionHuffmanFlags & 3; + textRegion.huffmanDS = textRegionHuffmanFlags >> 2 & 3; + textRegion.huffmanDT = textRegionHuffmanFlags >> 4 & 3; + textRegion.huffmanRefinementDW = textRegionHuffmanFlags >> 6 & 3; + textRegion.huffmanRefinementDH = textRegionHuffmanFlags >> 8 & 3; + textRegion.huffmanRefinementDX = textRegionHuffmanFlags >> 10 & 3; + textRegion.huffmanRefinementDY = textRegionHuffmanFlags >> 12 & 3; + textRegion.huffmanRefinementSizeSelector = !!(textRegionHuffmanFlags & 14); + } + if (textRegion.refinement && !textRegion.refinementTemplate) { + at = []; + for (i = 0; i < 2; i++) { + at.push({ + x: readInt8(data, position), + y: readInt8(data, position + 1) + }); + position += 2; + } + textRegion.refinementAt = at; + } + textRegion.numberOfSymbolInstances = readUint32(data, position); + position += 4; + if (textRegion.huffman) { + error('JBIG2 error: huffman is not supported'); + } + args = [ + textRegion, + header.referredTo, + data, + position, + end + ]; + break; + case 38: + case 39: + var genericRegion = {}; + genericRegion.info = readRegionSegmentInformation(data, position); + position += RegionSegmentInformationFieldLength; + var genericRegionSegmentFlags = data[position++]; + genericRegion.mmr = !!(genericRegionSegmentFlags & 1); + genericRegion.template = genericRegionSegmentFlags >> 1 & 3; + genericRegion.prediction = !!(genericRegionSegmentFlags & 8); + if (!genericRegion.mmr) { + atLength = genericRegion.template === 0 ? 4 : 1; + at = []; + for (i = 0; i < atLength; i++) { + at.push({ + x: readInt8(data, position), + y: readInt8(data, position + 1) + }); + position += 2; + } + genericRegion.at = at; + } + args = [ + genericRegion, + data, + position, + end + ]; + break; + case 48: + var pageInfo = { + width: readUint32(data, position), + height: readUint32(data, position + 4), + resolutionX: readUint32(data, position + 8), + resolutionY: readUint32(data, position + 12) + }; + if (pageInfo.height === 0xFFFFFFFF) { + delete pageInfo.height; + } + var pageSegmentFlags = data[position + 16]; + readUint16(data, position + 17); + pageInfo.lossless = !!(pageSegmentFlags & 1); + pageInfo.refinement = !!(pageSegmentFlags & 2); + pageInfo.defaultPixelValue = pageSegmentFlags >> 2 & 1; + pageInfo.combinationOperator = pageSegmentFlags >> 3 & 3; + pageInfo.requiresBuffer = !!(pageSegmentFlags & 32); + pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64); + args = [pageInfo]; + break; + case 49: + break; + case 50: + break; + case 51: + break; + case 62: + break; + default: + error('JBIG2 error: segment type ' + header.typeName + '(' + header.type + ') is not implemented'); + } + var callbackName = 'on' + header.typeName; + if (callbackName in visitor) { + visitor[callbackName].apply(visitor, args); + } + } + function processSegments(segments, visitor) { + for (var i = 0, ii = segments.length; i < ii; i++) { + processSegment(segments[i], visitor); + } + } + function parseJbig2(data, start, end) { + var position = start; + if (data[position] !== 0x97 || data[position + 1] !== 0x4A || data[position + 2] !== 0x42 || data[position + 3] !== 0x32 || data[position + 4] !== 0x0D || data[position + 5] !== 0x0A || data[position + 6] !== 0x1A || data[position + 7] !== 0x0A) { + error('JBIG2 error: invalid header'); + } + var header = {}; + position += 8; + var flags = data[position++]; + header.randomAccess = !(flags & 1); + if (!(flags & 2)) { + header.numberOfPages = readUint32(data, position); + position += 4; + } + readSegments(header, data, position, end); + error('Not implemented'); + } + function parseJbig2Chunks(chunks) { + var visitor = new SimpleSegmentVisitor(); + for (var i = 0, ii = chunks.length; i < ii; i++) { + var chunk = chunks[i]; + var segments = readSegments({}, chunk.data, chunk.start, chunk.end); + processSegments(segments, visitor); + } + return visitor.buffer; + } + function SimpleSegmentVisitor() { + } + SimpleSegmentVisitor.prototype = { + onPageInformation: function SimpleSegmentVisitor_onPageInformation(info) { + this.currentPageInfo = info; + var rowSize = info.width + 7 >> 3; + var buffer = new Uint8Array(rowSize * info.height); + if (info.defaultPixelValue) { + for (var i = 0, ii = buffer.length; i < ii; i++) { + buffer[i] = 0xFF; + } + } + this.buffer = buffer; + }, + drawBitmap: function SimpleSegmentVisitor_drawBitmap(regionInfo, bitmap) { + var pageInfo = this.currentPageInfo; + var width = regionInfo.width, height = regionInfo.height; + var rowSize = pageInfo.width + 7 >> 3; + var combinationOperator = pageInfo.combinationOperatorOverride ? regionInfo.combinationOperator : pageInfo.combinationOperator; + var buffer = this.buffer; + var mask0 = 128 >> (regionInfo.x & 7); + var offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3); + var i, j, mask, offset; + switch (combinationOperator) { + case 0: + for (i = 0; i < height; i++) { + mask = mask0; + offset = offset0; + for (j = 0; j < width; j++) { + if (bitmap[i][j]) { + buffer[offset] |= mask; + } + mask >>= 1; + if (!mask) { + mask = 128; + offset++; + } + } + offset0 += rowSize; + } + break; + case 2: + for (i = 0; i < height; i++) { + mask = mask0; + offset = offset0; + for (j = 0; j < width; j++) { + if (bitmap[i][j]) { + buffer[offset] ^= mask; + } + mask >>= 1; + if (!mask) { + mask = 128; + offset++; + } + } + offset0 += rowSize; + } + break; + default: + error('JBIG2 error: operator ' + combinationOperator + ' is not supported'); + } + }, + onImmediateGenericRegion: function SimpleSegmentVisitor_onImmediateGenericRegion(region, data, start, end) { + var regionInfo = region.info; + var decodingContext = new DecodingContext(data, start, end); + var bitmap = decodeBitmap(region.mmr, regionInfo.width, regionInfo.height, region.template, region.prediction, null, region.at, decodingContext); + this.drawBitmap(regionInfo, bitmap); + }, + onImmediateLosslessGenericRegion: function SimpleSegmentVisitor_onImmediateLosslessGenericRegion() { + this.onImmediateGenericRegion.apply(this, arguments); + }, + onSymbolDictionary: function SimpleSegmentVisitor_onSymbolDictionary(dictionary, currentSegment, referredSegments, data, start, end) { + var huffmanTables; + if (dictionary.huffman) { + error('JBIG2 error: huffman is not supported'); + } + var symbols = this.symbols; + if (!symbols) { + this.symbols = symbols = {}; + } + var inputSymbols = []; + for (var i = 0, ii = referredSegments.length; i < ii; i++) { + inputSymbols = inputSymbols.concat(symbols[referredSegments[i]]); + } + var decodingContext = new DecodingContext(data, start, end); + symbols[currentSegment] = decodeSymbolDictionary(dictionary.huffman, dictionary.refinement, inputSymbols, dictionary.numberOfNewSymbols, dictionary.numberOfExportedSymbols, huffmanTables, dictionary.template, dictionary.at, dictionary.refinementTemplate, dictionary.refinementAt, decodingContext); + }, + onImmediateTextRegion: function SimpleSegmentVisitor_onImmediateTextRegion(region, referredSegments, data, start, end) { + var regionInfo = region.info; + var huffmanTables; + var symbols = this.symbols; + var inputSymbols = []; + for (var i = 0, ii = referredSegments.length; i < ii; i++) { + inputSymbols = inputSymbols.concat(symbols[referredSegments[i]]); + } + var symbolCodeLength = log2(inputSymbols.length); + var decodingContext = new DecodingContext(data, start, end); + var bitmap = decodeTextRegion(region.huffman, region.refinement, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.numberOfSymbolInstances, region.stripSize, inputSymbols, symbolCodeLength, region.transposed, region.dsOffset, region.referenceCorner, region.combinationOperator, huffmanTables, region.refinementTemplate, region.refinementAt, decodingContext); + this.drawBitmap(regionInfo, bitmap); + }, + onImmediateLosslessTextRegion: function SimpleSegmentVisitor_onImmediateLosslessTextRegion() { + this.onImmediateTextRegion.apply(this, arguments); + } + }; + function Jbig2Image() { + } + Jbig2Image.prototype = { + parseChunks: function Jbig2Image_parseChunks(chunks) { + return parseJbig2Chunks(chunks); + } + }; + return Jbig2Image; +}(); +exports.Jbig2Image = Jbig2Image; + +/***/ }), +/* 29 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var error = sharedUtil.error; +var JpegImage = function JpegImageClosure() { + var dctZigZag = new Uint8Array([ + 0, + 1, + 8, + 16, + 9, + 2, + 3, + 10, + 17, + 24, + 32, + 25, + 18, + 11, + 4, + 5, + 12, + 19, + 26, + 33, + 40, + 48, + 41, + 34, + 27, + 20, + 13, + 6, + 7, + 14, + 21, + 28, + 35, + 42, + 49, + 56, + 57, + 50, + 43, + 36, + 29, + 22, + 15, + 23, + 30, + 37, + 44, + 51, + 58, + 59, + 52, + 45, + 38, + 31, + 39, + 46, + 53, + 60, + 61, + 54, + 47, + 55, + 62, + 63 + ]); + var dctCos1 = 4017; + var dctSin1 = 799; + var dctCos3 = 3406; + var dctSin3 = 2276; + var dctCos6 = 1567; + var dctSin6 = 3784; + var dctSqrt2 = 5793; + var dctSqrt1d2 = 2896; + function JpegImage() { + this.decodeTransform = null; + this.colorTransform = -1; + } + function buildHuffmanTable(codeLengths, values) { + var k = 0, code = [], i, j, length = 16; + while (length > 0 && !codeLengths[length - 1]) { + length--; + } + code.push({ + children: [], + index: 0 + }); + var p = code[0], q; + for (i = 0; i < length; i++) { + for (j = 0; j < codeLengths[i]; j++) { + p = code.pop(); + p.children[p.index] = values[k]; + while (p.index > 0) { + p = code.pop(); + } + p.index++; + code.push(p); + while (code.length <= i) { + code.push(q = { + children: [], + index: 0 + }); + p.children[p.index] = q.children; + p = q; + } + k++; + } + if (i + 1 < length) { + code.push(q = { + children: [], + index: 0 + }); + p.children[p.index] = q.children; + p = q; + } + } + return code[0].children; + } + function getBlockBufferOffset(component, row, col) { + return 64 * ((component.blocksPerLine + 1) * row + col); + } + function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive) { + var mcusPerLine = frame.mcusPerLine; + var progressive = frame.progressive; + var startOffset = offset, bitsData = 0, bitsCount = 0; + function readBit() { + if (bitsCount > 0) { + bitsCount--; + return bitsData >> bitsCount & 1; + } + bitsData = data[offset++]; + if (bitsData === 0xFF) { + var nextByte = data[offset++]; + if (nextByte) { + error('JPEG error: unexpected marker ' + (bitsData << 8 | nextByte).toString(16)); + } + } + bitsCount = 7; + return bitsData >>> 7; + } + function decodeHuffman(tree) { + var node = tree; + while (true) { + node = node[readBit()]; + if (typeof node === 'number') { + return node; + } + if (typeof node !== 'object') { + error('JPEG error: invalid huffman sequence'); + } + } + } + function receive(length) { + var n = 0; + while (length > 0) { + n = n << 1 | readBit(); + length--; + } + return n; + } + function receiveAndExtend(length) { + if (length === 1) { + return readBit() === 1 ? 1 : -1; + } + var n = receive(length); + if (n >= 1 << length - 1) { + return n; + } + return n + (-1 << length) + 1; + } + function decodeBaseline(component, offset) { + var t = decodeHuffman(component.huffmanTableDC); + var diff = t === 0 ? 0 : receiveAndExtend(t); + component.blockData[offset] = component.pred += diff; + var k = 1; + while (k < 64) { + var rs = decodeHuffman(component.huffmanTableAC); + var s = rs & 15, r = rs >> 4; + if (s === 0) { + if (r < 15) { + break; + } + k += 16; + continue; + } + k += r; + var z = dctZigZag[k]; + component.blockData[offset + z] = receiveAndExtend(s); + k++; + } + } + function decodeDCFirst(component, offset) { + var t = decodeHuffman(component.huffmanTableDC); + var diff = t === 0 ? 0 : receiveAndExtend(t) << successive; + component.blockData[offset] = component.pred += diff; + } + function decodeDCSuccessive(component, offset) { + component.blockData[offset] |= readBit() << successive; + } + var eobrun = 0; + function decodeACFirst(component, offset) { + if (eobrun > 0) { + eobrun--; + return; + } + var k = spectralStart, e = spectralEnd; + while (k <= e) { + var rs = decodeHuffman(component.huffmanTableAC); + var s = rs & 15, r = rs >> 4; + if (s === 0) { + if (r < 15) { + eobrun = receive(r) + (1 << r) - 1; + break; + } + k += 16; + continue; + } + k += r; + var z = dctZigZag[k]; + component.blockData[offset + z] = receiveAndExtend(s) * (1 << successive); + k++; + } + } + var successiveACState = 0, successiveACNextValue; + function decodeACSuccessive(component, offset) { + var k = spectralStart; + var e = spectralEnd; + var r = 0; + var s; + var rs; + while (k <= e) { + var z = dctZigZag[k]; + switch (successiveACState) { + case 0: + rs = decodeHuffman(component.huffmanTableAC); + s = rs & 15; + r = rs >> 4; + if (s === 0) { + if (r < 15) { + eobrun = receive(r) + (1 << r); + successiveACState = 4; + } else { + r = 16; + successiveACState = 1; + } + } else { + if (s !== 1) { + error('JPEG error: invalid ACn encoding'); + } + successiveACNextValue = receiveAndExtend(s); + successiveACState = r ? 2 : 3; + } + continue; + case 1: + case 2: + if (component.blockData[offset + z]) { + component.blockData[offset + z] += readBit() << successive; + } else { + r--; + if (r === 0) { + successiveACState = successiveACState === 2 ? 3 : 0; + } + } + break; + case 3: + if (component.blockData[offset + z]) { + component.blockData[offset + z] += readBit() << successive; + } else { + component.blockData[offset + z] = successiveACNextValue << successive; + successiveACState = 0; + } + break; + case 4: + if (component.blockData[offset + z]) { + component.blockData[offset + z] += readBit() << successive; + } + break; + } + k++; + } + if (successiveACState === 4) { + eobrun--; + if (eobrun === 0) { + successiveACState = 0; + } + } + } + function decodeMcu(component, decode, mcu, row, col) { + var mcuRow = mcu / mcusPerLine | 0; + var mcuCol = mcu % mcusPerLine; + var blockRow = mcuRow * component.v + row; + var blockCol = mcuCol * component.h + col; + var offset = getBlockBufferOffset(component, blockRow, blockCol); + decode(component, offset); + } + function decodeBlock(component, decode, mcu) { + var blockRow = mcu / component.blocksPerLine | 0; + var blockCol = mcu % component.blocksPerLine; + var offset = getBlockBufferOffset(component, blockRow, blockCol); + decode(component, offset); + } + var componentsLength = components.length; + var component, i, j, k, n; + var decodeFn; + if (progressive) { + if (spectralStart === 0) { + decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive; + } else { + decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive; + } + } else { + decodeFn = decodeBaseline; + } + var mcu = 0, marker; + var mcuExpected; + if (componentsLength === 1) { + mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn; + } else { + mcuExpected = mcusPerLine * frame.mcusPerColumn; + } + if (!resetInterval) { + resetInterval = mcuExpected; + } + var h, v; + while (mcu < mcuExpected) { + for (i = 0; i < componentsLength; i++) { + components[i].pred = 0; + } + eobrun = 0; + if (componentsLength === 1) { + component = components[0]; + for (n = 0; n < resetInterval; n++) { + decodeBlock(component, decodeFn, mcu); + mcu++; + } + } else { + for (n = 0; n < resetInterval; n++) { + for (i = 0; i < componentsLength; i++) { + component = components[i]; + h = component.h; + v = component.v; + for (j = 0; j < v; j++) { + for (k = 0; k < h; k++) { + decodeMcu(component, decodeFn, mcu, j, k); + } + } + } + mcu++; + } + } + bitsCount = 0; + marker = data[offset] << 8 | data[offset + 1]; + while (data[offset] === 0x00 && offset < data.length - 1) { + offset++; + marker = data[offset] << 8 | data[offset + 1]; + } + if (marker <= 0xFF00) { + error('JPEG error: marker was not found'); + } + if (marker >= 0xFFD0 && marker <= 0xFFD7) { + offset += 2; + } else { + break; + } + } + return offset - startOffset; + } + function quantizeAndInverse(component, blockBufferOffset, p) { + var qt = component.quantizationTable, blockData = component.blockData; + var v0, v1, v2, v3, v4, v5, v6, v7; + var p0, p1, p2, p3, p4, p5, p6, p7; + var t; + if (!qt) { + error('JPEG error: missing required Quantization Table.'); + } + for (var row = 0; row < 64; row += 8) { + p0 = blockData[blockBufferOffset + row]; + p1 = blockData[blockBufferOffset + row + 1]; + p2 = blockData[blockBufferOffset + row + 2]; + p3 = blockData[blockBufferOffset + row + 3]; + p4 = blockData[blockBufferOffset + row + 4]; + p5 = blockData[blockBufferOffset + row + 5]; + p6 = blockData[blockBufferOffset + row + 6]; + p7 = blockData[blockBufferOffset + row + 7]; + p0 *= qt[row]; + if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) { + t = dctSqrt2 * p0 + 512 >> 10; + p[row] = t; + p[row + 1] = t; + p[row + 2] = t; + p[row + 3] = t; + p[row + 4] = t; + p[row + 5] = t; + p[row + 6] = t; + p[row + 7] = t; + continue; + } + p1 *= qt[row + 1]; + p2 *= qt[row + 2]; + p3 *= qt[row + 3]; + p4 *= qt[row + 4]; + p5 *= qt[row + 5]; + p6 *= qt[row + 6]; + p7 *= qt[row + 7]; + v0 = dctSqrt2 * p0 + 128 >> 8; + v1 = dctSqrt2 * p4 + 128 >> 8; + v2 = p2; + v3 = p6; + v4 = dctSqrt1d2 * (p1 - p7) + 128 >> 8; + v7 = dctSqrt1d2 * (p1 + p7) + 128 >> 8; + v5 = p3 << 4; + v6 = p5 << 4; + v0 = v0 + v1 + 1 >> 1; + v1 = v0 - v1; + t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8; + v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8; + v3 = t; + v4 = v4 + v6 + 1 >> 1; + v6 = v4 - v6; + v7 = v7 + v5 + 1 >> 1; + v5 = v7 - v5; + v0 = v0 + v3 + 1 >> 1; + v3 = v0 - v3; + v1 = v1 + v2 + 1 >> 1; + v2 = v1 - v2; + t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12; + v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12; + v7 = t; + t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12; + v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12; + v6 = t; + p[row] = v0 + v7; + p[row + 7] = v0 - v7; + p[row + 1] = v1 + v6; + p[row + 6] = v1 - v6; + p[row + 2] = v2 + v5; + p[row + 5] = v2 - v5; + p[row + 3] = v3 + v4; + p[row + 4] = v3 - v4; + } + for (var col = 0; col < 8; ++col) { + p0 = p[col]; + p1 = p[col + 8]; + p2 = p[col + 16]; + p3 = p[col + 24]; + p4 = p[col + 32]; + p5 = p[col + 40]; + p6 = p[col + 48]; + p7 = p[col + 56]; + if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) { + t = dctSqrt2 * p0 + 8192 >> 14; + t = t < -2040 ? 0 : t >= 2024 ? 255 : t + 2056 >> 4; + blockData[blockBufferOffset + col] = t; + blockData[blockBufferOffset + col + 8] = t; + blockData[blockBufferOffset + col + 16] = t; + blockData[blockBufferOffset + col + 24] = t; + blockData[blockBufferOffset + col + 32] = t; + blockData[blockBufferOffset + col + 40] = t; + blockData[blockBufferOffset + col + 48] = t; + blockData[blockBufferOffset + col + 56] = t; + continue; + } + v0 = dctSqrt2 * p0 + 2048 >> 12; + v1 = dctSqrt2 * p4 + 2048 >> 12; + v2 = p2; + v3 = p6; + v4 = dctSqrt1d2 * (p1 - p7) + 2048 >> 12; + v7 = dctSqrt1d2 * (p1 + p7) + 2048 >> 12; + v5 = p3; + v6 = p5; + v0 = (v0 + v1 + 1 >> 1) + 4112; + v1 = v0 - v1; + t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12; + v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12; + v3 = t; + v4 = v4 + v6 + 1 >> 1; + v6 = v4 - v6; + v7 = v7 + v5 + 1 >> 1; + v5 = v7 - v5; + v0 = v0 + v3 + 1 >> 1; + v3 = v0 - v3; + v1 = v1 + v2 + 1 >> 1; + v2 = v1 - v2; + t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12; + v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12; + v7 = t; + t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12; + v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12; + v6 = t; + p0 = v0 + v7; + p7 = v0 - v7; + p1 = v1 + v6; + p6 = v1 - v6; + p2 = v2 + v5; + p5 = v2 - v5; + p3 = v3 + v4; + p4 = v3 - v4; + p0 = p0 < 16 ? 0 : p0 >= 4080 ? 255 : p0 >> 4; + p1 = p1 < 16 ? 0 : p1 >= 4080 ? 255 : p1 >> 4; + p2 = p2 < 16 ? 0 : p2 >= 4080 ? 255 : p2 >> 4; + p3 = p3 < 16 ? 0 : p3 >= 4080 ? 255 : p3 >> 4; + p4 = p4 < 16 ? 0 : p4 >= 4080 ? 255 : p4 >> 4; + p5 = p5 < 16 ? 0 : p5 >= 4080 ? 255 : p5 >> 4; + p6 = p6 < 16 ? 0 : p6 >= 4080 ? 255 : p6 >> 4; + p7 = p7 < 16 ? 0 : p7 >= 4080 ? 255 : p7 >> 4; + blockData[blockBufferOffset + col] = p0; + blockData[blockBufferOffset + col + 8] = p1; + blockData[blockBufferOffset + col + 16] = p2; + blockData[blockBufferOffset + col + 24] = p3; + blockData[blockBufferOffset + col + 32] = p4; + blockData[blockBufferOffset + col + 40] = p5; + blockData[blockBufferOffset + col + 48] = p6; + blockData[blockBufferOffset + col + 56] = p7; + } + } + function buildComponentData(frame, component) { + var blocksPerLine = component.blocksPerLine; + var blocksPerColumn = component.blocksPerColumn; + var computationBuffer = new Int16Array(64); + for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { + for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { + var offset = getBlockBufferOffset(component, blockRow, blockCol); + quantizeAndInverse(component, offset, computationBuffer); + } + } + return component.blockData; + } + function clamp0to255(a) { + return a <= 0 ? 0 : a >= 255 ? 255 : a; + } + JpegImage.prototype = { + parse: function parse(data) { + function readUint16() { + var value = data[offset] << 8 | data[offset + 1]; + offset += 2; + return value; + } + function readDataBlock() { + var length = readUint16(); + var array = data.subarray(offset, offset + length - 2); + offset += array.length; + return array; + } + function prepareComponents(frame) { + var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH); + var mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV); + for (var i = 0; i < frame.components.length; i++) { + component = frame.components[i]; + var blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / frame.maxH); + var blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / frame.maxV); + var blocksPerLineForMcu = mcusPerLine * component.h; + var blocksPerColumnForMcu = mcusPerColumn * component.v; + var blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1); + component.blockData = new Int16Array(blocksBufferSize); + component.blocksPerLine = blocksPerLine; + component.blocksPerColumn = blocksPerColumn; + } + frame.mcusPerLine = mcusPerLine; + frame.mcusPerColumn = mcusPerColumn; + } + var offset = 0; + var jfif = null; + var adobe = null; + var frame, resetInterval; + var quantizationTables = []; + var huffmanTablesAC = [], huffmanTablesDC = []; + var fileMarker = readUint16(); + if (fileMarker !== 0xFFD8) { + error('JPEG error: SOI not found'); + } + fileMarker = readUint16(); + while (fileMarker !== 0xFFD9) { + var i, j, l; + switch (fileMarker) { + case 0xFFE0: + case 0xFFE1: + case 0xFFE2: + case 0xFFE3: + case 0xFFE4: + case 0xFFE5: + case 0xFFE6: + case 0xFFE7: + case 0xFFE8: + case 0xFFE9: + case 0xFFEA: + case 0xFFEB: + case 0xFFEC: + case 0xFFED: + case 0xFFEE: + case 0xFFEF: + case 0xFFFE: + var appData = readDataBlock(); + if (fileMarker === 0xFFE0) { + if (appData[0] === 0x4A && appData[1] === 0x46 && appData[2] === 0x49 && appData[3] === 0x46 && appData[4] === 0) { + jfif = { + version: { + major: appData[5], + minor: appData[6] + }, + densityUnits: appData[7], + xDensity: appData[8] << 8 | appData[9], + yDensity: appData[10] << 8 | appData[11], + thumbWidth: appData[12], + thumbHeight: appData[13], + thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13]) + }; + } + } + if (fileMarker === 0xFFEE) { + if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6F && appData[3] === 0x62 && appData[4] === 0x65) { + adobe = { + version: appData[5] << 8 | appData[6], + flags0: appData[7] << 8 | appData[8], + flags1: appData[9] << 8 | appData[10], + transformCode: appData[11] + }; + } + } + break; + case 0xFFDB: + var quantizationTablesLength = readUint16(); + var quantizationTablesEnd = quantizationTablesLength + offset - 2; + var z; + while (offset < quantizationTablesEnd) { + var quantizationTableSpec = data[offset++]; + var tableData = new Uint16Array(64); + if (quantizationTableSpec >> 4 === 0) { + for (j = 0; j < 64; j++) { + z = dctZigZag[j]; + tableData[z] = data[offset++]; + } + } else if (quantizationTableSpec >> 4 === 1) { + for (j = 0; j < 64; j++) { + z = dctZigZag[j]; + tableData[z] = readUint16(); + } + } else { + error('JPEG error: DQT - invalid table spec'); + } + quantizationTables[quantizationTableSpec & 15] = tableData; + } + break; + case 0xFFC0: + case 0xFFC1: + case 0xFFC2: + if (frame) { + error('JPEG error: Only single frame JPEGs supported'); + } + readUint16(); + frame = {}; + frame.extended = fileMarker === 0xFFC1; + frame.progressive = fileMarker === 0xFFC2; + frame.precision = data[offset++]; + frame.scanLines = readUint16(); + frame.samplesPerLine = readUint16(); + frame.components = []; + frame.componentIds = {}; + var componentsCount = data[offset++], componentId; + var maxH = 0, maxV = 0; + for (i = 0; i < componentsCount; i++) { + componentId = data[offset]; + var h = data[offset + 1] >> 4; + var v = data[offset + 1] & 15; + if (maxH < h) { + maxH = h; + } + if (maxV < v) { + maxV = v; + } + var qId = data[offset + 2]; + l = frame.components.push({ + h: h, + v: v, + quantizationId: qId, + quantizationTable: null + }); + frame.componentIds[componentId] = l - 1; + offset += 3; + } + frame.maxH = maxH; + frame.maxV = maxV; + prepareComponents(frame); + break; + case 0xFFC4: + var huffmanLength = readUint16(); + for (i = 2; i < huffmanLength;) { + var huffmanTableSpec = data[offset++]; + var codeLengths = new Uint8Array(16); + var codeLengthSum = 0; + for (j = 0; j < 16; j++, offset++) { + codeLengthSum += codeLengths[j] = data[offset]; + } + var huffmanValues = new Uint8Array(codeLengthSum); + for (j = 0; j < codeLengthSum; j++, offset++) { + huffmanValues[j] = data[offset]; + } + i += 17 + codeLengthSum; + (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues); + } + break; + case 0xFFDD: + readUint16(); + resetInterval = readUint16(); + break; + case 0xFFDA: + readUint16(); + var selectorsCount = data[offset++]; + var components = [], component; + for (i = 0; i < selectorsCount; i++) { + var componentIndex = frame.componentIds[data[offset++]]; + component = frame.components[componentIndex]; + var tableSpec = data[offset++]; + component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4]; + component.huffmanTableAC = huffmanTablesAC[tableSpec & 15]; + components.push(component); + } + var spectralStart = data[offset++]; + var spectralEnd = data[offset++]; + var successiveApproximation = data[offset++]; + var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15); + offset += processed; + break; + case 0xFFFF: + if (data[offset] !== 0xFF) { + offset--; + } + break; + default: + if (data[offset - 3] === 0xFF && data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) { + offset -= 3; + break; + } + error('JPEG error: unknown marker ' + fileMarker.toString(16)); + } + fileMarker = readUint16(); + } + this.width = frame.samplesPerLine; + this.height = frame.scanLines; + this.jfif = jfif; + this.adobe = adobe; + this.components = []; + for (i = 0; i < frame.components.length; i++) { + component = frame.components[i]; + var quantizationTable = quantizationTables[component.quantizationId]; + if (quantizationTable) { + component.quantizationTable = quantizationTable; + } + this.components.push({ + output: buildComponentData(frame, component), + scaleX: component.h / frame.maxH, + scaleY: component.v / frame.maxV, + blocksPerLine: component.blocksPerLine, + blocksPerColumn: component.blocksPerColumn + }); + } + this.numComponents = this.components.length; + }, + _getLinearizedBlockData: function getLinearizedBlockData(width, height) { + var scaleX = this.width / width, scaleY = this.height / height; + var component, componentScaleX, componentScaleY, blocksPerScanline; + var x, y, i, j, k; + var index; + var offset = 0; + var output; + var numComponents = this.components.length; + var dataLength = width * height * numComponents; + var data = new Uint8Array(dataLength); + var xScaleBlockOffset = new Uint32Array(width); + var mask3LSB = 0xfffffff8; + for (i = 0; i < numComponents; i++) { + component = this.components[i]; + componentScaleX = component.scaleX * scaleX; + componentScaleY = component.scaleY * scaleY; + offset = i; + output = component.output; + blocksPerScanline = component.blocksPerLine + 1 << 3; + for (x = 0; x < width; x++) { + j = 0 | x * componentScaleX; + xScaleBlockOffset[x] = (j & mask3LSB) << 3 | j & 7; + } + for (y = 0; y < height; y++) { + j = 0 | y * componentScaleY; + index = blocksPerScanline * (j & mask3LSB) | (j & 7) << 3; + for (x = 0; x < width; x++) { + data[offset] = output[index + xScaleBlockOffset[x]]; + offset += numComponents; + } + } + } + var transform = this.decodeTransform; + if (transform) { + for (i = 0; i < dataLength;) { + for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) { + data[i] = (data[i] * transform[k] >> 8) + transform[k + 1]; + } + } + } + return data; + }, + _isColorConversionNeeded: function isColorConversionNeeded() { + if (this.adobe && this.adobe.transformCode) { + return true; + } else if (this.numComponents === 3) { + if (!this.adobe && this.colorTransform === 0) { + return false; + } + return true; + } + if (!this.adobe && this.colorTransform === 1) { + return true; + } + return false; + }, + _convertYccToRgb: function convertYccToRgb(data) { + var Y, Cb, Cr; + for (var i = 0, length = data.length; i < length; i += 3) { + Y = data[i]; + Cb = data[i + 1]; + Cr = data[i + 2]; + data[i] = clamp0to255(Y - 179.456 + 1.402 * Cr); + data[i + 1] = clamp0to255(Y + 135.459 - 0.344 * Cb - 0.714 * Cr); + data[i + 2] = clamp0to255(Y - 226.816 + 1.772 * Cb); + } + return data; + }, + _convertYcckToRgb: function convertYcckToRgb(data) { + var Y, Cb, Cr, k; + var offset = 0; + for (var i = 0, length = data.length; i < length; i += 4) { + Y = data[i]; + Cb = data[i + 1]; + Cr = data[i + 2]; + k = data[i + 3]; + var r = -122.67195406894 + Cb * (-6.60635669420364e-5 * Cb + 0.000437130475926232 * Cr - 5.4080610064599e-5 * Y + 0.00048449797120281 * k - 0.154362151871126) + Cr * (-0.000957964378445773 * Cr + 0.000817076911346625 * Y - 0.00477271405408747 * k + 1.53380253221734) + Y * (0.000961250184130688 * Y - 0.00266257332283933 * k + 0.48357088451265) + k * (-0.000336197177618394 * k + 0.484791561490776); + var g = 107.268039397724 + Cb * (2.19927104525741e-5 * Cb - 0.000640992018297945 * Cr + 0.000659397001245577 * Y + 0.000426105652938837 * k - 0.176491792462875) + Cr * (-0.000778269941513683 * Cr + 0.00130872261408275 * Y + 0.000770482631801132 * k - 0.151051492775562) + Y * (0.00126935368114843 * Y - 0.00265090189010898 * k + 0.25802910206845) + k * (-0.000318913117588328 * k - 0.213742400323665); + var b = -20.810012546947 + Cb * (-0.000570115196973677 * Cb - 2.63409051004589e-5 * Cr + 0.0020741088115012 * Y - 0.00288260236853442 * k + 0.814272968359295) + Cr * (-1.53496057440975e-5 * Cr - 0.000132689043961446 * Y + 0.000560833691242812 * k - 0.195152027534049) + Y * (0.00174418132927582 * Y - 0.00255243321439347 * k + 0.116935020465145) + k * (-0.000343531996510555 * k + 0.24165260232407); + data[offset++] = clamp0to255(r); + data[offset++] = clamp0to255(g); + data[offset++] = clamp0to255(b); + } + return data; + }, + _convertYcckToCmyk: function convertYcckToCmyk(data) { + var Y, Cb, Cr; + for (var i = 0, length = data.length; i < length; i += 4) { + Y = data[i]; + Cb = data[i + 1]; + Cr = data[i + 2]; + data[i] = clamp0to255(434.456 - Y - 1.402 * Cr); + data[i + 1] = clamp0to255(119.541 - Y + 0.344 * Cb + 0.714 * Cr); + data[i + 2] = clamp0to255(481.816 - Y - 1.772 * Cb); + } + return data; + }, + _convertCmykToRgb: function convertCmykToRgb(data) { + var c, m, y, k; + var offset = 0; + var min = -255 * 255 * 255; + var scale = 1 / 255 / 255; + for (var i = 0, length = data.length; i < length; i += 4) { + c = data[i]; + m = data[i + 1]; + y = data[i + 2]; + k = data[i + 3]; + var r = c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k - 72734.4411664936) + m * (1.7149763477362134 * m - 5.6096736904047315 * y - 17.873870861415444 * k - 1401.7366389350734) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 4465.541406466231) - k * (21.86122147463605 * k + 48317.86113160301); + var g = c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k - 20220.756542821975) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 48691.05921601825) + y * (4.444339102852739 * y + 9.8632861493405 * k - 6341.191035517494) - k * (20.737325471181034 * k + 47890.15695978492); + var b = c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k - 3616.812083916688) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 28620.90484698408) + y * (0.03296041114873217 * y + 115.60384449646641 * k - 49363.43385999684) - k * (22.33816807309886 * k + 45932.16563550634); + data[offset++] = r >= 0 ? 255 : r <= min ? 0 : 255 + r * scale | 0; + data[offset++] = g >= 0 ? 255 : g <= min ? 0 : 255 + g * scale | 0; + data[offset++] = b >= 0 ? 255 : b <= min ? 0 : 255 + b * scale | 0; + } + return data; + }, + getData: function getData(width, height, forceRGBoutput) { + if (this.numComponents > 4) { + error('JPEG error: Unsupported color mode'); + } + var data = this._getLinearizedBlockData(width, height); + if (this.numComponents === 1 && forceRGBoutput) { + var dataLength = data.length; + var rgbData = new Uint8Array(dataLength * 3); + var offset = 0; + for (var i = 0; i < dataLength; i++) { + var grayColor = data[i]; + rgbData[offset++] = grayColor; + rgbData[offset++] = grayColor; + rgbData[offset++] = grayColor; + } + return rgbData; + } else if (this.numComponents === 3 && this._isColorConversionNeeded()) { + return this._convertYccToRgb(data); + } else if (this.numComponents === 4) { + if (this._isColorConversionNeeded()) { + if (forceRGBoutput) { + return this._convertYcckToRgb(data); + } + return this._convertYcckToCmyk(data); + } else if (forceRGBoutput) { + return this._convertCmykToRgb(data); + } + } + return data; + } + }; + return JpegImage; +}(); +exports.JpegImage = JpegImage; + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var getLookupTableFactory = sharedUtil.getLookupTableFactory; +var getMetrics = getLookupTableFactory(function (t) { + t['Courier'] = 600; + t['Courier-Bold'] = 600; + t['Courier-BoldOblique'] = 600; + t['Courier-Oblique'] = 600; + t['Helvetica'] = getLookupTableFactory(function (t) { + t['space'] = 278; + t['exclam'] = 278; + t['quotedbl'] = 355; + t['numbersign'] = 556; + t['dollar'] = 556; + t['percent'] = 889; + t['ampersand'] = 667; + t['quoteright'] = 222; + t['parenleft'] = 333; + t['parenright'] = 333; + t['asterisk'] = 389; + t['plus'] = 584; + t['comma'] = 278; + t['hyphen'] = 333; + t['period'] = 278; + t['slash'] = 278; + t['zero'] = 556; + t['one'] = 556; + t['two'] = 556; + t['three'] = 556; + t['four'] = 556; + t['five'] = 556; + t['six'] = 556; + t['seven'] = 556; + t['eight'] = 556; + t['nine'] = 556; + t['colon'] = 278; + t['semicolon'] = 278; + t['less'] = 584; + t['equal'] = 584; + t['greater'] = 584; + t['question'] = 556; + t['at'] = 1015; + t['A'] = 667; + t['B'] = 667; + t['C'] = 722; + t['D'] = 722; + t['E'] = 667; + t['F'] = 611; + t['G'] = 778; + t['H'] = 722; + t['I'] = 278; + t['J'] = 500; + t['K'] = 667; + t['L'] = 556; + t['M'] = 833; + t['N'] = 722; + t['O'] = 778; + t['P'] = 667; + t['Q'] = 778; + t['R'] = 722; + t['S'] = 667; + t['T'] = 611; + t['U'] = 722; + t['V'] = 667; + t['W'] = 944; + t['X'] = 667; + t['Y'] = 667; + t['Z'] = 611; + t['bracketleft'] = 278; + t['backslash'] = 278; + t['bracketright'] = 278; + t['asciicircum'] = 469; + t['underscore'] = 556; + t['quoteleft'] = 222; + t['a'] = 556; + t['b'] = 556; + t['c'] = 500; + t['d'] = 556; + t['e'] = 556; + t['f'] = 278; + t['g'] = 556; + t['h'] = 556; + t['i'] = 222; + t['j'] = 222; + t['k'] = 500; + t['l'] = 222; + t['m'] = 833; + t['n'] = 556; + t['o'] = 556; + t['p'] = 556; + t['q'] = 556; + t['r'] = 333; + t['s'] = 500; + t['t'] = 278; + t['u'] = 556; + t['v'] = 500; + t['w'] = 722; + t['x'] = 500; + t['y'] = 500; + t['z'] = 500; + t['braceleft'] = 334; + t['bar'] = 260; + t['braceright'] = 334; + t['asciitilde'] = 584; + t['exclamdown'] = 333; + t['cent'] = 556; + t['sterling'] = 556; + t['fraction'] = 167; + t['yen'] = 556; + t['florin'] = 556; + t['section'] = 556; + t['currency'] = 556; + t['quotesingle'] = 191; + t['quotedblleft'] = 333; + t['guillemotleft'] = 556; + t['guilsinglleft'] = 333; + t['guilsinglright'] = 333; + t['fi'] = 500; + t['fl'] = 500; + t['endash'] = 556; + t['dagger'] = 556; + t['daggerdbl'] = 556; + t['periodcentered'] = 278; + t['paragraph'] = 537; + t['bullet'] = 350; + t['quotesinglbase'] = 222; + t['quotedblbase'] = 333; + t['quotedblright'] = 333; + t['guillemotright'] = 556; + t['ellipsis'] = 1000; + t['perthousand'] = 1000; + t['questiondown'] = 611; + t['grave'] = 333; + t['acute'] = 333; + t['circumflex'] = 333; + t['tilde'] = 333; + t['macron'] = 333; + t['breve'] = 333; + t['dotaccent'] = 333; + t['dieresis'] = 333; + t['ring'] = 333; + t['cedilla'] = 333; + t['hungarumlaut'] = 333; + t['ogonek'] = 333; + t['caron'] = 333; + t['emdash'] = 1000; + t['AE'] = 1000; + t['ordfeminine'] = 370; + t['Lslash'] = 556; + t['Oslash'] = 778; + t['OE'] = 1000; + t['ordmasculine'] = 365; + t['ae'] = 889; + t['dotlessi'] = 278; + t['lslash'] = 222; + t['oslash'] = 611; + t['oe'] = 944; + t['germandbls'] = 611; + t['Idieresis'] = 278; + t['eacute'] = 556; + t['abreve'] = 556; + t['uhungarumlaut'] = 556; + t['ecaron'] = 556; + t['Ydieresis'] = 667; + t['divide'] = 584; + t['Yacute'] = 667; + t['Acircumflex'] = 667; + t['aacute'] = 556; + t['Ucircumflex'] = 722; + t['yacute'] = 500; + t['scommaaccent'] = 500; + t['ecircumflex'] = 556; + t['Uring'] = 722; + t['Udieresis'] = 722; + t['aogonek'] = 556; + t['Uacute'] = 722; + t['uogonek'] = 556; + t['Edieresis'] = 667; + t['Dcroat'] = 722; + t['commaaccent'] = 250; + t['copyright'] = 737; + t['Emacron'] = 667; + t['ccaron'] = 500; + t['aring'] = 556; + t['Ncommaaccent'] = 722; + t['lacute'] = 222; + t['agrave'] = 556; + t['Tcommaaccent'] = 611; + t['Cacute'] = 722; + t['atilde'] = 556; + t['Edotaccent'] = 667; + t['scaron'] = 500; + t['scedilla'] = 500; + t['iacute'] = 278; + t['lozenge'] = 471; + t['Rcaron'] = 722; + t['Gcommaaccent'] = 778; + t['ucircumflex'] = 556; + t['acircumflex'] = 556; + t['Amacron'] = 667; + t['rcaron'] = 333; + t['ccedilla'] = 500; + t['Zdotaccent'] = 611; + t['Thorn'] = 667; + t['Omacron'] = 778; + t['Racute'] = 722; + t['Sacute'] = 667; + t['dcaron'] = 643; + t['Umacron'] = 722; + t['uring'] = 556; + t['threesuperior'] = 333; + t['Ograve'] = 778; + t['Agrave'] = 667; + t['Abreve'] = 667; + t['multiply'] = 584; + t['uacute'] = 556; + t['Tcaron'] = 611; + t['partialdiff'] = 476; + t['ydieresis'] = 500; + t['Nacute'] = 722; + t['icircumflex'] = 278; + t['Ecircumflex'] = 667; + t['adieresis'] = 556; + t['edieresis'] = 556; + t['cacute'] = 500; + t['nacute'] = 556; + t['umacron'] = 556; + t['Ncaron'] = 722; + t['Iacute'] = 278; + t['plusminus'] = 584; + t['brokenbar'] = 260; + t['registered'] = 737; + t['Gbreve'] = 778; + t['Idotaccent'] = 278; + t['summation'] = 600; + t['Egrave'] = 667; + t['racute'] = 333; + t['omacron'] = 556; + t['Zacute'] = 611; + t['Zcaron'] = 611; + t['greaterequal'] = 549; + t['Eth'] = 722; + t['Ccedilla'] = 722; + t['lcommaaccent'] = 222; + t['tcaron'] = 317; + t['eogonek'] = 556; + t['Uogonek'] = 722; + t['Aacute'] = 667; + t['Adieresis'] = 667; + t['egrave'] = 556; + t['zacute'] = 500; + t['iogonek'] = 222; + t['Oacute'] = 778; + t['oacute'] = 556; + t['amacron'] = 556; + t['sacute'] = 500; + t['idieresis'] = 278; + t['Ocircumflex'] = 778; + t['Ugrave'] = 722; + t['Delta'] = 612; + t['thorn'] = 556; + t['twosuperior'] = 333; + t['Odieresis'] = 778; + t['mu'] = 556; + t['igrave'] = 278; + t['ohungarumlaut'] = 556; + t['Eogonek'] = 667; + t['dcroat'] = 556; + t['threequarters'] = 834; + t['Scedilla'] = 667; + t['lcaron'] = 299; + t['Kcommaaccent'] = 667; + t['Lacute'] = 556; + t['trademark'] = 1000; + t['edotaccent'] = 556; + t['Igrave'] = 278; + t['Imacron'] = 278; + t['Lcaron'] = 556; + t['onehalf'] = 834; + t['lessequal'] = 549; + t['ocircumflex'] = 556; + t['ntilde'] = 556; + t['Uhungarumlaut'] = 722; + t['Eacute'] = 667; + t['emacron'] = 556; + t['gbreve'] = 556; + t['onequarter'] = 834; + t['Scaron'] = 667; + t['Scommaaccent'] = 667; + t['Ohungarumlaut'] = 778; + t['degree'] = 400; + t['ograve'] = 556; + t['Ccaron'] = 722; + t['ugrave'] = 556; + t['radical'] = 453; + t['Dcaron'] = 722; + t['rcommaaccent'] = 333; + t['Ntilde'] = 722; + t['otilde'] = 556; + t['Rcommaaccent'] = 722; + t['Lcommaaccent'] = 556; + t['Atilde'] = 667; + t['Aogonek'] = 667; + t['Aring'] = 667; + t['Otilde'] = 778; + t['zdotaccent'] = 500; + t['Ecaron'] = 667; + t['Iogonek'] = 278; + t['kcommaaccent'] = 500; + t['minus'] = 584; + t['Icircumflex'] = 278; + t['ncaron'] = 556; + t['tcommaaccent'] = 278; + t['logicalnot'] = 584; + t['odieresis'] = 556; + t['udieresis'] = 556; + t['notequal'] = 549; + t['gcommaaccent'] = 556; + t['eth'] = 556; + t['zcaron'] = 500; + t['ncommaaccent'] = 556; + t['onesuperior'] = 333; + t['imacron'] = 278; + t['Euro'] = 556; + }); + t['Helvetica-Bold'] = getLookupTableFactory(function (t) { + t['space'] = 278; + t['exclam'] = 333; + t['quotedbl'] = 474; + t['numbersign'] = 556; + t['dollar'] = 556; + t['percent'] = 889; + t['ampersand'] = 722; + t['quoteright'] = 278; + t['parenleft'] = 333; + t['parenright'] = 333; + t['asterisk'] = 389; + t['plus'] = 584; + t['comma'] = 278; + t['hyphen'] = 333; + t['period'] = 278; + t['slash'] = 278; + t['zero'] = 556; + t['one'] = 556; + t['two'] = 556; + t['three'] = 556; + t['four'] = 556; + t['five'] = 556; + t['six'] = 556; + t['seven'] = 556; + t['eight'] = 556; + t['nine'] = 556; + t['colon'] = 333; + t['semicolon'] = 333; + t['less'] = 584; + t['equal'] = 584; + t['greater'] = 584; + t['question'] = 611; + t['at'] = 975; + t['A'] = 722; + t['B'] = 722; + t['C'] = 722; + t['D'] = 722; + t['E'] = 667; + t['F'] = 611; + t['G'] = 778; + t['H'] = 722; + t['I'] = 278; + t['J'] = 556; + t['K'] = 722; + t['L'] = 611; + t['M'] = 833; + t['N'] = 722; + t['O'] = 778; + t['P'] = 667; + t['Q'] = 778; + t['R'] = 722; + t['S'] = 667; + t['T'] = 611; + t['U'] = 722; + t['V'] = 667; + t['W'] = 944; + t['X'] = 667; + t['Y'] = 667; + t['Z'] = 611; + t['bracketleft'] = 333; + t['backslash'] = 278; + t['bracketright'] = 333; + t['asciicircum'] = 584; + t['underscore'] = 556; + t['quoteleft'] = 278; + t['a'] = 556; + t['b'] = 611; + t['c'] = 556; + t['d'] = 611; + t['e'] = 556; + t['f'] = 333; + t['g'] = 611; + t['h'] = 611; + t['i'] = 278; + t['j'] = 278; + t['k'] = 556; + t['l'] = 278; + t['m'] = 889; + t['n'] = 611; + t['o'] = 611; + t['p'] = 611; + t['q'] = 611; + t['r'] = 389; + t['s'] = 556; + t['t'] = 333; + t['u'] = 611; + t['v'] = 556; + t['w'] = 778; + t['x'] = 556; + t['y'] = 556; + t['z'] = 500; + t['braceleft'] = 389; + t['bar'] = 280; + t['braceright'] = 389; + t['asciitilde'] = 584; + t['exclamdown'] = 333; + t['cent'] = 556; + t['sterling'] = 556; + t['fraction'] = 167; + t['yen'] = 556; + t['florin'] = 556; + t['section'] = 556; + t['currency'] = 556; + t['quotesingle'] = 238; + t['quotedblleft'] = 500; + t['guillemotleft'] = 556; + t['guilsinglleft'] = 333; + t['guilsinglright'] = 333; + t['fi'] = 611; + t['fl'] = 611; + t['endash'] = 556; + t['dagger'] = 556; + t['daggerdbl'] = 556; + t['periodcentered'] = 278; + t['paragraph'] = 556; + t['bullet'] = 350; + t['quotesinglbase'] = 278; + t['quotedblbase'] = 500; + t['quotedblright'] = 500; + t['guillemotright'] = 556; + t['ellipsis'] = 1000; + t['perthousand'] = 1000; + t['questiondown'] = 611; + t['grave'] = 333; + t['acute'] = 333; + t['circumflex'] = 333; + t['tilde'] = 333; + t['macron'] = 333; + t['breve'] = 333; + t['dotaccent'] = 333; + t['dieresis'] = 333; + t['ring'] = 333; + t['cedilla'] = 333; + t['hungarumlaut'] = 333; + t['ogonek'] = 333; + t['caron'] = 333; + t['emdash'] = 1000; + t['AE'] = 1000; + t['ordfeminine'] = 370; + t['Lslash'] = 611; + t['Oslash'] = 778; + t['OE'] = 1000; + t['ordmasculine'] = 365; + t['ae'] = 889; + t['dotlessi'] = 278; + t['lslash'] = 278; + t['oslash'] = 611; + t['oe'] = 944; + t['germandbls'] = 611; + t['Idieresis'] = 278; + t['eacute'] = 556; + t['abreve'] = 556; + t['uhungarumlaut'] = 611; + t['ecaron'] = 556; + t['Ydieresis'] = 667; + t['divide'] = 584; + t['Yacute'] = 667; + t['Acircumflex'] = 722; + t['aacute'] = 556; + t['Ucircumflex'] = 722; + t['yacute'] = 556; + t['scommaaccent'] = 556; + t['ecircumflex'] = 556; + t['Uring'] = 722; + t['Udieresis'] = 722; + t['aogonek'] = 556; + t['Uacute'] = 722; + t['uogonek'] = 611; + t['Edieresis'] = 667; + t['Dcroat'] = 722; + t['commaaccent'] = 250; + t['copyright'] = 737; + t['Emacron'] = 667; + t['ccaron'] = 556; + t['aring'] = 556; + t['Ncommaaccent'] = 722; + t['lacute'] = 278; + t['agrave'] = 556; + t['Tcommaaccent'] = 611; + t['Cacute'] = 722; + t['atilde'] = 556; + t['Edotaccent'] = 667; + t['scaron'] = 556; + t['scedilla'] = 556; + t['iacute'] = 278; + t['lozenge'] = 494; + t['Rcaron'] = 722; + t['Gcommaaccent'] = 778; + t['ucircumflex'] = 611; + t['acircumflex'] = 556; + t['Amacron'] = 722; + t['rcaron'] = 389; + t['ccedilla'] = 556; + t['Zdotaccent'] = 611; + t['Thorn'] = 667; + t['Omacron'] = 778; + t['Racute'] = 722; + t['Sacute'] = 667; + t['dcaron'] = 743; + t['Umacron'] = 722; + t['uring'] = 611; + t['threesuperior'] = 333; + t['Ograve'] = 778; + t['Agrave'] = 722; + t['Abreve'] = 722; + t['multiply'] = 584; + t['uacute'] = 611; + t['Tcaron'] = 611; + t['partialdiff'] = 494; + t['ydieresis'] = 556; + t['Nacute'] = 722; + t['icircumflex'] = 278; + t['Ecircumflex'] = 667; + t['adieresis'] = 556; + t['edieresis'] = 556; + t['cacute'] = 556; + t['nacute'] = 611; + t['umacron'] = 611; + t['Ncaron'] = 722; + t['Iacute'] = 278; + t['plusminus'] = 584; + t['brokenbar'] = 280; + t['registered'] = 737; + t['Gbreve'] = 778; + t['Idotaccent'] = 278; + t['summation'] = 600; + t['Egrave'] = 667; + t['racute'] = 389; + t['omacron'] = 611; + t['Zacute'] = 611; + t['Zcaron'] = 611; + t['greaterequal'] = 549; + t['Eth'] = 722; + t['Ccedilla'] = 722; + t['lcommaaccent'] = 278; + t['tcaron'] = 389; + t['eogonek'] = 556; + t['Uogonek'] = 722; + t['Aacute'] = 722; + t['Adieresis'] = 722; + t['egrave'] = 556; + t['zacute'] = 500; + t['iogonek'] = 278; + t['Oacute'] = 778; + t['oacute'] = 611; + t['amacron'] = 556; + t['sacute'] = 556; + t['idieresis'] = 278; + t['Ocircumflex'] = 778; + t['Ugrave'] = 722; + t['Delta'] = 612; + t['thorn'] = 611; + t['twosuperior'] = 333; + t['Odieresis'] = 778; + t['mu'] = 611; + t['igrave'] = 278; + t['ohungarumlaut'] = 611; + t['Eogonek'] = 667; + t['dcroat'] = 611; + t['threequarters'] = 834; + t['Scedilla'] = 667; + t['lcaron'] = 400; + t['Kcommaaccent'] = 722; + t['Lacute'] = 611; + t['trademark'] = 1000; + t['edotaccent'] = 556; + t['Igrave'] = 278; + t['Imacron'] = 278; + t['Lcaron'] = 611; + t['onehalf'] = 834; + t['lessequal'] = 549; + t['ocircumflex'] = 611; + t['ntilde'] = 611; + t['Uhungarumlaut'] = 722; + t['Eacute'] = 667; + t['emacron'] = 556; + t['gbreve'] = 611; + t['onequarter'] = 834; + t['Scaron'] = 667; + t['Scommaaccent'] = 667; + t['Ohungarumlaut'] = 778; + t['degree'] = 400; + t['ograve'] = 611; + t['Ccaron'] = 722; + t['ugrave'] = 611; + t['radical'] = 549; + t['Dcaron'] = 722; + t['rcommaaccent'] = 389; + t['Ntilde'] = 722; + t['otilde'] = 611; + t['Rcommaaccent'] = 722; + t['Lcommaaccent'] = 611; + t['Atilde'] = 722; + t['Aogonek'] = 722; + t['Aring'] = 722; + t['Otilde'] = 778; + t['zdotaccent'] = 500; + t['Ecaron'] = 667; + t['Iogonek'] = 278; + t['kcommaaccent'] = 556; + t['minus'] = 584; + t['Icircumflex'] = 278; + t['ncaron'] = 611; + t['tcommaaccent'] = 333; + t['logicalnot'] = 584; + t['odieresis'] = 611; + t['udieresis'] = 611; + t['notequal'] = 549; + t['gcommaaccent'] = 611; + t['eth'] = 611; + t['zcaron'] = 500; + t['ncommaaccent'] = 611; + t['onesuperior'] = 333; + t['imacron'] = 278; + t['Euro'] = 556; + }); + t['Helvetica-BoldOblique'] = getLookupTableFactory(function (t) { + t['space'] = 278; + t['exclam'] = 333; + t['quotedbl'] = 474; + t['numbersign'] = 556; + t['dollar'] = 556; + t['percent'] = 889; + t['ampersand'] = 722; + t['quoteright'] = 278; + t['parenleft'] = 333; + t['parenright'] = 333; + t['asterisk'] = 389; + t['plus'] = 584; + t['comma'] = 278; + t['hyphen'] = 333; + t['period'] = 278; + t['slash'] = 278; + t['zero'] = 556; + t['one'] = 556; + t['two'] = 556; + t['three'] = 556; + t['four'] = 556; + t['five'] = 556; + t['six'] = 556; + t['seven'] = 556; + t['eight'] = 556; + t['nine'] = 556; + t['colon'] = 333; + t['semicolon'] = 333; + t['less'] = 584; + t['equal'] = 584; + t['greater'] = 584; + t['question'] = 611; + t['at'] = 975; + t['A'] = 722; + t['B'] = 722; + t['C'] = 722; + t['D'] = 722; + t['E'] = 667; + t['F'] = 611; + t['G'] = 778; + t['H'] = 722; + t['I'] = 278; + t['J'] = 556; + t['K'] = 722; + t['L'] = 611; + t['M'] = 833; + t['N'] = 722; + t['O'] = 778; + t['P'] = 667; + t['Q'] = 778; + t['R'] = 722; + t['S'] = 667; + t['T'] = 611; + t['U'] = 722; + t['V'] = 667; + t['W'] = 944; + t['X'] = 667; + t['Y'] = 667; + t['Z'] = 611; + t['bracketleft'] = 333; + t['backslash'] = 278; + t['bracketright'] = 333; + t['asciicircum'] = 584; + t['underscore'] = 556; + t['quoteleft'] = 278; + t['a'] = 556; + t['b'] = 611; + t['c'] = 556; + t['d'] = 611; + t['e'] = 556; + t['f'] = 333; + t['g'] = 611; + t['h'] = 611; + t['i'] = 278; + t['j'] = 278; + t['k'] = 556; + t['l'] = 278; + t['m'] = 889; + t['n'] = 611; + t['o'] = 611; + t['p'] = 611; + t['q'] = 611; + t['r'] = 389; + t['s'] = 556; + t['t'] = 333; + t['u'] = 611; + t['v'] = 556; + t['w'] = 778; + t['x'] = 556; + t['y'] = 556; + t['z'] = 500; + t['braceleft'] = 389; + t['bar'] = 280; + t['braceright'] = 389; + t['asciitilde'] = 584; + t['exclamdown'] = 333; + t['cent'] = 556; + t['sterling'] = 556; + t['fraction'] = 167; + t['yen'] = 556; + t['florin'] = 556; + t['section'] = 556; + t['currency'] = 556; + t['quotesingle'] = 238; + t['quotedblleft'] = 500; + t['guillemotleft'] = 556; + t['guilsinglleft'] = 333; + t['guilsinglright'] = 333; + t['fi'] = 611; + t['fl'] = 611; + t['endash'] = 556; + t['dagger'] = 556; + t['daggerdbl'] = 556; + t['periodcentered'] = 278; + t['paragraph'] = 556; + t['bullet'] = 350; + t['quotesinglbase'] = 278; + t['quotedblbase'] = 500; + t['quotedblright'] = 500; + t['guillemotright'] = 556; + t['ellipsis'] = 1000; + t['perthousand'] = 1000; + t['questiondown'] = 611; + t['grave'] = 333; + t['acute'] = 333; + t['circumflex'] = 333; + t['tilde'] = 333; + t['macron'] = 333; + t['breve'] = 333; + t['dotaccent'] = 333; + t['dieresis'] = 333; + t['ring'] = 333; + t['cedilla'] = 333; + t['hungarumlaut'] = 333; + t['ogonek'] = 333; + t['caron'] = 333; + t['emdash'] = 1000; + t['AE'] = 1000; + t['ordfeminine'] = 370; + t['Lslash'] = 611; + t['Oslash'] = 778; + t['OE'] = 1000; + t['ordmasculine'] = 365; + t['ae'] = 889; + t['dotlessi'] = 278; + t['lslash'] = 278; + t['oslash'] = 611; + t['oe'] = 944; + t['germandbls'] = 611; + t['Idieresis'] = 278; + t['eacute'] = 556; + t['abreve'] = 556; + t['uhungarumlaut'] = 611; + t['ecaron'] = 556; + t['Ydieresis'] = 667; + t['divide'] = 584; + t['Yacute'] = 667; + t['Acircumflex'] = 722; + t['aacute'] = 556; + t['Ucircumflex'] = 722; + t['yacute'] = 556; + t['scommaaccent'] = 556; + t['ecircumflex'] = 556; + t['Uring'] = 722; + t['Udieresis'] = 722; + t['aogonek'] = 556; + t['Uacute'] = 722; + t['uogonek'] = 611; + t['Edieresis'] = 667; + t['Dcroat'] = 722; + t['commaaccent'] = 250; + t['copyright'] = 737; + t['Emacron'] = 667; + t['ccaron'] = 556; + t['aring'] = 556; + t['Ncommaaccent'] = 722; + t['lacute'] = 278; + t['agrave'] = 556; + t['Tcommaaccent'] = 611; + t['Cacute'] = 722; + t['atilde'] = 556; + t['Edotaccent'] = 667; + t['scaron'] = 556; + t['scedilla'] = 556; + t['iacute'] = 278; + t['lozenge'] = 494; + t['Rcaron'] = 722; + t['Gcommaaccent'] = 778; + t['ucircumflex'] = 611; + t['acircumflex'] = 556; + t['Amacron'] = 722; + t['rcaron'] = 389; + t['ccedilla'] = 556; + t['Zdotaccent'] = 611; + t['Thorn'] = 667; + t['Omacron'] = 778; + t['Racute'] = 722; + t['Sacute'] = 667; + t['dcaron'] = 743; + t['Umacron'] = 722; + t['uring'] = 611; + t['threesuperior'] = 333; + t['Ograve'] = 778; + t['Agrave'] = 722; + t['Abreve'] = 722; + t['multiply'] = 584; + t['uacute'] = 611; + t['Tcaron'] = 611; + t['partialdiff'] = 494; + t['ydieresis'] = 556; + t['Nacute'] = 722; + t['icircumflex'] = 278; + t['Ecircumflex'] = 667; + t['adieresis'] = 556; + t['edieresis'] = 556; + t['cacute'] = 556; + t['nacute'] = 611; + t['umacron'] = 611; + t['Ncaron'] = 722; + t['Iacute'] = 278; + t['plusminus'] = 584; + t['brokenbar'] = 280; + t['registered'] = 737; + t['Gbreve'] = 778; + t['Idotaccent'] = 278; + t['summation'] = 600; + t['Egrave'] = 667; + t['racute'] = 389; + t['omacron'] = 611; + t['Zacute'] = 611; + t['Zcaron'] = 611; + t['greaterequal'] = 549; + t['Eth'] = 722; + t['Ccedilla'] = 722; + t['lcommaaccent'] = 278; + t['tcaron'] = 389; + t['eogonek'] = 556; + t['Uogonek'] = 722; + t['Aacute'] = 722; + t['Adieresis'] = 722; + t['egrave'] = 556; + t['zacute'] = 500; + t['iogonek'] = 278; + t['Oacute'] = 778; + t['oacute'] = 611; + t['amacron'] = 556; + t['sacute'] = 556; + t['idieresis'] = 278; + t['Ocircumflex'] = 778; + t['Ugrave'] = 722; + t['Delta'] = 612; + t['thorn'] = 611; + t['twosuperior'] = 333; + t['Odieresis'] = 778; + t['mu'] = 611; + t['igrave'] = 278; + t['ohungarumlaut'] = 611; + t['Eogonek'] = 667; + t['dcroat'] = 611; + t['threequarters'] = 834; + t['Scedilla'] = 667; + t['lcaron'] = 400; + t['Kcommaaccent'] = 722; + t['Lacute'] = 611; + t['trademark'] = 1000; + t['edotaccent'] = 556; + t['Igrave'] = 278; + t['Imacron'] = 278; + t['Lcaron'] = 611; + t['onehalf'] = 834; + t['lessequal'] = 549; + t['ocircumflex'] = 611; + t['ntilde'] = 611; + t['Uhungarumlaut'] = 722; + t['Eacute'] = 667; + t['emacron'] = 556; + t['gbreve'] = 611; + t['onequarter'] = 834; + t['Scaron'] = 667; + t['Scommaaccent'] = 667; + t['Ohungarumlaut'] = 778; + t['degree'] = 400; + t['ograve'] = 611; + t['Ccaron'] = 722; + t['ugrave'] = 611; + t['radical'] = 549; + t['Dcaron'] = 722; + t['rcommaaccent'] = 389; + t['Ntilde'] = 722; + t['otilde'] = 611; + t['Rcommaaccent'] = 722; + t['Lcommaaccent'] = 611; + t['Atilde'] = 722; + t['Aogonek'] = 722; + t['Aring'] = 722; + t['Otilde'] = 778; + t['zdotaccent'] = 500; + t['Ecaron'] = 667; + t['Iogonek'] = 278; + t['kcommaaccent'] = 556; + t['minus'] = 584; + t['Icircumflex'] = 278; + t['ncaron'] = 611; + t['tcommaaccent'] = 333; + t['logicalnot'] = 584; + t['odieresis'] = 611; + t['udieresis'] = 611; + t['notequal'] = 549; + t['gcommaaccent'] = 611; + t['eth'] = 611; + t['zcaron'] = 500; + t['ncommaaccent'] = 611; + t['onesuperior'] = 333; + t['imacron'] = 278; + t['Euro'] = 556; + }); + t['Helvetica-Oblique'] = getLookupTableFactory(function (t) { + t['space'] = 278; + t['exclam'] = 278; + t['quotedbl'] = 355; + t['numbersign'] = 556; + t['dollar'] = 556; + t['percent'] = 889; + t['ampersand'] = 667; + t['quoteright'] = 222; + t['parenleft'] = 333; + t['parenright'] = 333; + t['asterisk'] = 389; + t['plus'] = 584; + t['comma'] = 278; + t['hyphen'] = 333; + t['period'] = 278; + t['slash'] = 278; + t['zero'] = 556; + t['one'] = 556; + t['two'] = 556; + t['three'] = 556; + t['four'] = 556; + t['five'] = 556; + t['six'] = 556; + t['seven'] = 556; + t['eight'] = 556; + t['nine'] = 556; + t['colon'] = 278; + t['semicolon'] = 278; + t['less'] = 584; + t['equal'] = 584; + t['greater'] = 584; + t['question'] = 556; + t['at'] = 1015; + t['A'] = 667; + t['B'] = 667; + t['C'] = 722; + t['D'] = 722; + t['E'] = 667; + t['F'] = 611; + t['G'] = 778; + t['H'] = 722; + t['I'] = 278; + t['J'] = 500; + t['K'] = 667; + t['L'] = 556; + t['M'] = 833; + t['N'] = 722; + t['O'] = 778; + t['P'] = 667; + t['Q'] = 778; + t['R'] = 722; + t['S'] = 667; + t['T'] = 611; + t['U'] = 722; + t['V'] = 667; + t['W'] = 944; + t['X'] = 667; + t['Y'] = 667; + t['Z'] = 611; + t['bracketleft'] = 278; + t['backslash'] = 278; + t['bracketright'] = 278; + t['asciicircum'] = 469; + t['underscore'] = 556; + t['quoteleft'] = 222; + t['a'] = 556; + t['b'] = 556; + t['c'] = 500; + t['d'] = 556; + t['e'] = 556; + t['f'] = 278; + t['g'] = 556; + t['h'] = 556; + t['i'] = 222; + t['j'] = 222; + t['k'] = 500; + t['l'] = 222; + t['m'] = 833; + t['n'] = 556; + t['o'] = 556; + t['p'] = 556; + t['q'] = 556; + t['r'] = 333; + t['s'] = 500; + t['t'] = 278; + t['u'] = 556; + t['v'] = 500; + t['w'] = 722; + t['x'] = 500; + t['y'] = 500; + t['z'] = 500; + t['braceleft'] = 334; + t['bar'] = 260; + t['braceright'] = 334; + t['asciitilde'] = 584; + t['exclamdown'] = 333; + t['cent'] = 556; + t['sterling'] = 556; + t['fraction'] = 167; + t['yen'] = 556; + t['florin'] = 556; + t['section'] = 556; + t['currency'] = 556; + t['quotesingle'] = 191; + t['quotedblleft'] = 333; + t['guillemotleft'] = 556; + t['guilsinglleft'] = 333; + t['guilsinglright'] = 333; + t['fi'] = 500; + t['fl'] = 500; + t['endash'] = 556; + t['dagger'] = 556; + t['daggerdbl'] = 556; + t['periodcentered'] = 278; + t['paragraph'] = 537; + t['bullet'] = 350; + t['quotesinglbase'] = 222; + t['quotedblbase'] = 333; + t['quotedblright'] = 333; + t['guillemotright'] = 556; + t['ellipsis'] = 1000; + t['perthousand'] = 1000; + t['questiondown'] = 611; + t['grave'] = 333; + t['acute'] = 333; + t['circumflex'] = 333; + t['tilde'] = 333; + t['macron'] = 333; + t['breve'] = 333; + t['dotaccent'] = 333; + t['dieresis'] = 333; + t['ring'] = 333; + t['cedilla'] = 333; + t['hungarumlaut'] = 333; + t['ogonek'] = 333; + t['caron'] = 333; + t['emdash'] = 1000; + t['AE'] = 1000; + t['ordfeminine'] = 370; + t['Lslash'] = 556; + t['Oslash'] = 778; + t['OE'] = 1000; + t['ordmasculine'] = 365; + t['ae'] = 889; + t['dotlessi'] = 278; + t['lslash'] = 222; + t['oslash'] = 611; + t['oe'] = 944; + t['germandbls'] = 611; + t['Idieresis'] = 278; + t['eacute'] = 556; + t['abreve'] = 556; + t['uhungarumlaut'] = 556; + t['ecaron'] = 556; + t['Ydieresis'] = 667; + t['divide'] = 584; + t['Yacute'] = 667; + t['Acircumflex'] = 667; + t['aacute'] = 556; + t['Ucircumflex'] = 722; + t['yacute'] = 500; + t['scommaaccent'] = 500; + t['ecircumflex'] = 556; + t['Uring'] = 722; + t['Udieresis'] = 722; + t['aogonek'] = 556; + t['Uacute'] = 722; + t['uogonek'] = 556; + t['Edieresis'] = 667; + t['Dcroat'] = 722; + t['commaaccent'] = 250; + t['copyright'] = 737; + t['Emacron'] = 667; + t['ccaron'] = 500; + t['aring'] = 556; + t['Ncommaaccent'] = 722; + t['lacute'] = 222; + t['agrave'] = 556; + t['Tcommaaccent'] = 611; + t['Cacute'] = 722; + t['atilde'] = 556; + t['Edotaccent'] = 667; + t['scaron'] = 500; + t['scedilla'] = 500; + t['iacute'] = 278; + t['lozenge'] = 471; + t['Rcaron'] = 722; + t['Gcommaaccent'] = 778; + t['ucircumflex'] = 556; + t['acircumflex'] = 556; + t['Amacron'] = 667; + t['rcaron'] = 333; + t['ccedilla'] = 500; + t['Zdotaccent'] = 611; + t['Thorn'] = 667; + t['Omacron'] = 778; + t['Racute'] = 722; + t['Sacute'] = 667; + t['dcaron'] = 643; + t['Umacron'] = 722; + t['uring'] = 556; + t['threesuperior'] = 333; + t['Ograve'] = 778; + t['Agrave'] = 667; + t['Abreve'] = 667; + t['multiply'] = 584; + t['uacute'] = 556; + t['Tcaron'] = 611; + t['partialdiff'] = 476; + t['ydieresis'] = 500; + t['Nacute'] = 722; + t['icircumflex'] = 278; + t['Ecircumflex'] = 667; + t['adieresis'] = 556; + t['edieresis'] = 556; + t['cacute'] = 500; + t['nacute'] = 556; + t['umacron'] = 556; + t['Ncaron'] = 722; + t['Iacute'] = 278; + t['plusminus'] = 584; + t['brokenbar'] = 260; + t['registered'] = 737; + t['Gbreve'] = 778; + t['Idotaccent'] = 278; + t['summation'] = 600; + t['Egrave'] = 667; + t['racute'] = 333; + t['omacron'] = 556; + t['Zacute'] = 611; + t['Zcaron'] = 611; + t['greaterequal'] = 549; + t['Eth'] = 722; + t['Ccedilla'] = 722; + t['lcommaaccent'] = 222; + t['tcaron'] = 317; + t['eogonek'] = 556; + t['Uogonek'] = 722; + t['Aacute'] = 667; + t['Adieresis'] = 667; + t['egrave'] = 556; + t['zacute'] = 500; + t['iogonek'] = 222; + t['Oacute'] = 778; + t['oacute'] = 556; + t['amacron'] = 556; + t['sacute'] = 500; + t['idieresis'] = 278; + t['Ocircumflex'] = 778; + t['Ugrave'] = 722; + t['Delta'] = 612; + t['thorn'] = 556; + t['twosuperior'] = 333; + t['Odieresis'] = 778; + t['mu'] = 556; + t['igrave'] = 278; + t['ohungarumlaut'] = 556; + t['Eogonek'] = 667; + t['dcroat'] = 556; + t['threequarters'] = 834; + t['Scedilla'] = 667; + t['lcaron'] = 299; + t['Kcommaaccent'] = 667; + t['Lacute'] = 556; + t['trademark'] = 1000; + t['edotaccent'] = 556; + t['Igrave'] = 278; + t['Imacron'] = 278; + t['Lcaron'] = 556; + t['onehalf'] = 834; + t['lessequal'] = 549; + t['ocircumflex'] = 556; + t['ntilde'] = 556; + t['Uhungarumlaut'] = 722; + t['Eacute'] = 667; + t['emacron'] = 556; + t['gbreve'] = 556; + t['onequarter'] = 834; + t['Scaron'] = 667; + t['Scommaaccent'] = 667; + t['Ohungarumlaut'] = 778; + t['degree'] = 400; + t['ograve'] = 556; + t['Ccaron'] = 722; + t['ugrave'] = 556; + t['radical'] = 453; + t['Dcaron'] = 722; + t['rcommaaccent'] = 333; + t['Ntilde'] = 722; + t['otilde'] = 556; + t['Rcommaaccent'] = 722; + t['Lcommaaccent'] = 556; + t['Atilde'] = 667; + t['Aogonek'] = 667; + t['Aring'] = 667; + t['Otilde'] = 778; + t['zdotaccent'] = 500; + t['Ecaron'] = 667; + t['Iogonek'] = 278; + t['kcommaaccent'] = 500; + t['minus'] = 584; + t['Icircumflex'] = 278; + t['ncaron'] = 556; + t['tcommaaccent'] = 278; + t['logicalnot'] = 584; + t['odieresis'] = 556; + t['udieresis'] = 556; + t['notequal'] = 549; + t['gcommaaccent'] = 556; + t['eth'] = 556; + t['zcaron'] = 500; + t['ncommaaccent'] = 556; + t['onesuperior'] = 333; + t['imacron'] = 278; + t['Euro'] = 556; + }); + t['Symbol'] = getLookupTableFactory(function (t) { + t['space'] = 250; + t['exclam'] = 333; + t['universal'] = 713; + t['numbersign'] = 500; + t['existential'] = 549; + t['percent'] = 833; + t['ampersand'] = 778; + t['suchthat'] = 439; + t['parenleft'] = 333; + t['parenright'] = 333; + t['asteriskmath'] = 500; + t['plus'] = 549; + t['comma'] = 250; + t['minus'] = 549; + t['period'] = 250; + t['slash'] = 278; + t['zero'] = 500; + t['one'] = 500; + t['two'] = 500; + t['three'] = 500; + t['four'] = 500; + t['five'] = 500; + t['six'] = 500; + t['seven'] = 500; + t['eight'] = 500; + t['nine'] = 500; + t['colon'] = 278; + t['semicolon'] = 278; + t['less'] = 549; + t['equal'] = 549; + t['greater'] = 549; + t['question'] = 444; + t['congruent'] = 549; + t['Alpha'] = 722; + t['Beta'] = 667; + t['Chi'] = 722; + t['Delta'] = 612; + t['Epsilon'] = 611; + t['Phi'] = 763; + t['Gamma'] = 603; + t['Eta'] = 722; + t['Iota'] = 333; + t['theta1'] = 631; + t['Kappa'] = 722; + t['Lambda'] = 686; + t['Mu'] = 889; + t['Nu'] = 722; + t['Omicron'] = 722; + t['Pi'] = 768; + t['Theta'] = 741; + t['Rho'] = 556; + t['Sigma'] = 592; + t['Tau'] = 611; + t['Upsilon'] = 690; + t['sigma1'] = 439; + t['Omega'] = 768; + t['Xi'] = 645; + t['Psi'] = 795; + t['Zeta'] = 611; + t['bracketleft'] = 333; + t['therefore'] = 863; + t['bracketright'] = 333; + t['perpendicular'] = 658; + t['underscore'] = 500; + t['radicalex'] = 500; + t['alpha'] = 631; + t['beta'] = 549; + t['chi'] = 549; + t['delta'] = 494; + t['epsilon'] = 439; + t['phi'] = 521; + t['gamma'] = 411; + t['eta'] = 603; + t['iota'] = 329; + t['phi1'] = 603; + t['kappa'] = 549; + t['lambda'] = 549; + t['mu'] = 576; + t['nu'] = 521; + t['omicron'] = 549; + t['pi'] = 549; + t['theta'] = 521; + t['rho'] = 549; + t['sigma'] = 603; + t['tau'] = 439; + t['upsilon'] = 576; + t['omega1'] = 713; + t['omega'] = 686; + t['xi'] = 493; + t['psi'] = 686; + t['zeta'] = 494; + t['braceleft'] = 480; + t['bar'] = 200; + t['braceright'] = 480; + t['similar'] = 549; + t['Euro'] = 750; + t['Upsilon1'] = 620; + t['minute'] = 247; + t['lessequal'] = 549; + t['fraction'] = 167; + t['infinity'] = 713; + t['florin'] = 500; + t['club'] = 753; + t['diamond'] = 753; + t['heart'] = 753; + t['spade'] = 753; + t['arrowboth'] = 1042; + t['arrowleft'] = 987; + t['arrowup'] = 603; + t['arrowright'] = 987; + t['arrowdown'] = 603; + t['degree'] = 400; + t['plusminus'] = 549; + t['second'] = 411; + t['greaterequal'] = 549; + t['multiply'] = 549; + t['proportional'] = 713; + t['partialdiff'] = 494; + t['bullet'] = 460; + t['divide'] = 549; + t['notequal'] = 549; + t['equivalence'] = 549; + t['approxequal'] = 549; + t['ellipsis'] = 1000; + t['arrowvertex'] = 603; + t['arrowhorizex'] = 1000; + t['carriagereturn'] = 658; + t['aleph'] = 823; + t['Ifraktur'] = 686; + t['Rfraktur'] = 795; + t['weierstrass'] = 987; + t['circlemultiply'] = 768; + t['circleplus'] = 768; + t['emptyset'] = 823; + t['intersection'] = 768; + t['union'] = 768; + t['propersuperset'] = 713; + t['reflexsuperset'] = 713; + t['notsubset'] = 713; + t['propersubset'] = 713; + t['reflexsubset'] = 713; + t['element'] = 713; + t['notelement'] = 713; + t['angle'] = 768; + t['gradient'] = 713; + t['registerserif'] = 790; + t['copyrightserif'] = 790; + t['trademarkserif'] = 890; + t['product'] = 823; + t['radical'] = 549; + t['dotmath'] = 250; + t['logicalnot'] = 713; + t['logicaland'] = 603; + t['logicalor'] = 603; + t['arrowdblboth'] = 1042; + t['arrowdblleft'] = 987; + t['arrowdblup'] = 603; + t['arrowdblright'] = 987; + t['arrowdbldown'] = 603; + t['lozenge'] = 494; + t['angleleft'] = 329; + t['registersans'] = 790; + t['copyrightsans'] = 790; + t['trademarksans'] = 786; + t['summation'] = 713; + t['parenlefttp'] = 384; + t['parenleftex'] = 384; + t['parenleftbt'] = 384; + t['bracketlefttp'] = 384; + t['bracketleftex'] = 384; + t['bracketleftbt'] = 384; + t['bracelefttp'] = 494; + t['braceleftmid'] = 494; + t['braceleftbt'] = 494; + t['braceex'] = 494; + t['angleright'] = 329; + t['integral'] = 274; + t['integraltp'] = 686; + t['integralex'] = 686; + t['integralbt'] = 686; + t['parenrighttp'] = 384; + t['parenrightex'] = 384; + t['parenrightbt'] = 384; + t['bracketrighttp'] = 384; + t['bracketrightex'] = 384; + t['bracketrightbt'] = 384; + t['bracerighttp'] = 494; + t['bracerightmid'] = 494; + t['bracerightbt'] = 494; + t['apple'] = 790; + }); + t['Times-Roman'] = getLookupTableFactory(function (t) { + t['space'] = 250; + t['exclam'] = 333; + t['quotedbl'] = 408; + t['numbersign'] = 500; + t['dollar'] = 500; + t['percent'] = 833; + t['ampersand'] = 778; + t['quoteright'] = 333; + t['parenleft'] = 333; + t['parenright'] = 333; + t['asterisk'] = 500; + t['plus'] = 564; + t['comma'] = 250; + t['hyphen'] = 333; + t['period'] = 250; + t['slash'] = 278; + t['zero'] = 500; + t['one'] = 500; + t['two'] = 500; + t['three'] = 500; + t['four'] = 500; + t['five'] = 500; + t['six'] = 500; + t['seven'] = 500; + t['eight'] = 500; + t['nine'] = 500; + t['colon'] = 278; + t['semicolon'] = 278; + t['less'] = 564; + t['equal'] = 564; + t['greater'] = 564; + t['question'] = 444; + t['at'] = 921; + t['A'] = 722; + t['B'] = 667; + t['C'] = 667; + t['D'] = 722; + t['E'] = 611; + t['F'] = 556; + t['G'] = 722; + t['H'] = 722; + t['I'] = 333; + t['J'] = 389; + t['K'] = 722; + t['L'] = 611; + t['M'] = 889; + t['N'] = 722; + t['O'] = 722; + t['P'] = 556; + t['Q'] = 722; + t['R'] = 667; + t['S'] = 556; + t['T'] = 611; + t['U'] = 722; + t['V'] = 722; + t['W'] = 944; + t['X'] = 722; + t['Y'] = 722; + t['Z'] = 611; + t['bracketleft'] = 333; + t['backslash'] = 278; + t['bracketright'] = 333; + t['asciicircum'] = 469; + t['underscore'] = 500; + t['quoteleft'] = 333; + t['a'] = 444; + t['b'] = 500; + t['c'] = 444; + t['d'] = 500; + t['e'] = 444; + t['f'] = 333; + t['g'] = 500; + t['h'] = 500; + t['i'] = 278; + t['j'] = 278; + t['k'] = 500; + t['l'] = 278; + t['m'] = 778; + t['n'] = 500; + t['o'] = 500; + t['p'] = 500; + t['q'] = 500; + t['r'] = 333; + t['s'] = 389; + t['t'] = 278; + t['u'] = 500; + t['v'] = 500; + t['w'] = 722; + t['x'] = 500; + t['y'] = 500; + t['z'] = 444; + t['braceleft'] = 480; + t['bar'] = 200; + t['braceright'] = 480; + t['asciitilde'] = 541; + t['exclamdown'] = 333; + t['cent'] = 500; + t['sterling'] = 500; + t['fraction'] = 167; + t['yen'] = 500; + t['florin'] = 500; + t['section'] = 500; + t['currency'] = 500; + t['quotesingle'] = 180; + t['quotedblleft'] = 444; + t['guillemotleft'] = 500; + t['guilsinglleft'] = 333; + t['guilsinglright'] = 333; + t['fi'] = 556; + t['fl'] = 556; + t['endash'] = 500; + t['dagger'] = 500; + t['daggerdbl'] = 500; + t['periodcentered'] = 250; + t['paragraph'] = 453; + t['bullet'] = 350; + t['quotesinglbase'] = 333; + t['quotedblbase'] = 444; + t['quotedblright'] = 444; + t['guillemotright'] = 500; + t['ellipsis'] = 1000; + t['perthousand'] = 1000; + t['questiondown'] = 444; + t['grave'] = 333; + t['acute'] = 333; + t['circumflex'] = 333; + t['tilde'] = 333; + t['macron'] = 333; + t['breve'] = 333; + t['dotaccent'] = 333; + t['dieresis'] = 333; + t['ring'] = 333; + t['cedilla'] = 333; + t['hungarumlaut'] = 333; + t['ogonek'] = 333; + t['caron'] = 333; + t['emdash'] = 1000; + t['AE'] = 889; + t['ordfeminine'] = 276; + t['Lslash'] = 611; + t['Oslash'] = 722; + t['OE'] = 889; + t['ordmasculine'] = 310; + t['ae'] = 667; + t['dotlessi'] = 278; + t['lslash'] = 278; + t['oslash'] = 500; + t['oe'] = 722; + t['germandbls'] = 500; + t['Idieresis'] = 333; + t['eacute'] = 444; + t['abreve'] = 444; + t['uhungarumlaut'] = 500; + t['ecaron'] = 444; + t['Ydieresis'] = 722; + t['divide'] = 564; + t['Yacute'] = 722; + t['Acircumflex'] = 722; + t['aacute'] = 444; + t['Ucircumflex'] = 722; + t['yacute'] = 500; + t['scommaaccent'] = 389; + t['ecircumflex'] = 444; + t['Uring'] = 722; + t['Udieresis'] = 722; + t['aogonek'] = 444; + t['Uacute'] = 722; + t['uogonek'] = 500; + t['Edieresis'] = 611; + t['Dcroat'] = 722; + t['commaaccent'] = 250; + t['copyright'] = 760; + t['Emacron'] = 611; + t['ccaron'] = 444; + t['aring'] = 444; + t['Ncommaaccent'] = 722; + t['lacute'] = 278; + t['agrave'] = 444; + t['Tcommaaccent'] = 611; + t['Cacute'] = 667; + t['atilde'] = 444; + t['Edotaccent'] = 611; + t['scaron'] = 389; + t['scedilla'] = 389; + t['iacute'] = 278; + t['lozenge'] = 471; + t['Rcaron'] = 667; + t['Gcommaaccent'] = 722; + t['ucircumflex'] = 500; + t['acircumflex'] = 444; + t['Amacron'] = 722; + t['rcaron'] = 333; + t['ccedilla'] = 444; + t['Zdotaccent'] = 611; + t['Thorn'] = 556; + t['Omacron'] = 722; + t['Racute'] = 667; + t['Sacute'] = 556; + t['dcaron'] = 588; + t['Umacron'] = 722; + t['uring'] = 500; + t['threesuperior'] = 300; + t['Ograve'] = 722; + t['Agrave'] = 722; + t['Abreve'] = 722; + t['multiply'] = 564; + t['uacute'] = 500; + t['Tcaron'] = 611; + t['partialdiff'] = 476; + t['ydieresis'] = 500; + t['Nacute'] = 722; + t['icircumflex'] = 278; + t['Ecircumflex'] = 611; + t['adieresis'] = 444; + t['edieresis'] = 444; + t['cacute'] = 444; + t['nacute'] = 500; + t['umacron'] = 500; + t['Ncaron'] = 722; + t['Iacute'] = 333; + t['plusminus'] = 564; + t['brokenbar'] = 200; + t['registered'] = 760; + t['Gbreve'] = 722; + t['Idotaccent'] = 333; + t['summation'] = 600; + t['Egrave'] = 611; + t['racute'] = 333; + t['omacron'] = 500; + t['Zacute'] = 611; + t['Zcaron'] = 611; + t['greaterequal'] = 549; + t['Eth'] = 722; + t['Ccedilla'] = 667; + t['lcommaaccent'] = 278; + t['tcaron'] = 326; + t['eogonek'] = 444; + t['Uogonek'] = 722; + t['Aacute'] = 722; + t['Adieresis'] = 722; + t['egrave'] = 444; + t['zacute'] = 444; + t['iogonek'] = 278; + t['Oacute'] = 722; + t['oacute'] = 500; + t['amacron'] = 444; + t['sacute'] = 389; + t['idieresis'] = 278; + t['Ocircumflex'] = 722; + t['Ugrave'] = 722; + t['Delta'] = 612; + t['thorn'] = 500; + t['twosuperior'] = 300; + t['Odieresis'] = 722; + t['mu'] = 500; + t['igrave'] = 278; + t['ohungarumlaut'] = 500; + t['Eogonek'] = 611; + t['dcroat'] = 500; + t['threequarters'] = 750; + t['Scedilla'] = 556; + t['lcaron'] = 344; + t['Kcommaaccent'] = 722; + t['Lacute'] = 611; + t['trademark'] = 980; + t['edotaccent'] = 444; + t['Igrave'] = 333; + t['Imacron'] = 333; + t['Lcaron'] = 611; + t['onehalf'] = 750; + t['lessequal'] = 549; + t['ocircumflex'] = 500; + t['ntilde'] = 500; + t['Uhungarumlaut'] = 722; + t['Eacute'] = 611; + t['emacron'] = 444; + t['gbreve'] = 500; + t['onequarter'] = 750; + t['Scaron'] = 556; + t['Scommaaccent'] = 556; + t['Ohungarumlaut'] = 722; + t['degree'] = 400; + t['ograve'] = 500; + t['Ccaron'] = 667; + t['ugrave'] = 500; + t['radical'] = 453; + t['Dcaron'] = 722; + t['rcommaaccent'] = 333; + t['Ntilde'] = 722; + t['otilde'] = 500; + t['Rcommaaccent'] = 667; + t['Lcommaaccent'] = 611; + t['Atilde'] = 722; + t['Aogonek'] = 722; + t['Aring'] = 722; + t['Otilde'] = 722; + t['zdotaccent'] = 444; + t['Ecaron'] = 611; + t['Iogonek'] = 333; + t['kcommaaccent'] = 500; + t['minus'] = 564; + t['Icircumflex'] = 333; + t['ncaron'] = 500; + t['tcommaaccent'] = 278; + t['logicalnot'] = 564; + t['odieresis'] = 500; + t['udieresis'] = 500; + t['notequal'] = 549; + t['gcommaaccent'] = 500; + t['eth'] = 500; + t['zcaron'] = 444; + t['ncommaaccent'] = 500; + t['onesuperior'] = 300; + t['imacron'] = 278; + t['Euro'] = 500; + }); + t['Times-Bold'] = getLookupTableFactory(function (t) { + t['space'] = 250; + t['exclam'] = 333; + t['quotedbl'] = 555; + t['numbersign'] = 500; + t['dollar'] = 500; + t['percent'] = 1000; + t['ampersand'] = 833; + t['quoteright'] = 333; + t['parenleft'] = 333; + t['parenright'] = 333; + t['asterisk'] = 500; + t['plus'] = 570; + t['comma'] = 250; + t['hyphen'] = 333; + t['period'] = 250; + t['slash'] = 278; + t['zero'] = 500; + t['one'] = 500; + t['two'] = 500; + t['three'] = 500; + t['four'] = 500; + t['five'] = 500; + t['six'] = 500; + t['seven'] = 500; + t['eight'] = 500; + t['nine'] = 500; + t['colon'] = 333; + t['semicolon'] = 333; + t['less'] = 570; + t['equal'] = 570; + t['greater'] = 570; + t['question'] = 500; + t['at'] = 930; + t['A'] = 722; + t['B'] = 667; + t['C'] = 722; + t['D'] = 722; + t['E'] = 667; + t['F'] = 611; + t['G'] = 778; + t['H'] = 778; + t['I'] = 389; + t['J'] = 500; + t['K'] = 778; + t['L'] = 667; + t['M'] = 944; + t['N'] = 722; + t['O'] = 778; + t['P'] = 611; + t['Q'] = 778; + t['R'] = 722; + t['S'] = 556; + t['T'] = 667; + t['U'] = 722; + t['V'] = 722; + t['W'] = 1000; + t['X'] = 722; + t['Y'] = 722; + t['Z'] = 667; + t['bracketleft'] = 333; + t['backslash'] = 278; + t['bracketright'] = 333; + t['asciicircum'] = 581; + t['underscore'] = 500; + t['quoteleft'] = 333; + t['a'] = 500; + t['b'] = 556; + t['c'] = 444; + t['d'] = 556; + t['e'] = 444; + t['f'] = 333; + t['g'] = 500; + t['h'] = 556; + t['i'] = 278; + t['j'] = 333; + t['k'] = 556; + t['l'] = 278; + t['m'] = 833; + t['n'] = 556; + t['o'] = 500; + t['p'] = 556; + t['q'] = 556; + t['r'] = 444; + t['s'] = 389; + t['t'] = 333; + t['u'] = 556; + t['v'] = 500; + t['w'] = 722; + t['x'] = 500; + t['y'] = 500; + t['z'] = 444; + t['braceleft'] = 394; + t['bar'] = 220; + t['braceright'] = 394; + t['asciitilde'] = 520; + t['exclamdown'] = 333; + t['cent'] = 500; + t['sterling'] = 500; + t['fraction'] = 167; + t['yen'] = 500; + t['florin'] = 500; + t['section'] = 500; + t['currency'] = 500; + t['quotesingle'] = 278; + t['quotedblleft'] = 500; + t['guillemotleft'] = 500; + t['guilsinglleft'] = 333; + t['guilsinglright'] = 333; + t['fi'] = 556; + t['fl'] = 556; + t['endash'] = 500; + t['dagger'] = 500; + t['daggerdbl'] = 500; + t['periodcentered'] = 250; + t['paragraph'] = 540; + t['bullet'] = 350; + t['quotesinglbase'] = 333; + t['quotedblbase'] = 500; + t['quotedblright'] = 500; + t['guillemotright'] = 500; + t['ellipsis'] = 1000; + t['perthousand'] = 1000; + t['questiondown'] = 500; + t['grave'] = 333; + t['acute'] = 333; + t['circumflex'] = 333; + t['tilde'] = 333; + t['macron'] = 333; + t['breve'] = 333; + t['dotaccent'] = 333; + t['dieresis'] = 333; + t['ring'] = 333; + t['cedilla'] = 333; + t['hungarumlaut'] = 333; + t['ogonek'] = 333; + t['caron'] = 333; + t['emdash'] = 1000; + t['AE'] = 1000; + t['ordfeminine'] = 300; + t['Lslash'] = 667; + t['Oslash'] = 778; + t['OE'] = 1000; + t['ordmasculine'] = 330; + t['ae'] = 722; + t['dotlessi'] = 278; + t['lslash'] = 278; + t['oslash'] = 500; + t['oe'] = 722; + t['germandbls'] = 556; + t['Idieresis'] = 389; + t['eacute'] = 444; + t['abreve'] = 500; + t['uhungarumlaut'] = 556; + t['ecaron'] = 444; + t['Ydieresis'] = 722; + t['divide'] = 570; + t['Yacute'] = 722; + t['Acircumflex'] = 722; + t['aacute'] = 500; + t['Ucircumflex'] = 722; + t['yacute'] = 500; + t['scommaaccent'] = 389; + t['ecircumflex'] = 444; + t['Uring'] = 722; + t['Udieresis'] = 722; + t['aogonek'] = 500; + t['Uacute'] = 722; + t['uogonek'] = 556; + t['Edieresis'] = 667; + t['Dcroat'] = 722; + t['commaaccent'] = 250; + t['copyright'] = 747; + t['Emacron'] = 667; + t['ccaron'] = 444; + t['aring'] = 500; + t['Ncommaaccent'] = 722; + t['lacute'] = 278; + t['agrave'] = 500; + t['Tcommaaccent'] = 667; + t['Cacute'] = 722; + t['atilde'] = 500; + t['Edotaccent'] = 667; + t['scaron'] = 389; + t['scedilla'] = 389; + t['iacute'] = 278; + t['lozenge'] = 494; + t['Rcaron'] = 722; + t['Gcommaaccent'] = 778; + t['ucircumflex'] = 556; + t['acircumflex'] = 500; + t['Amacron'] = 722; + t['rcaron'] = 444; + t['ccedilla'] = 444; + t['Zdotaccent'] = 667; + t['Thorn'] = 611; + t['Omacron'] = 778; + t['Racute'] = 722; + t['Sacute'] = 556; + t['dcaron'] = 672; + t['Umacron'] = 722; + t['uring'] = 556; + t['threesuperior'] = 300; + t['Ograve'] = 778; + t['Agrave'] = 722; + t['Abreve'] = 722; + t['multiply'] = 570; + t['uacute'] = 556; + t['Tcaron'] = 667; + t['partialdiff'] = 494; + t['ydieresis'] = 500; + t['Nacute'] = 722; + t['icircumflex'] = 278; + t['Ecircumflex'] = 667; + t['adieresis'] = 500; + t['edieresis'] = 444; + t['cacute'] = 444; + t['nacute'] = 556; + t['umacron'] = 556; + t['Ncaron'] = 722; + t['Iacute'] = 389; + t['plusminus'] = 570; + t['brokenbar'] = 220; + t['registered'] = 747; + t['Gbreve'] = 778; + t['Idotaccent'] = 389; + t['summation'] = 600; + t['Egrave'] = 667; + t['racute'] = 444; + t['omacron'] = 500; + t['Zacute'] = 667; + t['Zcaron'] = 667; + t['greaterequal'] = 549; + t['Eth'] = 722; + t['Ccedilla'] = 722; + t['lcommaaccent'] = 278; + t['tcaron'] = 416; + t['eogonek'] = 444; + t['Uogonek'] = 722; + t['Aacute'] = 722; + t['Adieresis'] = 722; + t['egrave'] = 444; + t['zacute'] = 444; + t['iogonek'] = 278; + t['Oacute'] = 778; + t['oacute'] = 500; + t['amacron'] = 500; + t['sacute'] = 389; + t['idieresis'] = 278; + t['Ocircumflex'] = 778; + t['Ugrave'] = 722; + t['Delta'] = 612; + t['thorn'] = 556; + t['twosuperior'] = 300; + t['Odieresis'] = 778; + t['mu'] = 556; + t['igrave'] = 278; + t['ohungarumlaut'] = 500; + t['Eogonek'] = 667; + t['dcroat'] = 556; + t['threequarters'] = 750; + t['Scedilla'] = 556; + t['lcaron'] = 394; + t['Kcommaaccent'] = 778; + t['Lacute'] = 667; + t['trademark'] = 1000; + t['edotaccent'] = 444; + t['Igrave'] = 389; + t['Imacron'] = 389; + t['Lcaron'] = 667; + t['onehalf'] = 750; + t['lessequal'] = 549; + t['ocircumflex'] = 500; + t['ntilde'] = 556; + t['Uhungarumlaut'] = 722; + t['Eacute'] = 667; + t['emacron'] = 444; + t['gbreve'] = 500; + t['onequarter'] = 750; + t['Scaron'] = 556; + t['Scommaaccent'] = 556; + t['Ohungarumlaut'] = 778; + t['degree'] = 400; + t['ograve'] = 500; + t['Ccaron'] = 722; + t['ugrave'] = 556; + t['radical'] = 549; + t['Dcaron'] = 722; + t['rcommaaccent'] = 444; + t['Ntilde'] = 722; + t['otilde'] = 500; + t['Rcommaaccent'] = 722; + t['Lcommaaccent'] = 667; + t['Atilde'] = 722; + t['Aogonek'] = 722; + t['Aring'] = 722; + t['Otilde'] = 778; + t['zdotaccent'] = 444; + t['Ecaron'] = 667; + t['Iogonek'] = 389; + t['kcommaaccent'] = 556; + t['minus'] = 570; + t['Icircumflex'] = 389; + t['ncaron'] = 556; + t['tcommaaccent'] = 333; + t['logicalnot'] = 570; + t['odieresis'] = 500; + t['udieresis'] = 556; + t['notequal'] = 549; + t['gcommaaccent'] = 500; + t['eth'] = 500; + t['zcaron'] = 444; + t['ncommaaccent'] = 556; + t['onesuperior'] = 300; + t['imacron'] = 278; + t['Euro'] = 500; + }); + t['Times-BoldItalic'] = getLookupTableFactory(function (t) { + t['space'] = 250; + t['exclam'] = 389; + t['quotedbl'] = 555; + t['numbersign'] = 500; + t['dollar'] = 500; + t['percent'] = 833; + t['ampersand'] = 778; + t['quoteright'] = 333; + t['parenleft'] = 333; + t['parenright'] = 333; + t['asterisk'] = 500; + t['plus'] = 570; + t['comma'] = 250; + t['hyphen'] = 333; + t['period'] = 250; + t['slash'] = 278; + t['zero'] = 500; + t['one'] = 500; + t['two'] = 500; + t['three'] = 500; + t['four'] = 500; + t['five'] = 500; + t['six'] = 500; + t['seven'] = 500; + t['eight'] = 500; + t['nine'] = 500; + t['colon'] = 333; + t['semicolon'] = 333; + t['less'] = 570; + t['equal'] = 570; + t['greater'] = 570; + t['question'] = 500; + t['at'] = 832; + t['A'] = 667; + t['B'] = 667; + t['C'] = 667; + t['D'] = 722; + t['E'] = 667; + t['F'] = 667; + t['G'] = 722; + t['H'] = 778; + t['I'] = 389; + t['J'] = 500; + t['K'] = 667; + t['L'] = 611; + t['M'] = 889; + t['N'] = 722; + t['O'] = 722; + t['P'] = 611; + t['Q'] = 722; + t['R'] = 667; + t['S'] = 556; + t['T'] = 611; + t['U'] = 722; + t['V'] = 667; + t['W'] = 889; + t['X'] = 667; + t['Y'] = 611; + t['Z'] = 611; + t['bracketleft'] = 333; + t['backslash'] = 278; + t['bracketright'] = 333; + t['asciicircum'] = 570; + t['underscore'] = 500; + t['quoteleft'] = 333; + t['a'] = 500; + t['b'] = 500; + t['c'] = 444; + t['d'] = 500; + t['e'] = 444; + t['f'] = 333; + t['g'] = 500; + t['h'] = 556; + t['i'] = 278; + t['j'] = 278; + t['k'] = 500; + t['l'] = 278; + t['m'] = 778; + t['n'] = 556; + t['o'] = 500; + t['p'] = 500; + t['q'] = 500; + t['r'] = 389; + t['s'] = 389; + t['t'] = 278; + t['u'] = 556; + t['v'] = 444; + t['w'] = 667; + t['x'] = 500; + t['y'] = 444; + t['z'] = 389; + t['braceleft'] = 348; + t['bar'] = 220; + t['braceright'] = 348; + t['asciitilde'] = 570; + t['exclamdown'] = 389; + t['cent'] = 500; + t['sterling'] = 500; + t['fraction'] = 167; + t['yen'] = 500; + t['florin'] = 500; + t['section'] = 500; + t['currency'] = 500; + t['quotesingle'] = 278; + t['quotedblleft'] = 500; + t['guillemotleft'] = 500; + t['guilsinglleft'] = 333; + t['guilsinglright'] = 333; + t['fi'] = 556; + t['fl'] = 556; + t['endash'] = 500; + t['dagger'] = 500; + t['daggerdbl'] = 500; + t['periodcentered'] = 250; + t['paragraph'] = 500; + t['bullet'] = 350; + t['quotesinglbase'] = 333; + t['quotedblbase'] = 500; + t['quotedblright'] = 500; + t['guillemotright'] = 500; + t['ellipsis'] = 1000; + t['perthousand'] = 1000; + t['questiondown'] = 500; + t['grave'] = 333; + t['acute'] = 333; + t['circumflex'] = 333; + t['tilde'] = 333; + t['macron'] = 333; + t['breve'] = 333; + t['dotaccent'] = 333; + t['dieresis'] = 333; + t['ring'] = 333; + t['cedilla'] = 333; + t['hungarumlaut'] = 333; + t['ogonek'] = 333; + t['caron'] = 333; + t['emdash'] = 1000; + t['AE'] = 944; + t['ordfeminine'] = 266; + t['Lslash'] = 611; + t['Oslash'] = 722; + t['OE'] = 944; + t['ordmasculine'] = 300; + t['ae'] = 722; + t['dotlessi'] = 278; + t['lslash'] = 278; + t['oslash'] = 500; + t['oe'] = 722; + t['germandbls'] = 500; + t['Idieresis'] = 389; + t['eacute'] = 444; + t['abreve'] = 500; + t['uhungarumlaut'] = 556; + t['ecaron'] = 444; + t['Ydieresis'] = 611; + t['divide'] = 570; + t['Yacute'] = 611; + t['Acircumflex'] = 667; + t['aacute'] = 500; + t['Ucircumflex'] = 722; + t['yacute'] = 444; + t['scommaaccent'] = 389; + t['ecircumflex'] = 444; + t['Uring'] = 722; + t['Udieresis'] = 722; + t['aogonek'] = 500; + t['Uacute'] = 722; + t['uogonek'] = 556; + t['Edieresis'] = 667; + t['Dcroat'] = 722; + t['commaaccent'] = 250; + t['copyright'] = 747; + t['Emacron'] = 667; + t['ccaron'] = 444; + t['aring'] = 500; + t['Ncommaaccent'] = 722; + t['lacute'] = 278; + t['agrave'] = 500; + t['Tcommaaccent'] = 611; + t['Cacute'] = 667; + t['atilde'] = 500; + t['Edotaccent'] = 667; + t['scaron'] = 389; + t['scedilla'] = 389; + t['iacute'] = 278; + t['lozenge'] = 494; + t['Rcaron'] = 667; + t['Gcommaaccent'] = 722; + t['ucircumflex'] = 556; + t['acircumflex'] = 500; + t['Amacron'] = 667; + t['rcaron'] = 389; + t['ccedilla'] = 444; + t['Zdotaccent'] = 611; + t['Thorn'] = 611; + t['Omacron'] = 722; + t['Racute'] = 667; + t['Sacute'] = 556; + t['dcaron'] = 608; + t['Umacron'] = 722; + t['uring'] = 556; + t['threesuperior'] = 300; + t['Ograve'] = 722; + t['Agrave'] = 667; + t['Abreve'] = 667; + t['multiply'] = 570; + t['uacute'] = 556; + t['Tcaron'] = 611; + t['partialdiff'] = 494; + t['ydieresis'] = 444; + t['Nacute'] = 722; + t['icircumflex'] = 278; + t['Ecircumflex'] = 667; + t['adieresis'] = 500; + t['edieresis'] = 444; + t['cacute'] = 444; + t['nacute'] = 556; + t['umacron'] = 556; + t['Ncaron'] = 722; + t['Iacute'] = 389; + t['plusminus'] = 570; + t['brokenbar'] = 220; + t['registered'] = 747; + t['Gbreve'] = 722; + t['Idotaccent'] = 389; + t['summation'] = 600; + t['Egrave'] = 667; + t['racute'] = 389; + t['omacron'] = 500; + t['Zacute'] = 611; + t['Zcaron'] = 611; + t['greaterequal'] = 549; + t['Eth'] = 722; + t['Ccedilla'] = 667; + t['lcommaaccent'] = 278; + t['tcaron'] = 366; + t['eogonek'] = 444; + t['Uogonek'] = 722; + t['Aacute'] = 667; + t['Adieresis'] = 667; + t['egrave'] = 444; + t['zacute'] = 389; + t['iogonek'] = 278; + t['Oacute'] = 722; + t['oacute'] = 500; + t['amacron'] = 500; + t['sacute'] = 389; + t['idieresis'] = 278; + t['Ocircumflex'] = 722; + t['Ugrave'] = 722; + t['Delta'] = 612; + t['thorn'] = 500; + t['twosuperior'] = 300; + t['Odieresis'] = 722; + t['mu'] = 576; + t['igrave'] = 278; + t['ohungarumlaut'] = 500; + t['Eogonek'] = 667; + t['dcroat'] = 500; + t['threequarters'] = 750; + t['Scedilla'] = 556; + t['lcaron'] = 382; + t['Kcommaaccent'] = 667; + t['Lacute'] = 611; + t['trademark'] = 1000; + t['edotaccent'] = 444; + t['Igrave'] = 389; + t['Imacron'] = 389; + t['Lcaron'] = 611; + t['onehalf'] = 750; + t['lessequal'] = 549; + t['ocircumflex'] = 500; + t['ntilde'] = 556; + t['Uhungarumlaut'] = 722; + t['Eacute'] = 667; + t['emacron'] = 444; + t['gbreve'] = 500; + t['onequarter'] = 750; + t['Scaron'] = 556; + t['Scommaaccent'] = 556; + t['Ohungarumlaut'] = 722; + t['degree'] = 400; + t['ograve'] = 500; + t['Ccaron'] = 667; + t['ugrave'] = 556; + t['radical'] = 549; + t['Dcaron'] = 722; + t['rcommaaccent'] = 389; + t['Ntilde'] = 722; + t['otilde'] = 500; + t['Rcommaaccent'] = 667; + t['Lcommaaccent'] = 611; + t['Atilde'] = 667; + t['Aogonek'] = 667; + t['Aring'] = 667; + t['Otilde'] = 722; + t['zdotaccent'] = 389; + t['Ecaron'] = 667; + t['Iogonek'] = 389; + t['kcommaaccent'] = 500; + t['minus'] = 606; + t['Icircumflex'] = 389; + t['ncaron'] = 556; + t['tcommaaccent'] = 278; + t['logicalnot'] = 606; + t['odieresis'] = 500; + t['udieresis'] = 556; + t['notequal'] = 549; + t['gcommaaccent'] = 500; + t['eth'] = 500; + t['zcaron'] = 389; + t['ncommaaccent'] = 556; + t['onesuperior'] = 300; + t['imacron'] = 278; + t['Euro'] = 500; + }); + t['Times-Italic'] = getLookupTableFactory(function (t) { + t['space'] = 250; + t['exclam'] = 333; + t['quotedbl'] = 420; + t['numbersign'] = 500; + t['dollar'] = 500; + t['percent'] = 833; + t['ampersand'] = 778; + t['quoteright'] = 333; + t['parenleft'] = 333; + t['parenright'] = 333; + t['asterisk'] = 500; + t['plus'] = 675; + t['comma'] = 250; + t['hyphen'] = 333; + t['period'] = 250; + t['slash'] = 278; + t['zero'] = 500; + t['one'] = 500; + t['two'] = 500; + t['three'] = 500; + t['four'] = 500; + t['five'] = 500; + t['six'] = 500; + t['seven'] = 500; + t['eight'] = 500; + t['nine'] = 500; + t['colon'] = 333; + t['semicolon'] = 333; + t['less'] = 675; + t['equal'] = 675; + t['greater'] = 675; + t['question'] = 500; + t['at'] = 920; + t['A'] = 611; + t['B'] = 611; + t['C'] = 667; + t['D'] = 722; + t['E'] = 611; + t['F'] = 611; + t['G'] = 722; + t['H'] = 722; + t['I'] = 333; + t['J'] = 444; + t['K'] = 667; + t['L'] = 556; + t['M'] = 833; + t['N'] = 667; + t['O'] = 722; + t['P'] = 611; + t['Q'] = 722; + t['R'] = 611; + t['S'] = 500; + t['T'] = 556; + t['U'] = 722; + t['V'] = 611; + t['W'] = 833; + t['X'] = 611; + t['Y'] = 556; + t['Z'] = 556; + t['bracketleft'] = 389; + t['backslash'] = 278; + t['bracketright'] = 389; + t['asciicircum'] = 422; + t['underscore'] = 500; + t['quoteleft'] = 333; + t['a'] = 500; + t['b'] = 500; + t['c'] = 444; + t['d'] = 500; + t['e'] = 444; + t['f'] = 278; + t['g'] = 500; + t['h'] = 500; + t['i'] = 278; + t['j'] = 278; + t['k'] = 444; + t['l'] = 278; + t['m'] = 722; + t['n'] = 500; + t['o'] = 500; + t['p'] = 500; + t['q'] = 500; + t['r'] = 389; + t['s'] = 389; + t['t'] = 278; + t['u'] = 500; + t['v'] = 444; + t['w'] = 667; + t['x'] = 444; + t['y'] = 444; + t['z'] = 389; + t['braceleft'] = 400; + t['bar'] = 275; + t['braceright'] = 400; + t['asciitilde'] = 541; + t['exclamdown'] = 389; + t['cent'] = 500; + t['sterling'] = 500; + t['fraction'] = 167; + t['yen'] = 500; + t['florin'] = 500; + t['section'] = 500; + t['currency'] = 500; + t['quotesingle'] = 214; + t['quotedblleft'] = 556; + t['guillemotleft'] = 500; + t['guilsinglleft'] = 333; + t['guilsinglright'] = 333; + t['fi'] = 500; + t['fl'] = 500; + t['endash'] = 500; + t['dagger'] = 500; + t['daggerdbl'] = 500; + t['periodcentered'] = 250; + t['paragraph'] = 523; + t['bullet'] = 350; + t['quotesinglbase'] = 333; + t['quotedblbase'] = 556; + t['quotedblright'] = 556; + t['guillemotright'] = 500; + t['ellipsis'] = 889; + t['perthousand'] = 1000; + t['questiondown'] = 500; + t['grave'] = 333; + t['acute'] = 333; + t['circumflex'] = 333; + t['tilde'] = 333; + t['macron'] = 333; + t['breve'] = 333; + t['dotaccent'] = 333; + t['dieresis'] = 333; + t['ring'] = 333; + t['cedilla'] = 333; + t['hungarumlaut'] = 333; + t['ogonek'] = 333; + t['caron'] = 333; + t['emdash'] = 889; + t['AE'] = 889; + t['ordfeminine'] = 276; + t['Lslash'] = 556; + t['Oslash'] = 722; + t['OE'] = 944; + t['ordmasculine'] = 310; + t['ae'] = 667; + t['dotlessi'] = 278; + t['lslash'] = 278; + t['oslash'] = 500; + t['oe'] = 667; + t['germandbls'] = 500; + t['Idieresis'] = 333; + t['eacute'] = 444; + t['abreve'] = 500; + t['uhungarumlaut'] = 500; + t['ecaron'] = 444; + t['Ydieresis'] = 556; + t['divide'] = 675; + t['Yacute'] = 556; + t['Acircumflex'] = 611; + t['aacute'] = 500; + t['Ucircumflex'] = 722; + t['yacute'] = 444; + t['scommaaccent'] = 389; + t['ecircumflex'] = 444; + t['Uring'] = 722; + t['Udieresis'] = 722; + t['aogonek'] = 500; + t['Uacute'] = 722; + t['uogonek'] = 500; + t['Edieresis'] = 611; + t['Dcroat'] = 722; + t['commaaccent'] = 250; + t['copyright'] = 760; + t['Emacron'] = 611; + t['ccaron'] = 444; + t['aring'] = 500; + t['Ncommaaccent'] = 667; + t['lacute'] = 278; + t['agrave'] = 500; + t['Tcommaaccent'] = 556; + t['Cacute'] = 667; + t['atilde'] = 500; + t['Edotaccent'] = 611; + t['scaron'] = 389; + t['scedilla'] = 389; + t['iacute'] = 278; + t['lozenge'] = 471; + t['Rcaron'] = 611; + t['Gcommaaccent'] = 722; + t['ucircumflex'] = 500; + t['acircumflex'] = 500; + t['Amacron'] = 611; + t['rcaron'] = 389; + t['ccedilla'] = 444; + t['Zdotaccent'] = 556; + t['Thorn'] = 611; + t['Omacron'] = 722; + t['Racute'] = 611; + t['Sacute'] = 500; + t['dcaron'] = 544; + t['Umacron'] = 722; + t['uring'] = 500; + t['threesuperior'] = 300; + t['Ograve'] = 722; + t['Agrave'] = 611; + t['Abreve'] = 611; + t['multiply'] = 675; + t['uacute'] = 500; + t['Tcaron'] = 556; + t['partialdiff'] = 476; + t['ydieresis'] = 444; + t['Nacute'] = 667; + t['icircumflex'] = 278; + t['Ecircumflex'] = 611; + t['adieresis'] = 500; + t['edieresis'] = 444; + t['cacute'] = 444; + t['nacute'] = 500; + t['umacron'] = 500; + t['Ncaron'] = 667; + t['Iacute'] = 333; + t['plusminus'] = 675; + t['brokenbar'] = 275; + t['registered'] = 760; + t['Gbreve'] = 722; + t['Idotaccent'] = 333; + t['summation'] = 600; + t['Egrave'] = 611; + t['racute'] = 389; + t['omacron'] = 500; + t['Zacute'] = 556; + t['Zcaron'] = 556; + t['greaterequal'] = 549; + t['Eth'] = 722; + t['Ccedilla'] = 667; + t['lcommaaccent'] = 278; + t['tcaron'] = 300; + t['eogonek'] = 444; + t['Uogonek'] = 722; + t['Aacute'] = 611; + t['Adieresis'] = 611; + t['egrave'] = 444; + t['zacute'] = 389; + t['iogonek'] = 278; + t['Oacute'] = 722; + t['oacute'] = 500; + t['amacron'] = 500; + t['sacute'] = 389; + t['idieresis'] = 278; + t['Ocircumflex'] = 722; + t['Ugrave'] = 722; + t['Delta'] = 612; + t['thorn'] = 500; + t['twosuperior'] = 300; + t['Odieresis'] = 722; + t['mu'] = 500; + t['igrave'] = 278; + t['ohungarumlaut'] = 500; + t['Eogonek'] = 611; + t['dcroat'] = 500; + t['threequarters'] = 750; + t['Scedilla'] = 500; + t['lcaron'] = 300; + t['Kcommaaccent'] = 667; + t['Lacute'] = 556; + t['trademark'] = 980; + t['edotaccent'] = 444; + t['Igrave'] = 333; + t['Imacron'] = 333; + t['Lcaron'] = 611; + t['onehalf'] = 750; + t['lessequal'] = 549; + t['ocircumflex'] = 500; + t['ntilde'] = 500; + t['Uhungarumlaut'] = 722; + t['Eacute'] = 611; + t['emacron'] = 444; + t['gbreve'] = 500; + t['onequarter'] = 750; + t['Scaron'] = 500; + t['Scommaaccent'] = 500; + t['Ohungarumlaut'] = 722; + t['degree'] = 400; + t['ograve'] = 500; + t['Ccaron'] = 667; + t['ugrave'] = 500; + t['radical'] = 453; + t['Dcaron'] = 722; + t['rcommaaccent'] = 389; + t['Ntilde'] = 667; + t['otilde'] = 500; + t['Rcommaaccent'] = 611; + t['Lcommaaccent'] = 556; + t['Atilde'] = 611; + t['Aogonek'] = 611; + t['Aring'] = 611; + t['Otilde'] = 722; + t['zdotaccent'] = 389; + t['Ecaron'] = 611; + t['Iogonek'] = 333; + t['kcommaaccent'] = 444; + t['minus'] = 675; + t['Icircumflex'] = 333; + t['ncaron'] = 500; + t['tcommaaccent'] = 278; + t['logicalnot'] = 675; + t['odieresis'] = 500; + t['udieresis'] = 500; + t['notequal'] = 549; + t['gcommaaccent'] = 500; + t['eth'] = 500; + t['zcaron'] = 389; + t['ncommaaccent'] = 500; + t['onesuperior'] = 300; + t['imacron'] = 278; + t['Euro'] = 500; + }); + t['ZapfDingbats'] = getLookupTableFactory(function (t) { + t['space'] = 278; + t['a1'] = 974; + t['a2'] = 961; + t['a202'] = 974; + t['a3'] = 980; + t['a4'] = 719; + t['a5'] = 789; + t['a119'] = 790; + t['a118'] = 791; + t['a117'] = 690; + t['a11'] = 960; + t['a12'] = 939; + t['a13'] = 549; + t['a14'] = 855; + t['a15'] = 911; + t['a16'] = 933; + t['a105'] = 911; + t['a17'] = 945; + t['a18'] = 974; + t['a19'] = 755; + t['a20'] = 846; + t['a21'] = 762; + t['a22'] = 761; + t['a23'] = 571; + t['a24'] = 677; + t['a25'] = 763; + t['a26'] = 760; + t['a27'] = 759; + t['a28'] = 754; + t['a6'] = 494; + t['a7'] = 552; + t['a8'] = 537; + t['a9'] = 577; + t['a10'] = 692; + t['a29'] = 786; + t['a30'] = 788; + t['a31'] = 788; + t['a32'] = 790; + t['a33'] = 793; + t['a34'] = 794; + t['a35'] = 816; + t['a36'] = 823; + t['a37'] = 789; + t['a38'] = 841; + t['a39'] = 823; + t['a40'] = 833; + t['a41'] = 816; + t['a42'] = 831; + t['a43'] = 923; + t['a44'] = 744; + t['a45'] = 723; + t['a46'] = 749; + t['a47'] = 790; + t['a48'] = 792; + t['a49'] = 695; + t['a50'] = 776; + t['a51'] = 768; + t['a52'] = 792; + t['a53'] = 759; + t['a54'] = 707; + t['a55'] = 708; + t['a56'] = 682; + t['a57'] = 701; + t['a58'] = 826; + t['a59'] = 815; + t['a60'] = 789; + t['a61'] = 789; + t['a62'] = 707; + t['a63'] = 687; + t['a64'] = 696; + t['a65'] = 689; + t['a66'] = 786; + t['a67'] = 787; + t['a68'] = 713; + t['a69'] = 791; + t['a70'] = 785; + t['a71'] = 791; + t['a72'] = 873; + t['a73'] = 761; + t['a74'] = 762; + t['a203'] = 762; + t['a75'] = 759; + t['a204'] = 759; + t['a76'] = 892; + t['a77'] = 892; + t['a78'] = 788; + t['a79'] = 784; + t['a81'] = 438; + t['a82'] = 138; + t['a83'] = 277; + t['a84'] = 415; + t['a97'] = 392; + t['a98'] = 392; + t['a99'] = 668; + t['a100'] = 668; + t['a89'] = 390; + t['a90'] = 390; + t['a93'] = 317; + t['a94'] = 317; + t['a91'] = 276; + t['a92'] = 276; + t['a205'] = 509; + t['a85'] = 509; + t['a206'] = 410; + t['a86'] = 410; + t['a87'] = 234; + t['a88'] = 234; + t['a95'] = 334; + t['a96'] = 334; + t['a101'] = 732; + t['a102'] = 544; + t['a103'] = 544; + t['a104'] = 910; + t['a106'] = 667; + t['a107'] = 760; + t['a108'] = 760; + t['a112'] = 776; + t['a111'] = 595; + t['a110'] = 694; + t['a109'] = 626; + t['a120'] = 788; + t['a121'] = 788; + t['a122'] = 788; + t['a123'] = 788; + t['a124'] = 788; + t['a125'] = 788; + t['a126'] = 788; + t['a127'] = 788; + t['a128'] = 788; + t['a129'] = 788; + t['a130'] = 788; + t['a131'] = 788; + t['a132'] = 788; + t['a133'] = 788; + t['a134'] = 788; + t['a135'] = 788; + t['a136'] = 788; + t['a137'] = 788; + t['a138'] = 788; + t['a139'] = 788; + t['a140'] = 788; + t['a141'] = 788; + t['a142'] = 788; + t['a143'] = 788; + t['a144'] = 788; + t['a145'] = 788; + t['a146'] = 788; + t['a147'] = 788; + t['a148'] = 788; + t['a149'] = 788; + t['a150'] = 788; + t['a151'] = 788; + t['a152'] = 788; + t['a153'] = 788; + t['a154'] = 788; + t['a155'] = 788; + t['a156'] = 788; + t['a157'] = 788; + t['a158'] = 788; + t['a159'] = 788; + t['a160'] = 894; + t['a161'] = 838; + t['a163'] = 1016; + t['a164'] = 458; + t['a196'] = 748; + t['a165'] = 924; + t['a192'] = 748; + t['a166'] = 918; + t['a167'] = 927; + t['a168'] = 928; + t['a169'] = 928; + t['a170'] = 834; + t['a171'] = 873; + t['a172'] = 828; + t['a173'] = 924; + t['a162'] = 924; + t['a174'] = 917; + t['a175'] = 930; + t['a176'] = 931; + t['a177'] = 463; + t['a178'] = 883; + t['a179'] = 836; + t['a193'] = 836; + t['a180'] = 867; + t['a199'] = 867; + t['a181'] = 696; + t['a200'] = 696; + t['a182'] = 874; + t['a201'] = 874; + t['a183'] = 760; + t['a184'] = 946; + t['a197'] = 771; + t['a185'] = 865; + t['a194'] = 771; + t['a198'] = 888; + t['a186'] = 967; + t['a195'] = 888; + t['a187'] = 831; + t['a188'] = 873; + t['a189'] = 927; + t['a190'] = 970; + t['a191'] = 918; + }); +}); +exports.getMetrics = getMetrics; + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var Uint32ArrayView = sharedUtil.Uint32ArrayView; +var MurmurHash3_64 = function MurmurHash3_64Closure(seed) { + var MASK_HIGH = 0xffff0000; + var MASK_LOW = 0xffff; + function MurmurHash3_64(seed) { + var SEED = 0xc3d2e1f0; + this.h1 = seed ? seed & 0xffffffff : SEED; + this.h2 = seed ? seed & 0xffffffff : SEED; + } + var alwaysUseUint32ArrayView = false; + try { + new Uint32Array(new Uint8Array(5).buffer, 0, 1); + } catch (e) { + alwaysUseUint32ArrayView = true; + } + MurmurHash3_64.prototype = { + update: function MurmurHash3_64_update(input) { + var useUint32ArrayView = alwaysUseUint32ArrayView; + var i; + if (typeof input === 'string') { + var data = new Uint8Array(input.length * 2); + var length = 0; + for (i = 0; i < input.length; i++) { + var code = input.charCodeAt(i); + if (code <= 0xff) { + data[length++] = code; + } else { + data[length++] = code >>> 8; + data[length++] = code & 0xff; + } + } + } else if (input instanceof Uint8Array) { + data = input; + length = data.length; + } else if (typeof input === 'object' && 'length' in input) { + data = input; + length = data.length; + useUint32ArrayView = true; + } else { + throw new Error('Wrong data format in MurmurHash3_64_update. ' + 'Input must be a string or array.'); + } + var blockCounts = length >> 2; + var tailLength = length - blockCounts * 4; + var dataUint32 = useUint32ArrayView ? new Uint32ArrayView(data, blockCounts) : new Uint32Array(data.buffer, 0, blockCounts); + var k1 = 0; + var k2 = 0; + var h1 = this.h1; + var h2 = this.h2; + var C1 = 0xcc9e2d51; + var C2 = 0x1b873593; + var C1_LOW = C1 & MASK_LOW; + var C2_LOW = C2 & MASK_LOW; + for (i = 0; i < blockCounts; i++) { + if (i & 1) { + k1 = dataUint32[i]; + k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW; + k1 = k1 << 15 | k1 >>> 17; + k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW; + h1 ^= k1; + h1 = h1 << 13 | h1 >>> 19; + h1 = h1 * 5 + 0xe6546b64; + } else { + k2 = dataUint32[i]; + k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW; + k2 = k2 << 15 | k2 >>> 17; + k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW; + h2 ^= k2; + h2 = h2 << 13 | h2 >>> 19; + h2 = h2 * 5 + 0xe6546b64; + } + } + k1 = 0; + switch (tailLength) { + case 3: + k1 ^= data[blockCounts * 4 + 2] << 16; + case 2: + k1 ^= data[blockCounts * 4 + 1] << 8; + case 1: + k1 ^= data[blockCounts * 4]; + k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW; + k1 = k1 << 15 | k1 >>> 17; + k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW; + if (blockCounts & 1) { + h1 ^= k1; + } else { + h2 ^= k1; + } + } + this.h1 = h1; + this.h2 = h2; + return this; + }, + hexdigest: function MurmurHash3_64_hexdigest() { + var h1 = this.h1; + var h2 = this.h2; + h1 ^= h2 >>> 1; + h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW; + h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16; + h1 ^= h2 >>> 1; + h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW; + h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16; + h1 ^= h2 >>> 1; + for (var i = 0, arr = [ + h1, + h2 + ], str = ''; i < arr.length; i++) { + var hex = (arr[i] >>> 0).toString(16); + while (hex.length < 8) { + hex = '0' + hex; + } + str += hex; + } + return str; + } + }; + return MurmurHash3_64; +}(); +exports.MurmurHash3_64 = MurmurHash3_64; + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var corePrimitives = __w_pdfjs_require__(1); +var coreFunction = __w_pdfjs_require__(6); +var coreColorSpace = __w_pdfjs_require__(3); +var UNSUPPORTED_FEATURES = sharedUtil.UNSUPPORTED_FEATURES; +var MissingDataException = sharedUtil.MissingDataException; +var Util = sharedUtil.Util; +var assert = sharedUtil.assert; +var error = sharedUtil.error; +var info = sharedUtil.info; +var warn = sharedUtil.warn; +var isStream = corePrimitives.isStream; +var PDFFunction = coreFunction.PDFFunction; +var ColorSpace = coreColorSpace.ColorSpace; +var ShadingType = { + FUNCTION_BASED: 1, + AXIAL: 2, + RADIAL: 3, + FREE_FORM_MESH: 4, + LATTICE_FORM_MESH: 5, + COONS_PATCH_MESH: 6, + TENSOR_PATCH_MESH: 7 +}; +var Pattern = function PatternClosure() { + function Pattern() { + error('should not call Pattern constructor'); + } + Pattern.prototype = { + getPattern: function Pattern_getPattern(ctx) { + error('Should not call Pattern.getStyle: ' + ctx); + } + }; + Pattern.parseShading = function Pattern_parseShading(shading, matrix, xref, res, handler) { + var dict = isStream(shading) ? shading.dict : shading; + var type = dict.get('ShadingType'); + try { + switch (type) { + case ShadingType.AXIAL: + case ShadingType.RADIAL: + return new Shadings.RadialAxial(dict, matrix, xref, res); + case ShadingType.FREE_FORM_MESH: + case ShadingType.LATTICE_FORM_MESH: + case ShadingType.COONS_PATCH_MESH: + case ShadingType.TENSOR_PATCH_MESH: + return new Shadings.Mesh(shading, matrix, xref, res); + default: + throw new Error('Unsupported ShadingType: ' + type); + } + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + handler.send('UnsupportedFeature', { featureId: UNSUPPORTED_FEATURES.shadingPattern }); + warn(ex); + return new Shadings.Dummy(); + } + }; + return Pattern; +}(); +var Shadings = {}; +Shadings.SMALL_NUMBER = 1e-6; +Shadings.RadialAxial = function RadialAxialClosure() { + function RadialAxial(dict, matrix, xref, res) { + this.matrix = matrix; + this.coordsArr = dict.getArray('Coords'); + this.shadingType = dict.get('ShadingType'); + this.type = 'Pattern'; + var cs = dict.get('ColorSpace', 'CS'); + cs = ColorSpace.parse(cs, xref, res); + this.cs = cs; + var t0 = 0.0, t1 = 1.0; + if (dict.has('Domain')) { + var domainArr = dict.getArray('Domain'); + t0 = domainArr[0]; + t1 = domainArr[1]; + } + var extendStart = false, extendEnd = false; + if (dict.has('Extend')) { + var extendArr = dict.getArray('Extend'); + extendStart = extendArr[0]; + extendEnd = extendArr[1]; + } + if (this.shadingType === ShadingType.RADIAL && (!extendStart || !extendEnd)) { + var x1 = this.coordsArr[0]; + var y1 = this.coordsArr[1]; + var r1 = this.coordsArr[2]; + var x2 = this.coordsArr[3]; + var y2 = this.coordsArr[4]; + var r2 = this.coordsArr[5]; + var distance = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)); + if (r1 <= r2 + distance && r2 <= r1 + distance) { + warn('Unsupported radial gradient.'); + } + } + this.extendStart = extendStart; + this.extendEnd = extendEnd; + var fnObj = dict.get('Function'); + var fn = PDFFunction.parseArray(xref, fnObj); + var diff = t1 - t0; + var step = diff / 10; + var colorStops = this.colorStops = []; + if (t0 >= t1 || step <= 0) { + info('Bad shading domain.'); + return; + } + var color = new Float32Array(cs.numComps), ratio = new Float32Array(1); + var rgbColor; + for (var i = t0; i <= t1; i += step) { + ratio[0] = i; + fn(ratio, 0, color, 0); + rgbColor = cs.getRgb(color, 0); + var cssColor = Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]); + colorStops.push([ + (i - t0) / diff, + cssColor + ]); + } + var background = 'transparent'; + if (dict.has('Background')) { + rgbColor = cs.getRgb(dict.get('Background'), 0); + background = Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]); + } + if (!extendStart) { + colorStops.unshift([ + 0, + background + ]); + colorStops[1][0] += Shadings.SMALL_NUMBER; + } + if (!extendEnd) { + colorStops[colorStops.length - 1][0] -= Shadings.SMALL_NUMBER; + colorStops.push([ + 1, + background + ]); + } + this.colorStops = colorStops; + } + RadialAxial.prototype = { + getIR: function RadialAxial_getIR() { + var coordsArr = this.coordsArr; + var shadingType = this.shadingType; + var type, p0, p1, r0, r1; + if (shadingType === ShadingType.AXIAL) { + p0 = [ + coordsArr[0], + coordsArr[1] + ]; + p1 = [ + coordsArr[2], + coordsArr[3] + ]; + r0 = null; + r1 = null; + type = 'axial'; + } else if (shadingType === ShadingType.RADIAL) { + p0 = [ + coordsArr[0], + coordsArr[1] + ]; + p1 = [ + coordsArr[3], + coordsArr[4] + ]; + r0 = coordsArr[2]; + r1 = coordsArr[5]; + type = 'radial'; + } else { + error('getPattern type unknown: ' + shadingType); + } + var matrix = this.matrix; + if (matrix) { + p0 = Util.applyTransform(p0, matrix); + p1 = Util.applyTransform(p1, matrix); + if (shadingType === ShadingType.RADIAL) { + var scale = Util.singularValueDecompose2dScale(matrix); + r0 *= scale[0]; + r1 *= scale[1]; + } + } + return [ + 'RadialAxial', + type, + this.colorStops, + p0, + p1, + r0, + r1 + ]; + } + }; + return RadialAxial; +}(); +Shadings.Mesh = function MeshClosure() { + function MeshStreamReader(stream, context) { + this.stream = stream; + this.context = context; + this.buffer = 0; + this.bufferLength = 0; + var numComps = context.numComps; + this.tmpCompsBuf = new Float32Array(numComps); + var csNumComps = context.colorSpace.numComps; + this.tmpCsCompsBuf = context.colorFn ? new Float32Array(csNumComps) : this.tmpCompsBuf; + } + MeshStreamReader.prototype = { + get hasData() { + if (this.stream.end) { + return this.stream.pos < this.stream.end; + } + if (this.bufferLength > 0) { + return true; + } + var nextByte = this.stream.getByte(); + if (nextByte < 0) { + return false; + } + this.buffer = nextByte; + this.bufferLength = 8; + return true; + }, + readBits: function MeshStreamReader_readBits(n) { + var buffer = this.buffer; + var bufferLength = this.bufferLength; + if (n === 32) { + if (bufferLength === 0) { + return (this.stream.getByte() << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte()) >>> 0; + } + buffer = buffer << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte(); + var nextByte = this.stream.getByte(); + this.buffer = nextByte & (1 << bufferLength) - 1; + return (buffer << 8 - bufferLength | (nextByte & 0xFF) >> bufferLength) >>> 0; + } + if (n === 8 && bufferLength === 0) { + return this.stream.getByte(); + } + while (bufferLength < n) { + buffer = buffer << 8 | this.stream.getByte(); + bufferLength += 8; + } + bufferLength -= n; + this.bufferLength = bufferLength; + this.buffer = buffer & (1 << bufferLength) - 1; + return buffer >> bufferLength; + }, + align: function MeshStreamReader_align() { + this.buffer = 0; + this.bufferLength = 0; + }, + readFlag: function MeshStreamReader_readFlag() { + return this.readBits(this.context.bitsPerFlag); + }, + readCoordinate: function MeshStreamReader_readCoordinate() { + var bitsPerCoordinate = this.context.bitsPerCoordinate; + var xi = this.readBits(bitsPerCoordinate); + var yi = this.readBits(bitsPerCoordinate); + var decode = this.context.decode; + var scale = bitsPerCoordinate < 32 ? 1 / ((1 << bitsPerCoordinate) - 1) : 2.3283064365386963e-10; + return [ + xi * scale * (decode[1] - decode[0]) + decode[0], + yi * scale * (decode[3] - decode[2]) + decode[2] + ]; + }, + readComponents: function MeshStreamReader_readComponents() { + var numComps = this.context.numComps; + var bitsPerComponent = this.context.bitsPerComponent; + var scale = bitsPerComponent < 32 ? 1 / ((1 << bitsPerComponent) - 1) : 2.3283064365386963e-10; + var decode = this.context.decode; + var components = this.tmpCompsBuf; + for (var i = 0, j = 4; i < numComps; i++, j += 2) { + var ci = this.readBits(bitsPerComponent); + components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j]; + } + var color = this.tmpCsCompsBuf; + if (this.context.colorFn) { + this.context.colorFn(components, 0, color, 0); + } + return this.context.colorSpace.getRgb(color, 0); + } + }; + function decodeType4Shading(mesh, reader) { + var coords = mesh.coords; + var colors = mesh.colors; + var operators = []; + var ps = []; + var verticesLeft = 0; + while (reader.hasData) { + var f = reader.readFlag(); + var coord = reader.readCoordinate(); + var color = reader.readComponents(); + if (verticesLeft === 0) { + assert(0 <= f && f <= 2, 'Unknown type4 flag'); + switch (f) { + case 0: + verticesLeft = 3; + break; + case 1: + ps.push(ps[ps.length - 2], ps[ps.length - 1]); + verticesLeft = 1; + break; + case 2: + ps.push(ps[ps.length - 3], ps[ps.length - 1]); + verticesLeft = 1; + break; + } + operators.push(f); + } + ps.push(coords.length); + coords.push(coord); + colors.push(color); + verticesLeft--; + reader.align(); + } + mesh.figures.push({ + type: 'triangles', + coords: new Int32Array(ps), + colors: new Int32Array(ps) + }); + } + function decodeType5Shading(mesh, reader, verticesPerRow) { + var coords = mesh.coords; + var colors = mesh.colors; + var ps = []; + while (reader.hasData) { + var coord = reader.readCoordinate(); + var color = reader.readComponents(); + ps.push(coords.length); + coords.push(coord); + colors.push(color); + } + mesh.figures.push({ + type: 'lattice', + coords: new Int32Array(ps), + colors: new Int32Array(ps), + verticesPerRow: verticesPerRow + }); + } + var MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3; + var MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20; + var TRIANGLE_DENSITY = 20; + var getB = function getBClosure() { + function buildB(count) { + var lut = []; + for (var i = 0; i <= count; i++) { + var t = i / count, t_ = 1 - t; + lut.push(new Float32Array([ + t_ * t_ * t_, + 3 * t * t_ * t_, + 3 * t * t * t_, + t * t * t + ])); + } + return lut; + } + var cache = []; + return function getB(count) { + if (!cache[count]) { + cache[count] = buildB(count); + } + return cache[count]; + }; + }(); + function buildFigureFromPatch(mesh, index) { + var figure = mesh.figures[index]; + assert(figure.type === 'patch', 'Unexpected patch mesh figure'); + var coords = mesh.coords, colors = mesh.colors; + var pi = figure.coords; + var ci = figure.colors; + var figureMinX = Math.min(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]); + var figureMinY = Math.min(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]); + var figureMaxX = Math.max(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]); + var figureMaxY = Math.max(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]); + var splitXBy = Math.ceil((figureMaxX - figureMinX) * TRIANGLE_DENSITY / (mesh.bounds[2] - mesh.bounds[0])); + splitXBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy)); + var splitYBy = Math.ceil((figureMaxY - figureMinY) * TRIANGLE_DENSITY / (mesh.bounds[3] - mesh.bounds[1])); + splitYBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy)); + var verticesPerRow = splitXBy + 1; + var figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow); + var figureColors = new Int32Array((splitYBy + 1) * verticesPerRow); + var k = 0; + var cl = new Uint8Array(3), cr = new Uint8Array(3); + var c0 = colors[ci[0]], c1 = colors[ci[1]], c2 = colors[ci[2]], c3 = colors[ci[3]]; + var bRow = getB(splitYBy), bCol = getB(splitXBy); + for (var row = 0; row <= splitYBy; row++) { + cl[0] = (c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy | 0; + cl[1] = (c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy | 0; + cl[2] = (c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy | 0; + cr[0] = (c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy | 0; + cr[1] = (c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy | 0; + cr[2] = (c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy | 0; + for (var col = 0; col <= splitXBy; col++, k++) { + if ((row === 0 || row === splitYBy) && (col === 0 || col === splitXBy)) { + continue; + } + var x = 0, y = 0; + var q = 0; + for (var i = 0; i <= 3; i++) { + for (var j = 0; j <= 3; j++, q++) { + var m = bRow[row][i] * bCol[col][j]; + x += coords[pi[q]][0] * m; + y += coords[pi[q]][1] * m; + } + } + figureCoords[k] = coords.length; + coords.push([ + x, + y + ]); + figureColors[k] = colors.length; + var newColor = new Uint8Array(3); + newColor[0] = (cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy | 0; + newColor[1] = (cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy | 0; + newColor[2] = (cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy | 0; + colors.push(newColor); + } + } + figureCoords[0] = pi[0]; + figureColors[0] = ci[0]; + figureCoords[splitXBy] = pi[3]; + figureColors[splitXBy] = ci[1]; + figureCoords[verticesPerRow * splitYBy] = pi[12]; + figureColors[verticesPerRow * splitYBy] = ci[2]; + figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15]; + figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3]; + mesh.figures[index] = { + type: 'lattice', + coords: figureCoords, + colors: figureColors, + verticesPerRow: verticesPerRow + }; + } + function decodeType6Shading(mesh, reader) { + var coords = mesh.coords; + var colors = mesh.colors; + var ps = new Int32Array(16); + var cs = new Int32Array(4); + while (reader.hasData) { + var f = reader.readFlag(); + assert(0 <= f && f <= 3, 'Unknown type6 flag'); + var i, ii; + var pi = coords.length; + for (i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) { + coords.push(reader.readCoordinate()); + } + var ci = colors.length; + for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) { + colors.push(reader.readComponents()); + } + var tmp1, tmp2, tmp3, tmp4; + switch (f) { + case 0: + ps[12] = pi + 3; + ps[13] = pi + 4; + ps[14] = pi + 5; + ps[15] = pi + 6; + ps[8] = pi + 2; + ps[11] = pi + 7; + ps[4] = pi + 1; + ps[7] = pi + 8; + ps[0] = pi; + ps[1] = pi + 11; + ps[2] = pi + 10; + ps[3] = pi + 9; + cs[2] = ci + 1; + cs[3] = ci + 2; + cs[0] = ci; + cs[1] = ci + 3; + break; + case 1: + tmp1 = ps[12]; + tmp2 = ps[13]; + tmp3 = ps[14]; + tmp4 = ps[15]; + ps[12] = tmp4; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = tmp3; + ps[11] = pi + 3; + ps[4] = tmp2; + ps[7] = pi + 4; + ps[0] = tmp1; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + tmp1 = cs[2]; + tmp2 = cs[3]; + cs[2] = tmp2; + cs[3] = ci; + cs[0] = tmp1; + cs[1] = ci + 1; + break; + case 2: + tmp1 = ps[15]; + tmp2 = ps[11]; + ps[12] = ps[3]; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = ps[7]; + ps[11] = pi + 3; + ps[4] = tmp2; + ps[7] = pi + 4; + ps[0] = tmp1; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + tmp1 = cs[3]; + cs[2] = cs[1]; + cs[3] = ci; + cs[0] = tmp1; + cs[1] = ci + 1; + break; + case 3: + ps[12] = ps[0]; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = ps[1]; + ps[11] = pi + 3; + ps[4] = ps[2]; + ps[7] = pi + 4; + ps[0] = ps[3]; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + cs[2] = cs[0]; + cs[3] = ci; + cs[0] = cs[1]; + cs[1] = ci + 1; + break; + } + ps[5] = coords.length; + coords.push([ + (-4 * coords[ps[0]][0] - coords[ps[15]][0] + 6 * (coords[ps[4]][0] + coords[ps[1]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[13]][0] + coords[ps[7]][0])) / 9, + (-4 * coords[ps[0]][1] - coords[ps[15]][1] + 6 * (coords[ps[4]][1] + coords[ps[1]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[13]][1] + coords[ps[7]][1])) / 9 + ]); + ps[6] = coords.length; + coords.push([ + (-4 * coords[ps[3]][0] - coords[ps[12]][0] + 6 * (coords[ps[2]][0] + coords[ps[7]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[4]][0] + coords[ps[14]][0])) / 9, + (-4 * coords[ps[3]][1] - coords[ps[12]][1] + 6 * (coords[ps[2]][1] + coords[ps[7]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[4]][1] + coords[ps[14]][1])) / 9 + ]); + ps[9] = coords.length; + coords.push([ + (-4 * coords[ps[12]][0] - coords[ps[3]][0] + 6 * (coords[ps[8]][0] + coords[ps[13]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[11]][0] + coords[ps[1]][0])) / 9, + (-4 * coords[ps[12]][1] - coords[ps[3]][1] + 6 * (coords[ps[8]][1] + coords[ps[13]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[11]][1] + coords[ps[1]][1])) / 9 + ]); + ps[10] = coords.length; + coords.push([ + (-4 * coords[ps[15]][0] - coords[ps[0]][0] + 6 * (coords[ps[11]][0] + coords[ps[14]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[2]][0] + coords[ps[8]][0])) / 9, + (-4 * coords[ps[15]][1] - coords[ps[0]][1] + 6 * (coords[ps[11]][1] + coords[ps[14]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[2]][1] + coords[ps[8]][1])) / 9 + ]); + mesh.figures.push({ + type: 'patch', + coords: new Int32Array(ps), + colors: new Int32Array(cs) + }); + } + } + function decodeType7Shading(mesh, reader) { + var coords = mesh.coords; + var colors = mesh.colors; + var ps = new Int32Array(16); + var cs = new Int32Array(4); + while (reader.hasData) { + var f = reader.readFlag(); + assert(0 <= f && f <= 3, 'Unknown type7 flag'); + var i, ii; + var pi = coords.length; + for (i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) { + coords.push(reader.readCoordinate()); + } + var ci = colors.length; + for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) { + colors.push(reader.readComponents()); + } + var tmp1, tmp2, tmp3, tmp4; + switch (f) { + case 0: + ps[12] = pi + 3; + ps[13] = pi + 4; + ps[14] = pi + 5; + ps[15] = pi + 6; + ps[8] = pi + 2; + ps[9] = pi + 13; + ps[10] = pi + 14; + ps[11] = pi + 7; + ps[4] = pi + 1; + ps[5] = pi + 12; + ps[6] = pi + 15; + ps[7] = pi + 8; + ps[0] = pi; + ps[1] = pi + 11; + ps[2] = pi + 10; + ps[3] = pi + 9; + cs[2] = ci + 1; + cs[3] = ci + 2; + cs[0] = ci; + cs[1] = ci + 3; + break; + case 1: + tmp1 = ps[12]; + tmp2 = ps[13]; + tmp3 = ps[14]; + tmp4 = ps[15]; + ps[12] = tmp4; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = tmp3; + ps[9] = pi + 9; + ps[10] = pi + 10; + ps[11] = pi + 3; + ps[4] = tmp2; + ps[5] = pi + 8; + ps[6] = pi + 11; + ps[7] = pi + 4; + ps[0] = tmp1; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + tmp1 = cs[2]; + tmp2 = cs[3]; + cs[2] = tmp2; + cs[3] = ci; + cs[0] = tmp1; + cs[1] = ci + 1; + break; + case 2: + tmp1 = ps[15]; + tmp2 = ps[11]; + ps[12] = ps[3]; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = ps[7]; + ps[9] = pi + 9; + ps[10] = pi + 10; + ps[11] = pi + 3; + ps[4] = tmp2; + ps[5] = pi + 8; + ps[6] = pi + 11; + ps[7] = pi + 4; + ps[0] = tmp1; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + tmp1 = cs[3]; + cs[2] = cs[1]; + cs[3] = ci; + cs[0] = tmp1; + cs[1] = ci + 1; + break; + case 3: + ps[12] = ps[0]; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = ps[1]; + ps[9] = pi + 9; + ps[10] = pi + 10; + ps[11] = pi + 3; + ps[4] = ps[2]; + ps[5] = pi + 8; + ps[6] = pi + 11; + ps[7] = pi + 4; + ps[0] = ps[3]; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + cs[2] = cs[0]; + cs[3] = ci; + cs[0] = cs[1]; + cs[1] = ci + 1; + break; + } + mesh.figures.push({ + type: 'patch', + coords: new Int32Array(ps), + colors: new Int32Array(cs) + }); + } + } + function updateBounds(mesh) { + var minX = mesh.coords[0][0], minY = mesh.coords[0][1], maxX = minX, maxY = minY; + for (var i = 1, ii = mesh.coords.length; i < ii; i++) { + var x = mesh.coords[i][0], y = mesh.coords[i][1]; + minX = minX > x ? x : minX; + minY = minY > y ? y : minY; + maxX = maxX < x ? x : maxX; + maxY = maxY < y ? y : maxY; + } + mesh.bounds = [ + minX, + minY, + maxX, + maxY + ]; + } + function packData(mesh) { + var i, ii, j, jj; + var coords = mesh.coords; + var coordsPacked = new Float32Array(coords.length * 2); + for (i = 0, j = 0, ii = coords.length; i < ii; i++) { + var xy = coords[i]; + coordsPacked[j++] = xy[0]; + coordsPacked[j++] = xy[1]; + } + mesh.coords = coordsPacked; + var colors = mesh.colors; + var colorsPacked = new Uint8Array(colors.length * 3); + for (i = 0, j = 0, ii = colors.length; i < ii; i++) { + var c = colors[i]; + colorsPacked[j++] = c[0]; + colorsPacked[j++] = c[1]; + colorsPacked[j++] = c[2]; + } + mesh.colors = colorsPacked; + var figures = mesh.figures; + for (i = 0, ii = figures.length; i < ii; i++) { + var figure = figures[i], ps = figure.coords, cs = figure.colors; + for (j = 0, jj = ps.length; j < jj; j++) { + ps[j] *= 2; + cs[j] *= 3; + } + } + } + function Mesh(stream, matrix, xref, res) { + assert(isStream(stream), 'Mesh data is not a stream'); + var dict = stream.dict; + this.matrix = matrix; + this.shadingType = dict.get('ShadingType'); + this.type = 'Pattern'; + this.bbox = dict.getArray('BBox'); + var cs = dict.get('ColorSpace', 'CS'); + cs = ColorSpace.parse(cs, xref, res); + this.cs = cs; + this.background = dict.has('Background') ? cs.getRgb(dict.get('Background'), 0) : null; + var fnObj = dict.get('Function'); + var fn = fnObj ? PDFFunction.parseArray(xref, fnObj) : null; + this.coords = []; + this.colors = []; + this.figures = []; + var decodeContext = { + bitsPerCoordinate: dict.get('BitsPerCoordinate'), + bitsPerComponent: dict.get('BitsPerComponent'), + bitsPerFlag: dict.get('BitsPerFlag'), + decode: dict.getArray('Decode'), + colorFn: fn, + colorSpace: cs, + numComps: fn ? 1 : cs.numComps + }; + var reader = new MeshStreamReader(stream, decodeContext); + var patchMesh = false; + switch (this.shadingType) { + case ShadingType.FREE_FORM_MESH: + decodeType4Shading(this, reader); + break; + case ShadingType.LATTICE_FORM_MESH: + var verticesPerRow = dict.get('VerticesPerRow') | 0; + assert(verticesPerRow >= 2, 'Invalid VerticesPerRow'); + decodeType5Shading(this, reader, verticesPerRow); + break; + case ShadingType.COONS_PATCH_MESH: + decodeType6Shading(this, reader); + patchMesh = true; + break; + case ShadingType.TENSOR_PATCH_MESH: + decodeType7Shading(this, reader); + patchMesh = true; + break; + default: + error('Unsupported mesh type.'); + break; + } + if (patchMesh) { + updateBounds(this); + for (var i = 0, ii = this.figures.length; i < ii; i++) { + buildFigureFromPatch(this, i); + } + } + updateBounds(this); + packData(this); + } + Mesh.prototype = { + getIR: function Mesh_getIR() { + return [ + 'Mesh', + this.shadingType, + this.coords, + this.colors, + this.figures, + this.bounds, + this.matrix, + this.bbox, + this.background + ]; + } + }; + return Mesh; +}(); +Shadings.Dummy = function DummyClosure() { + function Dummy() { + this.type = 'Pattern'; + } + Dummy.prototype = { + getIR: function Dummy_getIR() { + return ['Dummy']; + } + }; + return Dummy; +}(); +function getTilingPatternIR(operatorList, dict, args) { + var matrix = dict.getArray('Matrix'); + var bbox = dict.getArray('BBox'); + var xstep = dict.get('XStep'); + var ystep = dict.get('YStep'); + var paintType = dict.get('PaintType'); + var tilingType = dict.get('TilingType'); + return [ + 'TilingPattern', + args, + operatorList, + matrix, + bbox, + xstep, + ystep, + paintType, + tilingType + ]; +} +exports.Pattern = Pattern; +exports.getTilingPatternIR = getTilingPatternIR; + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var coreStream = __w_pdfjs_require__(2); +var coreChunkedStream = __w_pdfjs_require__(12); +var coreDocument = __w_pdfjs_require__(24); +var warn = sharedUtil.warn; +var createValidAbsoluteUrl = sharedUtil.createValidAbsoluteUrl; +var shadow = sharedUtil.shadow; +var NotImplementedException = sharedUtil.NotImplementedException; +var MissingDataException = sharedUtil.MissingDataException; +var createPromiseCapability = sharedUtil.createPromiseCapability; +var Util = sharedUtil.Util; +var Stream = coreStream.Stream; +var ChunkedStreamManager = coreChunkedStream.ChunkedStreamManager; +var PDFDocument = coreDocument.PDFDocument; +var BasePdfManager = function BasePdfManagerClosure() { + function BasePdfManager() { + throw new Error('Cannot initialize BaseManagerManager'); + } + BasePdfManager.prototype = { + get docId() { + return this._docId; + }, + get password() { + return this._password; + }, + get docBaseUrl() { + var docBaseUrl = null; + if (this._docBaseUrl) { + var absoluteUrl = createValidAbsoluteUrl(this._docBaseUrl); + if (absoluteUrl) { + docBaseUrl = absoluteUrl.href; + } else { + warn('Invalid absolute docBaseUrl: "' + this._docBaseUrl + '".'); + } + } + return shadow(this, 'docBaseUrl', docBaseUrl); + }, + onLoadedStream: function BasePdfManager_onLoadedStream() { + throw new NotImplementedException(); + }, + ensureDoc: function BasePdfManager_ensureDoc(prop, args) { + return this.ensure(this.pdfDocument, prop, args); + }, + ensureXRef: function BasePdfManager_ensureXRef(prop, args) { + return this.ensure(this.pdfDocument.xref, prop, args); + }, + ensureCatalog: function BasePdfManager_ensureCatalog(prop, args) { + return this.ensure(this.pdfDocument.catalog, prop, args); + }, + getPage: function BasePdfManager_getPage(pageIndex) { + return this.pdfDocument.getPage(pageIndex); + }, + cleanup: function BasePdfManager_cleanup() { + return this.pdfDocument.cleanup(); + }, + ensure: function BasePdfManager_ensure(obj, prop, args) { + return new NotImplementedException(); + }, + requestRange: function BasePdfManager_requestRange(begin, end) { + return new NotImplementedException(); + }, + requestLoadedStream: function BasePdfManager_requestLoadedStream() { + return new NotImplementedException(); + }, + sendProgressiveData: function BasePdfManager_sendProgressiveData(chunk) { + return new NotImplementedException(); + }, + updatePassword: function BasePdfManager_updatePassword(password) { + this._password = password; + }, + terminate: function BasePdfManager_terminate() { + return new NotImplementedException(); + } + }; + return BasePdfManager; +}(); +var LocalPdfManager = function LocalPdfManagerClosure() { + function LocalPdfManager(docId, data, password, evaluatorOptions, docBaseUrl) { + this._docId = docId; + this._password = password; + this._docBaseUrl = docBaseUrl; + this.evaluatorOptions = evaluatorOptions; + var stream = new Stream(data); + this.pdfDocument = new PDFDocument(this, stream); + this._loadedStreamCapability = createPromiseCapability(); + this._loadedStreamCapability.resolve(stream); + } + Util.inherit(LocalPdfManager, BasePdfManager, { + ensure: function LocalPdfManager_ensure(obj, prop, args) { + return new Promise(function (resolve, reject) { + try { + var value = obj[prop]; + var result; + if (typeof value === 'function') { + result = value.apply(obj, args); + } else { + result = value; + } + resolve(result); + } catch (e) { + reject(e); + } + }); + }, + requestRange: function LocalPdfManager_requestRange(begin, end) { + return Promise.resolve(); + }, + requestLoadedStream: function LocalPdfManager_requestLoadedStream() { + }, + onLoadedStream: function LocalPdfManager_onLoadedStream() { + return this._loadedStreamCapability.promise; + }, + terminate: function LocalPdfManager_terminate() { + } + }); + return LocalPdfManager; +}(); +var NetworkPdfManager = function NetworkPdfManagerClosure() { + function NetworkPdfManager(docId, pdfNetworkStream, args, evaluatorOptions, docBaseUrl) { + this._docId = docId; + this._password = args.password; + this._docBaseUrl = docBaseUrl; + this.msgHandler = args.msgHandler; + this.evaluatorOptions = evaluatorOptions; + var params = { + msgHandler: args.msgHandler, + url: args.url, + length: args.length, + disableAutoFetch: args.disableAutoFetch, + rangeChunkSize: args.rangeChunkSize + }; + this.streamManager = new ChunkedStreamManager(pdfNetworkStream, params); + this.pdfDocument = new PDFDocument(this, this.streamManager.getStream()); + } + Util.inherit(NetworkPdfManager, BasePdfManager, { + ensure: function NetworkPdfManager_ensure(obj, prop, args) { + var pdfManager = this; + return new Promise(function (resolve, reject) { + function ensureHelper() { + try { + var result; + var value = obj[prop]; + if (typeof value === 'function') { + result = value.apply(obj, args); + } else { + result = value; + } + resolve(result); + } catch (e) { + if (!(e instanceof MissingDataException)) { + reject(e); + return; + } + pdfManager.streamManager.requestRange(e.begin, e.end).then(ensureHelper, reject); + } + } + ensureHelper(); + }); + }, + requestRange: function NetworkPdfManager_requestRange(begin, end) { + return this.streamManager.requestRange(begin, end); + }, + requestLoadedStream: function NetworkPdfManager_requestLoadedStream() { + this.streamManager.requestAllChunks(); + }, + sendProgressiveData: function NetworkPdfManager_sendProgressiveData(chunk) { + this.streamManager.onReceiveData({ chunk: chunk }); + }, + onLoadedStream: function NetworkPdfManager_onLoadedStream() { + return this.streamManager.onLoadedStream(); + }, + terminate: function NetworkPdfManager_terminate() { + this.streamManager.abort(); + } + }); + return NetworkPdfManager; +}(); +exports.LocalPdfManager = LocalPdfManager; +exports.NetworkPdfManager = NetworkPdfManager; + +/***/ }), +/* 34 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var corePrimitives = __w_pdfjs_require__(1); +var error = sharedUtil.error; +var isSpace = sharedUtil.isSpace; +var EOF = corePrimitives.EOF; +var PostScriptParser = function PostScriptParserClosure() { + function PostScriptParser(lexer) { + this.lexer = lexer; + this.operators = []; + this.token = null; + this.prev = null; + } + PostScriptParser.prototype = { + nextToken: function PostScriptParser_nextToken() { + this.prev = this.token; + this.token = this.lexer.getToken(); + }, + accept: function PostScriptParser_accept(type) { + if (this.token.type === type) { + this.nextToken(); + return true; + } + return false; + }, + expect: function PostScriptParser_expect(type) { + if (this.accept(type)) { + return true; + } + error('Unexpected symbol: found ' + this.token.type + ' expected ' + type + '.'); + }, + parse: function PostScriptParser_parse() { + this.nextToken(); + this.expect(PostScriptTokenTypes.LBRACE); + this.parseBlock(); + this.expect(PostScriptTokenTypes.RBRACE); + return this.operators; + }, + parseBlock: function PostScriptParser_parseBlock() { + while (true) { + if (this.accept(PostScriptTokenTypes.NUMBER)) { + this.operators.push(this.prev.value); + } else if (this.accept(PostScriptTokenTypes.OPERATOR)) { + this.operators.push(this.prev.value); + } else if (this.accept(PostScriptTokenTypes.LBRACE)) { + this.parseCondition(); + } else { + return; + } + } + }, + parseCondition: function PostScriptParser_parseCondition() { + var conditionLocation = this.operators.length; + this.operators.push(null, null); + this.parseBlock(); + this.expect(PostScriptTokenTypes.RBRACE); + if (this.accept(PostScriptTokenTypes.IF)) { + this.operators[conditionLocation] = this.operators.length; + this.operators[conditionLocation + 1] = 'jz'; + } else if (this.accept(PostScriptTokenTypes.LBRACE)) { + var jumpLocation = this.operators.length; + this.operators.push(null, null); + var endOfTrue = this.operators.length; + this.parseBlock(); + this.expect(PostScriptTokenTypes.RBRACE); + this.expect(PostScriptTokenTypes.IFELSE); + this.operators[jumpLocation] = this.operators.length; + this.operators[jumpLocation + 1] = 'j'; + this.operators[conditionLocation] = endOfTrue; + this.operators[conditionLocation + 1] = 'jz'; + } else { + error('PS Function: error parsing conditional.'); + } + } + }; + return PostScriptParser; +}(); +var PostScriptTokenTypes = { + LBRACE: 0, + RBRACE: 1, + NUMBER: 2, + OPERATOR: 3, + IF: 4, + IFELSE: 5 +}; +var PostScriptToken = function PostScriptTokenClosure() { + function PostScriptToken(type, value) { + this.type = type; + this.value = value; + } + var opCache = Object.create(null); + PostScriptToken.getOperator = function PostScriptToken_getOperator(op) { + var opValue = opCache[op]; + if (opValue) { + return opValue; + } + return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op); + }; + PostScriptToken.LBRACE = new PostScriptToken(PostScriptTokenTypes.LBRACE, '{'); + PostScriptToken.RBRACE = new PostScriptToken(PostScriptTokenTypes.RBRACE, '}'); + PostScriptToken.IF = new PostScriptToken(PostScriptTokenTypes.IF, 'IF'); + PostScriptToken.IFELSE = new PostScriptToken(PostScriptTokenTypes.IFELSE, 'IFELSE'); + return PostScriptToken; +}(); +var PostScriptLexer = function PostScriptLexerClosure() { + function PostScriptLexer(stream) { + this.stream = stream; + this.nextChar(); + this.strBuf = []; + } + PostScriptLexer.prototype = { + nextChar: function PostScriptLexer_nextChar() { + return this.currentChar = this.stream.getByte(); + }, + getToken: function PostScriptLexer_getToken() { + var comment = false; + var ch = this.currentChar; + while (true) { + if (ch < 0) { + return EOF; + } + if (comment) { + if (ch === 0x0A || ch === 0x0D) { + comment = false; + } + } else if (ch === 0x25) { + comment = true; + } else if (!isSpace(ch)) { + break; + } + ch = this.nextChar(); + } + switch (ch | 0) { + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x2B: + case 0x2D: + case 0x2E: + return new PostScriptToken(PostScriptTokenTypes.NUMBER, this.getNumber()); + case 0x7B: + this.nextChar(); + return PostScriptToken.LBRACE; + case 0x7D: + this.nextChar(); + return PostScriptToken.RBRACE; + } + var strBuf = this.strBuf; + strBuf.length = 0; + strBuf[0] = String.fromCharCode(ch); + while ((ch = this.nextChar()) >= 0 && (ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A)) { + strBuf.push(String.fromCharCode(ch)); + } + var str = strBuf.join(''); + switch (str.toLowerCase()) { + case 'if': + return PostScriptToken.IF; + case 'ifelse': + return PostScriptToken.IFELSE; + default: + return PostScriptToken.getOperator(str); + } + }, + getNumber: function PostScriptLexer_getNumber() { + var ch = this.currentChar; + var strBuf = this.strBuf; + strBuf.length = 0; + strBuf[0] = String.fromCharCode(ch); + while ((ch = this.nextChar()) >= 0) { + if (ch >= 0x30 && ch <= 0x39 || ch === 0x2D || ch === 0x2E) { + strBuf.push(String.fromCharCode(ch)); + } else { + break; + } + } + var value = parseFloat(strBuf.join('')); + if (isNaN(value)) { + error('Invalid floating point number: ' + value); + } + return value; + } + }; + return PostScriptLexer; +}(); +exports.PostScriptLexer = PostScriptLexer; +exports.PostScriptParser = PostScriptParser; + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var sharedUtil = __w_pdfjs_require__(0); +var coreStream = __w_pdfjs_require__(2); +var coreEncodings = __w_pdfjs_require__(4); +var warn = sharedUtil.warn; +var isSpace = sharedUtil.isSpace; +var Stream = coreStream.Stream; +var getEncoding = coreEncodings.getEncoding; +var HINTING_ENABLED = false; +var Type1CharString = function Type1CharStringClosure() { + var COMMAND_MAP = { + 'hstem': [1], + 'vstem': [3], + 'vmoveto': [4], + 'rlineto': [5], + 'hlineto': [6], + 'vlineto': [7], + 'rrcurveto': [8], + 'callsubr': [10], + 'flex': [ + 12, + 35 + ], + 'drop': [ + 12, + 18 + ], + 'endchar': [14], + 'rmoveto': [21], + 'hmoveto': [22], + 'vhcurveto': [30], + 'hvcurveto': [31] + }; + function Type1CharString() { + this.width = 0; + this.lsb = 0; + this.flexing = false; + this.output = []; + this.stack = []; + } + Type1CharString.prototype = { + convert: function Type1CharString_convert(encoded, subrs, seacAnalysisEnabled) { + var count = encoded.length; + var error = false; + var wx, sbx, subrNumber; + for (var i = 0; i < count; i++) { + var value = encoded[i]; + if (value < 32) { + if (value === 12) { + value = (value << 8) + encoded[++i]; + } + switch (value) { + case 1: + if (!HINTING_ENABLED) { + this.stack = []; + break; + } + error = this.executeCommand(2, COMMAND_MAP.hstem); + break; + case 3: + if (!HINTING_ENABLED) { + this.stack = []; + break; + } + error = this.executeCommand(2, COMMAND_MAP.vstem); + break; + case 4: + if (this.flexing) { + if (this.stack.length < 1) { + error = true; + break; + } + var dy = this.stack.pop(); + this.stack.push(0, dy); + break; + } + error = this.executeCommand(1, COMMAND_MAP.vmoveto); + break; + case 5: + error = this.executeCommand(2, COMMAND_MAP.rlineto); + break; + case 6: + error = this.executeCommand(1, COMMAND_MAP.hlineto); + break; + case 7: + error = this.executeCommand(1, COMMAND_MAP.vlineto); + break; + case 8: + error = this.executeCommand(6, COMMAND_MAP.rrcurveto); + break; + case 9: + this.stack = []; + break; + case 10: + if (this.stack.length < 1) { + error = true; + break; + } + subrNumber = this.stack.pop(); + error = this.convert(subrs[subrNumber], subrs, seacAnalysisEnabled); + break; + case 11: + return error; + case 13: + if (this.stack.length < 2) { + error = true; + break; + } + wx = this.stack.pop(); + sbx = this.stack.pop(); + this.lsb = sbx; + this.width = wx; + this.stack.push(wx, sbx); + error = this.executeCommand(2, COMMAND_MAP.hmoveto); + break; + case 14: + this.output.push(COMMAND_MAP.endchar[0]); + break; + case 21: + if (this.flexing) { + break; + } + error = this.executeCommand(2, COMMAND_MAP.rmoveto); + break; + case 22: + if (this.flexing) { + this.stack.push(0); + break; + } + error = this.executeCommand(1, COMMAND_MAP.hmoveto); + break; + case 30: + error = this.executeCommand(4, COMMAND_MAP.vhcurveto); + break; + case 31: + error = this.executeCommand(4, COMMAND_MAP.hvcurveto); + break; + case (12 << 8) + 0: + this.stack = []; + break; + case (12 << 8) + 1: + if (!HINTING_ENABLED) { + this.stack = []; + break; + } + error = this.executeCommand(2, COMMAND_MAP.vstem); + break; + case (12 << 8) + 2: + if (!HINTING_ENABLED) { + this.stack = []; + break; + } + error = this.executeCommand(2, COMMAND_MAP.hstem); + break; + case (12 << 8) + 6: + if (seacAnalysisEnabled) { + this.seac = this.stack.splice(-4, 4); + error = this.executeCommand(0, COMMAND_MAP.endchar); + } else { + error = this.executeCommand(4, COMMAND_MAP.endchar); + } + break; + case (12 << 8) + 7: + if (this.stack.length < 4) { + error = true; + break; + } + this.stack.pop(); + wx = this.stack.pop(); + var sby = this.stack.pop(); + sbx = this.stack.pop(); + this.lsb = sbx; + this.width = wx; + this.stack.push(wx, sbx, sby); + error = this.executeCommand(3, COMMAND_MAP.rmoveto); + break; + case (12 << 8) + 12: + if (this.stack.length < 2) { + error = true; + break; + } + var num2 = this.stack.pop(); + var num1 = this.stack.pop(); + this.stack.push(num1 / num2); + break; + case (12 << 8) + 16: + if (this.stack.length < 2) { + error = true; + break; + } + subrNumber = this.stack.pop(); + var numArgs = this.stack.pop(); + if (subrNumber === 0 && numArgs === 3) { + var flexArgs = this.stack.splice(this.stack.length - 17, 17); + this.stack.push(flexArgs[2] + flexArgs[0], flexArgs[3] + flexArgs[1], flexArgs[4], flexArgs[5], flexArgs[6], flexArgs[7], flexArgs[8], flexArgs[9], flexArgs[10], flexArgs[11], flexArgs[12], flexArgs[13], flexArgs[14]); + error = this.executeCommand(13, COMMAND_MAP.flex, true); + this.flexing = false; + this.stack.push(flexArgs[15], flexArgs[16]); + } else if (subrNumber === 1 && numArgs === 0) { + this.flexing = true; + } + break; + case (12 << 8) + 17: + break; + case (12 << 8) + 33: + this.stack = []; + break; + default: + warn('Unknown type 1 charstring command of "' + value + '"'); + break; + } + if (error) { + break; + } + continue; + } else if (value <= 246) { + value = value - 139; + } else if (value <= 250) { + value = (value - 247) * 256 + encoded[++i] + 108; + } else if (value <= 254) { + value = -((value - 251) * 256) - encoded[++i] - 108; + } else { + value = (encoded[++i] & 0xff) << 24 | (encoded[++i] & 0xff) << 16 | (encoded[++i] & 0xff) << 8 | (encoded[++i] & 0xff) << 0; + } + this.stack.push(value); + } + return error; + }, + executeCommand: function (howManyArgs, command, keepStack) { + var stackLength = this.stack.length; + if (howManyArgs > stackLength) { + return true; + } + var start = stackLength - howManyArgs; + for (var i = start; i < stackLength; i++) { + var value = this.stack[i]; + if (value === (value | 0)) { + this.output.push(28, value >> 8 & 0xff, value & 0xff); + } else { + value = 65536 * value | 0; + this.output.push(255, value >> 24 & 0xFF, value >> 16 & 0xFF, value >> 8 & 0xFF, value & 0xFF); + } + } + this.output.push.apply(this.output, command); + if (keepStack) { + this.stack.splice(start, howManyArgs); + } else { + this.stack.length = 0; + } + return false; + } + }; + return Type1CharString; +}(); +var Type1Parser = function Type1ParserClosure() { + var EEXEC_ENCRYPT_KEY = 55665; + var CHAR_STRS_ENCRYPT_KEY = 4330; + function isHexDigit(code) { + return code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102; + } + function decrypt(data, key, discardNumber) { + if (discardNumber >= data.length) { + return new Uint8Array(0); + } + var r = key | 0, c1 = 52845, c2 = 22719, i, j; + for (i = 0; i < discardNumber; i++) { + r = (data[i] + r) * c1 + c2 & (1 << 16) - 1; + } + var count = data.length - discardNumber; + var decrypted = new Uint8Array(count); + for (i = discardNumber, j = 0; j < count; i++, j++) { + var value = data[i]; + decrypted[j] = value ^ r >> 8; + r = (value + r) * c1 + c2 & (1 << 16) - 1; + } + return decrypted; + } + function decryptAscii(data, key, discardNumber) { + var r = key | 0, c1 = 52845, c2 = 22719; + var count = data.length, maybeLength = count >>> 1; + var decrypted = new Uint8Array(maybeLength); + var i, j; + for (i = 0, j = 0; i < count; i++) { + var digit1 = data[i]; + if (!isHexDigit(digit1)) { + continue; + } + i++; + var digit2; + while (i < count && !isHexDigit(digit2 = data[i])) { + i++; + } + if (i < count) { + var value = parseInt(String.fromCharCode(digit1, digit2), 16); + decrypted[j++] = value ^ r >> 8; + r = (value + r) * c1 + c2 & (1 << 16) - 1; + } + } + return Array.prototype.slice.call(decrypted, discardNumber, j); + } + function isSpecial(c) { + return c === 0x2F || c === 0x5B || c === 0x5D || c === 0x7B || c === 0x7D || c === 0x28 || c === 0x29; + } + function Type1Parser(stream, encrypted, seacAnalysisEnabled) { + if (encrypted) { + var data = stream.getBytes(); + var isBinary = !(isHexDigit(data[0]) && isHexDigit(data[1]) && isHexDigit(data[2]) && isHexDigit(data[3])); + stream = new Stream(isBinary ? decrypt(data, EEXEC_ENCRYPT_KEY, 4) : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4)); + } + this.seacAnalysisEnabled = !!seacAnalysisEnabled; + this.stream = stream; + this.nextChar(); + } + Type1Parser.prototype = { + readNumberArray: function Type1Parser_readNumberArray() { + this.getToken(); + var array = []; + while (true) { + var token = this.getToken(); + if (token === null || token === ']' || token === '}') { + break; + } + array.push(parseFloat(token || 0)); + } + return array; + }, + readNumber: function Type1Parser_readNumber() { + var token = this.getToken(); + return parseFloat(token || 0); + }, + readInt: function Type1Parser_readInt() { + var token = this.getToken(); + return parseInt(token || 0, 10) | 0; + }, + readBoolean: function Type1Parser_readBoolean() { + var token = this.getToken(); + return token === 'true' ? 1 : 0; + }, + nextChar: function Type1_nextChar() { + return this.currentChar = this.stream.getByte(); + }, + getToken: function Type1Parser_getToken() { + var comment = false; + var ch = this.currentChar; + while (true) { + if (ch === -1) { + return null; + } + if (comment) { + if (ch === 0x0A || ch === 0x0D) { + comment = false; + } + } else if (ch === 0x25) { + comment = true; + } else if (!isSpace(ch)) { + break; + } + ch = this.nextChar(); + } + if (isSpecial(ch)) { + this.nextChar(); + return String.fromCharCode(ch); + } + var token = ''; + do { + token += String.fromCharCode(ch); + ch = this.nextChar(); + } while (ch >= 0 && !isSpace(ch) && !isSpecial(ch)); + return token; + }, + extractFontProgram: function Type1Parser_extractFontProgram() { + var stream = this.stream; + var subrs = [], charstrings = []; + var privateData = Object.create(null); + privateData['lenIV'] = 4; + var program = { + subrs: [], + charstrings: [], + properties: { 'privateData': privateData } + }; + var token, length, data, lenIV, encoded; + while ((token = this.getToken()) !== null) { + if (token !== '/') { + continue; + } + token = this.getToken(); + switch (token) { + case 'CharStrings': + this.getToken(); + this.getToken(); + this.getToken(); + this.getToken(); + while (true) { + token = this.getToken(); + if (token === null || token === 'end') { + break; + } + if (token !== '/') { + continue; + } + var glyph = this.getToken(); + length = this.readInt(); + this.getToken(); + data = stream.makeSubStream(stream.pos, length); + lenIV = program.properties.privateData['lenIV']; + encoded = decrypt(data.getBytes(), CHAR_STRS_ENCRYPT_KEY, lenIV); + stream.skip(length); + this.nextChar(); + token = this.getToken(); + if (token === 'noaccess') { + this.getToken(); + } + charstrings.push({ + glyph: glyph, + encoded: encoded + }); + } + break; + case 'Subrs': + this.readInt(); + this.getToken(); + while ((token = this.getToken()) === 'dup') { + var index = this.readInt(); + length = this.readInt(); + this.getToken(); + data = stream.makeSubStream(stream.pos, length); + lenIV = program.properties.privateData['lenIV']; + encoded = decrypt(data.getBytes(), CHAR_STRS_ENCRYPT_KEY, lenIV); + stream.skip(length); + this.nextChar(); + token = this.getToken(); + if (token === 'noaccess') { + this.getToken(); + } + subrs[index] = encoded; + } + break; + case 'BlueValues': + case 'OtherBlues': + case 'FamilyBlues': + case 'FamilyOtherBlues': + var blueArray = this.readNumberArray(); + if (blueArray.length > 0 && blueArray.length % 2 === 0 && HINTING_ENABLED) { + program.properties.privateData[token] = blueArray; + } + break; + case 'StemSnapH': + case 'StemSnapV': + program.properties.privateData[token] = this.readNumberArray(); + break; + case 'StdHW': + case 'StdVW': + program.properties.privateData[token] = this.readNumberArray()[0]; + break; + case 'BlueShift': + case 'lenIV': + case 'BlueFuzz': + case 'BlueScale': + case 'LanguageGroup': + case 'ExpansionFactor': + program.properties.privateData[token] = this.readNumber(); + break; + case 'ForceBold': + program.properties.privateData[token] = this.readBoolean(); + break; + } + } + for (var i = 0; i < charstrings.length; i++) { + glyph = charstrings[i].glyph; + encoded = charstrings[i].encoded; + var charString = new Type1CharString(); + var error = charString.convert(encoded, subrs, this.seacAnalysisEnabled); + var output = charString.output; + if (error) { + output = [14]; + } + program.charstrings.push({ + glyphName: glyph, + charstring: output, + width: charString.width, + lsb: charString.lsb, + seac: charString.seac + }); + } + return program; + }, + extractFontHeader: function Type1Parser_extractFontHeader(properties) { + var token; + while ((token = this.getToken()) !== null) { + if (token !== '/') { + continue; + } + token = this.getToken(); + switch (token) { + case 'FontMatrix': + var matrix = this.readNumberArray(); + properties.fontMatrix = matrix; + break; + case 'Encoding': + var encodingArg = this.getToken(); + var encoding; + if (!/^\d+$/.test(encodingArg)) { + encoding = getEncoding(encodingArg); + } else { + encoding = []; + var size = parseInt(encodingArg, 10) | 0; + this.getToken(); + for (var j = 0; j < size; j++) { + token = this.getToken(); + while (token !== 'dup' && token !== 'def') { + token = this.getToken(); + if (token === null) { + return; + } + } + if (token === 'def') { + break; + } + var index = this.readInt(); + this.getToken(); + var glyph = this.getToken(); + encoding[index] = glyph; + this.getToken(); + } + } + properties.builtInEncoding = encoding; + break; + case 'FontBBox': + var fontBBox = this.readNumberArray(); + properties.ascent = Math.max(fontBBox[3], fontBBox[1]); + properties.descent = Math.min(fontBBox[1], fontBBox[3]); + properties.ascentScaled = true; + break; + } + } + } + }; + return Type1Parser; +}(); +exports.Type1Parser = Type1Parser; + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) { +if (typeof PDFJS === 'undefined' || !PDFJS.compatibilityChecked) { + var globalScope = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : this; + var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || ''; + var isAndroid = /Android/.test(userAgent); + var isAndroidPre3 = /Android\s[0-2][^\d]/.test(userAgent); + var isAndroidPre5 = /Android\s[0-4][^\d]/.test(userAgent); + var isChrome = userAgent.indexOf('Chrom') >= 0; + var isChromeWithRangeBug = /Chrome\/(39|40)\./.test(userAgent); + var isIOSChrome = userAgent.indexOf('CriOS') >= 0; + var isIE = userAgent.indexOf('Trident') >= 0; + var isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent); + var isOpera = userAgent.indexOf('Opera') >= 0; + var isSafari = /Safari\//.test(userAgent) && !/(Chrome\/|Android\s)/.test(userAgent); + var hasDOM = typeof window === 'object' && typeof document === 'object'; + if (typeof PDFJS === 'undefined') { + globalScope.PDFJS = {}; + } + PDFJS.compatibilityChecked = true; + (function checkTypedArrayCompatibility() { + if (typeof Uint8Array !== 'undefined') { + if (typeof Uint8Array.prototype.subarray === 'undefined') { + Uint8Array.prototype.subarray = function subarray(start, end) { + return new Uint8Array(this.slice(start, end)); + }; + Float32Array.prototype.subarray = function subarray(start, end) { + return new Float32Array(this.slice(start, end)); + }; + } + if (typeof Float64Array === 'undefined') { + globalScope.Float64Array = Float32Array; + } + return; + } + function subarray(start, end) { + return new TypedArray(this.slice(start, end)); + } + function setArrayOffset(array, offset) { + if (arguments.length < 2) { + offset = 0; + } + for (var i = 0, n = array.length; i < n; ++i, ++offset) { + this[offset] = array[i] & 0xFF; + } + } + function TypedArray(arg1) { + var result, i, n; + if (typeof arg1 === 'number') { + result = []; + for (i = 0; i < arg1; ++i) { + result[i] = 0; + } + } else if ('slice' in arg1) { + result = arg1.slice(0); + } else { + result = []; + for (i = 0, n = arg1.length; i < n; ++i) { + result[i] = arg1[i]; + } + } + result.subarray = subarray; + result.buffer = result; + result.byteLength = result.length; + result.set = setArrayOffset; + if (typeof arg1 === 'object' && arg1.buffer) { + result.buffer = arg1.buffer; + } + return result; + } + globalScope.Uint8Array = TypedArray; + globalScope.Int8Array = TypedArray; + globalScope.Uint32Array = TypedArray; + globalScope.Int32Array = TypedArray; + globalScope.Uint16Array = TypedArray; + globalScope.Float32Array = TypedArray; + globalScope.Float64Array = TypedArray; + }()); + (function normalizeURLObject() { + if (!globalScope.URL) { + globalScope.URL = globalScope.webkitURL; + } + }()); + (function checkObjectDefinePropertyCompatibility() { + if (typeof Object.defineProperty !== 'undefined') { + var definePropertyPossible = true; + try { + if (hasDOM) { + Object.defineProperty(new Image(), 'id', { value: 'test' }); + } + var Test = function Test() { + }; + Test.prototype = { + get id() { + } + }; + Object.defineProperty(new Test(), 'id', { + value: '', + configurable: true, + enumerable: true, + writable: false + }); + } catch (e) { + definePropertyPossible = false; + } + if (definePropertyPossible) { + return; + } + } + Object.defineProperty = function objectDefineProperty(obj, name, def) { + delete obj[name]; + if ('get' in def) { + obj.__defineGetter__(name, def['get']); + } + if ('set' in def) { + obj.__defineSetter__(name, def['set']); + } + if ('value' in def) { + obj.__defineSetter__(name, function objectDefinePropertySetter(value) { + this.__defineGetter__(name, function objectDefinePropertyGetter() { + return value; + }); + return value; + }); + obj[name] = def.value; + } + }; + }()); + (function checkXMLHttpRequestResponseCompatibility() { + if (typeof XMLHttpRequest === 'undefined') { + return; + } + var xhrPrototype = XMLHttpRequest.prototype; + var xhr = new XMLHttpRequest(); + if (!('overrideMimeType' in xhr)) { + Object.defineProperty(xhrPrototype, 'overrideMimeType', { + value: function xmlHttpRequestOverrideMimeType(mimeType) { + } + }); + } + if ('responseType' in xhr) { + return; + } + Object.defineProperty(xhrPrototype, 'responseType', { + get: function xmlHttpRequestGetResponseType() { + return this._responseType || 'text'; + }, + set: function xmlHttpRequestSetResponseType(value) { + if (value === 'text' || value === 'arraybuffer') { + this._responseType = value; + if (value === 'arraybuffer' && typeof this.overrideMimeType === 'function') { + this.overrideMimeType('text/plain; charset=x-user-defined'); + } + } + } + }); + if (typeof VBArray !== 'undefined') { + Object.defineProperty(xhrPrototype, 'response', { + get: function xmlHttpRequestResponseGet() { + if (this.responseType === 'arraybuffer') { + return new Uint8Array(new VBArray(this.responseBody).toArray()); + } + return this.responseText; + } + }); + return; + } + Object.defineProperty(xhrPrototype, 'response', { + get: function xmlHttpRequestResponseGet() { + if (this.responseType !== 'arraybuffer') { + return this.responseText; + } + var text = this.responseText; + var i, n = text.length; + var result = new Uint8Array(n); + for (i = 0; i < n; ++i) { + result[i] = text.charCodeAt(i) & 0xFF; + } + return result.buffer; + } + }); + }()); + (function checkWindowBtoaCompatibility() { + if ('btoa' in globalScope) { + return; + } + var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + globalScope.btoa = function (chars) { + var buffer = ''; + var i, n; + for (i = 0, n = chars.length; i < n; i += 3) { + var b1 = chars.charCodeAt(i) & 0xFF; + var b2 = chars.charCodeAt(i + 1) & 0xFF; + var b3 = chars.charCodeAt(i + 2) & 0xFF; + var d1 = b1 >> 2, d2 = (b1 & 3) << 4 | b2 >> 4; + var d3 = i + 1 < n ? (b2 & 0xF) << 2 | b3 >> 6 : 64; + var d4 = i + 2 < n ? b3 & 0x3F : 64; + buffer += digits.charAt(d1) + digits.charAt(d2) + digits.charAt(d3) + digits.charAt(d4); + } + return buffer; + }; + }()); + (function checkWindowAtobCompatibility() { + if ('atob' in globalScope) { + return; + } + var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + globalScope.atob = function (input) { + input = input.replace(/=+$/, ''); + if (input.length % 4 === 1) { + throw new Error('bad atob input'); + } + for (var bc = 0, bs, buffer, idx = 0, output = ''; buffer = input.charAt(idx++); ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer, bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0) { + buffer = digits.indexOf(buffer); + } + return output; + }; + }()); + (function checkFunctionPrototypeBindCompatibility() { + if (typeof Function.prototype.bind !== 'undefined') { + return; + } + Function.prototype.bind = function functionPrototypeBind(obj) { + var fn = this, headArgs = Array.prototype.slice.call(arguments, 1); + var bound = function functionPrototypeBindBound() { + var args = headArgs.concat(Array.prototype.slice.call(arguments)); + return fn.apply(obj, args); + }; + return bound; + }; + }()); + (function checkDatasetProperty() { + if (!hasDOM) { + return; + } + var div = document.createElement('div'); + if ('dataset' in div) { + return; + } + Object.defineProperty(HTMLElement.prototype, 'dataset', { + get: function () { + if (this._dataset) { + return this._dataset; + } + var dataset = {}; + for (var j = 0, jj = this.attributes.length; j < jj; j++) { + var attribute = this.attributes[j]; + if (attribute.name.substring(0, 5) !== 'data-') { + continue; + } + var key = attribute.name.substring(5).replace(/\-([a-z])/g, function (all, ch) { + return ch.toUpperCase(); + }); + dataset[key] = attribute.value; + } + Object.defineProperty(this, '_dataset', { + value: dataset, + writable: false, + enumerable: false + }); + return dataset; + }, + enumerable: true + }); + }()); + (function checkClassListProperty() { + function changeList(element, itemName, add, remove) { + var s = element.className || ''; + var list = s.split(/\s+/g); + if (list[0] === '') { + list.shift(); + } + var index = list.indexOf(itemName); + if (index < 0 && add) { + list.push(itemName); + } + if (index >= 0 && remove) { + list.splice(index, 1); + } + element.className = list.join(' '); + return index >= 0; + } + if (!hasDOM) { + return; + } + var div = document.createElement('div'); + if ('classList' in div) { + return; + } + var classListPrototype = { + add: function (name) { + changeList(this.element, name, true, false); + }, + contains: function (name) { + return changeList(this.element, name, false, false); + }, + remove: function (name) { + changeList(this.element, name, false, true); + }, + toggle: function (name) { + changeList(this.element, name, true, true); + } + }; + Object.defineProperty(HTMLElement.prototype, 'classList', { + get: function () { + if (this._classList) { + return this._classList; + } + var classList = Object.create(classListPrototype, { + element: { + value: this, + writable: false, + enumerable: true + } + }); + Object.defineProperty(this, '_classList', { + value: classList, + writable: false, + enumerable: false + }); + return classList; + }, + enumerable: true + }); + }()); + (function checkWorkerConsoleCompatibility() { + if (typeof importScripts === 'undefined' || 'console' in globalScope) { + return; + } + var consoleTimer = {}; + var workerConsole = { + log: function log() { + var args = Array.prototype.slice.call(arguments); + globalScope.postMessage({ + targetName: 'main', + action: 'console_log', + data: args + }); + }, + error: function error() { + var args = Array.prototype.slice.call(arguments); + globalScope.postMessage({ + targetName: 'main', + action: 'console_error', + data: args + }); + }, + time: function time(name) { + consoleTimer[name] = Date.now(); + }, + timeEnd: function timeEnd(name) { + var time = consoleTimer[name]; + if (!time) { + throw new Error('Unknown timer name ' + name); + } + this.log('Timer:', name, Date.now() - time); + } + }; + globalScope.console = workerConsole; + }()); + (function checkConsoleCompatibility() { + if (!hasDOM) { + return; + } + if (!('console' in window)) { + window.console = { + log: function () { + }, + error: function () { + }, + warn: function () { + } + }; + return; + } + if (!('bind' in console.log)) { + console.log = function (fn) { + return function (msg) { + return fn(msg); + }; + }(console.log); + console.error = function (fn) { + return function (msg) { + return fn(msg); + }; + }(console.error); + console.warn = function (fn) { + return function (msg) { + return fn(msg); + }; + }(console.warn); + return; + } + }()); + (function checkOnClickCompatibility() { + function ignoreIfTargetDisabled(event) { + if (isDisabled(event.target)) { + event.stopPropagation(); + } + } + function isDisabled(node) { + return node.disabled || node.parentNode && isDisabled(node.parentNode); + } + if (isOpera) { + document.addEventListener('click', ignoreIfTargetDisabled, true); + } + }()); + (function checkOnBlobSupport() { + if (isIE || isIOSChrome) { + PDFJS.disableCreateObjectURL = true; + } + }()); + (function checkNavigatorLanguage() { + if (typeof navigator === 'undefined') { + return; + } + if ('language' in navigator) { + return; + } + PDFJS.locale = navigator.userLanguage || 'en-US'; + }()); + (function checkRangeRequests() { + if (isSafari || isAndroidPre3 || isChromeWithRangeBug || isIOS) { + PDFJS.disableRange = true; + PDFJS.disableStream = true; + } + }()); + (function checkHistoryManipulation() { + if (!hasDOM) { + return; + } + if (!history.pushState || isAndroidPre3) { + PDFJS.disableHistory = true; + } + }()); + (function checkSetPresenceInImageData() { + if (!hasDOM) { + return; + } + if (window.CanvasPixelArray) { + if (typeof window.CanvasPixelArray.prototype.set !== 'function') { + window.CanvasPixelArray.prototype.set = function (arr) { + for (var i = 0, ii = this.length; i < ii; i++) { + this[i] = arr[i]; + } + }; + } + } else { + var polyfill = false, versionMatch; + if (isChrome) { + versionMatch = userAgent.match(/Chrom(e|ium)\/([0-9]+)\./); + polyfill = versionMatch && parseInt(versionMatch[2]) < 21; + } else if (isAndroid) { + polyfill = isAndroidPre5; + } else if (isSafari) { + versionMatch = userAgent.match(/Version\/([0-9]+)\.([0-9]+)\.([0-9]+) Safari\//); + polyfill = versionMatch && parseInt(versionMatch[1]) < 6; + } + if (polyfill) { + var contextPrototype = window.CanvasRenderingContext2D.prototype; + var createImageData = contextPrototype.createImageData; + contextPrototype.createImageData = function (w, h) { + var imageData = createImageData.call(this, w, h); + imageData.data.set = function (arr) { + for (var i = 0, ii = this.length; i < ii; i++) { + this[i] = arr[i]; + } + }; + return imageData; + }; + contextPrototype = null; + } + } + }()); + (function checkRequestAnimationFrame() { + function fakeRequestAnimationFrame(callback) { + window.setTimeout(callback, 20); + } + if (!hasDOM) { + return; + } + if (isIOS) { + window.requestAnimationFrame = fakeRequestAnimationFrame; + return; + } + if ('requestAnimationFrame' in window) { + return; + } + window.requestAnimationFrame = window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || fakeRequestAnimationFrame; + }()); + (function checkCanvasSizeLimitation() { + if (isIOS || isAndroid) { + PDFJS.maxCanvasPixels = 5242880; + } + }()); + (function checkFullscreenSupport() { + if (!hasDOM) { + return; + } + if (isIE && window.parent !== window) { + PDFJS.disableFullscreen = true; + } + }()); + (function checkCurrentScript() { + if (!hasDOM) { + return; + } + if ('currentScript' in document) { + return; + } + Object.defineProperty(document, 'currentScript', { + get: function () { + var scripts = document.getElementsByTagName('script'); + return scripts[scripts.length - 1]; + }, + enumerable: true, + configurable: true + }); + }()); + (function checkInputTypeNumberAssign() { + if (!hasDOM) { + return; + } + var el = document.createElement('input'); + try { + el.type = 'number'; + } catch (ex) { + var inputProto = el.constructor.prototype; + var typeProperty = Object.getOwnPropertyDescriptor(inputProto, 'type'); + Object.defineProperty(inputProto, 'type', { + get: function () { + return typeProperty.get.call(this); + }, + set: function (value) { + typeProperty.set.call(this, value === 'number' ? 'text' : value); + }, + enumerable: true, + configurable: true + }); + } + }()); + (function checkDocumentReadyState() { + if (!hasDOM) { + return; + } + if (!document.attachEvent) { + return; + } + var documentProto = document.constructor.prototype; + var readyStateProto = Object.getOwnPropertyDescriptor(documentProto, 'readyState'); + Object.defineProperty(documentProto, 'readyState', { + get: function () { + var value = readyStateProto.get.call(this); + return value === 'interactive' ? 'loading' : value; + }, + set: function (value) { + readyStateProto.set.call(this, value); + }, + enumerable: true, + configurable: true + }); + }()); + (function checkChildNodeRemove() { + if (!hasDOM) { + return; + } + if (typeof Element.prototype.remove !== 'undefined') { + return; + } + Element.prototype.remove = function () { + if (this.parentNode) { + this.parentNode.removeChild(this); + } + }; + }()); + (function checkPromise() { + if (globalScope.Promise) { + if (typeof globalScope.Promise.all !== 'function') { + globalScope.Promise.all = function (iterable) { + var count = 0, results = [], resolve, reject; + var promise = new globalScope.Promise(function (resolve_, reject_) { + resolve = resolve_; + reject = reject_; + }); + iterable.forEach(function (p, i) { + count++; + p.then(function (result) { + results[i] = result; + count--; + if (count === 0) { + resolve(results); + } + }, reject); + }); + if (count === 0) { + resolve(results); + } + return promise; + }; + } + if (typeof globalScope.Promise.resolve !== 'function') { + globalScope.Promise.resolve = function (value) { + return new globalScope.Promise(function (resolve) { + resolve(value); + }); + }; + } + if (typeof globalScope.Promise.reject !== 'function') { + globalScope.Promise.reject = function (reason) { + return new globalScope.Promise(function (resolve, reject) { + reject(reason); + }); + }; + } + if (typeof globalScope.Promise.prototype.catch !== 'function') { + globalScope.Promise.prototype.catch = function (onReject) { + return globalScope.Promise.prototype.then(undefined, onReject); + }; + } + return; + } + var STATUS_PENDING = 0; + var STATUS_RESOLVED = 1; + var STATUS_REJECTED = 2; + var REJECTION_TIMEOUT = 500; + var HandlerManager = { + handlers: [], + running: false, + unhandledRejections: [], + pendingRejectionCheck: false, + scheduleHandlers: function scheduleHandlers(promise) { + if (promise._status === STATUS_PENDING) { + return; + } + this.handlers = this.handlers.concat(promise._handlers); + promise._handlers = []; + if (this.running) { + return; + } + this.running = true; + setTimeout(this.runHandlers.bind(this), 0); + }, + runHandlers: function runHandlers() { + var RUN_TIMEOUT = 1; + var timeoutAt = Date.now() + RUN_TIMEOUT; + while (this.handlers.length > 0) { + var handler = this.handlers.shift(); + var nextStatus = handler.thisPromise._status; + var nextValue = handler.thisPromise._value; + try { + if (nextStatus === STATUS_RESOLVED) { + if (typeof handler.onResolve === 'function') { + nextValue = handler.onResolve(nextValue); + } + } else if (typeof handler.onReject === 'function') { + nextValue = handler.onReject(nextValue); + nextStatus = STATUS_RESOLVED; + if (handler.thisPromise._unhandledRejection) { + this.removeUnhandeledRejection(handler.thisPromise); + } + } + } catch (ex) { + nextStatus = STATUS_REJECTED; + nextValue = ex; + } + handler.nextPromise._updateStatus(nextStatus, nextValue); + if (Date.now() >= timeoutAt) { + break; + } + } + if (this.handlers.length > 0) { + setTimeout(this.runHandlers.bind(this), 0); + return; + } + this.running = false; + }, + addUnhandledRejection: function addUnhandledRejection(promise) { + this.unhandledRejections.push({ + promise: promise, + time: Date.now() + }); + this.scheduleRejectionCheck(); + }, + removeUnhandeledRejection: function removeUnhandeledRejection(promise) { + promise._unhandledRejection = false; + for (var i = 0; i < this.unhandledRejections.length; i++) { + if (this.unhandledRejections[i].promise === promise) { + this.unhandledRejections.splice(i); + i--; + } + } + }, + scheduleRejectionCheck: function scheduleRejectionCheck() { + if (this.pendingRejectionCheck) { + return; + } + this.pendingRejectionCheck = true; + setTimeout(function rejectionCheck() { + this.pendingRejectionCheck = false; + var now = Date.now(); + for (var i = 0; i < this.unhandledRejections.length; i++) { + if (now - this.unhandledRejections[i].time > REJECTION_TIMEOUT) { + var unhandled = this.unhandledRejections[i].promise._value; + var msg = 'Unhandled rejection: ' + unhandled; + if (unhandled.stack) { + msg += '\n' + unhandled.stack; + } + try { + throw new Error(msg); + } catch (_) { + console.warn(msg); + } + this.unhandledRejections.splice(i); + i--; + } + } + if (this.unhandledRejections.length) { + this.scheduleRejectionCheck(); + } + }.bind(this), REJECTION_TIMEOUT); + } + }; + var Promise = function Promise(resolver) { + this._status = STATUS_PENDING; + this._handlers = []; + try { + resolver.call(this, this._resolve.bind(this), this._reject.bind(this)); + } catch (e) { + this._reject(e); + } + }; + Promise.all = function Promise_all(promises) { + var resolveAll, rejectAll; + var deferred = new Promise(function (resolve, reject) { + resolveAll = resolve; + rejectAll = reject; + }); + var unresolved = promises.length; + var results = []; + if (unresolved === 0) { + resolveAll(results); + return deferred; + } + function reject(reason) { + if (deferred._status === STATUS_REJECTED) { + return; + } + results = []; + rejectAll(reason); + } + for (var i = 0, ii = promises.length; i < ii; ++i) { + var promise = promises[i]; + var resolve = function (i) { + return function (value) { + if (deferred._status === STATUS_REJECTED) { + return; + } + results[i] = value; + unresolved--; + if (unresolved === 0) { + resolveAll(results); + } + }; + }(i); + if (Promise.isPromise(promise)) { + promise.then(resolve, reject); + } else { + resolve(promise); + } + } + return deferred; + }; + Promise.isPromise = function Promise_isPromise(value) { + return value && typeof value.then === 'function'; + }; + Promise.resolve = function Promise_resolve(value) { + return new Promise(function (resolve) { + resolve(value); + }); + }; + Promise.reject = function Promise_reject(reason) { + return new Promise(function (resolve, reject) { + reject(reason); + }); + }; + Promise.prototype = { + _status: null, + _value: null, + _handlers: null, + _unhandledRejection: null, + _updateStatus: function Promise__updateStatus(status, value) { + if (this._status === STATUS_RESOLVED || this._status === STATUS_REJECTED) { + return; + } + if (status === STATUS_RESOLVED && Promise.isPromise(value)) { + value.then(this._updateStatus.bind(this, STATUS_RESOLVED), this._updateStatus.bind(this, STATUS_REJECTED)); + return; + } + this._status = status; + this._value = value; + if (status === STATUS_REJECTED && this._handlers.length === 0) { + this._unhandledRejection = true; + HandlerManager.addUnhandledRejection(this); + } + HandlerManager.scheduleHandlers(this); + }, + _resolve: function Promise_resolve(value) { + this._updateStatus(STATUS_RESOLVED, value); + }, + _reject: function Promise_reject(reason) { + this._updateStatus(STATUS_REJECTED, reason); + }, + then: function Promise_then(onResolve, onReject) { + var nextPromise = new Promise(function (resolve, reject) { + this.resolve = resolve; + this.reject = reject; + }); + this._handlers.push({ + thisPromise: this, + onResolve: onResolve, + onReject: onReject, + nextPromise: nextPromise + }); + HandlerManager.scheduleHandlers(this); + return nextPromise; + }, + catch: function Promise_catch(onReject) { + return this.then(undefined, onReject); + } + }; + globalScope.Promise = Promise; + }()); + (function checkWeakMap() { + if (globalScope.WeakMap) { + return; + } + var id = 0; + function WeakMap() { + this.id = '$weakmap' + id++; + } + WeakMap.prototype = { + has: function (obj) { + return !!Object.getOwnPropertyDescriptor(obj, this.id); + }, + get: function (obj, defaultValue) { + return this.has(obj) ? obj[this.id] : defaultValue; + }, + set: function (obj, value) { + Object.defineProperty(obj, this.id, { + value: value, + enumerable: false, + configurable: true + }); + }, + delete: function (obj) { + delete obj[this.id]; + } + }; + globalScope.WeakMap = WeakMap; + }()); + (function checkURLConstructor() { + var hasWorkingUrl = false; + try { + if (typeof URL === 'function' && typeof URL.prototype === 'object' && 'origin' in URL.prototype) { + var u = new URL('b', 'http://a'); + u.pathname = 'c%20d'; + hasWorkingUrl = u.href === 'http://a/c%20d'; + } + } catch (e) { + } + if (hasWorkingUrl) { + return; + } + var relative = Object.create(null); + relative['ftp'] = 21; + relative['file'] = 0; + relative['gopher'] = 70; + relative['http'] = 80; + relative['https'] = 443; + relative['ws'] = 80; + relative['wss'] = 443; + var relativePathDotMapping = Object.create(null); + relativePathDotMapping['%2e'] = '.'; + relativePathDotMapping['.%2e'] = '..'; + relativePathDotMapping['%2e.'] = '..'; + relativePathDotMapping['%2e%2e'] = '..'; + function isRelativeScheme(scheme) { + return relative[scheme] !== undefined; + } + function invalid() { + clear.call(this); + this._isInvalid = true; + } + function IDNAToASCII(h) { + if (h === '') { + invalid.call(this); + } + return h.toLowerCase(); + } + function percentEscape(c) { + var unicode = c.charCodeAt(0); + if (unicode > 0x20 && unicode < 0x7F && [ + 0x22, + 0x23, + 0x3C, + 0x3E, + 0x3F, + 0x60 + ].indexOf(unicode) === -1) { + return c; + } + return encodeURIComponent(c); + } + function percentEscapeQuery(c) { + var unicode = c.charCodeAt(0); + if (unicode > 0x20 && unicode < 0x7F && [ + 0x22, + 0x23, + 0x3C, + 0x3E, + 0x60 + ].indexOf(unicode) === -1) { + return c; + } + return encodeURIComponent(c); + } + var EOF, ALPHA = /[a-zA-Z]/, ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/; + function parse(input, stateOverride, base) { + function err(message) { + errors.push(message); + } + var state = stateOverride || 'scheme start', cursor = 0, buffer = '', seenAt = false, seenBracket = false, errors = []; + loop: + while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) { + var c = input[cursor]; + switch (state) { + case 'scheme start': + if (c && ALPHA.test(c)) { + buffer += c.toLowerCase(); + state = 'scheme'; + } else if (!stateOverride) { + buffer = ''; + state = 'no scheme'; + continue; + } else { + err('Invalid scheme.'); + break loop; + } + break; + case 'scheme': + if (c && ALPHANUMERIC.test(c)) { + buffer += c.toLowerCase(); + } else if (c === ':') { + this._scheme = buffer; + buffer = ''; + if (stateOverride) { + break loop; + } + if (isRelativeScheme(this._scheme)) { + this._isRelative = true; + } + if (this._scheme === 'file') { + state = 'relative'; + } else if (this._isRelative && base && base._scheme === this._scheme) { + state = 'relative or authority'; + } else if (this._isRelative) { + state = 'authority first slash'; + } else { + state = 'scheme data'; + } + } else if (!stateOverride) { + buffer = ''; + cursor = 0; + state = 'no scheme'; + continue; + } else if (EOF === c) { + break loop; + } else { + err('Code point not allowed in scheme: ' + c); + break loop; + } + break; + case 'scheme data': + if (c === '?') { + this._query = '?'; + state = 'query'; + } else if (c === '#') { + this._fragment = '#'; + state = 'fragment'; + } else { + if (EOF !== c && '\t' !== c && '\n' !== c && '\r' !== c) { + this._schemeData += percentEscape(c); + } + } + break; + case 'no scheme': + if (!base || !isRelativeScheme(base._scheme)) { + err('Missing scheme.'); + invalid.call(this); + } else { + state = 'relative'; + continue; + } + break; + case 'relative or authority': + if (c === '/' && input[cursor + 1] === '/') { + state = 'authority ignore slashes'; + } else { + err('Expected /, got: ' + c); + state = 'relative'; + continue; + } + break; + case 'relative': + this._isRelative = true; + if ('file' !== this._scheme) { + this._scheme = base._scheme; + } + if (EOF === c) { + this._host = base._host; + this._port = base._port; + this._path = base._path.slice(); + this._query = base._query; + this._username = base._username; + this._password = base._password; + break loop; + } else if (c === '/' || c === '\\') { + if (c === '\\') { + err('\\ is an invalid code point.'); + } + state = 'relative slash'; + } else if (c === '?') { + this._host = base._host; + this._port = base._port; + this._path = base._path.slice(); + this._query = '?'; + this._username = base._username; + this._password = base._password; + state = 'query'; + } else if (c === '#') { + this._host = base._host; + this._port = base._port; + this._path = base._path.slice(); + this._query = base._query; + this._fragment = '#'; + this._username = base._username; + this._password = base._password; + state = 'fragment'; + } else { + var nextC = input[cursor + 1]; + var nextNextC = input[cursor + 2]; + if ('file' !== this._scheme || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || EOF !== nextNextC && '/' !== nextNextC && '\\' !== nextNextC && '?' !== nextNextC && '#' !== nextNextC) { + this._host = base._host; + this._port = base._port; + this._username = base._username; + this._password = base._password; + this._path = base._path.slice(); + this._path.pop(); + } + state = 'relative path'; + continue; + } + break; + case 'relative slash': + if (c === '/' || c === '\\') { + if (c === '\\') { + err('\\ is an invalid code point.'); + } + if (this._scheme === 'file') { + state = 'file host'; + } else { + state = 'authority ignore slashes'; + } + } else { + if ('file' !== this._scheme) { + this._host = base._host; + this._port = base._port; + this._username = base._username; + this._password = base._password; + } + state = 'relative path'; + continue; + } + break; + case 'authority first slash': + if (c === '/') { + state = 'authority second slash'; + } else { + err('Expected \'/\', got: ' + c); + state = 'authority ignore slashes'; + continue; + } + break; + case 'authority second slash': + state = 'authority ignore slashes'; + if ('/' !== c) { + err('Expected \'/\', got: ' + c); + continue; + } + break; + case 'authority ignore slashes': + if ('/' !== c && '\\' !== c) { + state = 'authority'; + continue; + } else { + err('Expected authority, got: ' + c); + } + break; + case 'authority': + if (c === '@') { + if (seenAt) { + err('@ already seen.'); + buffer += '%40'; + } + seenAt = true; + for (var i = 0; i < buffer.length; i++) { + var cp = buffer[i]; + if (cp === '\t' || cp === '\n' || cp === '\r') { + err('Invalid whitespace in authority.'); + continue; + } + if (cp === ':' && this._password === null) { + this._password = ''; + continue; + } + var tempC = percentEscape(cp); + if (null !== this._password) { + this._password += tempC; + } else { + this._username += tempC; + } + } + buffer = ''; + } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { + cursor -= buffer.length; + buffer = ''; + state = 'host'; + continue; + } else { + buffer += c; + } + break; + case 'file host': + if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { + if (buffer.length === 2 && ALPHA.test(buffer[0]) && (buffer[1] === ':' || buffer[1] === '|')) { + state = 'relative path'; + } else if (buffer.length === 0) { + state = 'relative path start'; + } else { + this._host = IDNAToASCII.call(this, buffer); + buffer = ''; + state = 'relative path start'; + } + continue; + } else if (c === '\t' || c === '\n' || c === '\r') { + err('Invalid whitespace in file host.'); + } else { + buffer += c; + } + break; + case 'host': + case 'hostname': + if (c === ':' && !seenBracket) { + this._host = IDNAToASCII.call(this, buffer); + buffer = ''; + state = 'port'; + if (stateOverride === 'hostname') { + break loop; + } + } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { + this._host = IDNAToASCII.call(this, buffer); + buffer = ''; + state = 'relative path start'; + if (stateOverride) { + break loop; + } + continue; + } else if ('\t' !== c && '\n' !== c && '\r' !== c) { + if (c === '[') { + seenBracket = true; + } else if (c === ']') { + seenBracket = false; + } + buffer += c; + } else { + err('Invalid code point in host/hostname: ' + c); + } + break; + case 'port': + if (/[0-9]/.test(c)) { + buffer += c; + } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#' || stateOverride) { + if ('' !== buffer) { + var temp = parseInt(buffer, 10); + if (temp !== relative[this._scheme]) { + this._port = temp + ''; + } + buffer = ''; + } + if (stateOverride) { + break loop; + } + state = 'relative path start'; + continue; + } else if (c === '\t' || c === '\n' || c === '\r') { + err('Invalid code point in port: ' + c); + } else { + invalid.call(this); + } + break; + case 'relative path start': + if (c === '\\') { + err('\'\\\' not allowed in path.'); + } + state = 'relative path'; + if ('/' !== c && '\\' !== c) { + continue; + } + break; + case 'relative path': + if (c === EOF || c === '/' || c === '\\' || !stateOverride && (c === '?' || c === '#')) { + if (c === '\\') { + err('\\ not allowed in relative path.'); + } + var tmp; + if (tmp = relativePathDotMapping[buffer.toLowerCase()]) { + buffer = tmp; + } + if (buffer === '..') { + this._path.pop(); + if ('/' !== c && '\\' !== c) { + this._path.push(''); + } + } else if (buffer === '.' && '/' !== c && '\\' !== c) { + this._path.push(''); + } else if ('.' !== buffer) { + if (this._scheme === 'file' && this._path.length === 0 && buffer.length === 2 && ALPHA.test(buffer[0]) && buffer[1] === '|') { + buffer = buffer[0] + ':'; + } + this._path.push(buffer); + } + buffer = ''; + if (c === '?') { + this._query = '?'; + state = 'query'; + } else if (c === '#') { + this._fragment = '#'; + state = 'fragment'; + } + } else if ('\t' !== c && '\n' !== c && '\r' !== c) { + buffer += percentEscape(c); + } + break; + case 'query': + if (!stateOverride && c === '#') { + this._fragment = '#'; + state = 'fragment'; + } else if (EOF !== c && '\t' !== c && '\n' !== c && '\r' !== c) { + this._query += percentEscapeQuery(c); + } + break; + case 'fragment': + if (EOF !== c && '\t' !== c && '\n' !== c && '\r' !== c) { + this._fragment += c; + } + break; + } + cursor++; + } + } + function clear() { + this._scheme = ''; + this._schemeData = ''; + this._username = ''; + this._password = null; + this._host = ''; + this._port = ''; + this._path = []; + this._query = ''; + this._fragment = ''; + this._isInvalid = false; + this._isRelative = false; + } + function JURL(url, base) { + if (base !== undefined && !(base instanceof JURL)) { + base = new JURL(String(base)); + } + this._url = url; + clear.call(this); + var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, ''); + parse.call(this, input, null, base); + } + JURL.prototype = { + toString: function () { + return this.href; + }, + get href() { + if (this._isInvalid) { + return this._url; + } + var authority = ''; + if ('' !== this._username || null !== this._password) { + authority = this._username + (null !== this._password ? ':' + this._password : '') + '@'; + } + return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment; + }, + set href(href) { + clear.call(this); + parse.call(this, href); + }, + get protocol() { + return this._scheme + ':'; + }, + set protocol(protocol) { + if (this._isInvalid) { + return; + } + parse.call(this, protocol + ':', 'scheme start'); + }, + get host() { + return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host; + }, + set host(host) { + if (this._isInvalid || !this._isRelative) { + return; + } + parse.call(this, host, 'host'); + }, + get hostname() { + return this._host; + }, + set hostname(hostname) { + if (this._isInvalid || !this._isRelative) { + return; + } + parse.call(this, hostname, 'hostname'); + }, + get port() { + return this._port; + }, + set port(port) { + if (this._isInvalid || !this._isRelative) { + return; + } + parse.call(this, port, 'port'); + }, + get pathname() { + return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData; + }, + set pathname(pathname) { + if (this._isInvalid || !this._isRelative) { + return; + } + this._path = []; + parse.call(this, pathname, 'relative path start'); + }, + get search() { + return this._isInvalid || !this._query || this._query === '?' ? '' : this._query; + }, + set search(search) { + if (this._isInvalid || !this._isRelative) { + return; + } + this._query = '?'; + if (search[0] === '?') { + search = search.slice(1); + } + parse.call(this, search, 'query'); + }, + get hash() { + return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment; + }, + set hash(hash) { + if (this._isInvalid) { + return; + } + this._fragment = '#'; + if (hash[0] === '#') { + hash = hash.slice(1); + } + parse.call(this, hash, 'fragment'); + }, + get origin() { + var host; + if (this._isInvalid || !this._scheme) { + return ''; + } + switch (this._scheme) { + case 'data': + case 'file': + case 'javascript': + case 'mailto': + return 'null'; + } + host = this.host; + if (!host) { + return ''; + } + return this._scheme + '://' + host; + } + }; + var OriginalURL = globalScope.URL; + if (OriginalURL) { + JURL.createObjectURL = function (blob) { + return OriginalURL.createObjectURL.apply(OriginalURL, arguments); + }; + JURL.revokeObjectURL = function (url) { + OriginalURL.revokeObjectURL(url); + }; + } + globalScope.URL = JURL; + }()); +} +/* WEBPACK VAR INJECTION */}.call(exports, __w_pdfjs_require__(9))) + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + +var pdfjsVersion = '1.7.365'; +var pdfjsBuild = '2b171889'; +var pdfjsCoreWorker = __w_pdfjs_require__(8); +{ + __w_pdfjs_require__(19); +} +exports.WorkerMessageHandler = pdfjsCoreWorker.WorkerMessageHandler; + +/***/ }) +/******/ ]); +}); \ No newline at end of file diff --git a/css/bootstrap.min.css b/css/bootstrap.min.css new file mode 100644 index 00000000..679272d2 --- /dev/null +++ b/css/bootstrap.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.1.1 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date]{line-height:34px}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.has-feedback .form-control-feedback{position:absolute;top:25px;right:0;display:block;width:34px;height:34px;line-height:34px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}@media print{.hidden-print{display:none!important}} \ No newline at end of file diff --git a/css/main.css b/css/main.css new file mode 100644 index 00000000..d54057cd --- /dev/null +++ b/css/main.css @@ -0,0 +1,119 @@ +body { +} +.starter-template { + padding: 0 15px; +} +.navbar-brand { + padding: 4px 15px; +} +.navbar-brand img { + height: 42px; +} +.navbar { + border-color: #e5e7e8; +} +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + background-color: #fff; + border: 1px solid #e5e7e8; + border-width: 0 1px; + position: relative; + top: 1px; +} + +footer { + padding-top: 40px; + padding-bottom: 40px; + margin-top: 100px; + color: #777; + text-align: center; + border-top: 1px solid #E5E5E5; +} + +/* code styling */ + +code { + font-family: 'Anonymous Pro', monospace; + font-size: 0.85em; + color: #000; +} + +pre code { + display: block; + line-height: 1.1; +} + +p code { + padding: 0.1em 0.3em 0.2em; + border-radius: 0.3em; + position: relative; + top: -0.15em; + background: #444; + color: #fff; + white-space: nowrap; +} + +/* syntax hl stuff */ + +code.lang-markdown { + color: #424242; +} + +code.lang-markdown .header, +code.lang-markdown .strong { + font-weight: bold; +} + +code.lang-markdown .emphasis { + font-style: italic; +} + +code.lang-markdown .horizontal_rule, +code.lang-markdown .link_label, +code.lang-markdown .code, +code.lang-markdown .header, +code.lang-markdown .link_url { + color: #555; +} + +code.lang-markdown .blockquote, +code.lang-markdown .bullet { + color: #bbb; +} + +/* Tomorrow Theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ +.tomorrow-comment, pre .comment, pre .title { + color: #8e908c; +} + +.tomorrow-red, pre .variable, pre .attribute, pre .tag, pre .regexp, pre .ruby .constant, pre .xml .tag .title, pre .xml .pi, pre .xml .doctype, pre .html .doctype, pre .css .id, pre .css .class, pre .css .pseudo { + color: #c82829; +} + +.tomorrow-orange, pre .number, pre .preprocessor, pre .built_in, pre .literal, pre .params, pre .constant { + color: #f5871f; +} + +.tomorrow-yellow, pre .class, pre .ruby .class .title, pre .css .rules .attribute { + color: #eab700; +} + +.tomorrow-green, pre .string, pre .value, pre .inheritance, pre .header, pre .ruby .symbol, pre .xml .cdata { + color: #718c00; +} + +.tomorrow-aqua, pre .css .hexcolor { + color: #3e999f; +} + +.tomorrow-blue, pre .function, pre .python .decorator, pre .python .title, pre .ruby .function .title, pre .ruby .title .keyword, pre .perl .sub, pre .javascript .title, pre .coffeescript .title { + color: #4271ae; +} + +.tomorrow-purple, pre .keyword, pre .javascript .function { + color: #8959a8; +} diff --git a/examples/index.html b/examples/index.html new file mode 100644 index 00000000..35392c9e --- /dev/null +++ b/examples/index.html @@ -0,0 +1,101 @@ + + + + + + + + + Examples + + + + + + + +
+
+

Hello World Walkthrough

+

Full source

+

PDF.js heavily relies on the use of Promises. If promises are new to you, it’s recommended you become familiar with them before continuing on.

+

Document

+

The object structure of PDF.js loosely follows the structure of an actual PDF. At the top level there is a document object. From the document, more information and individual pages can be fetched. To get the document:

+
PDFJS.getDocument('helloworld.pdf')
+
+

Remember though that PDF.js uses promises, so the above will return a promise that is resolved with the document object.

+
PDFJS.getDocument('helloworld.pdf').then(function(pdf) {
+  // you can now use *pdf* here
+});
+
+

Page

+

Now that we have the document, we can get a page. Again, this uses promises.

+
pdf.getPage(1).then(function(page) {
+  // you can now use *page* here
+});
+
+

Rendering the Page

+

Each PDF page has its own viewport which defines the size in pixels(72DPI) and initial rotation. By default the viewport is scaled to the original size of the PDF, but this can be changed by modifying the viewport. When the viewport is created an initial transformation matrix will also be created that takes into account the desired scale, rotation, and it transforms the coordinate system (the 0,0 point in PDF documents the bottom-left whereas canvas 0,0 is top-left).

+
var scale = 1.5;
+var viewport = page.getViewport(scale);
+
+var canvas = document.getElementById('the-canvas');
+var context = canvas.getContext('2d');
+canvas.height = viewport.height;
+canvas.width = viewport.width;
+
+var renderContext = {
+  canvasContext: context,
+  viewport: viewport
+};
+page.render(renderContext);
+
+

Alternatively, if you want the canvas to render to a certain pixel size you could do the following:

+
var desiredWidth = 100;
+var viewport = page.getViewport(1);
+var scale = desiredWidth / viewport.width;
+var scaledViewport = page.getViewport(scale);
+
+

Interactive examples

+

Hello World with document load error handling

+

The example demonstrates how promises can be used to handle errors during loading. +It also demonstrates how to wait until page loaded and rendered.

+ + +

Hello World using base64 encoded PDF

+

The PDF.js can accept any decoded base64 data as an array.

+ + +

Previous/Next example

+

The same canvas cannot be used to perform to draw two pages at the same time – +the example demonstrate how to wait on previous operation to be complete.

+ +
+
+
+
+
+

©Mozilla and individual contributors

PDF.js is licensed under Apache, +documentation is licensed under CC BY-SA 2.5

+
+
+ + + + + \ No newline at end of file diff --git a/extensions/chromium/install.rdf b/extensions/chromium/install.rdf new file mode 100644 index 00000000..f3737cb9 --- /dev/null +++ b/extensions/chromium/install.rdf @@ -0,0 +1,252 @@ + + + + + + viewer@pdf.js + + + ar + عارض PDF + يستخدم HTML5 لعرض Ù…Ù„ÙØ§Øª PDF مباشره من خلال Firefox. + + + + + bn-BD + পিডিà¦à¦« ভিউয়ার + ফায়ারফকà§à¦¸ ঠসরাসরি পিডিà¦à¦« দেখানোর জনà§à¦¯à§‡ HTML5 বà§à¦¯à¦¾à¦¬à¦¹à¦¾à¦° করে। + + + + + ca + Visor d'arxius PDF + HTML5 per veure documents + + + + + cs + PDF Viewer + Používá HTML5 pro zobrazení PDF souborů přímo ve Firefoxu. + + + + + cy + PDF Viewer + Yn defnyddio HTML5 i arddangos ffeiliau PDF yn uniongyrchol yn Firefox. + + + + + da + PDF Viewer + Benytter HTML5 til at vise PDF-filer direkte i Firefox. + + + + + de + PDF Viewer + Nutzt HTML5, um PDFs direkt in Firefox anzuzeigen. + + + + + el + ΠÏόγÏαμμα ανάγνωσης PDF + ΧÏήση HTML5 για εμφάνιση αÏχείων PDF κατευθείαν μέσα στο Firefox. + + + + + en-US + PDF Viewer + Uses HTML5 to display PDF files directly in Firefox. + + + + + fa + نمایش‌دهندهٔ پی‌دی‌ا٠+ از اچ‌تی‌ام‌ال۵ برای نمایش پرونده‌های پی‌دی‌ا٠به‌صورت مستقیم در ÙØ§ÛŒØ±Ùاکس Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌کند. + + + + + fi + PDF Lukuohjelma + Näyttää PDF tiedostot suoraan Firefox:ssa HTML5:n avulla. + + + + + fr + PDF Viewer + Utilise HTML5 pour afficher les documents PDF directement dans Firefox. + + + + + he + ×§×•×¨× PDF + הצגת קבצי PDF ישירות ב־Firefox ב×מצעות HTML5. + + + + + it + PDF Viewer + Usa HTML5 per visualizzare i file PDF direttamente in Firefox. + + + + + ja + PDF Viewer + HTML5を使用ã—ã¦ã€Firefoxã§ç›´æŽ¥PDFファイルを表示ã—ã¾ã™ã€‚ + + + + + ko + PDF ë·°ì–´ + Firefoxê°€ PDF 파ì¼ì„ HTML5를 ì´ìš©í•˜ì—¬ ì§ì ‘ ë³´ì—¬ì¤ë‹ˆë‹¤. + + + + + lt + PDF peržiÅ«ros programa + PDF bylos vaizduojamos tiesiogiai, naudojant HTML5 Firefox narÅ¡yklÄ—je. + + + + + nl + PDF-viewer + Gebruikt HTML5 om PDF-bestanden direct in Firefox te openen. + + + + + pl + PrzeglÄ…darka PDF + Używa HTML5 do wyÅ›wietlania plików PDF bezpoÅ›rednio w Firefoksie. + + + + + pt-BR + PDF Viewer + Aprensenta PDFs no browser usando a tecnologia HTML5. + + + + + ro + Cititor PDF + AfiÈ™ează fiÈ™ierele PDF direct în Firefox. + + + + + ru + PDF Viewer + Показывает файлы PDF непоÑредÑтвенно в Firefox иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ HTML5. + + + + + sr + ПДФ читач + КориÑти ХТМЛ5 да би приказао ПДФ датотеке директно у ФајерфокÑу. + + + + + sv + PDF-läsare + Använder HTML5 för att visa PDF-filer direkt i Firefox. + + + + + tr + PDF Gösterici + Firefox içerisinde PDFleri göstermek için HTML5 kullanır. + + + + + vi-VN + Trình Xem PDF + Dùng HTML5 để hiện thị PDF trá»±c tiếp trên FireFox. + + + + + zh-CN + PDF 查看器 + 使用 HTML5 æ¥æ”¯æŒåœ¨ Firefox 中直接显示 PDF 文件。 + + + + + zh-TW + PDF ç€è¦½å™¨ + 利用 HTML5 技術在 Firefox 中直接顯示 PDF æ ¼å¼æª”案。 + + + PDF Viewer + 1.7.365 + + + + + {ec8030f7-c20a-464f-9b0e-13a3a9e97384} + 45.0 + 54.0a1 + + + + + + + {92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} + 2.46 + 2.51a1 + + + + + + + {aa3c5121-dab2-40e2-81ca-7ea25febc110} + 45.0 + 54.0a1 + + + + + + + {a79fe89b-6662-4ff4-8e88-09950ad4dfde} + 0.1 + 9.9 + + + + true + true + Mozilla + Uses HTML5 to display PDF files directly in Firefox. + https://github.com/mozilla/pdf.js/ + 2 + + https://github.com/mozilla/pdf.js/raw/gh-pages/extensions/firefox/update.rdf + + diff --git a/extensions/chromium/update.rdf b/extensions/chromium/update.rdf new file mode 100644 index 00000000..375be310 --- /dev/null +++ b/extensions/chromium/update.rdf @@ -0,0 +1,39 @@ + + + + + + + + + + 1.7.365 + + + + + {ec8030f7-c20a-464f-9b0e-13a3a9e97384} + 45.0 + 54.0a1 + + https://raw.githubusercontent.com/mozilla/pdf.js/gh-pages/extensions/firefox/pdf.js.xpi + + + + + + + {aa3c5121-dab2-40e2-81ca-7ea25febc110} + 45.0 + 54.0a1 + + https://raw.githubusercontent.com/mozilla/pdf.js/gh-pages/extensions/firefox/pdf.js.xpi + + + + + + + + \ No newline at end of file diff --git a/extensions/firefox/install.rdf b/extensions/firefox/install.rdf new file mode 100644 index 00000000..f3737cb9 --- /dev/null +++ b/extensions/firefox/install.rdf @@ -0,0 +1,252 @@ + + + + + + viewer@pdf.js + + + ar + عارض PDF + يستخدم HTML5 لعرض Ù…Ù„ÙØ§Øª PDF مباشره من خلال Firefox. + + + + + bn-BD + পিডিà¦à¦« ভিউয়ার + ফায়ারফকà§à¦¸ ঠসরাসরি পিডিà¦à¦« দেখানোর জনà§à¦¯à§‡ HTML5 বà§à¦¯à¦¾à¦¬à¦¹à¦¾à¦° করে। + + + + + ca + Visor d'arxius PDF + HTML5 per veure documents + + + + + cs + PDF Viewer + Používá HTML5 pro zobrazení PDF souborů přímo ve Firefoxu. + + + + + cy + PDF Viewer + Yn defnyddio HTML5 i arddangos ffeiliau PDF yn uniongyrchol yn Firefox. + + + + + da + PDF Viewer + Benytter HTML5 til at vise PDF-filer direkte i Firefox. + + + + + de + PDF Viewer + Nutzt HTML5, um PDFs direkt in Firefox anzuzeigen. + + + + + el + ΠÏόγÏαμμα ανάγνωσης PDF + ΧÏήση HTML5 για εμφάνιση αÏχείων PDF κατευθείαν μέσα στο Firefox. + + + + + en-US + PDF Viewer + Uses HTML5 to display PDF files directly in Firefox. + + + + + fa + نمایش‌دهندهٔ پی‌دی‌ا٠+ از اچ‌تی‌ام‌ال۵ برای نمایش پرونده‌های پی‌دی‌ا٠به‌صورت مستقیم در ÙØ§ÛŒØ±Ùاکس Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌کند. + + + + + fi + PDF Lukuohjelma + Näyttää PDF tiedostot suoraan Firefox:ssa HTML5:n avulla. + + + + + fr + PDF Viewer + Utilise HTML5 pour afficher les documents PDF directement dans Firefox. + + + + + he + ×§×•×¨× PDF + הצגת קבצי PDF ישירות ב־Firefox ב×מצעות HTML5. + + + + + it + PDF Viewer + Usa HTML5 per visualizzare i file PDF direttamente in Firefox. + + + + + ja + PDF Viewer + HTML5を使用ã—ã¦ã€Firefoxã§ç›´æŽ¥PDFファイルを表示ã—ã¾ã™ã€‚ + + + + + ko + PDF ë·°ì–´ + Firefoxê°€ PDF 파ì¼ì„ HTML5를 ì´ìš©í•˜ì—¬ ì§ì ‘ ë³´ì—¬ì¤ë‹ˆë‹¤. + + + + + lt + PDF peržiÅ«ros programa + PDF bylos vaizduojamos tiesiogiai, naudojant HTML5 Firefox narÅ¡yklÄ—je. + + + + + nl + PDF-viewer + Gebruikt HTML5 om PDF-bestanden direct in Firefox te openen. + + + + + pl + PrzeglÄ…darka PDF + Używa HTML5 do wyÅ›wietlania plików PDF bezpoÅ›rednio w Firefoksie. + + + + + pt-BR + PDF Viewer + Aprensenta PDFs no browser usando a tecnologia HTML5. + + + + + ro + Cititor PDF + AfiÈ™ează fiÈ™ierele PDF direct în Firefox. + + + + + ru + PDF Viewer + Показывает файлы PDF непоÑредÑтвенно в Firefox иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ HTML5. + + + + + sr + ПДФ читач + КориÑти ХТМЛ5 да би приказао ПДФ датотеке директно у ФајерфокÑу. + + + + + sv + PDF-läsare + Använder HTML5 för att visa PDF-filer direkt i Firefox. + + + + + tr + PDF Gösterici + Firefox içerisinde PDFleri göstermek için HTML5 kullanır. + + + + + vi-VN + Trình Xem PDF + Dùng HTML5 để hiện thị PDF trá»±c tiếp trên FireFox. + + + + + zh-CN + PDF 查看器 + 使用 HTML5 æ¥æ”¯æŒåœ¨ Firefox 中直接显示 PDF 文件。 + + + + + zh-TW + PDF ç€è¦½å™¨ + 利用 HTML5 技術在 Firefox 中直接顯示 PDF æ ¼å¼æª”案。 + + + PDF Viewer + 1.7.365 + + + + + {ec8030f7-c20a-464f-9b0e-13a3a9e97384} + 45.0 + 54.0a1 + + + + + + + {92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} + 2.46 + 2.51a1 + + + + + + + {aa3c5121-dab2-40e2-81ca-7ea25febc110} + 45.0 + 54.0a1 + + + + + + + {a79fe89b-6662-4ff4-8e88-09950ad4dfde} + 0.1 + 9.9 + + + + true + true + Mozilla + Uses HTML5 to display PDF files directly in Firefox. + https://github.com/mozilla/pdf.js/ + 2 + + https://github.com/mozilla/pdf.js/raw/gh-pages/extensions/firefox/update.rdf + + diff --git a/extensions/firefox/pdf.js.xpi b/extensions/firefox/pdf.js.xpi new file mode 100644 index 0000000000000000000000000000000000000000..477d52e45f90a55d4a48b580523c36466365780b GIT binary patch literal 1895736 zcma%?Q*%N{@@=_q6r~m)}60qQ7EgAl3A#w`~07xPN0RLK*5m6SPlaLimaf<9TDcZTYp*n6ull+6*Ap#t|jME=OsXfhYi&qU<{W zkm%vS{o_~xXi?fx_`oNm6d-0k@%-z;8=8LNx^Rd@SnG(4kgy^CRUI|cAwW*P_57@( zvIcm30sK?>jO2CgR0%M9zk!ydrNKD^8Y?UD1VKVy`u4B8vg~ifsrV0uBnL?!OP{*@ zkp?hhJNKh`hzO;#@wT(K@sLWM-3Uypc#xsQvpM-v_&Br)TqGyS2lMlB5loyKm< zK7%Rap)Tch5h7ZPb&4#m?{IE@K~MchZFS*usuK?C`W&crOS^n=+`ai!1;aIbGrHt3 zOQkL(RQF?4pV4*3d;4l$&c5#E(b7p-#yJJf=5`9~6^|yFW3{38opg<+$B{|TPIreF?=oXNi@ z-f=#J1TyMGgr`$}Z@RU_%z3G;?<`KqDQOlJ3jC`>pcm>82=2+?a@*S# zV3|apT4U3y6>HCPt*6}!qXVm_=&6U0=J!UCFMd_3<6||)DrCQV`yG|EnAWT+4w9}G zHcC8%WZ(XPf07e;uxKP*h?*%pZl!~9AXb=^7v+<0tcJNd7vR7G#ruEH$HXN@5`Agf z4k{G_8*n9W`IDzp!}7m?!%QbIhp2I-&>Dh0&>ULHH>+SD$njRMXfCqbF2B&D5^ayJ zpRhZ>Lv{V;j^urhJ1Un=@$=iN%(Vqq+FvQ5faluSU+!#`HrewhS4s;Uu>sOM$;Jo( zJ5s172Bt&)a=u^9pKUD9p%SOZzS%m z8dnF(D#ad7l~{+Ek=rkMEHQpldw|+8#g5LdDMXCJsV<66jOD~{I;$vwSnP zUh^_UZ(X{z>t>D!iRb+aVXBbFB;1UGgyf)jN47wa=J|%d{2^<(I9s%jNAUF+PHVli z2Sz0FoXsQ)1a@YqS!UYx;@O&M+krTyoAu+WxU>@7ANc&VY#bvL<;#1j zwo(z@mfeu(geuFRb1NnA1^%GG0{BZ&@u?biK&@P|c`cH({o zLafu;0o+u#yr-je*G_k-#r4G1Sn#tLr|UUH{!6#dTe%bfsRaTtKiB7i z9aI+l`-3i@2mLzlM``*5tj*Vgod!Sj;g_m;c&~YDHqK4xN^IhaK3WLZ}20VoG2t8P&rxRUaEVmBtx&V$nc!6S{K9GdHHWdb;av&`g zF(ibjn%C=2kPmz!wx`x=qEGQIZ`F?b)fbSQIL<0#r#)*Tm+g@3S36Pd`c$xJ)K-Ns zvm>AwGlNjD-rp2?j3&N%Ct{@cN3CcS=Rg??8V9UIWAeGV_M|!M6|L&1Up!+%{GN?{jez(2DkG%)?S)@&^m= z>$wzwkp787yKo#ZKWIMC#-Y^sG$kYnzi$9$Om5!XA$tf=6@~g=&_&=SMoA{j zu&gX#;J0~;tw(uP%0@N95H8za497~zI8}S>tySbWwycP%c7_;!A;usEMe-*VBf&Jf z!vx!3!ZeXApl;B02QQY60|PlhpL|llNT9$)2Fk0%&iwJa%L4Lch?iIt3=9Y&ROLVG z(TeKaRJ1!P3xhk?1Ov}TpUF{8pxr-pK}mNoHyw*+?8)pk6kf&!*|Wc!vXY6;$G|?m z;BIBOfD+FQ!dfb}3mvs1gShpUpi}zAth_6buvG%fN=sMU=OQq^2s4U{?}y2S&`6N+ zlxQv5STek9DhNzV_wOGoaCt70t!mMS2!z%%-wH8Z#XOUS7otCNS5x>=Cf*ZPh+lL- zGKJgSU8LbQy<{hQ1BL8-1VhqCw&cWkv3we*5*(=R(<|1ReDX1+ux*U&Ia2;+6D6Mv zI1JZ`4pG#ukA{8kFJWj$KNHLGwGWE3p7qnUev-?)`)T1#BYQZvIxyds>mPjM)8SS- zNmOb=G|uC15kG^a@WSoOMNE~4U(MCj@|)HPxE|JQaHGbiM|fq^dZ70&Ijw75tX8kTOH+?! zA%hfQ!hD+bGTlf^(Eg@xOHI{4b5@FT$cCHmOYSj_&wUa8bn3%F?qezcvQlI#W#v78 z@0eFEtaE}6iBiC7v7n4$aF+L`3;BHa($_T=QD$QW3me|Fxo9=dIuDr$e^q*mp^sZpVxsNUK`8K zn3u8PRXo%ga(vRNe;Y46c6``8{OHyTG_dp83Y*ybT&oA8)k4?zO@j#f_VNX{_ijui z#{6m24g~6>kw0d1joCWPSx4W7emJc(+{*aDR^{$|`_0smC(NiZ)lm>_khMEuk}RLA z)NkaUb+El{wb4pHqW2hs)M1!{#|at6CVU?LkedKuUkW@8SGckP$2! zJJoP{*(}nw2?z(2W+vX>3S?eIj{k|Bd*B7Wd^-xYgxOxyPiLtzULoeSMj`lSz#8Vc zJk+#tTqWY+L&l|uW1I^Z&V%t((X_^+g)v3mi@yED*zL2@gcdcd=^bLw#)gI2i|lwm z?X7iJZ&frN8A;JeHCVB*x0vGk#)q`}?YVOT2U>qLN-O%DW)O#B+A=KSs*z@u1hVz< zQXFC7k6}JN!Bx}<0qt$l4hw5&x6`TA>r9NqK5i5)P)yC1b2z)Yr-RTb-p??Z+c2~Q ztami)kc*zq^nGG2lSYwAX{3W8MK_{|p4Ims0r1P9tzo5-6jL_A{oS76Wz+S)ofIyo5F(OWpGD1!k&`1(fFo!wvnK%kF6AOKJxU=YBxhL$Z(JDSf+ z?cR*ksD^P;8-mUnWL*P&cuPysGTAsg9IS<~gm!F*Qi73))=}>ZcUC7^se~V$1!nz_ z<9@qd+B3_F%DBMf^h!e{1_Q%d^}CQLk|{{?2#rl~#OxZ&X9Esa#9A2IVEf#Z4cH~= z@1b1W1w-3lc0zrOewY)KfYiXQ2O2|rd8*AjkjP}?a-=;XIIT%>#ycw1aARhZ{0*}B zBYVm<-Hqx_ic@67*j)#F3v;eHE=XiAtyLtf*7mu_#%A_*tJaqf@4oCl|AkDKr2LHM z>AFpV>GxS8C)uVj5(C)91HJMkc{g|c-~RGMdV)(~x9JN}woQO3YGjYv;^e!M;V8{b zp4EW0s-k*LdZo=e4I*OJT9Q7C-zK`IBOxrYI<6*z8j)#TI5WFZ7>>_1EZHui4+g#? zBT6fHu^xkOcE1N&fi9zbjC=`VJm|>vnYKuH$ud~|(h{nuRA-!6h_H#PRLBz~geg~< zgDmdIk8%3hF9gmovFnA;vRRK*K!DVS$P>8Db^fFob)OYHYkXjB3R{em1peJ1qeic1 zql3&N@C%WvbV_Yn`;c(;>a1fP82{6pqe1stQ)#Ge6CCorEN9Bxp4qK2<$35z68hPB zZqvLG9)U|i-O@IW7msO*FM@@|)wHv`t^pZOm-%dZINY?^i{otbafSAfu>9+F8$cBJ zvO9ZAzWA;Gn&WqXqWPS`pN}^B(ZHu8{HV znlTUwHoX2TS_m4V1?gF{+^k@DLkzTL-?X0B^e2R*nzyYN*4$VLFSQ;Ku>cA`QL$e? zS7Xe&&A8{)X{QKWFVyb2-Nn0zoi{5xe}e77x6HA+{YmTu%x>Sg<9sw}k*0Qd1ya?1 zr;EHZpxumYM)-9$&8bF@#)yVg;mJ?UXAlo~Hh&L*RKp zAZYO#uE7N!CyBq*3~oPLy{E@Ki$g{!G|zB;AJthf3-}L~7xaQeH8v#Y1FD^07ak#= zZ2yUPAC3=V2avFC?BUrQTZr_+5;Rn$5&rhrtIrIZV4g`l9UHnK7fQU{jpf{cxwx%s zD#rb*KTfR+Z&A~6o`>I%hp8;4V?q38(WP>}aE`KBz);V=6jJgds*HQwkx$P`oMU7Y z?@WR&-l4sGC$E<2Q9$ra*~$lK8wSLMIz>T!*w-&AVNU-yAZcD*u0Mg~GFTP};ru8y zi|C)24VcDjTEx&`q5YE`J9F%e&3}f$s>vHG6D-0pJ9{naViva(x}I50UvE4ym2Sg0 z^bEJQ9lq$Y_%Mtsw@t#_E9Eh-Q?!z@;7)*~<*!-k`8wagMRZGp#@$@vQs46`1h^=u zIrOuAh2|(L$5`x0-VRok&j#zvcvG9dBgZ0;HdQ}=J@PpjBW4=R9366j-DW$dFIE3( z|6`9WLI=Gis2Su)Bxip_Fps7n(5PoOg`R+)Z5&d#=M0@KSgu?h$AZP`dTo!vn*72- zHrc{O7w1@;JS31WX<+E8w6Y(H*>0idIS`~t{>N|R%He>bRB*d6K+tOpe@Pljvb)lL zS|nL2eLKRjY(<#X@P_8N_f;1xMx~9?nR0MTL=0`Z`LzuGORzb_R}Nw{_v~0QkK$8% zF?ws!N$5C-!QN^CH~mtIOQ79FB?Gm%P*UCtK|!|)Gr(^{YkEq?Z+4VwdRclxg^1}q z0k4rj*Z5`0NT!nKWKy5C^HQ$#@O<0MYt{YBW5ahl|GJRglQ-?Hehp)VYsUNM^Rqrw zJf)N^QrRunx3XM?`{~?~h^b5rT3(tW1APh&P1>nA8uAv+6YGI|XD#%j37(QNrE7NGB zvY1U|rDm8p29y=>Rks;f)09CzT3dXYgp@@4{FcsW;Td8Z&wa|M16|a$fDH#yG6hOa z^qfE%smz#Y7){dbUb(@0yiLf@85Gk2WX%!6qQDC(4o3wInOcC`7 zew=h%8z3c&m2Ey9T19x#E~r51hJEKPT+p>6LYifTjs3VO_&hgr*lDc|z22W>7pAeg zDVl6hYYJl4cL1W)Lmm={b(9(-XCy+SgH?4S3HF48eMQw>YlR;B&Si)r?|5flB~m9E zSjdQI=P1#fQTkb7>Gsk-_&wtYnaY?Bt&Ovhe99=sA}o45rjT|^w0!ptO! zLc}BJ`p>V0leA)#k8ulmcFmvH5b1IYh?t;h0&yGLa@$~nu3Xpk!A#Gr34Lw@*p%P{ zy1n9;J13=|BRND!g(&2ULBk98A_<+1O1bK&vI ze3nvU7Si6)z<2uN_kF;YcF8n*Gfi`>96H2mRRhQ~^mfHJrIUr@tb|2F&QC0^U8aJr z&0ziDt05cz zrc}B!4*xe9Z6TUzbSpx4wWeBLZ{qAdDZ^1~NI@ml;gK&Nw)iH4VsdW$K7Ay*L%aSp zr$f8)d3WZeEu3|Ck`W+0uXOFpdlRjJz8_UvzJOzAq$%xLQ=7d6!U; z;Wt=_fg-pH14~-E15iWMA8-80DU%Y%<|8Bd`wjA6c?V2l7_tZo0FWXB0AT*%9djE; zCj%=hdWSzI|4-b}+*ZOFNAf+bO|wIAZ(qhZ5JEjM%)CGD@9DT#OBjuJQN^}wuG~Nf zN|Hnawz>+8oW=O;Uyqqij$>p8hh5X>|2?LBED@GUxX$2ESC8WOBjn*i1{8`gu2#hE zx0aoAlXJf7BIhb)@lilSS|D3crkoP9#BCk(&aiQLu_5c4#m`7mE_MNufo{{hNfIAM zx1gVh*1LUv=XM33x_x|rs=K#TRWW+?;>E`m^lO;NcmAGZd4?^(W#!^5}Dj&G%T-(eZ3!N7uIx&abN!F^iB2NaTwHZ zF8}iPt}}(wD=~LG_LSh10tRFLb~fkNdKk2KUZ6RpHti$YL7q((RiJ?nEO_JFxgcL= zXV87DKZnYh5Jj0FX#1oI?bvN=-gM7w6&{Vt)Q@wR8`+KeXn!7R;^FX-Bomk6XRoF- zuki3u5L26?^fnFo;_#6&oS8r2A)OTF;N|dA>+sQU$}Z?y_rNUr-KxA;`fS>g_sDS^ z@I!SbHb57Dw-GG=I;nIjz9`dMnXqA3Y{WR2qxlee2pa#a*#PpI_pAQYtdfc<;*VC9 zlY&n5Jf2M9ps;`2Dq4WsdTD4_QTa+*8NL;9WWTle0B9m%OX4Lr!6jAkvb0)zr;f4_tVtgyd=Wk6f zYew!y^jTTc)IC@1{%MD21sC$pE*Il!jt{Hq(h(AdOkld$bn$T<{!w5h&Qu-EPEhL9 zMwk&R7i{!vi2I|B^m%zMY+$voq%7GI8c?0P&pV8aV=V-qv?=Wm(~hhizthg>UXb0`ktCoz zHct6#`B{@F7qq|1%j-6V>IQ7E+&MHcdFE+c!1bR=J$7j-*#;jbvoE$OYCCYz)+4qy zBZ-;YcM1NPcT1g{jat5VVA+}7s~n!9?4HP(-3S7EUt?>XLykg(-B<)WS2y*bQF+>U zQ3$goEw)oD0MYS_A8BVCxv$dx{_9SuP1g@;gg3^HpqASio1edXrI)QOw!DIy<*(0Q zmS=-gv{5Z6yFQq0p9X{m(Mn-#pkQvV78y0X%6Yc_qBFI78O-1)Pog4-7elNgm-k?} z0YHD?lP7#4&QHY$ej)rRS0-1pFodG1B$>~9Jvad~griqXu1IU9&u#{vOdYB`V^wca zWcL7?ky3_}`W-L%_78ReMuTz56I6Hv+A^Lbqh5zGFx;y^?W5ffw=NV}6?s|Ru|x_g zTS=14h*Ky<4dTIBSdd73x=7Je)NE;jLQ613B=bO3EaDl0*lyO&g?@9#hM*Cb$D!1% zqewE}Q#%L;3l~)GAu$i^0eB_QHPY16nUkqYkL)WHWK=C4{R)AwC^AJz^~%g;hz(;QzM&bJ=6lyBDG`EQ`KPggwWJP5XEkI+{kUAUgu zZbLdX+MWToxO1tF=1HE4Tu2TNm-Zu21%Y|>u3r_&G5M-gHT}=|+Q8K>gDsv8N|#^F zdru&HbJJI#@$N}D(_d+wiJjYF4vpVB6Gg%TMg9ORICP~W4zytLI2j=yHYDhV8f6cr zYIP6+isKnyXGUn#%jNRr-x+5DCWZxbI$>4wJ@-@LlryykDU&V_nVo%&HZ|8ea6jrWOyxCvDOgsR`5gH z+bETpd5#AZ6Uzo?8o1~%|EZPeZ;nX0Y6}rSNTY8V{9xxzE=uf;E) zBU^&uy(}Hr^&Shc~-8PEI4{n1$2rYgw(v>iqKgJ<7!k>6%?TZR1Vc zR+0*XVY#M4gEAa%w^?vLaM$yPb3PQk$ijXiR!81c5XT$x);{+x_yH~)JCJ8YIY*($ z4+c-(HhQSgGN+yD4YE8%_YA|gZ+l~OpBobV@oG|YIHF&-FPZr zNOAqGJxiyKEZo>``k8A&`kLYML2Z`)8c}~YZ`snrpLLoTmQ?vX*q&Rjk4*!xBp zY7Rd}ggoNoaPv6s@;r>+ylnHLM3?7j&CB(N!CPh2#s_B9=4_p=;gD#a(cCpXtzi={ zG~i2cn?EjqM7&555o%A{BW)DhN;NnotB#K#B~Op+Y$`pmg{Q{UVWovfec%Sc&dRYO z+sS+mGqAowhtZ%ev%?CS0TX9iL8ozz<0{tJw!z^*?^#tsq>tF} zt1i;eufGhYPg=Y2NL&-RCN)Ec@n;c=R<{?Y8?QIS0DFgrxw5v6@D9>Fp0Qn^SigNJDXPakdX`y z_L>$MY^vC}r3^#XJ_DvD$p>SF98VmdXxyP4 z_nz=-ZtXri!tZ9h@&Th1L#eZEwPI=k}OOHP%%QQ~$j*KPcZUOqr zUFe>^`cW}8bSk}E&w+-&IBrHOec9)_4*NXM5d$zf%(jW6SN~AS^X%p2?BfiHeLGwG zJAO|p%N`5z=@ZWB+wPegpZJ^D8S->pC;nqg)j3@yqW z3JjxPc0g>jg8_nxa$s0pciP3?_YeHhxUuXoiK}RSp@AXCXW-vWGmfqIiPi#z9i)`$ zmP#IR9^&8D=MNj2T@_j`B-usW!jJHQ1xG%*JCIL^{$drqCDUfUIv6e97{q)XKP)PsM?k+3BfIhPimWyx89i-<5vyY(Xu9I zl-(tHG8OhN_v%%2_fPS*<60%2R)p6{&_%zLlV=>b3DILvfE@|Ki(tctUa1ls)W){( z{&%l^H=|TFECV(v3qnd>8ZnabH8e4iZZl3g(?i6jyCB}IHy!G4qbfYY- zo@<}7OT}T8;eRchsjD9nWjQ&AJyHDIdQcjMsGReN{b%`Q@ck6MviE8BZ}9^nig-cT z+##s}>e~Dai~c4S~i-hG;0vCj#!YKPxw967+X+bFI+*=AGe@!QzUQ} z&e@>fM#QYi;1XrMMsH>I$Rnqaw*8T66E8y6r+Qq2RR)+}A3H zf8#il>NDgvexdn3XCWfs*D5Znl)n#Bs}vmd>J?Y0gp=ymda7IqMeR68^B29#%vkcV zxUklA*MA|_%=Cn&kt8{x-9n^CZWh-E1U_inWfC>5bT~oX&5w`*qgbFjVO2}Q;3ax!gonayjQteRV3IJ0`a>#kTKy^; zdH)iIWpR>$B!Y~oCj=3f;8`vj;EU5r{v~A&!`}V#M}vB`?18^u zBI>tD%Xf!oHuYMe|9v??u9Ev56cIMKp{}l=06iLszH`4KWcZybw&PFl7HEWKY~xgc zQxw*|hiUK0AAzS%bc@DG5KXfeqbk#R5&r%NXK2twdH6voX>uLVIE!B+AWOQ&SioLH zebwe&2RM~9k|YreGrzQz>}>{{L&WTB<;87|n8OqbotmtnhMwi742hPsC7AybnF$a< zM!75&rie~XS-K82bRNf1FLrv=a3VhTqgO_=uGL}N-MaI_NXZCPnZER%H7JES>t{f7 z^uvC_%E$)3X}5Ht5R%rxG88kp*q_|gD&9OY`?=OtY}lG zdV$>NHCzAO)bzf%fHEC6TVp>g1>Rg_XY%4b8m4mMS|NwK=CV2QPI8^Thjj8y{8C*1 zeK{9tGY0a>f@|}u$Bj?D3)9Ji>TjFAfAb+k>8O|GKVyh5kV8_47FS4}VP}KeyZTLzxlZ4uy`*CWt&3WH( zGH+4DO2e{5G+f1c6!BPTdDy|*vkT%~s>)4wiB!?DV%dQPztnqC7k_0TSov7c)d;bA z%q_x!(&Y!#84^D&Md?PS8=ty0sEBX!M-j3XM-kozm)sO#SkRO{dH4j$aIqmq*W{}H z8WvTRQgN~o%2KmVi5>LSt`EXN1VQKK!-8+&Qh+A#x!vfu52e{e2pg?B?j$iO5{hgk zjmXh;nb|xe4WdtWYE1GRn`uwhU~z>O#tF|{@&$US`y+;2aeNo24DaumGhy#>l}tI+ z&IJQV`leOISusEwzFAsP3cCcWmo36KloruGl9EHHFZQ;m1E(2UlSV2H`$Qy}u#QLK z;TZ~h&J;L>c6}7^gSd-$1z{}-CQOtDMyxQ^s7Jw%96+?Ug3jZll+#Gf4o@GTt}Qiy z{~C!9+@lU)gWECmJ~B+bmFEf{S48(oksP2!wc6e;x0)DUl5^ph_eq=cn$vM)oj0^E zS_K;So?bpfX2Ptlv36j!jAc|oS zOjto_Y#|b@UEmcOs0MF}Kh5v~x)S|VqF%Vw!myHJXLF$Q?=W6Mihi!%nDEJ5d$ zTpf)6GjB^KQdUA#Sdw}DbH2V9d z5~+8V6xoEg!>iq6`aH1Ug8f%M67gt()AhwL@R10U$82>8dvdm)-Nj|hj0F!uDUN23 zJZhuhLRdCWtI2s@y6kYa;!GiPCh-8mnZH!0Gxp~YDMEQC~iK5~8yQ8Z|N?pRC>Wuy#`4s>)0Je3C%W2S|3>k^U|zw%0005#f1&t)zBe*+u(dY+ z|DgC_rG8ly1=Q^q8XNsWiELsixJXSx*}0WDVuR%_+1n|GJS2YTeH5I*uJ)wT=4(7cMhO(n znmMOAl+zxP2p02njMd$LaV)2wH%Kt)#aa%+7L!_Tg#h7uNTiFppI`&zmZCRv+1? z)z$FUs~jAc(=oj(B`f4?n$s%1hpic$)k@v%LO4E-&5}`NgoB>pF5d=<9hmL6%$6*> zEQl3aLgoYhu*QDf2Lj~a(jd)~zeau~)!~mX>6k!!de;d%kjlJSivMU&R08HPE!YfQ zJ7b!I6y?mY`;phAhzAzHQIlz98%Y(gk(`9k$rrl}`Ord#1?&Zf{j=kFnp2+})><)! zkz#69SI2cRZm(dA!+9t?jTq$Xcdy{`?ckQcEEW$yM(_Z7F_VL-z2(kGgOp#rC>mtJWA|bRJ$HV>n(yAeX}{@lqnW z8kHVruGPZu^>fSB6re_RUi8kMjWHWe)|_0)POH?ekkE7bH;t(RW5bQIb~aqOxCB48 zbBKsi<;uB1KCcLxav*`V*TG}eu2haG{%fj3XuENs-~a#)ivOPK|L<;Et$AyMGm7*x zQ>so0NeBde-Nrv(u?Hd2qQKUID=ZnYEyFQV(zWpo=;kW2`$mU4j|0}3GhLg6;^ z1OFl&*SAthp-r~6^Mc@$@L}on>>|0v6tUS0>*{{%Wocw-^b(?dyRPmtXC<*ezTZ?E zlKDXyb*8i5zIAh^aqy~r6g`KtAFMCNnCR%MfE8X!GOV{=f1R^E8744B1lHE3(nD_q zWh~U2p8A4EZTXBb)6g1tAeo0E6X(oVch#mkves%L*>@Xw*0Nr$|E(2KgTj^`O|A$Y z9?J^Vi>~3<0@xi{^uU%?M}m?5VJj@_wmVmB-K5i^wOU8OPSpm()a|J6aM_1!TzNN3#&c;A40mgCf#EbhxTp(hZ__c1OG7$y1>_Miq zlG@a8wK_Xy`=u%r5zn_zw`{UP>MJ8P%p$YF- zQZGFbYT+zzrhs%?O__w7*=DoVb^d^nNnVICr{CiknMTrBEUj8^DWieKQR`#F&1N>b z-z3>!1MVBl&=o#`?7ln2=2-SOV-y7IANW8#z<}@i_j9< zIRZmHn9q67c)A^8FhiDZt_clDS9fpbuh!=(R1Y}iH$oKxUa(b4`baZ>fyQ{qrjVNU zll(*YV>lul*IYbbAvd4mtOpqq&+t7pUOICwwVVS#Ie9UCax@9dOI9pIy-OYIruZiP=)?SPP_0 zH4dC?KR8&tY#M(Ow9F zZ0VQ!4;8#d65x9CLajPv;xXMHMI@9NBnO&jibMMd1b+p!w;F_&dJH<8NhcqDI+a*H zHaevV`(sCDXIP_2 zM&|GKg2%*tP>XmvQ>#c*t$5k2Vlf`_G^t`iMja1&U{WLL9#&EkmOD_cyKr*S8L%9l z;o~QX?7Y)h)UYV2Vg+3K*d%c5=uvFw zx~$*5vrl5?F$|NncvYuPx8_`GAfan9v!7lYs{&FG4Le;c2*FsXwnU=0Bd)mCDR0o} zv)@dA^T35@Nr(yG58VIwM}XyMdD;4i^NNJ3-s-;QQ@*l@h1 z7sy-C+%wXXf-&=pXmswA;hF^<7l6qnI+O8|%B)r5%vXX9$JIN<<298yLP;yl|rewL!>rR7{fN0q0psTtIAl< ziQ?sXSt&=9`xwbfraST=8V!X%>oS7)nGNZxXrC@-N5P1{MBe#GV$7@lc*TPiy40_m zFGH6(DE`_fbCktH=mi)DvsyThWfm;Esn_4im&VJ%@v6qr+5EORi=5;x(bgl*47>uc$f zq4CmzLQVeM-V5?b8sB&FixmbPzhvxTubRLTB!g+FoLMEhm7jU0EyFlW+?$HA1oCh% z)J2O+uOm~BcE}|WkjY{8Dv6Fw=1^&5IfAnPn}m(|Bghm1KAYjZXwItBk+R<^ed8Cy z$@V0r7y@jg5x+fzA0nao>OTUK^>HSDB(VtMeU>YaUStc6VH~ubv{c-D9;YV3!Xh%S zGa@kG{>v75jF*Bo`N8eagh2$~M@7*zbJg45L{<1%)`?)ZlHiq*=faC$+h+M$($`?d zFG9fI@!*zaDlu_g2;;f6U_c3e4rc7;>IqFjz-)0UqgpTJ5zN-#JU0*s>wJ&%jz!!* zK)fn~O0Q1CMRx=bR)4qBz?KzkeB?1ZT#Q_(1S9B9$=D1+ zc6tk#QGvulk%w1+KYP9nS0-M(KAl`WjKyB)CH;|2jk2es2^2&=7*&7S?o{NLL~FbC zo5I~nQ;B`ajsR1M?c(c#X9jbUXqa|XrT`F=GHc0QA-2$6;Xg0tJsqLg2C9ej>|63R z_x;qVnTz=so`_sZChEw)ZX8uU+`Yu@Ww0KLGh(s`V_FZp6_l0ef|ptoxzL$Uk@duS zFvdEB&xE8q2o;=N%Szmds2wz}e?65+2z(;9>uVinz-F`l?Ldj1)s661pKYqgjBf6H?_vQbj!hTf-VU|t`Rl~+?V+n@K=1C?8v`m|!qnY&nw&y*s9;HD{R*Ybuf z%E9*3jD?-FbPN_t`6S*{0Hj!PEsYPUsiX*c+2?v0|i%V^4+u>SV%WuPiZKnke_eT@X`Ntw!Wk3BvPsGz;YQUH? z7`FIKI8_HPe46j@ZVbBBy9gZIw!n4#Im(lIuy#g8Vcnw52ap#VR^{I<1{OUn#Il@` zQi_t0fHR&HyG)w2(mP*w=0!0xI}OLas9S8;kfzWVQ&VB#ef8Z8 z`W*!7XXNy@2;fWxX=@I0sc-%=?TZQQ3lR(Nr*4sK=?FsKl%sH7+dCfo?$Sa{arW<&l#y)-zGsX8(wtGI}l6K`(A}oy6 z?o(h~wP}0JE*VeR^BE0IG0vHfA}oPJZ~e69Q-X~0TN)`3b91R`%m(?+aL-(Sed$;3 zl6zkOmBNQdr0!GB&~E*{<39=v&vaJ3$BawLuC8PDd7F#jQmy+I6k0O@f->sUWv6l$u|VJj zaU3`946G?Uj~n`2+k;@G8UFOXterBvWu8vc-YjIeL6%SI zI57U)uYf`7o&Y%@#?B~{++LKyGS9O$NJ-B#Jmg@zImmFoS=?xde80;X@qSb>%pg9w zRc&#@0=F*tvk4YKmH`}1He36?Pf|`V)7$CRV+YKTG#Nu9>&;>>ppIjmj&^&Vq6`_P*KB#Ddncs&5#(Z1l79# zDg_VFS1YX0|5j{!VsOPZ54=F7cCQdw%p)6EOzZ=?{#A;EE2Pz0OX8L$`oo3BGDDT7 zg}dth2=QOjRmDp;rT@>_Ll2yPldgZ?{{Kz7iZ#As4qK3ZcIBAXgyMDjPCqE+o9G`y z54WweHW{+KxkyEbhapBI) zG3ZxZP|&Gb!r1Edy2G?yG{zL90YP9a8d>6RZWy^=YQ#P0`jnmj@y&*gy+YTqaq?=zP3--D-ToElO&WT`b< ztVIk;@;K=1JLR2ppoXw7=DCAe#228hxCe4&Et&a+X>A}?CQYS*XJwI{aUoTeWn=3v z1RUp9H3}qgmb7E$O~(qdnfwV({_PH_Oo1eAg%JX9l}X>n6;a`ES*jJITilq|hc)f}JjhV` z&HTKoH#_HA928YZv7B(+pP1($seqGUU+5-Ma~RSz!Ho5KG$V`ihQS1r%t00qyC$&q zIETpx!W^Rd-5y+akrW+@eiFU1mMr&|GAi$o|2@Qp`A9z?buaivd%WBA0&u4Iub{@R{mGMYMi~1g?=BFB!4V{J_33^}j;t*_OOQ z6&Y$&!>xHw_#bxBUw9N_$Pj3e6D^^D&76e_3d#JIWaTQzy2&}~bD*sSmST3Y#Z154 zcbOr&BQ4ICdK8YptAXgUxHh!^!QMMX*A{4Ny0MKF+cs9bVy)P=ZQFLTV$Imjif!Ar z?WD5zdAR#jovOC$)_u9H)$43+jHlkl>|g)?{&)1#zh>Zpy_Chgdfejkf1LMj^y7X*r*Rj&0V-kRLtx!?1X8eE_l3Wgux0io zh{JT@O7$-=8e#x}8AVK8;^QS@1P_ajqxP&@hkFX-tHX7l=MMgz;za8=(QMa=vjwZ; z^^r7snKa7J14yV|{^AGJWud48HFqeUqQdROeLh`rSe|Q~813?XAk7)^7i5jB`@a3c z`D{@B%Q(_DeH?m_{uT*`>fMenh)7?%#Nda4e-MS2w}wClY5Rl}sV{zb`43$OK zn7?1l!78(@yu?VzCR7~63TNn#l6ZX){qG+&qZ{ z9kmk{!BWe8!YIVBc0iBOUU|U4%==bYK*Dgu*pV`5MC05@6E&z4qSIn}_i{?wseD7^tDm?mP_?#@qpf6*<%b<`?VdCF z$!_Fkfb}}pMXz({DGQC_5p}dk&E&TL>LVu31s8 zALWgO#X0+J%Ywdf+3L)+0d}R*E=Hpf2?kfx(cI}pzFi88sBHw{4njswQgaUw(EA7|Zn zg~sb)^h5cdE+&CBx3FvcrNQa@-E-qd6oW7QZfxUaZ+4x2bfSXhasm1zX5r#4 zh3t@Eso&-_ZiRl(7$Kv8@c9Ago3!q`PH`e=H|Hn#sg4)lAv_Qt^IFmcE|{{L%Ovu1 zKDA-=b039#07iotjx$MTm%6D|*CR#upaGne{`TB4_VSlNBcwOswMjz$b#hK>mODzv z!oK8LQBmlgHuIT|g?(;Je#8xcfd~v&J#YdRL1P$MzKKO{W7BJVPA2 z!p~hQ(cyGv{t6mJZU1uk`&uE&q01!i95hef>f3yFcwZkOU3AHET^+g4;S`--RFy1B zAkN49gxZaX50cX~r(F@<-`fKIx(4n3M@3WUWg%OzeJ!#$t4?IOl2?2G&8c*b4bMm{ zkZ$T)p}74g&txUH5P560r!-FWq*rcQ(Kvxk2X zG5^<4p{)3CLIo^sYTADd72mJ;KZgqXe?SGu|8Jn;<^Kbya1g)yh6?v|hOoV)9~_}? zATlF2X+|P{$9C+3CWzLGL_CJg8be7vgVtEr=z*xH|3c(M!@o)tLNOWOF^?f{L7Ux2 z5}L+EirU=*RIvvg~%4@J7nRMIvOLOW`kd743z?CRR=n`pzI0p<&SL zr{hTta>D$iJ@dmn4m=DS08pb4f3E1NBBw)h)_CXBpYW&=H|9sDQ(=TGMC;<2_f|Fb zbz*MBc*wBM*CDO6%BQg*Q3*o=;N(7x7^Tr++8RXF+pfiT7Q5E%3*pO{mFg<~2^F^z z+kP(IxyYG<{{vKTz5dHW(?1GS{x4el%{NpS;{Eqf@m*d2K2%_h#jFkAOjc7y)po-X zT3SIuB|y7PPm+|o>D27Axdi%|#nY9#inGsI#n3YRxaQwa*SgdHOi)sGRZJ2dL2yAJ zsoUI8){Z@dZJA$KEg6{Y%}}l0>dyKsyw&QCwi%UH1B@Mu+=JLCQ;%tw_{o`f)00I} z$M41t!EK9~Tabow^r_lOf>Gc*J3L|})hxoJ8NdUYrsq*aO0W;9QwjNt>gsYO#hv93 zB$G;mlIx^Y_JZN$`(<^4veo_PK~8AAGF(pt)Y#KLQx;V)j*iL~EGU?X89*6HPYN6bL>Mxed;)1xRrlWz2RK6Z9K(DSk#j}-eJtI)dgZ9 zS$aVW&{E|v6BZm4?2}T|e;`2iJI}(wB>K>pl1w$Y4j2C6Gd~1bVLe`~V(~>9vwJ|D zn3v2?89fp>UbE)5z!*o#pX;n1%GyWeZ)vE?iq>H4Cptdz263X+xX~tY0Sdq^#1mz> zAM8E|jI_XpfL^S5FGsAw-0q99BV-On0`F`ET-qLav){!qY`c@nq(xL&B^pl@CnXL2 zVRYfHa2H*>d!)MSc8?67=xxoG0&~nAfh9a%`GEK#9-NHkmpPQ^&`5${`0tw4i1j_H zc6ICl93qx1c5oELf?Q_N1ncC`)a>)MlOIwp35hPzV)8@dTO54WQ9Vmu@Ka?fP7dOm zeoGR+Oc(0MW1*i17i=rZ`8IUE?bP4xk@xIhaVJ#bBU7*7(7`4<0-iNHWtWj5V?UR0 z-UcDe7q**t37D*4pmaSQsnjGsd~UQfXO`BfdgwPiN$nBly!8_R-!}L9_8Y{WJ9J=x zviTZl$P~hC1ci8!s&SRb;YiiHCG1l_ombI=BGGtaahH>hSk4%F=HK?HO_H{0M=}uA zGGTR7x&jPLOkd%_ush|l+Uqpu3~5Sg`vx-&B8R z_z3Bx(sQB3+(3yq_z`1xOWF+Zb<*TQ=G^aL8DI0L{VAlW-pA|eGp?E|PA+>Y$tCljM6CgtQMnEl&G0)2VSVS+(G4I!SFi{S|hPh~r%o94+S ziW%$+pA6zWc}iRk3(nOrxe$fHp~LUbCuVR^veonj@?BIc-Qn2L*CSJd=~V_6CumZB z9FsA4ZgFH^P~+=9^vOwnm&d(5|AZD65xdvPJW|Lw!V==>L98lA6)>rRB&sa+Qhj6c zgI=2oVMI^gCK=DfZVdSKqbKLav1^p+R%c;;Tj8!NLunlB%@;$dS*q}lZtbgtS4?k( z!mp3dAJN(tsIkw*IfXVRUAb8|{U490ydw{i85J>Guc1D5^Wv(Lc1hjDJ6qc@Td!C( z=kltn`hU*^c=kBB6TwL5ty5u-ltG-dER>02xmjtq+buEU(tu%!paU5Lz^$Le#1j5raamkxlGD9wpV4d9MWU3(wVyH0nz&{C{(Y~D3qpvj%an1N(&p3V zKciXW90G}NA@JrIeqKg=*rX0uCk-l2zRv~r{jOxT@Ra&<6(c-6SYIo3vfT?zhS^Hz zZ^kp`r>iw{%$!@osFS4+*`Q`eK1FI_nLz^5+Yjt&hJxF_7Ita8oJn=rW!K%eQ&-zc zeb8F-1Ja`Rg39)-hVH=n*bO?5K<9L!D2R^}m&&GQx>MTz*(W~*%2acG|4!+swZv># z%$J5H(gyoJz%>$(isejud5Uk{t&PF}h-{R?rEhX82BQid1!bo72F)>CYO^1P@0349 z90YGTB4LG88M_J$OIbyj3pG92Wa&?71;rcG;orl<{@sTbb-Rwn9_13;Qi0U(rEE_< zYAXMwGa)l-;!1U4v*z#BK47!7{sQc3XEx`><)9<6?$l*3jWJ42=bWvt0WSmVFS-&T z;aWwX7Nd%E$>?+%vZE9NBTpAya=`v}c>qDe&4F8~72qv$c!>uEnrcxyeiFj)NyIY) z>@Y02%@d)i85-y)1|+T-ujVleDD-KG*lIQ9iAOg_sk-Itykoic(P$EBcz^7?}ls|IezjaIFV3p z3)ydCI_(VYm(Cw^zsbKj2X8~WwX?*9#UmOoQCfw%UMlsNf7%d(L$#BsUA_r+=tgkP zF7JdCuwB*5bv(}wQcnG)XL)_nJ#t!O_231^g;`K#@f;E>v1Vf{tFsRC7Q+zHIBXWl zxFaVP)V91Bv7Wb1PeJ!<{EsP)=QLz?8Sim?uVhO3c=T3`>$!lFb&7>ydPFCp6*)|2 zoR|n+3^(K{5?k7r`Cw9#%Nb0@kic8#fB@YD%T^m#z>a^U!zn$Ae9Ee>_^LBm=(5Xo zV{6%ol&BCv5Ey$w9x?zCfmMa*Bp#^v{6{~?%-<+ke_c%|`BKV*pwb9(Q_hdR?~X&K z!^_*B-#36tccA@qFK1`$$hXH#)4+Rhi_eMZBtro?cinVs#~^IRsWs_jZUjiCs73Cz zLs&2h&ZB)vC0jVuh49l;%|PsepK^{s2e*^S<#$W9+yfA3oR* zv)7Qm^j3+?H==^G9^tHh+=uk%8n zPQSs8y`9Y&RiSWorm@};!rRH3=skaSHqDTaXq`MIVpundKeTttglJiX*W*>kprjHl z-Epr^VP@|`kcCpI8c%UPFYg4OMWNc!%2T}#+ka2!&X>P{{$1%r8@_&#{zN_osryO-%+r1WK-=$(qBY8sL_Q}g1lo}Ww z*9Wpw8>9#ZS9F&Vg1Mxthw3QKr0BMfcHKUqolVsrdT$b3ef)K}W1DEHq2lQ;6L!N` z2&TuXc0^|sWGOVDSDWqLkj=OClrRuWb)^m_K^6I`Gc+y8Skh_pRw0)sR zaNCeoti3xM*YKGr+x_)2lb;dT*+%~qPq58c#n1)&1krGxi=&nxgu(yNo(a}a@6{li z7>C|ShLr4zRSOn{5Tz4!4pxg`K#r>gp4b{o^K$WTS+NV5MB_;|@-X1aZ>bUy6q8?w#(F%9k1T9r!R+}4oYf`R zb>_q7Eg43aNDzgXcqI(lyLhl<<%rd|sF+>!;26AF@jjTTV!NhQ%FeJqV--}$Ufl@2 z2%CV>0m?|5b2L3rI|NRBJT~z__Cd`rlU9JwP~-A zB(`dlQCpoew5}cOu4Y^YDO@F5>Ny(_FV`d$UU`SsQkW43#J2k!x{W|h59))zMiv)0 z7?a`0f}Q?~soXPIMi^ZAg1e$hC1(}r_b`Fmh?JNsnF$g+xbuo_J5U&i zkN26Icmp&}Nx^cfq-*e4U%zMnA)Z)&izm?dzepjGz|U~@LoV*xU_72B__ylNLYj9Z znr;GlmTg-ojhZ&0Izk=FI{hVe0#~;-^JXr2f`t|viR}R1xI*B1xILbEl5_Iod=u!}HVkyG zI}f}*ZokD7m#Yr7ZWF(VWS*i5pnG;MxcS|B$l0}$FUI3Uo#IO+LZR)uNrR$-c%2s3)v%EcEiP-P9*p-%|TXON9Be=hqCPx07{}$ZN`}pN!-J z7GOUOfjBh_v85#rTU+W2F?pbASs1l9tdu-+Jg z273u-9MJ_>V_!*9rQL0lJ2%amSX&4D2z5U9xeB7!E#Cjb?oS(yUzs3*Lx}OPgZZ5K zqmnE%#x-aS{JiNo&$&_|1wA4h-s zRoaS*&{dT&bzBrfRNvqAZn#KH;F=nQXE$nxG#xN@8=YEBf)}1+&NC^|QAPAZN^MVI zE0CJcT%vW8$OG;DFAl=2Kek3ab?21U4zKNOmvKrLnK9n;qVFyy@)l{FoJ*$I2>Xs( zQJMn-(rpnkYfs}(wz%u&>a?{b<=b3xGqnwxE$GL41~}+6!ZQ+7M(I6GC&Xf|D;k^9 zD@5{!QvRHsG2_=6b|^^SY2O@8G#k5cU8^w6bmrZ;$J&I`)M}wSfuj2oY?=vinvB$7 z^Z{n|N!C$->r}{!Hmn9pe^l&2KE-fX6wUOhU@vb9E5X;)T7(*HMR+ZEj;Qms7bM6lh3N6`P&Zj5E&rX{oe=d@A-8uwv z!Z-lpa4N4yJSKnG^mAtP%~n&UH{b<04i-gI-pU}gNktqf&s|@!T-T{gOZMzLU|z%u z4=r7r!pCOqY|l$Z<>Fm;|9GO=&tF?P=SSGAQYr~o9TPlGmi>rx%%X}9!GS7gO*>r} zXugynZzRF3moR+QdfQFZ@w}*2O@*WNo5T;EXRIL`WO}7PlSxmRp>W zXH=$L;8^1ldD#*0sBLgPxY=WPXWy+CRoFXwd|8uFzd>X_6E|K>nx`rgRxm`snWn5) zQ!9hcdcyC7{HUb|N$iQeDt)?&e?iUk+K9xV-XZ*rq{GD>b|*65Qva_LZ6z7{VuFhT z#3gn~-=uWkby5Q&&nZ8_^0(fSB{`CSFj&G3?)AqgFHdxJ38Q)RQ;&vy#6g2tnp0`( zTW@LYvZHMtm4FSiK3qA#zxNkw#NkD8V@4--tt?K=;zZHLGFB)pDtbG!X0v99`lsGP z@~yWV`kq#E0<^UaCw|m?>n&zg_!sE;pm2yv6-soZ6=j88Q7qqjivgB?wR3P$#$$+2 zjh-54$ZPDSTq!`{_@5Xu52CL-lmbgQI#Y=K97oZOt;Q z+4mLp`t*lIe3t3A&Kd?A3y6z^Yy0*2IU^J%URiIRy)5U^IP}#rjUl z)c|tC-}?`}1vOCG(gJj?4Wq9wy4g@p-@+F3LY76dx-o!{dQ}c8ifA1pGls8#aXeL8 z36H2Xrud4)HA4be@CaaYszL4K@*cmEgDYxx^|H_58Nd$Sv`sgSCp0XTylzHa=z_LO zl+ACQJkg=);v^q8ck=tFHuZb%m%V%P8@#SdR4~yECdH@&d6>j(-58x7<-==$>EpnC z83gRgDM@Wf3Q%dRHarY(L8i9NJz@0c2m){n@1Nl))D?tYC+`u|b9cq${~rAlq&_*x zd%0To)6iF^7i2I@%)~0{?_TMCs{V0l0qHpt7;v^H?qJTCc{RMNQU-7!x^3&$~$M+R;M?f^LM zeO@$UpD*9%yQz$x#rdXvJ-nUE>nB{*gsY8aP;2<#-fmGu83+oy0Wx!0^kMp+P?`bZ z0}4K&qfni3cf_If=V+UxJ=b#Bogb7z9pSllh^t^>*kw(KlbSj`NA{GFr4^&(83 z6d`XUu7Am{dS;r3Wkfg5fh(V>>`CY~&$~Ih2jk}hBz(As{GC}qY)_~2Nb;1<1NVNz zRrkJL$e8f`5Z5Zv=cFQJ2)Q;_*dGwbe0n*(yR`v-N?cnTF-V?*QQPcwYHb--eQ_Wv z|0(?g(e4iey{G_6azh@)S%NRq2$g7=f(iHx4QQh~(>`6YmLrwp3AusLbQ<1Ix;;O# z;^pG8dxL5e$*~BbFYNamA!AT^>E=mF$>xlb4m9>-fpD_CC&IYAKtc%lH?vB6l%Buj za5FP65hOfcdL`qAN`++G8IeEL>Lc-oAyYDJb9_Y!pps@1^t#V&a~q{g-udkcn_Gl( z6y$0}Ogm5EY&2%q8F}*S>VVPl7JeyOFqnF+gUzO`VoP~s=^X#v{Yy^q{t#12;_4G^ zowX}P1Tty}aVEVd_vb5fw1$?fSZXz=yocdG8@fod$S2yq7apnpbI!A~Q^u-qseTxT#|Lk;K1(gQ&zdqZ)FTYnW?OK4jC%CJI&jN4xsSildwBd=Pq9V=}< zL`?%kM3*tF#dt%H4lq=xRl+c)ZGgwUeu@rK9T^2F5exN{PP0SoFOh0iq}dAB!PRc2sPd z`ADh=eov94=7{yAjdfOnjn_m)c0B?nM|UHefCX6f zSCpG7_AG&7FCxtdB^e`_w)uu##hxM$qNsqM6=+3qDF}0d9ZYf# z>f%QQJvP`2SN^*pGX3URu`T+HlgKATbe!rQn1hZ(nQlkz2zB4O;C$dDY$?r}>+AtB z7UfV5zn#i$?3Hu<&+!-W{So-kx&{U%SzyXrFNUN+hyA>0asHBUD!;2qh$U5DytuFB zi;X^TZrZ$GewvvkDmhPD*oxrwmxSD??rXWWaV zq1u|uAyP3O9Tb(3c~z%Kf<`-o((n~2iYw<;yEcZZWn2jCuEcAvljK5|LYZ)nu9j-Y z_INs~qPx9}R{S&UT6Z@cv`y1Xy^GM!RP%ASXQTbl8bv>w`*Cgf`^R`$=;*2 zyJC?o`g)rBve_%8d#A)$GhF!|9&SnTJgV)^Eq4xTVLxx7 zsP6B+o>{>&r7YV1PnOCBesjwKsKezzq+Wa8k9pvl4=v46(nj*33KfIqJ3FoFXn~Wh z9R@F4)l$Y|=xg8+DRA3g85eMoj3ngxD(h0GES{3^IDnM+oB7U!30GW>-Cv}soq^%- zur9@{sPM4wh;H+3N$bZl7KUW2-WKJgLPv#|fWH^Kju@y8OrI^wJVOh3bbLVGi8OGN zOvS*F$PAj-?Y)1j#bj1%bSqH79c{}qSEaW3&v6?o?z0t-1D7CJYhEOH3w?eNgF%Tp zA%~II;l45Cbv9rDDIjEC#_wn##^w; zeNoy=9=i(m|2Z#LjTVI#&nEZ$Oe8#DY-3m|6^v#;N}Vt)3hmKE0{UL0OK68}lhD>>X?&7dSdLBxXzBad7y< z1`-c)M2mZpSL*u@QQ48&Sx=rB2`KqFnoVZmhN0PeNo*jl zMxnYR-1K>;okV{OIn}8Vi3nx1gj{la(w;&*z|jWtr3> z7sqNo+{n&lx`R-ALXXI3WLwUrv2Yjjq(bTah}{4E1FY zrDH{F*F%`BGbG4h)F*5^Ll(ZH5VJwsdKgk?o#nCyhI*3Fla?wI!n?59-=5dk;NK9m zH|n;je^^@Xmfemno^BQ4hj9|~wEjb}_~cHCTZla=arwr5wrFFmTMD~|;oY$D&@jT% zh~V@sUN;>(A+&P)T3;wmD{iW-O*3}yg_mP)!G3xjiQ?KvHh=cO0k`NL$e!jM<%z)w zQwS{Gt9kIym&R}U#~M7FWfS?$2tYNjVw#Yel79`QV_y=A97Szcm%*H(#57o4kNxV( zt+QChXgGQHhH0KRB|rAZ0RLg1)qD9d2F-EL*=CXta^4PXp=WQ-tS+^h`rz zpY6N4-pX1ZKb1~Y8y&r@3N-Y`!%EIfJy2v&V{|+=nH=we1;Hb9US+ytXt|SMGy79o zETenJ9IZ;geW31U6tmA{o?HH3%W{--B9jE*Q#f_7jdlysmNEf1xu5j$n8*wZQ2If8 zMfwOtRj=B#*zW{5nP)O+s1X89O~_-qs4&AGoM1X#&1fV}AoKM@#oP}5z70a$d%__G zcd*_GtVWZvyp)G@V7sW!JHfeQEUIk&5ukRKX0pyz(GRD$JWEpIP#S|x#xiLkQ`%sS z3D;&Y?Ds?@E`G0!Aw818b>GWGnS9$*>irLfJ44{jfkjH4W}TFx9%b?#8OzTMu-CQfs=8`& z%CTjCvCyQI(y%qF)zL;@GwA3&O}||L-9RfZr(((%#PVsPe+iXHHrS^&R$=a9mdn5p z+N@J*OgNU}kY|;Sb~h-VK~Q(ex;0P3f25YvSSV#&hxoEpT!D%h==l>f=Y;AUH><;W zst0`!ENsRF#1yeAW*IF6)|M_37IP#;kVZ{nID~!T)Ag4er`5nC3R>!VQ$*A$s+N0* zIjm6lfy0cuVdbSc4Fy6S@uyQQx(rs%4uOCkuAXYdB=&gN%;6t$EP;!yF2)lj2_QXcF4n-HFGqS*1>$NPzR8JW#Q#iiugf5y5k-?0l zVzbMnp;=gx_7Nc7q22-O=i2lU9cPuBg|c;9e+VM#sMvma>&LSkxlaDM8=^Q@Vtdk< z#7N=weLQe<$=e*M+dogXI1A7$J>8eM4ayqRnioZbD;H#GL$X@G#^u*PO7o^^0Os`M z^B6>c-X^rd!~Fn7yHp;d_L;IUR<{Hb7waT3qf&Gonp?r+v*F(F@Z@Fx{`~g!92V+a zuCr9?A16|VR4hu;H&{0R85UW$PgBIY=SWv$iayddJ3H#(Gai+`g1!Wz1Y=&2qHfuY zKqCp6_4ch2>C^|_uw`fw)L`tLjXW@!d2zJ9oStUjJZ?NsWZWD~?4PG=cjy10+TY0&SmNGfBp$~%ZVwNiPIFxa{<<+AY>6S+y0VWvFosqAoOyrBo|ApC92pSA!Xzco0h zr43^Dn}w5SuiL&fgm`V8jm+9U2m?1RF^Y2tN$~i#Kw`hKrqSH`ij2jW1b9g!UTKYq zqG-k2AiVecL{FZ9$~yipFQ6xSsT62VO~qRtPMmT)0=YhBE9lx0+(ijvcdW;eJv=st zU#qlAn<_x~WbwutP)!pK&5v_K4j$eTGIeW0JHIS)o@0ZjG%Ig3HtPYb3G}El+%6so z1RAYq2Yes|r5`EmCq!#1A-r6uE=im67Czvep)Olr8eTUAg00 zZ(L~DT4BAxx&)QQvI^}_%>+I+{?i)J6+V~U0FA1+tb1<^`(fGI!(Q0Tyx(Rd5Xsd+ zi|zT8-O*c6PR;Bl3OL*s+LzGk!3Y9o?;#nRfiR{G1QvfG%l1Lxmb!@Em4pO%CAs~J zJpI-?2bJp#(yKwHINX-3@>s>xyrFi(FF^l%5)FgOK%F~aXyq*8x17+o7y)ynCHNQT z7Zu`NOtGj-QtS+FmylXKK#_0_4(SobKc#g)VC48UwlaFwY@ad+IR)Nrqgc{_DUwvDqJz30F{3Y=Z$~)+lrhs$j)&AZ*5ULF zyApTopzD5>5r+^*^{}!DAJX5wL{RPkQY+Rao4DoWXWc$-lNtD+)0juHXq8=TgMV(y zNG>~!75vh^tZSeEetQMyUcY_{6C?P}g;XtlougJZnB><6lqr7aLSh6`!xMQlx2gNq zShx1ww>P$wpR_beA_}Fkw*}{(EE5V{`i6a{C8BbN>MfQl(+KLWn5;w~c- z!3@>nMQk!!?PoKZC+(++5V;VLM!8088Kk~kt2LDPDHwdMcAT?5%sxeyp5fT1IJF3@ z{Yq01kTJ%gCJ*ugqYOYSoj9-YE`_6}jVR-S4u)?!nkWBF^A0Kx#xr9VeW#eAHe?q3 zms0gZZXc&AyO}D0?v)5<^tk44!7}78)yw=pBl5_=$;kAYw{^i2AymcQbve9XFslkr zS_z%9%M+8AW8z#qIwalv$18q^>8?2lX-~*<0(x8d0*t^1%N@@Rb7DZH%U^hT=jl`0 z>kMEm&I{~+Thr4Vm!T>tb>w%f`&`(b39U?BmCgVahU}ekNMPN)@5>Ppw#CeUbLWHi zk1sk(XSnyG3VqVc6F4Bkevmckb1H=Rk(c?5!)69(nF`^e*vO|b9Ix=ig<&+Ktx6M+ zmSHxZgYb?C^-C@$tf}0!5M=mIyh<+)96ISXC`Bnccf`{OfGHvFXa!R)YNe331P9G( ze|5Hb6SQN<@c0@Vn&Np3YggJ@HT;@#buZW_im#f8P5O*;ojfDs@J(qguKRhQv%C@p zGOx&vqMyd0%qUChJN0F=(wD_u z6T&o00b2)(Iy%EiK?q3|-o}QS!T$3q&MrpVlj3Yq%tF7!Z2Y-$wJ4Da*E_ivGtlW2 zFQ_2}3sI7WJ8R~e#ao1;$08UR z{sE=?c=+w>@nVf}EFQNLCPjr|3khwI;;n1X7_N?sOuvO3%0qjS2{JRRI&EmPV{~%wCQo4J{ zeM2n4g`#J&71EsjakZN8)=-2)vZ;vdo7#*|<}Vw&xx0r@4bA}`e_>c`;64yV$Yh-v zKSaLq)zvl7CHUVKi<_@zsJ(y;)Pi+tFna8k*|2d8p26nlFd6YT8uexH08H#&or(*g zaZ>D{wMDsQtYy*Ey!Gkm8O25)TjQ!GpmoAhOMYbTQQkfI*m~vlRzQ}_*`0XFIj))N zB5!`GOFy3@sKo&6trZw?*_C~Q_9^8@3jeJ+WZYl7h7N8kB>ptRFb$`0)bIwC(cb1g ze7ct8Gd!fnl(Q!wIcXw;LyhKW<$`{1OrQchGZsk*anyoBk;mL@ML9cm_|tx<*rb{6 z!^I_O(POffX{W4orHHx$yn2r^zM}Rj<+QNXH_@o>>ED-tyjU7K?*c)wVZ#%NErF6Y zkYoI%;$e&t<^U0F(yyLm#uSmzWV9FqM-g~7?)R}f)2VFln*(T{&q15@(0qokSJ%fk zhA;g+>xjc)?-=>y+$k+(E$8G$%n32Oin-w7D}(iF$IRu6x9pMS7_)HAqk`2H)=S*8{A<75KB_SJ!etU0( z%y(yssH@5oO+#}08Fuf^iCfZdUMMUEV$(9(k@)#D;%##UTh+R%Iehm1r z2uVb7_MO0)t3!i0Z5itlt`XA|*vjQG%u<}VipTg^Np*C?N0}X7Uvu;G_-2|qnUslC zk}FCv$Ygirx*pcgYE0AYjcTbGk51N4vUrp;tFtpx$Ql23p*EKbhvT;gNcko?gSvRk zaOVk`aE3`iigkhZ_Ht792S^%@u%RH8<<-t6>}!+LNR<_iqa~~4kCRR$XL&Fo7ea=` zBKH=m_-Xoe^{%-k#s)pW+;x>UE}Y!lc=269S6fZZCmP~mX6!Zh)kn@O3?Rxa+rG$I ztgtGLb#W>8%{%?d58(SFo(K5h$jlZlL04-6f5u&%tb9-?6^*slT0$o0u&}HFn6&v> zzJS1P%iOJFuTa{c+C=fvCIl0Ww3l+Zf{b(D>uv7W zGWUR}gvjpXh4`%&?-|0gs4lrJ!2VT^-ksNLui^+P7%kH*eFA=$M&-_lrb5|UP3%!+D^^gIQ6BMyt z9rBx?Dwjxl)kY7zhcME|a}DPsmC?7&KqrcMV&X>aO~H?k8hW2|E82&Qy{H~YqMJy-z0|JKx<*oZNu@VJW&@&eRr zOVw{8*=Y8K&zH`r$aI?an!?fzYRiyCY#l$15Yrn%X zNiPL53N~LXSC)2YAFPP++-KP7O68KRMn^l-DYz!70lmJGSRUuL<{@7JH1o9MTs!Jn z*r<;ZR3txYa`ZC@tOQ}?uF;SzTBEyp?4_2vf-2V5fl8V<@SV@m8f#XhCs2%GJQ#3^ z0Ed~~{uJa}$1}HT$v;`6F}sG+{56uPmFFlpGHwjVW)G|DH{szlVE`Fsb#--W4;LHO zZzG_0T(6gj4ccrj8QNJj)^**mAGu5JP$*pQsSK{qFRu?@Fq6XWH0iq3KXdPG=Wlg1 zs{Coa0iciV0W1YWy%LI?1}T5}Cqrxq`jl*eH1;Kwf@*%??W0DGHu_yp{h z=H>1e(gVB@`3rndU_$Zm5bTVo7yLfxJU83xA>kWjoq0A8uFSmV;uCT5yyPVmlD_48 zUxiYESCT36v8$5ie3kf6TbMTYY`EE)8}{{t_e~@~e4V_hVzE;va*Mu<*D|?Bbv5PX z1I`CMcJ`H-@=Oy_#xDo2m7hhsr($)PW((4W7ro1~MlJ0P1(}c+&P_FM46R&5E;8|r z=3bl0t@@^hBJ7dci3Bq-Ko^MyFTX*kUTWT5t$9f<`bZ|p)ZcU%LxwnZl zv>f;-;Ibxs+}9a2{8f`#SDyU4CN%MQaU+U$$6>#RR68I#6v!Qu*GhAeHgL(A^?*x$ zr_|Qv(OOP^OrY;ns87xF6@X7lTi+NhLT~V6!1ld{8%$Y~pD$Z{WH+#w2=T^xZ`Iqd zel({={&bSZbz}eaT5ZvYAk~vK5|PJ$tFxi=xcQ^9Pk&Fas7fvN-ltANxw>Flq+ztr ziJ&Q)Ur(?H$yH`(2j?k7G>L`v7LNs)V^=t-#A;_%A0zoZPv{Mn_AlQju5S@?8uKc2 zAS{Tit=)$e;oaON6B$cl!;iWN4R%y@SJT-<{(7dq~wsbHY*A zC*8-B?N@FOyMg0=mw1}sZEAKt;1yW%k(?LzYDLMUK9C+yt55Ee7nCF>n?P)EG;oq0 z@&4;wblyyUUgH&`Uu$mscNT@oVwYFF&%`qFxwQd>$vmc#Q;tuGhDwQvbQC&zVi~`7 zbK_DB?)^0ekDAOvNw?ym^KJZXGNxM3iqJ-Cs{qO`9$h4IL`n;^j%4K*6-Z2vz754ty{?!c>oxM_jNeh^ zgQv>JLr*7GwWB|l3|jc>79!feyAcxZ@bny@Z=Vk%Mksb`OqkLI_}hYiGb zboyINJYRtva)-N0e^|;g@}Y@y$qU(G4P?dXeKJomA<^dnWDuNPKx7voBF-(4Ya7-0 z_^o)b$#R@{kd>23t4`UaRvnTMnkOga6*y;o`+T%<%(otBNjyw*S*t_Z0Rd9Uzx zzvlTgEHfMQR8c~X&FWN;W9SZ?!4_s8s$Wo&#>3e|OK8TUO}2<}uaPXt$oK`$Nj3NQ zAL z7bONzU;92Ig#C{*LI@G7ek2rBHOmiz7%_Y2WfBKAR?QjOv|y8Avo(EKF`GxDojraSiIh(ag{u~K8uuE#bAsc09;~DHnyRju zm6OHxn`K{TIj;)Clo}|#K6Y=cd}Lxl3hG?`Qj#o6zp=%&E~IQE;RfcmkjFnMfE_34GBD1~Am|CUNv^y%$;Vv2X-xmG743fvkT@x=y z7;OF++b2M_xj&n{lPJW$0!1jLnPX@k$*@Bh0d)6)B~m4Q)bbd!(}vh#|BbSD3KAvE zwsp(4ZF`k%+g@ecwr$(CZ5yj>W0mbX)xBT3@4j(P_iILEK4i{_{J%NI9Fq+gl@!{% zn=Q?|I0TsAON`#2SrxJtGpP~8LmFIFH3#Nkf{_}pI#mE|*IX7X?p46TG(=UCRP=xf zS!JYK83#W?m}(7B230Ny>-Wj@vNL1>*NdP;TpHwX>iUjrnT@xskGHq`t^G$WG$VDU z_Kr^d0aO5}1^LMZnuRDS=OSX?5GrI9!Q{l+o?i3<)SR5=Y-zIEdlv5JN8`6!ID2F7 zhXY8cS_CQ3l^SJ^=(Az*39tqG$lr*Bk7+6W<|C?YB^Wo0!z3q;#d2x@Zk#3>vAXmG z`Zd;#LA121Nh~KajWZTkRDkkQpy=bx6O|N<>e6FNa_R5>tWR5j6+tT)>{vLbV6PxRTYg0mfvUK11;;s(SSlh_yTxlngxby6i> zS_@xyMu+9e-=bKjFZ)HfQEE|ysZ;uHQ|4m^;r_O)iRW#z+ z23t&~C{0Qwp2kODu;MPFhx$y9*;dIl3Jj8_iHiSgj!*YRLzLlcjxZ3J$G__^-MJ5B?>#CRmPRm z^%+Og768mb7c7exw(JF+gZ|2xsD&RsVH22VsvGoCp2c7(!hBtrvL~5W6JZnDM)*on zA>#KK|0`zP;)x)hLGD=;kP&!Oss+7SF94uZTz_WCA%T*DBKdqzAO+&}m{-5XTpR$L ztW}&4(q=f%(DI*N;CQ4_M|BT>NR2CE-}p-~#)7lo(p^;*@w67ypv~N2ZJ<&Q2YJ(z zi;vFOY6&rMIjfRK z7lT?ZG{y-6=+r9#S=_pn21=Ft@RllJpx>XGsM)F{fbTX!l~z*Kyob9MuAo`!XJ5}J zGbSBiFlJP1@P^uV$U~%gb23kXM+R%B9wwsbr!M379XZYTywxHUvuR!86EL?+r(OB0 z78Jb&mY1W#Jf${0@EeqBbVV8meDCeyGf5%I4v5>?aIAP+6N22Iht-0nnRma49M8iM zf)`x^EI$js*VuwEn-j7cRKo_3ALKMNM;{WV%7zG$_YbCu1N!hOqNSF@Qsc_;-w35U z3p=BrxRvDk-z?%4Z8@+~yOPpupzx@U0QuzC^X?1oaJ4A4>C8GZ(O%#WMGtN&vfAU` z(lMEU2Q_X|e2sIZVQ_Zq-!aJH**@5~Y})H?YE zX64d-ifYhcY~W`iMQ6@*6BFVDw9t;ntsoj&m zOx-pQlxGopx#MqgZWf~Pp@-IB)c0-BA3H&@-Rsz8oz~M?48a_+L*e8DKOH*4q+*~66F}XWV*sJ~Q^Jh= z$3m^JlYQdBwf*dO+;_yU^7DOz4^Og;NxZZAk#1&!>8de`R zoC`;+=<*VHU&aglKte8^JDlW9XBv2;ShG?DN`dp2qurib5K;xYId7wSy83hmbJ|3g zv!n2qftKmM-vXW?$z`~O@hp6-Th9fL=^h9!V3`CwUQ=FrrBk2@t)%x)N1hj0s z1(kyb94E6TaisE2&MDuI3Glhv$A`E@P9pT;efOX-`IiA3YF-AHj0f=q2yl^>L}#s8 zIi<2oqoi>pV)SGZIEIGf3=?M3G~ola^eO#qBbq_! z-efBa$LBQjb#N2FscYpF_jQ_U7t)BhECj#w80GOOj9FFlk*WRJ76o7)83JKcR0B|M zhq`UN4(LSR1Z%guM{z{&Z97yH`|2-Tuk3)<0*J`sM!*0Ww69D>He(&d-u1meleAbI@trOv?T7Lo0 zqjfh1UC2%Aq;%2iJSA60aKXbflHU#P8~eQKPo$cL-ov%3h>Ms~kB`Q7q1`8Vj2Vo~ zg|%4VvoMCE$GpadTPL^}AGqMj6K(gPQ`x-Z+;Owpp{Bk7s}Zs~BJC~ITJ-TPci^HG z!C$Y3y{m(*L)(K`wZDr=K1eEm1;%3)4mFhrqARI>589V?tJUO%TxAiS^PpIGT;Va< zcmd}b2J-Wcc0EX_-h=JKw1yXSr_r`T#GIk#OO!a3czM=I&Ay6&em?DL9uER`I5T51 z(+xQj4JA1dtVss#g@A>HJRR~n%!EVIG~PYMxD@)-3_|4xN`RYayh)Tmx7%DvG%qyY zR@fCY=lHuY*ej#yBxmsfu#O7}Mw2y*(6Mxvf$oD@!D^9cvn*b&xg>0*JDa2w>+In(i-wUA zMG*diO+$dRBUM23##p0`-CHXrLx}clOy}5noqo#K7y~jdL{yzIl%! zJudH*wx@Uq_0!3;0}md7o1>#*;0dzm!+DFQ5@`#SOvD+HGPEN_JrpbcSjrSWokZ|j z1}B6K!h-B)Y1^qQVhd^ZOzDPqX5)KPS6l{SdW+C?Gr+zMgOB;tN z)tyb-6>Y~6Q3y9Sky3P?+-{doHLY4V+REt?4QWi_*vnteyYU%A6|sKy2R$6sw{|$I zhbRJCRuN|*R_cx44~euvY;uwrLP07XY*y&P&5#;=JBVS_MVV_$^YdB)o17V}uCQJc zF__Yt-iU4|n^H41t$ZwDF&8pKvxt5RT57^_)|3%w?g3a-^)7%AFDx*$qm(cAWgK7p zWk8;t9_=>nM?DLB27r6z5b6+aGu8p|yFE-&9tT4HRl78`d|W4#0`IwfTqp30OPNwE zLQ_rxe{n;mJpD(9^_NQt%klRU#1=dh%pW9(ix8c2h)p{Nmm4V}h-{A`f_q<)4Mxg;lseZU@=G=5v$Y-b)i9xKGu=8fq;o#)i z7U%WCvFQ$Db4@&{J-D9yKBN3Kn*Xu5T06FB`|q6)d#FQ1-XBbL#Q8T5)BhCee?h9& zO4wpZUp2bFf~i&HMS>10J30;|@gZ9Nwvn(Kj}<$psZ}I1izBOYb!;IrN)$`V0zts^ zb1?WQ8PpNR4RsAkSb-zF((_JBz8&`3Z83FLqKZe0m*vPlXQMdiw*W6O2 zP~ib_>d07frP0g8>2UmQJaysCB_k%*r(YKfqep$NJUbPFQ0cc~`1erRLRpa7&(ToJ<+=3R+<2an=#wh_)&O99`dFd2mL6JbmQwZ3@kCOvw&+^C7O`XG+pGqQxCgI~`Zso%6>+aS3HYH#^8}FK(}{G^g-ALB z%3pq9le^p&KT~F;Am|}ymxf`~%uyVh(ziyu&_nZK^o*?hnxrl*JU*&2*0dGjKAhED z{LYJCRafI()`Mz}8PdN(_l^X*e2mFPvh|eyT!7s~jI^pF|Fv!o&f<;l5kDlJX|&II z9xQeFsODCOQ|*3%tYw@ec2<)+JZ|YdRR}@L46DPqol-z2%Q>Rtb2BoZ`Rzd=1%7pF zVSPWhwH7xzX&0lfn%KjWjLOkVGRf6^7rov+dvp=C`F?a{FJVJBzM$0F z1g3ShE^yho;qa>P_*%34_vqFO;IKc`pNPtmlp_h>lT(}$BdxCF4&03ozaN&*a?DiA z;W%CA4)JjTq!AYperw0$=vS8S<*gyTSP%rWp=p4dC(xo9c|R@s(KP)`ToB=U;t*Ft z*>CKcki1(X!ZESXtIN{p@1)I*-TcwgaAtMaf){E8mLpWtPDOY1t@8cLaw5zd2b^w< zQZ%&RJKb#0mX%yrAFvwkr>~F9#n+EEN%C$&dCj&p-(=;vh%*U-Q92KI2;*yZ-&Xw; z%Pxb5<_WtiL_Qf2Y^|S_ZLB9Y+zEVMmuRiJD81%lXFGFhdCDu>j15re3I1K}%&X~h z`uLzhnHzB@U>oQWE&z#;zkeYB_XJG@Yf3oLp{BL$bh~M^dWuK2dnKfE|Dr8h+|fkS zlcE*d(EODi7R*dw+b!Xdc^AIf{ag2?>3Yd}BE)*)%OdnLMS%#KU7I_d9l`V)yP?=7Jj6vtN?@f1lmogLTF(BV{U^iubmPbh)Z zy7J1eG~BxFtyHl%m6pxBz^4cKt2$`dTV>xZM>XGDcb&EPG3?QibxF(EeZjHp0Aq7k z)3*xvAZH?o#ae!Z{GD7@uh~{tGx7AaS_!_}!!m$Bt2RE_ z3&80_)zhh)cL#83X<3P@B>Jv@w>eLDH50j%U%#JhhAc_+xT1x`xS_uRrKh&MK~%J7 zrYEL3wscQ%Le?t1#nvN$2lPr1bS%%ST~2cW<(uRFfSIPVHzOR9Dutwjk2Zc`+;v-h&o1Y1{&OfM?I*OlL@o!Au&0w7qeNBA-0N%g)JObVp|=6yg` zz;|RiX&T?4fSS|d8b2Cs{MO|a*-IT_5ZP5TbCodxoj%M)zF>B4UfZm}k=7YMVUD=e_RjHCop0SsI)_aJ z{M(Bfx@oytOY80{ymjqjx%&vxq*xF|eL(FpRsh2aVYy&#o1ro}A1q zBFhNlFj?uy%!QGm4a}7rG#s94N&*>jCKN5{9BmokkBP|F132hM$8z+s=#^r+ZAaHf z{SudEoi0rq6Un=FJ!@#9GF6x?;%W2yM7;iT?hKdN%DMD=()H}*&sS%Q{LjA|tRXBe z`HI_+^V>k0*Gd>JWN*?uzscL(Yv2BcczW+_43#zFUYj|o zTV{9DW#sys@S^D4BF5khV`IS{1EdTi17{47-R zP-O`t>N__Wte{t?9XWif>eNv*;7PL)tOs9Uyj5b0Z;LgQEE+$BC6Y`rxh8|Mj6w^} z?Fb+6{x+{3$F8)cnK&|)%n%J*McHBOhqf0%bIj$l$FDl|0#7X0{%UA>%d7Wj?dkpA z*)Mg|*lsqD7?=jqf4M01gcX}@g>xcg*3qMk_n&`Ka&H6?cc?|$&ekhv4}}lU=P_Gy zui|~q)?U5ci5JY2h-V`xz3|>@<0^ENOeN=?UR;naFOK)}KKxAxX_ss7S$?ymp?e#?_q=NG})LC824 zNHb}3UK#;SMtz|R{XDLKm)oDS)=MMgOis}=Jo-#7-}f7K;LVAgk@jcQ?Fjz2v<`~e zm^^jCVyO?!u0{mkfYGPQQuBftCln!bR{r>Sj?V%UT*&^8K0%OOUu>cFT#k4ta@gnM z&qw3C`qPU430*K@Z^2Fqasm?I!br@0wkA9_93V~440t0Ho#i9dJX=i5vEV*|Pf%C9`_k7%&7MKu< z8IT3r)8HDD3e_{0>;^YaQzL#h=MTP5t!|M#6T|1I*3v}njmj5Hn${bUnSn6$`U44D z`z1v;%;F)apNN)8&B}Am`$^Pi!@vOZ!v%Ps1vkygNp2p=j-*+cF3Mzv9C^K{{dV{5 zC1ncwaP5sF;wY%RrVc$Y4b{WHxTXH@^r@`&AJV6u?dG?_4}F^dFZ%p>#D77b0&+j} zIePtxLVr{sVI5x>B1DV8rf0cIwD(84)wVV9Vy23zk>=4zd0zkmuP!`191xO_;K=|2 zFdTp63W&Tnz&16*59_%h-TnJH^ZR=`N2UDQWgP_P?oS3i; zEcG3tZC}sK58BQM;Vlaiobb3L6Q3y{39_D9aI8hY$fO9~{77d7kg0v|;x88RcBS$@ zJ6+?Zl?GMqzAmJ*@l1ux%HNC7In9Kj0A z^w(%qHf=Z3xdoPAO5#ayE26h9Mm8{iTe&8@e)As~07a-^({w_>SF{+XhSi&~;IpD- z)Tw9Z)-Go*H^D}`m$95HsV-XlF=qi@dPADhd@M&Ih>nQqPnI|S8Yh_@3Cp%JVcmxX zuIXYd5^`#r#GN4R3Ui0Z(H148fD0-Es%f13V^k}Ik_*0hSS#?2TcJ%LQeA1}w{~gr zM;pqzgn&RwcvgTvAC?d*eog^HQiRy7eN4K@j*(~6e^iMn?nxJ3E;b>$e|WNS@7Cr` zpO5FmsmI%)orQgeCzovf!ON{fd)A-e1__&^7;Gdne7=n>=Z@0nhm*WIgx3+~ zGHc{WA6)~qvGdZ^7YFj*|>yW|K0mi4r1;KBD2{5hkCib%)l+l!Pv&Dig@h0kg zlYYNVYKl%M#%~2I()Hjd6)XF!xTUfGOaevrLro!W>*2Ffr2`Cca3h8~5?5=1L^&dO zpn&73qA&}y;q1>z#mxDm>dCyT13BRtbs3T49%Cq1+H95CsGL971R+xj$te*t>H~>{ z<%Ge6jOihKK6$B~tX=s!@3+L~+t2~8LJLbE!tXHDHnmjmn?5veNz8}eOAcM#8tdl~<1g?B<$3{^=nDV%WA1HS~Q zP))&UAy#Ujd9i?r7cgP!5*b^elNJScS|wo7MD*Gh9jcn=y^89mjBgVuTEg?*#FQhU zbJP*PRovD3T2^v(Ypcj|}Wk}TE$CZS{jyQz; zJPqu67>xr(lPL5#)sU@xXtJ{1WjD&&@2LC`22iBu$Y1fRZw|Y9msVx7dt4}vLc~zK zf>L-&(@qU1Vt4$OCb1gHs>@o%)gwoUuQqmj9%(q+8GHKr;T9QSS^v-UA zl6x41g` z18GPiY&C|sB_iyYnyz5mnwp=oYw2dZ?c*YZZcK2v(e9 zHH{@n?T4jxeh>HBD)2)>;z^3?*6#`xQ7oYg#W$`w^!-mRTc7G*CVp_q?a9FzMn2`d zj}zXEI~b|;WmD#JMt#Yit(SZmH^=yHQm)tsgpc~|Sn=gOp-ykCaj%C5!fPn1yC$+Z z)NsOZOZuSeZ{om9v0~0d;)`_RaX;r?sepT1uPQ|2CjLYhB#L>jgWbHt6c!%pmo!@A zvf_N8uPJZemv=c15sCBGWcia#$1#Me({XWeT@84jOWtevbolu6oNBwObi4O>@OS~BB74{=xPMdl!J32| z9o>cWHdHIlO$dEIGKGmg4uf8oVqZ0CQ2dSYY;E~$$KG}u*21dY!S*MjLrX*X&7BHa z5Ol>pS57<;Q?06t0VeOnNr8G8lo%?=M;Fliwvd$({^y!ud3MUm$hHqL7;dSW{OUM} ztp^<-z&k$BZARSWe5!6KoiP+`fVb5>b7QVJ*yK(X^s~&OJ%c4$z!S==fl`tTE@5|x z1aR`YCUbsTVC$<8S}J9A0z}fMd5ypktVPK>?ZJrXH^#G+2#D5&yVW4q;haA?5C=Fo zSUadz;OOMlX$xOBIJ6+vgKO?cvB5RCjj`a2C>~;g*W5Vs0oTI-g2Rypo$W4k#&Jy5 zQf+lRm#xL$Yr>TPcu8RaS4Q_$Qm!iOQmU&}XAPrv>{t>gAWt&6`WYI*#JkPTc904I zJ__$fpX-WmGhoft_0x_{9_ZZ9R<5t7qM%{S1)Qh0IX_`2NhArkw4p=U3Vhvf=GBz* zWfWHI#KNn^4Ts1Zb~!Dymlke0{kZHrb`XvAf;pgP$7wCEvzpDCZj9>cE&0TkjuyUl zcWPElDJ8$>XE~tAFsmrM0h5pGf0$63(1S+di zS7TrnD0H*p1lW2fe$>{N`h3oPLRE4gKl71*dA;Ai%G#f6gz83BP^Bta>d_LU_DfZ% z_qko@!@UKTvUU{}JC-EV^baLp%9kYB@w-MYCoNbgk|hYT>nM6W2cAkngzrmAKU?j> zYySB5z;{>l)&Y~MdOH-h^xWk;pxTbFpiL{bDb^wM0F65grr_4X21CdsYb=jjCJb)5 zUD(u$n!cwOZb$8YQN@K}C?F(VY7fRS{KD>{7a?Pkl?XL!tk>-AE;GvH1D8x!*C!3h z@FhwohOk74#`T`$btgQ*xYz&Qr*CG6~hao z>g*?E5SId*oVZejdKsMDzDQ$ZJ+W5iHVd4bRHAW+y^drB$E+jT*|b}KyCMq;0kIaL~PWjG>=PGCC5++uF`xOWVRV1{G~cB?XB z{R)sDz&CKB_y{O~$A7DL1~h}_8)ZPBLmEo(f!;*=+;I`#t$;CZ^cKzt}c8^6s_N?Wqv9PsJzU ztLV;V%T9xN3gpAr3;84wEDFpKn~CSu^G@)kZjtdo7~_nPu9)CPkHHB8e*)dQkCjGLH008UXO}Ibz{}+fl{g1eYplgqaU~h9kFd@iKRM3w< zzT%RAT3eNpZVOZyqDrd@;S>6xT@h$rk#QIbcXnIp{luE14(da#H4Isu4h8&YZOn; z!eH#@AYe|y`#T9&Q6|pQbKSb>--o!LQ7&u3@ti%n>18JVn25>U$a?==Ldu~ql`$Hz z4*>bUYy_rtMH!M;QY_tO2w2{tm2J2TW?T+?jJO9X7ewX6d_7>#wo3Lx5h|9>p?fZY ze<^|m)lV_Px5S8dOL(+|yB)fJtvi5>Vg+B*(z#MVQh8gv!zGi)x!qfKA5BysT95I4 zplHTpgJcaT{$mj;hR#HNL5Juhc&zCF;N@NYiC9$|1GzWRZhi6x@hxAdfkH}@XK3mX zhX?4ttCkR;z%;WE001&*|7NcJDV_fu9Mykf7sgP3%(Xb|=$60{`$c^P&iT-_i5C^) z>jGBft6%&W3B(QqgrUbUB2tl{Z*bm&yb`@kOi830idt1R!ZTUl--GB*`WY&fcLVd8 ziz~LLrj4qa&>prOoXE229uEc&0lXE;%c>?pN^1$!B-w04!@6CVi|A{bev6sol(uS^tG(qhT#3f4HzssTX_P4b!vU2?_;;!8;x74wpR%8PW`2O7hL$p~(xNc54& z0cZhscCG7S#RlB{U)9)GvbsH%olCT(a+S(Yce zW?ST2G!V`6=O~lJDMscCV=S=G{8G+%GO&!g}+3f4qL&nLJ%()bK72FCA^HO<$ZN*KFtFHpY}`m7%)NyO7(9HffBtgm5j4 zv?wQMnh@xLQLCwryqH%@C1phYUebB?qvpfSASXD$c#eTfvE)L6Tn-Pr?-|RWxG%>c z80nMGE`}&ekDOG|2B;D=O*$4G9C=oV;ypZ6T=u%avPUVPDvT5(lW$kxDd10V#?{bI z@J)SrOobMXmZrHlZ3rX@TpUE%s=O6Hdwv~?j8cj`?=!EL?Jk(o# zRniXtqk-`}s1G7=79S}^D*3&!uTpDPUbT;+?_pRABbKTpRSu8%g0F&89bJB0g8lKC zm=dgt21lylELGng3+MZ#vxNA$PJpr8HrdgPb47H%*ctXvuV(ox;_jV0O^qy4fa$Zo zQ%E{Mcde51UXGf-qhRrvQt^=GKF$Psfw>{aQ6$Q!m%vVfb_fatpN^PQH=v~gywQv5 zg)~PbZ;yt_yE=Ld%zF1bbPxg?4%u)*vdK88i?*|fTH}{O_*-Vt!2m zJ3g#Fqi-9WYK2JfLR=ueIi{7{lUED3Sb?-NFUBz z@dB9!hxuq{yFayW7kO-MV%2&|)!SBr3L|6Xo=`zM3?O!^~yvOdyt5 zU2&jNGIy20x@4|oZJgw0@6TvhdOi67%E+KJLmAha+KYD$e@_FEtOb$S7zMyKz5X_^|!oh&Apfg$`3)#oT=5qd)N56_Qm3X$_b%})a9nFB$Z zO~ZtO!rJhAxPvH``AyNX{FfE1jT2uAM{5Xo`>(QG_+(+L8qdz3`gs7|bMIt@qrxHS zCIk<<8iR^b`o8qn{K5Ag42&AD;z)Wup&Erpf-s5@ysX;6QTmqd8`l`y_}m#!0gHBo z9zqVFKs~WFFzF3iZ!zn8BAF9tpS$<3_e_Kf+}gI$A^ts8Y7Tl1VOKr*^SWs2@yxXn zi}=^V!}XdO9Z@vYdka9vjY6lr=!995f;9{{pcKk<7X)jY=_XLv1*8&q8Bpz4POaD- zh8@%$!VZ%cG@PbNVQ;_Ehx(qDoLW}n5{$tuco!!wl|3b=8>2L_*>rCjLcL&@3Fcj6 zXw{&qSNE>h(aaIJuO1tT$Hg#AHN(%$_2>3H>s4FOoj{kJV;(MzgZ8T}up_b&9NyRJ z;KV2EWIVbMR&I?dwMeoT)>O+vIo|9CGe3?ph-$PJ9%~zWuCo;n^M08J+_2M^weGYQGuS6p}HO@h{rdZ_t@c5G$+M_o_fO$Uw$b zS!n%~tDYiZgr;%#hXD4+eFd`oMK#8Ow1v93Q6wcCZ6z)kz7?WQG0MawJkEh1uOP=S zd=eG9Hyy-eaS4i??{mdpQiFUtqFOblb4LB-t-;czbfJp}d_2Q_82bd~U`An&ahIo+ zI45R>i8D*V#$A`6VznLwr`A7q58J1Awe@}$x=kH!f!B@b1rUvzN~cKA;VTAZEnP`N z12peVn6b+Xw#Nfn@>|dVH|uN#v&yiUf^;_W>mB?Bk0f6Naqf9Km0NI1BpL~OnXlF2 z5Tr5qdn%8{7xw(6Fr#mXRob!(`i2B%4%mLG*or_3Mk*4mf8^F07Z$Lrtp_HMLGIb< zBb2SQw3J>qckepZ>7duD`|C^Y;oA2ra>kYN=iL1{rkv0_sWMoOFM33hOF%^jm7XGI z$l2jv@Zk%{FAT${^N(K4I}O9 zXELf?%x1bOZv%#~0;Ue$c_$m|BDkK6{!D^IH@U1j%)RTcT0!By3JVBrqTxax*AX~6 za^D+y^IgoP7zfN9rwhQan>CSI?habtJzqUMOrH(@Z27j<{5y=MnaOMCdHR~x9C-2R zl6GyUm@En6>(AfMUU=QZkamJE%G+n)wMPT(HvsH2Y9NNiEz6DJ!ua+t$y9Maz4fut z;>=fA003JG003|R3;<~fArV<65fx=n0ARlVJsQ8IsTI31g6adm`^|tLuZNyzOfIud z=C0WFSGc;6g~U3VJ7z4OnPptxbZn`jx95bBP4bS+`*J{BReL6#>Etf^I%~eNcIf(( z#zO-y=_OBUiR1CS81!3t*?ckF_ShEs)^#mvH;RwRml4w*T!XoAr4cz8`)!`p-=GUBg^Zeg=K@yM zC|T5jitP*wnp=BBqrJ&wm%yb?#BYKkWYnt)s(P;QXey0~l{$ZxgD-*}^pX&GtZk;F z)e4(7<>^)EEy=~)s%?BQ{g~_qpr(Lg4|YfnIB>&9U$aqy)AfWs0&u|htLmWStsI@Z zmbBBnrv}7ll25_d`az`y#H2XVamWZi+TAUJ(LQV)iE5l{I2YV1b11@UD10o%u0G_w z#rjG;4fFM7CxIkiC7ee)J%O$x?Jl+y<}Y>}bF(3r6rh1Y+Pp!4lIQXRQD_p$a75QWjJTREv-wOV7_3S zQV{nO$v@V5gGdfYchx-bKQU378qh$ewJexlOg0M{l7p`##u^VzR}&^Af&8iwGcX17 z)uNz%`7?h85s9bgV|KHkvJevDNkBP1L=g${m*3|Xpm%dbWf+e1pXtLQq#li3_f2+_w;tIhXfj|5!u+^5jP;%4?L89~r_%s)mo#rs)_+=n0H1jg1h2%|lsAx*@2e3yAZ zK(m1HvQS-_95UUECa}+I+Kt(pv5F0`@tSe zEsa4>??{}9U1j=$U}~U-G@?cn-|7+|se#V@X?HInJgw;6v=Z%)81x2|;ZM9@=*8}F%&`eYAhvJSHozg82O5LrN1+@*GT!jh|mYTXmMm(1Dz-Y*{7`H{!0Wt}RJf@RJ$`R2@BiQCKlW zt7lB#7zrkQeBPxmd~zNUK95#wKz^2k4-w2nMT!SpNIDi92wC>P<9CdSQ`|&#Q!XNm zHIYJmCS~a}?h;6t!~=@PvxPX3$F!=R6Xji3_G}I51152-82s7G`xFHmv4M$aOD($} zFBhmk=z}6+PvG{esD>!#<252sd4IGNu`1Dxu zO6cVh9fe#6P8I4O`FITpf)c-N;g>KDfcT(9Ak2#;faCCZ2)k8fv1qR%rY%b-K=9F# z*jj(=HJ&H!W0K6hhmIB~Uh_OZxe{To-m0gbz#&?pQZOlk1COXP=$lEs9(>n23@b>1 z4K}0#US7cFb~rAN{c^GGdl}8ZusPvc`ll|%OGvAL+^?+HvqE8-uW!2r*eaz@KS=QG z34}0|veUN24pbg|Hb)`^uQ-=DxrkLgg{Gukf*5^XAgn zAnsc`GcXsGRkbJY!0C#!zE>lQA*NdGHE~$c6W9BDe@Y2SoBgm7T%$(E1q;dLbs&OZ zQSmc%bVrgl`_?(JOxafp$TWx|(iXs`D=z_VWY@7Cv_Z%;7}=$JPn>!De7Kq6h7ksF z+9cqIftQ#X%!i!hIL~ljvfcacZ(c|IeUGkJHUbA<-|61%9{C}z3unHJ5FoyIaH9*Z?Tjds#?xa?&L3RuM1ebxo*~$&%-fe1bb@^L~9_5UZX~r~*SGStY^AZh!5Oyy@l|yY0 zY4Kfy$~FpT%7~sRcJ*LSgb60y9e#dbC;LqaRHN?qx5TMyZI^T#DJT5lKe-0MLI634 z8ZhK$98RIX2D3{iS@?G&5n}}FKX(#kP@p+?x~5oLE&P(Gf#zq90sbiXDV~r|J;!*K z>{2kCC_d77HK9YKCJTnB93}-4xrjra!jBb3QDgnqqx~XD8Lh(#it|V&1cD)jkc$vK z!f6sxU4CImUHaH`TB0q`hyvYVEm$$F486SD`h-Ecb0_FDBzv=tD?ZUWdQAZwO#ahe zN8e7HimIsw*^`9YTt*4Bq;f!{Dv?EU;=sL*sB@!niZYB}Z$o#|kzcEsIsg~MEXip# zM5YGhBO|G&Ctr67FQ98~nlX~5Vh*w?dxm-}kM$gKA z_z&aFfR)WLR|IuR#q45;I#^Te1!J69<%-*k(t~^`6W?iDyf+0T?Zs0cEKa~Ws+Oq@ zc}Rb^TNaMsNxX;d;V)CDS7~AtE}1I;1BrN*;9f1Oq`SGPVUWx2~%(>-}>1~q!4k^DvnUav8S75R$v zf;6dgplPI8G7Ao|c__YV+SXZj<|OUNs$RhlrUwJmE6OzFojHt;sNNAYp%&*Xa=NE_ zcmBFl)JS2TC&&Xu1H-6mMbct9F@+ZU+ZghTkaAXbGaaE!y#*6ulmUIO07=Y==RD#A@{> zR;4cU@ry{@WO*tXLwyDg%up(y7VcD*-6xT1aen;vnCcNiO;c^I#t`!0C1-26 zC>c9H?|3wvjjUlgthrtF)AP?)4-|9{@QU6z z`3evd1FcR{A+MgL9vLal0v8DjH9Kfe+Gofn)YZN7zN9t8@!MbRO>;48^lj{wedIb7 zh8ao|;Xf{}`*3L;u2!>*dIYYD8;N9=A`V$%z^P5$0?zgicJl|vwFi1m`$t+?Ndmvp zXju)~)5CMoGLOhIUKSnRCkGEyy)>&V!H`i`GA3S4l4A}`2JDobBTH;AOKwn$L#OHZZNs;TuJ^I@_vrl7qy6pmYvp~Z z1)+DlcIOkwgU(0ON8QG^P~D?zFnn%sBr_|~O z3^-FhtKI5)zxEEz3NfuIicR!2S_N`8}rt;h?{DB86*F?_uMp%*}CQ)+19 zj&24~seU>Z05&)W{>SVHtzM3?D!fY$T`jz}N#jL^!rAe;r!$?*z#HS6d&k3(uX*S> zUB7TTJPj)fZOD+vXXP7ZcBHa+h%7M_o;A-+nzYM|lwyAq@hcP5db5GjV>84!X5K7M z2mt8w6Xo;eUV;+Z>(N(|%lvGm{^o@=3S<+0sR&NRZ`gZpS5H!>nL`1LwZ9jkI@Ad8 z;v`tfHMt%pJ&IKG@~=w)H+1WfB>r=j%s1`mzq=HH0JaFbCN_2}grR}Z*#H^v8?(#Ae!pB+{n7$UA?q<;Dc@SD>{Gci zEDsz#Al~oam@`rvNX(#Ac(m!p&t}#g`S*e5{1#^C_47xsR`wjp+u7XM<1n4H@$TF;6F3}V(FJ^B^R1j2bePibIpizObC1>fa)R&gE75oQ!}{{ z{1t|ayaD5d2^eo?etl8F@z@d!QHOp z07vs_u{Kd=4sRAjKB!D#dBLyMw~+9s3(t*fGDn32xDoL zW!6#D+O7yIh`%|4Cr?xAjbme=wyCwyM4+Hv?I1t4;>li1mLnZhgCZ9nle1B3<Z%qN9{+_ zVMY0eq|?R*`F|+;rs&Svcgc=zo4?q$ZQHi3?%1|%C!KU`+ji2i?M(h>X04g;+{|}w z_gedEziYo$Pt{Yk!(j;ys|~K-@*>ztCa2I&-G;L(QDQ2DS{|>0`-h^=eFf)I(hZ)H zQx4l33>&mg1mEv{>T8yogZ*J`%;;qI{@{UfBW+rVGKhNqnA6MB<(A45Y?%pTEu3?v zqHZS@Sd8`Xe*W@)7r_uOy#Hhe6ka25+3o@UCrQvZitA&w*w1$iAS?R4y1tIU{LJC?<;Rj9 zO<(HphCgLbj?UNd&XC~~;J!a9N&uQ3QG$F+Z8)v=s=8sd?+B{uu@95rK>L18%J#;%f;3`_VQ?s>6HPK)zq4hs8e z@#TGfaT}DhjVZd_JhBCkooiULfqK)r*-S7p+2nX=rR8XXjwoYvOFYON!K?AqYY#cB z-EO}NMGGph^gMxbv_spxU+{TBV&ex8`J7CB$y**O7kuK@0{hpyldYqf5kcXU=5T+ao9UT}}1U>E*X=z%=Nr_#qr*P<+ z$^{^OyMM*~RSd}%u4R?E79`DNH1lcKjjv|%t;WnI^ZQ7TO9B%jfI`7BBl!8i;EDSC z;wGd{TQ%|Q9JKB+91`M~Tl4qKmotBvQO|3I=_wUUdK5;kW&#_ET{+eVZ_zOAh*|@c z(NbD;qUwC}DqyC&>xLul%Hmk_Ii^UWoda`0dhJgH>Q%e#MuJPa8lzrQLpM3fe}5z=ewmYmXogt037#BSY9#ZX8F((<|i zK}RA8KA0!e!<(+vsfhD~tUEoJhmM%}`k5JH3*q0WL>f1!{-$drAJ@nzCT~9kU3qsI zZltL&bHyW6#Ez#9s*# z%5;M(qOEF=@LQILq)+J*yu~%aY)5ku`0{p*dBxw1-NI80!FlT`DduC!PgFNqS#p}S zN5mTnsiYWN(dvCYNgxv$RNiy&`R!Shp>i6WuVi1p z=f}9zRFBri8l9pTHe4eok#gEP6G;|HeziY=1uvf2M6JD=$*MH@X983E{_d6e*%$g^ z)qx=^;ASued&LUF7S-NP-%Sp(Dr_b=!EV(IbRu}%67{^z;s+k7d|fCzi_xx9R__wr z8wY2s=PJ6fpHIAeS`AXbkJ6&z#m)?;&WODC-w26MtZGIC*sU$1`=!1X9ox}rvF4%6 zO11H_$kXI3oihqjZZd(0gGjy>3K)4(y(A=}KH-1|Fo0n=Rw|~J)5eD>Cdz3XPQJj_ z>@hvXVR*l}afJq#F7n)%q9WRf)YM19m_kUbWm9K&oF8T_Bvk16TR=&oEtX9O*4|iV zgqEl!aXyKrDI6S_w^*;otE4ofGkQ#kB-+(F3+)c!fn42Jve;^pMzbpIOV=jX5aJmLLuS9^W6 z{nc|!S-=fTpj?9d9m$Ve!kMK7xN_&SprU-0fN7jOXZ%fh7hI{0~{HZ-NI z3~#>;82$Ml55fN*?b!WGv_tEEE+6rYcHF)fE&iXzNEf?*k9JHGdhNc^PRNyCg#Kf3 zvQF0PN>15+83koZR3gPN7&s=B8+*HS_}hIpASQ`IXXf(V=WUXP`aFu4+phiB#o`m~ zXWGw=CunxFg(hg5d!r_e-5Bb*9INl5$e@@wE!EL8CCz>RtW=KXQM9gso?9g?zYofw zMl8lM=HF15|A~*ozJ$70iib0Z9)oQ*FQ)Dr$j^-ZulP7!#1dGkIjLJUwaGVJm9*gf z`Cx;eHf-}O0IL+)C~Ni)>lypYhD|>D$88ah&jY=u172L-*z=;rTUgVrw zg=&&=Fce?%@A$a(5O&$LB$E7v@0v&_Sb~rTGjiT;gprn{Atu^5H0gJ#$SMt(eMasN zzKz`LH2hdgzp+O!c=2=i7gx72_|_`BxI_7t$=fql2{FL%Or-0qJ}GBR{3%Ccz;U2} zv0iXTaRg3H5&dRN1>pA~Jtyr&PXf-$@c4a!I!y7AfB!rC^Rz4gM)I7?96aI=PPsE` zu@k0<-hZv&{NL4tjVbz`Hn1N*df@;2r~Myek*EKSMYz7Pi0(HQkqhvY z&Mt6M|IH2zz#9#sR3f3|wo^2?s$<_sJjYd%${u2CqlGjG=Xrn5?v7nxPD}H$Hf_Ck zaQxf@*2|Pvq6A_unQgtEJKk#CVs1&svI^y#q0qXP4sxVrdbKnMzvk8wKXhQ^2}NN$ z{-gXcp9^JZja@c?{`+QzgB0>4FAf^$in)qc0xrGW3J^Sn$Tmmc&qg~EN67aZk?bL$ z3T$=xUhRC%|JtA7i?*|tetL>6b5a4cLD+bl84Yf8^}@x8H&dUVyw7lyyLyJR?pd6K zwl%{}aAANPg|c472xKULf_5&8eZt+iIJFJ;7jy77WMoi+^ij18&KHFS9`~*1@~=Js z%l)u(+SJ>%6;JLIM9__2+w^ zF{`X;o3u5%MJ1#8sd~F702+%*^kaWMoQVu70NH=g#^o@hs8XmeUH;dLvqzSK;TygF ztBRqNU_{cDR(RDU`|%Gc3l^DOkx3|cZLj@ctE1LqU~F|D`9m^mDki?3K-)G7CC%aI>{nCjbt>ldW*(K;L{F zSxibH7%a_edZPY=GU@l6?Qyt%P^oSXjXkB$krT1!q8EG8I~`phj`MLe_iGeS9q%h8{R{6*YP!d zkTA$Rc~n!NABJIq@E1d09(NL#erTvmOcq&}b4| z55_t_qh)(9@0lyTkCl#e7dQ-Zri-{Zb$RGP7q=uNeZ-bO*^1y)kRHra zZr;gFNZ*VXb|D0#&AEkWtJ#%MRT-HBt?WJ*<=?RQdNjZZ{7f+v^u3B^(T4UCRc%U% z9{6sBh@l!;pGCxmA*874_|cama$;GAN_hEfX55^$HKpS0aGdS3FuoL( zF=KoiLt(IX!i-u-vx|&L$vE6)tdCAxjQV&TS4bD$>dD6Mc&hDDF`m9|)tud0XN%>K zU_&&ST6oefQ+#F=cRPLfEyCk2*d#Q-X2S*e$gHW${+ZnB4=)$tBhh9n))ay#J9N7d zRA06oy+#%<)Z}1_fZKUSnVh5kGt7*Hwr`AKY{9d=SqXUqw^=VZFp<|Z8Y7~hbiN(av$e9wx5E^}0!ejOE z=o>}AI669-*4LSvmevT0O~v5<1pWE-f)PbP(l&n`Za{S)Ut56#=M>xTBvGG3!>IiL zF{2+>_|8ovJO;u)6*cTvi#}x=HHp%QJqb{kwGX6}40)_+clukntikfTQ7a|#wmQm}W#?t=lx@MJf9t=lg8x5CaQc@h0eYrdn(`YV z#QnFKh||AE3BC#S|1r6SxbqM8YW}BJI*OKu!z~J0@`Bh2+k}bYgp@!i{yaXSphMx1 zCcA+XVJUGB*il;rQ6TR9W%G-`6O{Q(tHcRs=iqrC%BKmTs3{=0TDAsQlbHh>w-?OR zg6EL1as;s%Qn{1~>yew}Ip$mxo_v1r-(~}SvgEPLAXDmG9dY7Z zs{O8(4l_3&KR6G>yo}Ysirxa*kIm31D50ew_hU+qkgmqAgRL-0>NMc)hEpa~j_Fw^ zW{FUw;C$&xTH4Li?B0|-`~z&6%EXXGhDa{Vkxk~vggoTh@!8O()&FpR>(r(*Yz|dL zXV|PYweQ-YHD&`e{}(Q6c>D!YK?`7dz2$hMFQc?9Hqo8~2!jBJezO|ko+!(caY}Dc z0|;4O#YGPQh3dp#(alG8>QH1*L4R0Z{|t=)FG#apRa@D#6Tc{qqY9Ctf$D_t4}uTC zTo_uO(o8|OfmX>k%gS21w(a_b+EfO0yLl(v>dmHb>DLft_*6BkvSK8a!SRY=OtMS$ zMP9BAy2eYaY|WXFO6v@$Z`w;GC*eO(J7QgKQ~LZ1<#Z2Z|7L}@1>H?;j+Y_(M8VF9 z2F8?8*Ggg&M-DUiM{BBh0K!gt46+TP#x3@Xlc1a?ku2MoTNBprzXi||u7rmYfA3df z{3Ppz4UwKuTU=OBr?mZl{Rb(%!*s);dl- zn(PA&e87)Np^z8s&$m!J8<~6WhLP7z(p|J2x6#RKDX$twSa&(H%ih21aEP;o;#Owv zOhT?aoWuWi&gorPTdb7Tx!{`YOzxV@BbigT%!KltebQgXFd+-ZopuBJb8mv~t&jnI z@BC#4Yn{x$nxm=d&YN(;byAAYJlUc|vJCaaojBtjqUx@vF4etIFj?9;AcIL&^g|4nHTnoEf-lT~%sN&{rfW| z?4$ISnv}+P)U!1$Tyw@0R&H-jRB4^k4fS`?GztmB5zDH#X;I>$NvbBVoB9T1-oYFf z$^2S1XJtLS_a$_XZikUJ#L@YIPh=+t2S4XF*w8XLhJIFOr-43!&%8V>C-++f zUQRZCwoX=7_TIX*o5O2NCl@F0nkjHi0QQZa*@zz|4^ltihGNRh+;cTz1&JR`CXd%~bp`8ypAc z9YYlLch&S&2V6stTzg{Ap>(-5x5FGIqs}{CsJ?{Ri_gURX#8He!la235b0R%+1RyO z4q1Us7U8^JE*^dd-^)BuYfN^IE^gxmRuV)|wy&FiwTQ6xQ(TXwZplh{m01%GX(gcF zxwZ;JBUYTbyWY3?;o{HdK9OC*+hsd#&~GIgG|0O2Jxy2!HBVZBeugP|6;#D7@KQW= z$DD$VLdBI?lbXi1pld=)75Jx>wxLOFf=za2o0N&7!ZvH}Jp6{wt_w|D*scoB_9V5r z526m;Zdqtva{6E|$es91{q;!)Z(sWJ8gaLT1FbWsqBAnTExkLTo3GD8yx84FKDtVZ z&ls_v?=w+iyO+mO4xY-hW!hV5bD>PO)7$xq<#%i;R_F1Cc{LoFVS~eO39=&IqwH}q z_cAIZW8a}u66>7ixRLAWEyq3I-L_3`x$M-5p&2gqakRdK79S9YiuDU| zsKt9Gpd{$X^DA?!&E>vOU| z#-CtUBdtQx#p8u_41iMJr6`&^*??+q*9&C$8w%0cPBCXV4E%Tswyt+#PMO=DJ$zMm zep&WD$W1jE^!1LHd=WDO{8(Zy?t5lrl3!H*S9bR2VTYTtZCQcCJiX!BJq{+9PjO|N zegWbgwXG93PucSV(Iy7)y)q%i+h1l9p=yzK;t+Fa!H|IQIwd*NFJu+fy{>FiaibT( z*L9r;x0Ax@WJ0ll(@IGW1MK6hn!pc)T-(O*&Kk=o12U@m!>$^H$K?iTr{Y>*mP?l|3Sy9qV zN13b%YFiI8OurftZZ;?4_+>D_1w1+cX#bR^Am0T0WtGu}r%*LIK>ng5pk2jVtH27U z?Nc@H^#YWY+_I%dVR?32|HwnQox>N_Dx|7kX~*w}2>6q46u_vZ;@9jeIN^L_`Qm>I zmPV>Uew*x2O!3%5RKK2pAw$PUEWVe^$QEl-La|km?ftq`VO&VRJ9T3t~-@1;II^SAuR>Ig04C+n+{bAJ)=r(4BU z0E-PVu%`}5HV-;_x-{}9^;gI>a!&Lm3`S6Jrr=g2=djmPtxq>Wm%YahB5Df1AH|?f zvpD}r= zj%aEgU_PkaoLD3-tqYWRo`={L(_DWyTyW;*Z#Af0g}f2qp%L??;dk5k>{k3Dtq4zW z!-j#1nKTnCnbeMju%)r1;>fVNhG{5My^fPar~DIkp27E+u}_dJNH6gV8jFi=_V^*N z-+eq20ETfA&4FMEKu1rSD-Cs-<7tu|wK6=8lu*`qk0Y)S6GZa$l0cedkBz8olBmB& z6deN=Faqt|--8s>qdGLWE@-=l9YqCx(!k#E8cv5_nBjl$lceWpv6+#i*Yn?4naS0j z!DnnsXw4KG&<0&Y59?S##dH7YFcx6?`48c zAd0j$0g=PkU%;w#6v{SaUxpt)>p7b;wb@TXg)#d+-gw9f#)*ug=w*`KtX9T=mc?%c z7NXy?ewLUcs7x&OV-&8GSaB?ALUaHPkAUsRSi9`NK7*yTv?%_nHh0F>@}FMUm?&S4a|4kDhq9I80j@cNe&R9o*WaKWygmC z;(+*tPEY$Gp)_wViyPHwn0c=a?y7|7OZZ9&#a0((vbsVjbfTs)oKcpXl#n47@oLum zadtGF!|VOJ%J=!6qWetX!}m6MwetNRj>fAZS;PBkj1bcubj(#7YhKYEqqq2jxS=@%Hmlu&z86V|Wp=|5C$Bh9^ zM%CAxGx=Mv2X=d^HGd6xJAF2@l=Wf7<$-xcf?&A*oBca$fUF6L_6@E8dqc#r1iGRT z!o73^lb3QdAb5u@7Y`5z{hWtz%Mi#TAu1Pi0w`UB8J*q;(h>O4Dv1e4ID{MRnAB%U z4D-GD+&~>j`t!Wdb)ZpO{hcq_E54%R?({54W?RypNS;$y5VTg_;~01gKibjiS2;K! zjuPS7b{KF@UVer^)2>hw>g5Z#%jFA9Xukx}z-4HN?r3~1z4}_b@ts=MV*;X;0^K5f zA^2A#WmoHeNfs$0p)tI_$>Qrj$>R6>|5`u~{vIjM|7WD^8KLL}MCmFOn};v723-jd zbd_3E{_Qw4D%HGvUUL?L@|)1HtSm^u6J(00Kw*v4H+YlXXbG+W4brEslljZp-GQMAJA3kgY#I5a4l5DnWYIA{l&7@uUvFf1KBM~EVU=8y&s3A!fKG#zY! zWZ)B+$SWg0Bc88N)kPaZCN*S}d4bDYqZUJSw|=gQ{2&j18&cJG-QMnZK(r~7j@_!P zu?jS4*GOxTnm367)(ezotjYtErW54X0hTrDBPU*$!;#WW!JiCcV)4})?tU=SwAsT^frp(wZKy=8*U z9#O}3R7Y77x3z~JZ7pMNr+9Ak;=9Xvn+fnTE3&-M;tkha-MiM06oZhJH+gq7@^qL9 z#&YO4*~}p=I2*5ULF^6%y1Fx+Uo$gL_$BaRgt?+=ajRDw$K?OHqB)`G?vn=lT5;o1Xx&#g zi!C@I3B|+rf&CXrYk*Oqu>XiEWNq5d< zKH~F|rUBcmR%lwQZ*ke(1Kh|tNPFgx)PVDLpA1l4Q`@U}V@8Rz@# zf@jy1;%+Aw)b6o0GKy3X-uM$Cu^2(j!0)s_H|GSS$V~vx=eps#e2X5%WBujbPE;fndKu1vc3c=racGMhcEygHbABa;44#JuJnsEE zxCo_E^Rw0y>Gj%h7lNXaMH|ewy5GxcsB+E`9D|DAGS|l|=*fveAP7Vfg1u%|hBTm9Q zqEbAzX`)Lrm8smX2LTvV*W${hYVw60yLYknPEo}^$MivvQ>tSorfa-VJHF#6pv}f(71EqE6(b2n4#69rw{+6tM0; zoHJmDMv>|Osy|8sb=$jsd)U6XM;3Y1JNaHjq+JNP$okm{RtX{eV1}RD7qk>ZWMXFkEugV8wyqgt&cZ8zD`uTnX>(hTHBHX9cp0kfFjmF0e%1YCZ zSR`LEx;G$r?qQa@5nLYsF=xi?;Ene~ojS!7E`b-#vm_BskswutAe*$Z_j`z5D=~31R zn3@M~OBUX7JoKcCwQkP$Z|n>~!1T>^BykU9H*8PA&+$WVjI+Q4!$AxG&E_qr45tI* zHO(9(p!jo`&qq>D899;LtZp7tNzj{oNn2i6lSn zfCjFWCEjQ_@ddTkz`iZq?<(_8yMo-K@p`{8-RiOKed!%CNIKyYeBX_GCG<+n^Toz! z1Fb-N#fG8SnUEszo}F8+3~ymy`(wph5;qU((}KlGuy+rh!jkxQj;j9l)#tk*a)2yo zIx%g`{t(~kWKV6F5NQdgp~gMf{ISZlAw|N#iND0L(bwjUwk8pHj#rn@AU?*$_~cq9 zNHgvf=ZYrg$cr<9$QT^cRo9*^>1v*7k)=BK&h3-*he%wM{%|rGQUQvQt`S!Vx%%#zb)45XOd8@w!xUg~@xE7}- zGNM0G=|8i5{B~aoVrHZdnen^#hunC0MLWW8 zDhU~|X|U*IB%-G&MK0dpMJNZU7r0uMo@!#&h52VJ#G&-*#L?>5i7+fwDO;UBs!ukc zGH44Sw*f|YPWg*fW_*=r^j$%L{`D0;>K+|x=bl{m`Q4}35ON^UnoZ!g;NeJ%avx-7WPnu#v z>+GUa%M8}Uiltp^_Lj44msjq~k-HlEcyT*-2V{wHP#n}h>Q!Jz!oMR<9Q;6V;ihqy<-N=QVmz>MT{dJE+ zKyGYf`!_LOpv?=?+w>5z3h|S#OLQPKB16y~;6Fj=Nmb}#2~LDCusMjODS}ih66%A# zT+;bB@)@+Z(hpY!$T0TO(HE=aEQ$r=v?a0nAbGGuAp6iVW0w1aQN4s=EnJPR4 zN&{})Y^((+ZEg3$NR?!*TzyZ_AgBfQp)#kWgfg)yf|%s}4PeK3e$K8kME+26lVA>o z&s*G6nNQj=Q$9*q0nCmoUYf_$;LOuR$Kvk*~3_PdQH;e2e znTjd#Z{vNBlE`?YPaB}IP-+!5onl@m#PbJQqYU6L!J1<`niRKbYF63inffT+2lQi~$6?^ZjHdBo7b zm<3t?9yWxru+P{6cuk#{YP-!$m;OqnYoAkVDtqFMjJr_0a=MchleO^?_l##WKpU6i zg3scCqj@k*(F`T!c41~Nmh5NX4g}%leJEFp5E&YB=u7Y^N37Ym=bFuw$}cy$%;QMs z!IcDsR?oLBl)ji1YG*2+1Dy@4HDQ_HD87xOa}cyg6|csE?Bz?sE7&UaA22`HkguxG z-y8TOWKDe?C#!#A)o{bjH1^8C`Gem9Jw7_W1_C#uR^2Rqg+*2>&>03hFulTr4r?(S zzR5;MEX9jWy9R%Q<5z+w0TZ8f47Ey<2=vEO3J6$Y%}!hC=X~*N@S4A_2rAywlty`& z_koCbalQ4H%Qx(|mxJpl4UpY)@qob3*Q8!5w&T_4+CYd@Zbz zpS%R*oSuQ;l?bGG0$_K0*H|>86-DQetvVEzlDqL8pc#e7K{k(l#{g53T!014`%fc= zE>`2Y^6O%NSoxckhcYN5%tf~uK$()wYs}hAM+;#g5>EJGxw3DEiP$*&@A%>vM=5si zPt5R1SZ>B~Oc-KQ4x(o)RV##Lrc8PiePADj1ix`*#dQ;}*`#=!iV(aoW<~1LGSK;A z{`HYjiov)j%5h5}F$pc45~RY|V&L2M91_f5R zFGvg`@)#q-O)*7{rcQpi;DK{_I^7nB-Hk!8_vdtt{cYry=lR@7f9d2HW__qHLxICX6o zge;^4 zW&Km)0N79ODWpNKdz>gP5{|VhrpKX}DdT1lejuB6O$a?gv^kmMV{NL*uFo_?ZX6oJ z8X-7?Y6j=pyFFD1#f_AHDm)WKwn8YbkCDbgPk%|p@estUN5-9od5sIFG3{V3DK%Q^ zF^+kBHi-o#JzIs|A+Lq{8q|P`0gSt0#bp= zP$5Nij9{DM&>VeiYqys10zn!eA|GI8fwKypQ?c6Zajv>ZJ*kpZRZw&e>)iU;{bF{G zW)WsV`eIOKX#4ONy8|V+<%)R)*>S}@BeL$dl9oT-rBPWO!aXYBm`I4%h)y?!8}0d* zk|OR>MdkGb_}F;$?cK5nW;iA=TY!Q^7#eZ_^>s_^FL63CY!Ap9NaEba8BvKAe00;4 zI4UCe6v)~6sJW)CDVhP#R)_)Q6Edb0|nC8^ZX<-*sK#2N|J(&=k8TL6W3Wxzx0t^h>cJ z55qBDewcZV^@w8+Y#bL%9p!(r-GVXS!OG z^R{??*_O5{0u?DLV(~;2J&;S<4Tt%1H?r-K0LgE_ltb!XI;OrtLonhH!VVCP#jW{6 zn)W37rbpbrirjeixZbdq{miULp_s*#Ldx@PPtg*|A0`DY61fKkUHDBVLJ6;mD=IVx z*@n-AC#^G0{=(R?y#nlPi+(sJGk@n})D`$*SaR6d8gft8K2E+0J0Z`^zD>wG9(yP0 zB?i%;>1JMnnj7$9^@YAl(>+3;OSMo81!|R@7g;)1Y+T_8bHWIAc+x_V8#Aw5H`uWL zetV_nB}B%4!Z}#J0Xl)vkfyDzRb=dJoPUzu+7M@bdbyRh=Th%R+*fDKe{YxTjV}f3 z`V?mz@a^?V4;Dr4oj4&>{5cE9+wo(a)?c3Xls}5fSr_}0EhbFu74Dz3|2<`6{ry{Y zMkf9z?f)OC&f50tV(5O$wU`_fRv0yVX8waU7+wz9pl7zHs7>vnPr&{KL&(+<3*W(B ze<&0nn)5<=Y&LyYmf<4S7!x34vhA`VzTlPo&gfUKveNS<(igZaerX^dZI~VEbUAxS zf9J|<_E`Q4hP)I&NQi%2GS|)H+oZ=3-L9WvLnZk+jP&n z;*B>JA9E{aE?N+&hCK^KUgN}rS;5@vzORkVK~Wn8p6GK&w2l9bf;1|Qw7%n#$E;JS`#^=$}c584! zPwf(A^s#%$%eWm(BsJ34urkp6d-g;Tsn@G^zNZGSc0IBp8A_T~Rh?peyTaWwciiam ztoG%M3Yhx!Fq6}xp+F{eeH;$Vk`ec~V)@k!s* zLy7(H2?qHaW~_DatD zH5qVMgG;ubbhfRqONb^uiLk;)Hxp3_^d4IG7m+eNqP23A?+_z zEqaT(o+c%kz zU!;5-ZiobNt;l-I`aC=wAl z@hLZu#_DxV7_e|n6CzT>S(mCI^9WrcW0^?}WPYTfh+E~(7qETnM)UDJu@r`D9L5#O zqZLKoE+fpL(*2*Qt=Jg2nTT#{#Np3bXHwxd>kqGBuP~nsnB1uI>Gwf-xQl@U4$Z%Y3Us zIm1ZzKufIy1ACtb~LUVV| zf?H_!*mX!^BX!~MMi?`b&SP_nQ)qRVtBZ#CMW39A7RV9>2P25b?NIc&&=mi4PUm|j zXw@)Eg>2( zlK0YBMy6lN|7gIyBMhO(Nje!Hft5*GLOvOMKlOTrk@GqWKgJ3&kK=x zj)%Q=kJ*l|*Z1jH>Pj-6A}mhyZ43@zGHeeMo$V{fQ>sYJot%hZ-O8fs^*3l`qlRd`DX$?UMXS;{$#7I7tgxVM(ge5f5o}VkB_Y>>Dw_l(0c;+A%YoLfLuV(nRlLK4hk2VnoO2!mi0l7ez4h zG&O%^v<&5LqMk-67~m<9n-Rfd+W4u+b^Smn=|#H?wceHxQ389>W0}@U4#Qf4{oHSH z0p|&!nM{>#suo67U+sNUOsuE4_;5sc)o5Czj4Wv_?)HOLL zdA886Mi$j33{Z{mP9dYJlS1*$EDm3q%=7KjW(G@JphQX*m>Y-R5XnAaQc#0~l0)=> z94D$cB8r9IU#2+X5~=+Z?R}6W%tY>md|(+--Jw?jNk^+Z}nUh0w1e5 zh{IP@pRp|Jh(PVM`_@c}$^Nq3k^lr`vi(g)^AiUz#u^$u1!W}O#21o95RDr8k-+qG z1uTM1<_4!s;3~PUI~1JaX;s8N z_v5oRg3(r~Rj7qet7eI1J{h`CcnnzK3{?xzxK=vmz3z|;6yRa=igi3CWlxb#SFPR( zl=QXu+pR?7T4MV+0$seJ?Q%Kbk0D6w;n!-=u_MHpy$*>E`PNjcr-OLe+Of?&v$%CJ zC;7e~hPCStAkX+j#XxaWiItsyC1EB7VAZJ3_6YXWVL6@=H07%2f7agzNOSMU06h>L z-Gps>S%~EG@|I#zl(uFrj`{T+E4bq+m+}_N2Rn*^k*||0%%{Q`;8=OxTVRmO28+)QcsU{BBhl3rq<>Eq}Jc>|7$(nH=*;}e2p6XZN3g}{QZl% z6kprK;Uf@Q^8CNd*A}l*#8mM#lA?}(h=oJtvbopdbPr zw#8udvlF$K+~L75JJG}ty7?hxcR7b z)$2AyKtytXAX%NG7NYJm)NXX~7}RkdSv*8S z&Paxtgsppb&V(={xU_%FAA~kywN7Y2js1{@Rhp!{`oq!(mHxY@VkLQkQ1P&ji^MFr zoxN)NlHyJmC^}No!i@y7kc{U{%y5BtNRq>ok1wZ3^69vYJ0mC%a!7mzC-!xh6gSp_ zHR$pf^|4>E8|+(3XY;6uev&5(CLo#mm>?eT1~+PAG+}i@f{|-AQK|zaQZ%<99R!Ld z!&v%~k$yZB`8G!B_~M-B<_CaNdX+13zILCLH=&wM2*{;`=>`50;ud0owuGrp&PS3l zHmPA~VK1ixd(focM!PQH2i4T2`=!obHt*#LR6BPXQuXm(*QQ6$?<^tdNp!a7y;f~! ziu@kUUEI_9!Jdt>19N9Q3X+EE!mq68n@mgPLDq6AHuH3v0Yu3kz`T%yjeJ_Yfon|> z?Q}|i?n1YR2`9zQi=t7m%B@4s-)rOhmaUM}&~_`M?3-8~>oWM|%wdo+PC(=2-evCAXI_BG> zobwBw!)9orpZ~H1{*OljF^7(oPLL|FhNC*Qb+;%qNwVO87-4b<&0h(jq8St-2*2YS zjlj5_ate5`MEubF8Gpn5FqXIh@0g%dtB@JkUE}v9>VBYkF@skO3q1R(T7=MkaOOTX zl{tL`T7xz}-*#71_ph-`iaJ40^$;FeqFn+LVnNk*5(CDu{dzhntOlYoP!0ZFk5aTz zZkZtT2K`W#hx<4HZuv9uV)(IHn^Bbx*Fr1ouR|kbHMS>1@1J0F_Lufo%ke`O7mw@S zSIxVRhm)C^?H3o+Z*}e{THfv2>lYWDy6Ci)b;}eGP6eXqG!=%d(olA!g7yLE}n+EQ+zF=y`2R8A`Y2(+KA?!^hJ4W2`YTsXm%ahayUP$Yy= z%Xb-HBcvnn`<19Ch1}(lY|9kGW{Yb(XoPmeXw6p_Mi0t^sFnxU+@>O}9!L~NSo(08W-p#0#(9SD^KuY!*kqbpFYv~aH-u>93o1TJEf6va)0p8{b`81TNTTSiFo zyoic~TaaXOP^6P{xt~v4LF|b9`Nw~NCz|7%7HX;_93S$!5dXac=E0F2ej+VGP0;(r z2uXh>Kb#BFc7{{54~Ck$>Ip0twq%5g=DeEka^i6zGyD^Rm)92^WX-|tf+D*$28GBu z(YC!79=ZF~ib8nseWPT4-WVu!)x}5uF>-vPCV9L@DKHEG68h3U>Wokw695vy`zewD zDGsbATL8asf6tFEBKBJ(KD=b#9Cq&HnJC+jXbC#N8P;i}5PC6V)GnuwDLE=)L3lRG zoNU@)#DukNq*2=Xw$I7eCf1p*aX&{wX*1n4?6CUenNCU?UX)QzzJV!BR3Cg!6BN0D zDmOK^pk%Js!$eOppk5`V&jr0d?F^J4?GVrY81qxl5HL7gEE5)eWyXLQ&-ef`FwpbU z0ezau!?t5ezP}Qh>h1n9rc+&<&e7NQV9J_k85p(=9!w=v`V=j~C65rEOx|dMKt8Fr z)m-Pc^=_JTfcR7&52-yIS=uLi`&4~6qw@ry@jTJ2^BK(1E0So@TOMtge=4kww{&~I zk*+&E$EE}mUm){eb_3?bee@HZ~^eivPrm4^X*{U2(ldv;nbgZ(m zJ87Lv+RfOVF-5|7yw)J4axGn6l9711=Oxv2F|?$*4vxZr*5MDS>R#ljRl6kD!89D* z>IK_2nE>i=!BjQ%j5E-rzDz-7jrw5|O}u4ZTdSyIA%fg9#S?wF+d6`hSeg!X)P9FI z&4gD5YJ4yf$hWkz|6*XdDx;+7zQFlY@*t#~~1gZOP}*hRsq4joDVa!cp)p}|DJd>;Izc9iuFbwk++iZD!cE zZQHhOX4tlE+qP|I*pA3hMs(z@{zlzfeY?M^^Ye`H?mzE3XY6OqwdNempei42!~TAs z*1QY;xJHO#@^7bx#$&^CCHC%1EQz~#h7$a}TdnC%{_jG`_s54ymTc&-K!F^{pC3ok0GogiC&LF@tpz>3lm2ZSPz(j7*ZDo-#8i&Fc?#=dhAu$BB zHgL-V7bJLv!SV@Dej1}fPrzEt@Bkz@bh)tEG?T321NxY1vMGUrCH;z;xQ)5L_U6ak z<5nv1h&@g}d!ge`kgp#PMS(smlacGK(0&ejG<&v?>j~HX(pDV+JZeVvk7^CCF(#DG zHVYnM<;F9|-fJ^IoG!H}G85|*y`n~B>pOA&q%(^h2Tu9aUP+nI zkUEhORUs_0M~%LKF+aez)=&IH=pAj$eBht(%68em4hrrOD+((qtWIu@5ndKs)&!I}DN)BR!|vS3V!*fR&Du8GhoG4sCLh>v+2ID=^A5Fi04Fy3d^1 zVNojBTrK~p(8HPL@s-s9@ySq`=$(A~Y<{58gND8_kJSzalJ7^d4ORWEBD=N(k~bCW zk0_M|tWqNC704Tib)~f~O+nK@1`jL_fDL+0KS|Cs?!pfheGonziBSE?VJR)z;~rS( zlZljk8@y01isffpQo-Iw-AlrA>zfsKGd!Fc0cQ2O?&Y%VlO^Jp-%9M{^?@pZ^?;y* zpl3trQ@nUojqeTifu!+Bsej~){HZAS9+sqp*>;IA3);(Kw6CL5e^U?|CRFJ+NjIS^ ze)PEvJUY~kejyo2~O=2wY$Z#}c62dy#uJ~v5 zF`6o4(J;L=MPY8AY))d@I$7P@Sv%p6){Kyv4wHR*+%L;8S?7*)XdZTA$wU2%0v zH(a#e=^eE%>p~7MVnWYG1&apWbdgl5Mrxm}Pt6acwSZ2rSc5U&tjsK0p$+*Oc!~{s zLwQdbEQK1$Qbs74*H#g6g8I2gJhdE>+O&8TUs@mu%IMd_1lxt0L@EVkSlpGnFK`ao zzJNWq|N7-14ZBVjo$<;8h?zpMHhpZ(-`d4Ut;$U3DEVd)Rc#zo$Hak!*_!Rg=3#r! z+v3y|fJj=;hSs#WwB?+ZG(n^NM1Bl=={fbRSM-=EEy`!ZU@iY}oTU263`=mD;3fdc zNCpi8-3?Nhwj)(R5Nj=*ar`zFvx1VWevzMzUwE5BVxKis2%;)<7z*>p2 z$nroH6T$w66YZ$9W>j8IvA+aj4VopO_2mljz-CZ=mXFNKsuipzsVeWu)(2l>&>uE&TC3fT9w z&uGk)ZN-^#G)vH_{yo8)U6Dehro+IO{Xp-hQ}_6*{??AOQSW<3RDxm5eM2UM#4-e- zFi{$2N^zxv$wi{bXd#wigiV!lA6ea9hM;G1pONVEhls~I8DR{&y$o9N9XyTG#Uy!b zW9_4=3^t=o50NU%E72QY|G01e|L*d-+5Ii*Qehxy;bI6tnVLf%I zhBvTXfW9+L^p3A_XypA|IJEdtpO!IngS=9t-w9GPaDse=Y%8&G_*^0v+^DvUVT*g4 zX4wFwD)fq#?lPSV{uTgEPodM>p!3FWA8N2Q^>ot>Ug)bwTAiu}@2435(3EcLc}@D4 z!Ngw*kqdP#-n-Us_ITHA6RlHg9M`N3>c>;gXt#~KG=&m)`fM_2$oz0n z@dC|kfcS(I!w@UuG-6($@>FN}RgENAlDSi@yS`Ivp29@$+4JU|jR#FMM=IBfi(|HK zu`YXsh7qaI#0oiKTCugkDNqLZN5wCBF#zGO)(GzxJgbv`LBO#3H58Eg;dPI3d}5!sqH8#suagL8D}g6 z-o*3n1aXQVawx7eW#-D>g(`Pg;N;zVx7NZLu?G&TE{M;DL>ChdPe6|co5qZp zrHxLgTXyYis2=b!zAcwa=brFuWjQdb6%7M$RlwA^7IM~en;dAYM-W{!MM7c|361EZ z7pgl!Pg>cYzOZv`bA9x(1QMaQ9I}bdML6)|_mlg+knnfgI^24sjVNet^cqv8EVQR;@i>M>+{P(L-H7sQ=mI_YQP49>sT5k&kdmE5W=n9) zhnCO3=({H-lZ*E=ihE%{?Ud&E5fh^uS%Mc~t9VdWPV-bHCU%hhGti1Lnnqe>jIu@R zC?SenoSV6S9J>42EnYlq*=}Y;K@?^LZr{m=KU<1`gguc%9J{ZDGE(2BtO8piez~wct*jjAPa{c%o_g6^-_RUfcBtGtghgxk@j!3~>9_BR`#7r2)h|E=~{W^6FUq zRlKL0?x@)TkrwK?%0ZCvpcK4FS*WB{sK#9g)+FCNj1$8j1@_;i2c)^dnZdoITRUlS z4tSxYe>&YSH1liEpR(O$hR(K1S1YQ~F zCztM5-Y4o^Ml%jiK$5N?J#N}6Xbov^mcUP)zU!SX9bfI}{Cv}w--cbvY4`(ZyYmT?SDR-o*sW#pnsDE!<#6Psk+c|TUWf@!{@kIm0*D>Annx}Uk0Q}*;dD8LAn2ZNtpNwS z(I(DsD_&np(}m=rqD468TtD1rhvtYzYx2SEke|Sxm8MY%`hDwxUHk^2r_Z z9w;aP51L?>DlIjOWuqvlY$sL00te$wFqzFpi_44SVbU`kkZAFL zg_~wxB%*aDI|Ob=hF8*;@z=>Ds*F+9qbWhe@IIOsO5hNA%2Gx1IvmMro{VbwXTsEE zS5<_1oy92%PvO2?1)LDyr|%ui0;+kJQcF=#)uTH{-U`g!kqHnbiD-K;(5h-gtSYL% z+s{T(gYE(*m-zx&esIXksnfP2t286qXYTm+-Rbu2;QU}BO~rtgVd*mXwC{ZepuxMQ z$os*Yq7C{9(n0V+VZQVLcjpFnlx-)ph;8oeocDmj@bF4ZXt-}8>si$T;SlLw>KZ`B zWQ6>Xzj`=yXUZk@w2$HrbVcRIc+5j$`YR z*Y(H8)>^-KlH;9yFZM|AI8Xsxh$F45P?BLcqw9HDmBdxsu`ipxfk;I@hOzt@P}kbB z_{3zW*Wq!fSEn4*Rv_wk)7ZJw9QxfdVPhBNA-Dh@%y=5_|-zwJzJxPx0aKbo@y}-e{Zo0mZLiUCo#=qp3cCyZc+U`;oaRiLelz6DX!V z!r>^N_*JBbrEI(BlCE9dzIz1(03`&un`d1er6=J1YtK-TO3KW33xsGYsLouUnFQvY6)1=V+`2nuUP-^m9 z9EYS>jPJ4&U&e0R`jsOjZ8WSI1xqp6U>rNF#Q*eqOM+(`;|)o|!wAsw{=t_?U7ybr zW?m>?jn*slvB0wQ<&V(E%uConF@SB!CAZRbW>986_T$3R>J1MmQX_!Xn0JChKMU5t z?j(o885XmuVHu`*-3SbH z%AV-^Lrdao*K4sKh)&Zk5}_+KQi*L0sg3Ogll}cxMlvvPG555Kw!=OQp)T6UAbLvS z!*gnqo%|LhF|+~&t|(3dK6X6rVz1arRZH7>hZQgaxecJdi*J)slgot;Dro#6BO=P5 z=Kw@;!{?I7UHaB{G?WNnmo?-LM%|q2IbJw71DOcYJzv_Mt-7C`BT`oe8W$NvtF`6k zkTQU%=&yG%g~@?%mPZPaj%7MHwmR3VCAfH4{f{y*#)(s>sj_Jekcu)~yV!NGc&>rp ze|DN+vJr|>yFNASdQF5&+W-8u)-V`T;+ECIZbmc8BakDL*u@2zt@o_!W+9K{SyGgF z;@Dp@fT}8+5t%FA6yHpS-G_Gg1e)=eGM)v^UkV}mo=b$10o*&EJ&j`u5DfH1o3%@0ZOj#1 zP3(qU2}*pi>(~yIDTdw6USt%5Nu;}Pwyg3V)B0gQQN@a-(FZfRn&Gs60he;+vZ{<6 zHh#S^<=e2>I9SwfmMp|^wLomNSjnBjY8qZny1!e$BxPZ9gl)JUrndYjYf6UUwFOM* zw7cQug&Qti;z1xmip~q%9k~9zzs;BC8n>HY z`l$T7g#Z`|d^$M*si|@vh82QM30aG@BA_h$M3O{@hfXP4zHPM3`lPd)MqU3%J7dw53T-rBs)zMy@p;&3xR~hqY0T z<|(+a1Qg!70r0s)e$+;zi*@^;VSE%S)DJ%A+Vh^6W7*dBUjmJG_{fK0*03jceuD9K zjhC=qC&(02TtpmN=c*!vN-6j^JvrC_Y zf;Z-D)r%HS@u3y#aEYM`qg)i^qA*NBcR+g6rGjmphhE8{HfVTH+v%$eNztG^S5K@@ zg`0@89(R)*c@X9oUxn0#bK~|)TS2S9wpNXoN-WI|H(1z|Al-1 zdmjAXT$TUz?wv>MkH_+jdmaA;_x^A5;Q!`8p9F!wT?Ucgyuut}B&CvJlm4Jsj`799^c>_!%@E7uq%=BClwM;PZqnepHwCY=&Eaz0-Zee-q@ zLEGZ%{gP*q%AzJx^3=GE@U2Z}LtM{gEG$5pvku~G*RwVlSU#p zDB|X1r(9}+JX0$spmidaP*iG6(kbf~e8;T`;~B)g@g&mHQ~gr>YHwL@1|ZKg^xs+^ zdpv!en>4FO5`uBDJJ~0I^SC@+JU{L~?vIcmrpR}b+8t%ppNy($l(V;?Gz4;#XYfsE z)dtiF&{Yj)u@l@(npcnZ<=L5jQ(2&v8E<%e&rjcAR>s3|x&i9bYD9F87qfS7A?wM~ z%F)3K9CR*L*3$O0BkjuUbfstMW%qQUpxX`I4ZlV%RxU<5b!CT*zy998SbRVa73^2m zFWgZ{ISh@CzV zF`wPpYe~k61#l20+m9YMTYw@zfppGA>#9kMifc#L?S7yRr0rY8jlzG3W^Kmyx^hbH zB9)-@`kA`3Yf|x80h)H~SaN^(O%l)V z9bq<^I8mZE(G(>mw%VuQT~HR)Jzs3Jj*Xbx=A$LFUSXFe4uzphw$6QG3KBhvivz~d zQa%(qnkUYgQUa6S=$d0TO=D-)*h|V4S&H7#Np$DfmDPQKdnGq`7tN<6FgaD)D$AvNZs?*v8dvu+46yw#qvsWftsh0cnfo3`fcO9AzTxE z;9Z-7W~Il;N-B!p@)-EQnY9b_e!i9x&AuH;6xrO6ums*3&`V=G$|EoyCi87si9T7_nyplM;1%*&$tM z0F??lR@&3IJ&)ktIpDRrxOd8@o~X~nZ|??IMK5bXzwM4E3Vq*a55+`ye<)^6<*0Dh6$ksMMqqZ|=t(bG7` ztP%dZkBpvF<9WV_erG2)^G}Kpj^JdP934+S$OAtdDL({}L7qrg|6$-Iu)WsQ zhllU93p89{v05*uOzyOSTbHD%s98od3Wh#&o63CN8aNijCeY`H(2B z+6#a7xI-CR+y6j6TqK-))d@)Z5=#O*UX;nkHRAFUj$m1tJ&MR(PE-l*tP=uMl z?ZCu%^RZ_$OLW02ofgwB)gG0y6Q$P<7EZIB);)2E4gUj4W<^$$ZORuG8Pa=`cGe}m zI`%l4Py6C;QFvde(lA`Ea^9lxbdsM?E( z*W#yqDWa)Gv62rV*9dplZu(ObOc^HQ>Gj@S!JtLvON<9X zE!~r0`r;*1`@nQQg@EjFgF$N?ug*Y>Y;%WGKC-$|H$m(pXrTNb9TL5Kh_ekWbn#yW zIQPk}&8A0{np^<@uDJtKdk|0=K-_}B0^q*@${=iOdmu!d<^fznwD=%aq=LA*x%-B#r%(bj zN0Vij87p0KT)6q9M_8>E?)2zH5xa%F@60om1aIvSQ#db&dPvcQ=7kc$XvrcZ zPh^frH95crM3@cR$OMvK7}?LL1SFCpwL49ub@nb4E6t{dBEwm+n4bnUUSI{kd)^5X z1de*68M)ttIAr8Xf#KIsI&AsfyhXfu7-LcN2qQxc@h9Qo8H#@{Z^o`hOiXN1Lx%Ma zO;ad=o;p1vFm2kER$px!r|P)$*UF<81Q*nD+8+YJ92_>oi^ zn=J!^jXWCVUa%QljP>ZyfGTUS2~=G7-r}*9?^l{7;&HULP4y@cj*uu;I^(KF8Xial z*@X{cE2<2>Qs7lV#VFCIAP^*29F)eVx>Sbr>KJbpEBRC>)UO8rpMfcTw`%zbg5K%N z+zs{+m87ei;%kB&zqquY`p51Qb&oz1Ee|`WXjEcsdj8t~d$AKpFy0o!ueB#EO z;{3*BWfVl}y+z9q?Gw?pWk6RGB!X=w7KlhT9qI?6H246|*ApYH_5GyhnRD+}a zmQvA(wyFJXky@*#^tPW~`%Zq{FxE<5-PutQ75tkR`97YM>4{5Jfz>uv>4c7ya^|V2 za160KSJP^tJgIED*o^FgK?pZt+m;>*eA{GBn9#I8soaXJ@z-qh{Dp5y4{Vee6^oFI zAdN7Ntm!z_ISY(WgbUE-0A@$(bX|hAXqUi1+wF3gB;5IHzTBlUA!|`@uU1`pIpw~Q z<$M0p+>_a|aZaYn;nrnm9@b@nyh4gVCmg!67B^OK@|hC|U7R-F*ZbWd2;gc>@vmCN zqVYeWqZHmBx%gVHk2YF4*Yh9$G~4`NF%kAVqS@Nc$iUi!&eVfOR{B5m=znvi{#R10 zbgw6s`qrZnzG?Bte?8*AuMNicOAdY8OW*iJ;B{G2{Rrlv2xuD!(B)2M&R#ofNl%d0 zUJ<)T<$g1iMeQQb5j4I3`8Ab`%ng@yhfm@$ko*{gEx}ZkBE^=VR>lt=pqRl#?5%Ts zlw3M)pwJs{1|X*OYB zAF5F?q@A2L*&yBkxWO+gRWQv$<+{pd)_plSrQkqbt~QnRTN*JQ#Y-amc_p9Ow`=r` zP8OTG_ak#f0beDs>JK9WNd#KrK1QH)AqU9jYbmB^jwjWISk;V%M}9{_uwf_Z$}`SD z#N2c6`0@G{vXRUr$s1!1?~X2o|2Q$xpTer_-zoFBxNM3(|AdWn4s-6MsSkl8ta?rli)4Vphcs#z`4c|MbdCyNm!}=^DQ7d!_(r(`g*-G zRj=FdW~y5`qS0ybG{DQk`B~%{)QgHtkV}ES3TpC0yUt*m>?P3^Zap{H1>dX|jBcG5 z@v^wOJCF~+zyeG4j%0D9aRicIe6&Onl9X3Y_$qzL+VDH*s)j6prYIMj0rJ~?Sq^d_ ziU*tp+$Y*@kr(%Xmt6YmcxQD~Oe}KPurIIy*vL$b5~-uG6}_~Uu2!$tZ@~X3P<4RA zba)rb!eQwy;STFf`UOLivPXY}k+%`ZYbUM;nyP!LQRsMTiLMQmpQ7kNH3qxaRioOK z-6dW3?Le~4+Aivrz1e-p33?d;{?S;qM9VyM3puZ(Ol;ZDN;Qq*_M#K8m;9q)TyU={u% zuJPQfY{m#|*Q4a&Nys2(eh#&8E1RM>wQ^^wg}(Elr7KmQym4N34Et4_qg}0Rs2yDo z?!r<1WM$^6b#KTEgrohGt$kXNrJI1T{kpPImdbg@U7+=Ff?i@%bekz>#o&0%`i|Rf zaBQi&5B-qe6p26SIw zC1R>Ht2%Pa_iAz{>$Iq+1gQoig}qaHYFLp5Esd=T)KIBeb^&bYgqF}}s6R6pQIn=3EUrI&}r6Iy}%iU#Qjt}wJA!@MD$H2p1e zue%U4lbjRZT5$up!*5L_2c$l(<(jPgkJL&M|EE_zaw zQSMDlt*v>_Y^_%lP8m_(O8JiveL49)XQoHzxM=X)%JB8Ji>v+u}W z9{!1NH;sQ1=w>*v4j><8ctwEfd1RDR$F!T}OakoT;EFvWLR8WuFJ?R_M!&Y_8Punu zhG)$w#5v)CUCTsn=}o}HgwOd|RPnRuTn(=riRtqTulzhl7^}_=JGLpDfpb0jQP75! z)9zbD^A6i+uFsUvX6gyfc?GXPLLXSk9G9%u#?Wf}fYrS#s1KgYgd|fPq7F0tj+MKJ zctFa{v}EFGAWUxN$w3DEKvD^ovYu@rt&c5JUu`s3)jVBanv}e3F|YiiphqK09|{j?LUG-H8=TU6D{VHmcbA4w*zQ?84`235sKvGS?D>arj|QFfM{UxRW0)XCJC3EXOPICo`^;su`& zEQC;*iVl)S;Bt9*M_p)~2RnuDWD~6MIn=1!(qj34{(!_kGx3QL&ELq3N~t(|JG8E5 zkLV}|bewJ&+OACN0f5_ek>A=nhm9vNN5ebPGATo|-6Gp$ zIa|sp|nsz-I~=OB|dc!D8fs$8o^;N*dlY`GBsSJR<+5#xRpUn=IqNjP}fN z#IegOLhK;JdAy-MA1ro6$ zXsBj?^pdz@F^qb5QKs}qpBD;gKZNjA{}C{By`$P^P&#HNlxfvh0H2`)nvjtGo4upCBx`c58XQjk{q?_iy%rlpO`f#$22ui8n!43uttI*=ZS1;ty~kVXN)rM zttT(IUBk~gR<18|sGoKvcN;P%faZ%G&nnr{ePka2*7tJyZSm_o=m0F^LB~i>osEgg`QFC`|kDp0RPi$&_&n{!57?LYT-so zr4x(Nj3EtnPp8z0f#NsZ`VK6dgF zA7qPh=t0<}UL^}HeS*98jaQ0<6EI;%^~^|y&1MDV=;xWJhqq8ZfKjP(k#kZmo2CL&XZ?EQauJYlWS zVkBEw#Fs#Z8^FOkc|s!WfY|)8{A6=CIs{q}jFNzqqe>mH9+3{z2j_GOUE{DEoR&?) zj97)nJYULT?5xXii=A+7|9R39;Tp!vt8HUS30g29==GR6a1r4&SjdDqs^0^SIQ15jT69K~@Xi=zf9!C6)h} zy#0T`j+p_CgvfsrcKptHc*wp%C;eL%`zP4>k0bv3u=AhFSl|Drj0w8nD2r2~$1mbj z8A(SM0TL&Wl#^fEG+Yvv-VSprYvT(9S_*}Icz=8)lGQQ0-n7{QWo7$v2ihH@x6%v* zpSgtlN9SZo%kD*>TF8-%QFB1R3Ro(P+iR!y!#nC8+NWd{lu zb1wW~+@3irLrqTWtRP?SL`r3sx(~wOK??SE!tcFPvsu}K>t{dJ5Av<>Ni=YJxH?y2 ztA63$z=OVy9Dg;vN8u;3Yw+mUuUKDYiGJ_1XI8>#V1T+l>e*N&d` zJ{wP;?Bh&pmA*Hul#37UP2&sgPg?xxn?1(KSu=jcWE>&*6_GE)1fyu>kr}80H89Et z>oF}w?fL}mj_Z2TvS}U;8i&4wi@))EhP5b?lenRGEH6KWNRSn%vCTOD#_tuPxSr-A zO9|o$;O7V8lXgFMH;+hwZbr~Q#-M@b_cd!HCpmWS-`ti_5r_*^aBw&9e55@0U8vycL0!(PTA80SQdyarL#Hl&83`LUM&}djF5= z{ZEi{x-_*@`PRa`zO}IbqxAjfD-;5{Yk zrS8U7J*2QG{+$heKGG!MG+=MvVio*on+wq5&-UiXLUg+8n;Wq$NG?Us&w^XO{H}5+1DM7Ao8~2X77u-IKo7+n{)vEHree%oD}Sa+@f|Ok>Z;?=sj~F$ zlkd$K(&%Nz@~en?&9giwJb>eU)J^Q&x`#}j=i!&*k7ESp9**3PyYuNFAEut3A9}Jg za&~LWEL=Su+#I=CdOG`OQPFh0CVJU=IXH}fO8(LAopZ!|K}p7<@$u8PLF$P5C0+cc z1d1Gq6pt0hEV@nCmP`!`XoNr1E(Pr~AE15@*CbQ-pNN*h*=pVj zqd43Y0gaP9JM46wXylGjcuxU>F4dbJc+8ljByORrjUGfk^hS->T;5wcPCTQ>O(Ao$ z8zS37YC5+N`Av36>w{^~SaLL?hY|k1EW&HUS%ERuXP$%36 ziVi9l2;DGI55&?n0vj3OJp*Z&d?dnN%5J|j#&AZjWT6A(j?zqRWV=Q=c?FhcJ8`B$ z%5lcJ8Vp{pvu_8LyP|ne@2>B*AP&V);CA{*eA9F&EmqR?l0foWm7+qjgflY$p`3s7EP>U>2mLi@ef_9VyW%n|MV<3<}O&}bPE zx5?rndMTKB8vKh9;aYd5h}Cst5>bybW&IdfN9X)OrG5&F$6W3teQwc=AKkkWUy3{h zvYdj4HlI!WCSV7}7+?d?Qn(Iv@sT&osoGk1&V>mBCrQ5`Vx!$ML|=>V&7tkFRjSrVo67)=#W=-pGEzTl~R{ z2$Ys99)X68V7(z&G-FN`%F@Z*KTK+Avut{J@yG#tM3D_oS%qNS$rUCb@|ef=v=r}) zEocesl1|8xqjI0bp;8hLJ!!$%wF!4;%niunzI(P-DyZL+L->gGE;te5SH2p{cBZk{ zaMAhG(|Gz#G-R6OMm4qay?!uTcb^n;?Lr_q1fhFSCTJ=SAjB?bl~oNZ7&ZJS#=z3J8v?WKXZ+!&zU}Z} z_d$ctNE`5EJu6G^H2x*@p7l#KJ3CQ@FufeihMbX zALYlNj%Ok_rq$HL*IqU(?(^u8i0MLNLF70sLYm+4bZ(o-q_!j+#?=U$SD{>58!&&S z>eg?WDwXQNq<+DchbUZsh)ePO@kY;*`k;7mRZ<1usT6|%p zx#NqA>>L`&5KCDVQ8=DPE~IU@DkVRFWxK5;?ne#GfX()H?=;x~5Lk79j;^FOM==hX zymnVO*a)E*^=Zhh0roJ7MRcu61P&cvsh`8=o*z>yP{$+nKW>5QfuO%3&HFar1r2~C z554YB&EN$RZw@>Ijlnt0)T-H zuG)~~{2xR_yv!9qgCk>{ zQY*ukT1rTjIm`4F-xzw)1pscO9ceyz8ya~_R8zqp2mz!{|)`OF4HUFyGBKs1Q5b1Rh;4>x+4)tka=xZGTa7faj zoxu}S%tz-Fjcl8cFwl#jX33wP5eOL2f&k!+tRJfNYHnQH4nO-FiE%ph{?Q{X0Ctc-ugRld@;bMX+-TZtzvhcpVyK zAB0yuDp<0%cS{%hgadT*J?0E4E7K#$G^M33hL1DZ4e>4EiRq6!l zUgis)IVW{thq84a6Z(T_%r^dsuS%0Jo(v1E;kn;Fq^7GRDgz~ykqzKM?au*!CkeGaz*pK3do^(u^MAJ%A>zh1E!RG?g#2rGE^R&NbQa9sw zM%ut*41{UWgX{nTOas7nS?ZQny257d^X3T*^|$L6pUA1M^1Patdwnz@yYqmru=-&= z9mFn`TGiFK3-S3|3i1Kg%czKg`R-R4uK@NJ?U^b8v~FmwHh|gG=CO8PSkX&lx z(sPe^P;VltkjR4|lLawy-$*0P{mvVvS>xXy0gp4=hCpGns=} zztSO>ERW}N`Ozlkv^kr`=RN-wHjhg%oY7J$1(7<_qK!Q`t-i{|OTwZCch_9e?7i3H z>HcVPmX~iJcQ=2w`0CF|?;oD`v(caRca$Pdd%QyBigPF34L%oGZVVZ*d%>ga;&y*2 z5+q_lZ!MEk=FOwLYAv!w1OM{^!|gPLV1@FX?WKf)IlzsJk?(jK#p5n&fmZq$?YgJ@ z_`@107NmIRkkBi6N3KY`V#u zcP4I-+3|NO)(E4m+4j4s|b<%G;O7Ox+`FNz@b|Bs3 z;Fd54ro&3J>fWBk9Jnp9Zj;VXJTJMCak2k-n1B!a!%tFUii99@;|eO&8u0Cyuf^Ce z9i^y|^oE}%g{NQtcg*~!O*=E=|0ZK9Y$)6ld^2X~zm8shKmR`f%>M7uOPKHc9VkK` zYhcFG3kM-MjSYR#PUEsgR36YKnN1LDiNeEskXJ+Tx2L-=iR`|K zjzIfu5O%IV_F#Hfa<*DQ%~vwv{?+OK;7e%69LYHyBna641%v$FgK?OiMEB%D4M!-u zLVZu}jGp(RpunsAL0}B*yx&C-&)bR*;be`0`&IgBaC9=1!0{;1IK_W z(G_kT6}smDgXZkMG7#4X-n=kE0fp;Bl00^~LB77pHMFej!(J@hy6p@!9`J&Eo@mh- zcmUaN6!dDTG;sQ$b!ZEX`h~j!>~-a4dp4+GD2kHfybvco?#oqXZW*t|{F}jGC6h1< z)=;^r8X40`4w=_I)^@J;on1Y;wytL)V4GIzHf$%~8=kh#%^^p}aI}lluQ1|T#U`iy z5|6c{94+w^YmHH-$^H|(nD;SIHEna+C4T|)iYI)YeNUY8*&$8$Dp}H^{eZp)?8~jp zxFAA>sHKp7TO7AIu8_YpC5bnHUkF@8+VjBcq{=h#G!YQ(F0!O;U$yg72UhGoU3<@rR-IMGs4^(jMP$> z%}@dq4Iidjm8Hxy=V*M0lkxq9@;8YZDr9Z8wfdSdif3g7j+ZZ7#DlBvTMoTFCe;Kp z_qLhEBMljd&BnvUXIxFonvpE+v;$CaRT}PZQ_KE=5TT7zw|(?K0N2>mEqt zZjoJOzZF7O0JB+Axpf9WoZ#xh#9jY^!U~OXJdI-N%4h&ci#0*CfN-^NbY{1fOnze^q+Kv1$`+hCoLi|bnhyIYEi(E)lhryoJRS|2)ui8Csle%_=+6Ie zc>K2idiD5<0mPM5TPcV!*!1E>!xDqV$Ji6Z4H-*d(yu0MF~USsXNEf7xv(%n$z>u+ za~WX;NLkLTI@#93W5TlVYf1;8EK=?A)O(_)RO~YH;q2)Vg}J9a=g-~s1?Kzl$I;}& z=K9kEMW@#|?X@jkt=Xzut9z&6N$YL{U9H{UeY=W2(JoEP1Ux}W#X@ljGbI8~AnGLa zF=`P)bjJSnimKyu{d7-+jsb@?#ZyJB4r$;!MR^Kiit0wNMz6AQ2n4!Q(JDoeDVD)s z)c!vf1Cpi0Lhc3_sdP2S0;&5Kv%V)S1C^W8)h(bAv(>1p4g3Pkq^UHH3xdPd{yl;wt&#Cb514r_I|1=Yyc1>A=y+&{O0UR{2A>v%u81N_lJBSEKZG;WF0 zuq$zh~Y$y9z}`#WTw#&yo5P6$TkKdkuV2-edW8lNa&Q4vR83 z(S8)ch4)fDx{NN{wr$(CZQK5rZQHIc+qP|Xp{si8%v{WQ&z$+r zUVE)a=~!numQr^0R(fQVv{1AQjmFYkTFsZlSk$~OetG?pAa;N<$9!5kh0W|4vcJVF zv|JiuvqmGM3UwdR4Ifs|G2^7GJhnfrdJ9-hT5+0k4dPvW!bAt%MzAY%?Fy2}5MRb* zx%{M1<1b6xW2Y`c{r0m;O{LI1Oa9i9WUf=j(VT#)^WqKUQqHGF#YfWRN31b+e`1_N zuF)riqZ|Nh-LcaTwgz?Jq(NIqEwJyMnGjrsu6m`hk|M5p_Y#omR8(R(L5#tO61r4| zzv&=G7r=_qWnlgs!Il}}Dl3C1@@Yh{OGo!jmOIdx^paoIVzrZ`@|y;$;7=rca2)(_ z8h5l$ckhCtp+Q$5Ve6*ts9Uv?Aht#G3s>X`-KW$5dO)3(^5-gtygJXR$ zoxU0p2Cr;mQ3oImAjfWkaghr`ar@&JIe(7psHiA5D@jPvn9x@r%wQ%ykNGLW_mj5H zYmwnchj|?iULj)r-gA9pRp_77vguKM6-&`q!Mh`b}JN@8gp^Tp)ZM6f^lP2@#*(Tu>Kt`r`z zHOkk9jN9#kT%{fPn_N}OL0?zzO(`RQ@^X7pXgFRiebEnOI8{3rF87EpjtjY-zRzG3 z`wQ>>=rCTzEnem8fH;Nd@b5?B#ES$8us5SeF`W*Qm!@FU=_kFt(7wbHld;-b{xDF*Yge)Shu8{a;=#ykY@J65zl$lNW@eHu@I_U)=5o6*uL}) z6bfrncB5FtXVlQOF2{6<_bo)cWeyasY=;oMKnqmRnK{WE!$9z@)3_6r3N!`&55X?5 zM1_W*HTud_G|nWXD{fTX8^(~KOcr!2x2CKx!{~0z7q=&*Uja5QxeZw0aJA?{HsJg& z5*q^BlFC_%1;W6N?T}~80f=XpHWm;A7rCk6V7l{kEOzbrGl@ua-g~04n>eL7uH$~4 z@JF+J(-iyp0rj;MS=Y8Cu`(4|Q>8*I@FL#MeHoGdTWe|tHu)cOOvmba!c*f-9ykk(QDFEXkRqe(MDz3gMS@~Xw0WA zuLsl7S}?9&M&1mFj3AqnIh59YFSE0-%htKsiW^mlCqQuoJ0QTTLsNf@YI|!qcHt-U zoVfZJM5!e&&>>tjMWG~>37$P~2&o5k!0(&G=23E24wj%Rll{}YVX5&oMK z1tq2N>Or6g83O#r^e8J9+sgQMRx~H?ocRP|iNS)@GlG`=z{Jf7(^L!={Mb^MGWHqU zV0O=lq)n3W+L*P3`~om)5+Vtq+~J95`OL*9`qJ{-d!13r@(n#PdPOmHWHsp>9OXy( zu-heC=85#YesfRLtUWvtlc-@%WJQEdd0w^lM5pL}wh2Rs%>%F;N^bqRWRA|U96*v$ zz@=(5CJN70$I2bHJ)RuD8HoinYc#sECaua-Xq}?c63_(8vQ$7}Ms;|n=%M0LhH==` z-8zwdzV@Eo4vq^F0(w$A@ue?GwF^}?W|=Iv-J!YDChOIayfV52ZsDNOY8qgkt}J4& zkNK)#FbnvqMO|_V{mfEkf=g{pj`?Ot^+ZgAu`#XQOQ{tTP~~1Sd>*9 zHU61oLR%zU_*3NNV-9KVFki#2GX6*qC|TLjyKw&&y@>J)c~;=t*hhuQ`@f8R6^Gci zh>9^EcyX*};Tno~Pt|AVh}0YQrR~@{LxgFZky&L73qdDm?U5az(Pq8BRwL54xP$fj zz&+)f$`uY;@Xo|;^eq!%+KJK^b>>%fMi5BhDj6B|$Cpm#;ah5W|6T{s6vx)GfRn{e?6>Q6gi*yn7rg2p9?0@0bC zg~8%~!p%POWGe#HYIkFm(@b;_Yfz;Xu7=Ucopud>JrVHPQS0|Ly_u*GCn{djP<&;P zQf;79Z#9(I%SG!fvJ>mQ`iT?Ms}5-vsTFQ0q62vKrOSV07AdJ1-r3-%83loi`*H*S z{8M+%Oen-^FJ<-)CrV2!fZ*|Cc=p@or_nmcVD&&@tZ95kSIdq|EDODMUzf}4`|k4R z?WdpLpxKS~_G#Z2?Z?|Q|C(oBA*ZAMkP4+mj4E4IEiod%24u5qOw`HWWg^augW^*U z2+>U>zHK6^Xr2#V#J@-PuZb}CO7@FAgQRi!$8Fqv<}9$v7d^+6b9cVOWaGwb$uxM8 zP`@oDKoOLET>;ij)T~{Ww7?z`#Z4Lx{jMjZw`k=i=`H;R_x;ajSW;&h7LJ>ulMAp< zQ{tTaTH$U)hg$4aVp3m4nskYw^}ICRV#DkjxNkLLqeE=$NF^agf$%TFBrRoI^@7br z=;2H~cdm1kvW9!(cn4*p0hDsRBRZDdwITWOj`55it0I9o1_a zW}HGXQK1sVmW$W(eiVOHX+}?k7LBufm^_w9<4t~27}5mCGC}epwE6eKhRKB zA}Pl-GPb)=Fiq+*f=zOHyAi|9zny|MVTiVpH<0=GzrNm{``DRv1{F70-C2HqV*ESs zwE36d8QuQ7oZuTg)Bg*2+Wh|m&mJ3r6Bk~)v3_agDT`A$*UrK+fkaF30NToA6?X3; z-cdc9WB@QN*A&L!N?jhl{{vj=(GQyq-+<`Hc#OMPzsy=?2hsTzD$GVe)A-LV%-9uU z_y>%i19*h)Qj?c1Ou_hL-@0aE&R`cwdT!jet{FWTNc408lnNpeZ)C{BQY!q*JeDq? zA-}>sM^TL!j_hibi5wt9gC~dH3@f!H^(5DunZ~7H2qrhn2lm^N4?m1hnb<~bYo@Dc zZq`2PxUyOeAIziM$(;KM4->!0(9+c%=r}~YDo4T13dl%-wkR81sv9)Rz=j)CUKSIz zsC{V!lC299jtwQKn`>P!5fN`?x9dH2|u6Hx?e zDw{mGA7jxzqhW&LS?Q#XNHM3cdD0mRS_7RUgF$5fl{;ODUJqEm_4yZ^e{!eI{|k41 zFQ$$n^*&N!X@MmGWo~Q(2^JdsX!b)K(XwnPyj~L&U@^}$(PrLuaYrDnG5mF#K)xm& zfaAm9v`M`?B%f6GZqAX+v89`ZG2^1Hs=n&K%wt^U^=5G7v%fZZO0U9vse@ZW_4`SuuhHDTFDVS@dsoMMoZKVFu+_3yc*SwN<8+9TVVP0K5J8ND&Bvds&i#vN+I8P`}7FP3$g=a^frjx9B~+m;QxUh;mJZA3poh|T zfJe%9nm63Vu=@_AHRsIN9_9r})?4N(^P4zqV5-pOnK8@j){vC;!JJJXL=5#S1CK#5 zcF3#8{pqt(1T6jd5&y0)r>S1NUQgz3toRxGwP$QMFJD(StoYixJGcHY_1$`UF?Dla zG6E_b;+wRvS4cq85Cu%qdMu(g+?0#K7@a7cIn!v*Qum2-|A`lA%z*2fQo59uQYpAM zczJST(u{VnuUCa20%Dy6vD~H81pMGJP9WYw5I|Z!?0$if{3hpAP>o{|@A=oG)Wyb+ zY?qQTy}I3P>0#j8ki-p^4?vQOEi|5Z*HM)6s7v*5EzqK2NAWHj_e?hcM{g?=+h)zP?pmO&e#m~gTqYDd zfvE&MJZC7S4-cOSLp|)^)rY{E;*=vCk-A%YVYlNWspJnRpCdGH`<7a=PPr&Q;wY}P zQq4H79j#O<5CmTeOEth}vl{VUo5z(XL{FqVm99wDn4BjoIL~3Gp=uLY+T`=!CFN?5 ziK?=EFUqBm0bL_|t75@F!YWB(_N^#+&G7H_+YtMUX@pwwd^d; zT^o^*=@FI7&8V!+hx{eOcKO8%C|(CypQPyYco<|k>qoB%n?$`KGH!{|}zGL*n zHZs%R6gqRmza>iSm!#l)PBe2fDkXXOx*03oBP&|NJmBtlrVwn8OQ2xsbOtwLUQFYtCF%K1xUzaq$ zcvRjMFaecTl!eGj zOYg3(ogBBLby%@Xt%bEp*OtTzVepi=;AJ z4d4rK5^PfpnM81Gl6h4JoTN02zo}R90}Dm_f=gRwUcWeYOz}WK&6z2*ZH)Qws9&d7 zYzhc17ZVBqN3|8fyBcF}g~ia=T&jA#;GE%K3|FdK$FNY7Y$e$u;N&WD*XqN^?>*Dj z`T&^5qbIBcN=RBT)sV?67s8Xw6RT`8Wdj9!RefLm3n|rL8Y*UmqC(03^;Qa5Ruu(X zq(=q(VzjuJpgB9HqI*IruHiota`Y7`F$+N}v$270K^vbvw%?H}$Yn@pE9P9@Eq>&d zWI$~dMhLh977`eOAq(7stwAqx-Utqi-X2!{dxuig4RY3+=(PAy#NST4#l2g0ngcJ9 z_+c^g;GIPPQ_$a;M%7CWHx8xF5c<#6RLp_h5zzQ>r8nTcd z!&j^(g63jaA9BS5q&O1tA2UV17rb8BLsvx4$Ta)6+*Qd`xuV~<3qM(2HuucZoIa!b zG=AOozrhMlq%?uB!thv^g~*B21BQZNl2 z$)VdN>N+v+#!cF$XNbW2>T82_%SJ9i2vF93p2f^7xA>i!)V2Zrp(wXpI4~*qw)$D$ z8b#i>WZ6r2J2WvKT-ta}*;7sU0;xY_sh1E-tfhzx=Wnef`?EFZjvQV<49VKNNtoHN zd&Fm&>rB$5UkSay8s1{O*C$rjLG+lRut=qY4WcI+@9EDI?rC#_g1AHLxeMqUmSi{< zvmoIXo#GhjEBliaF{cKI7rV+rc2GN-87ZvOMI2W^5~jM;XhEsBMig+|%b{b`Xe!@M zex;ymI+bvys4^tT9Pf*~BV(c|ShS763TR(_94R0LHCYK%h?kuE&*9{E=!*Z#0hqtP znekuRli|Ft0l&}lU7L2WKGX!0y6Rtaori zi6_wJnh^?4yl$gYvOJAzx!Ms0X2oX3vy@SG7Xg-#HhB#zZ$)NJG}7^$8uDZ98B-yZ z9XIZ3o&6J_Aa2@hO<*Y?k@T>16-)bI8ge{@*vO^>Qi#YJG>J}H8aql((@pKbQX-uu z$m6C%DXBghXWG-9rA3+cFy*>5!Cu@z{N;lHw>?PshqZ?fdG9RWH7k3Y<}P1<(tsTZ z7q4y8zT4lOs5L@eUGUa^?j67qHHF3w>}jca1Rb`-aW=CcL)t)z>A)2@!g%)y7ZV3T z!%z)tf*FdO2}Lp;jcFB7_9Ar9@*Qsa!S78Jbz)I78d0d%*IMf2p@e`0WaJKR;`~BZ z&7~+AG*3E`76U}W#n7SDiXVG#4^-(FLn>)z?<*>!rJYR6p&7l5%i_wurO+j_Q%`d$ zw>bwf2hPmfOmGa5=Ul2_BKT0n8IFi%364o8{{SS3J z4d{wrL3_Hptm*~aUIsgGyWTn;>$~-J9QJK2&RZ&8ET4a=l-ZqcQI&o)-BX11zq_y$^*V{6zvT#jiXHOH@S=ygv{`dlMsCpm)6e;G z$J|2qUCVL*oB~)n|6is6LH}oR?Ei6G%};F)2V6*`qz%y{mN65Bg%ls`sPBAXQQveB z+%C_HHBtH%>0$7s)^hZ~qy16mAD&>awp`NBGlS#zmna@}eF@1RGcF1xcg4$R7A|0E zD)~+tAhU(weZuM3ig&m5Oo8zhxRd)NoM9M>416@P`n{$?WuPpDpe4Lu;V}e|Xp&$) z6muQ~;GuRgBn2=bsekM^PJkpa9lZt4wqU7;yM;-%e+pH`{KCz?q@g zURL;^cAlGdYScC!Q?v2dbf_WcfJWzmYQ|-{6Tp2?ip`HJbo!1itqK(!uXa!V!TV^%m97oIT?L_^D# zUKU(}YUvfP;`o8t4Bz3A5qF&;lemo?d(+}T?^4%9?QsR(eCfpA{`0<_h`J=p!i}DceX*c((z@!+y z($*(?GpQ1Wma4CZ+-81eMGSgoGT=+RudQJJ(6tXk?T@)SQB)9h=P$cb@&6k6!`E}T z5BIG_mwx+IvH!Q7_`Cf6doB9EDZdiUemiVVh~MgJqS@7(lQ_Dx3Fkjn2dXX`y=xOrbW?fSYpn`{>r8v-wjQa zyYR_dXL5$M15;44%t-`n)Yz(B;;w9A{Bm=gcKboUHa`5r+rz`rsR1G8R*o(&yRY43 z7njf9&%@2r$)|rNuc_#VtQE#=XmTRquY=M8TU7GP zl~4pLWFr%Y33cL_44FpSjCC$-YMQelOX?t%A&liY1MQY{V4(?NPCSISx8fi$N$x^q zd!q`99VYszgi9Jkb~VqpYn72)kLxy=#$fRVe(zBywFQ^!JQ4#?X^V@OpNoh0?Ss%3o143j$E*tt4l?rL|#OtBF0sYXMEPqh=e@ zlZqAZ;kE@_-dFk3b${21S1VR*;paSs$6B|n?Bhnq2HZj8pXr|%rW>O3GHMZ9reyHe zdQIy}i^GRz6VaPo^Goc!gaTSNDti$?J&$5da|OjnIP3m*Nu7e=R*Y)DB%lE z1*+qV6t5vgs21zpq5W=DR8M7OrkvF68Lqz{c$J`uBJCa^r`5?Sr~hU*O}8YylxoC0%SXiWOJ9|$Cg;%_SvzPCk7y4;D1(ip%lXo1@1UAZ(>v$4Z%WON)I#9$NBVj%hP3IB#$RJw$Jk{LT-xI z{2`1wz%%fj-VC08wnQ1QL54vK+>@@8dP^LCfe~FkST7n4G)rPgNytz+HaQR3)~^#w ze;6E$olKV%<3(6wM_9j^@Kf0O_(O{JNs9KpLK!;tX0NX_PaDZ&AkR)`2{4MNm3GiC zVZ-OD+iqqlBA@22v8F=G8n)r>2x=-il$o4HW^T|)CTpQ+c4DLU-LpxOj)4M4;f==R zwb?0RV0>-U#8ORZx0gRenx)OcY;frv`U*QEd1hqv$_ZyK3ETzk+JRjMM5SFoD4Oka86!k*0SwMzgF&(N6=1mw*_`+=#f3NX(bIn`NzSTjGA zBYYgo7SvCWPq%=oW*fIvVCvXimsiU~np+pxy%;Jy!h1?Q(hNZ&#%PEWWRy4F_JwdQ zr~|2NE?x&J9e2pzR0OoN_OjXQ1^tvm!)b-FanY@;sbVkbG=_jzSE}2nLEySGA=Rak z(wOS@G=?oejew`)6khUB@{}he!2}TxRF+e{zA(B)chbH}aIOYN5C_F`fW*Phk&#@f z%_!^1gUOlf6%j|=;A9s)Y^b$}K5=a*mWXMh)zpkNS1PNT<`$)&jl}SdH{r%!{!@(r z0@s_%+BRv-a&alq+ge5m~H(9 zi|6py6H=V@40C;xdjTMjfl8POZAg_>?aTCZ%vT-|H8P7x(1~D>-Rv z+gY-pnj)kgsfL3KQ#^8SBDOoi3*L9Gn zZrxeS+IZ3aUMp#3@gVi&39qxwsx?mi%w8%t9y{fb+a0Ih`a4@mU`ThEniUo-kaVbQ zOm=fT3tqEpOHCI>{;H2sP+3E6Y*)9?8flY6`1zq&{2ylqbG-nognkR_4TKbG3Q3KCrAT^ ziu^@P?}GX0N~5O6U+|^s-v05F?lQ%e`eN48pRm`=#7cqE5P&Bwv~)?EGFpykOnQ@x zQbOm|y#XfKkERS4Mr{`a*iTD^FDDnry!}JVIS{h=__7L16>j03&k&0rHB{$xs)y8dp zo_7DgU+Vh!d$W0KC4Ws%F26%zeSMypxpl;wy}y3PHzGcDDb2@uZBU23A@;klppDy@ z=UwX<6+Hch3W9=r_fX?%U|wqlE%I-cHo<86Hp`6p6Ae_C*tM8?Mos8l$Lr9ZulI+P zHXl|s6#qu3AB?z13L2;Z3cKn6YN_bAb!hN{Iks8)gRP3B(u^&A*2dDZBm7Di3=(No zBN~$mu`e{c@_3R{@eJ&ZzCj|!Po)S<7jnwJM<8`1l7{Q$^;a6HaE!j7)FnuXPe&XQ zULwu+$T$e}iiG8i{RZ3uM#{bIr%Lhad+WXdAz41;Q12m%7T3F)i43%jC|v~kFH_~w zRpzIA8Vov`pg6=61M|iy=XAK=rF9#Z6#(Qc+fSlB)sBFIJ&cwTn+aw-g%kn%g&fND z{G|v0+EZ$ng&Tz=zW(Pas*^1rUH6qvc~$S)sQTZMoXA_hp@u(kL>cgq|6iky|FoKH z>GHqk9RE!({ZBTGk$Od9{LcD$`M&;hbMEs0z=jIaQecdT+rKIC+Ebd_QFS7SB8X$o zMpOZE>fEH~DgYI;bk4-zcSdR-+7(qKDZi`SLq_2-cqFC+9VkKfwI0B-Qa1V&6v_qI z!Af}0#$NB+0idI24Yj^Ub2x^>fl39&Hn?)zk%QAv@dS@w;f;ERr?5#B5OkRxbyA>i z)!3j8j46pll01^4chCz}=G@5r)NGZHnwxTYGjb2k)=4!PEwz?bRIa(CSw`$htC`TJ z?R6?NUjzkm$ycqtog*}v6}RI_B;T8qbF^s}#P~mU1O%PPRQnXhKFPLY8a{k~&Emd(O^OZvUKNjNQ}@a6c&<&%P-;V6gy)GvXRvHD-B4tkjplqj z2+Z6oG81fWPCCcWd?Z|}Y-`pB%XI(e7w}bj4zYs-0vh->hW_&l{A)Z)(b%@aVMqN= zL`4hgTFPamoliDS=KOjGMFV>vC zn&p@YwVi&O=j7sgpW*Zy;iF47#+R`UHTe!gxN2!Y1D$SpBd6qf40{VT(c73{WJbVG zGplJnx$2y5K?ay#)gU*zJ#cEvt-CMUmt9R~JCeybXQ|ZgHln##v*n^qcvd~EOa|2? z>k9~QUNNa-Y5%d&BJ-G*x#<|l(_*?=ANV-2VXG=Uu4p)h)1EP~Vat)hqE4G=w!27K zP3kdN?N(tm&xh3<+n6Ltvdop1CE~41^?&tMU4f{V`2OVFDTn80)jD(%G0kQ8;vIWGkJJ+3fnQhgPEya~7GA&23Q0MVZ@% z_G8jLUGhF4W66&YCg?QcHl?Bo#*&Gn)j8X70%ER1?dy@>hPpSbokvAZjb5BZhWIk3 zvB15zf$B(n_R<#;K}=;E@;vxdb&$BBuS0@ns&XX^qo;mP4SL4UzC^ecLoCD~og~A} zV;zaCgOMGrjomUnFWK5L`I##hsKTDM1f9E|SRwo8$T`^9DSC%$o7uQyHWmaezw9Qd zu<@pBH{%9;oMmto)dD2>_QL4|SKc+rg}l!2N02a@-)J{36d8FhK{_v8`CG(s_y@oC zb-dKgH3waX{f7V(lxA=>AVcH1t_(b~7I^&xju~Cu{v~wL+AGN61#RHa&tYphVr1;= z5X%@3o&~*|j!7y*W`zfzkNFnZX3F)=SY!B7`2OqIR}e>_ujy0ThhMhD-^rM2(>#+E zJ;9(S3G@kaoJ#VSl0n*2A^y!@-coi7X#Fw_gYpx!^=_tD;gBXr#j+JfxV_H1`cX7H zCyAZyM3@zdAMCrzJy5$(8M|JdUMfvk7HTA3Zz|KafB2~En>lYV>^}$A6qvdjh-d7x z!ZEINHKlIFUpf=psEuJUE+Sa#Y0;zT#o5r*MzE9!7Aa$J&Si%J5=UJX?3Qr${PNpO zany;&V=|LF;Tno>r%yQ5eqmORd}4<{VCF+bkJw>Kt5{naAE4DBNUhTA<74PcNplLP zW2ncEK}aAj2@Cug$ahLEVM4+lEv$+yI@6(1(RO)GekG-1K8Vm?V{Vm&Z`0M4q7N~| zE6)S;Dd3&FLp0+IH3`x2sX_yINh;9)jERZTWJ)t?B!{AEjIEr@> zm7>L1VM?)72HEN!LTP6?*on7A~qEHB)s8kr?zM!TuZTu&T#Yp;h6C=wiq^bJI*@YHkb)Nd{m zo7Dx)V%!*rdDRQdmnG)5Vz;JBcI@4)RrJL#4ey zTdPZW0g`!<;%A6vJxM6>eEq_Hz}gD+jRd0F)Gu%R5NXEXESS6+d;3Cn2^6a-W|H=& zsih57E+F;kH7bFGpWxn;wjBvz41;9c6H{oUN1lQa!Si{g*}{ZRKT5GFf7T?{OQqvN z?*khR;z46_=1B)xbE4v`00at*gqk#?fb8m^PD?eqVNQ3@Je(p9d@vbv^=OX=MS#)&-L(}!gTGvqD0$4<8EV5HmiD$dr~3ft26Oo-Nl$YTH(oWr zNzTeg>p)oMlm0j_97v$ZGk`3XV)uO75|`;HPxu!KRa0bj3zjn-v>b^5-+{$Eikt|78succ>ETY2l|TE z_&(W+;0YF$UkGNEEw3i`KVYc$|yX3N)JK<#eUmVdcCQ zJV4vAtF3F{yt1AZXGlf#rCxFhRqG0K%QCJMkTM1Aqyp%&4FBUlC}1XHhMuD14aZ62 zN~M=GPm6u@;~3n!=i(ivbd0Ll1W2$zyG)4i$7*6H3_)K5T{d*NwOap)Dvwa#b-iIh ztfXWKU+OOuiW(o5`ktpIjibz3Qn0dUQt$S^mqASE_i((Ds{sptJF*ji41Z3s7+!5? z2_NKFCc)W>efyZ$kM9OQcaQAwQHLJ<|J90~mEpf^z!v&Dd@{a=^N8O<(|`K?e?R}< zt4#k*N9PL=lt&T#pDGjmaiOGbVo{hdEh4)CW3vPY>*DpMThjFm7x$!+{8X)&C_I@+ z451hjQVI~Hu@UMg6F}_`datfkh{c&<7x!b{?w_5kZKQIjK61~lA_JSJ2h1%*_x4Ms zbmW3nqbOK<_9X1UpLRtU2Cx>Wq~$+^*3H>I;mu(jU`+)aF{$GQLRk{<<&Np~NQLA> z=1h6-LV_3sgzkWFZix08V|zhv0%<#YCo{~6MRZ&nZNn0X2+_l#=2c=AVjlQ-Im?`X zsgPxVaY?%f5|czmZ3O4+^yyd4=g zk!g0)fDi_@kS=5+SJ;zu9O!ic1v;n*s7Al1T0Z)K&1I* zyaPz&HzR7A%~^+-LE<=&V0@Z825l=Rt;4Hh=g_4oc&Q+Ll6CQl!+$2|MN`n-I;Hf$ z_xFjSIVYF96rUM+byBiM3jrk0l91<_5f$d65Ig2zg?2HLwB{TVDijXd=P$+Ze@#bH zV%lus+xRiQ&kg0tJ}i)klX)6EF{ALaz30rk$9|>j>St&mytKvo**$ICuYBa$_hI!| zKLG#&{?~ULZ+sdBNLrX#9?NI=VtowM_kU5bma^;|w1!9!WV`K?Z~-cL&zWnVW!{vpb=wXA=7uLf?ygHoUXEzz`<$5u!Gy3uzORYfDQN~&(&Fg->{CedP}R0*_O)~%^-@NFoI zG4EzJhN_|3|4uLmBDLMg6q1&JPMAa7D25MZ`;&${66W7#_V(^n|E}Follij)(|7MFjvuLdCu5=c*iJhnPrtW*YGYiYih=k zO+jJdZdCu=^zTtA_|cWlAGk}gAUgkws#E&_23u53y$rKX!=}PvV4;?^_DaW*x>C=6 zv&xwTvEKZOsN549sTOCF5y(i;p;5kJAywSZorzL7x}nFdM2KWR(YfWK|!nf1#{EXpwX@>-ICshLc}Z~#h8 zz+k3rey?(=Rh3t3n&wD5Z%I0i0#l`FmQ|&N_z!6-NbesgzZ@yKF0n98g^P5rdIIMQ z=JkHPT3B4&6641;#6#5T{KUk=?qrw{tF7-(+ReK!fzc^{Eqe+XcbtV3{g%2rl_b zvH7UY%9{HS_O`Rs*6oK?yEpaKbyw-G<%!D%^oloy7ir=UkaP&2)PEjFPS4sI5GA4l$N_t8FEQL z@Op!|&bT#kPxbKH^M72Qz=VVshlXPk=}rPU@Bl<8zBE(~pD%!Et0?%QOplz{PEZx{ z>nvA!3|SOEt3?~77L_N)q0186LeGs0l2tC?Y^TS>ZIaF+Z^Kyf1(axCE6lfI#bh?u z=1xuRP3IhX>#oh68QQj|Uu|TPr`pLH==Q2Ti5*;h7d5sl3{{=YVp=6>3rXj)c?cJ` z**Xjv>`bo8-g~Ki?m7C~57KQuIa4<++B^Aq@%QGQGqkpzDcE}=%cOU~Qrjto5xrz( zf-yhAYsncsAg#8Xb5vI~ohP;1S3|LPURIk|pASDC?JVapuj2 zI{oCD$v$&djD8wRt-_I_K;=2+xGvmwY&9IE7WbcENg7iQrjJpdgdnJOJ&$Pb6k|G# z(((%yF0g&vO_-jf?!DkO+N}cLbTtDJsckJpUwq;wdB8X1+(P;N$dlGK3g!(&wWN|& zGD59dgdov%=7K6dGrx-~B*S!O41-mxzqM`-r@d!eEA-*6%}mXK8!owch*5tlCFEOS zd+B-eenx?Hd@Ehgr54HN$FT=r~o2;y=r?F?X(aoso?Zx%5V0&4JN;$6mU?+@$I zrVrfEet)s}>o|s0WYep;<3)Lfl?uR3)0Xz_@k?6jTwA@YaRkI(HsD|?A=i+MyH=YW z!B0&eo+tacRH>(-BRMWh3n(r4{loB7@*S54kQ;2e#r$-L%rdFkFiZeIWR8$*Xpv-YNw*Ph3 zHqP8zR1V8%5GWsup%?M9kjlmUz?AbX7)u|T zk(`an8pbHFZdvBJ^{G%g@2wYtGxUN6L-I1^rlie(9u7;El#unxP$~RO?APs>F@}Mh z)j17!a9n=B+GA9fab^yDk8rk=<)G}eFD#01-khb(`Ne2k+;CNMnt#!g!=_&Q6Foc# zKB}sYB0FjTj-qkRjqLFbe{VTBSAR^9ZmsK<6G4pXl+$PgkRsmB!|*?*m;BnS@Dvau4;69`6;DKsC! zavnzH%@p_N@hB|331|dy!-*0E})5rw-|L;VycDXp;b@0{C89izS`kk%;M~Nkxqb| zP=;=@5zWzK**d45Xs_`T#7BXSNG zbd~HwrGCeLpM2T|T4}f6T=#@~hPVx)IK!cMlnl(C{<|ME#OzMs#`2fzpj_PH6}Mya z58vTT?aZ{pQPR~8VPT+gAPCofmj2Zc(fM%=#<;rtGe%FP<fdLO z{z#`&)6pKmyFQorT?95VowVDM3Gd)Q{V@IyyCGJ^DvHZYgcv9&!y^;yU-613kI2N1 z4F!+)8cihC><4)oHcTWxg#X~iv?%a43Rq-G9Ob3n@fNiGExP7Vfh4IlXI-9nqf9hy zPhne5#(_gFS5ZeNv-3=Gn(mE2D%T>Y0N9}yheP*e{2ER5nm>gJMFKuCL)no6KO;R_ z)UVGivk7nXt(Hq__(Bc3uK?)ijE*p>na8k%QYaX>B!zdVjt!Q{Jvivfm0Wg57A=D( zle8O?jnacVkV_IphM40p9;DlZQ2~`#x&3gT7u7Xiq~$O1GA?*=sB?2Cy(&3##82lL z>{k{1nVlMSFoR5t2s^=-o2|s`Mz{aT6g|JkMsluw)b(hX>9`zsLELrngJ;eraB#;X z?2(dS=;ch&gx3}W4Jvk%dQ_i2l#v^59o)QltVG>5R-Z(mZ-8_mzuR^|8qC0c(fx<; zcz(D*`rrxVfm*@?O9KfV)lWo{pvwrQF}lOEpIhtw^Vsb*!OGitFrHe<%tkJR`A6v^ zc_k}&J(W9ps7Fg7q7w}7G~ikxuh^CX4wqx_z+F(Bh~DmTl0#GizO;&WwRb|I6|gbR z;od114=@j@y}y5?TF(-e(X^9_8-*naR3SqGY6>sI_zl|1V0nH#|MZnpqW$wjV`#Pl zM&+?FX*3K9Ta(~=&l?j!N+YbrW*3D0-K?jsJlQ#7Q1t4K2-Sad z=eSnysb0MeP4Y$CHdaZ`9&fMm1)6HD$>EcbBYys4W-E&>l?$}Z1r}k4QW5bDq^J@{ z)c~03W2mcxL|ZoB=P32Ya26T^P2xV5p}yNZmV@OC5`EQiYr(a=sk_H@wF81(U)#$S zq@6JlvqR-?#z_3SmNTfNEtwY63btB<0)tHb#L)bs>uq$_rwk5oi=_N{(ZH-pTK+2R zo3Ba#rrwhi=UM62fcr=o>?p9vYrq_gDxJs%YsvfxMfF823F`I-Hl zXA6A!J7pelR+Ja{FB3KZK?%DBX#SjX)HB*pIf7|kq!vv&)DyEkI8L3&!_FMtAE*Fw zBq7IMoO#vA)U#lYMtz_CnPj1Na7hEgr**4i54U@Z zo6!UsM9nH?7@PT?d!x5urlol$I8x z{s7+P{7^;!#Zur00zVqePqTJ?m|Iu#YZe+(_s0fC-VfnD3U)x`k{deqhgV@sxu-i&lQ!Q6h~{1#83*Dxxz5ha^CN z{3P6qjIRLC2&g+?Ng}#OahT4@4_QFP5i-QFA4r!LIcqwq7KkHp@MY zGiZuiFl5ezm35xAwRi8n7B@+k{*eR~3mjX=Tw%G?k0~PM=fg;lmN+J8iC7>up{e>d z-O|hijcuS};9QVMA#7Ql8a%b5y|REi-A$G68VPnmi=b2YV^%Bok~PBd>?PM7!OLN7 zW7po*>!uZQ+tC|cC zs}?%*gzu?`8hYQvLCo!L>Tn1$ps~GplDn7Nd;ozin{LfVt778du<1wgU_^`Tu0E+ zZu>#lIOqkZPEXxTT}{!{MUZZ9#;J4xBDC4OQn9MyjhrlwKgs@1C0 zMtD!88PaHj>`X|I;8LP{=OXwoBv!s=#TXG_v{|ta@gPr?2s^9)g@W4br0?8mg>of& zZvcZri-t#&AjE%dOoKv$(RcR_d=S!)3Y6j+A_K1g9&)D)u_MD%@D|t&E`v{#^MHnq z`Rkfg+~)B4Zop9PNn#@_etijyGO~J0OTVqD+2srmR!X@W5*TCrKPWq=Alc$I%a?7P zvTfV8ZQHhO+qQAawr$&0r*O(Ob#G5Z_wDJKxRbFXBVTqtWd8TVZ+&Zh3vt}=)7zwqtif{#Myf2D4zgan3xN=>NG0LPEI7bIa zot6&8Day*w!$$VQ!okL)1`2(bw(i^GDa+;l`rz|Dit2LGZDr`fr=hvS(aXcf!v!?= zCUQ9Cc1SNx%~mZWxCDsxj{u$EtAKdOB)QgaQ!7PNkhM8#`K_d$4SC)()Yf-ht;p7$ zLqI?BJ+?fV-P$&5ouPUjizp39n;Zk&}s;jr*uecDi)wQ(Y zF6xoW3Y}fz^$WMG1|`aCmt-x5*xmDI^PJS-?RdWVc~X1s<8gd50pK73=92ZJx_hq` zJdyGIfIr~wI*9-quTIK&ALxvo6F4^~=}=$t>H8~O>WF`1q?x`N5Gv?BEe#>xbex^0 zU^kA?9j0|SH4>E*^*}`eqj^-=W?UbwPpneiquiyf;2qh@9~Nif3wM5H@Z_d&7@gA! zu<1?N7%>U1z`zZ$EDLKuawd5}ZbJ_4Giq9RH8k}XaQ7dN`sSQZFXz%yOTPLP# zoco|}x!{5qHXb}iiub-bb0`$>BcwqKUDdGJeU{3zTo^3$-I}RWW-DRngc(ocl@sD8 z1FlKOJi>Dk%BkBcT8Hlp+&uNdtyWpYmPdS;=G8`hyNH|k=kw%n(F_(wWa>K+qz~|^6zXGkjDaQIHFT16ngBXq<8ls)`0ID23r~@PL zhsYZD;j0UY2sv9B1~IE*^vpowHz2wYPsn#kBAFV^k=>lMqt|*V(?-67CZkD=>>63e z2A>gIFYn13C>Bp98!2>}r5Y=o@r_yNZLTs8rT3x^6f2QDw-Y~3hOj5jEoqa3hAs>s$9Tu11q=(=z32wE ztQ|4q>hJcB?jB1ua(j(vKcB8UwX=vANY}C`=cccPN0zN?;e;MLRLj>)n{LGM&G+4g zKZL>hc_k`y6>a~_L%HgJcBZM;Q*G{)QLVK=xoTt$LZea#GN{g;IP!nzI@nXSqSxg) zJ1dh7kOg})M{(b<^@7J-1b3TRSJ;mpJ@bpztU)~_Z)bcQ@p+f$q1)(YE&8-2H{nUt zl4~L?+eCaO3cKHQY|jn-Q7ciGPu3qL3_9gp<07i`@<$u=Yfd4^0(-U^V9mnnvA3pC z(Barzn1a%F8~z2MM1mk(o=KX@FllJz6kLHNQ8@si(DP+X(b{hC%gI zm}w_Vh1*&2PX@Zy7NRtPHR0H^lA(Vx$jh2Rxm-zHhRku`$rucG*=}daZ{PewiSC#F zmo$#bNKZm#K_FqQO-opSKY&a&vBh>$Z_EJVGB6nZzTj(e$n0v?9s+rrCYL2K4eBlR zbVw8UyRtzROKQi1()9!Yg2YV_;z_a<3&44mHz59uHSJaMfi0WP04>D!O=9*vY9qeJ zvqj^t%~s{P3vo)cm)g>8>EGVcbQ0XXL0DL)6MkCtxJS`PHT$PWesI#Y0`dS#5}cp5 zP6KvvQ-3KK*1jQ3xwrpN%m# zu+AXD@7)Z*6-!O}lCACAn{*JUD68 z;2NtZzsN-vC=Jo=>-}Bzbsng_=1Nu>Yv~5mm08KvKEh;+1>pqefObzhntw^+3(m@t zYMXS~M=U*BIydu30G|yKXa&&8JCX;9J)_)9)Zl!vezHzQxZ`AR#$h}0Jhk*yC%xb} zK=rnxzE@ELT1kDvP-4&p_be`~N;eIJlc|JAq^Y`B3U+y=D{H#B+b&=D$><=M!_0c; z+rT^MN{SJ*eUY%=%mr!dRtO=8#)Wt7tex-z)i^B9s{Fga#{IN}*QJwcDy;2gi+Dav z*3B!uaDO^qz{?itP$Ku$0l&#Het>**ae+B<%_&`Km)*m>sV*=T`Sm4`T<_1)S0m{{ zJ9C0*#PMd!1T)#xhUM<4;iLiCiN#1@J&crWgflezbHmiR(D}3~ggB!$IOR=oMx^=p zTAcFY))zuKB1=fq{^3$Hv8xkp)PUwrQ*jId&6>28r5T2zpsZSv$SV!T`X~XJSvY0n`pGk`+C%MiPPv z|3~-15em1d?qT#qhjsLF)dh-_$X9O0*S%aWCm~c65~9EKoTdBHLP=$U{k2ZV9k5~+ zC3F*YfH>HE=U#wB-ONp|Lz#Wjn4(O!UKn&r%X3wV;KyAQG#24YOH7OIF3`_dm9@>Q zf^?yKaiH`d)>&wv+(WGk^&n3JI5Uby!5t^2yMu*NzooEJ0*C13X>JxUl3Lj;ZEth` z^6*FxuWc>yxF(htAZNl5q>W<0*Q%TW!^|-cF7tSp&fEwEhVW2FnE7o5N!kNB8b<$( zxO7_yo}ChTGHR3Pv%tnW#o+iVS5;&)!kNDtkS}u^A9s~o$?wajBTwCPHB7~<@ zPzpIPgItpVT)+r`fTsbbidVH3-aA0gKM+Q5Q*%#DH-&QjGxT9+xBc7UaAO+u<-w~# zHt%8UV;gUXj*kZ|N@M7S(ucXI6NyjsBC}1|cv7FgG;9 zv|(TUree9XbmsLg0hY<*gyqDI|AYOI@26eIhfUV*L$TdPY|9se!P)&%MiwTFG(VQq zh}Rc~^_6yS>apqS8m`4=&WV09`n@|hwh#6y*y*quFM5SlPTvphWF>t5Z&{A9@#4b4 zEz}nA>lhj<_uruT$g;1ie7Qg{rcqP}mjL3PmQM!HyO9m9jBIyoc(R5D<&6P!+c%oX+E~(*u|U*)nbwL#SnuJrMK+~6r<@FFkNbY> zLGZR#x=p-xJodb*#VHvplpbMvCIO zr!nnwk-OSmcZRm2hb(3sy&Z&3Efe4WTu%A373AmD{Ii_$pCA7B+kf#aT3P+a$UNx( zjGz4{c>Lr3>%t0Uiyw;K{MS6&&;9>1MgI?9_#b&T1b;Wa;eHLxzLdpi8phwUflw0H zgpQcTjOMSz$nnA{#f86m6G$tAZn6dA2mfV@4!k5 zo!9JF_7h~v>ja-hXCvs*FovvQBIe>Lh(Xj4?jQi=yro(0K)eyl5X~au;+=RZC#vz` z2x3(s80MlIF^IwB7gOqeL^aE1GpD&{aa6}S1w*ILXcbugZauq>Zu$xiET{bR z+?4PiY(`62y3m8ACdSQz8DlhH2ZNwV7N?`Fu%&4~5L^2r1Z|u& zm7l&tGSjB=cOM5_F7Jy>I(36Fz-{kL-Uz_MX}!PK$j)v*=Xb(i+nP;Yw{OE;yXG%* z1nRUkEdvxQC}40)lsu71*p7w^aWTQ)2k_(H1S?1K!vB`@Au$;FA!+O)>2e%#g%R!b zxC(JQ@#OGPZ8g82U?xSGD8_XH3d2U7RfP&AOnPv7a=31Qf96VXxk<#tg0eWK03UxT zQ$*H@k%vL;{?iIv@@eyjE!wb!1K3Gp7dh#$1_P+m(;+lX*$I}&$;rmnoTchi|5mb| zg_B5F+sy8nk0qDtccp>tbcqK4{SI{$qyt*8E($XJujga`*AK1yh4f#G2gx9$t(0?) z7PT}naHhv(2Pvn|V}(%|@--$NH%r2i61!hpp9Jtg$?0cb45Qd2>k22yw%fguw#Evt z3Xehz@9_NwJ#vRT!}p~cE584wy73<;_X73esqSY4u0isz$ZYk0LFWJAbfAO)qM9ofQDT-^ zAh&`3Sx9d%9!@m>9!UHO@|Ku2F>RNkwcx10lXg6rYM*V7(M6o>=tiy(WkOV|>vB-( zs<1*bUy1k=pwYG)C+B>hE`8W5YJSkZsEb>ost##&=h6xkE*&sWrzY` zGPN?jG4nSNa}%E2L@baMCQJ1f95xgJRUF&wu_hA?8Cb1x&F`8^Gt?rHAvB8r?SH@% zB)EzMpU>lOH&_?LoqdO7i2luzRNPI^*W2BF?KxCkRW#z==YRh(opO9xWwojY9(q2; zWq^OEF8n7bHj;m7Bld2iFYb2Pf3j~AjT1?iD6u}x{K$<%_OePp&g zwWxPByIUK39Ia4&w-KbOZX@(+s&%U%AS;0w|G07qeg#N`SSGtHt!E~Kg0V6)p|q9M zu_nVihQ!3K#upZ}8KVTU7t$1^M$V@*)T@D02Uu1FcM;(Jns5O)kZBe#bdi4`1RNlN z;EaNfutdh(2aOOvx(;@ir^&~d<>-4zUC3FJ`61`w$HPZ%o*O(kT$r0Dc#$`1pS4{X zJh-2qdbzJ^Tpy&qca_gsu+L`RJ2SWM3$hyTH~~LgBpz4*&~`^tx1;?}7Kw7bdUuPj z&QxoFh$wp-{)&J;k!-0ji28N2Wj;J=D_6uNOdNIT_t;pf;VRZL>$$$bl=lmPk4~sm zn)l;8jJqE~cqWLRHF&O_w?eQmRDC~Vx@PE^_mFrYG9CT9I{^fiC%NrP%dQ1r{iS+h zl!#}c-%{@;pQKlQ!j7?u@+gPteu5G6T{*hHWhVZi;Y$vAU|xUhnqtF%R@e(AF$1S{ zVXHCy&tB0d`FK+Y*E9S=a#ay&g{ADnt@#d><(z`md)_@xiM+?Z@8B51C(g$Rl+5H{ z-=KNiSli5HQmiz`v;2WPeO-CH(w(vMP&#XtQmbLK62Wo_J|NfM1fQ+nWCBrfi*}39 zsWN>tfI5{y4$7*Dzlt24wL(>3?o&T{{X5CL?Gi?G`ttgX|7NCcCO|Q@_y!IXB!K;0 z2m^YCznAh`9at|?+Pm=Nf@xN3BaZ{qD>Li+EAa-yE-~wbkER7FE^|4Z`pd?&AIeD1 zGXa-KBKiF4RgE7m8G>{Nx#=-$YMT$CdVLh&4WJ!(C<81`;}rizTa;*VR2dU4#9dFQ zHrBQAB`OVZg?ue=)D3%UOz`TLaR~HFZik@TK1jv^xSTk;sIHHM9R)SCLA6|GsrVINc=6i0j0j@+z5t`Rlr~5m zQj9JV&S@zQNStMmZWWP#iztPvfo-zCn0+#Hp&{7TO$4aZ@t^61i5kmL_{9*{)W3KT z_>bK&(4KSsLe$a*XI}1qG01bn-5+O;XBFZIG{+*5G=x6^Z6mPwY&KZ5aBj`8V>>hK z1*}N4dBy*d<=;kmdlTEe{wlk&AKCrODP2MQs5xjIlz=MTMUTO)>gKqI|K;&b`@&sZ zAM(et9A?opW|B}CjL(q;v1W;MRY*On%jFu3O$Z_ybg~r6*@i5^p+xE+tqF`_r*U72$foMRZ>HB@+U> zjO=rIM^{~Pt=r8a`w1(nKVNyv8Gi+lvd9-uOKmGd;{Y+1gI0)=69)5^NukmM@I&W3 z=YGeqS#&i<{R(@_eN294P&Q;^k@NXknqzYosQm;n)oU#hFpR(=Y35`!m6`%IMm^V| zkAd?K*pCQ<`h=fYX!1e5cV{P5`7-Wd!Q?n6o|dgbi<1Tr?OSssY+~ z3R{0Q1ao&EJmMmnK&=TgSPDh?_=|DRYd`hZw>%uW6bE!WzK5zUF(%;-z&6&lqd5XL zvV03EhG&QvRu*>1AWr=-m`c!pFQ|;lu2)Lj+c!{v8rW~ zg}mhX`>AeyJSHH?JZ@v}Ct$2h7OYq#5DP!``<3CI1|LM4(Hex(HZxFY$>d6`(o}3e zcZ zbW!9JAM&u>qWJ;u^XJT+{>mZ|1210;nktGkbgxWN$on&ksXLm_BL%V%h%E7a4Ggs+ zN%>Y10_yQ>FD7^XrK^4+@$j4x?iaT(kHeGDuN>X=ok(Myfo@P$`?pyYrzxR2^a~4( zZPlmZ3?gE4e!pb!b@_2}G8CR%l&}~WnC4L+p5i&0TgFajzcj>dlv>v{P1u^iWTk6L>QtW$(RM?Cw@`d)KB%0j~&*B=Ac zqqxI(9QIr~sBx#5nJ`lX>ohtTa&s3ym2^tc`5~bouWKF1kU1(znRtAZun>Z*-J$ zV7A*Z^*opMWXBvEji3%_FDa%}aGei~z0PM0pxAW{HwRKb5W{;E%GK+Q4*F9-wCHqf zG0i0f_@Y%%d!K+$Sk$EvoKTszI$)gPVoo}UN7nkO@`oI987R+3m{1iywDMBLS(bjH z;P=iT+M!;ai#-ZOT!m#1!(-|e&XBcLb&I+OrcjdrYPKKAOKcF6b5uM6Y;6zJv||gc zOI02&;>mo87W}aigxFtd^%d_w&GP>*^0)an$zLVqk~!#y{KNm-{M_c>C;yaxou3o` z_xbsu@jvJ1Ec?px1%f>J3xQC|uEWswhjAd-?n%cI>D!!&M3f-y#;&JXcD_ulzw(I| zDvk~#LQ96Tr0nImPZWmqWsJweEoc)r1Z@CW-Tfm55a(zl=a7S4CxG6n7-8N06%(*i zGo$RMp)OP^eLq<_q(#6OvIGg4jiJT^sUSRp{o{cC0slb%fPV@9ANY5$p-dvxxKc(l zEXSz8I9K8fNptCI25#+*SUImzrJ8*pb*h&k7_B)IEZ4-+HEX%7+rigYYfKR?M-lf< zcaSK8E9+A{fLx0wCrS;9?;Am)C<{5BCRydiVB?RFKb0nIkN*7w|4ck>)fhO_-WvRu zhLB5}yzag@H_bk?cJZUFtG%0>7lW=|PEFg_URAu0tObjgweCK3t0jw=&7EBJH!f_w@L2-%}uaJqGEC*vZQ)1b`5W}GHk_>wU@aDC~*$oT>>Q{x*{}`kHz<=03w=yBd zwY%B{y*ZVe#-QXx{J?*il}-*ysI;K8_|Z+Yf9Q&_!X#2kNkx2fpg_2^8B&_e{XB|S zDY?x3ILhtb*92zz!CJDMw8x#*?Hmf8_DM#RoXmYjBdxE+gqpHJq+Kby6C0VV2Y1xp zoV_ibo^-m`i|P|>-`uP}N0dW=*R-nN0G^%|p9wswH$x8MJNg9^r={*jR+NQImF=MpnMc`YzF+VKhvN5MTf-cNj{-*bJUYCyJg zx>7_ZsjjN1s`^1 zKZRH$W5g6gk@GH-2ZlQTG$Fpwerz=FrxQgOe5|H6dO28B?B1&37`9>t*O15oib~;C z*J|r(^?uOOOKb5y^Wch5ALacOhA3opOI@;pOLYy+C-FPl-QR=O%Q7myS{{x+9!Z zkZJyF6}2MN9qn7Jqf>aL3>P**uc(6fsbV>>UpH#a(# z?9eM|{;sTld;H9p(USuMXC&Wc*22Cnwd)ShV*HE9KO-7%uWFv@gQMriOwH{9VE&+{ zmddC8xyV?VU8A%8d+MaKueq?JV8tucPiT;Dif!L>R2 zdlM#mFC2hcRhV(i^LMd^77=^iACL1$)LfL}_NQg%wpGVsEVZ z2G9p@Moe^cEIC?fYwL_QO}3-aC)qjat3Tm;H`1bf=w*OX+ht({-8g-EgKwYBFmmG- zwq^~ZUo1?K`IDcVCm>M`^Hlmdec!)A_ev0gKHaY3L-bxCAu7h(;6q%z^qL_s6MzFxj$LRLNg| z11cl#%VuNHQ}$t&0NQu!g6a|Xf9nMs@RL4V8-K7pah{Mqcq#=aRLg~}`2>21R&TMa zaHpW$%uOI_a8r(ora*jmlwZ_EO*r|MdSA#tN29{b_ld$O8BHH9G^)7HE_GsR)qcBvhS$jIg zx=NvmUH`Us^aT0M@^Ija(8W4|vyMhFtS!4KYAHfQ5N<83o$%O(d8Av8?1RRnN$cp@ zOC)sv(U=RuN!0FzBU8ul7oBzRtI>7cqSU} z=yw7+aPI7Zf_Pah5k_yx6~ZrSqU6HCNtwBFk-Ax$F1%V;W1a_>zuBH%^|lWWADPL;+C@}oIgfI~Lt{XeV$faM7|BHTAv}V_ z&oS`?>bIK!0*~N)73d%?zjzTGZeW53dzsPiG#f5mco<4Nr)kmmXJ+|AW}0A5GfaOQ z6xmzC`5}eq+3xcUJnN$UI>~A23`Ttj4@}^JGn%MJAr;7HFn*JhFz7jmR?TGDEbMZb zUm{ZHikG5046x^O;FbQ_18h2|IXHUO@d9$51E=eO9~CSZ^bid%o0FMYwvT$5NY6dB zKBJu-D2rJ)2yqTM58Q6#&B-}zh}n`D@~GWQ%zI>#&0>du=8`wG#>J6O&XEA9Vv?ga zhb!gU$Qo>3;`D8a3e_Q0rF?^|>o+c#W%786Wj@Kc*4T4|Ac0|+VLW4R4KUtHFEX2) zVN6rT3!aPU){(%DBE~~*!M`lpkQ3bwUOn&KdDwswlqrugHCl6*&|ovB&9Uw(G%Q;f zV~jmJreQ{uJnV7&HY0S?AVW%2eM`rMlVG^Bw2*28CQ#X7YHU#}(<2qiZE~auIUAN7 zK5r>V$u(!RZHK@TDtiwYc4UHwAIzFZ){sF;}1toV%{GrHCgG-LTmBl6ASpf3eCp&VRj99qQyc%gaj*=J-_^WkG@$MacI~;xg|vONkJ9*wF4>9w>|7Yf8;+WS zH{^}SG0bG{hS2~D87U6_TM|B!3T}j4GRoN(AwgNn&g-A((H@8DA_J z8r#mPLi#KUiv+Jm#({%3ely=MQJLU9q35%j;8^@-vl3gEeZM7rADjR%DqUKnQ-YFP+E0t1i0 zMs{8b$z@sRuJ??ulR5A*DYXP22``Z7tg)peJ>)Vj3p3qjc9DoMnKZ8QGH-qjl>RE; zqe8s`x`@36e`D0WarQvn0DdzS5q?2bgzr6e%%5hZVfCd79;5}JiBL%IhS3bIw`KxK z8(l+{FdgvkOExssVGl5Q=9Sn48r5$KyW#hLvF zcD0eJMPOf54W;{{WLBq^QjkoXp*;7Jg z&KJ9lDPJfz5XUPvlsmI3&~NCh1v+D2mw& zV*U`sRJ`bIT&$(psok~Q~U&DoTiK@jPt-zbP{{E6&23efkchRXbWhPLP$HRWR==penVdIQ2)F%}$S#u1 zW6LkamNtHZU=q*-Cxq@@%m~Z?0pQyt9HuW9fVb z*~0uH1sKm5c4A_?3;fxA?Zi!YmUQJ|%lqEoV|F4&30F~F$T{$>`IkeZUBG6y82&5c zI8R9_fovpXi2}FDO_JO!+^qNUH)@m7MYs~j2Fp519pH{Z+4*t6EB~HKC=TW?^&a!5 zyRh>acU8Y(p)bCFPcyLnH#LJTuA=pbAI-q=zi9@x|Gs7rqx8>!ea~ODuH-0Emndu& zo+Tg$;MPzy$THIopH11uZ4EP1jSEP2e+Ext-L8mW;X-3fLfxY}=?{{gj8+grh8u&n zhn>GYe|>gsf8`T2HXH>N{743)Qg?z~`w|2CDn}N17PJcsf);=)9>Em@yz;0dX9R*g zMul41o#2myMy6m!Ikz z7Od;I3HyDGnPlWC;$JvV6RV#``WP3G8*nS6)d2;8u*8dV(PZri+E32&fh31I^pPS; zW>ZqT(k{6Srk4{=HvuA}O5|(X2&~igHM((HsfHR*U31%5x$0GR*UH(r_9d}2vF6NK z(gtPMEEgOfC$JPN1 z@LlCgjlmg{iE6hdm5J-*s3Gwju6x0r+A8ve!$;&J5j)y0)p<}nr3b=^5j)9%7;7R5 zlglV)83`x?ZKI`6k*rp_LeeIy^rtIW)Lj4cXChnqYB*VtiLH1yCi&RIIvGs2uOM$1m+5`l#LU#p)FWbgVn!1`vnE`p)A0$jljs(D)@e-!;~ka^X@O3M zQpd0@Wb!kf4W0WKFiJCf+8O)T*P`9T6&*K3K((FDmX~31c8UfGKj&+wo_BPDY~5(6p&I9y%$_~A+$R?Lqz||Czcau ze%#fHpyb>|6GnYmroB7bL~=VegoL{+6SRrr@=FkGc}&7+AceT1=pWZ|zEdW^)bWe8 zp=rW2jcom_DcUL8r2qZ#)S^i;+R6T=3@g(& zY9|YuU-uMyI@H>oR}R22I00y80^6KvRJIw2da7i8{h&?*wf5Yk-H2>bQ>pfG0Q^Ng z9Q+31&@_xd7g)Y~Ar0Z5PGjBr#5;oQ17kGwFRqd_}G0(Mcn)=dI-W^;b*XWgyMEVC6(b^fhKz+EC6 zB_<)_;${keoXcmfL)J4ko&0hHoSI%kO0cXOfq|&5DlA$-F078LB@*;`ZCCp_2X2QH zO3=kH{nX_J=wcgmF`_X*hAhT^0=j#bn>;Colim)}H zsAYyB1N%&5xqs^If!%!PG{X(HKG2ijmep*>{~deg1=-jNGi+5ugSAz=#b5<@K1k~E zMOtl~w4Qc}f=~zkNfxv-i-3G*8Cme0X}szk+IvY&0u0g0CW=&bJuIP^h;y@gM=W7? zjwQ$?4}EqkBx=3lpyJ1)VIm@_i-}{;#1FoInlzERpGyuU+#a1s0#qD&^_J_5i3X#5 zL56$vd$8rAs-@vE&+rN@TMNws~CqFJ50D#$aNJ1ydVpUJ~cpVG&~NrJC?h}0uK6Y7Ug z9to6hM*;U{&Q929Ervi7g&%Dxfuy$iDE(^V$b9s%LC*eD&vX$tT<*ghdU~Xy(9=-k z{dbC7!jTJH@|v3*1c4ta&VBkCj_Wa1<1_c;t_E@;o2@cm#I-^=YY^9QHfj*p^%Htf z7UTH7F4!*kJLS&mSB##eKu5X3-Rkc+7Eeyh+{Oawcs>|7rLyn|8#?FE7V1CP3%tJb z*!grX5G1XT7u^xnP4}EdoM!u==bs(49qMHMgRJ2oqbH;H#!1V^-H8?Bmg81c?^v8^ zC~-U+f47xM?mp7Mzm10;3^<3?C{qaKtByhf6_5A0uBF=>N@iwUHas3z&*!a#9Q@2} zO6#*|X-A^~)GjJ%#iU;nDJRY)e4GVhhwo2U?J7mFBN_~K5p%2SM7XKVqU_v7;-Y98 z73)fg_1k!jk|6yk5#QxvO7gVcWpi{VT{S14+gq$3N}XJ3HdUpP{kJ)4Qbp89HvMoP z@#1^exWmni8*bShmJ$V2#42cWdg)4G58qbvRZ|Ev2;17!q}vBpI~dJ_TU|dD#2`l78;Gbpv@8(hp}ZeaIY6<|PMfntdn^(zHcGH>Lo$@P~lQH=67 zisHp!%NTr>+R=E$UsZ@Vyt~vew&}`D%pjCV5roOJ5K|ob4QC}Gl~@v!GY}1%kH@k8 zu$Ix_8hAxxB9>8!UeCl&IFdASyN27RW)bwmV?11|z2hxM&aY81a#6x2R4fzZa7?MhwdHX%H^o2ial;pHD`1G_-X$d(QCWP>pTd>* z`B8$Xs3N{xjo+&so!j)4Eec5k*3zh1~5oiR6;umOWI&|jNds|?q zPT+qo%Nn(kL)&bSl1-`$XyhIiB(5ym6}P!(pF5U3fGZxser}5!l$6SH06jXQEc~#& zWgHr!-KN3KnTD+acj5>oaQc1)E?O+6d!`2EUWJ2hNiw*^0tAyfnWGzy-!kOvq;5g+ zqI!=cZsaqFk}NxJPzm@Rw%> z2GO&OUAN6&Nu2xl$Kx`@g=Lc8rtijpOhN^V<0j6W-SR!rmXq!d99MGSk;`B;i@>vP z6rGpdBYmBSAn{AeNAo)&B(ZV%ys+*vFO!Xy8{A4U#GC%od}r~uIF}*rb>?Wc>4dIo z$Nq>?qN+S07P2+-%NP!d9S|sQMgzos7fr^tEwZf%l%c3P?uX(+9OrFX2EzfOngMb#0nZ93=i|nx>1Cn|^ce!NQ#bGWTgQt4xPk za$*SP%v$Nphiksh95DbsEjUjamiuuqkGj#u7|F`eg|zCZ%7k*~M?Z!mjV6rSXT844 zJu6=G!-_Gb+oEu}*OL!+Gp1r@634W!s)%QhM&QOo^Qxep!$pY8criz-wdnU2n96X% z!YGU_t&t1GwwOeh=~CcTXarVnA5(|i@Zp_emy0#q{Q>{;$}P^{eHsypxq*S_Ykk+2 z^e~*x>k|_?`}P)-r~z(LBHUXK5Tf`S14`xU%&0;!vcS6^19h~B?TSAsJz->ICg_Ua zhlyq#E@Xu_h2~<;PvH7*s85bI+zDA1XL_Whb#)c?ZrWQWo95*m)Fb#K6(r(;oUY-= zaXc_hwT0e&86vwL;7@lV*eovaWPB<7#qC$0ug4u8Ymx{|*_jw)_Dn6m9)|O5Nc~b<5Jj!<- zsNkLL2Rj`RuL7n?z{PHK7}UfG@Hep#JG%BVrG zSnl_#G49JX{alOK*kwR0M9j+LF)a*0W`sLv6(M|hXX{iYUE-|06gi9<_S?ivRC;Nv z1)?MUVLc#%L6%7rr%hm+W%G|pPJ+ji&q{jW=S0-wm5Y({Sc*JiUfD+z42>u-9y{|z z(Ix)p-;HoNOrbfl?F&f);$A22xmSTI$uLA4nM>~CEc7GO5_~2vG$cz}O;Tm?8X>&f z(iwT?#hkjws1%^3>tq$4N7a9hl0Zw+lK*BQJ15&$^1c`28|4rH@y$dei(IW~u zzMcHEi<)R7flW#&(E-Vnr4>u7W-4G=m^g^4>hahN%?b#6jcevJ7ONn38~4k{e3&IQ zt*0ggerSEPh^%B%IJ41g3|yQlI_u^(st;_dr3TyAT{GDk5^Z__&dNV$Ay zoRZF)kYcLQkpf2(?gLMNJWYu7L;#G5e@`MgGNMv(tU8%_nBoeu#YCD#J{u58DzZgY zUH`{=vYJpK&x+;1@g_}$N^+>+B8X(Z8ouBnTDWFvI<-v72m}}bbe4thNzZRPTh;9O zs%aa?Q``O8NF}#x+AY{rIfyoBw}==F0~6isc4)`8VJJ|7yzrIk5k8jy?GQ%%{|7ZvU9_QF~66U{HQKYcm|R^UYQ6 z1QTqOV`#ur7w~DI4BN32kZIg9woA-OAn>&$t|nI~k6o{|YUej~q-Kx7CJc^^ZEWO_rSj zTKb#i@OO7dYY-2*G`3!H8~le2>n8$dp}mG=+L(w;cIENgWY~a?2d{GHNQEnQT!14s1Q@ zYMY3d8qoXajg^rVM)R)ThR;#0TbroAtG2tkn_D}-TS;uU(JtFq>ujyRyQl$KUs+^F(1Js-Z0|tjdI>ezHESWI&-5bJ>bJ9)Z zY3`y^CF4EhKy%8mtJacIj&_TJiupR&-ncPH$;Levkc&EBJmMekjOgD8&r8TvW-BD> z07{O6qDWqR{!pJAb@RPdhNA~)3UbJEF2!hFTCuTyHHu39%4%z^ix_4dS}9Ib9cE3| zk4>jc1z_c>!E`SEa3!Nn8zI+c=pVa#bB3Aj`X3b@^@dab5;}2R)0-0!d}# z6>C+k{4#~`(|1c0&znIKg$&+snBn7yS}NKqmG#tj-3*{jtC5PjP%y@nQxksCT>N%M zOri5y{DRMN3$S?5nL|G$XQy{nA)bJT)NR5`kzrr`T+9~N2RfU_C1b+iho+F9T%ve> zh;ObEBx`BGM{Fix_sEV>%(YTa>YB_a$`Lxu6U49u-j}eAdnjY~tMGtp{x)sud|jog zCZD#+mn9h8hmog0Hidh11D^x*O^JaMoz4${CGeyJCrtcVa!b?uh= z*?KFV=96;Rn`*gjjaN35IL!a>>CP$K@AJsnnLV@>n{f_7=(Xa+kC>Ky%V`D4P9yt6 zmFMhDcW>!o{sf^gH=uNT8XT=t3p#K+75PSU>-&yiRxE6+OXFr=F?t-gt26)C*x#5KF=xI3W6_Q}3&#qfFUq6JUdr~U z95g7dCEb2ezT$jAhL@5TZT=g*pjnZ}2T5;98Ft4M?Pf}!N`b|4$d17yNWuX%V@ICL zHfKb+m`{rpQYvXAN#KhrWI@!dU+35>UmZ&$j@>{k!2?yKc~P$6M~EYmitX3#0zylH zTqIdHRfpHii2h@MWRbj`lx0N(4vQQ~jbn7+-&BMNrctZ-{TefFn%ILgV@QtU^yhUm zqESnu{9fs3z`!^`r4T5p4kF5KRvpaS2RUuS2kE`;Ugrm+7AA3vp4W%X#)BTOhs_Iz@gN5$OAe9o z(Kfz8S;f|Yh6QUd*|J+Og2eW&$4@~s4ox!A(6aE)v?-V6zw{GjEZQEIC+p4r} z+qP|+m9}l$wryK=a<08k+iT9Vc5DB+jc74$;)@ugkKW&>FGfrg*biH8={=^?dRQ^M zA%RJgR4h7uz*<8!#?=L?H640U)q-n{MNo!KG9nW~O}HTGOBb&qG4?A}l1%hNF=%!< z_3b!5l@7oJ570$Ch1WdAPz^wd8$?V12K++Jf%kXm!LXKvw_{#r5M3^*yue%;cAqVB zDNXncbljLz^5q%O=_KeU{TnHiRCOx71y>6;#ZXT336JB1$xF{OgbBJ@)?3che=1PC zEGm+#r@7gFj442g4wQknTseK(BoOB*joA;uosk65kLnq-(ie=bSZy@c%>ikYbVsAQ z&0~>Ao@_mn^@9qL(XOTI8gqx9b-OKQN|+S^gUXv!B)|x)pX75wnRlQd&y zpIantHTEp=M^)DipXNB(^g)-CU9P@Y;_E z@m>q%GgT?uY-5m8sYLXrNL_k~y2saPpiZc8VrB7QQafp7J3pXTmKX6Vl-a{`3G@F zcJHY2yec2^@^#vI6IWKX$rg@+>a_TiDdoDXF8e$(v;ih1dsYTxZR-x@S$NU}-qyXN z3`;sThgD8F5zpVl0*qqvWOd%0qi$o6=C^~^Bs_;&)~S_bQzV!$rAubQdJ3yDg-|h< zUo4~cp)|;!8E9^w^h_?|AqM)8&C~Eo1?npezYZ(ZIB=u^c-;^{$)t0hunMlnMn&;& zOQ$ttD@{?9{T$QkfB_u!wI=!?O$#Q&r{ARFlBFAh>dN0T{8u9Ya}BbN)s9LQNpmyv z8davdXYND2zSe=~+^_wNd9%bUofLX$!7kzr31v?fxJOG&I_0LviKM=7vYP$7j6{av z(G^GY%w*-MS)5+9=DjO`<$=)@{QTTp_Ljg-|AnGjI9`b3m=0cEkg-r2O zDRWp9-&teHt`s-4u!u9Z39r1~YBQ#}bCSAPWdG}p4e(S38`8H3E?aFnXvty}2@l$V zDJ4u5t|wrL4Z)60NcRWim<0Gogi(`kKviZ_4_e>pyemJlVVoEc-z!;C2%l(Awj^iB z(9p$4liY~~G1+P&lD4ai7BoQ@O|4<(Yt+Qa3I8M}*i`vP_26Meupj$>{qbH=vuoKzE!WSPn0O4HfK;y?MS;^AFm zH9`K0WGg~mMbij%j8k1X+w-ov(twm>sb|42_xv?R1fg0?o086J1sEX^EEZrmKka|wQX~ccW=ISdpx5pd`V2E{XC0t$g z)v2uxav$5^_%W!xw_ps~1#aDrtWqyTXv(P}G z$vTJnU3`a23EP_HbWUPpXr9H>ha{94j+%`dx(vHDp-QFc#L(Di*^Plo*dZaTRQ_ow zs>?I_scI18J1zC-C!DD4cnl@m{!KPL#i`D&EF)jC1t+*lakks$UB3W(P(Iql!n;gc z5WT%z_hJ_ylpvPstkH`s_nIzr8V9Jpc}I1Qthn+l@*)~~)X7bbaq$scUu&Z~$cxN2 zO(se{SV3h;j#hTW{P5PE!}OP=)X4B-7C!BC=iUi{{+VG= zmy>zM&d#uzUubeV?^Xq_^|3jC=9`rFGSSCo&V8du-0%EVhZkM!s_S<2-=TE>8LEf< zKmD3N_tA>N|H~u)9~8^KOCSXUv~8*%&7Sk4+425!iT`=1{(o50J3-oJgB~IHg?FfT zyU~xhM5lSQ{|TOwqzQV$JT93bMFdGd!bp5P!ZR+bw@r{PH`2MZ)hyuKjL`q^;NS(1 z#jlK2lqzC=;PrkBgZJV_P$DR}S~*0=Yzg}j%#K(=A%<~Ry?$3RAiOV$?EN(*Pi^h!jDO~dz-YK`BEUiz>Mfp8{a%6#tXf5`YUHTb?h_1zk{YlBEeDb zOp}IMbPE>{_Mx!VP$C@G3|dWXpQQ%a)-V{o93x<%&2|>4!>He#%B9Iyd6|xL`ct9T zIWORw#Gn0aU_=~=Oz62alI@R53wCQ}Qu+u?uKaYo{Q+tp0 zPJvy?moY1#BbR)iMbnBmS6Oh^%3l6MfxnifYvum%AqIXLV*fvn-#-@NMVK2l8>3Iz zx(s%;ez5Eg2|&UZg76V^(H(WTgVSIg!h|qmh%9?{AzVyJ`P68m1K$GvyiK+)e0_Ym zd}FDPS#4s4QWO-d{L~J|S|?c?Y`lbIn5oHX$C>LCMMPMpcF8Vr67bVl0c3Pwa()JmSD`gM!F>UtpqJtzXv36Jm_q;| zZAOEjMOH_mmQw7*8I_j;6w?_PPh8GdL5P3}?hFa?6eIyNfV^OB6IpTcmVfYZ#mmbh zqM{FPUi{g$z(tY7dw^4O7mQN;vBKmY2? zdBG;Nrl{jwE1M4LI7kJ*Tx3{)DLL3w9vbVi2O{SEr>z0lX(`9HPeZgeFXK}SG9xpE za__$PpO>CGH1B;LpRZ2OpZ70Aw0cO%R#Z#SThLcjZ(U?WRQVEa=&EJlAp;A5ST7B$ zn2u=oLya7myYSSr$;)%%p(#kNAaeBQ#H7 zkLwfyK?rE)h*T)z6{Pt&B6B}l_1v#U5h$taE(@F)Z=u{W0zr&&?3dE~k5p>+-tGk& z4BTh@AQ`wzsQl`3DUfmfegif6xixh%rFfud!R`8Bf_iy-GkSR6EkMA>X=(4|#D8J^ zzC8sWIYdK&+OLL#1gy@W1odvK#O4xPCLh2yT9QiOr zt;^C;PeO)mrr?fSC;c|uYY?$?LxpBM2sxk;^az!ab>g2emAWLljb3+c#JqNOCX9_a zBoODNP>xnc?m8iJD=Mt3c-rONa;D|l)fzs6b5gVM|0O`>>OY)3UI5*t)f?T5Yz>T2 z*GaW%nALkYWhkf2#4#*~HA?$ec_qQXPTLmLst0tiEvkJdDPu-Xv;|{VC9*9;GS3Xp zPnYI~vQ^feg+FvjsjNP~9j3Nmo)so3lV;SX%wn3E^cF5fi^CYSxk#$0;Q0oOD!1lQC`iF0Td@s+>TfTNldgz8^wnPA<7cDIvTg-`d&BnWgCGY zGRFRQ^B%WTZISV)Q5ws8&QZqUU) zst4*mEV163UYoOv{(v{l2+9P%KzT&Uz(mIr`!}-Rz?VAx)HoYSs7zhnzb){*VYgSe zw2WdJ0{cfmK1X*h^aFex^oGf3mE6~|)ZVAY=S(mPeyJ)R_EcxjivjxIQ)g{8$cPw* zzGJ}>=qc#~Hdy{NE!?L|c~YS?kYaBMmo;x(gMqdyr52V-UpCQ{Dzkre3oMEdCHQGS zn9m0uWSl2xkiU+Lqq8ZmB&r~r(9YL=*cS@%`IqBP)%7@ILk! zr@V>-bAT0*7B4uMzG~xO>Kv^5=zJ5~o*{Ou1b^cglF~xkN@|&5&fiB|u^J}5mC_&x zFowoJD6mIei8s3UP-ynU6p)0HK-GN>_DWn=HmgJ6J^V8CfVlhF>gyNxz*xF~!HOE!oO?f<1z8m8 zk7Q)P;P9kctL@N>tPEXbrM9JD2P~lKzz8dXyn2l=NXkTsMK8y9q@Q`|n#r%TG)KJz z9a;D7VtD|}X@E(czG{^UF!eOW8-aWS$1l)83mODT9(p}g63z+~7g4nWsKhV4x9>Xb zr%4@4V2*n<0e;t){chw=b_sTfq4AWgd&58QfrfarROk`WIlGelbAlBd22gOPgi1eyA_ zuE#bJibQ!_>b4pE#CgftBczcam;%QOCf}{`w70QwyG?Zr^030=GL}cWxjZ&pjCuN2 zY#nEXWX}-zn^D&|OP-_P_{HH_NhLIrChsf^(Cox6cW?Idis)NoFFjb#c(W|_i(1b* z<+(i3tQ>@Wvv@2G+62zU@cb?!@Ps{9dy01xn!U1){PMS=*?W7dH!vdjY(|7z|NM+d zbD|eFz5RrujudDNSZL~O(vaoB3#CN^MOH<4%MlVfd0&O#kbGac7|y*CtFao@3jY@` z_>n@~A#gJJ@Vgz{03&5h>PrH~T(3i_Sa~m_a^V4?80^#x9H+mgobuWoh-v14qbq<> zglJMnS%C2=xT(g#&~41F5)Yg+Tp%a9QSchneT01oO&egnk&YL z(U6^FErjVIT|_EJrxmWJcQuk`muS|U-o?YMKuO3#@eplv>1h|v`Zvt zElw(-v6$E{qPBRZ$7u*ZNTmUb!z;8tyIb^hFrp4MgSr!r{RP^P)>t03pQ=?}=r^}T zZ7X_Rch=X&NZ9KUfdeep*A&hJkIUbN7y^<}xTCi)CroyT8SNq6bYx61f1|OHLkTFi zK3`x}?Cb{o@MU_uXizylfR)j(XWVT{FuoK4rZ%{cZ9<9F73q!A-l|`6(d7paKl?n5 zBt$zK{;Y+(kHG~|B4sS#3dzPUQ=o6ntI$1Rk}gKTIVqF#=Cf%beoRkgp-$Zu65!}z zg6bP5iv{i6k8tY%!px+fUO#2<&vM7I_Ihl!%@XXz9f8bv_gvT2K*Oc?Km@iZm~Snz z?!zFloq(&*L}6=4WYh>?jl!)aFh=#uS&KL1^8~V+l#!Z%DO*9TOC6X7^`*pfq2U=) z7C{9{ca*LHP$IGUoq+YkGQXyW3u0nRs(nWJ!(#ef-`c|1##0NZAwYa0eBmMKJW9tf zkUbl&nkRnob-F!Yt}UF5+&+*wTy#Hi|2_CKmOAs7q<~h~aksm)G-5BcoU*zdDjPNe zkbPk+$@plSaIFJW`0fP+ppW79PC~so)r!l1Z>JzacB{H0_^;TliXQk@`hZf#8<7Uv6Qid4GYlW0tvt9!{Ik1d8T)PtC#YrTK@azRf zEy7qlCFs^E8u-sP{~3eohB0w8@X`w)gBE~>7cUe;%qc}k+8RR)&O-F+7=!%j zCa^0nvZ->BL-A9-z$hqQc-#w0Xo$EkQa9mg$qLZ`G;&WM*!Rfbw%Vf$EO+YR>EG@3 zJrgoGt8bmP`VS#!j;{YuvdxMg+g$&Yw&MPW&FcDpv049Ty=J@qFPrr<0#QpNJR`}F z3N8tLiHHUDmoP_OU(}WP<<^zYZkq0&I-#Q9$>)(x9XH(%oefL@!K_tB`H%EnAKbzC z@8inBwaWt8a}6qib9x{zS@8}|U~8n%-6Uz)lRpS1%mKQ3nM3;M>s=u-jO~~Z{GJG* z3gE@nfO)(C;yOKW4porHtoXZLC`Rqf2zg@=*pGTTN2c(>{X3I9Sv=wBe75@WopS(h z_)YJkm*WYed1mP#9;-rYhBBRC8wY$k74i0WlHRXmaOLh{>Y?4;V1 zVvfsCs|Scf2=gRMoK_ix8Uo6juz~~*qn@SXnjw2Pd#GqX!>nZlL_&aU_v1D^0ZEgD;jQh9SYj%&jaB8u7 zlLf2me3k%^6KJZ?&u@4{YVwvu8?p%F;|%2>Oic>9XI zq5;ly`B-*KX*D>euIK@L%ZuSV=jXk#8xvkvPr(MAle_1G4Kv=> z_U=_g2wTtm$lO#1o_H&i#bHaa@rQn)0o!*qX?3xe~{8k*Urk$<$v)DQ%Zse^6Bn z8Fdv*riZsDMNj~^_;(UUGW$+ zu@z;bZm!=7bfMeb<1(L|#yTz}ZsO1dD{KryeH!Y7b4Z1N56PM+kT}8kA_bKr&?E)$ zLGV=gHx$$=*V^3V=-v{_y9SHnJ^Cr=A$#s|BAiJ1?;6ud2Bpd6+8+jvw3w+WX@9j( z8R)09Gvn;Fe9}g-a1n$uU zdz>gbVMC7r2r07{7M`xF-+7O?x9}e(T7YD=NWo)8ovAADg?bP$Z{p3hdHeIClajId z_wqZhdaw=UyGbR+Po4MvG>!ZW2;?46NE&Ta{^m%Mbe)3;nlsm?_Nk8a{{bX2Uh zc#v{{dnv(}117Xz4Sr9Uv?;Z_F@7*XIi!jttp1L}7|DO6J&a=bxzdkhZPVmXw{4Fc zm>SZl1vwBj&T>NKQ|=d1Znp#=pj$5YdDa>&etG@g8Y#i&`>uJ{Iu+IbTl!6ITzlu! zs@5}tQ>)w8Hx`WOf^s*ESBXe+*=z^RrD}(mn$u)qADg919_X26V8-uXQB?^$)wOf9 zw$Tn6QT1&tN(2yQg}=`FSSo*wJo3;?Yc_CS`i#N2!D)ihE z1cQqd!+pD$5+KKqDn;8vN$XYyw~&Z%&E>GkvwPF|->(=XTRj*p zW{;H_9Sbb_ufU=a8fT|>0((RBMtL`a?nEl0jDo4NBR%vO%v6G`kNPB!vN+a}q-E!F z0W(tzB(_%HT{ELdR;ZYCqwG=ivg3yX9moF7$mU2$_NNxLtH%)GLus&UN;jf0j^gAC z6Qyz45vTiZw5G`%4DdX3V`)-8oRvXRVvGF}!wk2cOs^a_@Rc;e!1@UM+{z<}y^A!E z@;>mW4b%h>5G5!EVva041WX(?9O2Bt5&e5iA?|!xA-a~Ay21@=66r_-Ix!SmI^cS;-K7a3L%Y|$H}%a^|f2YhC>9GP zQ0@J~Cjlk0MB6e4-c(I!DG^H|z;vj*`Jn&c=3bL)8p1vKZvsdKiF`)^r)jd($4(Q# zJdNM4pwHmffpAt-SM0}RbE(AP`BR@%%1|@VB-0QK$u-Atrcua{Xb+6@uxEdtUA_GT zKy7JnU(m5a>BMcnKULpvdj1LxXoo*jd(|*B9p30Uw_s(6to?Zc44i12L?`3n#5~CT z^o11U55l*VJC~^!!o&D1;3C>e%|}_US>p4Tv;0B0{W4)_#rDB9u}?U}-o-NVUPxOW z3((|t6nJsZpz(idyY07ZQqp=y<%GoxM?aT81D`X%2ArKqaflEs#sve5+r1pxg{p~I zzWf%Qku42Ot{lR801v8OQm959sju-bsxL4Jtp*Hg+Jkq88h>B=heuzh|J|bVKb%zm z-L3GqNv$dRaVw_(eWLH@^Z(qcQ2eiiVb=+j$QWqhZW5jVM^GcGiex}WQhABlK~!Qg zPK|oaMTn+A08oG?oZVO+hY}AvjdIPS>a${+_K18r5C?k)lkIVryP;|>MSl3{gho?P6Z7>yeYFFeBS;D8t)d>`@w`7ZS%f#VbMv1#JxvD$FpLp`JL`VZ z==DDUkz%nU?}dzd6cCVB%$znQ5KLx!+;Oe!S8YabPogeA$YDGV~?RiA+d>Ih8V`TQKS?Z``hhaHPWFl1b1RHH$8|I(LADDAKYVQ$PvD{wV6H0^O_Et*}-nWm^|kj%_ne^}H??Mok;eA-8` zdaRH}ZyoXsRLeT1p58fp94)ceT3I8@)?TgWKyhOF_^fV#=O8BK#ZHfG5IpWeq>Y4% z_$E)^aD{>Y{?GqE)Hb-g&092hA14-|H}z#(YUVtK&S!%+(&6fL6?a{q@~<@0>fjX4}2ub+h&|SdMiyEZ`d#!PUaoO3bVD2VDO&{DU&m zLkFw0^iJo1=Z@gkIB7J;PZ=}PiC}1a^kMIh&pe86oITL)zRX3l+HXJ5FEjnK6+eAd zV}sMH2(cm}Ns?R$q&n0fg;CLNoFbyIpqh{Z`dcF12>Up=uqcsvAe2AmDCL?f?h>sRQFew`zHO;P;Zu=W=y|iX8q+mwz-_(CI zKpDc;w@|ksUhleS?J$4Z>kRgu3?XL}f7>M)~M5bFqx!otp`b{rzc%U`UD2z%~8h9fZFo zFC^zwxfo;kaTpTr=*4d7k@af8)%x`?3XNdLD&?xc_`Sl&5-3q!y43vaC<18r1+k(a zqHp_^3h(75xIu(+)2UhfPO|xp#i?ND<(f+p#~v^5obC-gp1n9Z(sQn4$xID6-+VYZ za*Kci+-zQ)1#74V&b=Rx?1_Og(7qDS4#Nm!G3ue%Y--&mun~wk2M3mt!7Y8Y`W_H2 z;Ms1%hY-aEol;VUew~U++B(MoT&&eXpF`)%r!<$}l~zrMB{fi^b-xC5R|l{a>-w|- z*dT`FQ}v07=ABp)qaqT5TGhg^5)d~^5T%zdLO(e^{;1sINO;fjnGk?Y3yg#-A|AQv zZKr!EX9X&I(-iF##I+$qx(R^NV{rzmz&}F_pD?aNGI1cMkzqCB`}vq9eK9a6gssI$ zQ1eO5bx9S1)M!Ok%)F`=tMckLMxhI1u?u68@7(D!IwxRY!-lz4!P>C6ztNsv78*(x z#@@8_BHtu-FY=boN&eozD9f%}r#9~O+vftWd;R8Na8)k$T`<6-IE0N}#FZLFI>IEKaQ3IPyl*joUoaSK0v1`|dV1tnE ze_CdbLRoW?zc1upvaZ-P|fG22DZ^l?}d(2}+AJX&8vB4+nW1 za5?Z>p!f`D7rOr`;_@^sHK%r9muyJd-h1)TEM+J zi5#V2hbwp1T@*#Irm_&2v&nlUb_Wjdq;nh6f0~PkztwP5yX^ASknI>~)3?!|_!0h6 z2B$f=VLXVv6fK?u@o9LJ(-twE_yo`5VR#kB))rLr#AFo<7=jBIh6oo^UvaNE-7Vy3?jfL-~WIgU^|72{xWBtBP5Q=uilNlv}rYBo5@y z$};5)$B2&IqFQzJTm`+YYnz(r;q5@#qIr>~Zjs^8=iJuEW-Bp$%G`!PX?sVRRK`#Q z4&IzYQ$TZvbtrIi7{2(hH+3B>S!IQH;(V;u7M-^4VII}}?JyC%@s6ise5lGHp(HCI zl^auh1p=4xHr0CihDMXMyE>;F!{sYlV3J~Dd{cq6ij8FbwJyJk4Mq+oe0M3!o^>0S zialN3Q{Yr+`*%knf|HGgkzkU5+^>{rbFtKCMj^Maa7@+% z;))o*&QYaJ?xT^bpg95?eL3i&`c`y~Ct9tERuH`d_P(O8k}f`(tRXqU?6R1;1aPl$ zb2ysi9ZE>s$KNTcK33OSwkV|$RB;YsouzAzHf!nzLls$RP3gQ2NJw_W9bVVYb|twZV|J=!H8kJWOs1z9umALCH3ng9w>M`9p|*qYD7 z%e-IzfPqZnBxk#yK9UqXkxJXVTVN%3Hjak}bxPRX^)(i}O?C7mI*1%vq{t6H2?y{M!uTkMtbaM54{KJNb?fUyDv!r6 zU@eF(JF)en_?+Iggke1Fo3PVZ3)8rWhd=bg@K4+K9~70Hz}p$_vm%ZZ1(~hYQF1iH zbg*w4^uUcgh;WXEY#Eu{mjDxo{mq`+9J*9z55k<8l&ZyoXFZjlY0}50p$s7h51B=j z#hfx}vE^x2*~`JJ)VrAmrQXnx~#I2ZDG*R#eF}B>v81U1?QN!TO>q$!Qk-nh{*f9-=m8 zBLf!4OhPN5i!>pFU`=83-ZKq5njVgSs*a7rb<-bdX_`89*oLosRbH(_Mf}Tl_J~z} zKdwwQE2lUURDUKs--}B9x>&Pk1HpsNx=`ET%BF%r60+iBSr@79APzaQ(NJA2fCW?3 zG8vfcq0)Czr$oe0T;z*h46Ho~g(v;hewGD2B51KTL-oa^)&vHntzq!EE|q_-uIdE& zwJCwcgSa0V#Lw6orXmDf0|f5da{d*sgTx`1VY(nznmBR9_M!B^5yyh%J{t9bhGZh` zSbk_erfk2(UFoi^?Qr^~+4*cF!UQK;ZT|w&P7W7{x)8Yqs3xZ5Xrh3_elx_&6EJx1 zKo>_Ts4U+{uk-JyZN>fiA5JzHF#MrC%J3oKd0Di zC(V9&EdhK)!RAb?5Rdo}8P&r{rHAR)KYqfYfsy zRtTIJ52z3a3c`?;A}#nZ2H12HOyXT})UIvIxI6KFF8|c{md&+EuUBQXIM?c*xyctk zMuMGPi#6va=DE5Cfb1-e-v+bM`2!So;AYkDuEO!31W`?zfmQLV)u9He8e&K)=yUV* zG8-1VunV9?^7S}=JYT)=sfGCVpkzKSuYvcxCco~e{zan_jv7Pi+9(P^+DXUGP{xWM zRp|lct>=vUeil@uwhG97^+g5f+rGPKmpBqEkO98p!$h=ByzX}JFa9vKDOkQo9 zT&Ug~4KK6Fsn)Zg?vQIZkQ3bzd7gA;3IDQgJLtbT8R}aRE?Xf#To$xrRV6YiEt&9w z5*>!j!Ne~W&V90%E`HuBAMSotqE(a7o>xy!xLlo5&5J}}vbuAL&N!M!Lbzi46fm!F<146M|8-ZG0BWU-w-6iO_v6O4iDHU(G2!C?%&z`H`$6pkNq~E^Hl= z;UACLq%le4TC>-mULRA`RF_daTs9qkS4%H6-)X*^FHmeIi%n2gj|NR@dofh=IToX| z96>R08p>lA3hD>`S*h&JW2oJOz4r`9 zrbSf!gL#>;ZTv_A+}a4mFcR|;_bMt=A2>>B!3PV$dcIby3(TYzDbi7vY+shMw%7Gr zymZeyzumqMbzTm6aCl-b3zzO;jE71TiqxJh0_^3gh|55cy~#%WojXFE>NNx8mrkQQzL)@&-o=wd;PK}aIxK`(z3&G)i=arrt2ij`86$^ zs$n{N&Koqtxs?b;5FC-xS20QN`*ZAxVn0lKLa0H+IO88R!I+4T8mn>2iu}Px%gz-Z z!Wo$%nRBG4oWep1kNxJO zaQRb`quZ!?l1-;^iRDE1UQ(Mnr?((pV)qy0y-^9WF@FYZi~A?Anr_l&X)`=mK>l!n zBlLA=_;-YZo<3tLEL^vPo2f zjF6`#a%jQePP6W{K+Q*c0katK=4@$q!r)E2?zKp*d-rc7U*yot(7k(|n=nr={I$o` z)#&~ac92*&VEG2Nl$ZQS#^TtdD(c8x0k5vkZ^oLsHSsYFMxoYW@xv{$B)kEBUF&J3 zBjZOC87B@1iiUec1w$I$Zqr&GRh*U%GE;$*)wDo&ie$V=-1Xt7&e^z|Z3UssG}4R7 zguj#2eRZ#Y(&pCu5uvp?;ZWKPqyHpAUYnp}KSnslof1+d+X4(Qb3+g_Q$E#bncEZhT`w%$Waqpme@jeR!r` z_c}H)PK8u}A92)D$-L=vwc|^T)}xX?x!5CLD;%Egg4?keBBbx4>I_be{1-qiXA z&Y>*Ck^`#bXk&ir?x+;`KTN-eoF2P0N8XO}(`piKY z*9_0;Bw#uGwH`&@XR9@>CkpBotaAhA>H4=Z1yt^5Gj!sJV*D;GGwA|S^o~p3ottwo z;b4bTv~W2u<1X<}t~KTHBic-S@3x)uy}F75f~zh`#J0US@tdPga^;;K~` z$t?CaQIRYN-E(}V=_*OpeJX!D=K|eHEP_D0syW_?{|qwY79u8X9~9aunn(yxKVk!1 zIe~a}={ft}1N`$g7biD&r~5@39zOq$FXX1jU!m8Fikm!V+_~$Ik7k*;9>aw46-iFk z5$OmM&wxAQF2E;Vj`0~*OohU?rV89;%k)~8;wk$1R1)MJw=sA5iZ9sz`?mhy+5w%6 z|KXl~P8^8)ul-!+KimQ1|3B`4wCn~yLf46ERDV&jLa2k)5Fu=?#%y7KUYKH|{qVHJ zbah9^a3LEzb8_Fmi}uGIt}070biprqjHvVukE`L zl`$s04)e$jh-H&%kP3j3s0uS;B`r#ucJa;p6N5=ogmqDEtP!zLj#QPF&WCTm{Pqoi zGO{81OCe`C1y*n5n*g)7@vK6+n$QS@ zg)MIhRAuplCig_GJ^NAt+I2r z7%tqrd2Ifqm5i|@-%7nAFj2Brot$;zOu>`}`mWc#c0j+Mcy zTg90dTzjTVP-(Ke{@i<&BO3b&M`MJEV!skbByr7%qw0fx{3jFnPk9jr81$8L)gf-U zG{yg_27utwmvzd*MGOi*9YP}LRI~EvM!CIlCD+6&39zTxnv65f$qXO0Fc0~#EG zBC;ZZi*nKPLceCcvhNoc`{@RdNw}U*ruy>fIghJfqPNh#bJz1aT0S3-ZhFGL@#`nK z*WaCBM~nZooQdpR9FDPT&yBrc=9k<#i=;=Ap-Q-=g_Pg%IV9DY)j+XtO@GW51Cm&X zOdPd*Oo(b|bkS?z0oXhOF|cvhuB@I3e@R(UT|oytC|HW#*?F@Q@@n*YxxQZ?K96>` zKdDx0YjE*)Hhh}K+T22!u*8piQC+E~gMzFMFhA_F33?Aqz-yOhoin{qFhN;`QO|3o z(zac2?5oaQa@0_0?6<}Q)r&bDFFhD~WiXVhfh6xrK1m0dd-T>eE&K(%GL_cYE~ma`ENnEdDDyTtId( zC+V+h3O`a{J8aq^l7GzwdloqO{c2^)jn&tCcWTCsr392VxQn|-1;T|N>l3m;jRD8P z|CVRAQpH6z(W3IVG0F$s(v{UF?2XoJ`W9N!0QfVvlDT^b(6UPgc=Hf+OGlxqkf>?$ zG5B@Qq)T#I9m(;Jw@4~gEmqOsm`tPS{5O_JaHiPIT@(VodF7?@Gw#FynFALs#t@A(7)@P zoEl~W@}ZpMhC~H90jF6lsO$kcwqFx!hHckJIh23_9VsCVE<9wos zdw;~(0r-logLq^hL&4_#XKh{Ls2f9ORzH=8)@5;($kaT4=ii((*%Q;g;EBw|I_dLC zD+ST!EH<_>Ln%Sn!7IVU2oRQV-`py_!nTlfLk6KNoq0IoZ4&T^T#4&aHKJ=4UO*-b z&VsjiqV-(2+my|-PGza3bGb>~w3Ts$X-vM{IGO{y?kw`CJ2oYR^eHL`(5Bjj_{TE1@{8!ZUZVR1e17v1bz7z8|JZy zHbV-4tKDfBM^=ppCNK?CG|5d zO%&@baR@b&^a%C>=fvaFNU5>XAbaGh0&rd|U8@E?hCP+Di|@Bu2Sr>h=3Km*77i*l zgsRy9-e}~zd}~u{h_83a5N99sJbtGypRPU%tirCPt1V02W2u))2AagUV*W|f(9^a2 zNE=t__L(lC5m3wC43BR-m8d3FK?MIiFIhG?~2g{3HT1H$j z&3v9paU1+?`G=`Uz+YxE6>vnW;pR)$b)U(yBa9^d&EczMQXVLF5(gp4(z$RTixZyS zcq8+I^()Iiq_In7V_dhgXNr4INS+zvjDT29R+_eB(s~(iYk7=vjnVh@e7l1{%l4`>sV$ z1RxGb#qg=C#k@e&eMv5KYB7--6k~B2$lNt~kva*I<# zGU<;M=WPwsQ%brFO6UqSxvs?RA&boPYX0UQ~kFd&; zqBhFvUmpZTF#QyoNA3J8mnq!W4K7+7#B`m+fMmEi${{c2T(U2x#7}e%k$`vPz zwkuY)@HIqlqUgdCi_(+3>xJ?fT{tp{|L*Kl3lou)Su=!Z&J=K)Ghm7%7Ks2IoPmU299&x&3t3bFPwsnl}unBCd z_|GnelhikN95fe$W4ja&l|`@gut>b*JjR(&^?FW0`9gMg32t@6CG`7arIU;l+kgzb zw^Yo`*Jnhr2=LGR5NrxkajZk!QJMc0zr{U2%0W2WLoClLapF@qu_Y%v4_ep{s|$^f znLXJ$-Z~hX`s3*`aYEMRol8bPPi;n!n(5k1+wSJlvHny3b{x z6%8&2h0+0at{!A85&)G-G#bZ=?4{|2wdSf0gPU#i`Q44_^}J4ZN#Fe8FbeWRxWB6V zMXPuDDNSdNd;tDBC%c;PY+M@aCpFSr-C8MdpVI2mc8oEy34s;)OWlAd9)odZP-I$l zl2_raiCxiwZCbqTR{%QF*lG$Z_IA;`_!OZJ;R#i%J>}-x>oc*e%9Q41$9BCO)Mzu9 zN~5N1io!*WtRTP<8&fc4=9j#4%7^p$xc$oVACicDb7}y z#A=M|@E<=SCpu!U!+h%{y(w)yivd~A4;d;%DvAoGXQZ88)vu)78&q=&A*u_kk}Fja zoih*a4V$9g^NE0w1j9W?EwjG$4~iAXRvuG(tHG5%l|M~yb#7lQ6F^;ss%AZlT{SNv z{}c7#KaUA4{>3qYU*a>A>Gzlb>c5N$EdKQ|K}@2eHL4)e*v?<-(0fs0ik3JjLZkKl zxl9ShmV0U&2IsVpt}SQxx|Qc*lIFlTRSWcD2xKrqw2>bBCc=>p*+}|G54_DQz^~80 zS!=ohxl`tml**viRc$M~0X~BZ$pfi$!@<}LqQ)f+AUwQ61&$#1nCR)$LLBDEzNrZq zyh0_C2-cUX?TWCOzZL!->pG=RfH1Rz62qh6Oaxkodq(<;BOgPw`%9R4PG*E7N!gY5 zPR$p~Vn9m6aI z40Y!fXVk%287T7C;EAEK9O`f(45N4-gZ4fKwvisYy1KSLf2_h8*2DG){vySK2;#eJ z&EMenzs&EO11VNi#O9q;1<1#D6OhWCWrT#U02y@v&2x$I9wR@HCkB#3MevG{m*bBs zn(C~CRY2PdF;LI6-?j;Ut*LYgMsBN2z@0DD==PwE$_R>m=Lp95XR@2jQ3W&H>CoT| zP>Gqrgq+uUon2s>=W)HQt=Ugc@9m9ZaC#qKAgcG=3%>g9SB4xet{I!}aJ|i`GG_NU zEJZZgXV-L(o&Qcg=u^d=!(#p*WMh2)juZX#y*_eQ?N_iY-=HkB;`+JS;pc-s-E}HuhkJb1E0FOV-~vEAMh|c*C|5 z6ZGAajRO+f@(3}btQ3~LN7!}bC)!(px zoPUS?+hx$x$=B~p(=*b^gT~BYs`<6uufe?eTutY6jHHBQ{kAzp$kNy9Zm4gpZ-(l# zYv>qZTqVT7u$N&$CXcMwlb)&oFeQI#RNpkO9jpkg0;L{j^y zC%_eg^A1&@jCV7bprxiL5Y*jw)xB;7`CSY4y_N24ojtj|ZL#P`){Jp}0}37Ml%W2A zHtBT6y=|?0TG+RMJe^`x< ziu#X~tAg@C_u*GKQ43ClC(7&Bs%@C$XtLivtlV=V?v?kxn1SpM{?&*HN^AW&#-=yv zV+65ifSv9Cc9KdKnfSfF<_(8l7}^`fcs?Ja^>2JaqODr?pTC_LT18wnbZU4aqu%(+ zLE~{sM(Ppl(75(6FK<>@ycd`PGbayo;csErX-kQzohzs>hj?OXh!4YpY_D zPe1DRZJfKujZ^MjtHB|^Y4Qc%gh|}9ziqvZYQs$-B?zVql8_rCM($ckFQe-7Ub@Fk z93e(bF8JApb^qn-I7JQx3C2A8NE|$;56GGSyY@quc0K*M5%57n0HQ`fFZ`4PKR~F^ zy*&i>!z>;s5N%N2<||t*?gkj?RM)2dqO0@bIoIWk>5Kr{O9;Zl!j)4D1B10x1x_o; zspbgGnn~4QrR3Lx-F5tK-9(Pt=@Rh=uR+qsRjVYw#91`mQzYFJ>gN>JpE}UB+MTU3 zx@QQkU2W!H_U<$oRH?o?0a7l0?I2?G<#7$dIC1YOp=n_!;!7> z1sAk6;5umn6;u~Ila!qL-U5R+CQi0DNVv5v>3$yxX)M7Scuqfq6pp!D8t1L1U{Ztp zamJT5fNOAuMzRB1Q@pL*kR()C7e|<_LSmg}@(TOjO58b&(sm&;ht`yTQxIB`CQ-@X zK*b%vEKH_c_!6O3@4BT*$wUfOg)5_ZYTyIN=EsBgmH@Vi--G6e#m|2VwFz>LlT*Iw z(O{OxEKI)hdk&BG@e;%{*ryu>wt#Xrf{=4!yvI`FR#RN3+SDk@>Wy{UB|-Yg2Y8t{ z-|)eNIh_pcs^k^(+kdjesZ`IC#}_s&yK7OcwM76cncvwk=}}z~Z~LCNduw)YDlx~c zYRRr7OCb6c!$@gWpkpR!tonK#q}u&J#;WRJ+nZPq-QRO*bqM~>0GwX3s8N%Y>>u~I zJ{jhxXhAqV^c|-_tJ1^N}r6zX4wWq-W6J|PZMw4RoK;6G%C0Or7Vg|l-qo=nZ)d zz3z0O$QO(2p!>W`oTn~PvBDnGN9kt_1ux3dx>p2kIMEOiJUjKoh$J9UA9(=LSMU=S zQ^~GGBr490rs_~eOCi*xGy+N~y_E&)Jm4iZ1*O!8Ji|;a+z3^F6?wOTpo2H)F z;{J`wlyAE;*FbgLxU)G3a%9#ey=xWptn`K6c5OmHQ*W0$7f$()_Czx^&|E*ZTnqRY zkSC5U(VnsLYyro0lE-z$BoB_<$+D~KjzEm=yuaxyq0GmNuCE#v(mMEythc=ytQoRE z{JH~yf0YNPq*3_qWqd}Ew(&9@$)pbpr1AAL@R9z~tucCDJ9U^p(go!Q>HUAUcU53! zEqE*BrAzTqsK9uofeqm%SwCheU2%XV)}U9=?%87?a(rD8Hl5BIGE{0BM3YK~+HJ!C z_(bu_RypECkF40#^3Rg85@`!trC4wXw4OC5s)9C%K@2-^Z3ec=6 z&X1uOGZ5=%B1-u_u&o2D>XZnjED)J1Cin4=G{1_>9=f_CIAz@(+*(aDt`mt~g07Q` zDbWV5o04a;vQTe!Z@MLdr~13Y|Ar&;^w>v=EeuIh;h#e;)0Mf*9v#BOEITD{1aHA6 z+1c$Zr)3mPBMcKLvWc2Y#7&vYDSybYFp|KThHV_K{%8#gL^}FHEV#&wh^%1RNsx>! zhgrVyL|_5KSKevsGCZCVc?~!fRWwR^Y$RDG^U$(}qn=B@RtjB;N+Vh`v|-n;JfqRW zJA?BQv6z7#>;w&-01)}36&(b(($hKW1Zr{as_xZIN^KIvQd%&9Y}LuRw?hk>fNYSCwBO*;`WPlGquCbF)0!VPpxC4i6r| zuuGO6%BF$(G96!5zE~wQoN7!r6f9*oTdENMZR3ZgNB$xZ@dhs+EUSE4&;5^(fD2O? zY6BCW{0+7B92~w9WDD zc-#>@Tnqqio>;?o03ZrAd3c5rFt!y=(X*jp(aYWfmEZHW-X(cEy0+pPO=VYDG+TpG z|E(9sW2F=pcb;8FCDU55x!Vy}$Pn&d40AF5V>Wz7+r0*JG5vVu1#t+fcgy~Bym_GU zICq84L&S$EmS8h~b)Lf7%#`LZq^hL$K*07LMR=9a>F+ESlwDusY*cD4hc>aGx?H~L zxP2}ShzZq%1Jg0p^b;ynp+c(O=kJh+$M95`AZc~NQVx>Yb|#!c^@s>xk(Jr`3S%&# z%n=Ga6bl_ikJps#8!I>k?4B*nX6f6cLln3s9Z3PjqliudXe|cG=GkT_9!teX$?&1))i2j(99TEq z?9{Eo_#!%AruCWe+xyKNH=+$uzn+P-a{2)l8mkud{(jR56`6MquhxfIvowH3Z@)Z& zz~aWnL@S;}D#k%l_&09xG+yjYhJ`mY`AU8+$VF_7RwD{_@H+SfAvz%%E0D2q*!+XZ8MY0 zy$_DaS9Wh=!@z6*2&{L5EppR_Ktgwev#O-?-EsU;B|Y4p$6qk11u1m#IEoPw`dn`= z?hffjR+9ISqW^~Lr@WJZ6mMSNS7Tu2R{~nHZ2Xepq3u_$e4N2=(-$s@3 zhQ!=dz?~;=j$;XBP`u35cQimef$-lVXLvs|-Q9!_pMXr(WQJua%J=rT$dGl`As=?8 zNV(&6K6eFf0|I<({t_Z_$2GpVNBuv<&OgpqvS=PteM|I+e@0w^i34B`$iIq{sT$4*6dIFZ%9H{ zBNYiN%+v)UT4TDH!v^w1d?mGP*h9P?2{k|uw~`K#V2~AQ{JYQlR}$rqhASc+8<1!@ z{@C5DoFetzSgV=alGk9hoa6`8pgH6L^~6{_G7s)L*!|yboD-I4*-b6_eVp{i zQ(lTgJ)4RLkTK|DF4_Qr69e=K139KYd~vH2d66VE4no#dIw_gb@FlY03b1NSr91be z{uz+4dHV-Dal8DG;XjCkW~8(u^*$J{d#b!0>ExJ%iw&b^dp+2fLSn2iSHMGA^NVf5 zHYT|xhg_r%?(lIf-aXlAy5g8wGzMJI@QF<9z@M~YwJq&*Nv||HkrrXg`sVAKNLZO} zGpx3_Z6|$MTrUwm)gWlUEKsk;$)a@;ux%V! z-y+}FUoXeCVb}kNcRpUdF5WT8IU||ew$8#vX8yOnZBQyq<}8r5MN(8UV=t%Xvx#Yt zb;*t4)WOXA7tlW!p4F9@>f<+$P>0~3RQ7k_{rBGce^YoRngBbz4&>e$Wh7<{THw3! zb0EROe8ff*%1GOZdK26(!5;?h$}AWBZW3;BY*FBktz|#KJOduc;~FT>MIR;a&?l}= z=iXPRUkw294>Lwf>e-MNDobrza^|T&{q6zAk4p3=iVlx5Y^swrDoZB=C&1pssEXJL z%+)Y}3z_<)Ov-0eH-t6q0{HQ@gIm&8c`$E7>+4;{c!w$+wL5J!>fbn|L_#=jq_6|S zZz7AS6OrVV)vyy)BJ~~3EM*i>*uukYg29pWkZh2?G4>q7+@m!t>7Rh=nz*>wE@^LWo7O{HSd3-(XUav?HJgFS2#L?G3a8XVpP7!XUv>>NeMhkvaO84V0AXf7HX`Z?E28 z?bGaQ*SeBc>f{+}XY%wKey?2I-|b(#zrNpr?Bq5iMcJ?Y{TtOJOo2pGj(lw``#2;a zX^2KWav>Ft4r-UoF}_HWz`-1#ztp^^JWyJR-WkYKjnSDLim=e%jiv;nDRtgBP|d?e z5U@|46Ruhr-eKl2jdIFIuc67q6pfjxdArSxYXY5fYyg&}U4g^WI*&o(RT7d@(Yy~Q zxQ~AQL*`t5paOnH;~Z3xj@;;PV~ zL7;L8TwbWMVX`9No0~xCC4nGT z6ryw_!lsMUL+zO|;m2k&>!7NJZz;`{;#!4&YTz1DKRHardBiYRtWu$2<}-yl;lP0l zQ3#Gq&dkywLUrYra>RXp$83|Y)>2NPq7f7*y+K3220s&dq!+*YlrNyBi+1JL&|SS3 zq7CQrVN`jnTHw*i+N+t|sIP}}oN8Qhmw3*rpihd3qb=D^?c8hd)=^nGMTlO zFW6iO7NJG8g?G;!c;d}0Ry#}%(<8O>_z-r7VO_gQ#FdF`>q359EI{-j6@RL3SIq9l z+`jdv!h}ks#ST|LCX+bEd`psLO-lJDrV@jM!@=rOtv^~T|sk#^HO>o}Bl#f+K0>RZW05~B$rAl?~OsxqP+ ziqR#lPG#ZvK)yX2FqW6lf>+ThwxK(^)!Yv+JdpBCcPIB~=CqmHq#$rQT5zjP4OMs} zB&%7y9oPBFt!d{Ds8h{opcjXp#)l@18_PQBQhQ&!uN6@3Mwe;{*V0XrxJgZr`gNEpDq;yU7BBQ(k1D4jP4Z|x+Jixzhf9|jqYDu2V@J@ z0b|p+`2zSktZJtKw9*KcRmmDE`j9P|1VroZu3zzcJPX|jwheowjqo)qHM?&}-BeLUJ zXkzHFE#4*af#W88EL7K2yvFJ9%ekR~pHIIy#$X8-D3G~H9#rUAMKIUQ_Lt?eV=?kD zoi?c3_j8f1qH--#URt5P+VGqUqQiR+2ynsifFU9^~^lIctvIbl(`aXo%%mOMLOawp$vSqdH zWkBPdLkk^U6?YPuH_*B;9Bqc2^W7a|i+gwSKOQ837WK!iBBn}U;b4FN9u0wAuk4QJ z!ta>K>KunUAl&ke_bwB8R=odH(B{Ta`_kD=iwmIv@fb#OQtHW3c3wq#z4# zF1#@Rx-9w{h26Kg$85#@Jp|Ti>u^=-GX9rk-@`>;0&7u|@+7GeRj+09U2jWol6k)O zD!c^Sz&o@)wEpGyzmiTdMNM>_ z(XmlEc`@SWndRhhEJN!7+^yG~v6^)b($G+fcN5pP2>PwPIjZqwm6pT+x_i`Am?R5q z_c#f;Z$Qe

P+C9L58TTSl;o#2rxe>4BK@<`7$tNTB~~#;8@<3Vk8g-Y+Gb;0q;5 zs444W`7X41K7dRSx$!+*5)$=Ych|jw{+-v!0>jT*)X=g?a{GHBHLyMnN`qjrbQtc4 zh@wHZt~Uj$RK+1l^}(BwI<&Rd^pO6!y=1Nk;0r?&~dD| z>P&m!)#m&%*dsid0FU_kK_{E1BI5<^Q)P{ZlxA$BNIU^s*)?v+&K>2CQ|Q9J&YQnW zAM)8q0~E4M?(CSb} z{+Jo|uNI^&kW^L}U}sY}NW|HdJzVt3C(fx%y{VWjXZ7hm%E{{=3sz5osVjeM#W2oC zc{*c+|6o{{ozceQY#z$L{|gOJCE9W%F2`~+!k#O{C(&_HobB#BOi?N5Y>1?=X#ENs zizE2y^$cM8e2>uW+DY$yImlbH=l=}Lsg`1eyh_7Ug?SCBzEHy-#yB{|dU54OmF#sN zf2`f3`uGV>>=eSMM@9Q6wn2jQQRJL3&7FF(o{ak?vX3pi;0Rf0%}PteBWBSw2@KB_ zwO0tm*ygfMpZVtw%o~_kUcpXRZ4bc{+hgGFJx2M{4e(DVuW z8(9^KVvY$YseJIkA$zEUS21LM6#I9S5TGCsiU$j{`w}3#RH(|S-yS{mcVE%`1UdtO zUF~pl#XMH(QJA@1kREd!WUE@~*JWe~5PK5+k{!$ubL7{*5i7p?=I`f!(0|7Nhx78^ zbj|wnS(NG8Q~d zNBITYnS_4_(nBnTlDxbe&rr@7T)ijA^q8mT{7N5Ce;Q(q2@E;6saWOY;l|Awn73#K zmX22?+x;nYmXf;H%o1=dA$a&hdV0?mEm~gtz&$V6!3Dqh3~HIl1sL2AM5R=)A2KF) zKx4M{Ax2S+^gi@SI0Kaod3XzY4@Rv}t?-GtD)(IA)_~K`+w9Ac`|^!XF=%aA@uzKW zuwm!av3k|}Sq~OL?B*(jFwo%JbbPZGo}lM#kt#6*?otq`0$agFLzJI4vyIKqfL)p^ z^a2Gb)O4A-+o<}__N3fASTY7v!|dbuBje}nV@*EfQQOv!#@@9-+s?J(DqFXdAurIs z4`<99X6GqW81c1NyWHBkazNxX)Io^3g}<0AjiNP1r<{f{A!wdVs5}-+nYCUUUCXS3 z*YV@4n?VUG*ogJaki1J2a29X~^n{<=Don^CUvhP#Zrw;-M3nfx+fkVT~5o zW<9SZNLE$L+ey16u6f|#N)~jZQuj8FK)MfzTB<>To8_FM+~tBZRnf@n65QsEaP^KX z&0lWSr}8gxL@CJXeS%Oh)&n5P1J!B}Z~xStO#tzK;suVBt0--FHg`SCxtCPXkZEq? z!#zr1o(CS1w}u3RR~lyE$vE8Skw(mG6?Tpugy4Qa{Bym%N&LY>h6MsT{%6_uU2p#j z*|+f>1c&{PAUG4S)c+F%cL7d15rHDjOh+!Lgf{HpE)vVu)s&GzE(-~Khu{mWk4_z# zkJ&->J?-^L;+5?Cg>YEgoQyu~KeCna#rZey37Kd9VSfB{s=-{I-)D6CUb_O#e8yE7 zeN$2wo&cVp0h1Xs1s!~-^2Zba40nllOn!6CTp!99csdt8uTd9dHA0)m`xkIXiJito zTJ?M^o0@-c^Mw}8z;Kq%V(diZQD=3^p(?|wP-liYYQ(pysge+q$Ae^r^oeOZXU993 z{tkXKn_dcogp3+78tSLS|(;NW0~k~Se&%vlBel=iLnW#Kwa!ACWo`aRZWKPVh6h0?lIyfmUeOP z6z0p?$=kCD8N(=F$Jg=v9_h>F^ASCt}&(*@o~zPO$>+mID*(NrpOH$HTaPOykKt)_Z_Wa;3Lc z3zFm_E{@K&RMhZpRze%2-J6@{tn(*xSofF3G zDqnS7yBTasHAMJVEJgmAThusu@yAJZOp4EB81k&ZQ+Ld}*it41Ed~hvk%ivfBWjp} z8R(>Iv*z!mHJ?p8EY|L#=atx^{M6n1JBrm^NuDK5JCPE;-Mf-hJv-5%@PzD<|A=qf zxK+z=F`aM$4`JWJFxDyQ#;R0Vk?PZvEmPY=R|Tent6PVOdSb>Dn6sKq%NLI0iHMWd zDS_cKT-6cWLMs+UW)e7cbXL}7kual4SYIp3R_c#qsV@U(R3#McYHy%+ekl>uIv}7X z`LTdvUlMOWXa%-Wjp3z84TysJL{77R_F@tW8;MxvAm`vfzJmqhJxT9^@VX)~6E=<^ zlG|5>qQoOn0}(`~$p7Q>{SAm{y@li}KEmmkpj){Oy+E_(YwyR(1hy@XcM=*Nk|M)W zt1W4;+jRQFsP-k2FC<{1XBw_74rw1CmOuc+?MGO?|M5;(=O+e7^9IyK)&?581A1Zz z_dXfn*c<-NpNhor$2Gq7$KVz)oXHL%ryr34?uU#uUNuH@40cpf zFdRt9ZH%DMhu=5=xJ_zm#J592dVqz2J)b{)od`!JzKf9&n$qY+Ug)F|kPhb$UCyfY zqOWDpc|dk^SU=3QX9VAin%vA!>iU^B{*J*Ptj}$` zJ%fF%+|et_aMkP%$H|P;I;+vGknl{54s#ui-FpJwUSXg~=eCrPorC01$%UPS=Xkmc ztwssra!hc&gu4Th@e*tkQlD-POBq%{b_jk!=-dmreB>i7Ymw99_h|T3FQpLLcSLP6 zUBOqN_MnMmqHk*Os$Y0}2kAS;#uY-GXcBCaFCEPxZ~t6`V5;AZ=LtT`j&QACC+0Hb zYjz|j45Nyu0{J0oR=xI>t|hFsh;hU!VI}T`T!k)9+B0b68u@&Xc27}eWhgmuGl^+I z0!coR635Mh`l9aoZXCkI$UJwgoh6XKY+ApCy#lim;wV%apu@_+^CP*5eGSnL6uc#_ zJWs9f9nzG_L&x@Vyt>%=5dFS;X$%;^aZij}Z@`f6Uv#ZNlpfxAtuHifN$Rh12K}Uv zBwNP!hzYW36v(}x0!`p>AJ%KtA6o!p=pM9pWYIw*W(BjfO%l$2~L0ygf+XETsvu1X@2@|EjJy9 zJjH^1%kkOWTpxfYv4%^zEbCQSxA3fRZb*@eLD_g)_9Xk+K{8uo+By~*V46C@Cht{9La{TtD`Wc>;)h=$Bau9`zs`#g;z zMU0B*Z{@+MGdE!F_xnUqow$>R)ze!Chcsoen>zZew$+BM#)7>u6}(2a8TvW0T&0^l zA~&BkZu=?$Nfl-COFA>E%?f}c!1CrWg2GZc$ARJ&*Ho*iU7jim%MaDs)9V6#Jg#fc z226l!-hj>VF=|b^g7Y?-_3A+4NY6k*{^_>J*J=?0clg57qE}d;^T4u$AVhsymSoQ=BUL$XXsO`eu`NbN^1*@?8~ZSFe@Bvtr2>VTOEi#xkEY9&?Z#1BQTEiKR_<@n+yQlu~nt`S!$D~_JFq)M!%ispo{meJTWTZZBPmRYl(; zD!XWUYj&1n?bbN=z_BUy4WeR!@SDr4>AxbUdj`Z5 zR1D>!;Riz?pC*c`%P|kPGSF7=Kw`PW73dAwqx_qKX_43Tu(UXpSx_s8%;aFNNBWE*)FH+NS&}h7 zl?tOZ@PqX~f4@^qR-_t{8J>^-XJp6!qzM02M=-mRp_K1i5f=RyMfksR1ZVz{Ek64H zW{Z=HD5V2!Ezi6D3i@y_&mW6)v@9Qebknw?3=zR9Uqe~oLAsfZMgCb=y^;whUO%bGX@6r8 z5h)BfDXM#c-Ih1&cSB#^zVho&MImi%#)!?y+5%{8`N8JyS9|oY^NAJ>N6zcJA}{u? zZ*BUH08MjrcD~7+Z^i7h|B~+h%R(=xJhB0^QCJ%7?WzRhRjgRE-sh4s!7Dywt7aVm zpIL;Mqj~x)B1@guooMycLpB>Kb-eX4xWV{LC`2@$?94L?Kz{K1Pe{&xl=DUl>b26h zU>y1{g7JUp6XJ@a^!}xWVGfi466Vn}Xs7~5j5HzD8dEWtK-eD%Jjt+h)M8oqd3uGN z2?ufr9{lsd6g1C8vmcW93H$=K1al(EM%5jW>)kc_*&t!-VP$DaRUe(Ozk!BQD_RLQ zj?ni7E4Qj*+!;b%l^oS9Bryjv2l6H+yn~e&Smy}GW^%9Ggy|ESN7rMdMbOD((;Mtf zq#m>N5#ciwg`zSrP*#8jHf4`W2&)~93-XiVxCES-SWPqomckgp*iiY~Dm*O+zYc;z z*9={RJC%NSTPp=M%Ne+5Y-#27d3N9>cuHq!ExSK4yn+S{*~`V{!AlM|tgTf%9&4y#AG zd7ZO>wnoS<@N&WT2xJCUnY2$tPU`wv(AoI7`$f2UH9&?r1e76| zXL=_>L8u}ZC?&XLRE@aepSmFvZk!wTxr0STTOytZ=_lU|+9HaV>AKarCl`ur}*-M%rwC zq;@^F&`q3>sB9 z)urJjYc$~k5R2IH z+xB~sU6fn^ACQVF{>929F)!Te3a^6+t<hF@;P$stNN^mqh*cGj~pn+QGL`Mf$%sZ-Ep%;AeFuWB>syb9lfquuA9thbus7N#6gz*WM7?;r!4-%PDkjTM_fQq5;5g$yJq;zRAE&6hWYSO$L$tsQ(Ent7Im#J?;hXbLWmkWeDCcJ zu%+_k-EabQFekf#=EB57LyIjgz{9>Hk}KH&>`oEZNSYLdzyo!X_t}G|3Iy*+Qepj%7?T2I@p>NNdO?o__7GG2pO z>z=Jm1k~XSSTh`UcUMX@QKy=iA|y-pU=)s!L+ncU8{^DFG^ z+;FC#iZFF_e#OfoEZ?)<1P-?el?>7CzbEr$kt;(TDp(xR>t8=~X`m zr)OP)Up-W%2~ohBBVYvpI!#qq?N?V*yg{%q$z+)mvXDRr?~M3VR{4}ypP{lXKXuu+ zd``66TsLH$A;{zRXu3Gr$3=ub zt4T9L%uLhQ(sKOw(zGntzYH%OWqx|wH%5TZPaj_BR&J83{Jy|7W3}sJE59v7<@bLH zUxi1-ZOe^R%v=CM?K)ZWhLecU9JxfB8l~p`J;kHPRuXpFIpnE)DbXM^Oiihy{V1Po z8173hgFX0#`@2cB+U<7E6lbN1c8VBJ1tcSpNk0{Z+QqX0DVU6Ro0_bAGP8+>r@I*1 z=F9pz>WOcX9ONx~-L><8Qp#an@z^Zrco6s;u?J|25a!0Po5J}+=|KKc*sPYV9u7a2z z**QO5qa$%2NP74#n?aUgP5*^^$D*HheAE5N3cw5P>r`%0A1kY&6;Qqj3CBd1X?h@f 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 i*gxSx*DHQwA(Xf#N{@yh69^^kC?)YZ!;M~P?l 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≫;;?qz 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

`~*9~^bQ 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�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

85itH$9+!N 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 n^ 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К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 z�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

-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ⅇ%d`7? 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

s68da6SZq&N>iTv0xpoBKm!k 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æue8959w$k&j8>G) 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±Ok{Lu&DT$o;hoOG)-5b$qoCw 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

Jz_wp<& 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 + + + + + + + + + 1.7.365 + + + + + {ec8030f7-c20a-464f-9b0e-13a3a9e97384} + 45.0 + 54.0a1 + + https://raw.githubusercontent.com/mozilla/pdf.js/gh-pages/extensions/firefox/pdf.js.xpi + + + + + + + {aa3c5121-dab2-40e2-81ca-7ea25febc110} + 45.0 + 54.0a1 + + https://raw.githubusercontent.com/mozilla/pdf.js/gh-pages/extensions/firefox/pdf.js.xpi + + + + + + + + \ No newline at end of file diff --git a/features/index.html b/features/index.html new file mode 100644 index 00000000..47a1bc6a --- /dev/null +++ b/features/index.html @@ -0,0 +1,116 @@ + + + + + + Required features testing for PDF.js + + + + + +

Required Features for PDF.js

+
User Agent:
+ + + + + + + + + +
Tests Results
NameTestImpactAreaEmulated
+ + + + + + + diff --git a/features/tests.js b/features/tests.js new file mode 100644 index 00000000..42246b52 --- /dev/null +++ b/features/tests.js @@ -0,0 +1,656 @@ +/* Copyright 2012 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// simple and incomplete implementation of promises +function Promise() {} +Promise.prototype = { + then: function (callback) { + this.callback = callback; + if ('result' in this) callback(this.result); + }, + resolve: function (result) { + if ('result' in this) return; + this.result = result; + if ('callback' in this) this.callback(result); + } +}; + +var isCanvasSupported = (function () { + try { + document.createElement('canvas').getContext('2d').fillStyle = '#FFFFFF'; + return true; + } catch (e) { + return false; + } +})(); + +var tests = [ + { + id: 'canvas', + name: 'CANVAS element is present', + run: function () { + if (isCanvasSupported) { + return { output: 'Success', emulated: '' }; + } else { + return { output: 'Failed', emulated: 'No' }; + } + }, + impact: 'Critical', + area: 'Core' + }, + { + id: 'get-literal', + name: 'get-literal properties', + run: function () { + try { + var Test = eval('var Test = { get t() { return {}; } }; Test'); + Test.t.test = true; + return { output: 'Success', emulated: '' }; + } catch (e) { + return { output: 'Failed', emulated: 'No' }; + } + }, + impact: 'Critical', + area: 'Core' + }, + { + id: 'addEventListener', + name: 'addEventListener() is present', + run: function () { + var div = document.createElement('div'); + if (div.addEventListener) + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'No' }; + }, + impact: 'Critical', + area: 'Core' + }, + { + id: 'Uint8Array', + name: 'Uint8Array is present', + run: function () { + if (typeof Uint8Array !== 'undefined') + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'Yes' }; + }, + impact: 'Critical', + area: 'Core' + }, + { + id: 'Uint16Array', + name: 'Uint16Array is present', + run: function () { + if (typeof Uint16Array !== 'undefined') + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'Yes' }; + }, + impact: 'Critical', + area: 'Core' + }, + { + id: 'Int32Array', + name: 'Int32Array is present', + run: function () { + if (typeof Int32Array !== 'undefined') + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'Yes' }; + }, + impact: 'Critical', + area: 'Core' + }, + { + id: 'Float32Array', + name: 'Float32Array is present', + run: function () { + if (typeof Float32Array !== 'undefined') + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'Yes' }; + }, + impact: 'Critical', + area: 'Core' + }, + { + id: 'Float64Array', + name: 'Float64Array is present', + run: function () { + if (typeof Float64Array !== 'undefined') + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'Yes' }; + }, + impact: 'Critical', + area: 'Core' + }, + { + id: 'Object-create', + name: 'Object.create() is present', + run: function () { + if (Object.create instanceof Function) + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'Yes' }; + }, + impact: 'Critical', + area: 'Core' + }, + { + id: 'Object-defineProperty', + name: 'Object.defineProperty() is present', + run: function () { + if (Object.defineProperty instanceof Function) + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'Yes' }; + }, + impact: 'Critical', + area: 'Core' + }, + { + id: 'Object-defineProperty-DOM', + name: 'Object.defineProperty() can be used on DOM objects', + run: function () { + if (!(Object.defineProperty instanceof Function)) + return { output: 'Skipped', emulated: '' }; + try { + // some browsers (e.g. safari) cannot use defineProperty() on DOM objects + // and thus the native version is not sufficient + Object.defineProperty(new Image(), 'id', { value: 'test' }); + return { output: 'Success', emulated: '' }; + } catch (e) { + return { output: 'Failed', emulated: 'Yes' }; + } + }, + impact: 'Important', + area: 'Viewer' + }, + { + id: 'get-literal-redefine', + name: 'Defined via get-literal properties can be redefined', + run: function () { + if (!(Object.defineProperty instanceof Function)) + return { output: 'Skipped', emulated: '' }; + try { + var TestGetter = eval('var Test = function () {}; Test.prototype = { get id() { } }; Test'); + Object.defineProperty(new TestGetter(), 'id', + { value: '', configurable: true, enumerable: true, writable: false }); + return { output: 'Success', emulated: '' }; + } catch (e) { + return { output: 'Failed', emulated: 'Yes' }; + } + }, + impact: 'Critical', + area: 'Core' + }, + { + id: 'Object-keys', + name: 'Object.keys() is present', + run: function () { + if (Object.keys instanceof Function) + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'Yes' }; + }, + impact: 'Critical', + area: 'Core' + }, + { + id: 'FileReader', + name: 'FileReader is present', + run: function () { + if (typeof FileReader !== 'undefined') + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'No' }; + }, + impact: 'Normal', + area: 'Demo' + }, + { + id: 'FileReader-readAsArrayBuffer', + name: 'FileReader.prototype.readAsArrayBuffer() is present', + run: function () { + if (typeof FileReader === 'undefined') + return { output: 'Skipped', emulated: '' }; + if (FileReader.prototype.readAsArrayBuffer instanceof Function) + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'Yes' }; + }, + impact: 'Normal', + area: 'Demo' + }, + { + id: 'XMLHttpRequest-overrideMimeType', + name: 'XMLHttpRequest.prototype.overrideMimeType() is present', + run: function () { + if (XMLHttpRequest.prototype.overrideMimeType instanceof Function) + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'Yes' }; + }, + impact: 'Important', + area: 'Viewer' + }, + { + id: 'XMLHttpRequest-response', + name: 'XMLHttpRequest.prototype.response is present', + run: function () { + var xhr = new XMLHttpRequest(); + if ('response' in xhr) + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'Yes' }; + }, + impact: 'Critical', + area: 'Core' + }, + { + id: 'bota', + name: 'btoa() is present', + run: function () { + if ('btoa' in window) + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'Yes' }; + }, + impact: 'Critical', + area: 'Core' + }, + { + id: 'atob', + name: 'atob() is present', + run: function () { + if ('atob' in window) + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'Yes' }; + }, + impact: 'Critical', + area: 'Core' + }, + { + id: 'Function-bind', + name: 'Function.prototype.bind is present', + run: function () { + if (Function.prototype.bind instanceof Function) + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'Yes' }; + }, + impact: 'Critical', + area: 'Core' + }, + { + id: 'dataset', + name: 'dataset is present for HTML element', + run: function () { + var div = document.createElement('div'); + if ('dataset' in div) + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'Yes' }; + }, + impact: 'Important', + area: 'Viewer' + }, + { + id: 'classList', + name: 'classList is present for HTML element', + run: function () { + var div = document.createElement('div'); + if ('classList' in div) + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'Yes' }; + }, + impact: 'Important', + area: 'Viewer' + }, + { + id: 'console', + name: 'console object is present', + run: function () { + if ('console' in window) + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'Yes' }; + }, + impact: 'Critical', + area: 'Core' + }, + { + id: 'console-log-bind', + name: 'console.log is a bind-able function', + run: function () { + if (!('console' in window)) + return { output: 'Skipped', emulated: '' }; + if ('bind' in console.log) + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'Yes' }; + }, + impact: 'Critical', + area: 'Core' + }, + { + id: 'navigator-language', + name: 'navigator.language is present', + run: function () { + if ('language' in navigator) + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'Yes' }; + }, + impact: 'Important', + area: 'Viewer' + }, + { + id: 'fillRule-evenodd', + name: 'evenodd fill rule is supported', + run: function () { + if (!isCanvasSupported) + return { output: 'Skipped', emulated: '' }; + + var canvas = document.createElement('canvas'); + var ctx = canvas.getContext('2d'); + ctx.rect(1, 1, 50, 50); + ctx.rect(5, 5, 41, 41); + ctx.fill('evenodd'); + + var data = ctx.getImageData(0, 0, 50, 50).data; + var isEvenOddFill = data[20 * 4 + 20 * 200 + 3] == 0 && + data[2 * 4 + 2 * 200 + 3] != 0; + + if (isEvenOddFill) + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'No' }; + }, + impact: 'Important', + area: 'Core' + }, + { + id: 'dash-array', + name: 'dashed line style is supported', + run: function () { + if (!isCanvasSupported) + return { output: 'Skipped', emulated: '' }; + + var canvas = document.createElement('canvas'); + var ctx = canvas.getContext('2d'); + ctx.moveTo(0,5); + ctx.lineTo(50, 5); + ctx.lineWidth = 10; + + if ('setLineDash' in ctx) { + ctx.setLineDash([10, 10]); + ctx.lineDashOffset = 0; + } + ctx.stroke(); + + var data = ctx.getImageData(0, 0, 50, 50).data; + var isDashed = data[5 * 4 + 5 * 200 + 3] != 0 && + data[15 * 4 + 5 * 200 + 3] == 0; + + if (isDashed) + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'No' }; + }, + impact: 'Important', + area: 'Core' + }, + { + id: 'font-face', + name: '@font-face is supported/enabled', + run: function () { + if (!isCanvasSupported) + return { output: 'Skipped', emulated: '' }; + var promise = new Promise(); + setTimeout(function() { + if (checkCanvas('plus')) + promise.resolve({ output: 'Success', emulated: '' }); + else + promise.resolve({ output: 'Failed', emulated: 'No' }); + }, 2000); + return promise; + }, + impact: 'Important', + area: 'Core' + }, + { + id: 'font-face-sync', + name: '@font-face loading completion detection', + run: function () { + if (!isCanvasSupported) + return { output: 'Skipped', emulated: '' }; + + // Add the font-face rule to the document + var rule = '@font-face { font-family: \'plus-loaded\'; src: url(data:font/opentype;base64,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); }'; + + var styleElement = document.getElementById('fontFaces'); + var styleSheet = styleElement.sheet; + styleSheet.insertRule(rule, styleSheet.cssRules.length); + + // checking if data urls are loaded synchronously + if (checkCanvas('plus-loaded')) + return { output: 'Success', emulated: '' }; + + // TODO checking if data urls are loaded asynchronously + + var usageElement = document.createElement('div'); + usageElement.setAttribute('style', 'font-family: plus-loaded; visibility: hidden;'); + usageElement.textContent = '`'; + document.body.appendChild(usageElement); + + // verify is font is loaded + var promise = new Promise(); + setTimeout(function() { + if (checkCanvas('plus-loaded')) + promise.resolve({ output: 'Failed', emulated: 'Yes' }); + else + promise.resolve({ output: 'Failed', emulated: 'No' }); + }, 2000); + return promise; + }, + impact: 'Important', + area: 'Core' + }, + { + id: 'Worker', + name: 'Worker is present', + run: function () { + if (typeof Worker != 'undefined') + return { output: 'Success', emulated: '' }; + else + return { output: 'Failed', emulated: 'No' }; + }, + impact: 'Important', + area: 'Core' + }, + { + id: 'Worker-Uint8Array', + name: 'Worker can receive/send typed arrays', + run: function () { + if (typeof Worker == 'undefined') + return { output: 'Skipped', emulated: '' }; + + try { + var worker = new Worker('worker-stub.js'); + + var promise = new Promise(); + var timeout = setTimeout(function () { + promise.resolve({ output: 'Failed', emulated: '?' }); + }, 5000); + + worker.addEventListener('message', function (e) { + var data = e.data; + if (data.action == 'test' && data.result) + promise.resolve({ output: 'Success', emulated: '' }); + else + promise.resolve({ output: 'Failed', emulated: 'Yes' }); + }, false); + worker.postMessage({action: 'test', + data: new Uint8Array(60000000)}); // 60MB + return promise; + } catch (e) { + return { output: 'Failed', emulated: 'Yes' }; + } + }, + impact: 'Important', + area: 'Core' + }, + { + id: 'Worker-transfers', + name: 'Worker can use transfers for postMessage', + run: function () { + if (typeof Worker == 'undefined') + return { output: 'Skipped', emulated: '' }; + + try { + var worker = new Worker('worker-stub.js'); + + var promise = new Promise(); + var timeout = setTimeout(function () { + promise.resolve({ output: 'Failed', emulated: '?' }); + }, 5000); + + worker.addEventListener('message', function (e) { + var data = e.data; + if (data.action == 'test-transfers' && data.result) + promise.resolve({ output: 'Success', emulated: '' }); + else + promise.resolve({ output: 'Failed', emulated: 'Yes' }); + }, false); + var testObj = new Uint8Array([255]); + worker.postMessage({action: 'test-transfers', + data: testObj}, [testObj.buffer]); + return promise; + } catch (e) { + return { output: 'Failed', emulated: 'Yes' }; + } + }, + impact: 'Normal', + area: 'Core' + }, + { + id: 'Worker-xhr-response', + name: 'XMLHttpRequest supports the response property in web workers', + run: function () { + if (typeof Worker == 'undefined') + return { output: 'Skipped', emulated: '' }; + + try { + var worker = new Worker('worker-stub.js'); + + var promise = new Promise(); + var timeout = setTimeout(function () { + promise.resolve({ output: 'Failed', emulated: '?' }); + }, 5000); + + worker.addEventListener('message', function (e) { + var data = e.data; + if (data.action == 'xhr' && data.result) + promise.resolve({ output: 'Success', emulated: '' }); + else + promise.resolve({ output: 'Failed', emulated: 'Yes' }); + }, false); + worker.postMessage({action: 'xhr'}); + return promise; + } catch (e) { + return { output: 'Failed', emulated: 'Yes' }; + } + }, + impact: 'Important', + area: 'Core' + }, + { + id: 'Canvas Blend Mode', + name: 'Canvas supports extended blend modes', + run: function () { + var fail = { output: 'Failed', emulated: 'No' }; + var ctx = document.createElement('canvas').getContext('2d'); + ctx.canvas.width = 1; + ctx.canvas.height = 1; + var mode = 'difference'; + ctx.globalCompositeOperation = mode; + if (ctx.globalCompositeOperation !== mode) { + return fail; + } + // Chrome supports setting the value, but it may not actually be + // implemented, so we have to actually test the blend mode. + ctx.fillStyle = 'red'; + ctx.fillRect(0, 0, 1, 1); + ctx.fillStyle = 'blue'; + ctx.fillRect(0, 0, 1, 1); + var pix = ctx.getImageData(0, 0, 1, 1).data; + if (pix[0] !== 255 || pix[1] !== 0 || pix[2] !== 255) { + return fail; + } + return { output: 'Success', emulated: '' }; + }, + impact: 'Important', + area: 'Core' + } +]; + +function checkCanvas(font) { + var canvas = document.createElement('canvas'); + var canvasHolder = document.getElementById('canvasHolder'); + canvasHolder.appendChild(canvas); + var ctx = canvas.getContext('2d'); + ctx.font = '40px \'' + font + '\''; + ctx.fillText('\u0060', 0, 40); + var data = ctx.getImageData(0, 0, 40, 40).data; + canvasHolder.removeChild(canvas); + + // detects plus figure + var minx = 40, maxx = 0, miny = 40, maxy = 0; + for (var y = 0; y < 40; y++) { + for (var x = 0; x < 40; x++) { + if (data[x * 4 + y * 160 + 3] == 0) continue; // no color + minx = Math.min(minx, x); miny = Math.min(miny, y); + maxx = Math.max(maxx, x); maxy = Math.max(maxy, y); + } + } + + var colors = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]; + var counts = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]; + for (var y = miny; y <= maxy; y++) { + for (var x = minx; x <= maxx; x++) { + var i = Math.floor((x - minx) * 3 / (maxx - minx + 1)); + var j = Math.floor((y - miny) * 3 / (maxy - miny + 1)); + counts[i][j]++; + if (data[x * 4 + y * 160 + 3] != 0) + colors[i][j]++; + } + } + var isPlus = + colors[0][0] * 3 < counts[0][0] && + colors[0][1] * 3 > counts[0][1] && + colors[0][2] * 3 < counts[0][2] && + colors[1][0] * 3 > counts[1][0] && + colors[1][1] * 3 > counts[1][1] && + colors[1][2] * 3 > counts[1][2] && + colors[2][0] * 3 < counts[2][0] && + colors[2][1] * 3 > counts[2][1] && + colors[2][2] * 3 < counts[2][2]; + return isPlus; +} diff --git a/features/worker-stub.js b/features/worker-stub.js new file mode 100644 index 00000000..d26f65f3 --- /dev/null +++ b/features/worker-stub.js @@ -0,0 +1,37 @@ +/* Copyright 2012 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +onmessage = function (e) { + var data = e.data; + switch (data.action) { + case 'test': + postMessage({action: 'test', result: data.data instanceof Uint8Array}); + break; + case 'test-transfers': + postMessage({action: 'test-transfers', result: data.data[0] === 255}); + break; + case 'xhr': + var xhr = new XMLHttpRequest(); + var responseExists = 'response' in xhr; + // check if the property is actually implemented + try { + var dummy = xhr.responseType; + } catch (e) { + responseExists = false; + } + postMessage({action: 'xhr', result: responseExists}); + break; + } +}; diff --git a/getting_started/index.html b/getting_started/index.html new file mode 100644 index 00000000..b70965a3 --- /dev/null +++ b/getting_started/index.html @@ -0,0 +1,139 @@ + + + + + + + + + Getting Started + + + + + + +
+
+
+

Getting Started

+

An introduction to PDF.js with examples.

+

Introduction

+

Before downloading PDF.js please take a moment to understand the different layers of the PDF.js project.

+ + + + + + + + + + + + + + + + + + + + + +
LayerAbout
CoreThe core layer is where a binary PDF is parsed and interpreted. This layer is the foundation for all subsequent layers. It is not documented here because using it directly is considered an advanced usage and the API is likely to change. For an example of using the core layer see the PDF Object Browser +
DisplayThe display layer takes the core layer and exposes an easier to use API to render PDFs and get other information out of a document. This API is what the version number is based on.
ViewerThe viewer is built on the display layer and is the UI for PDF viewer in Firefox and the other browser extensions within the project. It can be a good starting point for building your own viewer. However, we do ask if you plan to embed the viewer in your own site, that it not just be an unmodified version. Please re-skin it or build upon it.
+ +

Download

+
+
+

Pre-built

+

+ Includes the generic build of PDF.js and the viewer. +

+ + Stable (v1.6.210) + Beta (v1.7.225) + +
+
+

Source

+ To get a local copy of the current code, clone it using git: +
$ git clone git://github.com/mozilla/pdf.js.git
+$ cd pdf.js
+
+
+
+ +

File Layout Overview

+

Prebuilt

+
├── LICENSE
+├── build/
+│   ├── pdf.js                             - display layer
+│   └── pdf.worker.js                      - core layer
+└── web/
+    ├── cmaps/                             - character maps(required by core)
+    ├── compatibility.js                   - polyfills for missing features
+    ├── compressed.tracemonkey-pldi-09.pdf - test pdf
+    ├── debugger.js                        - helpful pdf debugging features
+    ├── images/                            - images for the viewer and annotation icons
+    ├── l10n.js                            - localization
+    ├── locale/                            - translation files
+    ├── viewer.css                         - viewer style sheet
+    ├── viewer.html                        - viewer html
+    └── viewer.js                          - viewer layer
+

Source

+
├── AUTHORS
+├── CONTRIBUTING.md
+├── LICENSE
+├── README.md
+├── build/                                 - output of build steps (empty)
+├── docs/                                  - this
+├── examples/                              - bare bones examples
+├── extensions/                            - various browser extensions
+├── external/                              - third party code
+├── l10n/                                  - translation files
+├── make.js                                - build script
+├── package.json
+├── src/
+│   ├── core/                              - core layer
+│   ├── display/                           - display layer
+│   ├── images/
+│   ├── pdf.js                             - wrapper file that everything is bundled into
+│   ├── shared/                            - shared code between core and display layers
+│   └── worker_loader.js                   - used for developer builds to load worker files
+├── test/                                  - reference, unit, and font tests
+└── web/                                   - viewer layer
+

Trying the Viewer

+

With the prebuilt or source version open web/viewer.html in a browser and the test pdf should load. Note: the worker is not enabled for file:// urls, so use a server. If you’re using the source build and have node, you can run gulp server.

+

More Information

+

For a further walkthrough of a minimal viewer see the hello world example. More documentation can be found in our wiki too.

+
+
+
+
+
+

©Mozilla and individual contributors

PDF.js is licensed under Apache, +documentation is licensed under CC BY-SA 2.5

+
+
+ + + + + \ No newline at end of file diff --git a/images/favicon.ico b/images/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..39040bb937c9e76f1a3bf4596460739db6cda0b7 GIT binary patch literal 32988 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 + + + + + + + + + + + + + diff --git a/index.html b/index.html new file mode 100644 index 00000000..85026b70 --- /dev/null +++ b/index.html @@ -0,0 +1,55 @@ + + + + + + + + + PDF.js + + + + + + + +
+
+

PDF.js

+

A general-purpose, web standards-based platform for parsing and rendering PDFs. +

+

+ Download + Demo + GitHub Project +

+
+
+
+
+
+

©Mozilla and individual contributors

PDF.js is licensed under Apache, +documentation is licensed under CC BY-SA 2.5

+
+
+ + + + + \ No newline at end of file diff --git a/js/bootstrap.min.js b/js/bootstrap.min.js new file mode 100644 index 00000000..b04a0e82 --- /dev/null +++ b/js/bootstrap.min.js @@ -0,0 +1,6 @@ +/*! + * Bootstrap v3.1.1 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.isLoading=!1};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",f.resetText||d.data("resetText",d[e]()),d[e](f[b]||this.options[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},b.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!1;var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});return this.$element.trigger(j),j.isDefaultPrevented()?void 0:(this.sliding=!0,f&&this.pause(),this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")),f&&this.cycle(),this)};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("collapse in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);!e&&f.toggle&&"show"==c&&(c=!c),e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(b){a(d).remove(),a(e).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;(e||"destroy"!=c)&&(e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]())})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(a(c).is("body")?window:c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);{var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})}},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(b.RESET).addClass("affix");var a=this.$window.scrollTop(),c=this.$element.offset();return this.pinnedOffset=c.top-a},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"top"==this.affixed&&(e.top+=d),"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(b.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:c-h-this.$element.height()}))}}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery); \ No newline at end of file diff --git a/js/jquery-2.1.0.min.js b/js/jquery-2.1.0.min.js new file mode 100644 index 00000000..cbe6abe5 --- /dev/null +++ b/js/jquery-2.1.0.min.js @@ -0,0 +1,4 @@ +/*! jQuery v2.1.0 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k="".trim,l={},m=a.document,n="2.1.0",o=function(a,b){return new o.fn.init(a,b)},p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};o.fn=o.prototype={jquery:n,constructor:o,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=o.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return o.each(this,a,b)},map:function(a){return this.pushStack(o.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},o.extend=o.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||o.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(o.isPlainObject(d)||(e=o.isArray(d)))?(e?(e=!1,f=c&&o.isArray(c)?c:[]):f=c&&o.isPlainObject(c)?c:{},g[b]=o.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},o.extend({expando:"jQuery"+(n+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===o.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return a-parseFloat(a)>=0},isPlainObject:function(a){if("object"!==o.type(a)||a.nodeType||o.isWindow(a))return!1;try{if(a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=o.trim(a),a&&(1===a.indexOf("use strict")?(b=m.createElement("script"),b.text=a,m.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":k.call(a)},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?o.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),o.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||o.guid++,f):void 0},now:Date.now,support:l}),o.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=o.type(a);return"function"===c||o.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s="sizzle"+-new Date,t=a.document,u=0,v=0,w=eb(),x=eb(),y=eb(),z=function(a,b){return a===b&&(j=!0),0},A="undefined",B=1<<31,C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=D.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",M=L.replace("w","w#"),N="\\["+K+"*("+L+")"+K+"*(?:([*^$|!~]?=)"+K+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+M+")|)|)"+K+"*\\]",O=":("+L+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+N.replace(3,8)+")*)|.*)\\)|)",P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(O),U=new RegExp("^"+M+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L.replace("w","w*")+")"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=/'|\\/g,ab=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),bb=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{G.apply(D=H.call(t.childNodes),t.childNodes),D[t.childNodes.length].nodeType}catch(cb){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function db(a,b,d,e){var f,g,h,i,j,m,p,q,u,v;if((b?b.ownerDocument||b:t)!==l&&k(b),b=b||l,d=d||[],!a||"string"!=typeof a)return d;if(1!==(i=b.nodeType)&&9!==i)return[];if(n&&!e){if(f=Z.exec(a))if(h=f[1]){if(9===i){if(g=b.getElementById(h),!g||!g.parentNode)return d;if(g.id===h)return d.push(g),d}else if(b.ownerDocument&&(g=b.ownerDocument.getElementById(h))&&r(b,g)&&g.id===h)return d.push(g),d}else{if(f[2])return G.apply(d,b.getElementsByTagName(a)),d;if((h=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(h)),d}if(c.qsa&&(!o||!o.test(a))){if(q=p=s,u=b,v=9===i&&a,1===i&&"object"!==b.nodeName.toLowerCase()){m=ob(a),(p=b.getAttribute("id"))?q=p.replace(_,"\\$&"):b.setAttribute("id",q),q="[id='"+q+"'] ",j=m.length;while(j--)m[j]=q+pb(m[j]);u=$.test(a)&&mb(b.parentNode)||b,v=m.join(",")}if(v)try{return G.apply(d,u.querySelectorAll(v)),d}catch(w){}finally{p||b.removeAttribute("id")}}}return xb(a.replace(P,"$1"),b,d,e)}function eb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function fb(a){return a[s]=!0,a}function gb(a){var b=l.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function hb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function ib(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||B)-(~a.sourceIndex||B);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function jb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function kb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function lb(a){return fb(function(b){return b=+b,fb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function mb(a){return a&&typeof a.getElementsByTagName!==A&&a}c=db.support={},f=db.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},k=db.setDocument=function(a){var b,e=a?a.ownerDocument||a:t,g=e.defaultView;return e!==l&&9===e.nodeType&&e.documentElement?(l=e,m=e.documentElement,n=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){k()},!1):g.attachEvent&&g.attachEvent("onunload",function(){k()})),c.attributes=gb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=gb(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(e.getElementsByClassName)&&gb(function(a){return a.innerHTML="
",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=gb(function(a){return m.appendChild(a).id=s,!e.getElementsByName||!e.getElementsByName(s).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==A&&n){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){var c=typeof a.getAttributeNode!==A&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==A?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==A&&n?b.getElementsByClassName(a):void 0},p=[],o=[],(c.qsa=Y.test(e.querySelectorAll))&&(gb(function(a){a.innerHTML="",a.querySelectorAll("[t^='']").length&&o.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||o.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll(":checked").length||o.push(":checked")}),gb(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&o.push("name"+K+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||o.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),o.push(",.*:")})),(c.matchesSelector=Y.test(q=m.webkitMatchesSelector||m.mozMatchesSelector||m.oMatchesSelector||m.msMatchesSelector))&&gb(function(a){c.disconnectedMatch=q.call(a,"div"),q.call(a,"[s!='']:x"),p.push("!=",O)}),o=o.length&&new RegExp(o.join("|")),p=p.length&&new RegExp(p.join("|")),b=Y.test(m.compareDocumentPosition),r=b||Y.test(m.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},z=b?function(a,b){if(a===b)return j=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===t&&r(t,a)?-1:b===e||b.ownerDocument===t&&r(t,b)?1:i?I.call(i,a)-I.call(i,b):0:4&d?-1:1)}:function(a,b){if(a===b)return j=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],k=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:i?I.call(i,a)-I.call(i,b):0;if(f===g)return ib(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)k.unshift(c);while(h[d]===k[d])d++;return d?ib(h[d],k[d]):h[d]===t?-1:k[d]===t?1:0},e):l},db.matches=function(a,b){return db(a,null,null,b)},db.matchesSelector=function(a,b){if((a.ownerDocument||a)!==l&&k(a),b=b.replace(S,"='$1']"),!(!c.matchesSelector||!n||p&&p.test(b)||o&&o.test(b)))try{var d=q.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return db(b,l,null,[a]).length>0},db.contains=function(a,b){return(a.ownerDocument||a)!==l&&k(a),r(a,b)},db.attr=function(a,b){(a.ownerDocument||a)!==l&&k(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!n):void 0;return void 0!==f?f:c.attributes||!n?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},db.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},db.uniqueSort=function(a){var b,d=[],e=0,f=0;if(j=!c.detectDuplicates,i=!c.sortStable&&a.slice(0),a.sort(z),j){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return i=null,a},e=db.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=db.selectors={cacheLength:50,createPseudo:fb,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ab,bb),a[3]=(a[4]||a[5]||"").replace(ab,bb),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||db.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&db.error(a[0]),a},PSEUDO:function(a){var b,c=!a[5]&&a[2];return V.CHILD.test(a[0])?null:(a[3]&&void 0!==a[4]?a[2]=a[4]:c&&T.test(c)&&(b=ob(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ab,bb).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=w[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&w(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==A&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=db.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),t=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&t){k=q[s]||(q[s]={}),j=k[a]||[],n=j[0]===u&&j[1],m=j[0]===u&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[u,n,m];break}}else if(t&&(j=(b[s]||(b[s]={}))[a])&&j[0]===u)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(t&&((l[s]||(l[s]={}))[a]=[u,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||db.error("unsupported pseudo: "+a);return e[s]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?fb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:fb(function(a){var b=[],c=[],d=g(a.replace(P,"$1"));return d[s]?fb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:fb(function(a){return function(b){return db(a,b).length>0}}),contains:fb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:fb(function(a){return U.test(a||"")||db.error("unsupported lang: "+a),a=a.replace(ab,bb).toLowerCase(),function(b){var c;do if(c=n?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===m},focus:function(a){return a===l.activeElement&&(!l.hasFocus||l.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:lb(function(){return[0]}),last:lb(function(a,b){return[b-1]}),eq:lb(function(a,b,c){return[0>c?c+b:c]}),even:lb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:lb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:lb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:lb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function qb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=v++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[u,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[s]||(b[s]={}),(h=i[d])&&h[0]===u&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function rb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function sb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function tb(a,b,c,d,e,f){return d&&!d[s]&&(d=tb(d)),e&&!e[s]&&(e=tb(e,f)),fb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||wb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:sb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=sb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=sb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ub(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],i=g||d.relative[" "],j=g?1:0,k=qb(function(a){return a===b},i,!0),l=qb(function(a){return I.call(b,a)>-1},i,!0),m=[function(a,c,d){return!g&&(d||c!==h)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>j;j++)if(c=d.relative[a[j].type])m=[qb(rb(m),c)];else{if(c=d.filter[a[j].type].apply(null,a[j].matches),c[s]){for(e=++j;f>e;e++)if(d.relative[a[e].type])break;return tb(j>1&&rb(m),j>1&&pb(a.slice(0,j-1).concat({value:" "===a[j-2].type?"*":""})).replace(P,"$1"),c,e>j&&ub(a.slice(j,e)),f>e&&ub(a=a.slice(e)),f>e&&pb(a))}m.push(c)}return rb(m)}function vb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,i,j,k){var m,n,o,p=0,q="0",r=f&&[],s=[],t=h,v=f||e&&d.find.TAG("*",k),w=u+=null==t?1:Math.random()||.1,x=v.length;for(k&&(h=g!==l&&g);q!==x&&null!=(m=v[q]);q++){if(e&&m){n=0;while(o=a[n++])if(o(m,g,i)){j.push(m);break}k&&(u=w)}c&&((m=!o&&m)&&p--,f&&r.push(m))}if(p+=q,c&&q!==p){n=0;while(o=b[n++])o(r,s,g,i);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=E.call(j));s=sb(s)}G.apply(j,s),k&&!f&&s.length>0&&p+b.length>1&&db.uniqueSort(j)}return k&&(u=w,h=t),r};return c?fb(f):f}g=db.compile=function(a,b){var c,d=[],e=[],f=y[a+" "];if(!f){b||(b=ob(a)),c=b.length;while(c--)f=ub(b[c]),f[s]?d.push(f):e.push(f);f=y(a,vb(e,d))}return f};function wb(a,b,c){for(var d=0,e=b.length;e>d;d++)db(a,b[d],c);return c}function xb(a,b,e,f){var h,i,j,k,l,m=ob(a);if(!f&&1===m.length){if(i=m[0]=m[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&c.getById&&9===b.nodeType&&n&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(ab,bb),b)||[])[0],!b)return e;a=a.slice(i.shift().value.length)}h=V.needsContext.test(a)?0:i.length;while(h--){if(j=i[h],d.relative[k=j.type])break;if((l=d.find[k])&&(f=l(j.matches[0].replace(ab,bb),$.test(i[0].type)&&mb(b.parentNode)||b))){if(i.splice(h,1),a=f.length&&pb(i),!a)return G.apply(e,f),e;break}}}return g(a,m)(f,b,!n,e,$.test(a)&&mb(b.parentNode)||b),e}return c.sortStable=s.split("").sort(z).join("")===s,c.detectDuplicates=!!j,k(),c.sortDetached=gb(function(a){return 1&a.compareDocumentPosition(l.createElement("div"))}),gb(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||hb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&gb(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||hb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),gb(function(a){return null==a.getAttribute("disabled")})||hb(J,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),db}(a);o.find=t,o.expr=t.selectors,o.expr[":"]=o.expr.pseudos,o.unique=t.uniqueSort,o.text=t.getText,o.isXMLDoc=t.isXML,o.contains=t.contains;var u=o.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(o.isFunction(b))return o.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return o.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return o.filter(b,a,c);b=o.filter(b,a)}return o.grep(a,function(a){return g.call(b,a)>=0!==c})}o.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?o.find.matchesSelector(d,a)?[d]:[]:o.find.matches(a,o.grep(b,function(a){return 1===a.nodeType}))},o.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(o(a).filter(function(){for(b=0;c>b;b++)if(o.contains(e[b],this))return!0}));for(b=0;c>b;b++)o.find(a,e[b],d);return d=this.pushStack(c>1?o.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?o(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=o.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof o?b[0]:b,o.merge(this,o.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:m,!0)),v.test(c[1])&&o.isPlainObject(b))for(c in b)o.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=m.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=m,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):o.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(o):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),o.makeArray(a,this))};A.prototype=o.fn,y=o(m);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};o.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&o(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),o.fn.extend({has:function(a){var b=o(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(o.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?o(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&o.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?o.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(o(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(o.unique(o.merge(this.get(),o(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}o.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return o.dir(a,"parentNode")},parentsUntil:function(a,b,c){return o.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return o.dir(a,"nextSibling")},prevAll:function(a){return o.dir(a,"previousSibling")},nextUntil:function(a,b,c){return o.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return o.dir(a,"previousSibling",c)},siblings:function(a){return o.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return o.sibling(a.firstChild)},contents:function(a){return a.contentDocument||o.merge([],a.childNodes)}},function(a,b){o.fn[a]=function(c,d){var e=o.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=o.filter(d,e)),this.length>1&&(C[a]||o.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return o.each(a.match(E)||[],function(a,c){b[c]=!0}),b}o.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):o.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){o.each(b,function(b,c){var d=o.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&o.each(arguments,function(a,b){var c;while((c=o.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?o.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},o.extend({Deferred:function(a){var b=[["resolve","done",o.Callbacks("once memory"),"resolved"],["reject","fail",o.Callbacks("once memory"),"rejected"],["notify","progress",o.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return o.Deferred(function(c){o.each(b,function(b,f){var g=o.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&o.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?o.extend(a,d):d}},e={};return d.pipe=d.then,o.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&o.isFunction(a.promise)?e:0,g=1===f?a:o.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&o.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;o.fn.ready=function(a){return o.ready.promise().done(a),this},o.extend({isReady:!1,readyWait:1,holdReady:function(a){a?o.readyWait++:o.ready(!0)},ready:function(a){(a===!0?--o.readyWait:o.isReady)||(o.isReady=!0,a!==!0&&--o.readyWait>0||(H.resolveWith(m,[o]),o.fn.trigger&&o(m).trigger("ready").off("ready")))}});function I(){m.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),o.ready()}o.ready.promise=function(b){return H||(H=o.Deferred(),"complete"===m.readyState?setTimeout(o.ready):(m.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},o.ready.promise();var J=o.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===o.type(c)){e=!0;for(h in c)o.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,o.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(o(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};o.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=o.expando+Math.random()}K.uid=1,K.accepts=o.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,o.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(o.isEmptyObject(f))o.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,o.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{o.isArray(b)?d=b.concat(b.map(o.camelCase)):(e=o.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!o.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?o.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}o.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),o.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length; +while(c--)d=g[c].name,0===d.indexOf("data-")&&(d=o.camelCase(d.slice(5)),P(f,d,e[d]));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=o.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),o.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||o.isArray(c)?d=L.access(a,b,o.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=o.queue(a,b),d=c.length,e=c.shift(),f=o._queueHooks(a,b),g=function(){o.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:o.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),o.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length",l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";l.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return m.activeElement}catch(a){}}o.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=o.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof o!==U&&o.event.triggered!==b.type?o.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],n=q=h[1],p=(h[2]||"").split(".").sort(),n&&(l=o.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=o.event.special[n]||{},k=o.extend({type:n,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&o.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(n,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),o.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],n=q=h[1],p=(h[2]||"").split(".").sort(),n){l=o.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||o.removeEvent(a,n,r.handle),delete i[n])}else for(n in i)o.event.remove(a,n+b[j],c,d,!0);o.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,p=[d||m],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||m,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+o.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[o.expando]?b:new o.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:o.makeArray(c,[b]),n=o.event.special[q]||{},e||!n.trigger||n.trigger.apply(d,c)!==!1)){if(!e&&!n.noBubble&&!o.isWindow(d)){for(i=n.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||m)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:n.bindType||q,l=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),l&&l.apply(g,c),l=k&&g[k],l&&l.apply&&o.acceptData(g)&&(b.result=l.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||n._default&&n._default.apply(p.pop(),c)!==!1||!o.acceptData(d)||k&&o.isFunction(d[q])&&!o.isWindow(d)&&(h=d[k],h&&(d[k]=null),o.event.triggered=q,d[q](),o.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=o.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=o.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=o.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((o.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?o(e,this).index(i)>=0:o.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*\s*$/g,ib={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return o.nodeName(a,"table")&&o.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)o.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=o.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&o.nodeName(a,b)?o.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}o.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=o.contains(a.ownerDocument,a);if(!(l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||o.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,n=a.length;n>m;m++)if(e=a[m],e||0===e)if("object"===o.type(e))o.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1>")+h[2],j=h[0];while(j--)f=f.lastChild;o.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===o.inArray(e,d))&&(i=o.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f,g,h=o.event.special,i=0;void 0!==(c=a[i]);i++){if(o.acceptData(c)&&(f=c[L.expando],f&&(b=L.cache[f]))){if(d=Object.keys(b.events||{}),d.length)for(g=0;void 0!==(e=d[g]);g++)h[e]?o.event.remove(c,e):o.removeEvent(c,e,b.handle);L.cache[f]&&delete L.cache[f]}delete M.cache[c[M.expando]]}}}),o.fn.extend({text:function(a){return J(this,function(a){return void 0===a?o.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?o.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||o.cleanData(ob(c)),c.parentNode&&(b&&o.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(o.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return o.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(o.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,o.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,k=this.length,m=this,n=k-1,p=a[0],q=o.isFunction(p);if(q||k>1&&"string"==typeof p&&!l.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(k&&(c=o.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=o.map(ob(c,"script"),kb),g=f.length;k>j;j++)h=c,j!==n&&(h=o.clone(h,!0,!0),g&&o.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,o.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&o.contains(i,h)&&(h.src?o._evalUrl&&o._evalUrl(h.src):o.globalEval(h.textContent.replace(hb,"")))}return this}}),o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){o.fn[a]=function(a){for(var c,d=[],e=o(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),o(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d=o(c.createElement(b)).appendTo(c.body),e=a.getDefaultComputedStyle?a.getDefaultComputedStyle(d[0]).display:o.css(d[0],"display");return d.detach(),e}function tb(a){var b=m,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||o("

- 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%0ATD1)RC4dHQXT5%snuvCKf; zU%@Gbgc!`&)--4YmMEv^0{YN90Qe zh20VJx}ri`+3 zk&D3>NB4)kB|}EyI65*fy-10l7`|z$YJD(ikcY*C+zrOeXP>QQOHQ{+N(XC#38q&^ z=vy%SJ8v>sUDdQU9zCAU^w1UJ%3UNo8MedKJ?mHR1jR$_)NPu5vH|$q#?jdCUyWf9Q`efx~$M2Kz8b+9H$1;o?Z2jlvX;jYSU0lV*H!r zmJdzJlBC%Y7kYj7sk>08J)t~w%(}xFDpUXgbxvW#ZGX?g&8g}M&fOszfcAaWXD0}u zPg!Gjo2d;-RCa7EK!_TlNQwN=Hcl~+!2VBV8qV&*n(2eB37QDX zTwJ}II}e#!j2UO5C#LRRm?-r-$3yN@plVQkh){qUrq4u=tFBSxDl=vZ!1 z2Z&LLyRRQfdn>oi1dPM?(L^4qMPW30+zQv0K8^M9oRI?R{Y_q3^l)QNNgT14b@g%F zlLB^h_<$QJ>qM=jz3h~q-@Y9m`2=c17>Q09y{AquuyUTm^M2tHpA zu`uN%8urAalC8`}Hw)&OJfmzy@iKvAfT?32HzRLbK0kja@ZM33D`JH6DvJ3mu%zV~ zncr9~{%eg}bprBFBRYdDu$)<3adw&CVSw1_ah+yK`}IGdou>;TIytoW>mR8FZ@so{ zfRsk^C3HTcQzQQb-yuN}9w27be!;G%kM)HbFs;gZzkqV|wn3R~`!Va*X;uj+xE|&` z+Ux@C8PJV+j`|yYvz^NZ?2Oy-7Y)0$>SNtjHV%7UVGDAhz`8CvwAjWRa%-lQ7%7ar zKzni^h!gHPHlHC!_D^bZ2-t-igbnI@AyZMNLFKsx7v)QlB*i-Ozuk+l3GgqBbEc(# zalwHM@XrweCp{k88|($~uM$obRE`8T_r`Th?#?GWBKbf^SqOz9ZERyP)EPJ3arDpd z9$$8Q;=%OT?cZils_T^@D6dxjrXWL z;MQB#)BMI;KWzLOC*5KnSD*O~7Z&?%SeD8-EX>#r<8@x?R$eqQ0AKcRmIU<&N78QA z?Z-8g$gr^k8u8nPz{dfbD_aG^x5at~K3M-~Kk;^CaA*Edf3(VJu-oYF4*YQcJ>$1K z7v49EDAh}6c)+5lOZvyBYnUis#on|2i*Z_5aPn^O=k&`bNzf(OcW2)2bF{+Y`vBF) z#y0xP=UfHaho3y%tEjIt&4IC2^6&mS?_Fb_GtL`U*w?qOqwH3=@3Y$4mz5^9u;7Ar z=Zi;r^z9@y_+bKS7tena>P#yN5yH?<{{mFH2RAFH1fr=yywZ`*SZ# zPQs-90;fpBjgFwBmq(S%7-L#C!XV*5=pf;DzMz6k**+tK{8-~_=A5J*pXS&X#WC~` znsxY>X${cD&J_KC^E|{jZw~EEUVGnRp5o*Y+|Jd~;LV0QcF#?ZD-%|K-Z;;`H+=v}pS}xRzdi`- z!)aRf!->*g2oO-zJ`IXx#STXJC-{jfwyy^Zm5=5GZ4PD57X<)rM)TV1dMo1Ud zgg#tdHQ~Op2mGHG0y0lt=sjXjM}^70eH;km_vEVabT?qcb>741Ce~XAQra5}Y^*Nx zQb;eA_ND!Y=9Kjz*n9V#_I|tP)zkq*0F@O_}=XT(j4j zV!s9K#|&rk2I+z0C!Lvzi`*88+wVS@V?*vOFJ(<5wg#w8ZuGgNED8J59Ff6X$rN>) z_I#oUhb>VV$;TsFz5`m@3MW+46AO=g+fHsEX)SWxdlapy^`tubm;$OgGyH3XVL94h zvte-B;1SzNu^?vVC{pP6dzz^MQ7gCR(cI;PgQ9~1bfBS?__5I5pz;-S2bz}cK|$?9 z;Y1$W-0g&{EHGyp8q3}b>13r<+_yE;yJ3wrk@V>9wRUp`8=-by>wYBuwoeoJgj0t* zEV;@K%UE?;DC%-=G)LfC>|UWGj`W26>tOmmicC-fk8}}#N9N0S%_j)!%3y3G@*~w+ z>keM1HTC&L;mKp0$i&KGDMA8G3+Rs1g5wGQO~jy8;`c%Ksa>h_3(!fomzlc?J8MeL~wP;B{o9QxZOH$PdwW2TJx6~W8zWYy)&pl+I}Ei zJ}=`7X2aF7Xt3wC-u7Yn{V~?4^hIvsZKWaNacdxR+{|h_dXFzBc|wzY8vY%R>}LAF z$+KQmUu360E2vei37#?>Dut+4J+) z2&0+fHuu0RyxGSC2jmtMbq41EzIv|+mzqnwftP%bgv0nP_HgfhbDRT-3!N#!t>$!0 z`B4T&XTAp$;yfKFQ{wlRDogGo^Ii`>_5x zj`!zydGKOh71vqe5KA?b3;^{kVSx0vFkgIrRo;Dh)4G$KDVc9Rof=i#lX$rYO#edV z*xpuIQ`q)%9RQ;LCiS7rW<5=`0rl`oMcf^KYZ-{tt3sOM%~0|5*u|^W0pk61;>=c- zaiFo!ShOtvIZ>Su>%Evu9K=vru*-*kDVS*kV}p?LrW7hx0-#y0}lTU>7fbRYb7ags&5x&%MrGNhN{oi$&T97&1s{;BdWUS|WXjZ*#my;j= zAh*ZpN1&PFvR5kng#gw1#pcCxNufq94ofzIo?Xs zXwP{MtD7_o3lwAv$F?>kV%n_;cvDe7FsFKSjd3)^8Ivkp8mqdI;_1)S71Te>c*Jbt zBYU#nhxC}r192|EPR&+wz=It$A%qB1^MohAyZ{+bLLtq#>QcGAu-TUqha)TttUVB3 zm#y}FZNgP1#$@PE+zE4i#KtXgVQJR6j{?rLUJO>hm z!6nlVHDk#d#|t3s-*4Ub;G2Q?->53`kWg4)U|?`yZ9$H5dXO>BKOn%sn*JSDFg!4G zXD1I!Cl6L{OEXq;M^hJfR!t{cIazfbHV$@94mLI}W=#z#P7Y=*7PJ3%t*HSG1{v{t zM90$y5eyva0UQzx3LF9w%o4Dpj46gTYVGyhu<|qAO+`6~i-@8=0*o0?!5nEHx;(^8 zXqE;+bse$zzvg-_v~Y6i14dRDjKCY^n^c2&7>w`4+PADl+uLack#|KaD{Cv-$zV}V z_n!CH>Bq#yTAAn`~!9gs1jkmvr@9Eyq%UB&f*qic%Jy|H&xCU5) zizWOI6)^9Lq?X^mVW$q$AMZ<{h_aW!*>2jk5>Vm^n}4^Hl${KN+See3x)F8JC4Z9I8uA|(2`WOxG#l$l9PFIm;~;bVVQs(fzQ;Y8 zv6M}<(AwhRzVp&5_d?e5RdHNeFU~tPa8){~q(HC1Jw1&?nJqq-Y2!*8%=%YAl(IOD z>7tG@frP0Br>TpPD^vz$CIPbD6|S+$cJp)w&mn*~R*z(msWu^m;vW+W4xxFJlxRcc zIBBzHm5?Wa@<|6+;37!T+NnCj@hM&P#A z>R5t0z3PBdP^Y&m%}))$q-~4%!|Ab2|F|iAz??sIcIU|4hDx@!#U>;Cg9yh13iNUS z=%0!I5-BhvlvKx9c+yPxsO_8zSf>RT7}ftasPgK}niA?9 z%rgJ?bW-(Lt6*(y@cI~@Q~ zON)!U)6ho9_0G&sOjh=5VBq5e;Bh@yF*rJ3yP?NIBDeuC^1PB+h&--9M8-`fHng}e zkbBL`2L*VNAb)Hh8Dl>abVUxq!>w{AQ ze+%&^9%@(~i?E*TN)qc5B4&K@PvkwywwLM!Q!!XIkyj4e!BKs2Bo7r`5W1nAxl!hf=+|<)vEJnP zaAg1OJP97GKlk5!)<8c9{Np@fC3TL`h&^q1nxwhZIV*<-0cSVD0|7bv7Wb=@+emwa zwi$vPw+Y40mN*@wcvyz{94<5v@4Vd__*siz{W?+)7pVq8Px~8p^`}hI3gDLXJBVm% z1(H1T`@1_dFD){-d%Acf`%hMmbhWS1Mf;R4m6p31(&BHoKBiw|If!dUJl1R1Hd#p& z)I*cgYhT(l7Gy`-@b?5S{L-q2X{rX66`qm^G3=Ty6Lop3Fg(vG^7RJ>eHrlZeF;NQ z?WN>SAlDDZ+|mAH$WO}fUDA8>FE-i-X^cV9dAN@Z*c)w@aM2dfouC-CPXaoQgWD5?;lqDSm!W$ zSgm1Jk{R=_@U?$|Rr&Yyy46)oFx1c)5Gwm(uHhWG85An>D!K@A6m%>anV|p#IT{A) zVyX~~&=-9utZ;kf$)ArI|=j*cf>m>KW`xkbxcET}z zQfL`!SkrJekXC{J-FB@2remxBgJvhJ3MaFOF)B04eeC~i-=-)}ufGFaqzB)^A;Ygl ztJLwD3pk8uS(8Lh-NW2>k0;zl`36l2^^+t~je>#L>}!23*>{gN3;OI%oPv46)8rA$ z55PuE`tn^w#z%9AL$PJggb)C)qv@G2+FqC+__k7aCmaaDI5VN5X$N~VOSa3RgbvF) z=7P=xMJx25%>VlTQAd6k@gCORtgwK8tp{R#G1%_jtKS+|4(YwDK(CE|+IOzu_RxLk z+e3Zy906-(B#!7*eM^bVCKO8@AT0AV*Az2|tMZF$@~XUQ=f~*lt6GRVN=2zaSu6sq zRPQ)7_NWElMb|WJ}nTz1_+`~(R+AA^wcZ6D@;DW&}lm1@0hpxKkFDQg;&(HU|{ZGg;D`6ZxF; zbLI&^n1Hm7s~Fw#pL|3i-rw%szdD1+EK#%694TT6gB~=|a@Hm9IB%T?hXFqPxYzZg zqZu!b+<5X$Jw!bx#U0_u-1{C3zOE$KOVUUUQMeHcxPu4bnbtga2Q)r82!YHBIfy0Q z8bZn*tRRbl#*Og;gLxzIfO@+B0Z%}%zg>kHa}HY^(r)m3u=@sf9>RP3$@B>f-V{P7 zsJ?~V--<6|u=hHZ?4UK#Z)%8QgMlgxti^9L;Omok7$G*H ztcCDFr;;F?qSFUKYK8mdTzC#AZDzqHlu9hmysjUTL9YY>5Fiu8b+5u_geS?Ay^5| zZ<1fu)9_~Kmbl3F1UXV9u%Oqf)7Q*12-y7{NO3};G9*pa^IM&<%Q8y>|Fy!83`7EYIbuD zJj)>R9;y)-JOtVyQ1_DW%1B_N*$P;PgRR`70vx!?8!=|;K`JAU?9g6}zIEJ_NPKaH z-Eq0%SU3v5&Sygn(0QDFT?F5q;Rjbb@2(fV-OfVCzzpR{159kho-{s?jzf!Jcs@1e zb6u4XX7KewkoJMJmzs|+;^B!M`paP~6@Og@zvO|>3&UGxp`!h~?O`_jdjkEv5?-dk z^ktkp0KOIQA{)$4d^86Xi}i;(H1^_fGIRrX_XOF9GfWt`#%`a1KopuS_v|u`w$Z^j zZn6-ctmD659;>Z1#mKW8*tH7#C^vZy##7~4*k%%|;0{L%1? zf?75X79@{tkN)0Deqol!R?oxw)Ugykuo9=6x#1Q;cR8n; z$WOI2xY9D@F=HV2k79q6`~ERYARYo|Ehe7~HqhHqWGPN2$f=peh7 zNuJnjkFK#tS5aHTzAYl{8%Q7*0s?-W3SY&ze>zFNKY`yJrQ#X-RTAnRChz6Ht>i}5 zaXmZ8OH=GDbo8vp>Gd#mIL)_?s;Lmjo5kqB)d+tf1aG;=5^3)V(o<^Y5ZavxR6K}E zKGB!KkNffGEO%f#_T@4^N zv5qYeO^p-m&y8#}2?8ebRCB}oEq7Ow@jMuB!N5iPy#-|2LuZya9y;;vDbmdRtI6%f zWax~^8?2p&M+a~?9)kOsbOuznS%~n}Rm<1s@o_Wii?HK5stwkmW5mCUZbaFR(rRaD z58stRMvua6CmC4-atYf?yXHCW=W%iwn_15uuOPhz5yKI}{R%2tbA3gEDNOpnqMc4Q z+i4;djYBMOoCGSPyNgd*U?9c%eR9;4J4QTAv{ep$6@(9ypWEO8 zLl>xdIMjf>h0xcGFG^^~B`9Pjs!n*Bm;<4Uw6}%KBw|k$`aG7w7PBTmKMV49ly88x zi%eQ+_f?$Q3tBXE6~NONc)HWXL(om>U&=kAFme>kLe=)dz#8suHTGBIy~Cty1q=(| zkAm?ioIC}-bDUNM{jun;19cnRNrJmB7$}2|4Ay;}`j+A28t7XH{wgw%$@}Z!?tc6# z4qooX9@E<9fGM5_THuKddgIW49{N^dpctkOaq1GdlYw_4am>m~RYclAdQ4GX59)5v zRzPPR_HTk52*)F^p$IZ^&=y)t!v`#P9lWWqj71Q1z&9T76Ev29Q33J}rdES^5#{=N=yp|tJ6MW|yu=fANnUh|=E^c_&l4W9&7#)+^B3|La zTUh&lPb`h-Jnicd1ob!K8d@9E+ZB)uTD( z3QEbAu4~xY%Cu{ICr?6IPNm4MMnmA3N6aFjliuXo|NLngA8f-=UabGbe!1wZxD%8j zAx)63Q~fk{mJ``#7q3|SyO_R($p?w4-xQ3ISK9mXAbfy@mhfs~q;{IhyxYm7dLkWf z!20X>e4%%7{mrp+maYXvDrDuhq21VLO15IIa|hE_+XlD7$UfUhG#^?CqMP$K5pgvM zthLC^v;!@AzBA%ocAxWfR7dEiO^b4lk_P%}6$Rr5WeHfoe+iETFj=~@31I)`cuQ%*sbQ)uF) zL!ifVoyTIk_mlP=7R7GsJx(Rw+Iz!l)LVkZpd9c<*Z=FswF%<9cwdCe=W!~Rou&^K z9no@(UFKYBE6VW}d9@&$GKjjwY^R!tyOKm}v{)?oJPmm8zvI+?Z`8s6YrG;k!m1LB zuZ77RlXs^}n;kU{wE>NDpq?lRUa+fWL^s`ohiVsWo99a@(OR1~?co2sm+dw-IJGOZ z+rqUsKyYrnoDRVoaM7a*)PKgRui?bgoDmnJ*r@C!9W~DGE6|ll^(;_`TXW&yiOBvl zu|2Cv`&`r#Jbo*uMS#!BixVk%D&zD5=F10lPxN>?4el0tQ-~Hz#Cc3Mq2eTIuLZwZ zn{notd-3H$@3Mv?qh^v!2rlPB`-Pz0bnWr&`LPnkfR*fZYUMP5%zvF~WvNE2TdwE) znN+Lc2jgZ<0`cH8cH>b>6bah^pvLW&EQlLCB~pqNz^oy zj#GJ`;7j&M>8qu0;hP=rE)|xN$@hSpN&_VI1RGZhWSRaH>%|7=7E)#Q-b5_YWyh|FIpGP~zHo8^l zxWv~+iYcDJ;Yj}qP(4f3R7ao$!~zH|z|bX7_AgShc+`MC6H)O{7g8 zc`axQ=lcm~WJGr)#`tzb)Y&9fAQeW_*pL^b&9UNfIvYuZQ%Q{!V-tPRp6k?qo)_mw z`sboA4YZONc{#rg^_!g5!Oc#FvAh_(aOn^DS2Pa+4I;xa0>+LRdDxxi*FvG1zoREByW+OS7!S3%iJ z0%=4$h5pr9i)~%ykz#F8N0ZIh?9eT={cM8oh@dySlw%Eev=#5p@n#*>CeuA?85QRy zdo9Xd&a}=oRNZf`GpC>C4by1FV{pgH&@NujKrPW`EJSG!%9Ymh7Rf~_BYbf*Sjibq zP9*NY=4i={av}!jSris2)i~vI4v8`U5jzm^l(*{W)vp)D2DZb*JP479j#jvHixZFG z{Yn$5P0hPPSox~Phrv5gB<3hG?bVq>^~&TNkwC}F;po_-hK zTY!O$T(4|X}{Xih3)6NEm9V?IJFOg^xw zNk&$hEoKQ8koF58N6|oo)xQLK5{Xz7F;>I|_Y(hBkSa)* z>F=Xy?{#9DYcb2qj{fJ*>xv;+Ok4#GcA2feuw46P=)C1+ z$8A3oW>lK{@3p^u=5Jh1T09aFlR?W}sAxoxKlxff%K1unG3s z10cxz8t_CajR;;UmC z;q_>bk^o)%z$iyGnsi3RcI^~8n@r6j#KwqM1YcRC4n#*Yx^Ho))th$WyW3UqzPLDF zEb;9lRS;nLN%ZT3FAcG+=~${7m`0o&`HMy?<(i(d;jBbAdpMdgG|KEx~6 zL0m0pSrOVr@Tb+v1s1K?yY9po5@g2(%^QBf3E96qjS^& zfmVyQjv6KfEnwXg`nE750{io6cnA6$K`L^Y%1LRmsN2bKG9Dm<^Bui}?><6Ba0arO zQZ5)(FyNpEqo=DZT}vEdDfTqm`ka;_v)xPJb~?Qm1$WEoy|Z3&vij%hO(NfbjScv` z#CxXk$lYsfG=j*n*ii+hwry|W28+mxdI;AgN%dTC1B@M;%}sDG*Eio0vSN3-(6I%d zpCm7K$JLoKHo~_TAJ*f;OftMn2(IU~(e%|su}bQHs}R)6{jr3@UGOZOH^xN&vH!ih0#n)#{ye#8$3Sb?%C~X-v>&a zTTACf4yJ34`A77}-Y%L0i~!a;FY1D^h0$h|FInV$Y%@8-Cl7Q;_xlOCMnLuav_ zqLk~_Z$$Lx6Llp78P~B1hmL|A2~RnDmkoXKOx%W3#bjVTkvJG_g+CXlNbbxjY{LLWlhv_9` ztPzG5fL7^#c!P|dWF4*S?pf&Cg&oIXWE%``gKu_1_cgp-3{nhE&0|9wU@{jU6!LO2 zK3a&fS*ijzvmeAb=(6LTBJzNc&3aVh{Ch40WCz`IEGTp`bYEfK{-Dk;e{(d1E zSs1E=yK9Axc_f?!Q`hnLIJkQT2UnqF0c{I;oEtZ8(!wen%H%^wN#6z{--K^W)=Ncy zGuJtn^dARR0AGZ;R9ycNoZ?_)J5-Z^3x?}qEQMT+VTUOvb0Jg-%1&ljVKfgqGq86jnM}glR-B1N zm0YZLUBVn+>hmkPri?Yv5Y$DkvXbbDYT zif_+}=|0IBz)cl_DGx$~4AqjJ7S?Aq^Jn%F_FGtR6CFzu0#|WjBTO~X=jGU!1}4Dh z7m4X#d#YjbNaEv-On1}n&D^h6XlEEUtxr5P@$caQ?AS(3+z+6$k{Nt zne{G({=J-U884aQWSP73Ea|b5ug}1Q69dT*x=zMcLpzX}2ppJanOF+&z~^ zU6o z56$qn3X~>(l((r{n3~E0N1?M2`V+|57537F-xR=1Jn`?siEEBv66sq*M@!+`1kzza ze+}*S;*(lBwT%Sg@YyLCECIC=Mo+`!DhN}0ho{fygN5(AF8DU`V{K0DJpK7F+^ObA zE;HW(?ztd5KWwU1;g=Ki-Wm{z@OU2k?i}qoM#Je`a5?lh!TkdMv4eyuf2SUPI|e`Q zMRhNIu$zu-2DJ{Plde14$V(f&ooN}q4ByV9GiH%kJ(EX-ADijjgZyL0#?wg08prJn zkS@@WllTv_yXDq!CO1D~%=8@z@RFhF2~2V@rQhg0GP0E@7BoGpz7(Es2XQWRFUFBL z5^6=g*wwj*S87Z~g=jX+h#ZFlm)NL)_inmQ)O{g!Ts1((w?{ zi#gv$d{F_D^)O-QgXuzlEXtQ?sDTC6fxL(Nwvd11#lCfXUpAPtp1chD4tz;@wV9lt zzh}dDQ8+_LI1O|U^u|I@Br(O+k8aYQV>(1M=F)H_bkvin80@bw3m8n3-QmKHBi8;4 zLU<<&*r8K^;jP414nL%!atW1-(6Qf?AQ;G>y#qIKhV&xntD)NlleGsK2&b)sl{F=jyJ;h1V$1-xr*(Lpe%+P8)D368HyX(*1|OTbA7^jYZ0 zJbDeUf;1P6RivxJECT8;1l0)-&%&Jzbf67pvQcz69&BRD7IOC#YRP!_78pC38i#kc zgR&8(z3gErd43RHUZqcwja~r%Zq`=`-)%u@9%|K0+sSLy@U@F5C&5=v#&-k7&~ba0 zT^Nqz?#6P14%iOA9>6E1WO5HYTu$zu=eos>_qhEL*D1$|Ub zdn#;GbBHmYO?gP?8fxUA*2+Dx6C)C|GYxq82F{>2?y_(AqM#f{$-Yji;{vICkegSL z>))EIrpC-?+PVVSOM*u&fh?lbCrb{8vA1Z~@#o|>fIeYAJ4BUt7(VxVU;C?!PQ z#v;)s{F{{7On zR667^U1!^R9JhGm+YXG_Q~lSOZ!`Kg<@r;IoNJfOrcAU+MZCJcSh*6_wLDd6flv%6 zk+>Wda2;0{ht`qVEnK{o9jl(_UEYMY?awNm{`u(7GTCOnl7U_Oqm@SLFS7V!In}gB zdq8Oupt7d{uinR}yS?kLKDm7p z?j+kL_Spc{RaB|5OU0ZC`n|cFk<7xI$#@+amw8RF$ac@zUO`&O2U0kHF|S{;cWife z?LajP2lLSIK)0Rxm|gbT`^l_H)?)>6m32mN^z4LSE_NU12Ail<}+lxgyy2WX|+GYCfCMkMUh6VOW6bR zjaY4Gp?Vs`V-C}nsYN!8n3bO{+UAH6Ug4Vi=RC1Mv>XF*j###$6eY8CxCXpo!@H-v z88_l@CuFGeZPG^D4yU|1T211_Voq5VCGSg-Qp6Ie2E`1Qm@cjs-7(Uk#Qb#SpddTk za(uMfSfL0&aqO^Q)kbJR`u1%ozSxmLzQ-4KIq3R{vum27Pnf1Cp<>7CA8Yo zwcO!LqDBwQ7a>GSH^De;kt4D9 z2J1g%?><45BBti>VvJonpC~mGt&Sf^O%~V3h?I2hp}}lUUXCGTt;C$OKgJQ-$^48D zB)Ro6p?ifTywv01#>R3rVmPe3!s?k?04Voiws1n@WjRzu*aP@p3m$ z{lZJ@#riq9V!i0BIMrY_9^P|$r4!<=;X`oG<<^^^XEnROpBW7>)51ToK)+y0c{a8g zW}HIL0Sq5vX0CcSqJRFZej2_-o?DoImu-9{j?Q82MP#B8eqiuJ6G&$;ltYc1d??R0 z)xu9y(qJ{J<>+^r#sEhyli(Rn-2y(wJSoYOO6mF}y+eU4Zr) zY~KT;$y7g#;RRgp4u^Uam0d8?L<6O~&xG74a<3i-_i@9y@W(3hqlcKvcPbhBcFb%%_?z$Q%f}VORE_2?D7@k8$+*G}YS~Qs|hyF~MEWojJkXv|V zB|mO1x4F0*Sb$ngSGs9Cm1&9D)DTf z(>LkYd#KS0x)X2mauWG!D;Mb)w_|4l{qZ{dHXlNHpckTUGF2k&h~b8!;b{~nUPV)p zJ*~@uXFxjcEq0hYBule{QliV(6{TCs8mKb&1Xc~LGKc;67 z6}PkYOril(S4Z62$>~Q(=QarE5Yw?v?!n+(dX=Yz9 zWK-w3fn@7M0UJt#Z<^s=H8C#6>L*B*Fkr(+o5)k(yRvLUW@%i7`*q-}XX<*mx5CCd1U88Pp0de>nKOjUz*@0&*`!70&%Dk2IB>()+6OcJawaZito>H->-nD zkxVO08PB4fEtVhh*~k$Lrqd@^*pIx$z=&`W_8rHG5-?m$1$XEs4ws-BQ_$<>@9f7r zbA-W#e9tbtz0y8Wi(UIrUuYd#Y`b0V8B8Ki=R~~BxcaVj4*3wG2}e=+=& z0Molz_aZVmkIA*z=VZ?pnI7#Xj&1Y0HR)~=*Hc7-mHcVi+boP!#VmFP<~pPWR-=k^ z6%x4^jZ9v**`#&O)$&e-u3mr=wN(lz8 z;_W07S_F5S=}*h3x}65{Nk_JAyi73i;Ayk)H5IfYq}}#PvW@dDT{Wj>{LAtlo zd1CTcRYD#9p2}V>L-` z&<%ZS;b9r;D}?*$ptgbNf$!Y#)f%E%p=&8=H=Sq{zD$LOm%wj2?2B-_83I>ukix@V zFkLje)Ae=)m^!P^3s1M<^Ub_^9EbPu#z741M3JC+9v>#d(*l@|z_ImobOm{^gO@Mx zdOCEUg}!Wl@V_?ow4VjD6(pVvnqEATbllj|#beJkHf>=c4|(i_u0y1gb3UtQ?N?k{ zq1AtZ9kKat@k0yg$Ogfm!)9V&yoS6yX#eFR{?tgHuEFkVHdw(298_K%JGznG-UN?p zoG637WgklNsI8S6ShZroSa6KJkrsW z9G(YVi(vRlRGIZz4TQ61?=_dPADSJ*8TL-%P|C@VZDeu<8##@-iG}eNy%J_pOi~7O z6$6#~Q-Ogsd=@;2vuw{!EK0U&fpybkWmyo<83S z!%;YqOnNhL>7w^)C^yWc{5 zN9pt}XDE%k>tZvzV<%RCFCMhH5NLt^YcP6>g4Y zC>EeUjrG{A!&hCQO&~2nV-0Bg@zDX|+Xw9{ZBx;FI0AzLwpW`T6()~D=W6IH0GS8> zd9H5>beGaWE8IEGXJQI*gAi>|N0qP9~jI7%HHT=f)1Eknt86XhtzR zvTHx-XeRf!c$5v?#5w0LNcRXG$@T|V1wi98Z8zgv3^R-1ejLo)#F<+t+A+{f^c7^V z$%KjcP7e;Gfw36=Q z5X~E@);OhW4&MzjgCw-eGrio|o*mT{=P)W2JG#^AM3of-tcfPtF*N-Ehn#tmlifF^VUe)IdK{D z5pP6q&vayjcvaB$EYWV3h^JztMvruo*V;hJPEi~-wF#6XsH|{CQgvRudf7X-ck0I$ z$55Kp1yX~}MaGv{os*TgjaEb{-X~dU8+Sh=b*?@gB`0%0^`~H2j$V>ZPPNps} z2lCf>Bl{lwl+X9tt$~|NKLG)O_?p3=3E@(r+(h45@GYDD*Ic}80%{{MS*?F71RBf{ z|95;=?Ir#9hLfZ{YsY3UGUcjXKXlb6!NF)7MZG9>H*hM(aMN@w&H&kQ^URpn} zB3C>BauEsSqe<+2i|vzz(07FOo0|3r`i`@aMt*DwYI(fjWKyvZx+H|1$+Na72F?5bIvUVo8GE8xwB3zzcp2^K6D21?w4r6BL%yU%da0#AFIJCw~!P2PgO|M7La zO^gJEw<>Lp_VUzFW|VI$^CJh2j&z%p94jVeD4Fr<4u`)yS7abwp8a`O#}3lI$|DQ$ zO1?!o7HRBritBCN4zAltJ8PFqt1Z&vNGX-jEV;rhC)=gDyg{8l&q7~>%>XY@vDzjb z;$)7<3AirVALsDzcPqy|!K4Npa^ZNQ_rOr@NHPmF^WD*w;2suCaW^ul4JKpx{*^?H zVQTbhWA%cOLu}OUxO2|Zxh~hJcXU=qYb{LTu=6CGnf(QNaC(1st zhK#L;&PtoQWR=epS39F8=10o;b975u&l%d+QX?^;?>hFiMEVNAmrunME)< z%VB+Gyl;)yIb87UbV_rn&mq-_H)3;Tb0FY)w*JFuAnY(EAdiHRjXXJS~W?G07<|u?3inpzS2D z5VUIk6+>+oys{ImhI{2eZ6Cgh1nmHM6%AUg^;H~bb?_^^BCm2m zYlwWc2(`ob$_v_2d{u$kF?h8Ov=i)AC2A+()h4Q)!dIKAc8-g#jYB%^-$56Wkug(x1$*Z$qO2${srV=HuE`ZLHSC>E+ zgjc4&wZLlt-736B)NT0M3c3Sd+fjGIYbWS#cFT&SnKwpZl&r!XYzMkbMcztp9i>23>P%mY#FQdK&Uta^goV>mP zdWG$8Kz%Luw;l9K&)?>})(d}U&LY>}W}F+z-wQ$C#Q&X-`eyih8R%Puzn6o)jr_d^ z^zGztGtM26f17dc#J^2|+l7Cd@$5#uhWoqDG}!RB8Q6aK`zYuKxWA8qUYq#0sSNAz z4G;Q3d}BfV5WKO0ewe*6Q+)*9M1Xz_-grJXcXc*b81V-J5$Fm<=&MNqZr<;1)~JstwUo4dshj@ zD*oLjFjm{%?L?!Ldsk-)GkkXhjB@hs7#J1&yOU_F#dqfCR`T!8gR!2xYXxHid3Ozr zD*oL~G&Wk_b6{*veD6kM3%)mJx((jvfw3LlF9c%;yk7*yPWpZ^F{`i&U9F2YWz6Oi~PgCO< zdw&*cW3mDDt{vt8XieL z8yGkF59adSq939m00|%Bg%5=oK=`l%1C)GN2>}j1lwyFVAIdObfe#fVU}GQFl7JIG zn93!BeAom55C35+1|s3ZZerTb4>cxp;D=fWB#;mF5J==dG+-bJKbVY?f*(#nAdP%5 zt$RB8&;)^u*bf&lFb6+cAuyMGv_l{ZKDr=~%|5y@Fb_VOfz5}HF%VclKgN*j}3G8K`S}z-joL34t^8vuQ`p!si?k zI0v8SL*P7qUcdqu$mcu~xB{OSv%ppIIUfSIFbMd$2!e!sUJ60Ve_oD32A|7Fkmo+H zfuObcb0rDd;PVX#I`Q*O47%V8U@(GyK@3L17Y>5a@P&t9415tF7>i#l5R8K_HVnq& z7dr$K$rqE}llU*DsY!+}aU__^eTj!)2KkZ-!8znh1_U#0U*=+PF85_I1hdH(Gm?3+ zU(85y@XNN@9ok=ZU@#ZHn1*N}eAxxTMdZtF3@(N*dm&f=U-m(;5Weh(U=e&d0Kp~r zr51uq$(MQv7LzXx5L_1d#1g#X6|!4>2m4+K||f1)9{ivK4LgR9{m zGo&)%pEL-rN&IIX2EF)CIRq=nKWiblmj7ox2G_wqTOqg}{xJjF!2Powg8yFyU-lJM z_N@8E&O9e&7En}F5CuUTKyX%26h$0R1VIoG6a<{W5gEifTIHB0=jr52+hE_mJ^Z@Y zx~m`hp;xc_(tpAatC&Txia`aEK?;Np9$2wr?=N=57ZEFRAkWSY`)2`+r{sUu!gxCT zpY<@FkvjA+o)sPJB}a5H{d0znQ2JIvQZSD|a-J@g6>qFh0c%lR6RZv62DFRaEVj{KJbSaKmCVN zp$5{2t58G4hf1i+Yzr1eRv3URoL&#LVjOM>T3FZE7VBw`*x^n z1Ab42x=#B25Y+YZ??<6Vh5eolH9GS55~v%*?+s96QhskDbtC=3_*n5r64W^9j}%fj z>;BjWH6i8?w%ro>M;X*a@kb-nt>TXssN3W}o|3vxO}bRC0QA$Ofvdfut)EYwO;tMpwt zLanB*Jg7HB*F~r|f^^2UD1#`you>=zapz3Us%^v{LGRN~Q?vkziUadJHhFk$e2f6p5ZtnAV{u45sze z6Rzu72~$*9&l;Gb<(_RYZHVkiB~uLbTjib_GHpW-hqMDd^)Mw#J$K2JOg#-SrHGzJm{R4Q7BcNZuMVa?=+%>H zFZD`f+P|*XK&FG#8w*pK=;ef@%e`C3bQrzKFlC^3Crn4B-V`z&quzZm9Y^m0z3GI$ z_aK>0qxT3*XVIHMrX1?!4?yS9n<-4W)O#GJe9@Z)(?z-W6qyRpo2xTj()V5Pv#@k?7-?8~plq3DaZrrNh*$>pKinOJv_MGCe_G z8JV7nzAG>j`mVw(^nKUJtV3T7%o6%)VV0%78!#J0Up>srg8S~1*)OJFz#Jg@V_^;y z{qZmd8Tu1p4n}_p%pvGcg?YKuzYFG2(SHEuFwvg|bGV`Z2+S+ce-h@EhW>0}jzE7d z%xkFsg3cVN@6RW56#9!`-hlpMm}5l$Wtcajzl_YAL_bFuC;BnfnYM{(ZF(;FN%RM zmO)}rbz&&BUFAZ?v9??J}%#X!D zGt7;KfmWEC@JSZtX7R}Yb1Qw~XrGEtfv_OrQ;4t-K5d3YFFwV?B8g9lx=-85BIDCe zSeD^a3M_uor&L({#i#wS1O$IN1WTa&=`<`sVV^F*5-fkJB1;H;x&=$9_{1Oo!{kqQ z$rA4O=`k!T#b*IaM8s!_EUW1AI#|}w=O~>eQvZ1aS)%Yc4weo0%mKuR&+%m0h|h_z z#LAzy!V>5InZ0k8Kc~SGANe_xED7}a3M`4@a|JA013p*6vQ7G256gD(`4KET#OFp> zlH|`Vuq4x<4wju5lwe7b24%9O(jZgbEe3;O*&`2zl4UOjSHrS@)8HDi9H2q=a!3pw zUi$ua@F*$0^5!ofO9_49w3pGBEo8YO ze__@Y^d&`Du1a5a!BQ3W(TP#Ubu#L!__ z{p6veWc9~THmrddIt6QxG<2G*!5GRV>v9^pptFYQhw{l9fuSN{T`h)+VO>i@rDR=4 zLswvp5H8hVx*(7%*G_Yk@R;Ragr#Tmx&d7_No&GKO!#TB0AmP1aHjGovdQzQ6SU zuVLm@LBq`JDh)TnS}BH`VXX=nW{%gT5zc(I7+DT$jTm7@wem;=tT$+c8QqjeqG7!) zMmEEGM~rNNwN4({M%H?aq{4d7FtUrR_i5x1tPjOVI;@Z6kqojnVB{pMjTqrdHAy3< z$l6RJ9RCvUAi zq|sQ|*2trYutn17PT1CBG!?dW(&#R-t*6lgutkf}LuA_^jUFc3MvNYZEf%9EV2g_x z%_7@o8m)ybfktnVZHqK|TiCW@^ge7mF!}(tB;Dvk*pe~YNVc6AZ6aH$7;T1aw>;WP zwmtM!BHKRwSA(z}ps#_jrHQY>u%*jiL&*p9_~-A%Sk`dSFv3GuZE zwk&+*{G8N(EhSqveZ5My)6&;U*v^WtH(<*VUvI;9F6C=IZ094sZ6aGPePb?p^o_aX z<6Amx1^REys8D>%gsn*W#$1Z&+gaF3;~BlG*&O{ zei*wa?18$m`@$ZAu?Are6Jw9bz7k{2WM4&NEwHZhu{$0-QC^Y2`>BFx#w2Zy;V2w zovKrRzSdrAjJ@|_(Hd)w-uswi&o$M&`!-*yi-rj zoOdYso_T8yLa!V$UvqIfpgd!7I*>f8`E_OQMsO;rJxln#lTS6wUsz8u4O^ubD-B;@ zPd{+1)15A`f-YLJid1cM2Kv4h+K5WtX>%C(zDA{72DB+;!BBV#P;~<{W{ztAQ)CPO z_{mM7uAjs+;{2zPDT`p9@f@*Iccy7l!LOkyQhse8vKHm2>_+#afz^TTWKQ(j2!hh}Hu=gVX<*SgN@;`| zfV0SrBcQj~h9dah+snwKK7#JNt0{&aJy@-t<|Y?)%P|EfS$7E6K5yKX zY!EqQ`zO2n?gsp*Pkb9h4yRNbpgebQ#PMrI_k_VlLSIsMc|bPod62qXyEmoK+ZlMG z;5TS_6b9RC?TllYiKF77^tz_|$lKX?6yWum>@ubvD_{qBA4;90;JY=zB|*P%4=GCt zQfWhM5N^=~S0Y8Jv{hyim|P0X@($k$7V1g2oAOk^Z=my(?n%ewLB&IDHIm9Rkq=m> zAq3|k#gA+i4;a%Bxb6+H@SGn}Ep*!JrRg9KfU`EiMtwDOU?+&~rfP`E^P@`D$V-v? zng<(?YsYay9UYek89!Q#8BaZQr6!aruaG-Lz~gLq&7a}n&K8}4Misurp?}SmF_J%o z#`D^{`+?`R&locU^x7Da7u=#IDx+(9_Y+UDqykqAdqQFNCIYr9{icpz$p^cNS;cZH zGl;_Zo+dn1D-TwR!cJNY!V7pHdisYene+fPtRKL zaEF)Z@a*)d31+}vtC8|H=$9glm!~v?9dKEcW@M~b9P?#Jld5vsQOT-C4>iRXe%zA7 zoIx4?^khNEdvEB0oAJzg27Lf(u}nN3U@$YX#ZRGV>(9>Uz!#fw#NkCSPHxBtKaSx3 zguxqanAT>7SIFGyt|RBDpb&DT!c)6@>KyEZu^F@={VW1%2bY`3f+HP3DxgFV%5Jf$hw_A&P zEF<71E2RnM;58;y)=n@ab*oe$pLn!Qg9$NrmPP; z6_SropykbQ2QlO*WE_3gzIx9OiBXB}M4E|m>IHRHY}tyl<|el-nOt5ZT1dy0Etx(7 z;zrplS+WJ2(X*+hyW@kqxD%2wLVtSs(Sn{trU{dn6PA4iIE`SAfeQA%Ro=!ZqjNAF zYL;YZjU@hLDt-rR=Em-QE1o&cMHK39e0inu!?X) zL9hxicW=ZdIMxo(3bN6G&JPS@wt*)#DT=<|DcrL17!wbWJ3mnEvu`$|@n?s+yL@CC zJBa`8zaPHUOtmk&S(aFW@Z+T z*Y57#FUXc-?(J!dz(R9^54C#^4I;FA4iCz-gC2x$*+iOUBnW&b^^r&JT>m2v(!E1< z45Vvut6kWtf#zV4CnOeAXB(R-Y4j>;-6hKTT-_wes%3uAdxy#%u&<~=5}kyMjA%{V zlewVhk%m*q=knKvBuz%uI7s)V3>CibbU*4ypF@1qfp^W-)Iq*icee*`YA|5cZFH3i zhuvMrtsk^6>}N2I@x*4-4e&%}RFCznY}J%Mf7NUyUxhB{<8vsQAscWMXW;70BxUA` zeWpp!gE^PO%1GIXyADS>M;Cnz${R97g}Im3dZY|oT|x*&IiEq$f^=2LzaH^$$R^)Q z_Od%*y9Qas#z}pD&i~%D+bb5*tk@S(A*LlJ)@+l>&=_g8FJf2c(>!g5j(1FU%IT@z6 zDiSgFSXQ}ly4P)Mcwq0#K_qw)@2%H?#U~1lxe48$29`fLEZn4KM0-Y91wIRAFNvN* zD`g!eRRpPJ9c|gfB$%PCMh9IpfSkX_>ayb=8m?7pOn*%@`#!WLI$SGn*Kn;%u&U_J z?8mRq2up;T$1h779Yy+hDb=b85?-`K(~2iCaE!m-Z_Zp=8xkZz~9yC zmd-zd>!9b>t?4P8m55;BZ-y!MaZ_sySfn$7M>AovrA1FWfp{rCG<=gIy!Qy_mTQ!7 zz`DC6JbYtxX@xO-vvX->_*2@=@OJpd>bkc&iJbq+$}@^TG@=z|g6ln2cWtI39n}O< zuwBd$Lq&IOeC)!ew1E^Oe@WNyjrQfKp)osuOVIUqUo*wP>+j-OZTT)LgIdU1#`RuTZ%;X!dqHDyVpe z2ONA!xn5CsbHI&5nh28G12%dZGIFdKkl-?lf^5~0$P%4T(Lr6A>rx%XYiS$ZX62_u zFz7Gf+k<4^-}fSoKY*iU2HPspN0rO^uB6NGwMeD16^2p~(-QSk4L<>!;9z=fWa@IZ zW)WrrQOg}wGArGCINW*{xSOBnX30*Q*X8WZy2$ma$xWVYax*P+V*>J`Ug0Hw?=;~A zkknnpZ1a&A{?y16f_uC^B-|U&&<)|Wo%jJp8SHqd_MRs(*xW{mu z_a#eyD>t!6Smt|gDylsZqdJ+ZnGu9FHh7b7uhGsxVNEU;meY5=jcINVwYTSNp1$;g zROdE-EG4UN3|=SBWgA$Z7|WP%9dIoJ9hrWUNc1r-zcnt0@+*BMSk765vaW>K4v|+P zC?lt+d!NXu;Tapp`ILsqbagt4w-_IrC^@r#?tcq6Ci&WO(lex(#_`O?DbACy^B9W1}#0AM5d!zPo|0HWA zT{E$rw=bFSXB^>QfNR!NV9prCcqnXU7WO9H8rv%-X)7y5-c3|}Hs?3f1J)rp-f?OK zADo^*Pcqr4=n7Gk`zCN(=6pgMPX93(X1phlVbQ0wZZ{{RX%(zaM{Bz+O>ea8V!jt4 z_pv!q)jb|8lKLcFApesQ#X^kd&oOWFg{4gpi@DYTh(^f`JBcRA4Fc*jDzR~xNXcV- zCKIp5YbxaBHJm-fhH(Lv^(PTel7t2w2%GVSu1TV!#0JuQ&Z>Gay!*qI#K|;@J!=Sy zF{>)1U&l1&hIa)vl{y;+!|{2z2D(9;jdE! zvs4?;PY<=kBO4i(An?LoFl8F@BVO3(@t__&&_lyKAXd+yIV#z(_ zl;NcQB&|0}vp_KLKC*Jf)+K7~f4($@py`*qbg=#I-#Q?roZK}cU;fnNDXKn8a&0Q2 ztkF4g0XLg?nPq4U;jYLY_n2v7jM2&)5#g7-qG{rNfSU?q%S7G~cMryV9>|@It?IlU z-r5-6Dp5x0d(RdgaG7*T`*oAiWY@rLM03RV9xhzYZRGKg;aa^a3H*YS>tI=(tp;WN zq*W7wx#N8?7LOlA4qp_@-E{J>^d<5<?Wth!%4T}e5fwX>UR;PUzQr(knWUsuVJa!_k|bIbgC)6bTD9hA!NwmSCnK7Dl^ zxQyC~7jFSQ19eNLTn@PODV-t;yR-ZBEK?^LcIW&6T|3Pv{mJ1c*mcR!d;FglMpuH$ts7bRT+jDDCH3nbD=|B?pDW#oUa}Pc z_x?U*p&z>67+>{118%Q67HC5!uIXQ}jyh{igax?xMq-H7S>YH0wz8b%#APRx zqUdPp#HDGMZKft?=&8l%C1}Q_y;@be9ZW$28D*8Apc=<=Kjjb zYY;sx`G~L#|Cqok|0I?spJcSLGA-6XkCC{iz4UP^;+am9_nw`N?exG@e^q0HpF7<^ z2pNCJTbC;M^+i}2)MozGe;VPr&(8{$Bq_mknYpjCs z9IB)si3o@H>wh3hONpxh-%)-U3zyK-^?2;Pw?J-WTnmTo+<>ls`?Oh=<_1ldUeT3zc3my1d|1; z*4@*5+$&@uEw+o;n?ZVTeXyMdyb%y-2?g;AQGNe^cI(_5cxOB)2*@vE`txoTW&`fO z_TTa>3Gfm~{^r>w#~L3H5YUf*cy?^MO-9s!VBktmIZr}XDWF`$33NF|_Fl;~CJWo* z5USPp?hq`^5w4qNEJ7+bgoZ=!ra**Xn?o~04+-_@QfNTZ{O~>%phtuR4e*M%??OJL z9&Zrb=quE84uSZQ4>a64iGS82 z5-z3es!uW!_@u}Zsj(WJ=}wNU9IvUf@H` zk;A;+@BR<4FT{M)5CKB|%Q*iO><%W5z;^2fP8PN{^0vk%|4sD&v#vm4exXmJYNSts z@YWH~&DSVJD2LGP1?Hc;&qmXAOYIFMEz4P80SsbI=%g$ncpa($w z_6|h(I{RYd4iMd*(aL`S0I%|&iN{r2%@8Db@wt%X3jqim0bVBt#Q1U5{Mb2VD;C<3WoZJSoh)tEHRWZf)%mBK4WT1p;86~h5ZnPm?C=% zRvYdvWLHloLBpgU`Jyjc7O{z)0`t8sZS36m{FDk;oyEqKTMP3Y!0+I8Jo7Z;vA19J zl7DP#_1-JY;BW)yMUE9-h9y0A`hN4uGozm^QpMpt{>V@UOuK}A(zdfQkL*=GOgkL3 z^>%w`oOjT%3 zK-9;4M`lyEjSYE@3LK-0!#+>X?D6jswO_#$8B-KB+yuw0-2_+rma4pE!UcM~_lOXm zvsD>8;UPZ@zFY?-o2-lBpUv-l+Y!SM4jAJF1T$Zpr}5$TwUSBXa~Q1AWF8Wao4>a;Ll6?;Wc9(}Tgc(4=~RYgc`lH$B9; zHM6_LS{ULG1HG%TON4Q8enbVk zFP^p{?H(_KgxbHfb8aEDnMU3A`aK7|KjOFAxQg)HSDG};t^pWl3=v)o1BqI)2NYlr z=rARq)7Po1*fAs)hjeIiMrhyD@RH+}bO0x!>OC~0CG$(Nf6v>B>6Z>rV0`&ybbpSw z7B)_QF|dFP{=wA9VF8&wVFHLtUcU>viD+;uv*b-wl|uo4H-EK~X^6Vn?r1KFkf16Q z5g2g<_$9KSSM?nsMT2A%{~LO!;4YyaGjHZr6!y#HwkH4U3TBI*9&$t%7)S9QY9AJY zkRZQ)VnIkzZ}1D=8gw)9&7W0~Uwmf=y0GQ-AGF_9nc(YX0NdvaGkSbm@Uva%T(C~D z(WvKevDKKC^$<}iqtzy(81=kV)>-EZ{A#QLHiF$#CD-IqM-&PsC- z-*Q4BeGj_cZG`k|l@f>g@}Ps|mha(UpRj0X9d6ioH}@ttA|+d<)|WXYvYAu~J+V+Z zGb}xhgh8iGs!CkxZ!Xa^Rd+4n`Ia`Kb-35HS39kny=kkZ3a}FRr)&>mDR1(;PzdbK z*sbNzt;$(vJ;ATDTk@Pal@HNg4-Y>>yg74^9c za~&XM{=7eixpUBvEL5SYy!_(xl$I=W9hc00ufGGr%Vk#W0|z7XzbeX?UxdNI z&Ft!s0RsgA5(b5XZkNg$QQ>GZ#Zt5GCs<+QEr>O53h(?fIuAsF5uC)LP(lE>0EGnf z6^f^S+0FS%uA4IA?W2^Bm_HggRKn7{D*%dbOqg8{(knQQ|`G;#8P6Tx%_!3> ztI##5P90NK$G#6^+TXP&z|k{KMM=n$*RvAi4s*7WY*|eSa044xA0ZWc#=ZP|R7lp+ zHX?ze`!D-bN%$YA{B>Q*fm+qA$`6GA4+6;A$|Bh~`3 z^bMui4I_*&uvyD(Oe`)00pYdadrpp2X{^Pat)*2{(re0-qqciY)BH5=z1RJh2OX;o z>%yX(gWJp3`+avoqlcOB75AhDo<0fGeUypXFim8JJ`rZ@halGX5^`Bs5g-#U>;4Y9 z@mn+pH{y?pYpeBF{tEq%KB%m^8|GcG{X9iDu`%DjmrqR{9)5;ziU@fdrcq4(s1%#I z8Bw!+VjhI}qZs2ym2+LigHzmXP3fWk57i8Vz}VHgT1c!i=I~ld?sB$q<8hN1zq+M{ z^cO|gpSgIC9|#ZUEI!i&VdRe`4e*pB@IdMBI~+RAHH3YTN;i3Z$>%9oz|fy7VW6eI zCN^Hb%tNaWRQ8o9dOzt4YEipOQGxO68&q6AF?2ffKzoJk{xJY3qz`mE% z`tA}8JPdVLkSuyEM*OPIbJMR*E0gmv#oNT%zrOVfHuL3j@#M5hY}v}*>{`%E?WG@D z*FeBE#6vfUyF+31j7D-RH^`>_;N53kDBOKB)FkT4H@s%QwY~w#!<`isQ2|cq&pFbS zlHsgm)UESz$n8RL&&<<#0oc{VCK3wV!Fz$yjP{jH?hDmjvbC=xdBnUx8ngOk-?4NZUlg8yTfm0rRgIF?-y zyXGKpwQRZICUogv)3qX8bVW&2%eXdzOVg@L$L3auK(E>GW+n{bUlu4R3beemj}&En z1?a(Q^5}yf)=Jk~#}ln+Mk^kg&WuNywZ9`m)EthwsXK`J;(1n^LU^!rA*=VL0_n&E zy(R0p+3v7v$+jj`|Fgl_%`9~G>Ua`YVCdsqw4bYBbG$V_jEQN1;B~*JYi%U-H>afU z0+p@K^x82YL?<22e!CqP&}h})T?;9Le*WIolXvspgTQG2%S8X0tN(hu0ge76-keRy z7t8(fwppwEjJeG0tx7TjmC068oN<>FZ7xQQvY`=qjVjhL)6j6Yf1(uyJ*R}dUW(&| z^QwrLV|pR0sgyJaS>BsomcrQf(a$mlhW&fq%)W*hRmrynM9E;;FStBkb5vSPEm<`l z#IfgSqeqGlr#+T6`w<1FmA`r2=a${J;PTqc6qJkJ%)8@WwctXY-()2{wb`9TlwG&r z(u<|Ka(w7;dCV`nY{9kchLFcQUU&)GQ2`#|iv~f#9}kQk^~Bw`;HHbpWj2&@yBl}x zzS#6@x((rfK0fIY@T5GsO&Gg4oVcc&qL(C(rI>ChP~1A5%2riVuIw>VC#P%E9-{Zz zp1hZA75>n}abn-Xn?vDhx6uGS`fVFU`RA`gZ91>^0ff(Ym5kop&L77Q&EkJ0b>lgR%y;|6&8m%aO+^XIS1wD}L> z80Ek}2ps|5kz`zDUkSnCgNaDJcBKIn--Mn!?u6Lc@N+>#&DXT909}9q0QZ}jgsB*& zFYVY$IAG(^=K?Sf$QZPW0c(s)zX9k0d`>o^0If8q0K11T%K%vbv)8J(<|PYS`W6eu z+r^{LBcN#kKcO5)GiHgU^6pIt0N4%3L^DN@8?;Js+5pS|q6M{jO?o>+MuVlf--NCJ zn`1*|P{I}zTx2wJxCFjR=t1%lARx&@^_vtt?U}##anu)6v0orrIN+ULso} zrfyaS)(bP}Za{n_b_9PzI_I+xbiniAE)g4KX_oh~q z@HVL>|BNWMLvUV)e~DIEtj&G~Vdc}KPeK;|Tb?lH2S@g@T3{gro73@SgF9VuDg0vK zT4?NS?CY79Zr(7Harj)2AO$b$)gvh7Ed6~(b=RjuOPhRwv2ZD1kC6{CQmvLz2IZc; zvSG)bcc;qI;WqmB{qK_t26LaDE_+FFYg)M3m`IF8yqa9?vhz>RBdwVvqug(=#vd9f z&dwtLAecr)wH%(RU zE1A=#G;s0BaDnHK0xr+!SwmRHH$D{md+N0BLl~GXhd7MvA%L4MEklID; z7dS&^3sfCM>a!ZWMi8F*qNIz!MfkGGw}D${G9)dP!lM_U&i}Ca_0Yn3W@)& z!h~uWa1jg%#eRiwija*hNty@b-0V#*Ln9MXyehWHp#19USPWVQ1`5rT{`b9`#3}va zDptl*?&l9-7}20#HKot}R&>_)#<5OPlzmi5PNtI$$X>7Ex*%`lKg*$&JQfb@c$bAq zqFq%S)4(QusdzY&#MryFH!7;JhFy9~b?{)tAqk^h6liKHw1i!nim$n~TZqEaxudC? z*6F)GSPo~r48!o3;4u5>r!fjf#-?Qjikdn~&yMj@Nj=)p^#W_!HC%}`n+N~$t(*n^ zSTB7_C{BAX$xL?8oaU5qHWv~j!mT#2%*jOD08X%9ito`=Aqw8bn-jMvyJ4B}W23&7 z*;S)MOuq{GiLr5`K0;Gbx>Pi2C-+tknVxWxqWte+bc+fb{5MUo{kLKKtAo|Q>){(* zw-UzJE8Ba@d26y_WaDdA_26KGk2>6NQ0ecxByn8IlSzB3>O3p3`xT}PmH^mL@Ed-X z5A5J?r+VN_L^}o|?D|Mh=CM1pv~gge>TPFG-yp$Z*jh|X)XCnKWs#+PK?!V@K{h8J zxtR_XAV3bW58o_7>vHgmfGgpKGz>zqC^T!~16!6)#Fn5%21y1WPw`vWq;~Hf#W|0m;VJVp#5D7lLEu4A~=wnW)93E;hT`@ zA&sE$$@+PXpey=`-E@&bKO*6!h*4sFN#K$UNiB5za_Wgir)f~peAtc1VU2Mv-*15r z&1Cnu>lHBxH`|m|W;Vqp&%)ZTT6~#OKp$X2=Q{inQ-`fXLBV66B0Eb0degUq9gb-S z;Mz(Wjok0L?8fXk!yL^*TF(N&O66++ySp9C{51Hsxy)4YGx4WDYgXZ_Kg{WNNCI8& z7ZE1f5$r(;lPhNUw_5Zlp+QBSEW7b*WUQaz@LU1MQ}twt+v%Pk=rGhGTljpV-N>=O zClc3-`lt5j6a-ghPyDQ_*A;E+-yOQ#U(#K9*u|YikI0H%Klyx+?)ny_#~tH^@EP@+ z!0%D>75n_d7l_y|)MhFfz9WKIL)zivj?Z`~}+Ip6)=uXuNdn0SW-m z0Q_887=SBCTpD29YS6GM1MmJ~)rSb<$Ol@m?rq`4(?y*w07l6dFqC$IG&uciJC?Ei zbntW67)qoHX6Il{TOMWF(^fuv^X*_ap90Dc5DW-^V}Gsms7djIr)qoNpA~HI8K9!} z&j%3bZ9R5u&)|85kOSb~R@^-u8b&(EoKhkTSKxnfEC-fT0=T zmatD9jDWUMz8A5+26-+nI|~whkCrD{+L(Pq7GsttwL9y!Hu4${6uGD;*K40!pB=z^ zKubrtqn*CKi7>dob*P^D3oxmijfbtjOPSWEMCjjUB0xe&TPz^;4fR7!X8}ngPO4nw zFbMuV(vFldt=ixqAis?Je}ME~S135y9|~O?74zK#0SVYDvtFtH_n+7Pdh5I~%XgLY@D zEpA-K$+`{UK0yAQr@_)_V1uXYpz))v-29Zq@3 zT0uK?@K3C2+fho^VCCTL&?L0$ne%l{jr5L0dDfk-spzF9uwJ6Fc|Gr?!nCKlw-i!? z(S&49d~K`wvCXPcMOfmi;?)h(VCAVuP_Y>;_U*K{B+W4|DWk$0EOr_c_E$x|!vqkb z$091-*yKXWpW4vAurPuNBA?*)1Zi{Jd%bJ^*4r?nGP%Ny2uV_~&5;+oCZ7ub)q?1f zm8e5nb%T5D-NMkgH3#-j#ZgfaVXwZlKAol|d6n{J??5d2sNZ2ZhQO(b<24^K+P7`{kO#SR`-t3*D_(HgE#TythLGD-UNj zXvA}*LywCrTp<5!OK(jCZh}hZTgCm1xedu%Q#}l242%EcW3*3&vlo;}-XrxkWO`MW zogbfIG-i9k(~FmvG#Wuwpb78Wc4f=lwTPDT$jplvIo?h7fmaaoHzJ>Pz0f$R(ml;A z#g}nnEaz)759bQzYF;y+tG(thM$C#HVq}dRjyT5J6KC)HRNqFKT&Cl11Z*UH#yp25@TZg9&1|cNk^2Q)qD8Q!|LsY?7v6%i|$H~*d zKGnd}zwA#(Y(-}$D+`8+(|%w!EjJiPLLdOUP48Fd*uoLQh=$6(FE{M!U*$|45)CnZcXnAR#4ibB z>4{6S{yt`TLEZ%A`R?v#D>Y0ey+|unObx>)zv~?&Vxz|?c?mrbi{HB@4uD`31{}zK z*`E$^|KOUx9^yci|DJ@*j>&*2|6S%Lz=eIFGqs2}gBIJ!%|+t&Z4>$8sg>X*Vv9+S^At4;2EPJE#8>6(1Rh_Y zA@`!`ip^pbD6XJ||FsJ_w>>2ZNNN`;aS{G5w9>qK@PfKPQ-(NNj0gxkp6L}Ud&)q@ ziXO+Rsiau&WuW^JT=YdwA2cGPsC}tb&5;@*k1xUnrwFQ<1A5}byF)W~?oU2N$R^Ix z8Jc^&hG4M5P{486riN1_?J`i)J_trgsr1IspYL0QOj$J-UF0S-Zk7*d*x-o#F2oDT zjQq`PW%9X5=s+2`qYzPek0Rye!upz!&Ov!FVmG>R7bd}mNa_IIaNzc?rt#EJBp`rX zUMX0sDHRu;isUBF(4g6-6uvLyBd+5}2p$Vas_iTCI_OU(0w$A9hoyfFdknDPYd4cf zodpQ_-|SzHY^D}A#{W_9Wn<#z^lL`=AMqCYQ&nFiz^nMj+9Z(sKky!#wPpfW1}5;e zNm~Axi%8Z*o+vwOGGFSzn2lsYP*7DEy}pf75w#8N?qU%NP{%$95!;?$?8E{Dm!-T! zKUoWA_<9pR`z5%(pUDs&4m22q&TnNcb^u}2b)Om)4o7{ZA)hpsvMn51Md|>ThjPNM zxW_cV9L+1i%@N6lHbSi$M!(<3(EK)%DFE4Tx$2=J9Czbob4rU6GETHGk5L@*sltjj zrxz)?5JM?HT+iBa_-A49$2TWOf>B5h~EPXc(QOPi1hK@W(Jk}nq z23%$rcVLF!7wv?=9hB0cs=N2iaow3%KeDU zmlLFfBLq@Waj745gr(nkX6qE_hxrfU50YCiif#q~LKUbTpa3?dZg>nCH^23-+*IB< z&m|MRh)(ZyQ{DUyn3;8)!K@7wLyv?bUsFG-HtRgnP8!zMM4`d)2lCrLdTt69my18H z1qnDM`KO@xFRYFFdz_sV z0nX#11Z}w%^7vd&t>z?Ts5;G6O5KQn>Mn`x;bK($!JQ zqv+YA8^oX*$FuBzT=G$gN7Zndr0nrk0bu;R151@6v?TzYoBr1tuK{}Mznvre8+ZSa zw?2Q$S^tH%|1U@Q=P?ii2oucTO7(kJGwr;ANAH1SApXCOyk-sthD=7z4u31n_y4Z| zM2<5e{jJ^}P?HN*jTCSwLjeozn@19}>L>7#GK&5u2!$FM9#JKR#DhnCc512|6cvO+ z@a{*b6i|4_@JPsonC@q(Cl+_7CLFIl@@V~8^_zx(m z28cJ6U_d~wfK$BW|N7dkYz>Tom(FMbtgv7*voQTFB=Z(Z=oWa;m&xrdGiy%bgvM)` zlNP}-L8-!>5^5o$V5o#51UQ(O7`sZm7`%aV!lE#{n=xW290Z@MlpruPCrA!AdB}Dm zzN??jA09$G-_fi+vV8n;LUnTPZCF|;?S)=coyDL8&oXgC^v>Z?d4^llM|RJ6gXuV&=H9B+)6hz*JHwEnokD7R62i{4HB@IEwPkRX-I+LH^;NVPYRk?p}meTW=LlUWcn>wt!4)(TtWB zGWVYK=jho@l%c`(urh+B?E+IhCBR=UoE4l%m`Lu87Xlf>!(rE_HkDis&k4F+}m%cvvViJ7%2TGS@<_ zkgU&b-mJjERHKyUQ!<@@J7RIk%{X%{MDz4a5y=2@|2Xc19F|@B!8t z%n78w?%NdiX);@cjNIlHsY2k}lyvx&r`CQ$5E zkQRp89?2A|l$wD>vew3X zoSQ)w{4j&l6rnnq2&sd{v{HzEO7p5`I7t_u>@$Kn+moO@!yR3*7o~c3ta-XR^P=lG zUPWCNlz5ys^IaqrH;zV8ihk&kZy8H7{g!x*Pd^&-wYbX?^~3909Yt5duqD+~`db)+ zX949XROXZqdwMlVglyI(y;zin_}*1JTk!k-6Flb$ZLm$bOwzhKD@hEIZ60YBPR;V^ z#K_}2mqM+ND)k?G&w>49oU6hcop0`};n-5|jJd7UPmdsg+k6TC{N~~-v28fMncWJj zWH|44ngW{PCRfry`(@p}X~b4x5SN=`>|JfZ*@=anconP6u}6j>haFK3%EJL&YbDij zlh+TJPe0ycp*75JfqJ^FjU;x%n-*CfXjIlrmYiU!?5MibTWn%nrb=&-LLxZT zcW*B$Gl{O!H8h=&>Du{H$q94!GuAOE5r=NEHwMi44i|jaN$7o zf-)Y+Du(D!Ou0I@cR>lA>92z5Hbs$GhLrXs~zCa<--I5P86vlyqXuWHpF?#Z%lc|A7Gan!IzJa}W zn8~_Wc)JE1C+jyb%{S(iPdbVXAQeh=)CJgu{e<9iR;FlTWj%Y6(40Gf!9 zdh$ytO;%(%TNf#*5ZD9s%0;Q+!&BD`b0A3l6wA+C%BiQBz2I;WvnbaleVE~{~Y689#nZ(w#g)P*=fi+e5FtpFFrB|GF8w|up}SL zQDZ;Wo#hRwL=XVGN)b&4!qsY*O9@xEu*tY4hL;m4T&=pw=YNYP3&vdG&}PEu83cWr*N+;Fjb@jOjh zIO#m~0eAK0Yeg!+D;#5I@J!icFNXed57hY?MFj&w-*6)}WWFHQjwsg z;$!OOa-q5DM@&$7Ji)qz7hpI}Ocqw9+k*vLG)_#hz1 z1pjrF>))4m{#&BrXl-EiA7!7u|227ZUUF8$@LGYsENDSh*A%5x&u@_xZidKjX`xj2 zI6{hzi-S6fvx&vXw=9T-GAIdh^;&=C9T3X$98YZ;Pj%eSPM!EtdBTleQ1KK7k_-o& z4MU+B95E-OXLX?N>K7;SQLDWphp$f!N@ABXkas_K2M{%(C8FkB*%#PUxVIBl3dX{2Hdnm(FXh)7rj?!mw!u5MQ z^47pbj!j0u6;y{_<}5PDjvRE*W6yfl=~Ou^)S5P8jpGe<`Vz}cz>FlpZsn<8K*CL> zW$Pr&^(=vCz*I@1Y@q-V+sc$i0KY(x<7PbCme=EX0SBmR>sPJpP&tm(>$!s);T9qm zb)+j1MP4nv@jBL%a(voAblJ4_{E2~259L#w6v7DNJeg)D(T`^eeXL@sq3LiwiS$k< zQ1+D&yvQC;A3k3>Cn|W9RNO^SFweakdOwvVaIY?fpXplb^kxi79cIs|6Z@`bQVfOS z@@9wJYU^l!D7FhWa~tmWjJ7mr!8ES4=eLYFQeIu;W(*x>tt&{f-9NuS=ur-;jVpP< zQ8Gi&Qk>*Kxk`HWU0I1a20uKSZI|e*sME-jd#3D+vXg9FBPts5!XhS@(LKs^ZLI%j zZFZ3gC1ye1q+E8f{cuc49LaDwl&e}iC;#E+eNlTlF(g}wLDbZ6y&4`B=!RujP)f?u#7g2g=Eu3Km zZ(2-6UCkXzxzO>U&te3?iouFow!8`JkZoNIk=kCbew@0Ol->_2(n!kJuQ<^$eJ;AU zI&fzSWs-#J4E&}k!k@d4aSPvAYio#Yh(*BcX=-**&mXiQ@ODHsmX-A*!n|#4!SD#i zp-=@GsvE9^FEMqncRv}y16s1|g!sPP|42ER9DTkLq7&Y^EJFG^5AQT#sqwIQ>|nul z<{IIAxdrR-xFx^zg#b>~igA>lnctP8RZ6so8kJ{YMC>(SXXhgD8>@BO*b`k!duc(J z8}g64Nbb;to9s;9s_5%5R8T)*ju*3vs5LZEJ+?>~mGzc@nd*LJG!XVyqh}Z$5AP+p zJFhFlNl6%&{NP=&uI~w3^1<}&dMjUt-%LK-Oqw@#g7m0dYSbLPpqr2nqTyZPG z=F0h@#bWMGz?>2dnd*et>d(l!t9;0ga;RkmyAr};)!&CB3mM1IJx;GbCE;v}{K%cS z!Wj0WHIU)1g;S8qCjk2FmJ>cK;6vr>=xe^#T_PX7?2fkqE{$AoHh%16J^r4HY|L=V z77zU!*Cw-$IRHPoOt*6@`|t@Gn-6Wl5>uNE(XbnyEbN+eAO&ULtN#7YTlxaRp{q;d zi^7EL2b^6cPGA`f;#$+5XwGz?cUp&tUcu-JFH_dMg#6u{fI;R3AVE_D7gc?gYipXm zLPI)|vfTrEtHgDwV%eTGyx?kij{S^1FJK@J4I4T@$1IHkqy~y=J}meK-NAa0tg^YsQCbe!ipu9p0`gBJdpCmih67Zx#;0dVEf+Ft{5R4d z!jQp&;A(W!U#9kG-}CHhu--u0MkW*Khj_beEleT2+l<&UQo4+{9&wWUR+B=^vxXo@MJ4@V=9qCd4Tn!z`abgF!QwPEuR4Mj z&U;u)0})P)9Rn|yuMC5rI$RauJ2%Ju^&b0OdPDL$F~vik;($Tas(J&7FdLnud)(w$Ptlv1< z=IPXnT>Tg;A-7AVL_E3|1_v(q+J{}I%P^#!KGvzf{ZM)rj5EL+O?D{lRdjW2G6R`S z0e$_46JfZMdqj9S>}>@iT)9?fqvHN23+dP)P7Gtn75@Dz>eh*$B`HIJed^`m-qq-4XBsJmWK-_$_q5l8J*Eu!`7IaCtZQJIwZQGo-ZQHhO z+qP}nw(Wjr_tS2~#{Px65monO=6TXV%RkcgHVHTL={%)@il`Qnu;^=AM(m=jdowUl zl#kTJ+MWFSyWYm3>XM0~2jQOM-t?Gc{Phs#Iq$7AlX0c`U#%}IA3WPD)&K*k1kO4q z6;z*p^SIJ5M_>OiYyB?cs;4d%U~D-{iF5x|3gG)wk;VBPv0N9n$27?=itW3~dxAIdb-jvhh+deuUOF_@=|j`- zB1u0(f0FBglVQ(8dyoz67enSvK@(Ec8w&|ITX{AN=7a;AOtzTP`QJ~vR*$N7xve5( zGU-l$zvTE2iaz6D-@&k#x&<(Xu$XRTU%z^Tq6Shrk%Y?x_yY}U^1m#GuiObMnY2aw z@dd8Dt`Ii|`|=lx_@Ma>07d<3V8>>dEGY zYd_%H9uXMP^_=5ot-pHBVVFYeBBAUX0BTZckV-UXHozyU@KJE zZfM}TZH4#-?|XRlh!V<%eT8S&u!qM{RrCUR9hh=$+jU1}ZZXj!Sf=zF!M4FzE>tOt z_kLcGA3JA6K%7KWd#j@Y1wF>@7&w-YJ#y5z8yCfpHs@DF_lWKY)SmOd*y3d4f$l8Y z7#!UAy_eX=IfF%2T+t^qA+{QhX2ivMG?-eJxB!~X-%*{v%_cvBt*bz~v~+w5KFi@d zYEr=OjWu>3Udv`|5vS|y_a+kCpm6To9_~uA9iP-j)>;Pjh}@&BtcAY8RNIj2Y~4Jf zS_yb6TzHZEA=PIo0NKc-zm8!}bp@wC&nOqt`}k(;ew(C?%FF>4>B0uSOa>0cH6-$O z%jWKLc-KiCBzG6c?e8#mppmJdBe^cqvHL=VlU=-ulg}}CXbfT!NSck>4~D$X(Z&_( zvcg(B4tyVHzS-^9!fs^iF4;fb1kGS&7fnskutR-`P=sl?Wx$w+kgk7}Z(;`%EZz44 z>*eZz*q{9=dRiG3h+jdm`2LE7N1f;KRQ*|@ZoI_U9@|Wr31vtoIMuw%v=zG%xs z5y|khf)=pwGwH#Ny*ZQSvZX5(f-OP$_tQIQqADIha#S51jlj@C;WX9HY?{V$Bmredhu?OW~R}uqoOHFQLdm4=fY^=jb73|r$$&P#?>;7lhQB?0000|TO zvke=%AF0LKJ@$5mr3(b{M_5Pf{6c-(sv^_PP{W7~ebGt&tC}iC2>A4F?7lYrZmirW z_R~5A!yl(VI+p1neuXR%{f1~zY*1ecj3)+|6WLBN*u?`T*nAKVx$ih`yAw{$(xU24 z`b2fkm@s<1WaXu=K8qML@`r{eJy&Co5qF5Q-e=^wG{x!uYi{e`b;sXfv00yNuk2Qz zRhG`JrlPiOwQKMkE{$|8X9)+4b2vbcF~0#JuXO%k$k+mchQHugKlo;raElj5LA4U{ zwpO?kAnLf`L)cAA%j!CMwNJzsH~wgp`Z}0%nM-kzw+Zk9SRHmdb%k&b*r!@Q2g>7L zwO<`>R4vW>`$6hgFxB|E%}9+Vdf~apZ?5iT6)}fds)^$80R%x=NH<(3duY_|0Evm= zN8BXoYXKp*OmMWy9yzX2eP$b>Yj1zKWeWyV?@enDU|O~wRIagmk5{Lzg|6w!c9f?e ztv~3a?Zo8!cN~HZGxC&ai`8qB&4?DO{h9U8+HM12zNflcNSTC>Mvth;gT<`opK<^S zm>N6fN&{m1P9OpPIrS*+@Y7PYyP$PaF$r)MFLTPX;oM4T3&OONpPEkbl`ZgwE9YT; z;P9%#z)P;o88t|hH5AhnXbNC1W1f9I4J0?mmYx zI^B5dlWU7&J~ec$nib(hp#rQ1Rw|EbSjA6uF3eXC4)*Y*vIzNA?u_8bseVZi_^n!0 zkzyeYEH}%SHUX-d08Uh`FQ}$~1)eS;!+Y83w9v*SNfx`Y{ur*!pn7b_>S8}ViN@3r zu)HPN?K>H%^BGHP$H!J6!rZGoKb_H&U3nJz&!pKcw|LF&#l0xdbF#91%)Bs7#Q zQ}PFMoPzuk2;}v$>y%8BviP6+JWe<4S1WUMhIE(u3DQr~AT>c0h-|*GOGQPU&PZCO zr7T*I>0omYBtJ}JtPLZ4-lL2axa7{@STy-d;w8tMdfjRwCAIIiemaGX$=IvRBBx<- zg*K!VVKL>}_xkOIdCP`U7K59Z z4UALEx7y7OaRyxKn2!zXvFioIVsaiu6RN&xpTjU;oBXR+Rh}vsLkRU}zF01;>C&z& zB@4u<-9?*T>n)sJH%W*y(T#OQwW4d%Jlc(Pn~psLyy1i6`wr_xOYdy$gM8jr^NlDR zIrytyq`uOsm#7i^_;D|~7rL)2@sMI}^UA=z1A5$xQ2Ou9_^0wIUw^CPv4ZCe&<-Zf zE~1=Yc`f=>*0&W_6lq19R^~j$$axKj52a&>55=Bw^|bf+3?7$hJYylMmyb5=yRj^FB;S9mz?eyrz7L-+zTzkBVjtS0Q_InE5 zo1}6+k zdu&1Rpt|{{aqU)X7X&vD{1}ROpp)q5_Y^BV3;$_~r+GBkUGf>f;PBN-^|QGluz2lD zFz;5icS#?N`D!h~tFEI%=KA5(dwBMG-rhT3i^IbJB9eWLs5ZWd5Gn}?wo77qk@57V z*c?RM0wOYaG)M`PKjE!)57#*NpER>M7zjUkHOBLJ#%YG*0Gpq23mZG{cl2$#|ZP>3h}tjf6bX8 zWa54$)M*^Abe!wCm(qVni+5}ct2|geIYra{H=av9FO&~@^DWCL^)5Rl+%8a(B~~U& zuhQOm=ahCaqqi71s$NA=-sN{ys<5#T!X08G%3kaPu%j!sdEm}BSJz?B%21#!BjSt? zNcW+&>KcMgNjP)D{4p_GM=P~U2K7Xy=J1cxb!wt^eJp5#+$O@=a(okh#5dToxfkwY zGI`(e-}p@sdFVAxcJ7K3n=tqkLp#s4VMi3Y5S1NA#+CL3vb6i^Rv;I7q?BVU*B`>1 zEZYq?&0#ROLziZXaEoZky`$)rd-POSIgEQ)=d^|~mEo)XQrOj}gqF%?8HIS@55@@E(M|JJ zGl`%Iz9^JSi}vw=ue+ zGKu3c;x&wyb@_e_xMC!u#!4HI=ch3=R~wlr4Lj~o?Cm4$17Qus6ghw*N5-upT?VO7 z+i0{<{pQtJYVm&_+{B)e?o#vUgUHR)YJM)^`yg1C+h#96G zX$wMMOI{RAoNw2{ZC8#PLu^EEQM*s5(w+r}3*hfvF>lo`__TQu*vp0f=YU`w-<_;@ zvx*9{w^4EHC5rq)|7G4;zQ#d)US^e&{k`YuSy|f(B6E;E!wl0&m(5lsiv=bGKtB_c zpSoZC*gy|tOhPjk3n^g)QP`3s87U>3Hru4e ztnE@}>bZiiU@g)3a1?QE5*`n@!>CBBUcXMYSr74u%7EO@SO+E|*?F~HJMq(1%8nAK z6X+z88n$()X5+>Xq9gQE9w@A}uNpn}y|Rfk*r(48q}ut5?-rEd-tI(kR+TSQLrDCjneq#C5vW>mzql zrKiH5LiD3H^(x{@eR9z=Q-u2(G5NgfZN0y@w$0aXL47YAbReW&YgZVrHkiaL3g(8Hg2knr5HK?63jLR*zfD4+CLsPc?LD;lK=J(rfJtRm5%Y3;L zx>Jx94mWJl)Tc6g&=^$3V`7!R!K94qI&*!N>qrkF7+b|V3Ak09z#cW6ZQ=o#mSO$XSIAPBH;BdSCP&jQPR@NP4#rXH(I&7k6 zm#IX$YG&6W#=E20m*CYo?w=B++d4h4YC4Zf<-~D@DgxII&)=#aQ*L|(rlpT_li{G4 z6D12bhFfLJYlD$AOZO1%R@Gl46_?JRXdL-FbUJIjoyPCrSNmYQzW{R^pr3C{H(>p# zqWUF!In({uvhlQ_J468@MlDS`kB5h6rIWr}up}9GBAP!3s75ru5=zo|-y#{np;UQ; zkLS>QRyj}-__Z$VzxD1=-s^pH*RvLtg_*hU0cWB=857fEns%OP-`l^!}-sTJ|vBc{3-&n zgY!b5p?l6JLK|&xpla4Vg`zN$WBYPpQA2?N(Dfy0M|+!b%91AyZuamTr837(Nl3`g zQ&W?FM+TO5k|6zc=ok~HeHaZdEwFtbBz2&$k4O1BDf62uDkbK+l#Gnb`H&#&*3pii zB6Abin)}euVP+<_=VDdf{^)nwOU2x~(-j<5+L@cK03J&<<;E<+pWu+EWg1JKIyj4Qoeq zc6Oqz9^BmAT|fHXvbFafdDj@7Oz5PK8@Zfv&m5+%+mV7w7=Zx&#n(0BC?2ttn&Kw}^g`(-An z_M`31m>S(16VfZ-qEDvc-xMPbZT9ICvR%gC%Gi#X3LCB5S#c1&%OCYOXGW|w?PKe6 zw#~NfXMUK?{;3X!11n0>g-l7+on>ryrlzKHQ}1GOm-4dFXtG^_;aQql zBuEw+JoN9xK56ko0N<1DxZ@qJ-(c2;COv_;xp5P)vho{hD#m_^)|hSa%ck5Wxccf7 zelwV>8qg9XTh-~k!3ZUHaxq>2DEP&pKg4OaNSPgl&d)2TTU%eB<>cge`uhH!jfoer zns72ZTwXuD#cXVBfNqj0?zi-0V)G%LOw3VeyI=C9FEoB#UCn?L#GZlhACteCXh25f z^*Vy&a6)7?1m{>sM@Ngaav+T$ZkmdTaU)Sf^2bT9f7y4QZVw*hN+k-^5ESvRv;)71 zV#emVM9`~895ws<1Hw_Og9F;M}@kxC4=Wyg|NL4a{)1BRPyNF7?^>+%je#Y*Q2wvw*+=5vTWgbJqx~vY2doaBf#DM`l zu6Fdg=U#INp^I6O3uMoUPGR6>XR$NTGmr+Ef0#CAOJ#Uj>DrcFU@O<33kZvdl>aj1 z7Wzda5|f*2EE|ronpzv})?+_D>SFJFb|lBAxKtGz4v;vk4EF3M+v8#3;n6AtcC|uk zZyHtxZ9xHEgYV`UfpEMLiXn8MBxe7!>F;x!LLo%m>;P%XcR`xjIGUbPBKJ zyXrW8v~$@WZKzo9uEuHzKR$O+MWmC>TS=Bw1No zFME4?*JFmcNVf>J05uH`^`MH28f(B?Mz!LU1NQcLTCrTJocwYKs~nMaWVkdQb$cZ1 zf5zlDo~%*$zU&CU_YY-#z%hY5Fd&R+@_(X}5dPSTLrpI%0|CrYn3N1y?6HWyCJ+3A z8oP#{m(~$*9Hm-Zs{OGw1a9^;iw;+UC3GQm0s#XvF}Ww@#)zr^u@9*=OT)m>KazT4 zGlkrwSKWQ22OAQWoCh7J#bD1Tp}#59aVw?2(F2^LbOeZ*Y z--fZ1{QWl(iy5uHwKj!X+JA57*PUP)I%Y{=lWqz;3PI|_G~pZ( zz$Pv3RgfkwG1jxRjEn(Ai%w$htZrY|-WCs0b`CG}!bhHEbI(moRMI<}zkG^uaY({+ zR%&@17|#KrZK|bWwfO$(*Y8MrQT}Enn~R)k?P+!<{g|K%RaR47^gp^QZ*W*ZKHDR~ z+I9DF8L1u9_=%VpMWuLh37h@obJ%^`ET0N$Wsxu{z++zn$v6 zBq8QoOPIE}xct=s1Jm9PS6uQ19DiPUhK2o7KF&(BMBSw+JwZnUad5BO zFFxGV(9js@vfc;8+{?X#M*LZ9C?im1@lng6h03J5Ga(^<#HJeJOgaTbkGfvCx}rX? zYXIm&TEW+la&cPXBqZDq9jxOe1oS6|hKBAK8pIlJHU&>qwz-m8Ocpxxs~1~{&DX)V z$5uw@=J7{sV&G19@s5QZpA};k9Fkw6qK0dDE*re-h;2su3;g%*@(*}SFo`uPYVyg; ziy^i015s7Ll9aIpzwj|G+=YmAC4a%*2uF#`FOm zBCgUd@)s%2#X9Wl>^{xvLBq#6K2@CKpY9&Kz_AB~I8NXXRz-;`F4;!v)HKw*zKe^F z=@}UZ$K(o8j?d=H)i@sbnOmvjYKvrf+f)c_$rTo?Iq9`d3QLQhjvf{=&ma{A*|Ec< zue*eaFOu0{!^4XX=RSB0OiYu1I^I^yG9qvzwKUaC7Yhda!Ee`k#XnaRzpH^V;OSxF zvk=;I-A;}(8+N(#J>izmKT5F}yWcUlhSj+sk?@3suYI#WK82bXGD=6i`KhESqzIep z>Kk;}rpD?EQ~^xaBly-Qm?j2rq%_sl1wf9z6oGe%UZP8{VW`s6>lV_AO{Kz97>z?N z8@NkxrY6J%1Oz+{42X7BZ?5ZoGPiD24cMCvy`?^Y=2aGXDFLizO%eG#Eoc6g=E!6Y z>%`mKXA8})b}|g+GS>{pe13(#xlG`=s>){rL)O7X zC37#~z4 z7O4&(F=y!JS8zvNYby~uTRGR8Th$*w=3$7xhIbhoEoYS z4PN+be-M0MU#j$*3o`$vSRUp&@NO z6b>bX)ZolB6ta-&d8mt+J@v7rnTM@ib{K@ZT2@XjF)zqO!?E8iG1x_E?=PmNWzqo6 z@~X-nOrv-;<(CLU|MKQ{I8?$uxaxXW@$B;BcF2ult?zd1cr9h9kM7IMi#&J>Zq6XM zrIMWI>B-3gG+EcFou#UR7O=g*!yXXBbz|7J97bp|N3M2=M-Nq4s;o}yc3MUjTPr~< zqwzLzs&3_i(d&9`<`sEeOg6eC+qWV%_Csng^BL3N?UZd@gf8ZdJ%m6KB89J|pqYqx zC#_co{hk7-`Q*Me4jbD$i3DY-T% z9qRG%@v;-P6Pct1R^~CL&1cm9W=)b*;o)G45^p_A`U=gIj812zKeIlpsh)h|s7Va* zmC#^HseqN-Vx^bv?(XWn@dN^Wu-09=F-cmk9@(7u8#MweloW=OBO4nYD#6!6&N{*F zf*8jW53qqe5A9**gQyhJu1|LlC1SbRI&$3Ji1g;$PyKtT(!Y)G)V%51vfS~%|CVRy zij9qP`7C$i4S0dE%lEBjAHj{;Wk$(XucY+4_jX&ex3@ZwidSkrqk#og^W-KcpO<)* z>|@x;K-+xIti1OQ=061nbU#ix4@geGp_Au+MOX}pc>N*Y@8SRG|0ItG52U972f!rG zAOYPG?RzUl!+_B^&uTa4Bb}&62D>5CXj8-ox}P}w?ukS@mB1xE5sVr4B@STLdwsmK zNQw!Hu7jLs#D@d1KW^@rR~%+9U2iQ;k+89cs9PhrsCxm!EkYP9`RBNx_b4r3CWAiA^{JT$ju^emRv9! zJh5HFt-0(~+VB-#j7Z2*92mZ4@!BOEOqS9U@!OCzsr}$Xc43DG{^@(LVX&p=ze9w4 zcz^gS;*E!hKaW!-({JDQ!w>{C_e$9p^=@nc;R=W$I;RX@wm^gl2BxB*$ytYj(>_JQ z-JvuW$P=5ovJ!UyhzRh&g`)L|0J}6}4u|hqhjZmuC{_L#g5A^E(*Z4mb}{|aVW|l& zoeBuSzu`&U{;iy#tDvxNY0$vL%l_8I&A}mIP5D8XewOp1X*=_NO~Q#4Y_4wh7v8A? zx*gE2@^6*jj9KiTZ^=xq>eenvHI1TmWbDi-l*KPK-6KAo!j0BWOG)4?^H2UZ&$Jpg zd0AmMZ*VZDh|0ew-AdeoS0w_q0?nc9$>>w)a{iu3n7G>#7~NJvG~WgGj=qR3z#Wx7 zi3(t7NHD)2A0D9a@Ug`BvWWOS6osy4_E%Oet&=2$$QssqvsX#g(|vdGd&h~b1{EQ2 z5fgM`$lAbxuxK|iU4_Zux9`I?M;_g@Dl?ulzaJZTfq6y{#g&!mz8~318sxQ;I63m;9$q~=jOw6KWWL{S^ zG_mg<-xziU1r2WaEfa4&2Ham2xy=jYmGW72J>AXHm52%gyaJ04Y zJw3d_?CVo(IXF2Vx#p&q1FrW<0$dssizgszBxPE@PyD{aZ)|*1 zQ}QNGmh<4)*4R`L#0lNy;UrIe2J2m?F_D3ZFDI9&>W7EpsmH|oUl2@kz8S!bX(Efg z;dNzINh4HO&NE{q32VdH(qu zXadw_2NWE0b2B|*X8OF_yKbs!k7OOKOGZi>Zzr6oUG5-^jTFY)cYFydCL*}Iv*VBm zYR2AB(2t0V(4e8i{lL!&FX~T}3Tq zn=gz9@7d6d=D|XX= za;DqezWO`-2UL3P_aNnMV^A-{;Tu@G?H6ECQc@MkGHirdfPY+)MYf1tEe}tyPX2uJ zdRFC#$AW6Yn;1VlRO@+VAWqP5h!4bo=~>N*X_2W8+M=>A0H9i{YMDtovP-w8DSXxe z>rz31rLfl*Y>WX+skeoIq}n=hp@qA^EIDa0E06 zeW>F1Od>}1QSXFVlI@t|2^fI9M124+?>Kf!thp){AhQsrEW!M%zx$2F6c|GbsEK?} z^bfh=nKpnAFe2plkF~zoh)dj|^ZUFa!1C5yf%RZ?CWM&y(2XrzJm8o#ww2JW571*J z95Vua-^$urc>#iq2oQ1T8!`DZl05wRn`~x0sJ5^4z$$BZ+Z%8MUMMfLc5rO8O!GuO z(M&{CnP&T@CIJ@|60^P2DP(LM@IH>79qci~ia8#V z+*)n#m=({AVm6_j0|EprC}?rdx09RO*_;e3=<_0eZu@y~h@EKulgxsQ_vYXJ=cf1MvNI9SLhO#&K5vLuh)eO_j!u$DLk-dEe z)UBPuUtC}UE8L4TFar#Z+qVVlAOkg5@G&fMBf~M zioPsKMQH})tmwnoYGJebN8=xb>g;H5&o{8Ovhd(-?f_*`y!r36IpswI>qp=c> z^ZjnQm_g40lMV}0HVuE$ZnsdsB>(jyvk3>h$ocs#dSnG*-@Vxrkg+)_#0P-}Zp+gkR==Z-R#u|1$t%+HD1g=2iTK=ww zOJ9GqpWd|cVs|2prraMungA{kj3x)+3pJs??G_I=8+X(es(d04tq710rS}NcQIThX zwe!4#(atp>MRl)n{pg?@Ozyt$7%*T#gwqg8_Eozd+0+=@zJB+^*J{0K2&>NtLt@%fLW=}J!eaC zqYi^HZ!`3>?DO;U>P)8*P*7NL^mqtvck&_KNV3>o)YQHMP9)ga*a~BodMmR0sA02S za4s)#bU$lSt?T2Bcx)#`L`3@~;kp#XQUVoscElV>;*RV`Zwi5ktE;QJHtHJAR1AKs z`Rh=zrG(je$lu~jCCQ3Gu`a_*>lZVYc)@T>Ckt z-m0w`xjeza!O(+HsKG^c1_Be}t~kd%>(U`ZK|x&yQ0R>JkdQ@~>FK<*d_E{L?oTwn zwi-MPt|d`@DjcES6MzTy7*f#NKkfy=^2*^+e{=gVckz?tK_h#dHVV-GDs4*bjDcEk zS+SPKcd?NS602}or2H4w*Du&uaH$WXk4uAMME)uGY!ePF$DF)O5+e+vn_$S+EtzTR zLlxK;Tz^p$&fqiio$`;lwz&9M)MWYlBiUiOH(eAOJ`&V~WT71SVo9QntoeCUKdUx0 z7gOW@S8zKyQo7GuecqYa6|rJ+|0w3m#2=y|IbS-$t)v+^@Y;`p0^rj+nJ-f^2RG`( z41y6nHZz!M_gJA089~o47YZa4_=n`)&-`7~llYHCz$^~%cAvR0Oyhu3qxuJAc1DH=Gb^j8z74=O=){evF*zHA^q2S+BGLyeh*>jR zhT)f=9z&gKrQE1x!qUjpi)t-zw>x6r!@p5=zTVbb)Qw={t6%HbZ8XzmM_&TFIxZ)t zhn|n`*Hd4=f8nH9C(>tvTQ^A_7Wt+>k8@~j`HXwGt z8#--LUGhWc&sd^}lE!&Sx>yH?PoGe@nR~XGYFfNFU5pbSS zpv1vQaIOt{;Wrsgl4_YG)y2YbF^~S3LEf8yE$|6d7Y>C@1UC^JCp-i4a)@7a^z}_j zV$V7%tia`x@Ql{+YIxu>Wvv@* zE6gDg7bjMO2fjoiOV3Kz3oRN^=Jr?R9!br@5A zu&Tv9c8zjVcmw4!t5w);*y(B6)^X`sRg^cvil!I6!0kJkpNM;mEeWimJwSrD?uAV_ z1s;%zin+p;>u-5(KmVW)q|;O70XQ*V`cHI4L_g@R-qw$Rq2HChaS=5 z#4UKt`Efsa_P{8PW3QyT?YBPkI2#{Wh53txAw$719t)Jv^%rge@rMlB-`}C(Z%%*g zeZEUX7p(jfl~0HUKkwhxin~%x4TRw7>oZ{Wc*}f1v}@tmMR6ay`MOM zZ#j(wfXr$3!{~D-^NBDX$PS*sa4UMX1W8pmgA#QcwvHOT z-qsfLZ-EtaZqQI)jsE9Xpw7T-lc#vpuye>sNJwM~lWT=#ZFO~Z6&}8$jZhQb7GSG) zX_&k1W81q*PQ*D1^9bjNLn60yTfeFG2G31CPu=Q#%w9I@ zCVG9$=lx*Yml4z(Br$ID%4tq<{5Y$3w<-RL${cK>6vim%2U@qOFVgG$P|xH9Z&{9y zsET{o%x3>)Xb0so_C62{->~+lA|`OW_| zgR>KG4D|yx3o!UnAWWk@CK1%dtD|g4T14Rc^-BU#w<5A>aKAK;d=uyqD9Seo&1ex( zOz=nQD^FN2#S0{PO@dTJg5h71`H@Nx2$X{|%emKIM(m(hr=lHVhIChnBpZPvJ--D1 z^z`(s9vWdp*LLkooP_>G#>K^r(AF_InHCTCTFCMI<4mFCPdH{*|2o0oSl9HKmiENL z%zA^bqqSx}LV-3dxyYdrC!bG}d^vn=e7Yep{^-ElZ(+HI;giQK`+D0?4Cgef319Mh zFaq-z^W*~`R~_R^=kJD9_plNcde!3G+#4qh;q@ogO3Op3=x(Z-1*0^CwKdZS*eec(BJ92^&TK!<^jkcT0#A-3$@J|m z^f1>#luv;Gv!L(&C`INg2}NJ|Nv;rc>OXXIFf#)~JUQ}?9l;*x2M`?MX_C z1v6d~SSjjm(1-aqT9Rw8Fz<0)pcRc z=+o{TN4CPpHWod&24RIQXJCEMp8>$qWOnR z0SlR|W@k!O#P_jlgfw9kHMl=ic$Oy|UW16zucW-Zfqxx*(6|Y_!P>qYH!6fWTepRt z^=2$(PIm0_cze&qN#U_rMa}&rnu7mV?A8)ir-WMf5ynjW3X{>R!1fzCLXiv;h(&BH*;QuD|M%#J4Myn+8t+}WoZ0l zcsP($I(gKidL?kS`uV`)yLuS8oBFXxQ1WAX)5Z>4&_=OiBfc?0B2wVf(~}K3d>tn* zP7e9o98uclHnWsN1xSQIk(5#<$Gf^Sv?O07D{NORTb4nY#r6E%0yRRkF~Wm>EKf{kfLuF zXL|)zT=Ed`VN)ZcrI1inT;JK+y8~31A!VarPb8tiqXNRbV9c;llEZU6uJOS%=73;W zX>9Ewd4lDR*vdYEKi3x{-W%DfE_8D3BZZ(SE=qq(p@Of#JPyl*OO%VxRb+)lNUN)= z2%JbanT*^j zRDA&*qDa$8i5V^5IVb%p7NC2fBhEu;(DWT*--C2&O=HaR>sXm#=5(1F>+0-m&Vm+a z(=ork21G|dR%)Z$+c|J;RC6ao<*fA3j0PWUk=nW7Ig&M-T5i%XHeE_waFsV4J;58d z=%+I}taE1G6l6aiZ+z4hf*u0@R^rCF7#SFNKs167hUDSr4-QJ?=H{yYXlp7hE-fv+ z|NGkKeYo)Cr$A;ytGvw5%Jn^$6LoV4gV?+W2WDTw7YTda$P#;JM?tEhdkNjwnAFMg zKihI4TRWm5A=_!>I2NEDIZa<*ws2eK^gu5`Ph2DA@$^>6XprRrMEMezMwhRzugbN& zLmdai`4hJ!zqh_3g&%)4sb4g9kW_;V>!7!FGdSAXw-*g|;=F>#)~6neZ*Oj;il>lR zS`qN#-%w;$eClAVR;-98oS;w#DtLT#nNB&ix`Z*%z4vHMN6HA zUN>egE3bMC=6pwFz3eSDv`eQMxt^whc@2Vq)vpJ+9%RAnOTFbcgd7x7QDL;TZ^xN* zq91HbO-*f$5i#7n$=AuJ2&X$O6zhl!3%SS@apLOfq8T#X7z|{%xw)6}^YgQN^|E0= z}A3t_cW=Ov9lQ%Z){M_h#ng@E-6D ze^gSS;?HO&_oH?H2)KL$PPdCmLO_jOV4y{QpkpcgM)I5>Wc^-Nb8h^u6~=Jx5QJr5 ziOcp$dxrhlq%fNLNYRa6O%vT+a`i^>{7cN8LL4)R<3uttAt!)XW{T+U$m4tL(1p{`722Lu%N0b=2KZ_xi(Fi+o_Qod^M#naRgUgE z>?h2{?@_I2jKCSSntHBp=CDKPK6H|@V(Vl!bS;li$IUHD>uQ3EhA=e5>|}71sd*E3 zl6Zo$7dy1JAI|e5Cnv{MJdb;8qiuS1ChmKE{TMV>^64+75H~nJV)?)`RH23o63I*{ zcV_&!i{g<1c<54pu~&*sCa;!YwMaWVnao1tz~6yPWruH-1G7AoE8n6z6KUOcEu3VG zL-vu~N=rwVY%Ku^IVo*jnpYObtX3Kh19!u1=&?Mc24MY?BK)1(*kpc098$%d!qQLi zxblGn4!7xU8&1i&^zWSU*C-dsnNegzgu1~Mv%o*xz_yIUq?98k`c|2G2h4T&e*KHe zfX~Q-US@DMAEhM;-bf^P)z#I*v3-akAm`>+SNSe(PaVcHo2h$E1|3NsW}L`F2btxw z27{a-LYa4~yJZvw?~p_B9Ix=(M-h7NjuJ0~SO4W$RvLWb`xBdvsXXpq&sjfMZHkCc z0?^E;31pitCi)9jNfNlyQc_OV)Qrg>8353&CJ`Ct>ZyH<$UdPLG}~QqBS{vu6KeTjw!*aN4=jUha?QQMm8#F{p#}i*!>DkS7 z22)~Ob+>-;*p<&Qk&lq?A0Xkr%b&6hT9|(fTHj@z#yMbzYXVRNmUEk~7s&q%Js_4J zY~>>$zxp%7A%KX*hiI7cnb{`EC1sK|!@|NoB3-x+N%YGQ(E4IUo&oX_7Km4Z|E`E- zq5J0=1&rwQ9(vfy(j35c9uX`{10Dg1M)k|e%KjyN3Nwo#{10z$9TfS~?CIj}ZiBlv z?(WV2gL~ud?(XjHKDfKP!vMqJ?hNj*{PyhKvvFeIyK(m1xPN4HM^{Amx3j9Us^U|b z&m$OFnLpWm@exZ!SlHE8Z<$@6>T91Q*qw0rV3U4NGHLLkitPgQMvB&E$CSv&$NL|Z zaHa_*CwucTS=qlJe~<|~4$y_J+lxm{fvjwGs}6*$ICC|z78Zmuab$FtXJ@h@-+W9& z2rYE{Ro6Y~KfYlGB#Vj*3-^nNlF{5&A5bGXz|OeC!@^dy&t9WCYW!Wxu^ZS)Sz!0l zI$b=O(rX|5 z>Rm7wwgaS~6ah`64Zp3UQU#;b_C95)kMOlFwv@tIBp`{&H~4r8e4<1g+r~^|_~ovP zQz4=mi%d`bSJhpSVxMgvu6g_M`I)WX;g!|-osi>FxkR+o0tpyo(eZ|4d=5N=H`23g zQ~;I6g|P<7Qp^*PQ5(>TmuiVg4zO{`Or#X9E$~hB;Bnxd9A7ysH1TF?^pk<$0_4eL zyXH4N9A6sPI3R#ox}UTN2L|_Bh*I^onVETd5b-55v}n{0Udp&YpI;)`-gfh*XY1P6 zAw;fVw^o87hWY!_R@gk4;_+ja zX@D7zvmMF1HZ)fN1~;8b_EK)$a!)(pxv{aaPypse?7`so?qi7evpeIlmxz#q zu3p+nGz=xweR2_H9@GcOm+m}Dv}{jCa&Ple(W<{uEl;40yjerPR} zM51{qPYnyjz{U~L$3_$hoOR}#f-|KTr|#ubvRqBtQed<`%4^E9Si~71tSh5L>F*S5 ztp4H!)90pe<&vBh5fNFQia$C$sy7=Dlmsxd)M#jGzMqdKUva8DAM1P{V&M|tb^5x` zJ9pNfc-AQFLUrboN$bsgb7vjXg8t)BMIte<0iOKA7lg!PP_J`=H8Fgi>J(;@J!lGt zyTCe%sG-9EtG%r)dz~IpSLdtTgFIg7 zg*l@qQ$B*Aj@f(O^Kjn{LI!TJ6X>eZMNERK3ey|DU&Xj}ukSU=-uZ4~#_iJD;qza9 z=2E+)2hSbwpVA>)8^2Z_YvrbYcA?NTL#Q%v+X*gykmQ)AP_b?q2`Mfm2N#pqikeE@ zVQ7@cFdN8oXl{u5U4klY?8q}&{YIModmwLK)8%E81>q#E7|B9e8x#~okv;nP_N>xq zCJL`Vg7gtNlk)qEM0Ony_FbPuARqUtcZv}eNfDATSwmYR*h>H{19_i2ffbhbFCwsp z{JthE_yJ}#Hj3>5~4~{M=`=2l(^)j3#SS)@36eQ z?)SUC5OmUtPem3Lp-B|2g_)Gj67GPL?XM&Wj%QBF%jl*iyK8A_JeF|LIC^$2`wM`2 z6j^=+xE{|HH;sjb#dQ@2rw*nFYcW`SYxvhT$dr;LSbyd;0BLr2AP|bOdEjBm4)Y-s zHk2ql7+F_U-FHA(QqI9GK-u6<{lp~|Q4uHksQ7wObFPVrvv)9oEO(9&M0dt{7 zG^{uPUWRAq=vdK<4j2@4hSWlYfK=+1TF1|gSu+|wrSqsi^#JM6N>=gf7ZAjmckl`! zA$$l>uI_c6eA`|tHh{nRhS(m%jtZ^R^+4P+af|T6%?nxtx|1Pw+0-b+mR@iG05AkwH(gn~^F3N_W3Hw$0`#&kn4 zf*eiP)#n>qL?O^9z3xQ(YiIV$Ojs)eS0yg5bd>IE?n}8HICbc{(-K_bFjJ^3Jh3as z#?^jN8GIy1DPgNf{mONFR8>`VT*l2n-o9V=9?27S!sj!V6hx;-$Hul~dmx4=DbFwI ztb4mxRBHDW-;;IStf)>9>KM_A`NdGa%Ig|W4-N+D0)*0&!V%c`I@;>A-(MefwLENt z@{DP5-?#|-+h~2h{T&tEu4mn;+^hn|^03E|2H>K-==e|%n@VB1B*qO>N&k%$foH%O z!+)?u3H#07;L_gG)I`3iK~q3$4FuliRC{{32f2p`Lyf3gKZ+LP2+dl{20Q})Xv8*v zxas%k^XzieHMPMqmTn7sJqqV|i*^7i&72fH3;&wTAXC`Zr!oP`it z-cK5dRy19=7cq00NEV4)w%q(e%R1qYo3_@2d0C`aP`G5OVG z`6GHk_N`6p`{~oIK)FH`;cJK0_5E!IbTt@V!?R|~5@UTMe~WD#_u|sN@mWJVS`28p zrWuNKIZyVUla_=;waaM}7S@YwmU{mM8n(tr_^A;eH{@%dcP9KGtq& zs`S=1)TbE0`4!XmgHo9#gl1G}Yv)xEMb3Ynlq7$s{uoVNfWb_43gjpVjm^g9m=un) z0Hz}1C1SDt!lt2(XIDWGEL5L)H`W)-H#9}Oiw}eoKlerdgfCwG^uJsDBr296W~B#6 zeg6cdiRBgBDNIYAA;mZ^sU*k=mnC~(xuDi7J#$yD(%(akh8HNHETw+;c8y++l|S3b z?iz7G>3uY{c%iX8v_PN4`#H}uRjEOru}*T~DL|4V^_Pk!53Dh~gggS`75*cwT3eTs ziADk|cap9!D(3;75O2bxU>1QG$H4?Ft_kdBNeRvGI|(rhS3*=So@P9x&=2?;GA=hD z2K;-ubZ z1B0(}BZ$8Be(rujB=C||ve2@@vwsZ}hfoJ#o8Hbl|5^pJvBA2gWJN{sBs(ijcy?pG zZ=Rl3mR`rq(eKOT`?5w?Bqbe#6>@Nih(K_CzMO@#vNQJw(6D6wRm*L;H_-|IY_en0 zS5;lg%&u=;4rg{XF%eIRkDo(jXp7yjUwt#1&XM^2Hg|TR! z3W}-c6Cp}^qkjn5vcA807M-{2f18@}{p0S{s;#M=w)kBsTm))JVIKEFa~nfUj2Pp) z%xveUtFuEpUHo^>N{9oKa4&og;ej1z8}Iyd{zd&@ZI88sDW`z$Q;7D!etmlNsoDmT z&zYi;_)M7osPB*QW=6>@Lvut0HoAEjNYns~@)O3(v)+WLJO9(BE2gKtl(&aBL(A-M z(D+%BvVU;2qOf4>zCB?*rLA0us0Y1Q!_Z4bHoLem`QEB7h zJ=lvBz&HwpO80!c>(JyQ-azJ&c=$J28pM!@?=elSP!-2X0@=@vmh|IgoFYFUF-nX) zb3Z)7lHf3&o}Q4f%gSnt+j4~e0{SCER}v^!mjTz*m+)8i*_ zfIUe_#I7h_o@IPId~Dy+=K%-RA{mk~`d(IeI6a)S4CA{^1VBPj=I%Yf3%Y%<-#Wx? zn?*~}`!_vwpAnkuNmYecp+0k#W*YuSX22Z#PVa8)#WCegaUOkOitzd-b7;*5`B7ky zC%K=*+3xO<;H$!;1?6gPH@UQ`u;GGv&_rLEPrJ-`ID^n7Hpc+lIpium?_+ka7DKxz z^ut)&LL|1Y_!-Oo`s15sP=@MJOEw&7Dp>`@Q`@bKs-%P@XJo=?JNJ@j6MOqXU#*sg zU`}rCLKZ~S!15~@C~D~*h4)Yav5lMZh^77{?_?Gp9t$)D63<3@Hhz@(rj5nU*=d53 zBd|AB5Qa7NWR>t{{WYdkefJ=*__Qrse% zjY!4OYmCKT@z8@X?Kj=1N{Cpz@=oPFHc1m8ahlrhalL-Lj13dsOI1PLLy9Lzew1Uu~)@MCMLrpSy<~K zb+wh1`xnCO-6+HBK)?!eDHdl0=5?;VUU&#V;QfpFWoKd0ZfAG2mlM%zbQ!V9u;oP< zjIfrO$V1U%M&2!r@m@UAwL$bT($G-wuigIO=%qZ8Jc zezYwJbxL1zP;F^;cy7A?^o*5#jLu`C&w9DKX`**Z;_{0oD44VS|G!-`_7Y00IKF?T6qBdpGwp zDow@}#WA&Qnl_BrI%X>rxj;u>4TQA-M$& zfm0?C#Q$Kf1SI(UUU>TFyq$C7_Ojh;FxO6{Bv>$6!}#&u68LRWia6ll=lu$utA`jY zP%m`W&66zzrnGQ=DQCuv3Eba7fcrob7fix^f;Aepu|egK4134)xvmus6#YHw1M&mL ztIFHH5l6KbK@5-*99S{dhoic)(L+Ew1k5EiPV3TsO3jfBw`oE3r1M_6_B~NUEfj|* zd3@=PeqhW}MKQ>6fhe!@=mmEf<_z_SOt*(qKt;z0^Vm{S_s=-wkhlFlq=5z}LG74i z>V(eD#T@4r|ptF8%4&^8l5)$fr(^^{)ko~w< zJlGpsSYFWZ_fOCdA{-r5rFW(Kr`x5)6~t;p3wqJdlg51vu7zPXAS&Il1J6B+>0trg$qIHWk{PY0bk6G0%h9t^z3 z5PX=519}%u(q{M+<`9Xt1)gVp#GQhJ)ycX&q_(V?^&*>O78`@<2nTb9wi$J5G`pXS zV{SJQw5exLY2Bk6m$%19*AawB-S4^x-v`HJ8b){;ZpdS7OrDN?L!wWETtDf1MJ@Wt zvaWJrhgO~K{WMzo`RRm`M0*acIctIBKKQ8Sr`-#s*^SH2je^|aKUNO&^r;lTx_$?8 z+;Z0YVKiG4gLNI(R(yE)$LLc&MG|cuAg4_exy21nccq&OVOvm3?svxr zl2a0$o!-I9p8Yk&UCT`b*Ui~3Q{R7+(9s|s`N3PJiBAA-z0HsGxaxj!xnBAR6gNyQ zGp;BF>D;B`mS!*pYyGMJDKH(BjgEv?+uySMAR={8azG+f{pb)Od$^kdd?;JlrPYX9 zQ9>qAkIjgxY$VixKITyI9x;<`y}Q!$tLBC#|F0?E-#CfZYc0vnAw_qgA||%MdK%b3!tWhNV>n` zoL~l)%T*A`UWy>`>}m*6xe0Tp0Q5Etqw7;XFptB5pgAeN2VF0)C&Xsl+PT!Ck_7O_ z$yCWnNJei!0W{O+8bY)UFuW@%(d>E^uAK^n#r*FGSca0$@T)XXDS9~qJD@F8ueg|| zCyRmK;pHE%>lc#VSCR71gxIHG$bRLWtm91i)!w}!dn}2Tk^c}_cgcs3pJaE6Srlo) z+Q%QVnu|paepKR2JO-*BnAP+{T6u5&G7NyBXs8+#s6`f_fw%W|ZeyE} zCYj*1Cc~Sfv{gNjDJny0}v zyDbvrkYBRcJEz?}tM5|zi0#SyZl17|x;H?0RS<9+k(aY_dQT^FDs``ZPZ7 z9m33mtw9yD=ekMQeqwc3yyLIq>>6%tRjUqn*%zUN9l3#aI0=v22D-b*o%Y#p4|5wR zL&-iYAwJLpq2XOssa)xepqyHg&03~Jp))fJ#bc0g%{lhJaUA#bM@O2)MP}FmO7<%x z$D6G3sofEj^4Fju*^vX5%Ws7xW_*IP&zZ`-rUgE_@6D!e|2Eq{hQZqCVFMSg)u^|$w)QUAe5t03=F9R z{9~E{%?3wS;db%yYceDU<mqBy^P~Ioxu4V52PD?smS?+(t)aIB~d=GjkEKT6vHtJR}8UfK0Q2_IC?QtIYV~ zd&TG&3LIs5nEto+*XPX*(Mjpci;Y(gn5_fCO>D4@9Te6HlpVw+0L%J*X#(>$Vknef z7kPJgFQVYA0u~rPF*zRJ-|rd`wnCg8;Mg1G+DaSB5Tr=T<&3+fV&? z?964RC(5sPe}5dm0Eir-cP`-t;N@Ehwc}2voaX}YIBVeN8u6W6eNKFX*b7cv7ih^g z?rW#2LApH!oz$9BwatZN@L9p`j&G#PG9xH6mG(xOK=?aw94ZC$CBGRUGu=YXIxrb( zV}f_JZfs#%#M*8+Rx+;$fgkJa;5q3WSrJks7i*ZQO)yMmtNc2lt?XMCtyxv$Wm=Uj zcl6$k)ML;SMU>JxYLLQnLzH?|iuj=f8XM*}+(xd<$8;cSGNI?sPiFQ9UXE*uf`(`! z$t2lux@X)<2chP!I2g^~lVCjhT2!gTLDPWSrxNSv)c_6|j#?-NlD{=<8nOqTlxUg^ zc^?vKYJKMq@ow5~xM)mYzx_20_S*|O{CyZoVCFaM**BkY4?ju?N`vo>;N5%b+((kT z0x$FT1TQ!T`20?;u1!~BLr_Uu zD5^{bFB?-DCtcou$ChF4DS)*Oi{c5)Ez%44fUkikP*}z8pDrp*Y_CiB*RHXi!=c0Y zin9OMe{MqmKd$+&PiT-o|K^>GWLcRJ0EWbsRtLCl0Nokb+Cr)T_BQZaWKfGV3~4zr zDJh)GE|x$E_RlqSG%fkDM~dSYI3 zC5n!wPGY8Z^>#*Dw!Uh-ezHblX5r{TdQuUHntruXvR1a1Dij)mg8YxU#m8%B*L!$Z zpRtomjKVX#)9SMX>IQpM(I|d!(Wr0uqOv&PdxWsWyxAeG!_%>bajK1IqEYDhz$kch z(I^J8K|%}L5iDq8hQYD9UHa)dNvyF{@CLGCTrClQXKL_4LXZDI#T>vep1S(NI+=XI zroR144@mvL|NCz%X6hJTSr0q6FX}(sl7c|Vl;9$9gp@Ea#e^V*g;2!<{l6q@Y9$P2 z`lI$MNyiy(9F!%*Q)`S)9#xn8vTN4!XKEGJTF?0^^_;9^py9;X+f5qqMYg5@ z2p7A%k%7sVHvG6n*DbgsI1eq5BN`76?9o(n6aDUqc9_LMqvAEclA;~V@58RynxO`8 zn3`;Zt`W2z;A*=_lRa_v!&>B#Bvwuxdbd#bfFQ_YPO@;VsXN^gCQ}zNkKB$5p z-VtW4Rv5|TqMba-+e={o-Mkl^d#bh@!;x!^VhsB3BJ-8Fx!0ede@$QZRWb6bE;x}$ zSl@U;^&t8Uv$OdswKK%u8wY3eDX!Di@qLxhSc5UMwpf@kv-a4cui_+<2>TGCqtcXA z4YBa?OiH8TiAm3~&SMoXvDS%9H{V)G^d%%CocR=tzm<@e6%>KpU^=S`&j^izk7ZOB zh3;1^eMjcbaxotv&>dBw)Gt!_d4%YE6Mq}5@NGZq_>SZm%jG4>8$U;z1Y7yYbxizt z9kxCFY8~-8wnimbMNo#YDCr*^HY=&zL^EjHSJ&|Wt8nsM}a?30S zuUBHF;@YZ0;cPy?##YwP0;bLVjcqS}9?a5&9DNv}w$qrgw$m>D zF0TnE`DTx5=|~P61psl!jUB+ZWf#c-=im-tjmHpnX6y&qyUM5HhG5)>$CKiPAp57P zEa>&YQVxg;f(w;HsfM$D;0cCHS-&&h2JRGw;>K@4j_9LHI$HTFlw8Dd4+UfnYRIK` z`b^^`T6&^)$5p>`f06bcrI$-@FiptWHMvTqS)8C;n#L?)I%6ZDdbP8GRtk6et8l$c&*lTvvsLQ*k=UK3O=X1}Z-(VuXOtZB zd?$7(&s}JrYV8$fhIHX38G!%LtH{7Ja5D+O{{4!Eg}+4aqRLvrjx-}zUnF(k>47g!C&5*%;}|Kmoh^j)P1ik6$oXC zGR3Q5$C?pT@rY@LBu<3vgtJu^#GU=pmGKPn@>PL^WVtmbBd(!`-#B*pJ_0bRv_+B* zeC{DL7BD=H3gK4RO6$u~bnwADCU|Km852vGf?aa^c6hs#2JM9Q!ZrhWO6Sj=agRBe zJ@7J-&Ykj7Y48OW_%WDWdQ}z1y-`$)dq}6#TRLv=P6#k_d=~)dmwX7NH_r7U9$Mc) z_h%2@Uj;vB&JiKpy4-~&ai_hIjb%%|OOjuAjolLkJ!7rZg5FkqvQ4$NKIVnAgS@u` zu;JeEs={BQ#&qcK(gt)2uWF4Bm1}xI55124;GDQ$*kvHMw!oYypkNMZ5$pk5qy9pN z(ChxfYiY%h75)BD)d$dT2EO5-h)>~&5DD$EP!IN|u;8y<(~8dE^Tvh)LVWamP>BYp zfOv$cSbV7vaYgWxI-EQ3j5>D%;yC(Tw)k24&2=GWyX!qD+LCu{F%Bj9)SuS*v8~pl zeJaS4wzlyJ6xoP)2Hay%-G&kQ!hRY^_5BQWVsJsibp(e{K^X@yh@pdM!^jfx6q$$; z{b)h`8Vy5mK@N4dYqrk)#nlM98-%U9%-@l%yTk}xG~5^tbsFo) z3cWShh}!WsMJ(MRZHUBS3~}jg+AEY=2H-Is{e*TN%sc?#FVjl`-jX%rjM^ZV%@KNo z@7reoT4?}-QS~)|J`!vbu(sp~%Sn1=8sBFjjE*^CQaO61j=@r1J{@l6wTVk`JyS$pqP=wd#spT$}^kj z+@NNZqKG=Id2_VtVH|mqvu_-g6tpGtbakl?Me5_8*hTGisqjTw<#2cmM$0mWP0_6a zb8*Xw_oy)({aSJJrWzE{EmE(GY!mPr_^ZcO4IHNLrw049+2wZPr)msQ)m} z2*VDvftZBZ>L8nx0WP6Uut!=&f6MRj=AZXJ*;0Ek_h8EaV#0)A=VPvd&}8-!ioa?o&QFTjVQ7n5Raf2h#B!kBoDs1!zCB7)oeIKBLwv5WHGrXA?ZTcY0m&k zumWm);^(^X^g zWKTIumI!$XQH#EPSn3!yT)?{x^}7M8Y1^iZV(8<7G)97U-QXCs{C1S0{x*GzqNp$^k*zMtmWKi4mB;TIC93SBGP*x*dZ4!lvFHU;FhA;env1kEOIL`Ejkk}vB_EOI?G`Tbq^?F z3r}yCUL|IZmtKiZC%PVmuRAj=S#LCnSt4cm&Mck1AxKRFSv|{JgK?S4pV#Gxm;U@Q zZAyn^b3(8r5p*K3L^V|qX5g3_V!cP2)(O^zTAB z(x{!^Gj#5%tZ(Q_Wu5`_*-CMrF~Uq1i0)T*=f1GTlM?*o@L6o(fa z2l7-dMOGOg3nq)xlxg5_(3ENLFzPqL>Knidlf!Srn!_6O?VMp1to^sqY736(RiX{u zw7|agpWoJG)}4S?jFt`S7TgwowpX;4ZZ_!EK#SNQ1~IrvObdl0L-=7GV(SF9R?L<` zHtZp5NkA)f3w0)ZD8m|nYQUAiDahu9BaQ`cSnIfU55y0M+aGo8^Kak{{KIdetC=CsJgd29N9>;PSWU%D^?e3jCED8= z7wimA12g6%{^tbRtDy&Y8v_a_+wuvG@PzP&#*YT@^L1XZ@KgqmBLkYNK6UXzuKF$U z5S@a(@o-)s3_1b)@%n9WuUPc^EU#)>ZIE6ltx6!TNc72lJxL77{XOvTn8sVvOzTvy zdRpZ{{J~gwV}uh-Y|O6$7LN=G3|)cz+1ABnx-x{t`N zJg~yo!x+rYDF}&b2J0u!M41UXuM6;E`Paj=xE^FkLP&k$w_!?=<91*QkQK*KPag{) zV||{E5l4ML<9h6acYxFcJE3u}+gw6KaeWT)KGA_>U_`(jE^==^SV?jpKIl=y7k9!~ zvU4Dd6TvSZxg=N2h)x01K~#Ant8Fd?BBFlOLBHg5GPS2w1WAHk7%qhqY#00NQgK1Y zA*U$qF$Xn`by!KT)^bFu1tTtkqu)jl+=<2A!=wb`8hj(X%I4P)+zY|Oi}pGN;x^nt z+H#bVhY!PSTn)}qCHBUPyFOfwPvSNonRVqGo;mv7P?C(TPmu(iZHjyZoY&*vvDynW zyoD=NU*MJyMc(bUX+OAtqQ2WC4!!bEXM$K#ZywQDqYo7@0*X*Y8vEp%yqbaUBLW8l z4(dWxjGZ*CLaZ-w|HEhOAH`rexYEv zBWr0wjODSF?(E1-4IC$#PfYDhV6eE2t9OQprLsN&5Xd(bm-t1N;Be*Em!R9T-O6hD zA6e6&#$x%>Xu{EBwleBcj>2ywntGJzR|fB~_o_luwUtoWC$20wab;XJ5Gp9N5PU*674PHNUWslzF0e7NVyagm@%)NUM%n*DO%w{xdXV>%y1h5@vRGxHb zZMvy;op7_wPHy?RX0P+;cI4*#YC>4&uWpkrW^Ox}ytcb6p3tC<7#|4kt?L;U;&KNFU#55Db94yhX6qyIRdS@!9PG2?kv>tHYQRB6Lz zuitDRQ=ref?Hyf3q$N2+>FvY#tR8vy!|N~W#)|sB^@zS!4%P<~vSSb6?Ev|R z?p?og>^butGZYc-iH_7gNILh2(OW2WwRJ&^h^+}HN2Ci~!D`#!PqDffw0D_g=i{Do zZSIhmPU{0cj!RrM<+|^&DOJ`*f!gg7_>b)=+Nr3=fz&@XSjhIPmIk2=Eo_Zou&6tq(9ca*a|9_i)ubtl99@Tvpu`sy>?L1AqNo zxP&I<(DSUZ9UY-FbRn|o8nGnT*>CoQU=01`-o~ZH508D-oC%ZGr^dRyfUDNHvjDv3 zXh+as2%JQ(a@)Qcu(a@>)V`_3@=yn;*vHxN=|Fe&KKHxC_gsX~1%6_| zt&r^e39zY=+Oiv8XumFN)m{Yao|`{0<|(o=o*;{JsS}Zgm#h+>^fhpnTr1 z-Cm7JaUNeOI}(j-9oQ4Gzv;q0GQV^ZUQ)kwqF$PBY{}abjc(O$#}=^neUr7yZc;>Z zu>xDCGM|RNOlmqrb|cXK1NKNWsD-j#_B#{Ct;?5z;F8t)0%zT<9!vDnDYQAsp33Ng zZ~e%{3VT~&;b+O9Pr!0be@?Y_C#W0Ta^$u`Ni*-1&-b-?V$aUSRW1JZ+u&v@`z@C0 zZhzjq&x)W|j`urCH&9>8Tk&%<;`QMV!PY?^$xl|WOSJddJ^Qp9!P!3D&^&2nrJ}aS zvK9~ZCr!9V{RBb7Efem?;!H_X?PuvbuDkA7YG-lkW}zq0t{_irVL zd_%Pc7Jq;Vub5zuWP`PUwzDVwwSfEFUWGn}>)ym|+qw4+u}g^$b&hpKFu#NTjiL7i z)7+b0!v6QEzi0JLw-IBXp3;|x{w}%e3@`WJ?0b#Rw3^l5Jh|HSf$uOjiFJe_^0CW% zb>sNUdlo8lKg*0%6wfkN*>IK{zc3DGttCI@Nq=G+Eha5r87#t|nXKNG-g~Xy?JU#P zpU9rE>t*>4c(QW1?Qzz%L-*oxJl^y^mrom5jH=ALu}1lp&6_g&TFo-fzt0Sq(tN&B za!mg14ClCN*rI6CobgRtG%b0&f?n-X?9DTx-n@ErvKAmN!se(#l+dU7$e^}f&SyZs z$Ti;*&O+m9DHQe6A>+w3zh&lentz7Nl0TLynJzmPkj$Dsmfqpep7X-Vs-4dY*@V7> zK7K3}M0iL0_{&xY?+1bKl_!h@KFj}k%&hF6U=*ziEXE>3e9IGxhBWfVrtD%)2p1Gi zH#hWiHE1C8Yx;zGg!g+e-~e@MJ((4lYBtye_Zyf%m?p&%+g9YNvxmAn@_)!Id;eC@ z-2<_C@xO9y8ozElCOoPXm44|bbzkra^^?I67sHi=2PB8Zz4#Q9)51PKdux$uX=@m3Dxdv&yOebZdZ;+~@0U)Z>B@xN z5lN*z-x-ka)akQPBp~VEuu!9SLcY+1>VJ8Bug-u|doC2Wp6}-_#+!M^dUow^RN}R6 z`ma{d`lG>bGoy7^Zr^L&LO&V*Ful3C)B*>6dn4jr-se{$EP8w2J?%F2w{AUUSMlwb ztrZr!e?tN>HqV0`@VmK%MlJ~LkOtdC-JS48()~G40GC5q-Z*X!c5sI4F`N{D%lYnh zcwqIVJO%FF-%_j*_lHuX5r~IF%;;C8+5Wb?TI`{VTQv16=@Ibq$FOUZU(f^T)JxEV z?l|{ZW9|_5hEwUqRaip9 zCH+w5oL~AO*I>WQ`qPE)xwDy*YFEP5mGo&ty%U~ZI*q#~eyR7l>*{~PjNn&)Kt^lo zA!?0gbwKGO16$@$pn#}&E&UqNq2?^9?i}Xfoz*+}Vb_H0#o-S66f9~*I|OFl(V_5w zWk2d>JouhdjqurRAUj6?6B?pchPrthGOmayx3P#QyRigf9Ep?2pvo8@ zo}Mt)oK(DvHyN~MoCICeyHo_XusRG2?SF)V)CkP#p zjUUw9!%QT58lfN4o_B|LEY=5t?o+cx#38dLwaXviG31eh3#*LU}-ELMX%< z%IC&E=1UKb6w>&oJr+s>3G++ux+W~HxF5e)nbYVN9vJ?61L?4PJ%9cNu<8)IqKQme_Kbdrx z#^@`2eRv%n|=^IUZ!2V&M^B{=v#Ou`yw-DpuU4G2S-f!1Jab|_7FbFo9Ifn~c~>3wMG8Ng;=3(jCI zIMpbf<4jA&5KdecGGky)8B!&9?nVkhFVUG{)?jU*l_kAJxeByYs>!m3`paypf5plD z;nxl_SnF>N9mE)HmgsL%S-}HeWVDRw-LJnpD&6QE(ogB7_2qxN-&TLFZP0%l_Aluz zUM5f9tzge!rO3ZWkb|zcCy)!9%N&u5SjvQ5{NAJ&N)w?~JK&7)lXEEEMB02h@Px~1 zI*jIb**%gR6`vOSrF88wHXvtrjc+`8_xB<4BJOevY-wY)yh;xG8Y#2(R}I==njhv- z=w!Z9)$&%Zgf?M@GDR&##xi9s#w;fJ43MQ!OQjKv1q>+}j71k<88wity1^$ z2lK951{0<>Yy01NatvsVE<8>FRaE@Lmv>0J^df1 z0YCEj5lUrzydYR3mU`ezCB41q<>Kahh)VG+1*J-dc4jr*D>3bDG=qXt5 zQAU<4R%h})Z=tP(p)6#_Z+OSlJS@XFNn(fOr)>zg4ySEUPAoiZGq9&)q0i)JV?oat zXVk`r7^l=B&-7akM2AiZWdQ#cn!nm;b=z4ruR-FCT`eL&nX8;KejeCfn9iF(>&UYEV!;bb5U+<-KemULsL z$312Yp-6Js0;Wb)cZ$^M2tTT5*eXA=c2nT<^Vzjed-7$JVDNu*9SC?X4=4xZx@4E2 z@n>;QlGT_+wf#sj@Tk1{jU>x(Kh%E{eI@N*f+T2($RB3t!FX2;n1ru60;?99HPMj% zQW4c8_}lAlL=*+8!B$kjsuWgKpsI2`D-GH0`Pq%{^K*}k?+f+%PJ{Fm5SpcZyZNen zbnF1tzCGRe2KQx~I2z#2-JOPrVpqO19ig7cgLs8k@_{bj?sEfNy63Xs&Y+gP5~}el z9`UNP=Cg*Y3zo8EmtpR(`Z|8-n5B*3Nq38Pxn$L-H=Y}JXPRJp<^j%Z@0R=V!Zxw% zF7Ho#Ag#LQj^M2V74sy1kKT(9bZk}GL03cbyfB8^uuWmH3l^dK})I{K^_@{9Oz z*Aa?uF=!-}*ZNnF2KSJf${)TG_IXC$TL5W5eH6z$Gw;3nJ+a<>>vD@eKr~b|{ZOip z+CNpIgTSfgS?YWWJiDhW7sYB&O7FraermHTvaU?P|aEXiK1y& z_(@&OeJluN#duFOm>Kq=V%$Ca(kuqKX;<_KS1m5mi&dHa;*`-WcFeT@ z^YQNez}QFXoxM)2uop`W_1$H688haFV3~ILGqU>BHV+0e z-WVEC7Y##^BOZJh9{jo3y)odAl6QLm8nrK*64Y=WA|E-05T}y-1Rerk7}^wKS8xMX z5J55u0-VzF3DmvPGJKG)5{H33LvjpT8`1I-#-Fp_{ajz}r=o6`2PXb1|K*@PD=PB^09fQ5$lxnD)ebur&{l+YFcKA{)aPp7o| zdz*n8md!mY*=OAVmIk`5-;p}3O&C>%6v`@}z%)p)fM5qIFUfHUFeJqtN4}vB#OrYDT=D3a4V`^kljCrq&#C}j-9M(C`FdHf@tBf2uL2H zIbm~7Opao6hMF)zC=qEl!jU06pv7Mx)gM*jpy4#9MxKzjE%#5hwv`GxG?EJ1L<=R1 z{9c7d^ZXVc%3v(2wfTn);j2_i=za0}L0EUe`e@w<{Vf4fpmOYvJvB0*+QfSdSyH6J zV31jfmbrRdjDrBW1a9y(Uv=>>D0Q5770m|ik^xr`jpA@!UgFAM6Kao%MTc-tq!AJW( zH168CyG!HNK;!OC;qLC*xVyVH?$BuA?(Xh#*>mrWGjn3*?1`8YGZC3pKk8RTt+n!5 z-EJ<7j6%{0Oe}}DsJReCE9&|z(%NE|K=*FXMMk&IbM-ZJS>5_0Yw zyDSiQLR?p9-T!9*t`YXWIH&NsXhEK$(Xu&2nLYM86nnOKK^~>P z6P5B~9Z=x3>v^&NH%VgC_MX$g}Dk|kVpcBn_XIQun@ z?H%b{1Dglp33rs`j!KlNDF0OKfr#9$xLsoUr1+)C1PbQ|VmKasXnGmmH>u7M@f_xR z7C|VbnmT6wIlR79tT{ScI+T-%EoORCj_7m$^#0iM;PlA4K*d`Gqj1^IA4Vm4m@`Y< z%rAD*g&RZaJaeSDV}6?BLkz<721bjintz8JQay-_f)$DM&ydQH5sfHhs|xFAO6S=g zQs*Sz)alFE|JVz8OYcG{Sv}j^DV>^oA&cwRMAd{MvUQXq9TW??sB4!}t3BqSE4$bP{_CG-` zy*clu)k0qFa_YnH4c+Q%8DV$JH523d_AD>dUt2D5=)b{Q<1M?fm!E~ z+t&t%$NOrLN_`0}p%^e)2vWke=j7Bu%Pztz5L$Fnd9{N$g)mDGA}g?3d{XUc^ummT z{VqMk7JmcDv;67f3ssho9F=&MW8$1}n#tw=K&>)oB_XcbOSTxuU>1DF3>1 z7e(0^wa;dc+6-;I183$biH_S0hpstpnLZMFj>?(WOJtOf(TtnkD$z`p>IR}!#q<+& zmGwPHyr#b}`3{m2$C}YOk*}dMUrKKYM-D13%P6rom3~&P8mr}#Km1E&NsRweSrYBP zRF=foFO_8vb;+A4P0U4)BMqTlP%sV56GSdMls_(~1LPG~R@dNxIK2bZ6NWPl@s&sR zpua0y4zsTdG;z>)b3|c-;?*?0(vLrivSNgAQelDV71MrqGi7N{W~pFFYv^qCYT-+p z>A2rJV|F{0c;I)#gYm@QfVzI@B(&q~@$uUb@AaA9wP8C8eQJTtI1mRPSDf|nVgx_F^qzkTR1n024rS7SfWJygRzWZYFl zed#b2!Th1VC2|KR8|cfo2$%dnrhLimFBkEf4?R1&5r&~^9^C=f1Fx?D>z$31{yGhW zSI6*;NI=lcs{|kj_)4`0^XRDuJ&fsf6=GEJ39ZLPdQE~K^SwWm9$;O7+`hFmDKOB7 z8jTDKI71OQ3ndE?zz;T}^5#MsW_Z{pcRXA0=AyEF8lDM3P6G@8Ls_^UW(c*aafEKmgle|TAijXPm*;!`YO zm%RAlDn^;DDHi`Qs7w@)Swd~Y9i71=6?505e7H3-E%&V_UP{?@yLCjt;x;9S`g~#R zZBCi18lcQLYX3XqV7oQO0-4J;?DVs2kNq4{BAKZZDJJ912^)Vodv?Vw#>ayZzb#cj zHiplK2R6p5|Bjjq?&%mFfKh);3s}P}w(GH%5cGzRAx&ra*7BLa1 zvNaUHsWYN zkHJj`&ItC(^5H8ij|*^FKI72$uyQye#PIkW6kZSCYpl29=(jA2eejwMEWZQ@&Q{rfsfGhTfNM=iR#+NSiHg$7&*eYw- zIftXyef^3WZ4&Qnme9fUI;T<1>^7${&|yH%m%2`2crKQaM7BPo*L?du&O6=2@0%&$V zsNkHVm(YOOZQ*?Kw8=N}ympl#n8|qGZ9{xW`=CXx`hBbAX!;wa$A=ZQJ%vcBmMAUv z+M0Of-tj?SokL_sq$%z5OPjj=aCf|uBXpfZ#stCeUxNNM>PifQ3otF}g98TOUme>E zDAfxihLox#dq+rh_pmm@N|kACYE>FU$HzKS!wXc^a`WmC)pF)X1lrgy4V;$U`hr3= zTR+=ipZdVPat`;vS>0Xy_M=fL^qJUxxBGYPO`oF=y{azUt(N)zw*#Xs(wb)-0P{Fi z-yrY}wbiZW*$4n@Er7_7Wgvjgz<*$uFy{BH-O9)83(vqfjs?-$@#E8%>bhEST##Z> z_1%j=`zN8ETWhns?{%ORulF*78rvrYelBAt$N!EN}Kbk25bATpQF!z3FxeYD`4P%0=_xIuWr-i1?%k5 z%rg$epAvQhu&Y^`;}F!^HbvmHk)MLC0Q`6ABP42&EsC1vPYN?3!7M!#0Ux=G*}t|v zw!-_XPZqTpKJ1Y@x@}MbKO4k0n|EVt___xNT7@^^Mmo_qBephdo>aje313uUUFp0l zLU`pLtDr7ApB~UI+%zH9U>irmwLT&XwJ^3eBq9X>mnA=ZTajxA*#SgsbRj+7Vf5lX zS*3bW0k2G2Yv7NlbVG@+r3UtbU-0RMf3f>#5FJ2uimALUARL*pB~Yf-0ryBvchHw5 z64{da+Sq#0ExmE!XkC}Ewiq-x4A^9%6A0yv{HzXqrSyKJbmi!>x@|l2Bwlm>*j()M zmigqzz3_T}>;zz4Z6f#Ugk6prj`${W_%3qT!EeHEbp>7)0kGVCyP;i~y?w!4!w(}v@ew?TRyFptXpGi3JfpK(t`SbNoo>Ib7bC3?Eh zkMPZvzdT17CB9UgWLF>!>{y-pzWFnVs(Zf!X%*a`eT>Qz3vPl6sD1}ZRetm5V(dFX z3eCyhaw_`GzH+SOuQB{`W3II){q!mN^C`(=9jfm^`3#RRpeEuIC(K_6!L}!kGbCo)3?}4cY04S9dO+d4ySJ)uN)B5gz$wwk)?XzQ z7WplTj_r*IHW9UF>bw38)6pTvxx3sex29(o$VN3|Znxo3*eCoyh7A0#{uMU$3x%pL z-KF`<|Ct2w->$%%UtlQ3RsJ{hur$uX;8uJ!QBi+&M&kUtLd-vtU#7Ga(0^h;>T62M z;NU~Z%8+rG!I41BvLyMb7?Cc}pj^#JTOyzCNZ-CVC8E^=fi>H%7yU*qv_7)2hjFF44@}K(RSOh_B$tT zuVde3waA2`nS6!MrD)a8Q^!Z^n;dMrLJ-s;ayaH@hsFi1WPa#3+;a8pImm@dj94x! z?Rp6$73e*U5-eaOw&c9p{Mfa)o{`*3W4SpbL%>QEc54+1XAc458b8#4iZLcI1se9PxKrAHkzh-Xo*5By(ti-ejTY62 z6kCIb463n+J98|hr(M3*!H=ou#Jv_1>XJ6x{wfc;lG8t$#Sp@a50nFZfc@&2W$6TL zRksf;2Yo9NuIsNDrq?O>W=1bERy?SnLV#XWE0Pbgzo10#CXXT1nKnl6jA7wG9d9G_ zzrFq~#672czOMbCFDLr<|9JyjD+4R%|8xJ6k;nht?ky92WAjRdEu~sJSu=eQ!(~cD z%4AAcs7XvrsE}eNs4h$aab9A*<{!!ab!m|Qo2n>XE{@~=6^_@J6aV`mSvVM&8Q2>9 zkHn;?Z*E|!Z{c9JWo=-fZw_ZPZLw{nZ*6LzZ&_!WY+eWcufl2kQiqj(4|k2hf`I6L zO-3R8_rsAfwl<&_VWm1Sl9d2tk6oN}?L>&}B+cP;IGx zfJ)#%q;);H9}Aenc0>dn4Jv4bHoK7VZyiV(gNu}X_+_$aatO47Ce0Mh5*Iw)s`J*y zS(`Hzt)?m&f^#l@RBjny)>`a~f@y z&i-gEcWlQ=P5t13fB3=wMqC_Ze{5v?oaa_k@PfHIQ-6N?2rbv(P2XR>=4e#RQaAjX z|7K#vxlj#>kn3k4QgjEV#6lduJow#}Ns|YKCfW|Fue+iL4Q>k)4m4M^;{lwRU?>bS zu9gD(7=25`n~ZGwvIGRjl7xB4(D*EPps+72G9;*CXru!H&5>7pcRx;j09!+oxQ^1m z*oe69x1q5fLU@+`-uHm$7;q4L{Qi+;kZ@WgvPEL@3%)3%p`Noqc4AL3eYU&+<9xh= zlyZ`5F~dEJ&^<+5@kB#O%0(ROgBV+#(zKx(jeo;=ZrAa zk)-rN3UZ+m`fr(d))19NG>8RNLV@w$C1X?!oY)8w3T(Iz_MJh3n*E|uT0|UVgMf9E zlDZlJKw6_Xdl<_r^|u;p zMHlJl{Sqipt~R2=>=?g2CkAn|17QbKbnzM!oVvRv1`vcmq30C=6i*I9nn_a-fD7md zPdnj2=6WpfR7w5u#baX?df*V#$cX_b!I2*O-Ikr)jtRT74n5)aYiAxr0%s(X$0@hu z#!3Wm^*OGi6RW`0P5ttwc4Ob*Jv-Fd{~vZwhr?wB-qvrX54Kr zr8XcQbjtx0MVBsMk95-y8J+mK7PTN2j^sJaZiom^|C+)Fh|Cc%nDQj5iyLH+ax2uo zFA`NfAmZ>N5cuocnoAR&Uj>4`Ky}a2E{&u>c+XKHhvY|61hB*)&g&0U!4xrhjs^2e z2Smb@1oKNiY62sc!QDO+xvy?Gu!&2u`kJ-tZ{S{qPt=DJ_~@b|^NRM8X43zHz&it3JC$|3bTrt>O$rkZQBQ(hM&gTaNx;ElxLu=ncJwR+z0_TYS=)Vx)fNWX{Ul0Us zX9*Cu(L!&1Frav*bWiE9%Xe}@`w@Biz3B>QJJjG}te^IdU7CR$d()FY^4j0Tek1-E z*5&&2$MEx9*Iy5W=;50-xXb;P&|R$mqzKUyh*^7OKtqnKW^^YBJ4*JEBlu19W)^1h zbCrYG9Up#sHyDI3X8YH81(+D0xX@FpQed|JUsZLEq_8EX$eEn8Qf48?D2?sko-Ioi z=gte#qTs883`}aU_Zkd?PC35QzLXVhJ3X`GIaa9XJYMhYhI#IheeT^>P`R^2l=;i1#pN6P(S`W_9{x?9 zr~0>n(uygqgLTX0@3rPE<8_(`qj=+tQN=f-8J}sa8_uO1D8A&Q$n||jE*c)OvCogx zSs8lk42`rl)Or}+l=Xy6vCj#`V(~v8#AT*r^X&$hr{WEy9BSCu0U7w?bsW|1+A>%~ z(gKZc`PXwx#&~K(KZPnP*tsyGe?dawQBKsD=$R9 zvq-;wgnD65kp5j_`}ilLqa=rh;iW-=EbJtgS&i<#9y7b4^`2tw{N`ovg@}hM>brYR z%W|VQQ>Q^u!%QB3^UhPIkS4JQ)bClqE!b3KV}F|IB5nbAU2{|OUfF~)MQ|dt`Gg-= zgy)8EY_BB{+{(Yve&DD(mdX={2ga zb+)__!+!sT@>cbwAx0ow!ftq4i@sRhD2ox8LpsTffSpnoKQuI=IGQHg612Mai*Qli zRLS2UyRLbiO<(UgWi|Ay?SatKD9D1>J5}^@Zq;>KqW_L6exxyF%!%AVrcGXMv|(nM zd)qXadARkjHhJL~*KZ2~{yQ+lh?0HAXr2P(Y8F}rEa(=6p@G-r)0#(+aLLt7$_HGJh!SNMkrMLZif_jYyB4Dek;F%8ZU1CmY5R41dj1J4^zL zHb_&7rjg1sBy-g)j{~)DL5Qx|MG=eA@60%TyyK%ArTQ{q&6M6=`A;HX+q#6i$MW&b zh6eAXS@^$gS9DYR<|55Ox%-59K-QYNfYNmxM z=VC%aM9zz%6pFigksY;Qj0I`rSsnoov7Nsymk7xb)pI(>(g-{HlyZ~E7!z|`t~}pZ zXM{3o*Q?vn9VIY9F5X5FlbH_1Rfh!3Vwl73f0_P3=`XWc!m3z_(LvRajTbo?#pBIYm3#j)sSww`%xfVVIU zBA3NIm2D}JuPM=(g=`#RM2G7~Qq3;Ax1)CyBeI=kX|Nejl#ljm4s<`VqE+@sEF52**outGIU729hRQ+R6HZ-v5I5 ze;^{hH*QSW7wsl}`9DF#fBg>o?;zs;{V5Fl+gS;TrKiT_r|}~V(;3^piHQ2Gyv0Kn zLlB~(Wo4tHt%b%R2fT#nAO;MD=pY9ia1d(VK>uxg#_CwIComu&wqF?hAIE3-pF!Xm zi+><6^cCJi?MOb`h-s@(9Q%kWXxsK*((fvy^?xBX0*I~Tk_Lk}I9FvJAi#qlM0zwU zzMVHJuO1t&0#{Ud<$32<=AEsFCo_Fg9X$@l?;39>y`FsCCp|AZFK=Hx*H@J}Sa|G9 zKZSBcT8nC#cv-1<+ZDq+#s3)hy}-7KaFAoEBD==o;}USsmBrl~L+LBQ zSN-)>!8?J$D{q7qSvHMh^Ia1@E2ohY&oS$UWqwXGy(y|p>!PslhjA1T(vsDyxyt&Q ztsEoWw)680)ww$_M=qWJ4{3T?Eoj+;xh9|T%rMeXg?VJTkjADV%ydY4A@vM-;$aK= zpXgaq?^fkHrhGX=ap&E1SkdSzDlEgl>+)#xXqPW6T{|4!y}EC6 zOWb_2iuII>$~ZjT8&0c^9e+6@CjazI^jvaUtDP*awbf3h^8}KZ>?*a=h7!zznOrrx z2@KXRE43#ZBRNN;vaMi6_=Bs0dOPt=Hp_7sjEMvL zamCA&lZJ`_5AmF`L$PVZ)tDGJyVd>?90~b{~8%|H3iSQZB^s)JyV--2P#3~hR z$Q2>wGM`PS6$jGwx|KmEyeFzy-jFiMWvh70c*{VBIH+T^GqOnsacK!B=5#mHq=UtZ z`~yoHyv7er!NieN-J&yQa&t|BsqC9NCvyjDlEgnu;7a$aC)S28x6DRybs=zcT4z64 zXqe#6L}`cFD9U$SR`MsZE(+e#z^TBGeon|Al(H-?ok+4j;S}g%bN?#hWfGht|E(@v zcEWYeT;mD}93g3$#@0_rjgW6njWGYCwG*!T+d{L#iABy&w)!vjjUGNTw0dkuQq2@I z!R)ZI+Dr7xapkPNN95+b6a#dpIw z#B%XJ78a3>>pRaTO22l8#yVB3 z&(5PCdALT5Vv|TGnV7?v^;KbAIl`%r^XgjW$&)qlkR=h6DYeX?-JEfrcvZT5{;T1; zZu{-CPyr+nw@K0K^f<=@OG(GC%z0pG_3RmG@4LP6vxPJp^^l8AUX>B^%8b4n&(d)d zvFjaA`awTfUn(EZk5Ex8rH+mwG^^uoxMhQV(1}*Rh{{gZ`^KT|%d2#vRN5k&n7HS_ zMmL5*+&32%9l4U&AqDuOGHQuT`p;}Fgb%Sk7s6t5@deOD&l;DrX0cOcM z{+tcTT)`(MZys1$L(bp^Pwn{X?=Lbe??qnCE1E*j$19{M;~VACSREI>*AT0Pmq&XV zjJKurI=B|zmn~$n7k7kXigg?^Eso3~%cC@vI!^12f)jJjz>N0eiH9~zqml9*gKDRS z`^ZfQ_ZPa(D1qV6Cgul-$n*1JNgj(4R!OiqLoJBKBNh*Sf1kNZcb7kDux8Mya601A z6<318h@Q448y26Q2|RoGmzr4)fR8QfE)`?icj^h9vY2L7Y}~Y;k!$!D2&%tNMXR7O zky-MMvYq}IF%M@+6|m<;slm^BR>#BgDA2LXye{`&tjzlnrdO=wQaQy5WFHkeC|Ia) zUVZ#TK>P0JNe$r_>xv;fz)sAjvc|5mfJJy2b5+ar)_7_lnXX) zLJrL-hv;d*D$KDA*>fj~%DxQPa{?1DDIs_Nap??&1RN!ND2f z&Ik)O!xLUxw*Suchyijqpj|Jt+-8mME)UwX%p7;4L`=@OukR#)kZ{}1tU0D)^szz= zLIa6XO#q6Dm9Kvm>;%F9BXkf?tDtWX6R=y7lEwBk7ekfSAQ1UdU6H_IenFZs}; zhk4lE0ub&kEInOXhMB&+Fc518E)E&}Zvp*p`N$HRWf0-6f3_|d-$7b`Lk4v3{k<~b zTzmMoc(aOa{ZbBIP*bemvj}tc{s*qWZb$!~(*|U16@;|wo57t83HfHs?#LxB=#vMu z6{7?#)m9E&c?9yCV>C-){y_OVEB2{KPNzaOANq zMt7Yk372iIABte3$isl%O-=vLL>QPHG4Lz$Oc~e|OOz)F&`T=be=T$TgAi-s_e=gc zA^r9RD+js0y#1WP&Mh_!;VtswmVJ zl-rNsfxgDUgvgM#sQ(IY0OWDj0pfZG*Fh9QleSN>cBhgu4d+%2_yKxVolK|HI_`A5H zMBBt%9Yg_7Ia9|hkvGrq*Ru?krIHmw zx=m9^jX?8{v)?B@bmwZ0?7BbpG(iB)I?zGoQTncnASlo-bal%GA$cw4_fAaO+of?T z?AAcLvgCSIiq9k5^rJ4$ z%0*S~&qwIpfmbP|wVM0^JwxULEQ-OJjY6M^q|wd-wj-S$buLT~8LzySIfTxLdlmxE zG3TQuvO87c2ZrWXTPgG*N}_ZN>%TO@1rrM31vX464K^b^s7wHeeA`CIW4d4j{5g@NFb7F^MD_tTLV6#zv4Kd;KDdln4XlrA;I!xe+hwW_N=z) zad*SIiLiVvlPpuDf)@Z(0A|G*Rsh>{7^`CI0M7HJn#Cy?;;5QQ&hdx&5pMWa1StSD zf2{bp8dy1Oz7;Xwp|dNyB`wlGs{y@;(X22JWRG^|A&b7H7@jcZ4vZfi*=e<&)8Y17 zETB8A6U^BM6F2yCKqEfEp0g{BU6j6Dlu8TSb6~33TB13yjL{g?9&^jIarV;V7p#cC zZ}OT-99Ka7vtYFag}5HJwSc-#IkCf0uuPEa*)9s)Bea-VE12Gi5uf1qe;++Ml?V3n zli{r$XL2Umq|MaxPG#{c@>mmDR1>19>~LxnHm4RXDM_8Q za8PH9D=CynU5~>kOX%P?FjD@zI6AwPP zDXpqWU59EbO+8CruQ@3B;?oY^nkr41N!Im?TS^3DFc!vp_+PG+NuEc<87^unF&0bL z@g~h(v?+BY$(|H>P=BZho$P~9>+1e6dWZ^5;vZBxyC-XMZN{h>i1RQ>L-1lp*H=J| z@^ls`^QNSJ_!Z|tFCDSS5%#{W|6tlS&z9v60ijYB79678$5!Ymi7ynO|Go2MtTgP-@*xmgoVA7Q;e-^$)f>zQ z6w;+i)ZZ8#Rr10VJ81x;mLHt$Q?3A!zfQTm#itg?kvoYLR`RNgniI?~dYXxxOJOZ~ zijed+N!d9)F6`1}92At1@@CbJuuGSGw@Sd+42gS5&bih>E4w@?d~y{iy9|}QewXf> zMHU@Bc6%Pd*+4gIr8H|z69lmOs#Eq)nFgF&L+)p>f@j8ncRTVS9AeJS-SX|5kw@|A zF$_Kl5dw1~jS5>+rB8Nnal9-TdV=Y~x>V$tQ$j&An?!d^ zNRDrIx4bE^bG=a^bhcl#rQ(2U(BRq?{#zB)7|!fi#oATzqvyLlGqzOox)c(6WB#>P zO>B36Ah%9vMmh*#-PTD4?~4jQSjA@$(R=QtVY*S}PKFSued-fl!Z!~mEDCL_6R8Cm zAuhFq#ajA6Z6R5TnH}_}=|NwrH0b33d_LS~^mf&dCG#Rts?}w0{ML01$ZA|Xo)-Pxrp*=Jx(6PQZ zoEZPKZTvXmxLk2i^!UsS_UjQ#)A73H*6SG5BzBEvOQWB^t^evcZLT9vrIfrJU!0VG zEX&%+Fw~S*tZAti{t_D;mI(PFAwER=y_-*=V5Gca#!|Wh!@|V#FD>m~+IdYmpH|l2 zN#8&8^omO7R4iza-=@ZA%rUl6aV$nNnvHG1V2$GnvR^>t)_`;PY%s0sh zhA+QH?mfesib?Gpi5HS%*H9$KzmsrMqOv}daM~N5ho`Rkpya+X)y3fNWzmK?TgJN% zqMW+)UR_k7Y=94Vkj6bGp|YA0U+PF!x-#B$=^IMm#}O@yRSKfG`x4eICdPF$cpw7y zB)r22_`|%IvX|nZZ}JERLX6^()lfY}gWo1h1~%wK_a(6_ahB!JmPq%8XTk}Pg?&20 zwB-vyqKrk4!c*e9O(f2$`1Yv4!?O6I-Z02GP6Fi%YD5;yLF?)u5O6BMvFC;E+=!`% zT>UQH=shxZK><7>-|-U^BobaN=zH7{Av({a-p3#p3EHA(_r zMWA*OU=az8V2f!I7m`f=UX(RhO{&Ty%S!p!G|=?qC+NwzGVz-^STM|+tTa|Nv2x=! zV6umBP+}WJ3%iI11NDdsT!ELecMmhr$mC<;{Hx=2I-nERJWb}x)DzGZn3|2xR6f?@(J>dMbFjImS;}Bxy5Db$ImhE&DztPlzfNf3RKbJO zOg?3QcRw(0Q?F*hKQ-fB zT43a$w3fkpdymV=%Cb^(SMzq2eQ1to zpjX%*iFzfPDb>wQm|-}_AXE9h;3JG!l~&8Q+3KGQo%Dz|Mc*qQUrWakzLsTHrW_RDj`1`Sa8Ib{%{H$q=DXDTkTg?6 zxOFIZn2hQA`Lg=Cd!jBCI5g;bD$OYG9;^{96U|+$3Ev?3DhG4hiny!T>_y8*|0UCU zVTsOuU9XBQ+|(B9!uM$o<;HVshRgQo%}l9%ka66&$^mnWxGE&{i41)PVXi~V7Vp!B z;nSj;sPZ=(%jFcNZ`YA?;86yfE`=OS1K;A=4i`Yr13@Q5;i$vWrnC&pa_&1f-Pd>0)Nlq7%1!@5D%BYgnk?h*Y$e+|qX8xCL~ zg8%dOb9z5BcZ^#&MFB!b0M+SPWqQ9OckJ0q+nEGq%Yj2oXQc2c60PUATWx1**jv8P z0)^gQibJ?}vfmr4f4$)T*2~xqE2A}N_t?%YqZRN&8evaciuj?8_GaqW03GU6L=i#{ zslTxtnW>zF&wSd_Jn5bu1nTPy;d2Tj+ACbVZxQ9gJ=C7wBKoT%!;PIP+G{b=v)%&Q zs|)0f-C&dz^GMAvwAWMBy-j+G2OVnZMLj>Y8j0x>Jow)0kk(N|;hc;B0nW&gS5-KO zjlcclt4JV={RTiA;hI%Xz&e5dJ|4t}s|#woBR0V$%Scyy+R|fJ>Vr2!PZD11hB8_^ zR_vQDecNX(_?9gV#Jgeu$>TbRZ5hdn09i*j5vFV#INuUtwepUDay$lGC&ZQkcdJ58 zuir6(WF|w&5_I0yolx{!uYkvg0j`@sWzRmVJjkp`9Lp~JOjO8{EXhqbH7wCG==fgX zV*&AAEC<@_PyaWGxg}3)_>P)8*T&IXkr=*R#-w`v-aF!-NF1r7%h9iG9 z{QS>y_5YvA{wH#^m9=^Pe=S!hkkh&>eVsvg{vXaDY}h!N|1-Jz*FP$?FuRFh4N%3y zNyGfM{rxnFt!apn30vdPioQzDi)C1v3hMeHW8w~xO@L<;iv zgugbbB}MHe8y}9&SpKEGiTG<0v6GolKa;@X{6p8amW-M%>0Pi(TQylNTg~N&lZl>D z0TVx8h1_;2p&68G%YQdy=Xp$hsF#HyGV%Oi&g)sR!xJg&0~JhwFSm*hY^x&emw!+V zNh={rRV-O+FT6XOu>%Lfte~18N z81k#SAWpf(?yn(Q+{sqNVQpiD)6SbfiVGm{SWwQ@WdRb9`9pvJIfm~`cSsPfV7*x+ zVJ?{Hbl*|gr^uE%h=A2X0qqoFE_TGN!&ty<>j2MP)N>PUZw%mWHUv@4k4C|WEl^G| z=w?(tZ2u#D?p`XDuxxFit5L%}K@5nB&>2{P{h*^V;{b&kp}RYQ9S2jgo@rHeXH(w% z%LrH>PCTFiQ9x)csRt&y*CaZ3<|?Gc;R6~UTC{4^97yI^VC_#mQoMC2-Gcd%^EX4k zTaxhrlIxDl*6bP(?5Y4i_?R$V7&13&(0n6mh*)TL)X-}YzahA|XdO~82-th|o5D9((5810nPWDnn)~k0RdZz#i;cF6kq;?AXflKnzl)h!RgYtd= z)9X7acDGst;j0yR^!3DiTQ?NzHsbC=mbiOm3HW?L%5OPD_iBf+cijlkaTSr=TX)y@ zO}XD=K);2iJV1U88}5wW@?^v-T1x?0gM})2wZ^_U%ymXyO4_8TJ?kY5Aj1FgfXr;| zoho)k##rc<1bgL#DoON;{>B9d9G)MzAGQHO<`nLU4K^Q4`~mVfhw=b{ez!-w#P1C0 zmJK;mQYomgPrkK$38I_iciJ#Na+ro@nEg90?69I|yA2n32xRml>`93`yAOy?3~<@QfZ;I^F+EC@w?qVB&XVf~e&o@Vv+@1r*B&HVYLOZ~ z5ZyMWNRwiaVKr>AnhjO%iJ>XXrjjf~wm%$gE|A&UhDwd%i|x^3Ex(Dhc`EjNeuC9p z2kCJz9YVgRD9luZf|X4z+RZ%Op}a)Tm`t z-@%R>-Faln=_eL!uKp!u7WrfpdXA^&jB!eKk2<6yXJFVV+bxS%?F_uI)vB7>J@hO+ zm_VA~wgA7cJ9qJtH7iFkxU-0{^j<|NJTPShIQo}wEnlZ?y=0{Fxxoeq<&!3oTJXFXb^=px1y=j%23I^YCe3(xoFu2?&aLl z&s|nK)X{hjL*{GTZzb|8yFtNCx6E;28M|}fJ-8}kWoHFVR;83DgF0f4$aeMIqVi;u zAHVz;`y|nbCAGD@WsIeJ1w}Hdx;pIwO2#sG*9MjtO&dja4YIi~y#Rgv#okbD@m_YN zL5_h&q-bPk?J#x)YSshR>WVA%pL%C$opH%t$tr_}>Sm36jTr;G(mnVS+F%u%c+)(N z8Y(TxJ>;wXDvg8>0s?3rN8Z?z_4&-ABokRhZq2_>2R6HRXa4SET8UZ}_jxX5mf=M) z83tJ6-6#QREFiS)ag{%MkSf(6wL%X2Abd%bh_cGBXOr&iE;g+Wt9wKC)9;H>l&jV0 z*psniQ(0u4Niz=qN>^T66nJ}P+EXK#wLvX7 zZD3o789i+yn=BL!a@bmI+~wMIv1V&f4^mK$@|V_5sIHZ$JG?P2_{_sg>235B&MI-fqeKp{K$q-FdlwpP zt8A(CBz4zTcAM|{4SBNIvlz^@=~V0K%m2||RNUQem7ma{RiB~z9e6*TsXfAhkxA?g zi+Bocc?O*YV@BX{J}M$_U(@*uzS8VKkRIPHRi|u(YE}%@m%u!h;p^7@J@WW6yLsHGdr_ z^kg%(A|1?*{xLl7K{I#1Qs*lP>@3onYp-^l7uxFKYZ`g+v&RB`J7fZUI{$3b%(+TW zD7z~@nXD!BEpXJ+j+KaA&A;spgnU8tsElQ0EEk-sG#{BKoU<|b^_G#vU=%$0Msu0A zdANAUr^);Bs@ujKo>TquFPl#P-`Jjvj#qYV+>dlE&#SCzuQtkT(p6PC%l*~ns>ub|TabYE!3quI3l#qGi-M+v zLi)3de5f8aV(mYnkW$B1)If1l(jKfv&L9X}^KvqrY=CZdw%&Y5Vr}FFs=3f@?qXN! z4+-s-ID1V2f6T-?UCu0GwCsunmNX4yoF`(pJj1)0Rp-Y&5EvfAwGU(sl%V89KUFg5 z1%}7RV9o$#dD7z|`W}^9+pYjy$J!Rhm5pfeT;Y40a&PSrB5%B5zP#6*XrIk0hN5k8 zPlsr}{x52gHn(yh)<8Vc2ug z+dz7;BpF~S_T-@5S=EUFUV-ON9>HR0H$!_7oDQUVdQ!T2Mn1gc?=~fYSK(qL!a-fQ zGP==Hq_2~9*uI3(YFYS1jx3YXE@sQ2=69()j4Tp5x)l5=XL8Q#5yu zS#UGQs3{IO@?iB5mRaC!hmlW<2jz>b%Hx^QN?K|4N;U2Qm%F`wmDYvD0sDD?S$s>c zHvm9|>Pwu{+^yt70}5fsn!*?=V35pPc!NGKu4gbE&SU4KA40{bIG!)x*p;fntN!g; z_Q!k~<|}hE3-R?*Lp%RnFlEc68;{VWUerz-G{w9_%8pr+a$znUA;3g+coZF{~tA<%JufczTz(vDp2KOjZQ zO#Igmk={eB003sZCiO$|-a>LHBn6eghwLKbniU5R^r=oC*&kxmPnA*|Ev?2e;7JnC zB!#?(Fue+_4qEF>$T%sQg>NQez)%MjX~3E@9n!GRMEDgpL0EcZB2_Ek5RY)M3C>TH zBHn3`7=AOSe1s)-A7eNE(g;kdC4D@BJWjtvSo){%R#eHgvlsm5a*zx36r7!9&GnoM zW$j!6(M`;c2s&wdCE;*3g__ati)9xcC57|M&^%it{rBLx85Hyx=$gEb2H%QU?eud+-fz6 zPuZ(R%X5w+6x9cOTV)j$HN4AGJPBKC(>{biOH7r-peA1;^<_Mr2O}ln7bz8+iDx$w z0|(Z9`*DpL8v3^=T8sSw=@_{47){f~jG2(NU_rDR4{( zL#<1+Up~V$>Bt`$40Eez!J2Y+BF)DL()lhjVB^MUV+?j;WWOmTuryVHF{f8{u>8{) zPP{q({X6uo7`9X!MvQ7jSY#s_?{efD51`85vdd!&zjZhZE@F*%&{0GUKr`Znth^p% zd9f^eKQQxM;Tuf$dS>Z{Qh5_^+DccJWtVKR%Tnn=U0hk{Y^jSItMdDx%4t&CiiT)Y zHAJxs`23$krY5QwOMYBsa8~nQ`gUC_TEb0TfZ~TH#VTJGWoUe-nI0t;i#R4{rbNrY z)l?5-l6k@wru*v&l~-Xn<(#;(2Qd=mSW3n7BadRj4ACZ|&{PlYf|YRW;_M}vro`D) z51IhWlD}y$dl=>X%j0t;$v@AJ^@{~Mqvf9rphn*faFi9a%3M4^m3@<>n~3I_hgpBb zeaKSGXa7!pIrAvb3O74R6IFRd{#`aTs5t9bA$9DCm*(NZBgfwk?U1dYUwt?xb#`0D zwi67<+X|+`d=P;r|6G!7B06Ncr|MOC9YrhdN){>E7l$;e#6hWxy4O?Z~-&! z?hKOigckBLgPPyyMfxO7w(Kr7JZYaTdth++NcrZp;JJ&um9NyNc?-<_g#J|!&s?g$>-ElXbUnJ`-H z6I8Pz5!NfQRN8G=@S!=J|Dh^|_R*Zp@T?AXI=r+O%Q>Bvqlo=Es#)yg5Jr$jsSCvJMgTudQU6TQpnFar z=wsNQd6I!2jgpDB{=4sF_(xl=X-rFFM(tK|Pi@s=hepkQ?zT20H@q z>aC3b4{z@roJsWl3&wUPwkNhGw)Mt(W7~EnP9`=cwr$(C?POwazIAtR?Y;Zkd;i+4 zdQSJLMxE2$)#vf&!Pk@00}IpE1)b4d{I z9r2+Dqe0q>zGSKx`m0ty!jpL!J@?@Jce$Rt1&9=KPAk;Wg}LJ?7wGIm_D{Rl-G>Ke z`AKl*0h}0N6(j^7h2;m_m?9i@NL?>i;&5N+QP|v!bZqES*xn2!6XIeJTSLZL=%dI8 zVmS=wp4fRbtbPYG4yo-#CY~qwbej_6nk`#oQ3h!kr;SS6ssB#KuAm*I$jBt5erIb8 z#g;Y5K0Vcnofw7KwzNnWcF~sB*uXl=z-E*Gt?Ms{?QCJ2X86LH^}?TaP{)^)H5<%3 zjx`57wJ5H|u{3UKBF|a4Vcqq}JGOKTSX|ct(-t1pkv1Omg7$Uuu}xEwV<3M0mNrzf zmz7{gGvwYC``o~rtNlg}Likf;s=FVp#+6-Y*c&wQ!Mc6=oei$2cX`0&x-Q5zPU>q` zoaJ`zW{@b!p%AVlvRYzKP@}ke4GA`h9{%rwiFzUIPo+o~(uC0i3QH4SL1?mff4_bWKf-Vl$XLI%&b*L27nZt1-m^XE0Iv>M zQRo9P|Hkh&AFfv$C{Xu|QmKyQmv)~JtAyVzR?ob;+ER^vVk{4O?Iq9O5wR~BXXCvJT5&4-F)b{ULZ?(1-|9_y4fcTM7wyEdVzad$tM9I_GjxpH8IGSwA# zywQX0yCA`DMBI5cp(GD%selr0+43r;dsko`saIm|3Y+6IlhI`3n|L?!ZFqvaSD3iH zo6w5qu;|ts=&-pP33RC~X31UZQ9^uoX?=VcOxa#byB5H|1{-)G?4GRpU{9vG;mv>= z`)l!|oh{0V>P=!?4=-NR#cXMet!&uU4nBp3e~*>ID0X(0NAo;K}NL_&7ZqJHqH`{})u*QLfmm$&WQiLyKFroMlB3?q)OO z-QFaGeQlZR(6KIS*y2a8cDbEHG!4B^l8%hI(;H+(5`(-HMk+vRcq$R~JVT%f7xyk{ zB19)J7p&=4O!~Zen%C1_U-M@(;Wo5xNg%4wf2hCTfaS}Uu7#gCFd!4 z3H%!8*y4w~f~g(-zev`&9o+-I!nQ61o~?Sci4LVe4n{1mRVjy6$Pd}GhJ*Z1`t7z5E z3Z$v597w^>T@nb|wCkrD_XHsyNtbD{5j&Q{cD-y?qJhxzdUg%wyPfDWEu7FK=ac;i zo~rnNw(=nEHKMQ|82Sw^baUG)IcPfE_=e6mBRdK4_*h#U}%SLq4uq zPAuTp@bj(a7gl!DrFleoE@%l_%V?Tv6yB zd>V_^38*^$`=q1G?Is45s)faP{e7WlC|JATuS2m_?Cag@-fh~~>4NWcUfuut)@=Ck zA*cECYW4$3p9I{03OtYa1{9o76s$5A_+CFTu2tJC6_+&{zq>{1<}*t zf3j_I{udcH|EFU6|GVaXxU2i$;|^+>l569_!)xOZ!&?1Qk;8ubYaoOb`fD)6ndEZz z(+cp1EWbt}R3qZ8Vgp~OSO~rPp5;;grv&u2pru=b@8>lBZvS;Yy^Mjgfz|(*Pyb)# z7X5#M5upE#5#VSPYh?=kKTX>%4P_qnJ8XjM+a>c~SEiLw7Wscbi~kq%CP;eGR$0aw z?!NA11qVk!H%Wq#WfX%jQKE$qMTi=x$=6p*G#LmGl^Vk7p_sdGMa#38E0CGv06o}n zvNfJ!S&Z&v3J~# z3X>!2>M9n(Ygrl3`g`T3PbKjQF$;o^*NDW=&m!|g@BZx{kn%V~ii*qf=e{2UGo32B zJf3!$W50VRU&eJZ12a|{eN0YzrgFfAq?}x73c<#y0yg?1R!T?8+rB+?C%OOW* z&X*frKAwj!Z_xK}+aH?M*Fw7=XSvXFjyE44QXTZS`|xN)3)0@HS)!tQRGnxdZ3DcLiv zMPZ(vx?PPHa5|*^_8X)_2GcR>$igNLDqApD&{iMe4C^grYdDx@~=E3P3cm{^tyi{_R^ z91Do#&fN|t)H-fjgtGS?LaQG5sEZe<1Quj;l(23J;69X2-vz!9U447LUF0=<-qm3bQy!U^6xgew-|M>L}5QY@!{LIEX=R#GaAvDYTw=9aQYEWHFB{(4BupZy?2Bh{uM?$>iA0zH^dcCzZH7of!#$K(F4`A zOVl^9-w?L&QH`M2&TSEA|##00Y>OcAYiQcjN64!+tEL2TM|%Lj~iJ z5~z`%y6%!#!I91zO$xfBD%bMl4&kGC5!WSZ(1;=#o}#pdnZ%Cdr$Xlu(;xj_sUCtO zhC`(d{P}Mv0+rrnu&h7(I%-LSKAg2`g-$dhv5Krp*qJyxeL-L6YE$Z#Ev%~MEhmIE z8+5jO=t($}KH^yTK56*R{y9<09@%b`AI{*d!$6f4ES6|b!cS zhP;_yb|O-2LLKtqreRi+Be7`^?XhWGa(ndT#weSLXe@z!D9X}?{sRr^*ugDg;Ra$G z$-msl#YwJ`DFb)szOa#a2#VlMX;v9~WR)*FYtlz1K-xuJ87BCQkNYPAbwOB%4Z0;w zyA0p-rJV#;DFztYF9E4y45tM160Y>J(HANDzBw0AEHZqqWN9Wf>jr8it`a>T8;TQS z$b9-_*Nr_T^B+wAI+$qY^kt{rj0`sZ3=Xwo(#b*KPk%)=hCj968dsps-XojVu;Bjm zvTa)BJMf_?7y6iY>>&(!be0VnNvR^Ql724|TLy02%!Wsc12}EZ)7^}ce{q^ny4eB~ zX( zj;uMvnn{?Z=Mrcl)M!i6w#xcS+!s;Nt&6kE*dp-S2`E5Ajh&K!CzQhzrKh3cyAS!~W8p!9b$IOVab8(M3Rnp(tW9gX+-C`&K1d z7H9bo2_hYD#ECg2=IIyS|E$ z*qNxBY0FqOcPEV;&m)8PTJh@<7g#MnV17vNh?Q08dNT`|j2Amkwr&`@F}M}FCqo1H z#+_bQlkJr6L$2(2?%~g*`3(wV0csH?R)s3dV6>5KOHWyP)h!SIqJUREtp|@?H13)h z?u$R6y9Kfa)X}2F1%2mY)|iIV%S)84jAhi{vaGgI7#GLnC~i|;8kkzYx@zp#dP z|DdcTzg-pz@Ajd&ecB+$B>$YHx}CNR_cLLTnK;opwESkB2HHMQ6^Q+vuk43aCS%lA z6m4p?Rbb^D?n{h{Q=S=Bh1GvR&Vx>LbCw!;s`31nqZK(EgBF;>ebi&yuJ-#CS60va zhp0QU$F@dNCN@j@)&Q?V$NGa?(OveRa@&K^9ydBQP=;nbd;?Q!9)ud)d1e?un5uv* zWe?^Rj~hS@+}@#n()Ze}1_>;ziQGx)VL-12t%gr|eCe?aTc)j0J4D=}*MHbqR&|AZ zk7RR2%#$>@B=<(4(AVW~fZF5L;0%XrFHsYv*FX+0hdZa3g*XZ|4~RX!3_VdFOd-D# zjw-uIrb!+luHi8*apl0azJCL=R)I6FM_s`e=SX23nhJE!t}5jv`X~HdsA%+UWXf6eMI6el(Y+Lye-UO*K_cPpqhR_@Lu z+f5N+aZ{#aMx|j}CxuCoE%*wq;9-+oQ{>N;F43vWj5dxIAN9{Btd-KZZFF6pT4kAI zx3vP)0H0lK2Zg3^ra%>;iO@u8{(mDj6G{8NejD<|%H45H4;lw7n zWzSl&GmtISJOP?40VX6`Msp&X-rbu>Tl_@^PQ$N_a>@(H2PZCbWG~^as1rU>vL9Jw zTc&?PdU;TMggeGjec-kda6h0nkXbQ0h>FnPlMRakkj;xCpNR{ICM|Dr?I(kgy@My< zcZ66N1GekaQhG(0&N295l|6l=neoCDXph)$xIVx#o42GR$^)qt4ik2(fSE;;sGzxMyS9p6jBVKsqZewB zI$hhN5ry6>l|mdk+{*f)5Oe~^L-c%cix386_eI+?HQ>eS)5GkJ((^qG`xDGs<>g)p_dmNB*7!*2;+6-&sYUoPZdl%mI5H5<`mjSAFe(&6>!deBPV|U8p-zy&+eMAv20ZNerDhafGv@eUL z#y?LT&L-6X3!TMnM_bx?Q$A^R_PJdp@xN zNR%dJT&ejJBGBB(P9^U(l2@)j>mQXk>SC-9e#NIz+LK3u#=w`ntcYjtP>&2x|(e< zRE0qUQ1k^!kBQ@)Vqw5Ur&fZyr&2Nn+;2&!Q@1_qG z>;h}4=1fhsax5#9tNuMJLk3+ucTT30h6I;RuD_16>&amDhc2Qj*B`C*x?OdBE!S!c zKHdtRt_A2^bf%V6TT7iD4-SuQr(`DA>O9XMZM2)c?wp)nJ%?=85?{Mt?f}ilM~AlC z7G%cdmQq}!=}tAf#8 zdYVwT@ckRYpbe&v{Z0P>`|1XYp=JKc{`C2(x1DX-G;arYj{E zvi08<1hvMwyItOoiv9a&Knaf%?*c~^u-Ya1- z&C2MNj9k7yqmLa%!^cQ9COsF39mBZ@&2KQ91nl1t*^{Kdk=&co0Oqw@Q){rIdbyG4 z*CE~EBNoPRn|r@1yHfj%v`%K{ZK)<@#$^*YPf1?*gIHb4JU4UG`UyOv$aT!p}&iAk6vU-!TG}O?ZJIu8Ar+{9NOwD(A z7$~^M31m%naK^6FT?9=aI6wVPd1APL)`7YBb477e+}oV)^6MO586Ntt7y7wS54|BK z66W1K$0H%qwWRx9ZZy~x2xmIuRyYEOyC>1}?Fm1~1j_PT-q4%e&ghTx5A4UBpSRbX z%05JRG?@^c=#B|u+s)l>5!lyHpz;{UZyy2kE0K2YelT~ZH%ODQeK? z=!VS{hQjypIDwc&t3=_qWF**7|^QxqKLCfqKYva6at- zOi!j4(&BGR;Tj=xL^^Rdr%0rs=(ORZSnVFS70ABI^bpv-*c3|y+Q6?2eQ70D=BXy* zEEsDIDiG2C?_rlB|CkDnm=6AgP?E!7E|9^$&WsEZ3bcI$v<_x9x~4( ztDI+@9_5gN%^>Vic!L-7dPfj3xKm(}Ub*)?XYCy_Gs4~_ofRMjq;-x>%N=Z)8)ir7 zMTl(ek(6os5T^`&is9TC5{spshzxVTiBSgL<(i@KwreUt?fnwd+_|(%2fJ2r$Z3AA zvOx3W2l5>&dovdT>BpAt_zKNKGOy{ySP#94sM9Hq-=t@)@4N-*)Atu=xVSsE*1Omg zB93xR`Heue=`ZrcA`z&y`n*eJB9a62rZjprPOlAqc%&U*n<`aNh@Gd|DN4+W?{I|t zxn7I0=kMb|*@CrA!4+%Y)M`L}2fcyrC8{GQzQ|%chAzn@Dj9kaDmxBMhdmCxgH@*I z6Cm0UcF8`*KUVLp*Q&hZ{;YEJ1&_ibh`Gxkv2H%_CLHiC&fX5_VSso{cNCI44>UOa zO=+ofQ*tLra6tZq;J}#3l=%+=|H+ zhiwsKFb+e#3EKy&#tWOA5zIXKO?L!qsIy}NJ~`kK(1RnX0*kW8I1$wSTLbGT16MM{ zjk;m!h5@=MU>V*UcB^S-DI97Il+#}(z$}3p^!)>jk?4e&8LP=@E{NZ4l^M}_A<`Ds znS)_S@^7S0RDz)T@Sr=a^Ia7+4+Usmj~JTFUucv!#QPt2q(ID*-$VR{I@aJZvA%IC zXeU%vk)@V8qLedwnOI(FuvqhpPRwK?U=}wkdLj_5k^n>mfBEmt!9dVVXYh;uLCQZD z5m8386R`drU2uFPLNAydJS?9I*e|Sb$^a!p-H9L~y;ez5B>g9>Cx<476UujJme^fa zfxiJQ#bsobSI-~erXni=0*iyK)m z(|o747J<~M$Vox0TM{Pt^bffDTvP%6o?|el+{%6HJ5d2*G$>5}?IC!EAH&cd6;d9c zz#DLHM!|?@edJ>x60#CUO+5P}{!QHw7I^tUi>N4K1?DnEs3!yaL+iLlD}HApT>$$~ z;S!n#ZOWRoe%3yK2e#tL5|XfGG(%$w+*Y3~^JmQ{NxH$;|?o+z-6W_)*as& zjQ(nXND|X=v8E2`PT(pJ-m|vS{&iUulj-~lyh4PlbGlYwnVV$#F&(dNOowLhW znGgSuEKdu6+!UzNyE#Q=hG^zW86$$*6v^0>qYT)Tj-E??w?R3wlQ6%uZCh`?w1|Eu3@)T|bna&N-z){E5eH#Lt;$F49l<>M<4nrME zJqSItV-tW;4ZU>D(DmLGL+ZoA@?^#P|C4%O|^r^7FTp8%wxu3OeWmp zQ)tnf2;TB^9OQxB+;I2FZE3|G$+Oe2YYpFX3+dV+a5>? z{SXH7`KjRBoLShpG?=GZgpS1^?sAu~BhpkzH{!NGkB*cHAC_bxPA1h9E&17w_dUP@ z600ZW$VuIUy+yGaA#TU8lSMX2=3op4mcdB}hr0I=SUHr*>6K9ak6f}2rpnm8c1)ET zS0{S#2p3l;=ywHpH*j(X%FhkaHbAhE;9h72i3C}BYPi7FL8Lv`;9sxL%%cbo$mQQ= zRn;yXoMK0l4lQ*S{9E<91t*iZLUl)#>I&ve^`$gNlk$EClZ@_2APKe3HwjHkSpMQ? z$$X8IiT<;3_Fh8Wa#Zx71kbvg&vEt=Cipz7zeAqW{#t}t?#refA-A933b=^jVwQ1PP~avQ1ZaTJhQCmf;N>xP{>NU(c4(GjT}*`C+zg-m@FM>?n? zH#l&=w>5GvGJ4LVy+k+mL+3AM|81LTIVo zX&K+UjY9B4rk@f;{Vj7#9+n_vTB^xAxL|m8w3jwxDv|*n?OWqcNW`&SIj90ZD6?1S zPTgX1qA}%3;SGEq*%&O}9p5Eea^yb$YvbR9x<+Z9ffL-eS9!7uWy90JYwqkY*r9tX z&tQ(+(uwa))bhcs;T63UX z@;5Fae|#$nXn8m58VY#a3Cjwwp0{?~OVA?5<9$z#a;4{TZxt!X7tsjIjcY7NQAA`y zT$bWdXFUGK&&~`B?gvP_|Bb)pm6w7VfIa(}W-c|VQr#``p!{M^E#7IJ=i306Kh;~Z zY`CD!bXFPj{HLYo550@;#(?Z|>e$V`ij2S&WYwQG{;TSvVUfjG_k#YHTlXdR+2MNp zTOvkC+c7r&twLs^Yt?BgdDh(o)1H`Q-#LkBh1b#tsWuDWzzZs}+~`n_@2JaB#~sYj z+fhRI$MU-bks^o1(j`?l@jlhZuCXn3uTtQp5mz1a(fE?D;%pvM+8i za}H&R?^vYI8n9A9c_LV$z2tblcV?*c)&lBX8}6Or-;Nnv zd}A>DoTFqa3y0)q8xUFXY z`(){|QGs!i1D~3-+V}$m^{9i+@RL(#X=5}%IKD%kN~;c2k^)#KKXFdp9gm2kRi||S zi``_@l({P5uS`?e-7gFY*c4^qWuMM=YzqF`s;3<`=gs9ep>F%kDrA*Tel)_f zzH{=Ic%Ku(p!KVi=X0D)`&SN?46x|vf=?W zTj$Q+g(@A(%iviTlJ;~iwdln^ZAh7yrNWkx!;{+v+YC}+Io*@-Dp?EI#G~-Cb}is8 zprSCAqqAuWo$EN~H0Kkxu|WzLyO~k4?hiRb>WjX+aFTkyK|28HQAZ<|bMht4BBinD z&A+@qZRkCXz9B+v1{{Kr{x)<@>#8#pQac*OB^HfE4+7SDTWUq6dB&m-0c)e{^;fBh zuHtWSE$txcpzV3=DY{&{(UTSJ^;>-wo|5m;S!b*&;+7~{OLK~|XG;hA~gHJ+g|jUKI* zpU9;n9Y{BMz#NG_(bV7^LsEE`I_)NP3U&jJ3LNmHZZMfq z8<0MgzW>y;C1g81B1zKD^OT_uwoOa+h&*r^N1V$as>FtINZyjx&n}tLmYP{hAF6cS z2`_B^WjRqf74oL$$GVG2e^*(`|8$!nz3*q$l~}c;4d2KnVS6iWh2QL6*a+<2ch65W zv~4!mk!Ehz22NN8aoJXm&CJQ=HQOi7(f2&;G)LSmi7)Z<2T@)vxiU-N4YY}oskfmM z;=x1#&oW{|#k>~n zYtY&rTlXiDj%`TD-l`wEmFyRMdb=X2JMKJ6EB}Jh@K(zGZ9 z2D2F!i9~0|)r(oArN^dh9|e^^k<_sr-f5}%@@~FvA$Sltz-+b=|2|_Sb0=E_4sO5)OYS?J8xh{*1bNOWK z+*`w~G{Y}~Bio!eWFVs449`3T+h_}`vT(xT6h5p8_tiww%#Z3%Sb?>3-H%XSSUFWP zw#oPzgefTkoV*wWC5ey{GLeNilCzPSJT6%J)8gF1nG`%+Ezr%#%8IdgMceq`rJj1s z?1vF+K~p1S#94vh5*XooWRllVMZ!DpZf#*60C@v?t}e{1WUx7iFdG^PKsW3j_t(ia zNv?<#fYO#)S$WL7Wc<@h(oos&QRPU+$JtI+wMDYoYP zD9>VgtGi7#lP%Sx^B)Zw_}-l~sfr)>#4Q z4V|G54eE^R&HGUA*7_0W?~MKh9@>SLebwVEeB~=^wo0CiiWQ!9#OV}6O7Cye0^_>Y zs|n{KqZjrRqZiJrNt=ZaHxujU_^zcdw^$`(v39Lq-s`yPjyhRAVOnRhuh`~443}|r z!ujX2G%dYZ6CbgZ2MpaMb!SaIxv{7(OAh-avd{8KOJ5hk%Id|r>eH#NBA&Ol(p(33OT2V!ooP0YY0N=`c>cEkKyysa!Xs)31-DPw0pr zI_H3BG(oO_OZK&Fo#k6NU{<}-J9y%er1ns{NV*(wQ#xu34h>7VK`la&AsOJmb^TDQXir-GF-;T|i zoBYC(WS5cdhm0 zYkNGC;rx@N-&-){!Qb=%G^r1q<~Oto9J0ADVFUQKZ{WjU)|TuLeo1gnkPSii(0-n| z8bZZ-eqvwVR2bj*v>Re=KICK(z3NwevinISk636vy-8>ue=qxVXfMS5Uj9Tvwuf93 zF2c6V*P2pXr2DT}G!|YF9pvU*o948e z=+bOEt<)n<&a&?O|-AeVZJh5Nc(Erd$kX)YT&kox)3Wi;LCD{_$QNa>Ymi&DL z{p*9C3-ibPhl}>v{AY~21Vj1Gu-AzaLF66d-fSBE?VYb?yvE(l52d`Y*U?Eg{E6{c z{m@KZLASX4#**CBwHx+Q+%^XP=@@cJ`5ZFz|8y%?+FHmxyd}J)tVFdA zB4$wD!qnoi8&`h0lIZ^)N0yyX4se`L9dbNNCqqPU(wW(~oG5XwLRhJOJ`1HaF5!Kc ze_8bMbDHFjYuXSQ+H<}S%!S0x-(N&dEyHrM=e6s{pLfjk3X8+HfUQ~g4cRfC(|t_9 z)~fdgV60t`pW;yW&;gJ7n(~ic{J*QA{U*Sc2w}0Lhl1U(z!x%g@wK}wxB3>|3hau6 z&YyP2=dL~9jTGc_s#o_CbMEOU_m`L!3Qt*+klDQO5IO)>H)uwB0eP@CWzg>5m*>zIPojkoZtJdKkXYJDnGp zcer}AUkKpu$9u~0i20Xh-hVT8$~^YHN|wg~AqwW{^(K&hJRHib7*MA-I~XE7*CJ2q z%)(GIdhX?`(qF;hDD&+y%3=c{iV-OTRmkzN52< zaie}pDO`oYd<6rm-a&p*-;IagC_sT)MAC4LqqB%Znt23TsbG&paWwXcLN!;`#O{95 zWRAqL)98%MF!1j3({gR2|5|}VW~q-07cwO|*D%J6R6?bSp&HlV6rn@~YK6eDY@*xN z=RvY?kC2n}6R41riAVuwBYc{`w7+#>TzbVpnVYMSl#1sA;)Wm0xZG}HWn6gF)3m>O z)=@J7m-Ciot_FfrH;4A^~swhrSO$cuxj8E-exJV>K?Or_Ot^6;d zd2n$c$KN$*65K<@`T5(JCg0TL}##46XyvF~s>Mo@!8iwXiWu7vcUqQpLS zDK=$v8i0AD+>ZhQ|7NH=fePbCDhAo2rVvuuh_S4`th3Z0`OX1$?U9$!_GpT@qvZYocD_SAZnW~kYO0O-zK#p~RC9v^cS};yYRei)v=xCk zS@u@T?C~e9nfBl4i~_?rHd|&IOqqSPQjH_?4N8ph&Rf4j#RcYQo`DJt>X@Od4ImPy z&`!BVzZ^bD6~?jh+t92=z#+fOZ5!Tz=NiQ2aD!nze{@1bOiJdhfgmT2aY)&_I}q-W+MvO(xF!2haeAJOZF3<)_cd{S-H4Zf9>eSK zl&f^**!>rf=FyAiy;14=>(5I`8bB&g8R3Ku+_KS%kkPz4w@D6&(kA0L*l%$Q8d?OW zpPw2Yxi2cm%N4*rq?1-E$D|>FX-o% z79@FUvuFFn0Rs;R+EMy`(>Ifn(8L^=r!ah31Uypj^|_Y3`?O?Py>gSWFir0Wev!`L zQ;@D$$Mukco|)fAqRQBWW!|Hfqh{9lwMTt@L~~FZNk7PsR)4YQC>4soiuC7@TFkV3 zyS$mZ(5JW+@waysP}f#qZXbExd07y`awI|`9|%;fjDrXKBtGs4j$@*J9J^)pM1w6W z^KB~u#l$0hB{rg?#HbiCaGjP7cR`R;E zd0Wu#Mf$kQoqy?4sZ;^O2?}B8tU*I`81wHV@BypS zJTIHx9{ha`*?$`DU){l|# zw?8}!uMSk+Z;N-NOLJHkZ+X$b^cq;Bv9b{F#5i-_a)6Z=)r_7}CT$%jWJ%x$VtS?c zC*HFPG|(RVUujfHDkY3ik(%71_>3X;tz@ElvB|U&;kSYD#f}YJdWw%KbG0e}sLoV6 z@k6d!pmFX;s){Ktqp9Q}ga@-W4b@mAH-LNe#jr|6{t@@fDHA{L+t`cx@CyBTM^HMk z$5(ulJ?}nkz2)?ahI)Y3%+%r#|7L+V>8_U%q&v1YtQH$j6U^5lP=%p?>gN)zI$Oe6 z(n=y$+G2%M?C5VdL?e150+#b$JALb@q%pbkLPyp+`l!kqz^uwE_BxKo&5@B4&t9V= z)vIfNJv1RZz%iarS{t?vsc9%jmtXS8s{RjrCuW*1c(jT+1f6eHCOg)hSN zsUR#w%I%|Qq?gNVe_kS0QZ)c)JcG{j#Z~ogEa(d?LF&MBkvSSHVeSoPEMUvUjV%_< zZ=6X~_j}L@%UQ4!D^<}q0PLu|KoxczEzB0`5m`t9KCyCBVovxqYjdZ+lO_{J6K2zp zGbe^+m?GMJ5{zP|n(-?1$HL!sv@|+ZpmRkaBXpOJJ+B4^vYMDtyMS{ALuUQ8=uvrVa5qWdpFu zFIA@8@wxlOYtp5Ww-kwC+83#_VP9M*P>L&%cJ@AMF{V&k^q{-}@lgudlDre&NF zZM}NBmhWe3$JO@>-Fvv*P5!aQr`3!BcF_D7-kkHVjqMmuR(kAy1du+NX*cKO5ASU# zU5jPiN4QgZ%YDs|U6ttf%LF4=!micSpDC&@1|^4ntIpV;DW|p{j0q6$jKk|HbN*k4 z#u6Q0hpuP0-5bMzuW=EZJk3taenu8gt0hZ_AQq@;gA=49pl?5~XF+87;j zsddPE{*d@7TK*O`?-v|V z)y4>1o5sAUJF!zJX(*q!mI8>mw9yL^De(y!zDsa8?2xr_0H(k za-GmlhQW)h++g5to*8g-@+Is_b_k#9$f>K!b=`N*WexuH5(Zc2(~|w7RT)||vX<3j z`_o9lt@*&E?bKH3!FF8Pi3(wY8-L2ES3P&HqHyS5y#}2ZP*#q$rt$0KOsr|C(tF4d z&nU+&oUfMAy_8;1Pu*tyTInq?rQdtu)T#S=@eJckU`?g0)1RvnNb#8u3&`5PA+n)d zYz6X(kQlh{Z%rpy2I@boVV44jNu+KU@n9zKdTk;W&n6+xD|ea#$U4;%w#rKr%I-Sl zwx=b`WHwICS+-o*ek1d*p^ET*S9^K;^El-G2dT+H#AX8~>glJ&tREYA0$=*6Q_d~! zB9Deb+}WnRT+$g|MUl({aEeQ$?8(Dv%D&}8=X$mk`wW!-?dKy7hV9jfuyVeoLd|rE zMZ(Yfe71DKTwI%3+ZV7zXLQJ6MH@KI*B z@qD=o5lxL0ta9N^^^hlj^DZx8#ec}vQk**GAJmvbYu|#+noDT=OQK#{CtNC=kurQ) z@v1JkZZ0?ZpPCvqIeuO>{isxFD6VuyP5?IjP{%3^41W~*>o3o=ww%qCdN1My8qTvu zltCBP>kY?cx$t-r_@k=mFTA=k6PHL{lO2{~nYhh1!$`v{YaE_=zD0Nb_pzB$acHMh zFvfPoT22yN(a^P2ME)o4Zt>94?(gzu5+MKBf1$->p%Gl(U|qzYU{?csu;uL9oet3m zA|o84Zf(O&$)(upzoWfs$S72t<7M&^0yLE=q&cGGO=Q7S5DTuNrv!)i2@X{f9ciSw zF$yyyrp^mzUqVE&0`(w#nOi8L3ZqQ67Mw6LL(>=Z>_OJ)xFntFo$aZ9lgs)U&|c-& z@DTx5kXacEHtw)u`U>EOanBetgFmoL(kWuo|h$xZz5Ytss6rFbHEuTHSxsN-MZh4hjuzHQ0 zqiBOW&=0SAY-)?8Qp(HR{uIEN)$tOpC(`Xtz?>bGST-aRyT_e<=+KC>$;7LPBhAzQ zq4&qO4zkE#Kf?y}O}NRmJR=|=m;d2fZFT~}PnUPLcNT2^a4>P#uG?TCUtHj_@-)Fa7kxzPlYBrd0% zfhHeiqiYI&RP?(ha)?|l_H+&~H1C{sX*nr#A@-?)cXla_;z_YG*VgN%43!UlwHd0M#ySlsf7u2l=-_ z$pLXNdwJ{x4)uQ_jbclbMP&a$XRw|k7}bb{EIHTWgfp^lDiR$0vuw-%mD(42Uz64z zaB87&5qWMRGkdbULd_?cU2$rpaPf9#C4(qDHgzrpu$J?~V_iG`?5SqAux3%RgzDkd zw1i6k+)*jTfp832KzN+`A|_=Qi6uBoPB$nan!?_VPmfDph;p<-tW^A_$rg=LoatXd z?EE^csM%5@a;7Wl0u(Y zq1lZga9ySpj=@>!suSvDDM1^!M^?S_V2c%I*80|TYYAByT+0IbmXEuX;kTj3$QKR; zE^Tj;A&30&m(u)of2A(sD#NeHpfho*TZ&A&S=g0;HU!^DAL56Lk7u6jV)c5L$=M%g zF$1a+tl}o!OYE}`TD}Pj%a6mwm<>FjGsF!d7}0d?2h)8ax0S0Ft66agboxf=*5VH!HU*` zHGacudKW@@T*)l}*`NzX`MOeiDnT17<@NOiq~OZED~`ruxl5DrqSbLwq-1cL)!j$O zV0vaWbo!?9vpt7LmTyTSe688Njh<&bSyvw&b2YfI>B3T*W4P$(bwjUU^jdqo+s6F% zjpN<=<<0ls`Ui7&&dV&fJf(yWpWJ_z`3f-BYvhFwMMPAEp*l{Y15S7Rle|)ymqR!JzREew}2eC zhNC4gR+3fvuwURBvtTC4cbrB0;57OAqSY;WrjFZq*KxIO0%%v9c>Ty54%can^e?KY z(#_2Fux=QsJ=`l}^||6Pkvlg$`0`%L*d*{)wqa}(Fh7iHW7y)*D{8FBU->_Xd#B)9 z!);wRwr$&1k4Efd#I|i4Bld_jGGg1dZQHh!lX>>qb!yF;YtMbL_c|BfO|R+~t$J_u zKi~Ve_P%9VWD{o@AVrdvK9;*okI7%hj3WXsa__sTgSv-%u1VBbav;KkAp}aMQT@^wfoT*i@1P;*o?%@ z<*VqnoaB$8evuDSQR^Ui&5wAT$5Lu`1060PYPV%0MY*x03Mz0>4ZPoG2z7ux!O99;BrMVtC;QS+_QVtrU8-{Eaoj15Kw#L{Qpt4yMnL)^H9k~*C;OyZ}m z=6&8JYbEfo1+MKJbjhtcv(?I{u2y|4C2O=UUir2;Y~^vSAG6hpX9%MszN_004AcfHGUmfksRdbNT?&%UMGMPI#0yRm&6;nO-M?V+{8dHJNK41M2Q zj?mOXJFk5HHP5z^`6;$7x!P`Xcf zR`l2|Fs!})*hyO@E8mS*UYiYR;PPtyYF|*^W{vw6TeRAQBKRdhTns8tdivb+C zqw=K@4e=e0h*)4%3}r}Npzy6I#&FIhR_wbwaj%HQP;$$4<_~FMQz{*BjWv4KCN46# z5E?SonSZbx6Vgx6bk3z5{vjj~&RQocPrIvv?}|xiAMkaMHd`8i-#( za56G)r2*$W7?(Z|t#EHGxU$%fch$_7M<#~LQ&Yp$dj1(MU4Pj6d>x3iK*Gpf(w?M& z|7i=-#X49x{k!Tv-{-&Hg8Xl<`Sc$($5Z_&?r*LNj5p9j2krX-K~dF z^Xp@Mq7d%QV;Sq|j)nRB$jo?|v3sIbPa)l)iz|*ExIbZb{H@@hip4!FLSnR$E*9I=N6cW{6HoP}ry_pCFY!K;&0gu^?1LHA%wX z9Y;yoqj`V#r}ZnT@yWIW@-&mCn8Sik{)L)E9XU>bN2|GpXQ`5@g=_Xs?8n3r0MN#I z$A86px5_|Yb-dYLVdirr>{GcyP7dDU1Op?bo!ziu#iQ-A=K03M@z7dIV0(4Bvc9o* zai*Suxwq0h!|v-{RaTVOly`(|Wu_w@O3UcypdxyZ&??1bt}kQ(>lLp_e`(?|!nEhFGL61li@ zNE1}fuGjQcblbBgBe+>y7E($DP>velO5W6_RBbD_r(}JhO;z2lvd2Dq31Bi(*gp*5 z*^T*&xBs3P`2KEZy&^Irr^AgSquLj8RoGpPcIMRX=?i#-dqGsB8cxe=ggo-s`Qh$@ zd1YsMNf@kBOEXhW872$X<#I0rnXO>2(lf9)6F4EW#>vkm|w-w zESOEwRPDEw0RNiDowohhg(%|Flg8`HFvVz$>uqYC@%dU`1QI{P1)DL9~5q za^Q_d?JKJ^3^AeQnJA}>P?>snR)~SYqs7yrjpVZ~IubFl`PHD3gg<>`Ks-tNqgVx* zu*v@B2BXq9p*U;|T3dT^=kx$ZRQtx>!Gv6`>YjFYPM3i{^61oTC89ZfU|<1UyJIy! zYznvKd3|Vs(GcB%K0VSZO}j(2FzoEErFpY^;oD5-`HF&}Giv`dMG5^TDKWC@`x2*; zMbfD|IIyIn{h=33(plqlBg>=KMg3^|=+)m8qV26UmbF#6q`eFAaTP6d+5XcsfZ=fv zKZ?~+if8jp;s1XF+=XMUBfWI(xom1&=pJRoijG@1PiU(ix?G2Na1vZ7=nQV zwXyC&n{H1V8mWaIi~&o7*`(BR_h{W~(>lARv;JZPwjLr=v^Z=DJ&2Nd<4ipM z%sQ4G*d#-Od)PC0RGY4|^{-A!+)kDxyLr-8)vw!mgcSyJ{FWyu#o?4?w@Jxrr`@=% zWEqQ2_DOc5OmLebyQ;)<3q2Sb_6k1WBj4w9N#@kp#FgL7klj4PZd$r^z3ns}dn?Xf z?bIAo6>a!XRKkr4anc_T(H)K=!6NTGUwWU8Ol6)b#9WJ3 z#6q7w>S>;;oC>`WjOqlMwV1Lz|f!0Q12$l<@6fUdulqinV7x{T zySH{SEVce{&)XVPRL1VM5sru9BDBErLIo+epX>XZ=Ru2*ly?Nz;YKo3gRdIQEE00e z!Sav*QO>g=jjLlg0-~Z*nlsuGcoDKq1Z5$ zsqL?*Ur`||MoBt@taX@5H~x5PoZ398P_yF{%Jmoa0QO!P4GJQ;Fe zfNJbTevT6|V?egd^Sg5H*GAQ#4Yy|22(@23@h_f6ww=1gR0vm(;qS(6J}V&Hi(%0G zvTh2MA_5@M1Zf{-+_!9D(1d!2h49AVBK;LNCA~*S6?$TRVG_DWvS|!ChQ9srxGEGa z^SB~B5vQeY-XLpR;Bg7n@WXZr#^t%T^BT}w1NEJ&sQ%0VW_Z5SW{_Mbh1iixsmVm!ALdP_M;Yuu++1r~Yqlb<^DMS>c2icp z$NF(L6egnLZ7(3n$5eJLQT-`*47z7#*c z2vDMud1;C|X^-JUkv74#mtU8aOTM@gF2QrAe`8iMSD#ssggaTldXO1ZkgX-*HQ8W! zIeavx{&AO-k2(8^_@DQm*BFdpAHGTI;G3i};J)Y@He1Obi)~Yz*w37{7t} zf0C5izgvOE|6jorTs$!e4N@RUd04)Av$kSl2}FNe)|*QBibqpBS>5^KOuO<|_UZBn zLs3Q+uTDK3-vV_V8(`{s==1O{D{CXoBgZYV@KzHf<@89-wZVwO9 z%Gw4Ut5uzbHBZkq&WC0iLhG~B&Gm(g6C1q@RFy`DJgfI-0yQ@;d9Nqo#mUu2S2elI z-O<|!@&F!k3!VNkHW-dJ$E0f9v#zGH_XYYxN^f!VE?Tjs6q}-MxxN;+nAR#Al zgyc|B1l3SVL=F)$L|2QsF}Gl=0clrdi@FP8YB*sFI`83;(ohz5w>yQLL*33g)v?Mg zcG--b)dj+%)vQ+9CJ#4ipBA$SbVQ|dogXz-{)S&7w5`+#bOr9bp}T6#s@8v=AAHcd z(!_4GLeZ_LeBC$)uI9>*i=Ks12MDkJJ}V`lccA&{ekUUGMs&$x76jr<{pAzIh6-a(;cLkG|U;^_!bFeYJZ*ts~;u3=^|T)bXLgSu`_ebl~Mhn@_JQY{{y{-3L`|3rej& z!$7vvC?bcdeT}w$e)5Zq?FWNpuV#rsjPB*rYYFkDT z?pHqhS zIOdS>pY814saN`DmxR$`YinzCFVIFuJpT=dWNg>|V9`WYBW-C;pIj&-k7(w|iL`pq z?pQ1c`?B5LEwiumWmiGg1GGH1hL!1k^I(RFw)fn~!dD3Ot`-1utI+XbO=!wgFYTEj zC-Ta&`L69DU0S>7t0Q|dYe|}JdO&xpH*0GMwX+EMxiex~uK7owXWvK`X9S%>h3&ol z5n@d+VQtH^0dbG;bG*aNp7G^7^Og`_ZY01?48_*e!J#g5+WN=At}2V$X1Z*%sG4V4 zBES#ko0^)w=0JqoKhxlxl2?H#%6Y9n8U=h9Ls_dv8X^}p zQe!sBDr1^78nk3qV}lpuh$4xQEOdy<>b5oQ6Ssee5GTnIRbw-Lsjnf+Z89(1#;}ah z(m!bs{H4x?KS&6r8Io0!U9+IPl4)qK>vs$?sXEZP+1FtmX`>n3uzmS?Yir=)hV0>1 zaUh%g)SvKVobdEJddXophH>y+fmM>?C&Z+O-W;{W$6Viwp*PEOmYq-xEPI*Bfh>f@f($eCHBbC9B>NIa<5HIU zDuZME3VZq+qiRoDm>g|h z@vxk7k6817#Ns*cTnO($Ovmd^LR|B(#JKN0m@dD~&JETv3mE;KSMNn-%buZ%P zh|GTI^%}dTj@OL{9ka_MFW(o)B>$)ip$pAFs|YHu8+%LBhF-B;I=iUNdBMIHJ8TL) zkn}+ZC;U@AV44AW6i@*uOF-VvZR}TZj z7G4_|PGp$KB2NL9KO)w!HS5h0@6v(6qyIC7F@f(_A2-3HDS0fmJQM0~ zlo99tJKcMt1^_%4nQC+o62`wMx;3ABzwF9W3*yGh7hAb^LNlS`#TzM#r`F)iKN_&d zU5r~G_wh&xC3_pJ^(L* z{9qz5{2xH2{~tib(dUl!KY*(HICNz+N*rm_q!2Qp$2zEf28r2;J|CY)w$00+G6>Eo z6@T-7jDOg^tp%ASFfD_alsM18Rm&u$X8b%L6UplF#~`u(&d zYY^TnD(-mTW_MsnoXw*?vN0f#JnpPLvGaN*upkbxS|58K0_-Gy1OKaBwoRgzMK&O?B5sW}@M1HH(I-ZM?H%tE3ZoVDlgjH@ zF128s5Y&epmb`~>N+@w#UXTj>Q$*aHg!ao!M1v$Y!llK$QY*C?hvQC-%?l2L$?_ z9+v|yW!_@_=DxjVPk3>_BVEr;qhXZT)mh(;s{EmfpGonr0X|{rroU#j{?nGtITm^1 z`x>?bnh{;p>0YGV5Q&;4z7uFppUsrY$>(5~TD-vDB!UK|;U%UWthpC@R=DrL$ zsxCz+SaKDha*f3A%8(5aN;=lP7Lz3Ml(pDJS4&WKj(sc2 zg_$nZ`*pAuQ!C#M^XUy;=G7T^FEskkL9oR%-pT*)Un}`O{~JK{-!8}<;h$$}mE)f7 zl%FA2ek*hTr`^~9Bz9~6R)PHwp!{zy{#$|lpT+;5uiPe`v!nIf<@Na6hwi`Bp6!kP z_k3Pg^w3t&hy034+j0Yb{dE0ZNFPWy`d0+W`X>&yiMZg;-vvDon5NYl+9Tsd##mY7 z##^8g3mxn*mTGesBHvrX5wJP(y0yIf-eKz}A5pw2T zbX8)C*-ry5wPs3dpB9M@X6 z=qqmnDnPdAQJ!_R!7#x){baTw0pPyo;eYhD#Y4e;&!hAew<&c%1U4A2>wZHGg8Ob# zTt}h==ncw4!<9+R$ngCk?_qJmPrdljI}Z7q1(&gK{IFPRClhX5J&va-G~wt}ncTG! zGxbd9Y@J+%+h+-Wy&{k;XSZO>JK7|aQ@+ae>s6TBXG1pmAyMSaY<_(C!IquR<|A4ae#bCvGp^ek27M0^|Y3$~_eCtyS|L&yOi`jx-n8~CQt1hwT?n-FP zb)xBo)wk#>ix5;g;E=+GQk}-aLp2$q0w{ntoVy3jyv;Zn-iA}1penKIE-1s~8t^9ZU1I-~|I^4Sbeep^k7>C?Vyy-S zy9L5~+X{Je^(v5i0y5?uWqQQ^S!GdEY$VJ;(RGP+ac9%WMnrmRKE?;V7v)%d%#sjI^EFJhlLJ1q`Nz$^0%5IZ7$8egKJ1o z_Q8Rk06**XkuShlFr`L1?X^`}F($*N8bKmWc3Vnmv@pgjo(!{?#0+%WL3rH}M2n%92FmuHlRg6X4j6m(Kpz4%llda29d(vXMa0>~8X>lM+Ui7r+9jnl1`@h46!ba%uk z@Yl=1Bn2T3=fc<%3PJWjepr0X7AT-Ud%&m!>4``Lk2BRP-Q<$?Z;4BQ&6rS=kqjg9 zQ-tt@$ByMPT$iDp#y_*?I!PBJzMIMoA5Fb9*+LKXR`-MzUIUm6_pen`RgC+80EBnY zu(YT$AxM#T;IKxLuQ^y|^Q&QhF*PZ1Wz^R_+9SXf$+{2O|7?c)CA9Ow)cIpaip3Gn zfD^j~YN?MZt`A=KO-qLbM!-q%>|+_UL%Sj%I~}Nl2;%kGnbj1+is>x-R^N8m%HxfY z4#8(ON*vS{%upb!`-9)^QY(*PT?jf>w5QZP6EWE94=(`{@oflwpc6>fZSiO$B?HfO zzwB+IRcXStaRN??XiW`64hAicLK|J}C+1rGb%6xThTbJ=gEe`4H479SB9WzuM1DjP za)e$(ybpUCjA~uKZQ0*yURj}CC0Oq42${JL<$2n2lLWH~p%N=`(J9UENE1GQ1pbs| z$b*VlPH{Kr7wCUhm%O@ho&GHh{Kq5l{|^|@j{Co5O1qMdI3f)C?Na}(tzrL5T}?(( zSX53)R7Dva2sF5RP~F8H76=&Z9vBn|3>X9ys3WPzc8v?^*VP+Z5C|}bf4Z#K*rSMa zy{sTc0~vZ%Y=j6U7~Krf_uT&*{;ZrOwN0aW08aIfxJGiZaLz-RPhZTS$kK9*e4tz5BuE z*6E6yAXc}~o@Ij5&XAxbeb4L1Z5({JOBua3vt`Yt7qIN{YoNtwm)=4?xapNeYgr}8 z1~AJagDM>}2sRimGeX(O$emn*Yw=j}M%Sh~`NFQy!N&?{7=9XO&)wG!6yD{F$fvqWGKe+h>$vE%IMG=K=7wTvF zF>{DIcmhQUj}~O>8s+MJ53vw1MdL&PcwMR<)1+PZ*8qv%FG#jKZlL#DiVD;Lu=-^z zX2nq@VAN=NEZDF$Bok#(=#gLw@GzA`X0(M&VmD-~9%aDZ{Hhv1;~8$E#?>e1DR|OY zRlqQv>VNzp6RN2n4fn4_Ax}Z8eyx!jG)_lt{JVnwD#R#gXOSz&Aerr#2$%efkb*s+ zIZRh1jwnH46j(^}Lb&7?V!jT(f=FcIues^F|2O;oq=@NfiO+)$2D zRAO2V(|~JH(w{N~oSdL?Q$=PKY8cqbx@8W@0eb0@cNW!AkKU%(U4-P0e1&(RgGJA#{osCQ{x)7_AqxOX3UH@V*AJn8U2p@=GZ)CZ%}q< zIC2vC1rIo$9)x0628C(SNsM}llZ?WfKV7B?y1Oz=*tT_fx$HkURr=9ZV|`<#DJUm+ z_+%wBvGkpYR_I|DvPc}Z$pG+X#@P(=6B+Faeg_So{}gdKil@8H4h;k}@vU_K>j4Ql zHHCjCaI2`iD4~rk@~te0y12}3_z#n4nFY}?OcOE)AR;1VAPQ-W2vqmq=D;aH zn_vhOtOM}ydqf>WRVpuj-G2T~x$}J{>5OW2psBOna_yB)@c8i7_QtE?R`qbdd3K`m`mw}%L9U~d{q^$X;rZe7xf$Sx zk@4;;Z@RcrI(yq%=qNIt@_tC!g5V2+R<*fC;&0f_-tgb1J}L%^-vv`KJGjtLCKL}A4S4_zoq zN+`-R$yD(e;~1@v$l$Jo;*0|}zc_gErR)=*PY*q&&An=D2!_&w>9OLJj` zk>8bwH9W}TR<}oKpp4Z&?bPWp7P3?rASQ_vLIpuVj*y%6;kAYS;0GWu+v5iSpze`$ zhyobEY!m%gk&+J(*XMfazZj!POgAV4>WBh7ZKK!ITN;Yx2nWIl#e%%{DSSPI#R$61 z#|glrC=BkQqV8soe_~A-*NeEADy^AQM{VuTXkuZ~<pM#QfAwL`fV{ruYo+wPZxFjiObs#A$sJNlrk_2Vi9*Nj$gFuoq&4yr9y z7Bi}@=y=|(2=bQ`t{26meR~ipYRba3cf^P~mJV^E15@jhEQJxLcseiip6$Cac@%-e zEku;pt}!PZdg2F@Co}gSF?5BoeWIw&YstxW0q0Thy-qfCM5At&2Esw2v{CO;q6r09jYJMk7bU? z=tVF5xM>7HiOe5JGI77Bpl+G_dJ-oEO0{jB=tOBcn5AA=k_@4zT;7 z>yq?uYU&zFy%SbV?E=a1vQ>Ie29^k_$xd8wQYmj6|# z5z&3W2BDx+NtIUAAy>|nhL9dwYP;l?qb2peN`RYWaaiIR~l-i zDrWElFe$3&YB=4Ve6;lXKG3wW)n5IrIIxS16%;$N$u8_VE;$8|YKTD_O;wK65anf@ z-4G*|n9D&OWqiwr+`RobT^zC1-}~0(JeC&A>7eJ5?>LzIZeyCr%SvaflIMp!OYXi? zBukUDk38u$i;@Uc;+k}4CYrTY9SKlp^ugs#3CjlHqXNT)Nh|i=(7@9U&Ctnvhxod zD1{r39N>kdw>A{x)6-2ROj$8a(M&qXc2zX{yP#1;)bU3pPd1E_-k9KYa3qg9orlq0 zZZY}oXB2Or>v(?OA!WQ^L^`gB)F#gcOzN zp_`Uh#{)a*9g9&UckJK}84Mca5%g&7ih+*1d*q4M)T5Iu>jdAJMZCe-Y#eX*fBHla zcBM%?+G51*Pw*J7ozJzyXUKr#1?bX{p>;JGy3!3jO`Vb(W`ZD4!>M4{Hxz8!QgFt58vMJk&4+D z=VN8a4IhkO&4Cx}#R-0>kLvk7<52cxZGbY3>KUMRm;KomDPK$E{bCl1IGe&7vtsW} zz1WVdSNcK*xtqcfBd%~gFvW~{>-v|*P0_k&Z^7s75x6`&ckPAgZntTS=~8m@QsH22 zz7{pGK%~|vG>x!jFIZ!HP4bt=e8XJ%sGIrnq)TcDHUKo$UQ&;G+^Dh&QXfN7FP1vL z48sZXdxMGZ`GIZasUdWD3vc}|+f}X|0m@fJ%(fP$gWsMksgIWwNvAZ~p%dNThZF#!F4%4OL_M`&io1e^{hk2+t0!fw&v(9; z*XYXu-8AH32tPH+K|opN2BEC>! zum86_lp__zQR?UJwtYe@75+kf@n+^`{W?n?EBc zZjeG=kh9azGE!1dFe#SdAPbIPVx$lR?z;;cRQH=kWUa>lu^X z)k}ot8sMOFn><8q7-2y!xd{I}%^QC${NouI2nYiN2#DZcULO^um8AY1t>VWSNGmy@ z4Z2nKO;EUTnb6ihP?D3_(1$ou710){XsX-vkeGVfq?n9Xu162<`qQnuY9*U!Bp=As z)zgjDDnq?eo!R94U5JGA<$d1{5T^;1ARNOYy*ZTIZ2*BvZBDt~1I_J&x?sC0psqUPO7#FWi6kkQN}BGnJ>ewU zt4zi3c;_qZXW^99YptFJx$OqFoguXAB7|NSf$LVeXKvv4f+YJrqHD3tYb&^CE!Lev zpiMlocLMOw8HwfwTz6WbW*_LstNF5PGiYDYFOdJ-aL6*ORq@}=R{DMZ7yqUI_Kw5Y z$3HLlZn@Rt;qR79aj+wzoZHm@euNm%1$yP-i{j!w9deAYFbU<71@Weu8bOJnDEUW_ zvvA0ptPg?x(?oc24Be#8cY*rf=U?CM6zyybY#9vyG1T<`YA*jGUeDw zM*>=4Wu26LOJk|+KtSaGvcXksErjKi=v9Q3SpHp~i?l&Hqlqtac$by--S7XL)DQw8 z7MaW)`8g{gL`BRz3I$AJW*<#qE+*s;ge!AvXp~t~bJNSPY~^LMr<0mYr?G5UVHa(a zSQRCoZG{;qcA`EA>)+O7Jieiv`T&yyTN%T z^Lt|J4hr17t@?_ny_GQyhztcXB%dZhDl@^--$^du+8JLDP8<0pQ-q%$dG%HYmKxMD zK?OMb*^0I*rm$Z;rbgepmv52vj0G5ze;{Q~~2)(>L1DrUzOyrshLpA2|F24>y%UGZxK(vlrnsv z9+BvWPrB9rAYjz+z9?SK}cbe7Z-)34|kE%BxCFQoE6V`ixZ- z|H{l;&!GuGfCT9fz%#~^2ZP&&8hOD&u$zGVUJ*yL3;+uPV1Qyl1Z&-d^^zhWlJb!K zHO`WGwl8(!aTnFh*k}Q59?b}6U6;sG4b7yTttymZc$ZQcRzp3x^)evwX2%~^+siWA zKJyGsbpo{+gVs!=-B~d|=l)u5vT_$-S{CtZ%0cS4ts=Oh?BKY0_egTn>vHx`zn@o3*R2ZXv7bL2<1a{28 znYo6#Tl$m0n#Db3fSa=>Yuv_EV>Tf9`r9SHu!WL}-|#qZ*}V;CPBrPc ztf@KexFi_#;9Meqf0Y4mMTj5+*i6}-Hykg^`WUUJBdyt~ASQmi1^jX9uefFp`=+;H zyg{HdNfe&8Tfo<@-;ilI%1sm}a!>mo;rv9j03S{*Oj8#X@W7_C3Jo0&i3B#)s`+xH}& z7+!W{u8pT|rf~PxW#saQu3d;Pc3iVj)(UHfCU%Nsl;h>e2i%L|jq=n}1PLZ#!o&DX zg6Dn}jpWV@`H;f=0crVsNJL1oSCep=Tp@tl{4Ml9icr7n0n^Kz%lPDOKkR3;E? zQgD;@qbX^XPv{U{PO)FfPYduU`tk~MRYQ0K`X`-V;;Db_jcxx7C-`l{KX;y&R%m}>1Cnyds~a>SxQ5#-JJ@Ppfndz&LnGOev7VAG?9b# zWSyk#%(;?jbrGr(@6n!>Tgg;D0Md*Kk)hbTo+$7afD*TenqO(BMAOHMo6kJkCr%8H zVHQ8t*26tvJ_&tKyA+TBducODos7e>(v@bf?!M9+(TfuCj;AO4(8ZJ`fy;%!p7rdO7c$5v=$!yUXe)BdK49Pm!#2#&3 zHhGF=dt)udrJfXr&AfD(D2ym()*`#t9y0h*f#H_z-c53&1F=;JX4}Yxo8Kt08v*TQ zUvd#nmq$t0ONeul&cx@cTv<}5@3nULyob9Il<^krmyeRk@+DS&}fCH$;DcpWA}cOv0ia?;XspibTXW4mFcnqz;OWe9C}$ zbQYj?_AH}RveK0FEH>b5x~%Ow(%~qh<#YN8onXG7G0y8JA-FGJ`YP%k1;WaJLKGsfax7E`t4k}i7@-`Z%i!zR_cE{ktk zCzs#OMyA5qX5?xv?n$#~DGdqr$%hgRAAWmMyVjS+sdbH7kSBIgTj6*_CW)d>F7uV@ zDtw|n{F_8O8ditCl{}Y0tF(+F8K--n0DET=T|XS)k>=GaMVvS#bI58PsJpGI!?p~T zcFU5TGoog~of2)Y8ggpQgPYWoE1v+9)%Hg=U4Q%<0r9TTscsU+21!LmcwL&J8MZOl z-^^+vK*7i>FxLh<3uA?29q4DPMe7O34VnBMnFjR~^56{8)H8Rs#>#KX7dr0FRA?L7 zv^QB^J3o;kR2)>ya*(!x?Y4_!nAzDYX@8J;|B9g`!MWL36$9840 zI|W=T0N>E*ZXb0&O%;E3gAC*8eR$Ah36GgvVz_zL;)L_k5zwvyJyo8IS;+mny(tWk zgyIGP?AF@94*1DzNQ?-z{lkfuLu}m(UvbmL-IlQ1$*aPiII|lZw>yLh0#j%v7wBCz z$Wp+?uITFUPwx9v#dJ#uKg&$z{>R*yr>1A41fN%)*W#1);igJy!c$!eN|^Kx1XFB4>}RD zWAF_Vo>(!Ro{w+7b*_!kwew?>bg>#r2kK8BU<>)$&_hgq0ihFvMgkpqbNOG5@>s|P zgfofreV$P@s|YqtrDJy9zFaR>;O0DGKsIzUgZ><-Lg&mcxLLBN}tAS7sT3xUn>>#V@=}nR2=akw}bmNg)+YB3&`# zFuuDzfx%iOm)#qh9rKPLG^~-Hn&+~YTl415ep|X~eC0F_*^FoYcEU;(OB&dvLrs+u zq8&#(^SK|ikT#MEDUH3hG!g<_;T99=d@MnhE359GhnIwfgF_{)fi)>}J8Oo|t^_sE zn#f)Pz(#Xp=f46y)Q--)jJzHn&yQEEPF5D{+RP#m3f8JtMc7f`58MybqRzC9bRAredW?Ls~yoxMSn2ZwAd_P~NH ziB-2v$FgT^`iBCe{a%%|hUA`OTH@VG^s`W(6dx-nNb(Ug2tF}VkcyoIo*4;uQZ_&W z%}x>aAqhz%3D(vZ5ZhR>n6=Ds-C}Rd&b^5=YtuLU>8-jQJJ^m*t;N6ITcvtiM$2#g zVjsFfyi7hDxjK0YpN1hBCkL)J{XzhM)Y4wU{StzD;f`X6#iE%ZuMXXkJS)fUuq|kwgv&0Ng8|$Rr0qN zJ=SgeddGIW@@Zy}_da}{x3PSD&;dequP z#b@D%cYPcIF2xKw78~2^^|lZ%&Nr2>^DRY{jt@IC`0bfFfd%2HmwWH)Ng^Gi;k1_P zOM+gfnL;f)8(_Z@cXx(##|*dr>W}#Own)56k#6di!#rjIlvtUbuHPt2H2Zy8R4%a; zREYtczfr0tdSK9-ktBD7z%Y_S5N1AMuVd6fx(pJlh75IXC`hk-|Hvf4khUBA3B%7I z*P{_rPz>pvhJ|%*=apc&A-QQ%vFHEc?M!yg3Fz;oo8?amAQaEsirEwgX~8P|g(i26 zxib&9D51fI;zmtE2R^172RHWD3dhtP zJR4bftq_; zmIBd+#NIF*iZXfk$q>e@+C7Vz#S?@3N~27eW*x!KhV*(-mB`MGl zl$^`*sUv8y>gW@Nl6m1%WD1khxJ=1Y2c1LnKh6E-B$jT?~X z0rO~3Z%NB?p(pe>r2op(0pSjDjpxV`l?7MS116X`Fxw;9JHxZPLZed(WY%bJnQKYI zqL(d;cmYO{BTWHbAH(v|=Ws6r2jGp)2HKIsZg#-HfZxN1?saH8#si&{yxp;eq)wNN z=`TeVEiH@551_?ahkgn|9_LD!f_qvLFK!DUpeBzsL(Yz71*N~kwm725t)NbIj!4!G z`_*c%TjFG^c<^_n-78?{kNF{tCly}0G~pV#rxd>9Pud$XRP&smA#I_LB(O(DBYXQK zpvx148go)!0oi~Qj)-gRGC0g+=G%8?NZQ`}`)&sOYg?4edoN|x`|D5M(-ER&cF_$? zWF`Gxp&*B-IZ#;1H!5p~RHyN`e$GW(D$jHFhN<2y&`C~*&WGvq&_RHkAG3=+onM|P zJZ-BxNAO2YdM9VlePx{dX~-Nd5qL8*R{+^pl)kUYrQ_kqA4a-gZV5q=3J&@T7BkX* zTNysi9hP*S*>3sju~C7O4#R8ttfXmLfo7!J#>MU|V696*UcZkCj5slTE+vh{W>8Se z`k66GP9r;?{`|ed-L~ev?)1h1i4Xo_ioCr#)K5}APc|IMSgC6+qQW~W_!)*q#`o2D zyN#EGCjMSKRmm9R=^HQ}JF%UEIEUj2HNkvM2y@=JtGpRM${5XJ(N^53wieuM1dN~4 z|CKc2r`L*@i|K(~I%}ZH64(%ErK(u$@;8IiU5Q5p1ZohanTtF8Ta>`Y zz-oT4kl$-Ww6@myz}AzA{F8c-f3lb#ov5_R=m%Cx@V^fBiNUp3uSLcKTegvVWc3Sp4_PE3|wq zlb_hiPpsGGglQStq7a=nL6wTXKDZu-BL5D}JU1RRJ7~zTivNdPUXGG}I@khQ9%y9{ zN3=|P*m82Pf%h)vyfIqRmW63K+Ei_}u|4jeA^(}Esl&A5Q0|+}-`}As%Ofw(2YzlT zN}b2JZ<26QPq6Co69&){gX-+o<-@N!czY}Vpr~hOFOhpT_U!4U$WKaj?A9)?v1hj` zEuVU|6^4;_Qh^Um0)Auz^z5=L%jX=)kb8B#Ha-}_+jns9M*aco4O5NF^N$P{gUBU9 zFyP>D<`Cy75`}0gk|9}LzU*oh#E@8YS7%WuGLYp(+?%6x#v9rh*9&Rhps zzJ*+^Q0ek*uPq?lKisZgzU!e~LSIH7=@a_K_NDYi>s@K+frs-P{;s`G_wI%)b6=kr!Kv=O!2P+g~Y)~Kn%Y8`G0L;F01f(2^^V2+Dw8IG4b*@$%$3= z=;d#pC>y97C>of+#FT;c1FIqj77UaO)DDyyDR0kfxA6xi zKrxE=n4GA?!TJ`$0~!12bT;^qpDOQ+!zlZMFIa~88L#14rVw=iHV$vvMVK)8##l?{FTa2 z=I90|4`vP~+VE!VnUKLry1zH@KSuLcXC16MYC1bZl}plp*-k!6B>l-SBoP^IS%F_l zMp2{4*+jd(WX#!!Av#1pT=!u;ef$g-XGaSu*FBy$a%9fRibtJ(jc&({-<9C-Uv4 zlBRQUieL!&s9gDI#YY7nE&phh^4UtXbL+Vj_^1*-T8|ZnKV1&48fZrQ_6{zfcN6a> zh$6cide?l{qOuYn@63c3XTlKy{pcivvsJOA>-=QUfh@SeJ@}&FA z9P5Mvkq?*oxL{jUB{5ywLS&Jal2?CO$)3w1PK3=!tXxK9Ox#K|Fzgrg-3nnuG3=j6 z_fK)?R}gX;5$?eq6s~RtI5Gi`NdQ+j;Wt9!*UA8nMF`|Xok~_Dx^}8;MZ}q8!sIja zRe43&+cx-ep)fECd<|&WAFJT-E(ckWLN3Iph83CKQ6N$AK5$ehliQGo5kRNac2 zi>e4T932Vv2EtHmQOpmBl+R*U7O`X7WoH%|vWZ-rsY)xh`F9F>(Y+MhD`j^jPF~B3 zEf=Q)!d9ZA7K1y3>ID(&RVYXpSBmU2sAK1E)$G)EcyWa8ibO6XQ{NhTYKEbEHp)Fs zE}2wi#UuMyqiakrgnD8?KvL;R4f2qX6^~uAfYlNW-Z9w!ItV2QB!WveLMZ5kNZP&- z+Q*Vm9M#H--|>TWqO*!7Dqcl;+D4DYiU%v1r^@V%w;Nad?dpziA`WlmeKx5#B0Z+p z(re{DGxv$u8(&bvt-Vj+`_dhxG?yHUwd+gAT(0Ui_r-cg4=#;OVE;D% z8*zW>^tTgAOlCM!;? zW&;fa^#cw3!D9a4%7HcfRx3)XInk<92$ekzXmIV@Ntg(&G+fdVEA>wydTg=!r+RuI zQuHHCszlp&oEbJa#+W#mY#JQbKec~?b#R^>O!=vrj~kcOv8MngG6Gc5}qZaW<86?U?K6>5rqgMCMfd1|}LO22aL0LvW?&_it9^(!X0^bzMA2z^yvuIlid%uzV4ZY0)Zvuh^;rFGW)q=AIddpQ( z7V?n}yW?k$c>7Q}@HoQbm5xykQWj0T<5Xi=TnAx?1#&bmxadG$LY}X?pMj8T79x?P zW!V=bnys?3M9ynN4iyk^$Ym3WcLEaBV#MaH1fDNt(1Dfz;ygk+aO9UQ>Y#ADn7y~{ z|5hLZrO-bL+y$t01vx}iU0L}dCU#9D-l;-YIZ~4#XV?sG%t2+9*TMzg80F|Bv>o|) zpdwD6qCgs-m*Iv@gjZqIlm=xq9a)v8~8%EIZY{LExWk=0~%PidG~E+9b2K64gHQ zGqKysp6f7}`G-2*Ww8X-YLIB;56w6-mA`8WY!B?y^pX~d!THn0BCyy)%HFt`&%2uV zhbu!htH@91@UO>%!`|P&g&2uV5-?|A-6$KlSRlB^VXah10;JLq z)cgVG8|-mqpYPuuXb9Bu52oP`XkG!Pm@VCDMDTLi3(!38>E63nVnZuk*dSE}Gz zVm8wgQMA)S{mY%>K^pCy2mG}L_-B^gP(JI( z5~a61S@@!o|IyYv*Va4FtkUwO*G7S8Pb@FEmXH~3;HPHsQ!6GU$NqZ~e`8tixTxf4 zUFc7f_+OXt!E){!E%%PvT=+?{E9KjcrS_%$qxc^y zlcJ+OiQvC4L!E=KOFx~&wsy6=$j#okU8JmJ@OxRRVqLC+72xIeTk%R9Qkhx1e->dKlj@1X#YlW zpiCTC7aF42ViJu5s~ILR-M|hbe`;J`J<5CQ?VLy}LcXoh1JwgNKh8K=s*>_P?xgmR z^7n2O3{GZraA~+cGKNW(!FzkYDKsw@Be#!47m0fW&qSn+>h;60eHE^m*qJ=T3B(%C7ADpg=}& zfYq;}>-ky+(AI=Fi&h-uhgKWU48!M6qwD#qsp4#xaDRORACNtnL_uHfUl3hzS)=0o z>!nTa%_~{P-%QU$iU2KxJjajiGe6;eC5EUSzrq$ zi~AKK!suCt&<4{7c(#FOyJ!GO-`*O8%tXLxf^Zgpi-B;=Ai>3AQI#t{<((7Rkr5&! zNrFFx`cp$YYwf0$IoFo(N6h?@Xx}(vWZ&|>#R((RLoE2q7liAl)@DUbzG2*t878vY#cFAH)*oEI|s;-AI@un`)ZY1Cf<{^H>Js^Bj` zt{Y13@8O`av3M9T0{Y~v7?H%j}AXM%WhnGejr~x z4U9*#+RJsGy~Je(UZAp-FLP%pJv>}~qS`@LzC}J>riQM3=b2E(CkQ+Z(Py*JmrD37 za0B#=17{4}90f;{=$Qo&q;x?bluZwgBlo7L;>y2%n#TaC9`b7EaFwjQ#huv>W#zx9 zTfu?71mHIZfi4q)ON$sBLw@Hr;vm;i;+d@Kt0eCtu}vqqX0sqs3$EJ<#668*+NlyQ zq={`Y*sE>ZX>je*Jwatv3U|&TU27%JdV=;dzO3&fW@u9wA@!V>ZUP^9k zv@2B=XXbrE#Wxr8N9%{8hN4Axy-KPY1|~VAszx$^{`AfT7+eW(ei?pO0vU=!jCC&LRR=PU6h1NRJ%rm;UZ0hMfMd4Gc_D-B zX3muRDH6Rgb^mH0dbm7_aK89_knyj0kg23C@Nw!PS2Z<%vs$68qmuK|Kxk z-|7^JXA4^U!nHhyQgxABvtugCM`j&l*BgNxX~pXTbw&53B0o&goxS^n>+-b@E{KV2P;j-!~NHOYYw`6fqPl422CPOR7}$ z>A;L&ID=-;0nF}I-;j^Ij zXB$f7gLo1OEiGmZErs7lqpJ}tmuCmybZM>BAIP|HahoD74L;SPOu7{R&>o|zbi z8JIpB0ldo)>+dAs3#0TR`pG+Ufpkn#Ek9av|ky0#q-rTPKVF%`*6@GaQR(Kw%?0WOsS zbj9Hjg+~HlcvWL{XIDJ)WZZvE)EfaoaDAU6Vw&|L#j1YrT1jvLO!SRG2WjOXT|bHr0BJGIbm zS*5&ai4|iE?<{lA)bzqTE8i*AEIQ;hs?>OL{#dhneq^@N5$iQ}f zW;=g)x@LH1T%gvS;~u5x0@?i>tH z2zbiDQ-M(p56&{IUkWHJhIp2OXC?8Jf~Ov=s<3J_cRG{mcF;#ljMnH%oB0F;d;Gim}*+J?g;*(hWCepr<_+%;tITUufNid-ITfQqH4^~PK?nyj3S9BNABTMWd ztDe7BY5mJ|-oKFFUZnGE{>!x9VS_V#qk2;XLvK=y;LEm~R=shp*%vcdVU&7fd~v?W z-Z_KizHncJZ<(-JAJy0l%@y z(=7K@{d4zESr~}BM-||I-Hf%(AA>gh^H`qLmv^Juv#qbZZ~2FN{aH5}y-et<`Eluw z%k+Kqo^^J!gS|di7ky(1zdVUwUgp`-w>a+Jc7Da-RXj~McB>Xg$gvePT<~nfZt;rL zvzK}HF>jcWQAsi&JPqzaDcU$;hZFrL^g92Olq$0G9fazwI)0GN2-Br=4PR)Dvw0RA(EkefP{ zIf`$Z;XMPq7h%^sO3#$?S7-BA7Yw$3)y)62r+@okHUG33nTdlqYRH*lRp+SV&Q0*u zJn%)q&}cZkh9Kv7&jkHD@%eRU7w{{s{L1S7jgqV%T_A8F{C6IIdd;0ob~p8Ioa9AoF+g9Fp(G6GKZnvVb=+NK zH#xq4I=H-?`OWTc_I$DN^O^se^)HpDHGDVCVXV=C+m6{^MK*_(&09dgTLj=s!6TVM z2j1%_VB}~d;*L^6PR2Nd8U-$7>fuG309TSEc-!HiHH>^7Md8b_s;Or9nR4dd83Z7% zDbThR+P0BDD{Nphb?G3m?|xZxk5lEE)VFKzuRr8N!Dh1vpsupY;SP3=Q@28xqxj8E@VOPqTm}@HATcTTh-N+dP^vinbMXC zNRgRHEvlua>_Twe&W43tkNh`C$BbZ5oJ+C9n=$XmDyeDuE!-Ybv%@!1D`47ktxBtQ z6}YOk8h)ajpV*+S;9r*VFUM<>^ja;&=AAECP-ho;!HU)$oAz_ zcdSJUAwfL2(`h_J26DI;2H~H9)53;L#_=amv&*XL`K$yg_C<#3mn2xa%B{d zLv~fD&AyTj3BcR)fWJS&Zmu2uUH#V^+Si)6Zz1=s{9*GCMTy$f_nR@o(?hZOtSi$X z8nk8iH$iLXk}DZ@W9|GyOSEF6=Fny^Z4`^w3tFKn*DgP_$mY#KuE|Iw(iNL(s4c!S zmLx(pWHH2ybZbVt!~Azf&vs#-*aLeZMUM z{_a@l9S)MI{`I&ukGxOH}zV%KbQAc{G~Fz*U}pj(>qobYmdCXlnhowZ!Yv^ zL73f8d*WzjZ+5tt(z_xf*|YU81-*;#=J}(saR#wBqu17}i&A_^NQP^#{2I@GTLHcj zdsywCj;-Whgz=+FYK&huWa`%m{h@s=Nvz+1$-B|aFH?S5=?8mc?R&46^)>cOHf!H5 zv9E!B2j9u2zIy)I1pe9d*NokZ`KdVGJ<;FT*BJHTc8uNEgG?LS^G#2EQ@fgv+oUW+{x3L#(< zBk)^MN!^H>(RO{^7~WCFy(@acdvb1#xE1xoq#vgLP*ytAqV($o?u6 zH|si}q0y>TH}htW!GK*HMvPQMA*E+3Z)bj&^j&^bbl7dn?XaVXs!-Q>rk1#ynR_*H zH>q-6{mn7RDG{)??+Ie7njn3z+wfh5gVb##Hxp6H=9}?4CG&Qcd#ihk4zuyMk*cZA zd!_g^*9MC2 z#LGM&@IbWjPUf9a$e!!oJ~xxPa=|qn$*yZSL%rrer!Yv$c}0ek2lgH3QZxFz4#1cMR` z8mJz=NJC?OB2Si}?BAX&CeCuvS)p^53(gD{q`kJfUxsoZ`1+(2e6N$bmlA;nxBUg8 zz!N#-(e(Ro1R=<;*KfMOPW`KbT3IpZHQt>|06>{Ez)_C0|!cUV}AC5g38ctsxNdi;JF(BT;;KEqF>!S#Z zJD(gbRfT#tZ%c*lh2+RCIAlfBPLbC)V;Ihy%qE_#^rd9r<;0H_G!FLfrJg$Qw4gmt zyqJOv2_-#pb3Ex@YB;|PpS(zVx1hi)?lRgr0o-xSlZltVf3l1n4q@(D)Uz8eFY&fv z(6gSL8YiBsatQTrkSi*{A#~u%EP))Ir&{W7zG8x26K2rCI_zhE8ts{b9OC62@ZJP? zO`(TY052s-rWrhU!xCzpok!qRWWM+KNNwzr1s?J*{!hAr0!Gn&21-(f}$UilVZ&Fu33(%7{9c=qbT6ATxx34U=ECfo$}wqoO3p zzL4PB0rkZaUkFIlAox}hgAm-%Q5xp*wsGv>M0#+F+?~N5bQq3BvXceu6d0H!`WFYIDEop|2n}7|E9`YGZTD<6kQEx^${3P%zNISvk`VF1q8Q8-^q;Yl1lPm2_u7DRX^n!+<% zC_KAcffq+R%ng4b1FLYBG$1{7+Xs8_<|BLJ=_@Z>^w2?~keo%!;kiu6#K zgES5&p2e!tnC%JfDk;>N8(jX9WnJ51%2adX*ylko{O@aoIEG9(Y@7>8aIXz}1bcxt zPWVMNdB>ojJm#B@f{J_#r~&)Yg8bV8A&NVNW}y|!UkD~uJr&KaFf_sOQv)1YD6kDm zXzG`aR`QpqVT$}@eQV7&z@(eT~bFtwES$Q?l z+YOB!onoMs+4xHlPUp%%d1OEh)M%orZ+xiJ1c4F+!+{DCi#aaP0K97>do)`Hw4AAddP86@cIln22G9hQqKTjl2b(>l z@r$l9ZT3VhQkxX6#cLVbWK9Y*dQv=7wKx{}Z(b+%69TZ33Q!Ani9eNYfZ{WtrX3H10};iMw+TRPs;ONLovlHcH_irP)K8 zW*ypQOpVZHX){y#4V=89HkUtcu3BkpEV!=Vw8wtH}5C-}TCb_>^d*`@?%DW`^^x*YU4cvz``y zdKN#e=xs(6efVfGL{W=q4z7|wI{I?pm2`ypGa#8+1qP$o7&;6xRnm0q`{8z5)8m}i z@%JM`dUl2+O1)yw_TEsd+#B)!>N|P2W&WyFrA=3U3S&p}?8c@ycv~gEy^p_{^yRSO zk^PDMgAD$`*nXj3>`%dH_Pmi0)jzqfp|IcHukV)`K00_jiu9GDV;_ zY9uh#%r%M6WoL$dYMX2oA=H?E#~ePYPyf0q7pOPVe#`1)hJJ&U_j z9Ax!Eay<*L-0k6E`$lW$GFweVK8XXa40f2?2nAmvo~56f)QcR%u3vrl=88M2r}cKyxO)-z=EdBe zX|czwK7F(NH~QPuF|TFwlaAX73Ag9n4!J${_PCha>TN{8;kUM1KYm$%QSdow!YgWAF|k^ zR{!vBVtnGq#mny0(xItCNruoNlbK&E=#L*7|KZNrvHGFO{Izl2p*@>a+H83@fecNw zTbe`9?iospov~oT&^-R!{GP0Lro1zCC|w>(7z)Q`sb{y?-1AkbIsM&uoK3^Pw^Xqa zMHQMy{Dc#$08U4Xe4Ab0Jn3AXPPwx*?9S>tv#h>FzJ;o;dG5Jl;8!QW2SsqF8lS!s zNA3&*eg+X^^D=Tvw40jq2X-^t)tZh?&sQ7S3)%dLO}w)ZXK!=$xuDZbr-Zo15euVg zNb|~p^^itHW+JKg_XAVFL_TYi2U5nk?e4KaIe>^kxZZf}Y?OiY54ZRz7H(j`!9Ub@N zlqct@todo)*$DitaQI@DLvDVKJc%sk7o^!gECF~DOY_k5;L3FqkfAB)^5rL2!55iW z!@n3$zQ~4Wiy422fNWQq-y9kzNq=cQmDs)b4;8Xi6`Qq>f=fXLaxV+`8%R)^-~Vy= z^U?Q4dZz!o<=*&v(@X~UBJ}3drzLVP1Kc`r46I^4f(hRZTsn&?I7wv)i?k1 z_GaK3#s^Xf0M+Kcbhq^M*7vi0ZM%dp?gAYQ8w&ea|)z$gzrA5@! zgrFDIHjvI(HDpb5*J?UIg+Hi5cM7zd;ktpiboAC@2&}|HP25=YvOvouS{50gpj9Ac z`#@63nyq~)Xu*2!4;MPeiXAnQ8(I9C{p1xD^&WU7xJBR#ZZh|ehyEPs9}E3sh(E!h zTXUM;tS9j9Fo1V603OBgzMGB*a`jsVN^TidB%r7CRYMIWx1e_04++P$LALK!;@Yh+C52yTW81SDo1ZMLR5J#kJ?EDGHILN4%gQ-FWB z1+-GTp=FP+Lg0Tj|Bu)|GCNeu*5<`&<4{LC@#U*ZOQ&xIgwa@{BUTbl!eA89;a&fW zHQ-uFV<48fa)~QlkckAY#c1Q1e<}3v7!>;y?_BTXN{Xp`RC32 zi)c;a4;JtTmt+l3MEg6&-s+07IYY}GttkT`o%!!L4B8}{Cfc+~+GtTr(MD?t4zhMS>Dq;&)vnEvo^gQT zT|4vTC5WF*;hu$}6@sWKHb~;u=5c?i?srRAR{?mCLa(hQSGKCs+WPKTNTeYUk6lDn zac$!tB(MspLEx&=wHr9!0w<^2)7Nh94(}0EZ8?k3Cd`VCGR4R7bF=w5yH(USX@%M* zX4Y%#f~VI<@V{>5ZHZ$I+KPx_{~t|X9uUQm{r{@EdwO~QOj>V^>qYjG^&3#xAhn+PJuI-`ZF1d zZtJb_icc=gcH)p6C6tM!U`>kqs2uAFL7 zFjxCm_xxw9V|aC+>f!iwLG>{FC0N#O{m(nu_;NUjdfL6fmJPNA#2-8GzsnQAF^CSJ zPE9AHtcj)n$smR40?!vN6ONlGC_b^lmnYTslWJpY*J||U+9jT>Vr)qQD@dyCY^)t$ zYpG3ft6g0iRXe~!Vuz8-TN0$$k+3%uF0X*Sqv7&Aa(N2u9k2SrT~^@obPFFF4tvL< zP??MpZ7Pt^4i=DZ5l$q77VpHGd_IIyMt%KUlibw3Cy@Qx*!|w^T z*|oF$JZgh$!^DtUeeGn?RL9jWstu8a*x0>8fv5gHdW|hiHpFhe93ya~D>xfFbfC<~ru;HbI1(i7=+B=_N78qaZ=8;a0^juGe9yo9NfL zDY$W1V|3$c8p0ZK-ekK6AeK(#2Y5YCW7iX`S#^npb7dMAUa5m;n-qQAtnarusK>p{ z_tyE`%f1&=8(Q1--aPz$NzJHx3j0UQ!*oYjdnR`;I%Md*ZL$!z?x<0tE=!s~kL0ee zi6UxPC|~dscyJJ;F_{&FE5^8#nlXJ_2s^QWotSqotHt|X*0Aw)J=qPfU%j#Rf}{F- zi|)<4H}O%wM}zNAyzf3pxHkdoE3cVOhG5@0w6yxcy(x-++yPcF>h7q!bJ$lSydRo+ zp$^S>5T}2TXkTWZr*jJl^r8=gANoIZ*RhY1*+<#f^cQ!+9+C&im-=6trv2A~e}z9J zqMm;ckDR+!GsqFick%PK$J@hu`OCVvTdW`wY7(HWEA<0*Bu706dL$Lv2BRbsknt_# zgA~~mcmIPNs^@h?4?OnQ2nGny=5OKzQ9U&RvS-|bMn7<;8Z55k-FOXgCm;2O_Xlv8 zfl2_Nr=`=OG>S;H6LSCGtYCz$BHBXY4dh<9%*C7TMZ%L2gj0<1UiYT9B|ICgdp7mi z;AdmRXVK4Qvv+5)cNadJi21wH`vYV?KJ1i1%qS<%B$53h;P| z2<-+++a(JZKOI;>G!LxAjLa!<$Ks1lPgC6Dm;4aImB*C1|El~N#S6^v+Ry(tkA8=i z9U6v&ZX{2qBB7hD>-Yj60RbqF-AwpINAu#KI;)RH-K^_yTjT`U9G~~sRMq=Ubz#-1`<)_MD@J1CtxFJd@ESCAWPN-N zE0_=E8Kg)jz9W<3<=mcG=Da|9t}7|gLf-I>Lsao+$>*D8UHrMv*Fx0*V0VUMk|8h8 z49+Adng?vZCt)A^aA!O*^HqAjCwBVVimr-2{zgS-7qDH4Y}Z*i$jZ|MGRR#16%< zL(@8Us-9Op*r{`*SBJBI#=jnbN;H9fokM)#X$(AFXps^mvfC5j>ugL3n6_fdCGhn& z3SXyl@O2zQLBx0o0hhCCm$GkSpARs5*G{dC7GzCAkIN}gyO`9*K-)61FBZ(0um9yF zp>}5N9L@9L`TcfV(5+e2|V)oIOGc^v?J%)mg_Ci9&{5pk}4j`Y-R>}CZko@KNA6xNdZC|2|_ z(iZMsvgytE50dH>K^78D9PP@Xz!I(9d82Gd_@HJD@dN|!*RhQrL_DdZFXx3efH(H$ z^#3|*b^tA3M9armxP(jO&M>r11_60LRTdMzeLn$2RWhiqJ{&Jg30Ln7RL@MS9;ciJ zv8F`K$k*y0$5}|iU26==Eq8L~Fveq#U*76E088WV|X zZ0nGQX0|=eSQaOJxCoB)!g_uuAI9R(e|#7(=1tT9%|jD2;my5hqIzOm=YVx4vCbf> zLpB1QMCtc2e8na>ve_afdXk69XlxfG0sM>>_|F>&JhtG3UkUJ0CVpQ5q}?b>iQRta z4r~^jn@bShu?YAr7=D`!?D`bQEA+CE#J;3>itLs+u*{wRG#Rc;BPC;@XgIvn4bJ$H z!%JXS5FCgiWfQ@c#T}F3%2X&BEtAB_l{o$rQGchq1J*K)d>$uj5~p9zhT5g{UK-S= z5cX+Lc(6!uOPtRNvf1Sk?DBB-*M&Ef|8@UgkGzs4d5)Q`zOF&}@f=q*6w9tJo<=~h znpK}i-WDWl6F2=eLp9@g?7zC-_UBGs;<`6uu)$1nk;uBl?A@K9dKOO08>_*V1gv>3 zVYk;p?Mlr2(2V&C$>m(dlvs3ybNXiL2&TLF?Om~sH z!~^8cB;;x7Xae^q0G#pyxIZ4#I3V}OU~3hJ z9Y!dTc$R!(kj2DH#nXv(4B;dc=e$OJf1ZiwKb=n1bCDW##}Y(ZfY#v_uqNRE0+7%E zGpdfoM5NY4?CAH*9)+{20ew^U) z(Ykt2S0_hb$1nqPOp=8p&)uCVN7dQD$)+Unq6RcLvK%RBUO6RHgN`)bkqbNyU^C}P z1cOYI_&3A!hc_s?q#k>tYva}9DQcw4e+=FgR@C$LOvbVlW75DY8p;c`8*3A5(`^y# z{<`7`|J#bPT}&FkKLa@4wi0Y>wZ#jFHA#b=F(pmB?u#@yy9>_Fsz(jlj~qZ@4t|>d zG}2`*NoFNmG(~GQ74s}4X#>2UZsC$*Xw4>onm9~}7BOip+=&EoX9|Hkh;8pgVVZ_% zDj|&_ij)+8!o<#aurr=*-LI@-AA~=d^kiz@WW^&XO% z0?udDf=Pe*C577;O7^cnUL89tRIaXE$M$BiAGUJrr!@A{w#rxu-@s>OXh(5Ij`Ao} zlFptJI=moJsq+T3YTUs~CP`nOAEy|SuAUckSebk6xjS-4l(l7t%^D5X^V8vdn*!$(2ms4Jaz3L@ZTdFsRqM}dcc6Y0e zsb0%huQD~PMlL0C)thCK9I$t#%q9C=@kZUQlf`6r=G+3ujl{kd-kU+}%gJ6H{i2_R zBnKg)Mw2_a%atH-gW61}1MGNhF6b0va@gKgwaIn*+7v@5+`=bEk?R2ju7?6# z4*_z$t1Kle*MqRF*P-y*8|vo+I~@yk{Yd>7Fk%}^$pKE*CNF2!2w>Ifk`Qx6kmqsG zsP2uk%VCN+d41);$_)0tyETEGiGLTRWkM4?*lJtXm_fzoY0p!i$08GQj`l)bAz*vy zHCd=7MB?a99KATzH(OL^QgX(xig;)!w&@@>$=I)=qdg7QFixHPDhcI{VZ=V9BNUQ7 zjM|3?pgJZd7r*KXpQh+Pn@CtU(~-O> zy1dDJo>_KJKHb<`m6WKjY^zWns^^dw6X#@bj-i5j!bd%q6Ga4p!xql|r-$cXg1AEi zIHtbpTdX95eUttw^i`i%eMS0npVxux%I3Qpknnrte3YU~ZrvT)Mz76t4lY>r8;{S} z&yj48<>7LqkB3NE&zFEA8P8Vi^Fn(XdrfWw1CavUs%_ic0j;xd6YT@+_VYaMm5jSvS>{Y$gYPOayYy zUDj=zUe>)M?1+FGir1*;=T#T%WTa#1`Pum05vYbR+!n>G6DY^+A*5&#*~RIc2Bc^$ z+1&>_vuW=-RY1lGC4E&V>_|;nj5->&ZMhOcInn7uIL>JThX-+la%$9~ZR?qJqEMa& z<>_2`ns{)9cE@~0+U7hx^C!EFFISa+isGJAppCF0$l8ZsT(Go zkQaMk>PpD&fmqp{D}Cw+SDRd$$r_`WZDwtHZ5pQd+FV)(SYg|ho(P_teHHI*FRl-) zS9ng#)h`j;G+h1s`bCn-vwpUbGFQ&O2gsTf>F{v%__V<5QGp7wTZ*=FB&t=BI@Mig zCr>*jA$53l9JW`{nIMxC@vWPMq;w@m2gy=O_oD;UgMyjFnyAA`sm4Ms=)$3vObNLq z5Ir^U4u7IX`ZKEQ$AoII4#7Sgp&^&jmsz7sJBIOW6V?|=8iy)U%8U~}?B;^^y6zbK z{k-pIv2#71M1Spr?JW2(72k7S1U8nZrNFV_lm()`lTsGmTdTS_5F=-ei`w(3AowUQB3NA6ZB#s+dUa8+cm^4$PgrET%XvhJhm(dr6%-{LR^o z?DUsuN-?uXa|IH1Y(Kpv$@-Ktwl!qWNUn6Hu#@tC52i(kT6%XJ(dLLPR5qp@YaBsr zF`QF%fwT=LZGvzznmV#*#aL461sD`lNpekDZm`*sVxA3VVl#L=#HVo5nPf`(K(Wi3s zTqm3iz68z%;DlHXa2{dw`4yOA2%KNVk@KtZ`!f8#)WW42;J>Q~d5tDGv&P6YHLM~M zL|K#C?fhEM6Gu1V@Dm(570#q~f4hMcZQ+X+TS)34aURQJDpi+8S9*egC+Q6m)~O2+}qi z+9pB(NkF#0+XSGBl=?BVu4NZ|+ajg5sclhu4TtRf`~Q;QOLvPV^#b`Y3*f^H0v~3I za4JX-r?H(gJuJG^f55#>2+$*WavvwvLsTG-Py;>8MdN2J2S4Codg4aOlX*zY*El)c zdH79r3C@=V{Le#{QtzIbr$#c`(VaZWAkNT^^V&9lG_-*I5P@85C+C8(Lr*HEA(hXr zjH;7tbKc2mn_O%vh-c@Aus1nK>6_vh-a1m&rT%s{2>v{iiG0x50ufY;6t#cqA8+SN zwqT2pW*}wb0M7NqghKIL57Z^yWIoNSY^>JSMLi>k|9GD3ZM3VWuLYS)>%>YuQ6PQ7 zDeh@KD&{mqH&|Q~HB>UX2DpX`u5i~J*96x{*HqVVSx6gEF&jjkeVq8ZKgNkuq0haBWk?O90L8ggZf zOw!h|QeQ=vw&BWTPHf_Av2_N%&a=)##5&TiFN7bu!4I9Gek*w}3m!~|`jzl)Ao;cj z=&=SXxjql+avbQ6rkq3#1n@um^_e2it6oYbnWh!K_U1Xvx`!O-iZvcOJb}}2s*JTw zp|*({Yl>*GFr%NVg`pr{pFLRz|CgG2ov4`@Mkl6Hq#6QN`# zVV~iEnoNwKvCy;@awiE#a6CSLcqbMu@`qzksXQEugIAaK?6~n^S_CQK3jwBqk6!TND*J&7WcX z(=~5rTS&SmxwjPy_?-$ie6FJAXBtZ(nB6~xRPSdp5&2$IY-+zaYY+s zA-(rUJ=B`a&XvS!mQCrs9%;G!(QwHFF1h18b*Z6q%4fq@qo8a7DOwLqOD;_UJDL*d z6G`z(q+rt7U`0xwd~N_&wSq^ZJeqQfZ~E->DK6O+!Eusnf`(`3&BbfjwNzJs>Kerf zT*IRO#{V}}s!m5z)?b_e)#+H@MsjhY%%^YNJ=sta$%A@qF@5vJa306upH~|=`%~-` z&k2qk>|+AU+h8aW$j;t$myzz`!5L`b(w(Go0fEC2Kn_n3Myrt)B2*{p;T#T*jBTH|)50$5B2RaMaJmbqagy|C4AG42A4dp# zb=ZCpxgg3yM#b(33ZNeFRlR*P$}UEM8dArp<(^fx)A(CDoD)~Xc`SoV>Ek4 z(r?#;BL*rn$aS>yWPQfB|IO7EdTEY$lfo`g*p)9^#TWG>iy?o7Vb^BOu^4<8*O@b3 zu&vXBg=C_p7%6KqH5D6lAlf5{dic*M8#DO}Mxcms`Hp225hP+pS?DkjGj)^sO#P1$ zP(D&D57n`midSa0i*q~qi8T_t)SX@G$3D(#Udz{Xt_iI1t?}_TXx#MzmKk|*IlS&d zUdz1GOL5Pf^!wJ>7hQFA{ptc~UC+886#kv+I@bl(1?Y8p%pSc@OC-s*PD5oebJ3M0 zTIXoOgP-bDNAbO7&i`?$;o^A3n7M_OqRo&{AIIM7e!UMTQmH1qW^RMjz+=ZUS!plL z9~RPtEE`Fh#z9l4B4s)&w=|7un#A!<6PgBdI5CWwyAIDoc*P4qtvO)R>(yAwlycT2 z(KZf>2UAHlWbUqvLuE>F;JAsM#KKjS3OsQqI$n~w%=dnr4u{O9{U+q(C84bv%j6_)0S+PPj`8L+f{lcp)Ip*73U#RnadIy7eNrT z6GfLLHLf=MwQUsJHt4(ks~2;1muZ$a+iu}5&r_tV0A^oYJyrK)B$}bjXVnH}y)zwj|VQQ%BNa{?K{j(7ok>uCUG zGXVZTL3nPQtjls#Y|`4J)DUZ;Ekyu*htDi1`y)%&<3IsoM)>M(bBzdKSo zY&k~~??~1-$72RSwV`euArta{Tt*LpSk}k*ag=niE3nnPtv@N!N*_ld8@?ik7b6=g z^Sa{ajib?6;9_May+54R&nBO*gwHMT`7-kPQta8a?iL}-Me5xF>P-OuU50<%fE*8! zwOI`(hR}|nda5N!cs_rytjW4lZ#JFoM&92{iWZ>2El9?fc=zpMk8+&0Sue;({qU{5 zZ10-4bw_-eRHk(XFfF?>Jug2;=CgixWI`TW1?;pNROTun*-$pSYE9K|!FgQBG?FUiDG~GeIbn-Q!J+g=CK>7h^HY#NCUbraRPh25-b9HJzZQAJhz{ zyrRpV`F8oQOFiob)QuM1&2_`-y2PZ6h_P;+7b3W@*7Lfh`BLf-O>{Ml}q9 zAO~bGy0Vf}W0wVRJc1mz4mIVbb4GL^WHqq5fOTj<4K>AaUaI}TsUbm}yv%1WdE-g< z&+kKxWwR71d;j6(O>=HfzrC!<(zLE=dDGB0y%lrz@hbP8wWDi2LoUu`@8*h4vy4p^ z6UX*@vHgBJS(AOPG8dZqK~n@YDcG~7b=YGZ2r;rQ`{LpCC}z|>8Wnya5lv%A(;R5p zh*@ruDxEB5f6tt;@Y`(oV+jfp*60W9)MWU0mSV`h{bStcaV-=ZQrA z=ja+}=?g7W39B0qAI{^y>!Y~mh_7d|!wa=;53@Xd+;tBV+#asddAMo)WFg1DzB4@B z1`lK5;b!$fX-+Vy_m!obuJvBvp+0#8I4e&NCCA-xoVFz?opbs%#i?^~X&f40tz(+JO2Kig2S?!{E@MdT+bpKRk^OvB=~$MIO&P9ATS zH95}5s+-}<#qe?oeB2+{5jVwNQqE9G?%(@~MWM)j3D+@4O#h7wyO zwa=1C?x^#@$elxM#~8ju7CScjMI4NwFc2&>cRab00OSQCpWN{JP-u~%EnacUo%(_@ z#|rj-@6RRf>FS@ej*L9G_+@7P0`}Jkp8Yq(x>%NS7o7{I_PO|)5$b`<0O5DyL`wD+g%lc`V>iuCL!7q3UjkMB9I5ifE;qyL80_WaD!;;&ug1O_*D|$bJV(X5Lmp;WgxsIV@je7jOcmgy z7lD)B04E~x=bxbo6;~7Dp5|OaTHJVYA183`f8m8m(dE8<*RFxoNy+WC#HxjdS!($8f%JGFRLI;9qre(SY!SphSLU~OVWngF zjsQOv-S#o$g)hKP9^k@I{EK+)5>H|GMu1D$g-fW;c5mRxl?++jK6hU*XG5chpwYsa z%hcc(tU)$ljf!I^sRItVfZn9x}+1W6#2B-(r)hit|)=m-*Z4HmA+ZKgH z9%9ZE@mxRCet&o`jJJotyJ%`|zf8(vWV-#kvXy8jN!zcUn}>Ds>S1`QLrLNeC`Gnk zd!4N4x7S|D-Z#A}vnnUpT$P}$T32O3^|JkbnT2Y=Q?xBX$m@%9&(v}HObY_}>+ zWG%}*oPnBEJvxX6sMZ>*#sg*fRbA9GW2k030#b>E%aBbtlUWukog^4^9%^tfqVMpVQsehYM2A(p&r0X{|Ql9w<46!fik+0eF4?1US3 z`q@rzb-#ZNFy=w;_5*f!Bb1Ft-I|Dnf1_8mvYGw&a5gwMz?buhV;LzPOK=R7%tC#k z{)h%#J|$N|z_ER=a_)f*x3U z@TE>7t(i`_nu#?NY9?Z~vE-@&>z{gH31^!j8}cSxHGxxA9Rl#2#8 z&qoo0y)1HS)B&ckZj$wR)=yXR8cysm9Mpr@MQNOEX-8Z#l4oamgB9<*1H~DYS(T}k zEB$qq*_Fwa*{pFTE6&u>Uo&3&R$BD<(?;H?81nvFoL)tZohr9U_}f3m{bP7#s)sD( zT{=6E1gcxtXC?{OEs8#`iaFPOK9yZ`H=4w%Wqj3E_GShJ3|f`w z`C>S`IL2jm=>>gNiek!pdM??Q@5IW-vepq*o2s&_;ynU1JacLl_q_j{TODd-yHZL= zFq?%PN@0f*sw{dpt<=3L%D&*vIGM}WzZnj!2<6~ z_Kh;l?{Z;2@m6&C-7iE3Yx=s@yP`c^YpY?5O!5a@Sg08D2kq>ucMWun;IytquFZyT zbN0=u$bBbulUy@h8Lmuh zDs>MB-m)ft!G(xG$3Wzd7DBmEvXH-!l`hwPJsVDJpk)Et0|pDp&m?WE%jeWYD*31xV=GDa4q}MERhC2P4#y5r6 zY{otu-a{3A{(HMKY9?yC=xQuAVLrN=)$G%OGM|6u(kS&Lvz9qlDW3UX?apFVBY#fv zL!p;q=5Kq~%^5hzziwgOjJo;kyZ*124v@9^)mMj;+DX7p_E0TwZ|Dspz&RINXuLY9 zF1v2DPu=W3b?XL)yLl<*{PwH9Lf!1!<{=}WtbAg*ZPZGpx;1s%>Q;5dp8b2@K;B;n zhEN2l+Wh}q^#GJvFrCbWaYW(+Wl|up(iMuKK)TwuZmrSe+odkLN9d4AkNeBI0w1=0 z1hHk(ACut4D$X$uc1ffr8`!=K;z***=BxM=^trM6Zrt6dUxxlNrcc9|hDD)+8p0c5 zhqOwqp~1Zy;@sKaH7%=6im_nQ4aI$6KYX}~*^*i7R(6cu=wli&Sn)5Ib7Q?_Vtr)& zAXilNu$BaNGV;a*u3;FvxTS3f4eZj8$*R_{sFM%a9DSDe7a;nm`n@u4lFg=*2vm|>>J}CLR2&oM8Rz097scCp&<9?Sx`7$ z{CJ&oNxca{aVyyUy7TvOqnomumU%R7ZCci}x@pqr3EitESH&T7KByXH7X0+Wow0Yu zb@%Gmv>Y2aTQ!J;D*A#ij_8{rjX_Nd*_pJD`m@Gxb5oR2<_oSI5#UxB+(NS}9;>*1 zga*1bt@Cvs8r(FyDX}TDDMgkFZdZk)zHMCut@G)nvGl8C_}W4ep$uhTK|85Mp;qwh zXeL3GR`Bu$j*NmQx747`5~pq}_QMHbL<(NlLh!E}ew{Ez@bS>Mq_<3xsg>T!hOav* zK30LT&FsR`@3j@PJo%^zo`U$=%<3#H87;Y*mQAKs_tyTJ)?u>78hC3xngSXeX_3&{ zRgtVAN7Gs&TI5#UsL)~ldJD1kB}bEGowfh1Ea;+MZAV&Xz=@6ASL^6&U(&J|o{U!9 ztP|@ac-KI7cJ`wnUxV&ZAB~Y!cpM3=3J6m4R;7N%vysnc_BZykN7%dY!4&iG=L z%j=iGqY>m$f9Q!;ma0ob)vaoaXx%`Lj{-P89-v;vv>d;W!@u(Y;Q>xOYtD&fvSdxD zS5WcWhhuRq;(^YHnY8#Y=|!62Vcp*3(Vvb$o36WiyVUO0xh=JAjV;$6D29w}?Y69Z7*@${tA zJ%nJKRo2&!dc0itoc>FqBKyn06Eocfjkss5EZQ_5jX~&+YEBRZ=7Y0eZ{r_@stXnP z>lev%=X9Y|BD;`ul0O9U`^&`U#Y)C2Mq5xD^)zt#a{kbgkdnc^+Fhnyk~h}ax4k#K zng%ap;j{7N^kT?!Q=Q0dLrHs2nc7C45j7xdZNuC9(mc)oUDd!7J!P}->7N6Nk}~s?PH-()jRa$h0sBC~mIJm(RXd9B#B$#Zka^qO3#$=jIR;Y>vrm6I9^AeD zra)m1ID$IvFtUfKC%E2ONs2aLwOh&A2w7uGDA9@5P3m)#Z5h$Z23y?ODe7{3yo%U) zsot^j}R^^tSQ~XCs7rOjjF0xs(u#UCr*s{TuO{1rt5bkST&!Nm*Rj{Cb&gl>yTLaqX$<&2U$D{y z3$asjAVtyJ`5PNMHDnvPyU>u-u#ESRWMcO`5HIugPDeU%dI5)pth2jU#e%QK55k}q z715eNXbnTLl2B5$LGEM^t5Tq8D>SR2)(j9p2I9~)LRV-?faXBb><7(3_@ucjH2bT6 zy`fok4EI5vX%t`kjAPpGXH={-drM+#aBHW>nU6Q2{PD-{p<zu9*KSwt=vsi838?H$9q*|}mUairs^IN;Lc78I$VZ_;P&t}`F z;4@ag;mJHJJX$4Pr`IKYAa<~b*;hdsLeI|@l1F2)fpStGCv*0L$0wBE+ z`S%NLpTf?BT}$P(0qp_E$!|}@L3(*oggHVj zT%nmf>Pz6!03aVtz&t*W2I46Cn-BagnB)&t*JBj#!r;^TmnknZIqqdn-W=h>{vQs> zo1eEJZ)V=)L!%G$nlk>?;#Z3h&K6EAG|PP9@H1f)$Y`Nri>xgi_C$3P;y4xq{X3#B zort&4!fa>zc?!*#9M>q!cmPj1tg-dEtF&0L(>A@DnmCiBEBZbl2$rRXc)H;@1 zq{40FLN>t8Q3Q65qwuAO-^T)cDPThR_$8pRI~pq}+~Y&FgyYo!{E~qRwlvwhF#k(l zaQM(5La86|B3+43$BH)&eopGJ_PnUn5&76laDprp7BFinJuus=WFvP_V>}dQA%$nj zPeHP-@bjz7I*xa!e!Yec_p1k+;6a>4TlfvxHlJ~X-HKJg|!E=3=Qj?a@8QAA%|qFd|gSqBVt^X+W-EVPkEU*y0g+$3vu)#^%=6pG5GjYt{@tDDiV!Gklh>u8i=~+P3+wWr|wOu zcO;^LXI(>8Nlj4)aE|c*`EYwW2}go0l4A~OnFi1_51?f-z;8YTPE7)M&GpoO%sV!nHedtHtln+p*x07}m#fQMc@ZSfta>jZ zy{W%%LUPl|lU4FiN9L2Y`13Em;4%^%u=hv9cb!RVG<-7zr)4tim&krCuS(&D1?LpxL(5I7;pkniA%oN17=LNDfG_P|E~08vHNLn*gJpguO^a~= zygJ#7AQ=VSRU&@r1bLD0%Q*6DB;?Hnc5#%2I4LRD%Dzr*InLCSj!@fb*g-Q9J0cSa zU{uep8;O>xxA_3CMmRfzvi|Cw)#n!(yVX;JV zP%FDR(+~P$t=?KSUV?2P4nz}n$Qn(pGYREh{pJZTvnMNeS z>Lz0vh1tHSo!mOLb(vdhTx*uGbwz6oGVdS90*DcHzYbY#;{9Ze^K$KMgq7Y}_3#9a zTIaV7ZrF)hQae>KI&U8fYF(hwd=@Yn#4l875T%7DiR{E7%UzCad=_!BwM zJ`v0+R~6qP-HFWhNYsyA+gG$lw@+;!t2Njs*ay0`Pj8RFe^<4yZeP~ExP9~o!%-y2 zTv6D`-V{fI>{isR$pY3z;NJme{E&fx>e45wV>Kp|S$(-h{oeX1`l3-M`#fDIczSpq ziQM1kdHC~L7j&{%G^NcGeszZ*45~xq^HK18Bxo(PXa@Od43JaPu-u#n-OSVtrHzz$g8#UgTMESwpkNJVQOjefE5#RljUdVv#)9#cRq*dZ1^@v_kPWy1xFNt&npCWncg~b8^QVvKz``u{a ziguAFfdFUv5%OfcOo~T1^|GmG-J35^TV`iVjtbUiu-&jNkOVgulc0EuQilfi0hU@*H zHW|t&y*|aFEnY@0ZACqkMquAs)HMMFZlch<>5nOp5SLDtiZ>k@3eGuDkN^eoLO}$- zBNDzG1)NwqT;_{2ztj^)1a*30cg5nkruhGVtLPfA1|egl;sSCr2y5$1;b3QMA&|h4 z;Q&X55vZLH(9j7;gOAJ=?>xQ&o^@A4eiZL%S;KMGp#9y8r?5+Xic(nRWL7!FLW+-& zoinhN5BBs&(ekH&;nXmLeDTpQjX3Qc5jtllWa85)U6{UfHfN6&04sW1(z}v zskotb5k0qs{bg$FqSlSAF|DgT5_H86$g#d~tQXWSfMa1$y9{aCRtM=Js763PlR1*peMWHP$cr++VwlpAL zz#c}gFXswP_|*~7aUGX42s2RXoTNrhE6Mo9BJMU>gpyKnvj@KA-k3r#^}z@60J!Uc|G`}^@Wgkc zK3Dw+@rfVi6z&EnhLZms8Q0ub=WcGE+q_Y$6FE+%rIO1GTE(x_=<;mvVxP z#s7*g=9|})3f3(67a9x*Arz0&#U}^;i*oK>#;4n!ZZUa2O`=azo@PGH_pUs~{J;)}H} zVqPwNx#Y!qW}rW7e>VQC#om>-%kaxg_yxhjH24MOphYO%P1+HY{SZ!|eFB9iU4cFc zl1b^2GboBnk3QMVaTE7N@6GP{o9A`UiZpgUP&Sl)c5r}L>@O6>OP8jCH4$v82(_z5 zE@MuRj%PHqTho>HjAgS~dX5T2B@fH}s$Lslu?y!HnP@KwNpRE7D+oCCL zC6{v4DS@bxmFWPkd1LYfa?Ka{@Z?&M8V3p3j%AqQaDMsV-<66~`s!L|H{SDh$nEaj zZFM22^pAss;jXE}=SK^7yOO(|K(c7cBse$-h1?Jkj!ZxyCu16qX`+ReiR9*Z3O8j7 zUuFas3LIB33fRs(sm)NNvQD)r=N6n>*qWd<8uYEPvazhkv51Zn!IUqEg3Hzs=G-Xj%3_&wb9cKz%qtuRM;56;PTAkbQ})*$gdL1PFuRR#imB}MsYR?W zn{`d7$arTGJGNo}H1=h`yxo(_`W3kC>5jOe>;n1kX4zc!52w$c;YCFhM~Ih&e&UZ7U4D@2dyTvUMD?Wn z#7|j@RDR|q{ChdA;wsa4p^EUbQ2s@Uht}qSQ&)}CYAFBe3)RO-6jZkYeBas~iLfIZ z3IjW^9WB4`+hlEt(L%}_$d|#`Z1c{QYCL1X9)T~b@yi}qMi1(xc?R|R-SQ{jxPiMx zQ~odVjSz+8z3vGl{x_t5;(r!(BbOYf#*F_}rX+S8p?L%|m&2P4l4UzJg9K8f0!q zXq^UH6X5kC3)#_&)FFD=(Wj0cm~gpYYof7rGvB(YaKmFai+0B_(lCZVQ!a8G5l>4N zg%*@U4^}rOl&6cFu>L^X8gIBKLP>{Sn9A3b*h(^5NJ#4vx(sa7@88*COs< zq)t!NOBzU>mV-JSg@%a)8f1iV<1KVYF);fU0)NcHYATK=!(+3e-?6uu6KVTwbs)CS zv8PL4%xL;;*y2GEL==mDDbrKbj*jlX_3}V6K}`;L8{Er0=SC z$rtulT^)#H5vRp$e|t0?DkGqBI?3-#-kSjj1z;lq%{5>%pd{Y?=wNNxaN*cS~+awd|Hfa1ZqJFu32I&#p{n zS7zUyENd$a*T$%Ktg=(oNHl|sflQA%(yZ2ZlAjv!ABM=HnTFU)s}=DZJGs5Q*pFu75|D9 z*C5v#b|$2GmV5IsP4f&>aI?bBF1SM+O5=F;@zmy3TKDTQ*O!~!dYJ!{CXl9de^dtH+}6553>xzD8>- zTvHfl5(11v?{~f*`1z*K(~)I&>ijzbEY`)7y4BDLLLdlqimu`zD+^$CBKy$epSe13 z<9&hEX}?IomVb0j0LN%(&4t!jxHKFa`h~Ev&Wc;b>woiKE`A*Tc)ZZ<@nYtRc$(_& zG05jkC$@9GEbKHN&*gbqFcAtSfKfK?)HFn(PM@gWg$rFVc~c#VK`&z9$H-)-_}X3Z z-r2b!I)py%>f`pfTVUbRrsa=m>$KJ^{_!-ntM|vk;{b1V(!*+$#hpWrr@`ZiD8U}j zBagd7811E)cTQw^^9v>&$owqopto(xwduBubD`&g+tK_$QS*;nAxdHS0xQ;pU=J>+B)EGUe4fC?jIzw zvgPe7Pj{2)&iD^|LVK)Y*!llj`p&?rj$`4OJ>_9j@qz zjsPKK@Lt_3frP9pBqUTZ22*5^&+{{KYsp6jK$os|o_=&B))6 z-7~v8JG(o(J3F)IoZW*>kp)(H!S*=0_qDidQ?dtT$3_1lMph|KTj85`!`|&D3xgjo z|6yd|oRVYN#(RAOYs0DPr|)XS@=)-mz^`Y+NAn=c*}br+dP;4-+P(o=ZCGviv*VX% zU4Gqct{(rhB@Z37@g}d`8)fP3N%aOht%cXCXUea}%C9Cpv_7=dMvB_uwIgGxTL1ap zMp}Kf!e8DsnY}UCAA5@ahFT~i;!DZ`TOWbtDzM2lJ419I$qow?z9yR^iP-D)|_7a?(WQOQQRYbW$Nz>7N@;v^o?HrAgjNZKg=KDx4Tbdioc4#IzkM+XqxmK;KPn< zMnLoGuD_*BMYHkoLcqr)av#%z)Uky$^?3x(2E4J6%HLQMz_Qh_6fJu)o7U{}bH!Ux zSTLgNL-flrczS_>MN4HqNwT8t_;j!{sAy-+sMf8yaXC?nXq(wKqis&x>@lj+cCc;F zpT<+ukIBqlAg>;EDMfE!%{o#$HUmBzXJ}`SAwVAf>lEIH zpe`%hXsXD7f1W@vY(-v~V~WU27kSGfbFHZL2#&CgSrFkF828p*9h}y)x#c~-NmjmD zW8(|0skVlGwz!>dfsh~UC$|&--xSaYuj=aq+Ml+{^EUZiPx)PUp~$L?(;HoQ_9|Z3 zXjsoy%j|G?Fq1Og8wB_G2DW=cm1n(4WMpL!*01o}U50Y@(<_?QlfVpTspXl)v3cs@Hs4>iPoS?L#UUEq&Ds$jwvm{wBj-+&eEq z&9Rw111O`3-`<+N`xFI!+TaU0`;YfhRK8jvY=UPn%9U&ukdBzyPwl$O&+MJedNV1C zs-6vou`1c=b4;U%@N75m;P(#jJbg3r`yU*Ae_G13rnuyuolYU7Xqj zf9ng`J>i?>yg;w&qId1v10pM(|Gg02jntaoG>vvC#b09ia55m50ahhb4Zf~&L6#k| zg5mZ^XF%~^FYI{S`(*0FWuAp~>va-G18SqR+L+p*wF3-C@%`$B;GU@drWX_)<}(ro zP{p(MLD!WAYL;2??jbfcez}q_Wt=S(KH~>Z#fww(1z7>b_wH{|^3;H{V*-kTTv(#x zrA>yZ#Byni;#t^rX|#oObIrgK^R4lQR$}`$RqeVefsA`+P)V<*Ino#VL_AR*XDGiD zzwNG2rG|N-?nvDMQ{8@-wPZNn--h_ZUV!V%0h*=)+=vqJh^*VDX^1!a13Zcsc!NY? z$+VhyzHrU*#USOP-4G=!Z!W`A^9^gsl*dl^?`iOUI98nK(#)h4w`;#m(|#69RbGQv zf(%Q^`n&=7z7B7N0O_AMmSbKze7eM1NwdY!OLl%f40F~pM=)nDpHW+~u6-|_HXJ1Z zN=_mXIf7pwciKzRZ>})k*>q>Au-kN#rr+5_gtMib3V&DNlOga)EZiGTli^+rJ=JHC z#DS7;(;m)yI4djTWAn!*pYU9<~afVWIqk4I07N0{9Typhp3}2JO z_sfWPmSW`!_+uIhAJjCvkXn!cS+?c1>xba7WzV zLyWHT4b?zgR7JsJbSD_LlDkc-p?Cqh$75!K*|!$op9$G2R7VQAM!Y`{Pp4A_88W4y)W%jHQ`yWdp4kFrLgGC868cA{amkGv&ni=`0H9e5`u)! z$vym2rY&0-+PS_RLOHqJ>Pc10_``a~x#@SNThu2J^5W#*&dKbpT%9Z5iqKSQ@VO*$ zH<5~3QoUAb90~OZb?I1l4C)T^50nUgB2HMz_`_jCKey$^VBQ-AWhu;t7%FJZE6EE%a*p4! zfofoBfXv?Q!qRSdYmuRs_PDekJ!|=!7a?>LMfAN5e3_ydvsu1pn+;JKA@e7S{63Uv zINq6QD5WE-UAlXT$-U69m5#VG@23|S+@tD8+xe!8caFjPgW>(*R9d3UpF|laWA%EX zH1oY9yfs&9+?{})=Yn-VxF7ys--q1AA zAMGFDK1vjdeX;ybvvh4u2p*o5y~+qIUGsPa{`Y+Rx;yTIPtD+&`kE|w9X^>VKDNVu zk$i?T2_m}(Rr2etRFlhiKZELZ_4;b3y|lWcd-*DPeRsZDxz|(Nj=nwMcC@%XkZSY! zg~I{fH2z}PaFqV)W=hxIGXH^ZQLK1sA@Zlh;k-#fxS#mvDY-Ew?+~~aLM8kSZ!L3L zN^e~{a&MZd-J32y43Z!Ax;OToLAd`UTg$WBN=Bq%DSdF8H|F>~9WUHAKH7|$c&|ZI z^CuI9mOD$XF2Cv|0c5h$$SQq>cUDnf|NGi_!hbRn!oWMX>zii9X(_YZovPa|!aFBw zC)Flg)ZaN_C}m*}tYqHRJDh=K5$~nf>t<`P{mQH>i>hO)N2xaLgX9lZIjv}BH*Z-tuVRrAX*HMBx zrNwWvp6e!TE-Y8^?mPp__3EuoTe@FR&tlcWneb^h zxSoPViy{A*dj2T9e;6*B&@1rc^-!}P++$rz`DDDA3g8b1ypV2a<Q1E9{Kb!Ym!gs^}mPS=C zxH7bdhre7EUylw6OBaiEHCyoRBl3oe-eoUq zXwpM8ZxZizfv!N;Es+}7F_?(i!E>DdljomR$mdfYdO#>82k|9@<+-o+V8wR$C>+WL zn~rLUczRS&-pNX4dW)_3us7NpLl`q2r$Dt8szV85_TwGR$6A*P)nYy$cb-I3#nPGx zR*y}Sjo^yKPnHU6*EL5nzKdtHazU&2TY(yZpfgchVqdBi@dM+e7#Vii#$@Ny}qJ^M&L5vfG|z=ffJzo~6Q~nN1eK z$6fTSXuWw1Pwk_2Il4X>;V(B-#oYCsl5RS=Rj~>FUsqN5TF3zEG^+?!%u05Qp;n3? zCs=Y*EIX}7Tv$00?;JEl<%DZf_@IQ!xI0JqvkRd@2sqS$u493FQF?-WbFNx3jxtQc zJ4X$ybXM;*%#}0mq^UG`cvLw=0AGJd^k@8gxcc@qHD@T6ZgAQwm*3qY^uT~{OYJ&& zG5r%u?Ll{>(^0wY&i>qx(E1JaOY4`(;)PYczqB~Q>*v)cQyHoFAl6VSk31MajqB|U zsyy~!^v6LTM^)~rToq*-Sh>DR=@}Y1w0=STEW*yk2g9jY-@}2_3%~CNzmK3C#SdQ# z4Yc$KR0DfP1(=1}|1wRx%FFmLfe62UV-zjN!mw3deK?Z(A{5>G_*G)p3xiNvwP@~D zzV~As<@gmo+UT@Ze)?!#@Ly8@vfI7n_wdCy|Lgvwk{%^}oDr3Oc(kJ1ABX*Mx_hcS zT7){>Q-!0&Ay2L@O4M5VxAay5P1c}ZRwKOf-jl8TYJ^s!)?jGuhIWvfP|oW5);W}~ z$?CdBf(FnEkTclqb(t!kW6cDBC+qo*n-k!vL2fL$sen%>8G4m?n%H%~Hfz$F(@|x4 zI^~OuF9N?%ztDW^ed`oe8KcBIEmhs0jj9+}5!gOTmv1LreWQJx{6&(XRvjwYq+Cmf zmLT||r^`~6fi;s5N;U)hIT+x_K!B=rfLj>^9|m}J0PyxG!&G(hb{u5$!P`#}>Q{ny z1$Y-bL#urLQI$LD_lx@Nl{?Eqt>exA698ge!3f-|GO^W&vKCL8X0vZ92Nwnld-)a-dZ!1w zZah=m8@s+WaK{m$`!ate|H@Y7$0rA!fmJOvk?oV?+jh&(_sD`nS7NdwbN1A%ky(cy zIJ`;9#YjUxuRl2iEo20o6i}c+ydsN95}XgjTgMG?KC~*s4)hGKKB#zg!+bvE_E_cg z0k}92$bjVCeUBYwPiK$w1HQK@ig)p6W6L7HS)wS)zp$xWW_r`;ra1R@cZ||9qGgCo zR+Pd>LpeX;9l*wYaBmA0G!-8h&cO52o>=Aj|2y^9QDwFd%nGXy*Dgty(i#r z0fu^h@w*m~AMS$BcYt>#Wm_&D%y2r+uX;HBgUKJvX$))(QJTgzB{aPza~I0oB{Z&G z*7IBO#yGMil4!N1rSXZ4o(B=194GhLap46z@J$o@O}C zr#(aXX(vSn1^VowtPi-8g?pIrf~gd-@Hl#UP{tE74+wL8JJ|1KHA zZ#p#c!Vu(}-Pwy!RQYBfhN6(5K@1H?LK(qOoQa^Z3{5~?zB!2r%%TDIW|B_c3I};x zICYy4^39!spuHU2uaS2|B`oS+1$P*9pJ{39Tdms|tcT_-3~C2t@KDWj=0$p?bT z1op;owsAJ{W^(X#_U15^g$yMzmBkD#qtfIWg@PNXR&pC>+bI+&cQergjCYvvj*^U! zZ&35y3I*L7dnU^3c2Ev?5H-OaLgd{MM9STVs^%U_)*eOZdv>9%hQ`PqjL;lu?Edlo`Wb9FfY5XKyqoaF=C{=fanPA~Pp( za2gjhlj+T7%JZo%nO#&?aNKJ4)^RmlOm7QAI~i|}VY%m*nfp~*3lyEEbY&b=#tIdM zEB?M!NRNf^J%KcMJi$c6(}ODE=}FA=L=xjXJfJ*7iJE65LvifIbB;0Wjc4SE)N7s@ zocDFqq-PE)(vw6|-m{StwsOJ_>Pb%u=iN)A&y&V+$B3wxmL2KUDZy*u!$$+CTyF?_ z-HE)H$Mu;tgzW9lC{Z>=dPh=`-q$!dhMMOc$IwI?1>R{4&9IWUh!d7D`BhY|cMU_y zoVuBVTZxZn)*0%9;QHYxP>|+ry5Awa`xRYPRWk}j7pfud|688f0N`>5Jm`h>2?FZJ zYEVB}hx(Zc*3TigP=$K#fV`dr5dZ7fk=tN_da`cncj{QbPl5VF1Rp`HKWc#nQji)< zhz&GQ8tmj~m^1`x*buHjLr)Y9y(ygrM+5P^f%hBo`Vlac98Ktk5yXbP{(ucM!5R`c zKub}>SjsY4#fIsGF-uV!=4sHdOofJ3L}ne67)aO~h&_3OglO2NL&H9bIKa0Q45pIF zSZO$cqLG&1MzZM}Ny%!Ynl%PkL}L##H1^k_aR_4LFcli9>l@>lBnjxo1O*$%QsiXH zI870avnXyZAB#{ zJ7K~mU4EHqV+o!`$nyj=EmW{+u?d=J ztTe5sOfE{JG1ru$Vbei^k0Ca_p@CmT^y>orRu%k#%tM-Oeww3xnxg(5+?O=0{e4jL z_oc{aZpc_r{KF_)tO@*7q<;!!ok8$?Gy0dI@UNt_wd6=t_&1TovrR+)9-_9N;to>! zVS1+1liJses5X=AYPJZi*^Z()RD8P{J6*=CR}^ z2+=%+5~gd|JjWrLmr~qHN?%JE*Atvf@K#l6rfJr^&xFls3N&+}ClFfDsh1zHB{qGg1@7EB2DKSlGEyqx_(!6S=Y29j7ur&a&m8`4QFnV?)7ok9F9}Qav zkVZH}$JSVZt*=o$OO(7Bgg8+^>l8|urDE%RN?3$y>tZ2VSDB!dSlqge2<)QpUc#e7 zTMttl^>FKPgf>*LjaG&>Gd=ByZGi-b=-3vaL0dls+6F3W+YlAoMhVeIEp8hpplzZi z+NKfiEVF1!qB!Dg+j4TN$gSmWc%6_pQo?2x+ICRnPJ(ySbFU67wbW9?cmcWkbiqb*N>R3RIc-uie+p&i7&=S&-OmudrqGOK< zI?_z=91x!ia+(UyZ33PL2z(xl>T~MQ=RN7!N5$uZ5uOiK_2;xoJRd`DtOCy`Qu<_a z28CzPa~6u{b145pdL}9Od^tT=QFuMUGqJp`N>_2}`7TiyY{hTssLmdnwS_M}^LQDt1N*>?F;jbEtsMVFZ)B>?F2y(yZ=`*Rhk7 zqs~Nf<8*lEyn2Dw=pbk3&dJaP-kk?zq+HSVOqv_bH4flGbX0x~;}*4OO# z4DyoX0`j-JHaz4w7~)eGbwod;!8FeW9Gti$u3CQfSiGpR+}Cj$!N#XD^0RN1#Lc zMv_k9n@BzAqdH5U!Stq4ZGAJC%1riNCymTEhqKLRZ-I&Ev3}}vQtf@L4*Hfdf#vM2 zIN>@AK>pH{b>IT(QdyvfP#kOK1vX8Q1$K@LB0Z=e zn4u6x4z&wez$$w|cj|xw*6|AZa6&)!Sh*?~KrJeWVrVd@Mzc4RJ=RYPV$muKSV=9I zXjuPsR2EDn#fkb%Aw7~7)N6aiwS91Hw`<(L3JGTsz{^$CZv{@Kx0pg}_#pcw99m8x zW?aDvVp73M_EvX&Im>Z0q+hb?T0jfT%M@a2fh!bVk-hXv)A5y^Q8t5k6{x_ga4Wpx zzug81cr{3eS1~3^WZR)&J9|56coi_?3-)uv4v-x`oI;Q!O~cZA(LZHI3_c zl*rBG=wk%D&On9(Ua@g-MkVH-(ODrULHlYMtB^E}BuXsS5aS*VUh@1)Fv>?M; zx8cqPRMSdhKc=ULB)@ORe+Zk17>#hIEb}O`I*lh^ou|k#uyShF$I1 z_e!EU2(Jv*KwOD{D}<$73AJ_W8E+0!E|1qhy*vmn4>Vm4*Di;_Wt&h#FROgo557A^ zygONWceG};blX@}=b_1ll@Pz~ZfUbS@7c_Zh6dxo;%9T8m zNIW~!WpzwrZ|2E);qufR(&W$V<|gj#4YH8?pfG^AQP_Ja%A5omXE_t5lXr+FQVx&S zoD-y`=UPUA%pFZVn8g-R79aPY6-*q<3T22bqO2aA+KYN8t1nd{H<8NB8pIH(Trw+~ z6Jj_=9490YTeA{5bsTwF<7trOa#eFDaBw;&OeCVYlc*tCuXDC}9GpzN&053+cq(Tt zCpnVEl0SC}N&c*4j^i1dwS&yNti7CIaNbmoOJj(IQ|@%8a-8C_h0tZT#&|QRez`M= zUM?FvxeIAt<+3@OOA4XPT}?T%?d0XM0+AiSIo5OP1`Y;sa3e#(47sSz*&!sMa<_09 z-8pVMH!y{UXYL-Rw~tA&%*bV#k$ae?V{RIids?MFJ8eOeJk3{+o$f`waC#uM?Uak~ zPHhe%?+}qXl}?mTu{D3{1mWeVWSZsJsK}gPhI+XBQ|1g-v-JS-!dN%%?oPnEScE#V zOY0KICGNNW_!`v4LhUG&L`vuP@-hG=37~E$d!meV*?ydZ@^z~1JaTgYYDteJlj8s? zsZ`T`)Y1i@$_+xe?fZNG8(|mJZ3a0K+zPnKG>nD1O(=;0aeROdr8r?5xY6QX06Sp^ z-w7*M@=jq2xGfRx-B3Fj+yZK+Ky3oZnJ&}6jfhMWWv9uNMh{Jg{ck`W@uDvIe*sWS z0|XQR000O8w0><$l2@zqZczXL*Jc0!B>)%zV{dMBWo~pYcV%KPV{Kt@b1zkHX-iWr zRa8bXHZ4dlVqKpcqh5Ywesjuwj#P&SpJ&&hdEf{l53AyZU`qulkSI zUH!+`RbADu|Lf}i?yIiqo*VR>bMI3(Ypxl_9AnH8eq-$=2$>n1VL?sWD-LU#o)Pj;9xGE+5XQ;A^|1?~%wFCn&p!^dA z%#h-0JXZLzz$*x`G0JiEliiMsYS`qgtE~}~P?fonm}As3NYvcMthcY{5G9%~6at^! zcM!G!*1>sN2L%LZ4pR9bAyA8v@=2gHT~H$6H0&1lhiB`yKw62a>`d}$;~n!w2!{v= zFWO3e{;m3R{Siuu`Ep3MWVk69%JR(n4cYe7AaNFD5Try3T1A7D-&P{*FvO5z0^)W} z7)cMelxPfBkrE;q&q5MXai6p?(s)B{0-(&K0TN|=3dRd%hNdXXWnE^GI&s&3ybFSH zlR*cZVIV|ayHxhP*RXWk|YYa&MnM6R? z_iF@6AhH}$YHH9aoMBXe=pn!=la(N#}7`K&JngCK!QYO6FN0lTj#64IH-lxKwyf^F z^lW)k(SD&wm3eIHG?;IJr3}2~Xm|`0mC#-V{SmO3Sf$H6`}xv9l;!kn)Nks(CliMz zZq05SY<69>?(|$P(q}fzAR6nSl-q=-08CY2I!@b5(3p&-XmmaTGlBj?Fm$~LGatTx zP((9teaVtcv7p@Gq+h;?e-dRca$dA1uI%l()n9H}_a285hV*=1=iojtoI=xyA}P~9 zPW7e?ur{GH985J#2?lFkQFx~3=L)z0U7M)2iWsACkbt`uj4$9hwBLZPWavr(-(j@Z z!VzlR#>`v5n?P*I;7_emXTE)XuRF(Za7t%=q12AntXy%|ZsOhFMq-9qJ?Rrq)JAyu z=EY3@Y;%#6MH_<@rrc11Zc0k7A?GqRM4RJ_gv|dmlmmUGU}zwYjbN`X(q;Zn@2=Af zu#^2=t-8Gtdz6Frn}(gXdGW+d z?ShG5&E!LLwF<+Jh>wDCpV)tmy3(kj7`rQoqX9ZMpm94k!aC^Pi38igkwE4$NoOIk zrIGd~Sl)wQcEOk9Fc5)*1>_lgO@)D@6QlJELih#sX`RN zmkDFrz#Rwv6fj+e&%>~+wrjA1(6=p6O_y?nsbkWoEbvvq9GB@#IyKyZ&X;ICjuV^U;|82PgiEFPp&A@Jv9lOElhIbi z`WtXMfxNkgv-QD!`S6Aa_Dop1Aiq+RFGt{G0{B~)X#==7P~{%67vW3_d_7Law-8Sr zv9zM$Da>#gj%p33z#4*`&$0a?&YmUHH_-J$a^Il#qhziUKSp488#QRa)=8>+pti6b=4dSU3;93p!Jbbc;@307EOx6$`#(!BD|m zO=!rIUlr*;$Ai5Ntk2MQS^AXCe3g>n6z#es_Gf|85;|G{?Jt?~80?8?O~-*dV!uW- zSJKzXFp$rbt?0i;J8!{q0{xIn2h^e=6|Esc_btt*$Jkp#jfbJ*0azap?|z&JAs6I% zwbq-0u1vYFS+WGPu_|I}z(Jsf17M0pr3!j#z{*b~3Vg9JTLQhcXsCzx889CL^E+sN zh|0f3FqM$0%Q%?|(+^<08isa4=K=VP;3|dJFUYTlsILON8^LfC=3D9V6>8Zj3`Nq; z%`p%M- zjryf{`0H)!4N829J9S-wBXlfGs zZn62hDzi#>za30PFqDAZh2YpvT-(9Sy*V9TB@yEpY9r8h5o{O1TthzXCr+Mmo?;#L zwF-;dvG=Lyh~TOR!+x@;0Z$HE4hqYm_~tPi*XyI0FAU#hvHnZYex1F`hEI)R-(KC+ zA?d?$=Dr4;mE}t?R*qfkMQ0-RZ-aqN)Uiq6sn*Bf-BvKvf}w`;pKqdJSpz-AFp_{@ zbK%zvuoS_-(Lkv1+*2>4!GDOM-%8=*dYFEM6X(FP2i~Ls-*GV+OtR{89Xe`oARanF zn7TpAafV5~&)9GyIKz;;+^a`8^n~_B2@^YT`JnjI?nv8S4sc#Q$BupIr^3Wt7)^kc zS~7TD@Z1+nkMNfk>}(C2$f6!3)^KTn_o`d^5XkJ0>4VFG29^#StA@=7mHYi}c7av7OoO1Q|BNSRtL(;czk;Cgk-xD8Us*hYpf1Jr4;uECzdzQKg(%uAuih z8?M6sO6n?Cbsvt1`1aOqIt{0;H3Us#dB1NUdKvyeFJx8NDWTcIK%!97$;LIWX-2Fw^A1<`l zGFuTYaTDJGlTp|XV7g6|7{QS&c7rfjO@&|Dyl6OUcviklpcEbgExtFwoywi zE}aJdR%n}ASGdq#hdoCi9elk0VEw^l@PgWXfcnnKQ(BQDEXOu*Y2kec zSP43If};eCRm@xs$^$gsCu3?fKjsc@Y@(f4g}w;pLNpcQLL$uX6+PQXXC8X4O7r_7 ze>n%!X+g`i(!@#R(0AksbEaW0!;u_Zy2p)^E0&IDVaML+fdk^mddYHEGt2>#z}*tv z8LH7Ug6|-hvx%veeBjYI1}0u&dx5U~I$EzJnJIKVqwZVLzWc-)Pdu?vuLa8MTP1^7 zYjL7jGH%x?dh9uh?#o~)4KiHAI9T&+& z9k#bJ+cSJ4gYO*mY=VLFI7iuXy!@t0#RKMK6*#ZK+dcZPnea6c-kl=un=p46{(|_o z>*Pz3FkMKxqljS#<1kP}rI@TFp`XLF9D$d4v&r<;C0s6$+$~^v34^sTmmnBIsdv3F z!I2d&dxHdP6H)Ss^8lTU1!FcHd;$}<&~g`ks*~+m;sOxgCU9OPua3Z94+~2iJX{c# zo7v!Y+=2sPu&4!d68c`k+WO7Pbm#;OxusE^-7Nfv+mAX>JaWyV%#H9@C zdL)cL#KFtr#~_%JWmgWE&dKIVwW3$ONs@lz&`A~KI86Fp(s$Q|m22Q4Wb8h8Z__D6 ze*(BR;M5UjJQcE70IuioKsCOb{I(H)=6-#TS{v!ebN2NG_)DPYJUI3eQw8|yU}+aR z?t=LS4u`^|7(Vix8jFbcG`K58Qzcr?(cygPh^6*aFcH$b59}>uE=nG+!M+>d$%d6u zoDRdz5Nf**iw7i25l-c)K7t&I({aSJ0sJpuBu3xMD}*5Ij3={k`TEBkFnp6zol^i8#WG6sL+;a?p7RJ8sgY-E=UO_UBV4GG0U5_QSV}(8V_i z0bfz9qe`>1jm}lU#|q$K-w}bYtI2dT49AJa{a|TA?{#!<0A)M4HlzC?n9joJ7W!Lp zfZD4IXl;^T7t+ylIGPCEr^%Nn{J2MYcMz<%z;+%+b_=7IU@8%2AEHG@Z?WJy%_1Yl zpOcPM)_#^KB5|YE3ZXxWT7bQYCo4x`Gv(<(X$w42=}ILNn}yy()O{X@%80_jz$2JfgQcfy55b)i@wS>SZo|n;*;N6x-eR;8G8tSOBMz+Xju=oya?lNbZlhy z(`bJILt(5dS?Ip68r=mm8?<(rdhWznu1NM~dA3TJxTQAU(~Yl_ml|PgBe;n;qM^zL zVd*@KzZ8^fI9JL;4;q7T?1}6+Dhy?i-cvkOp{bO7IYwS@gIBfGd^VsO*8%iz7ack9 zS|rO&FxLnl_Ope%g0mEzg@R=ruXEA2oz5H&>&;`9y@Iz^v?sx@2jIgNGILAp-VTEe zFuMa5G-xa(od5&Jh2?|f+g&!h4tfp-9+G(lHdYD#Lea8?etZc7t;CxxICL;x%*Kjv zxfqoF*pmy^aKW&jdd|Vhd9)Pct8>gkXbDdgg6#$xW6`w{dUlY3QtW(22A;#K6F9P; zcAo&-3o^Jj;90#v=sZt6_rVxOotL{WrW4nJpU z$0)JJ5ho9<(d2WA@a?2(Sis2!nAirBH;Ca<;Aw#$fZ~{h6Y;<+{QHC_p1vli!H(ys z6p2QTpLlumkec@4=y`c04osZ*eN^PY69r2GjL2XtAeK5Z{1Rt?zK?0SD&Q3;JAUlEg{`GFq|k&JVZ}9 zc4ku7G4P!y?FVrs6z2~Tg`g(}UPp(#iGnYY#Exv`pfCu6BURl3#$Dh$20v?|dq0>H z1t9GgH6Qj9OD!n_CxiJtIB^d;xOGOtki>xa&xW<%0q;%Xy9cf$6|avvc1lAz%puAC zHux!zSmIzA$Z`^V-2=Zo1KT6kb4%!K#<_>!t;d;*@cByg;&Iu!LH^|>dg`fZr^<7Q zF7RTvmHf0`cvXX);W*d=9h+Gv1^-dz2*#c)SUCqTa6m?D0~oS(E(yGZnwroNgQgp- ztC9@F<2hK!#!i{Jb)e*n6XmdQPw3N91;maxuyO!W&rHRVqYQer^g{S_ncT5cs}x{Y zv)Zqd`;Ws|9@ip%(ec_Dri$t89Sm53o(%;PV`at+o$`_AzcTXXR8$>Dm%)}AT&Tx|6f$s9avc(F zx6z=bBNx$|&P+|b%EEyU|CFx3Uw5=BLT>GQF! z-E1gA_CFRZ`*Ai_7^|b9s!zwkyAi#S`oYK2Xc7740DP;JzSZz`>@N-Y%YFP%tsgmz z!v)|u0>-0YW-uav@fz(aknAs6djwdw5Z?=G&7}maQ<-2Av_Ir7UPA2Y$X2H-AfX z-$4&W!?hq1@ZBBiN~WDv#Bv|n&lCGj=nsPthK5Jr7oqVhhgi z5RJ{axD}0U)FcTr9OXnohX%*9$vh$MJ!CNq%3$UN@o$P!c+pImT`yS9qp}-2?~qgC z+zxc4qPq^J4oKdO#1{vXZTKw;rW&zt9~xw^9VJU!qDFZ*--rDvqWdcGA11~Z@IHux z1++E`?HfqXbudd{2^LIL=(&QE0t_C9YHrmqP!A(v#Bv5Lr_q-Y)15-}WH4OqDIxPO z;T=!KaWHcWe$Jz|ll1i-9M_256lNa4#3Aa(206C!TERY5S+WwTdt_8k}=?sCf zFwv79(RovFfH0X2j;-h>r2jnWYGHmA*B^Hk?2(!42px%&oKJDA944FS>tgh;2Oeka z4+t+GyQ*R0O6*cOvj@@63gN2?JPduI&>u~W+vSCG=siZJI390Rk8Q!_J@C3rGN!>q z1?%1gJvD+QS2QG{EjOtB4(U>ncN~G}&>0WzHZqbA9w0Np*t=04+Xb@;xbR#xa}vix zz{$(xGsJO`^w(2^$V_EmzmL8a+FMEfTCMr58H^HHdMv)L1a~c3Qqi6y3^uSBw5#BA zGc1*XsYx6X)#jtjoWPt{p?wGR#E_B4?4usvZ-<#^Vm*mt&$O;M;xD8_1@Iw;czHNI zO*=WnI8P^!5oZ*>x&?iCU@nEB+c2>Ye3Xuh^z|l?MSq)QDHlhc=xq1sFPCAwS{!`D zESrVblJxpA2Yk}6H|T63C`4M?$UfbrUDv2DQE=^s9*&u|i%VMKqvCiy{Kipj4Vr7{ z{3$wE0p>a|+|-XBBOldtI7J?K1Rpli8Ez!1kclhOmu5P3L0n>NbUpDFYKN1+aG$z$ z#Cn-c6{~zH!lvMn8vGao9~mkU=&M49P8ixq1}lk4M$aa}z6)L-2W10vX5wHJakrv9 zN8f%%G@WKP0^w|c1-|L)eaMDnVd@;QZB=?y*9ohnx@j;O_-ALCrJG+!q5*XzAO@LDGCwsLT$ z?V+0X^K2>tIN9jB`;cz(l zpdlRz*nJQ_G|CC++Y6pcXiLP4#GWHq%JEGJFP~vdBf1i$o=7x4r0z@1c@T_egbzE! z#Uk_{6#Z$y#hQ2o_A2~HMRPN`LBFNJr!br$fu|hy5a^DCu2919(U&0NNmnU(=-5Dg zr5rPm$q4Kz;g$-#qfDOnjWI*0eH`HaDvXPz>}`A zM$(O7&xcMmOq@hzJx-;v#c1d&1AjKo?1Z5t(Osh{kv_wxVAz0;eWas=pCPsG0J9Dj?!fqA+WQ1%(ooTA z=Z`ScQ8IN4ZSgqu5*#NOFRQ1HgQ*;*i`YT|d3^ysKBX(jhVFy)6!VwDr=w`th_-5G zJ0aSt;hmnCZi1zljGp31*L_{np^*lngsDi5so*$#J%`H$Wa11g>?U*hFp&Y4Li+Iv z>E$_Kw_rnN+k*bH;3y?OZ3V|J{M;-q#^@|5XsO3}5XMT-e~FIOYvVNL2Ele6+Kb^3 zjITq^rnf%4or-ZP-%Xq>p^L?|t3*ASOdOloWC&?5q>gm7wF=7`;s^y>qtu^+D;MCe zkHoJbXwZ+l?AV=>z@Ixwe zUniCn(UizlJ0a7)OlrA=&KzRkA+egyHN(tH?9L1Qa2+R7GLV>L0= zN4;&N)BC}hBJ^DZMAp&VIq$9JklFNf|Q8RfjwZ@2gX)5Um`5+)OxSZwqtLZ2TZ}Re&jvn2!mb1kG#%?YW8;7V5mg2J2~W z5VP=#Sx??c*m*h1q@mszV%a0u4+;JZVG^_;b%liWq(UTEqjjzg0bKxeZkHBMiq2ZW zo&bj3#E=JXV&E?vC2fb^5VWT91VF|cnd^df?ijOFp!JC6%SGro1$_^(<7~L80mcdm zFNZw&#JB}}+XOSAV~>H)`FIGr2$-Ho#xig}hF2BBhX{DThm2Ga5c>$THKVx&IwP>N zFvPxv_3dOc&&bFo@}?fGCq!ohX^%wPRxsbh`3ACF4z6{&QesPI9UM=W)43LKM}R35 zcf)4E`;^SIQfDfU2(qP0Wvl{6fmn}&jEx9%NW?D~JaBEn&g*0#lDwCw;k0IP z2kj~&o!h7q8F;zK7f+V5v9A%_8_;+}?#Ger28NYZ@) zyca_H9t6HGcZk%PDNomf@pHH#!8{{2#($b*L~<~LCX&8 zjF;xNknwovI*9I4VWLc!YX$o?(wC10Zb~K4bzSX>#7gMZ$<7VLRx2r+VIms7anPMa zUYE-5d@_Dpc$ci|X(Ambs3VNn&S9TS76eeXDKX9roVkg=J_{M&M@QE+pb&wZ`~_n4)mtK2BC+SE10cOK_f~9UFwcE3_w+r(e16qVT>5 z+B4}~I8`1~3o_?61RUNeIb|| z#zHX;oB~H1b)^X$Rm~lQ!D7}5u1w&%>bZ~Bh`<{~)>_r8v&_oyTP`&Lyon|QxwLmb zbRA&4m^4a(@8bJp!E#LY?Fyukp?sX)t(ndP|1t9G17eCM{ub~?XnI44^*sG)8~bvP z@m%LB0Lw$LJb;xWICV?cPH`@i7huxxap49IZl;DN#e|!AHc^D436eg$b{=!2B(EMRDq+ zICTm~b_9^;Z#v{9q2Ux$YUF_f(6bj^&tWtg-v!CP6~p`?I3!OO!t_H}EW}BTXu8B) z<>)F7F`rjEDf$je-z4yyM$Z`-il_F==-VuGS82^x(R31Kny9ltv|I*P7@4idzFJ{m z3;bmt`4U1n)SQe5e-)V4;pi<~%BLgSz_|s+%ka$!n0^f2N_0F3F(!d26aD32Ov0%q z+8srH3x`kV0#C?nwJ;U}i{&bNh-P9h{G3P}H(>N!;C-atZ0M?|O0Moj@IW#d45H=- zXbUHk#n6)yc#=7i2*wuCv{xJ@Xys>J&bszuE%c-%e!N28s;PIsZX^|kgQ>4Y>TSYN zwP3zV`_7AVI&i3=BQNAIoqj>zouLlymO6YP8so^@N+DD`s=@Xc`lSti+XU_muXN%a|vtr*3He9CZi`Ur;>8m2)YZksqA;ZP2 z=K=Wc5J#Obw4N=Ujp#Z9A4g_5D7=D>W^q6T?rmtV z(b=-lw;e~fqe~XXo7uaqZ1S$q8?PGM&idEG`(~J}CXNS@_8X*3>Q&?75wZeeN20tGarK4J*v*<;!2P-|A>y>fNlb=(}H=sI8Y6}H^qJ(^cQ()ht^`0QZ zS77WZU2Y=d^|a>-crOy$d5xhgP%c?^hqiAGNzuP=Lt_~IwFy3of;|%6AoiC+U$kU6 zA7a=Nyb^@UEwLv(Xs!fSLYZyHy3tgg3FOaNZ14)Y66x||_C=H(80^bN|8*S81BafO zA;|p#2lCJyvAw%U96yWW$x`1|vFjub@70W*$BtUGZ&meYs)vh1`r^n+a`49#(ZE#8 zH{+&LH8znr6G+Dc(ZaARgm})0#(goqm%OCsuv+K1!xlEP!6vrSCb%(BCJrDQI1Zx+ z>G&a>%tD)t-t*L&13$;W^hwsajZAE0#`EacvDe#F?J>|(C3IyIS1G=&VDIv1cQbTf z72jlPznqkR7PO067;VrRHZwm*Of__BBkAB(eg^s;qa#JMtJQ{R=1pQ#S*rf+a_=ep zx)Y{fGG8KeRcksAv#wChz#Z&JCGP9O&;>GC9y@rCXI7p9CGSqHDG!}baX5~+x4~31 z{W+JKk5gwB@usOq_e+ipSZS8tQOS0Ncq)jUhM128e`^b#ETcn(fe7Zh3w=7~55keN zIQjrB+02$fD!^U~Z}Z5A9!)RNc$5wWN=NP@fsi_pLB^ACG?RYZ2}(nF?@QX#2+nYU zN4u^nbn;|U3+AW9972E&P?&p)-5j3X0mB8DEJG!o4#a9qNAXnzd%Xi}g3x{lM-Gto zD}to~EeB!X2zDfbZ#PUv!Jrza(s25YV93D1FtPh7={&&;JIj4yK94;O#Ggr*ccT3W zI?j{DOsW*K!DMhJvK|fVNeAn3;%R|5mvFHF3v>3R~{@B!jcXLf{D9A>OM#Y@50D4(XmcYN~JGtlIJLEKMz0O zllyofpNnq2s(ZiCQ%{@)U=5`U>&Ul#!XT3V=PIrlJHs9|bXJkh<8-4E|F%r3!*2=f zV=fvm;D^oFgR*54>%Jhi>*eXQFo?Qd8HS>yo*HQ;1z!Zu9|q?$>R@V1cHRM4@DczBH%h947P;UQRg?fU?Ro5A@Q`zS1&gz4k83)9S3Sf#|3nrK!u?B9xlYg%66Cz#*ssGXb+jM5{>sodm?n+0e_mwxJcRs-K%=$d91hXP+9M@D{9M2v41Na zJS-~T!r~Ia30rNZwro8us#SgY{R!V)QcH{aXm3*5N}hwZzFVUgMr6k`&F+_ zgD*AkxOYGM+^ii)(zFw;shE6uLMHaG!P{u(F)v!Smj-~Tg#kZBXDKX|gF_2%OJKTG zoR0y!jEW8{0-F}8A&zxXu&qNNy_dnci}jy??tE&Ar`GH6Hd8+ujHCI)p0>Ly8b+c- zdnq;01!?AeMorEKgnJ)_m zYN-7wF*L)_CFpMfYXbh110z*9c$^sXaHJvd%8=m{yelE*8nEY~BM~PyfIB?!Mk&X; z?djla1!W%$ZUlRidcK~RxXD~4%a6(QPTJ9mzAI!z1HQw|UPzRupd3SA8+@ktg;${` z@Y9jN*X5%pxWvSM47!Q}FL!&6fwLNi@`dHA)Nl)o6)>+Nv)9QzG+u}P+vo|!f#=|r z@YhoCb4Yd+mP=vuNZ<<*|DAwqo6j@HdK}qCO-E?=Ir&vE{3H<9Bb+#m!zFCs4Ez!e zA1=|}`=tGWY)gOu-+5=JE60H_Nid}x?np> z%^Qg4l-eUkEkqFK5%~E4jNN1H(c zE7CKPH(oRUR04F|=0!UAGht>M%tgV>3!Hh0iUys{#J-30HSsVJ-5!Fy>%ozU)*7)V zOYFTDI<`-oZxTOWM_ZKcb&E7p$sq{szbjjt>9+>XEGp*%0nL*+{ z88W?F=Sd6eh|+dH7kmjS>qTO$&{&^Et{h8xlY#4$$JSc8{~@uT7e=%2mnU@LFkNhb z?h4v1sh_~N0+>5Qyj9H7N_*N=dN5p4>&fU&mGKPxbOb&W3!m<>cMQfd^ORd`q*yjb z)9(GWQzZ`(+8zge42?V~WQw*YU`T_`b>wTaTB!nV!s8s$?*{*Q;w}T{p1`Bbf#*W^ zO=7=^Qzc-!0`GRf$`jVLQ!=ZeFO!-#LU%Y$GWd2(P;z1RDzU7C!9%zpf-yxL)`+hn z#cqu-6i4Txnf(ShC1Pm?YYO-Z;B5qc3PsBuu;d2*+4Q23N67}lQ&mqTI4=o9)nKg? zyDFGH@WmUp-=YJlP><$99Jt8ZON5S-U=mfPC+LVG-3_F>kT`O2VyC=ND_e`vwNBoT1duEB{BJq=L5!RxaVM@i1}-tI>WK9Y?6O5)_U) zYr(#qzRrT>>TttG@;+VqS_Ypl<9LJGzfM@*44z!LEre4Zlq|_~^o;oCGJdV4OXalv z{BA?OIFXHGB-D^VXxQX)FlG~H7IF;W&s6ie!J7pBE3Ahj-7A4_D+bT7!3N>WWf;sv zTL!hakuD80Dy2+T1!T2s8TJ>=h=F|RkIw9g{oo=d_zP+NGDaHOI(a;n; zT^{mF6mvEUONB77Rd$^ri}m>Fx%BHT>FX){@|67g5GEpN_inQIkeDOr=T>-sE#HwJ z^hWNfl5a8EjSlSDXU`kc>US)lCg0CRF zyE{ z@6v%QEAS@CyJ)7wsb=!QbBTOBPX2a=c0MAuhpRH2$ zDBAi?Ep|v<3@ohklI5x-Yk<7@jDuH6S;o&oIDMrjAUZRWus(b;_`YYPP4cDasY|C_ zfQd0O=*rnZfDIi$J=V}I~VD<+tXd18CDT-;J}z!k}jW^e(Nb!!Ix7K zm9JIVV=vgNX012tPCG2n{I1W~Wrtpj;qQIRUng9Gmde$e-T5KEt)>vw!_1&A)WPJ0 zWwoPH=c%%#0^+$3ai)3Yf?Y=!HA>!#SlMA2QBe^yb^M@bQRZnr>k|o{52(z%CZr^U ztLeOse(NfGB;0|LBCp82hTXB^&>j$roLPK9`Xi~CDF*vG@)My8TAP%IAHWIe_ z1j*pEW=n%#xF)+QNgBm|xp3EaW=#`b6~28U=^z!XKzqR`G{j-X3l{~Y{M^+Hub z+Lp%dx1#=Ccs9&OzENd6UGj%lOV~l>k4m?tx@8aR?5oe4iI#d#y&f!T7Ldi}i#US9 z>vz)2)fB+MVK4TiQ~Dr0W+-1ibtt{1 zG52^+7+eu@+>_ek!@ij5!^IbzyIn}y-j_1uy%ML5_~1P37vBU-X|>(wkY=iT$8>FW z4i5OtT>sd=E`NS{W+(hy^>FTj_;60LcVu-{l;M+JcuQFPMgXa{P5Y23>ODra)P(gy zs4pf~wVbX*Q?`v#r{!g?qh)@hl?jWG+$?v(6O9y4kQ}O55W6xBg}v){Ce(!~)oQjnQ67^dxP(C+dY$4zUuqj?5s;4+r&<@P+z)Tg?Wtr zf&$Eg-e!{)eV(_N8K8B}#0+NKh72e;$PkDd7X|9*PmDcPZ?F2K;h(*6-#SN-RF;VN zll^PID-m4_=1kh-PTfIUrgcJ969DG4cBuCs!TmfSbmby_VJ%}R4yAk-_~1U zs=k#Ws*U~}vLJ(Ol3Ts->(I`HD&7yXnb zpMO)pBO_3Ug3YaVyv#+G8_Y04r-WHcR^nL2}}rS+vqTjJI_5nm6r^ zw_a!Uynb1>_5bXS6Xlcyv#q*aN%C;MDRa1VhJnO>m~GOhB2p`P zw;fPaT9@7XLY)!69t(dUr#ZJ#B`im#@T99U3MRs#t}}4 z8x&$byMw6~DhtV}`WE5}{lbG!Vb5k^_cizm&Q|+&4Sd`9%E-)RXa0qD2?p#dEehGP zut`IndtHW@5ifmi1qY;cGI*VCJir;Xd_!{${o3Icfk$rDQ`%%gm_UO^56J! z)qcv}raL&uC~e-^v#*C4+AjRQyw@?$FYp>W;nTA`;rb+wV4sbEPl5u;_=xwT;s8oP zSh6k?b2@I+1|X? zntBmMv`i#VCG>&0&|cH8!`1DVn0vhn&(&HyN0Quln1dbR32IXNQt+*r!%6IswbzCmU1&K`_KiBrx8)Jln%4MRH;?0OB}r=vc*OOuV`2slUQ z)(SvpsJryJlwDR}N+XHwqNiQzYy2ozjY_h8Brbew*zf2oJq6R$EsHDS7N?TzUagd z@c9u~Xx;Q9f6HqCM0p+^pD8Q{m{&0oSP}Io6>O~v+j!z!gS8xR^X3CSkFPTOeeb;L$&s)L>OfVgD%U@p z+b}xCYcDVtij(3OA6X) z4#X58V^kwaB}kOrrkH-ug439|AN|t5UCRNiDn+qDd zKG=UxqR9kWxp~1 zH#uJyriG|GiFH1c4>{5F096KuFmY4~xplO5{)+*rbr|_{QgdvB^hn*TpOm%&KkldX za`7d#qxIpt)1qhMBYu(g!8R#g@#k{fLl&Sz4l_aeDNwX2UgR@rEkwVYOq|2+KvAjV z2{)vD!*oe|fRb<;(^#U4Q_b*;i~zQi8VmXLk zRJKvWV!^P}>q%{x$UbGwC1c4gu>_6nHlJ8Ph^tX1HAdXj=z%OE4X_Y+pKTR37I7e! zdfZg+>)1tdxYRly(}}gAlU}WK?${y4u(8dgA-qqncqSB4S;N&6k-kIupe9ofEQg+{ zqwFl$QK?F`vDm$CgVH7hxjox~+v+4TLBtVJu1O&du_&7SY(L$bdj6w4ZKxIh2|o%Q`C|4|eT=5MeTo!;%Yq4d&2bZ^|>gC`n#3 z9p@0pl*b)HkS>bY(Ji-TP}8)D8;*+)?Lz+RxId}`4|HG~BFfE}XLE7q7o{!oW@1uX zjn?)6PY-kcq^RvlN2leL8{rMV;Gp3$I#!0XB$l$An$XhR}X&g zPGSnrYt)tSjyc>nBzNHZfc4IlH-}A6zm7%tEmPa%7VIMw&Jd^-yz?ne%4R!<1|geJ znOy|Cu$7N1E^|ZVjBT7XXiQhsmEYvdBDpOnb88QzQopALrU{$go)zL~kKxFer1OE) z!ah(z=^UE~Q+kIbYv)lWbs3!`xq#cHL+s4xC|`T;tlH!ZxMROqW^ce^#b~^FHY2ZU zv}KlXYwiNe{+aR_xiNYZanNWd81a7ltaF+8wQeVC>w@wP%j6aL?b#S^>kav>g-61g zCn_sM|J(Nd#e0nnAGI~Qcl3Ry(tV>UbEsy74z&l{g0M93TH zn-kYSl`Y?E&)RRsct*UW&OoSVmXy4rApJ+W0mg2dXO+l6p{$Hj=s+9X=6Z!b8^26OmXqodz%GBPo_? zlD`M4JQ&YZJ1d=WVm9WDyQ=Jyejg75J&$y-AOhTy)ZAow+)j$FTDmx^(p21X0wL|; zf+%gl+*tkil5X4FIIdDQuCVsqXqz~`TWX$OH9%)Hibk|)j4(Iv)npCxLhzmk)?E|F zp2P02-d=%vl|PU7wTkX|6eO-|mw688yedW`S6^!yTv0+NPTcbQP*~LFT<Ju6Q>8keXzJMq067w~JvX*xF6ba}C|pYNTN({l0nYR?&X^STovyn+wr z$0X z3AX0ZOU0{y=n>($(=L^BRm)r&1vX8?*%dXf{IrJm4)1ah}MP(0!{!|vl|fC z;L3#1jYxr_4|-`pe-rRqi+`c=!XWDlzk!X1UE~ed)ONi)6&S%)8bM1A;iIU)i9Z2i zYwJnKrZiu=(QwGg7{Pd)>(KMF9rBl?Z@+LV7lk}gFR^-_D?>cO&iA=OvqRc&F{+`d zF5=aMvy;H-Ji+z0y6rG;#La;xs(l62g|cWv>rVXP6U>BZ7ob}WVnl#JTQ;yPDE<7E zMKGW9Rda%iszDtM30+~`OoMKUdbs=cVb^;KM9{xw1*HX2tpKYIom2A(y%JlX6V!_v zwxI=?5rqRO#E~oZnW)W(YKeDiVf=1XViOC?HSEYWPY|2Lx*8D1l$$9vhZw-Dd7$kyC>E(!De&r0eDBF_5 zW4=Ih$m+MR?AmfYkhBSvYy;&x5@|~NBDl3i0FUO%7QuFQI_X(KKp(O{iPPf&c$g$E zMp@I9ZmR4fbp9k+AZ8V4wC(&2((uYnVxn`P@i#9`d|kjhWEfCrWJ}$?-SqD_n7(bopH|gk)bwbqW^fW+W0!FD6`STI2A`coBK7-?-)F?v+kkZInz9WX?q0Xju zOA6CVt0Vp;yjJ2_HlK`z1>L1+0~NnvP6BuS4dsCuLq+BT6d$bbTWvJUjwWHxO_o{R zXsz3ldxOf>BF$D=SXBX?*W)6?mPhD0<+$Zct?NDi)2F40Rgj5P?X2suOqb~+ZtFKb zIKK(Vyus^F`AQSl=Fw4sjjT$<|e1Di389T=*x4V_pwyOW|CPL{QzgFNDTodVq}_PVc@>(VUx%UY()r($(#@ z=ZuQh(U_6b7U?I)1lvAnkdKmX&}UVMJ(!Nzl4jZKdqV;5N{SE3>@_Ao2PcCXcH-sE zjMfBFI>?d=h%PZ=Qnl$=Xfl%4yEd<(FmlE>Cbr@4;QQX~+K0jnh>Byn(qQGGi*ltL z(@FrNqZ+6)Nvd6}&|u-BUw_gL_eQ@tgyBFyAEYna%EwJqEKZPCqoJpH@f`v3lioX# zMs)n5KIQ+(I7`#>X1-`7#&q9 zjb&i|r3pf+jM=4)UsQk3=6=mCC=2egI^-5XN&48+UfN^+ZbDN zl(HVv;A@<;lMixqGupS{wyC^pEG})QKy9aV0qYRWg>Co|tnm6L?jsJ)? z5|ZQe!|}G11H07Jnx*?(oMSr!;QX5Fhx6zO-&r5LuGMQ>v8a&lCG{(&Z@aG4NqFWf zLPu2tsEM^%@sbTpeYf=7?d(ry-yp3=g;S<0$E1l=7?M=XjUyR@HLWY6#km;W{J4?^{Ko+$RW*UraV$R7TwiiTj?o z70(|!?qssp866hSH6zw+{rCADCOsanJZ>`x!EPYQJp~Hw`i$n~=_8Xot*B?}r4o zjU&|v?@$CyMq|nk2^FY3`Q+BH4kKfVlRv0 zQGc3=aFH#O%X)zgT}@dm+x*A-Q=XellK_e{>Qe*7+)^R^XAbLYWVu#)w$sLnLQ%Yv z<}?k)kJ0>VKoe|kg*fhfzaj*ipA90vC(tZKSYO)QTIzn7Evj9EY>l!0D%bo~)|6y6 zHztsiDlj#sSN@Q#_$y@7+Emud==6C;Tq~>PDOABL{}B!5X_}}&AgK4+B3CgBBd*h* z6y;GlK`pDn?w356_Y(Z?Fy{xc*1D$rS(5s%_Px_n$SnngZS-{>u$DToUPWJWzBE?b zS{UNnyw4(t3oK(Q{TSiL*z@eLI;`z0ZaDaiKJozu_K{(-Bpo6Hp815!CX|QG2yavC z_gJ5*C)#Q~^`g2aERnBLJsx{JFM?hUl7%Wd97XpTyA|~%dau8Lh;%ZYb@qLq(0dt0 zCVbefQ>#)Xli;J~BMxJWW+@K}ukUpr=Dyu3_)o(>YBv}jKI*-wZB;Ghy z+`6f%VuhYSKC&d+HQ%nnm0Fi=UJYDy@!^N-tP&*I!F9OdtbE}BdR!)|=!lZ&YJ|4) z+15S9ow#47nVOI7z|OS2NwkfuwKYSY85hXSxGTHW1DtxXEkQP$@H)6XK}EmcPeE4u zx+VM~*%@YQ|Rsx^vz5*T6u?lH#M{Uwk$WMbKdmcXfAb+gD}0e>>Rzhb3c;x+6o4pEJYntq2DAY(qwP_5;Uo zogbEB4Onp%!3_Z%O?6okZH@pybm|~$h!q>)af<%~8e)B{9rNq~v4^k+P_ydI^T5A#0{@X;CW-%;U{? zG6U!ieClJDI);&4>Jr#Ll-&EN+Km$4%f|pgdo_K4B-}Wv%*jM2h*h}d=AX(}_5h|x zZ5?JC`~IeWRq>+cqrrfduN|*PvP(CmlP*r}ZdO}MWz0GriT$(9?txhzza?!Rzou(? z1Y1^V>UcyQ_BV4Z@)aswzlZl)IkGIPQsbK&diY4-Nk^DCJ_#7T#L^`;w;&T;tne}5y;ce%VFtcSz)ol87CoUTAIt;tIn%m zmQ}Kr@Iq5Cpgx;lf}tiuQ>36oa*|`&N<%T%5eIXO0D9o9({toli|v;K-Bu)fK<;^< zX(Q8XWO^jLC3-O44`%}79vje8))kFje)GT>05qyM3B6L!`X?1J)K;tn^>36ln28j( zO8M{{2U6EioOSkW&RdS8oD%@=jR+J>C9f@(YYoG?lqOlW*Y86|yJR-ZB&`Q2VSBJB zh`0kv6hVF4`Q*@3-#w*dzA1AJXL-o5a7g_bn4GlJ-$+eP*H?+vPtf@OBX@8&B|Z;G zO}|_*K`UKL1p)<5UQQJ-eRt{T{2SKUYY6v8@*#dXF3y&zdExQqPz6y#RZ@(XccsYn ziVg$=h6DsYfdqsE1oyQBMw*y2xZ!};?6m{dooe;BGcyyT74>z##!!2~DxhO;Vavjo z&p`iu@)c|M{+aKJrLx)odh)C+|GQ$T`Jq@+d?=Retp(@E7VpcqN@!wW$Y|imxK={o z=-O!D{SavEb7xQRRtq;?>&wTJ4$*@i=RT}?G&FCak?zGKMPs4i#pR9R?oV&Y<;}tq z+;%udIw!@UpTxpd#v6mbYeVEG|7? zJg)BbO?jx}60)%iG+kXh)>|Ke!o!D^U8kWE>ezO?ZrEqnUOoQqvtAyRi9l3UA;^V# z-miMw{xb5_m>mQHplGo-<Y6Z9xVP6TihI_dA>44Aw1*Ye5Mq&kA?iW!90RsiF%D*BO$;Khwoffia$rkI< zTp&F|oS3rqt20tPY~HCIXx$q{LO@2+YeV;ae%9XIU&>2BanO}YGHD{ml6Ls@1h08p zOJq;+54)1+gsm@@1Y`^0FS`=W5^g^B!>$zlmtCp+54%#PAb5aECd0;qdERmB?9CMs zY?~qgfoobQw9UB!4qR&Xhl-@RTA$tz95o@%{*yf1-l>SY3qP@Gp4`p-Bzd-H98nY@ z3S^|)7aU=fP&&zklp`k?GhB2ccPOSY6LKi3=3mXt<5f=2?#V8+WK5s>6UAL%g~-X_ zi<5}Rs3Bu1XrQx!2dpWRD124Y!K(4sPV%HtFt+sQK+csnnw#^13Ibc%=<; z(FMY@)j@3$IoGNb8$2z=R7zSS8gode-|v1 z-vvt+TQ-xscfoSayCg+>`*vH|tlJZpu3&>+v==p{*!MObKnNTWmdGRE{d%3~M>V>* zSiC;tRe>5pX*2O|Sbo#3J-eDgKYnn1fy=FdkZ#Iwh3Rrck)<^EV8)4`M2i|9G@t?7V?Zi_#fzRx?fc8=AZ@gtDK9jfm; zBb7Hn0{m<4P$_L4liF*|HPZdT7RD5T2*_%Ks@+iA$zR}?mUgsXmwqolUyYFH!otsl z+rE@NZ0tV0B$mA~~8K{)?c6doPX#D*nJc|v!e{jh7Wd>~9T=mr(p z8N}5q9&?{RJ7MyOII`!mp%re^c2^ciA#U9ZIRl8UH2AhSR?@69yfe~c12)a!=LRMx zoyP>|j(DcUaMDXA62ChfDjbcDMjP@-YTU`6gkBy1_uyj(CRNuw@@ZAghfKe!RQHRhgE{g8-Z8C?(+zJi_xRAf=<$5zUfl!FusKw&8fXEVuEpLa z6@NmS?iyI$h-y}BYf4QYetF7R&O7@CjwVLJHKgti{3M3qs+pZprTY}1S5wm^pfh-t zW`z?-I|}fQOrmY=P|9QtEx-kuX%pOFT`;QweE0bNf;YC=MEqgefje=t?dKLmJ%mjKF@}Kbj?;MiW$r%!g)~Ca(`7 z3Oj}l{h?Wo>qMCkCFr{DDBO`uJUDZ@$# zApLL<{HZY#;{nRxYThJD8xcW^Mh6uVqV#POz7I$#>z|%PRbJ`+OHyQKH%(|{1p_ao zv6jFyAU9e4%fR$Hi8=`iJHB1mfb}w`*yfC?mwZWPLi@z4fTYci8%gSRz!*z;&ZI!B z9g~EnI$?Z4h-4Gy-~n(AmCfoN=D{j5ke*FLG29@y$)Kdg{Vj8OG0%IVkC5xZUk3}o zmL6N&S;c3WlW5uUown=S93x%I5K20Ow!MSBuFs{0FKkpCwclvi@d-}C?YZGUDEC{F zaCJgDp{_+X;CrohC|)Vt;ds$u33{lQB&rXTBBe}H{fR+mgTO=h%bkn z^bF>?1L!*k+_7nBmHb1q0#soRtK&a1Y^&fp69~NlFL{T# z$s@mOmNbL^56u#yHsq#Lr}tg6Y{55^?~M$mV&7;cAA>|aHZ@)C(Y1W!QkL&s;ZIrj zYiQ5q#oG%2%uwB~nqJ?jm?mC$L#7~fDS|j-`Wp+{p8~Po?K!$8ibd`hM+vQesn&&X zK!2#q;&PLB4`*MPC!ss*S}V$Z55W__Jq_nV@GY8ilhK82rBPbxRK*x|FukL8k5xiX z@V5-G0_>q)ZY?FfQz58hUie(Jqv{6baIJF@<6)Pr4dwq!vy`tEEx%^?Z_P61;6t+vYPSuxAIDH^9MvEsDFa?6>gCQ142Bo#d27hlswmVEuXN=lTO@MO-LUeNStfdi?h)N5{?W))L(W4qHV+dWUS%`FgIntp3Ig+~JK$;fOs{HCd0a{L9dhHo)Z^AQB}8n8ps{D-sCx3yf3D$gjgV~}=C za3QwwoP*t|BPd-;11)-?w`G9E0U6vx6i{7yrr&r`N3n4nx6GI=HomNB7Y=uXU9WaI z?LQU~Hc&V(GnlZ0PJs$}#ln#BhK)F(0uoK2{CbTisOP#TjZs~3H?&bM)w`_deu#wH zX8{O8R)3E<#X1g(J`ppm_(szjSedLDBgx})F6xgiDB^Ls?UkTGjE^cmn6QCLq)k33 zvbLtmh5%A^m%#DmS1IJiekcSt#=k;ja;8WI_QP@^!B<|70f6?1Y(g(?OP{ z-B%B1Lls0X+*+JIb*W2wTLifUyEB;?yrG}0LBCRX#>=$F7*K92Ih_D0Pj$bD0(%|mjCSGs}C=t@gXL5ya z%2_JSZd6Pu?aP!-uOP+uFcbo@#EJ~w1e1Ka1JkCy5zDQI7#lR?Lnyofv=X*`DzA;w z`et`Xci-q=pKwzcI;WMw6JwjVVT|s4xy6o82Xe#F`xB=n58zJt>~=5~JUr^}h8an@ z=}Hw{EGA0Lj7O~7wpIatjje|&>H&X?7vy+xNfY!NGQL~p>z(jXE0KbQcyu-1a#umn z9kBuV!2)=+5mTngp0pxC?jeH56m+7jHfyQER~ZrI*2DTTsOHp zLEQ7WJDc={)35+KDaMaF>)wC(9`t7$E=7z`5yZe~m=b+tMabr6u&8*Nmmu6y)f_0~SzL%y!x~Jclig}5O;Jf67s^pq6KI&e_Z)uL zEN)I{ukK7*J_zh);cHTgb@wHDM}i{w;8qXF z-m68-F!v4&SBjQRq?!(!%2YUcHI1K75Q_NDF0KZ=5X<8>mSEbsnUrMco^nJfFQjKY z!f$53Q+waa8N?J$x7M`!%g%K3La${M)fNDJ5Ke+3B^h|D^bvoq!KAmq@ON(wL1;vR zEVCa;qYutDRU;>}6d%_xy+T1A_r(Y^k&jkdG3mzsLjNjW%9U952=$Fheh_&A;-b?x4$F(N3dz5kHFJ!G7SUeBt>&-xQ&34S8 zE;mJ+%`J?35`U*;^XQ%+$th2|!tX(=8*3nYMpx=KJ}7Ru(uLpbtA$gn!T*CxXlElrL&>e)Lv#%v<3!&dTtZ0+d zi4I=e-V!(`@!&*^-|m|i2JlMq4C{&UC~yhsa>up8G&G4}atAL&F}y|AGP%KkuB@eF zF?!}cl=^bIA4Y;A`5uA@>L7ajQ5`eCIZ7X=U1Uv*T_I!);(8tSWT2R+D91l>0Faxq z2Yp_&s{4@|<4+nqf79m<+VFlFDXxB*V19!Vkaq6c*$f0e5He4+t??p|PL@a{6#dS!7sh2d6Dtd)NE zG?BvEE=7hLNhR27&P$VBEUQ93d@5_dB0Aj?6Qf#yM@kFhmLjzh7nUpB^;afU|^AnTGBPOseWs&W?kpR-V5sP=fEpG=I;!VYF`Hky4Sx40mEy}1<-T$G(qCy zroPZE>31n&9ZO@h5Ee_g^o~JP=oV(SGAEUNZ~v6ZPc6HmhI@WIFh48<&(wgtB8E4q z_$8p)5qUr#X2dC-b~6VuN|4jHJ zlA{e{_#5dMdsoPd)n?`fov>Msf#%?`&dq5yD`k(nLn^t#g<8Zd+5K-K&jk@vn}}6j zgK7d(mmYtJDDr$%gN?vy&rr|SLDPBRiJUHDwyLfHnl61Rtp-30qhWTCYb{s^!a&5r z0nMm|^?CSiQy9FzU4%t3bLnV%#zmBq_g3Pv}U-jncz+xls4@ zeREPAFG~5-og0z$SZGU3n4;&Yx4;^+ARGyN`;`x7Hca5#mf##J0QNv3Hoz_=i?~hk*1f<^K;XuRH3*CWlt%st@IkJV4Ds^9DE$N4MVB#UToGCg5<{neG zMC7pIo3f7)zy*LSf=kmz+W6nHa{0u{68N97Itm5)6`B7EcyM6y!HC)|z16rPM0#BV ziL)XDk$dW@jehu+Er_qBAqjt}H|P@d^OPKWsDN+ho-25HLPFbq1Nz^XC4`{a*Z;;W z>pn0`_rEa9uubXz!Ym;_FiVNzo_EX=4=D;y@bYR8nfqRlo_rk0i%``2SL_>sFvJAQAIuUyn&h9Dr5i@(nDOMN%!YoA;u$^s+ zDz`UUrIrvkrK!dVNnnH(;M$@Q+)%;wNy6|KM~DrPz~1o%?8w$`7d-DdkvnfDN*JLf zMoWPc%A~KKVdNpMJ?ysx9PN%H1Bt_cFS8IWJ7L$f`&&uzbG(uo&nN)1@83n!I^Ed(e;i(<$J2ROV*p^E5-^K8)^0 zzYXkzMf*i53~#S}H8u}Ntvt-@duvf7e`@tNV7(3B$T@c=lS3U8S7>(jTv7-*PEB=i z?9f5j>e!$R7KdY@VNA*qgUt>=Q2|USzP-UNP<~QsIGH5%&DX<%i^I>&#>r~bU6mB| z`jmHBzBM|P;?KF;^{le!lZ&lb)gb)1Fcbq)H%TBNshOrZjIcgS5J~ZTvjf;)!RL{& zni&`ew>>)!N>QHE`uf{@6hf+5mA0HlBs1TnhtpV<*zt5Bv`g)BFfcz4by*BMY1FL> z2P8%7NZ9hQvR~1>=e?_q&7{;pQ^$Y@=~K9b`6l{YCJuF|Qn~2lzlnYCdqnVc%Q9FB z@0c!Ktli9tQPO7hNE~;dg)10Z`(;(4cyCESr;BjJLn>DvdQQ`=f@&gzh7MfFIM8xi zoddP_CRTkixTs-R9voaMkO6cqaU*dAnI)A6Im8ILsa=0l5ng5NQ!=Peun{8tGK7rB z05qY*L;%VffD9ZtZ=vpI;xoKN+SL+tucv6qV66}wjcIN{3R-cYV;m|ruh*S`%N7eN zkDyi-dX5s!PktI=Ume%h(VwW`LD+qRzXv@avmi~UZI}ou{1da>+JXKHv%Fl@{lF|K!*+q|^vP~@ z0fZ2waPTqRj3RGN2R1phgT?H~^=$}{mZ((whVGcyB_XfB3}~UXT;+ppm~COxT43>u zxUqb@x0&ql*0TJ^&A8IxgQ3z_h8|}he9i$9^5a*c%fBfv+S#kq;B zcnlk1CG?EJZmpvgT;!&*wCYvshp*-`7Q18L5)^r_{qaJAe3zk7mN;WGaSf8XQ0P*M0S@St;8=XX zi7Tas*%%T%p}Tlms zVZAeHaxG`!teac|Wg!$(X%YikN+pv2!Yp07FyT`FFU&IJ4`vBcsQhotQu&{lb7C!vfTZoMC?G*z9Q5Pwo%QGUvZBOUSj1|6rCfADAWhAIy^E@T=*6FiWbxF-tfK z+{0s%zcEYbcg&K;aO>;IXY3Em^4mW!OWvIz*aLp~56n{O1G8+uXi@pVEV+-@;Q3Yk z$t6E9OUmLGhW{_j68>+@66X(Q>Ck7NdNcp|9kVPj@bT?1UD6hQ)hc4 zT-g6$mUFd#VV0Iq9h#^cSGOChtP2|)L1&ctjFoAiETxGE73x_FF&N6 zVe&{~0O{AueM+u*vR}#4FZJ%WNNq{Otrd9b79PcgFC=Njz z9nv8ke5PV{iKSlj=Jb2u;?>+Zf*I(+yq(>b+=^p{misx9E?nm*!=n}{X~rm*STW-~N_S@k zv9=meeR9MsX<;yGM36k*qy!0IHgFHmbZ0vCLkRbRixA$#6TkLH)LZ>BKtev8$tUCuo!O3xb+!D>#C*KH>`@+Omt&oATY?HXNkUR6ew1rlcOgJDY>o$@PHzXe6 zviuD}d2ZvPjl6?rT2RM$G@4+yCCzPV$MSP>XU7S@6dIcxaV%}wACYs(GwZ1-WB@5+ z%Mu#Eg1^UX?(Y*SiE!P4=2*w{L9(KA3`v)0Qcn}i%K}~8jatByNLbv1Npa6Xuuo}mgOh!`||t4r&_~4P6XryKG&h+wO%^J zH(}+~=4TgR>4{k@WxLc^L77BXPu0d&|(kS<3p`yD0R`G*YxM+yFi~`!$5(`$ikRCC-Q@3)? zKrm|L98iz$YQ#u-s}2o~rG8P}ix9rq3;v8MsXvsZQjycC*{MrlvpI)1RLe+rg3Q<; zxPrfFL*}iHC@iegnn^%?9cQSfYkxWAIoU~h1dBy6XRyXC%x$l~plAvhy_7DoA%6)H z^qhHyrKk`lPzG;)|8#DxRyC!sAtLimPa4)etmG%&Y)-I>5Gx z=Xc-Z;=%d^daUHkZGy+4PUzrjYz@6y7sgmweulM`h#yl=YAP&|PBx&AHQIG#(k1&@ zW>f|)Old+6PJeN%#9l!*fa&M2*1QlPXQiJ>9U=9%;x1vy1be3}BmPBM{?3Q{2W9F1 zZ_1K1f>OL)FYwa!w?_TfUEp%IJU7BrI^Q_=C}Lbnnu8&^lQobCr#>CO56V(r!V++) z@jocbq<6|Pi>Ok$Ns&&YHmCz8g)9Fu6Yvkp67z4$(k}<>Z_4uP|AVsB`JgOu|E4U< zP3F1sbH^DNEeHD9gYP%94_X(vBFl{r3lD3HOJxH2N&|PFd<8eo&U(pBX+V zOYHZy&@V+RO5p#bEEntAu|FtFxj&TU@y0u4`NL`8n~}Azi}+0u>)(`R`adbl$iFGe zR>y^i{`a@av1Dr(PDNC5Y zDNFi)QkFv>l%?cflqDH{(FbM8VDL}MGU#v0@@w%E7+rnf-;^Z|w$i)|4q8EYNc)Oh?0utg9}ej!ajrxM;fi04+66H`|r+UB0?#|YQFp z`hIHSW+UEL5LZ+=h;QcS-UmEGuFMt*Am{ye!~VNXC(HO!q@oX8?UJk+u&>)Y^C5j` za?iguq5wC+NXO!j(;T`hEZ3de>UJYJZ2j>Y4{*9?dbT#;BU(xu4$!lpJU=x!|tBLRoyLH-$E-A*RRBmOBIftJ?9GS zn~Kd5bHUtT4?~m_n7Y?EURgR{=*gKh&Z}iwNx;wYv<4Lh;ZmwH1UsFbpJR(LBwbd4 zG9hL;?>rtG92Z$3#7GDVi>hxI_`G`cV`t9F=>#tJ42}q}=`t)M+=pGFIsyurPl5O! z%ChIph?Dj&Wl8c6W!bB1c0>)sWT47J^%5)jm$DQCaQ&q$x$o>SS{1A(7N=Zr%yG)U zD9gD(n&|NbV}nMuC#cf=KsI1pc;UV%ODmq2 zvF@}Gm6!&eA8!~4x%6N;KbL@YvqX26jE)7LY%NPEw| zQ>M*mQ0R*}z=h8_Hx-ZjJw(1M?{ZQJ(p?6>6Dh`N&n^_{7yi7VH{AOSM3)_iJH(QE zK}Yl-<8lt+BgF7zMj_81cp`LjK@4Omm}T{lORKlWn{w>Bzy6^tL3_ zSL-qb2XgN6{upaQn>A&himP~%{}izJ-BWQST{Nb!gsJ3aSjzzW&f!RliRWb= zM)U}aH!SAdAA141^W=%Akn+;>L$B0{Q-Q?|ndjGZr`mj%9-l7S45oy7La;zd1Vo8; zCpt&=ue!+obU|){9~fbJ#Qn}ftQS$&9eZSa;q%->dQG+I@a(^n*?VFFnVo=^yP>i8 zM28S}P03eG@AQinY@fIwN)+lR?M#hHSoB4^VmmfUtm6W65`{G|oRYUzzdz8Yx^W0S zvRzNOou|&;0D|0cH`^*mxBg%is+mYh8j{*cYQC*56+!|MqCfcQJsa58?L@xM( z4cvR~WDaCPs-@))kr&W^VYfu#m-qXMV6}>pj~PQ=-j0u|KeDG; z7YH0G-a?;@lWwryANh^M1JlUO@K7&TqbP9I%_7}SZ#mfYBo@1rF(UQoKISP5y$NxC zCy*d4Ad6aNmgHKh*tVm`o-RBl!-<>D7d#%;BSliCU>^2BiM1~!bPrS}+;~lRU=3i= z-I}gGCFS;HE{C{PF-9O3grpqj8?Z+JTm)^S$fgt|$U_>lm6$wH2X$;fvkO@YM3X>D zy{h#n$EAocI->EQ^fW_~7aA(Ys916OYA~8^8Ky10C%NS8gl6vpGa2;fcZHE&o*?IIgd7n7#(Bx_e1#Z&n_O;Wz?sp&yhqIpJru0s&qKkf0J) zAE340@eER<4sbaY>A30hZ_%j1CLW!L3Dn)XT^M8WN<_Rz-lV3V1RE%X5B07}BYi6f zZLZhAS7BKrisCdz^7~)kG{YnG080(yYs98fkoc)mZF$~mW4sD?P1)3^pl)h*o>UJG z#laG!Hr$z!0n_z+yJQnJh}VZ+t;!ME$(1#lF4pBt0^iG`;R!>F>s#aIGdP;TY)I-i zX0>srzh|^hf)25zIe;EQcihKrNrIpDG4`?hc&l`z5o0Z)sz6+`55BSs53yr;pfnlW zpU^%jgT{G3)&t~L0!ig~rZavFr>Zm8rNVCr@x*yf|L!0KlBI)tqT-e@EQiC>_RxWw zCEM|VTQXC1F+^T!kc4-tj0&>D2RW_+J+xo&hiSbnC(F@x=w3a4nKs0mpm=ED)0<{Q zAzRTIuE^%h2FO~oS{XjEx2Q3qpt8;gS5h%U(vWcP_+jmIDHv#U3u46%Bwmo>dG`9G zb1I6RD@5i)hgA#uvuL7TmD*x)MFvwuFkwoZe06CsX9c>Z^g}p?L-H$) zUfX+fKWPgtLk8paY?S5HkdfOnFAm?JGIvC|HRN4VV^4n#7}jH=>{C$=O)o;^Qu%GG z9Z|ixuwJ=6A5qaW)e(kQg9ajgVV1%5D1R|an>k0^=>5N#CC9KY>qfu_&wpW-D1R|a zxD*+~JIgJ2y5f5k4 z%P$5zBfJ#skJOj3_Kg#FcrrY62%14^FV@q?SZ|eY_@cqJO({V&-L`lHYX0g;EX{$# z^zAuHm{J*uQb}upIDg*S1QtiGd<6fbKcda^rN-(aUW!$^h1lULe27qjMeg@R^W%py zdDQZ5;PfQx)uz8wXYyulUtj`1a*%7S0UVP`3|m-nh+Q&a5lwBNnRJS*xwfcQ9z#j! z-!!Hccth%~AT2k?Mzf1Jpi*1q;~z#gM~>seGT|c+UL5<0dCA`l+8pFc2gLHUOG19S zr7c4^D>2@JSm+lN2w9-kU6T36@XCrdhZ|mcIoe9tBrhdWJ$%{js}z$QKXM)N=%gQ8 zwKB@LkU}0d6RYIzbogG!kRADmn?Umq>i>gT;xl(h{1431%$RoZUznxBzc5RR1?xYb z$aMy2;w;yx>aC6;^a~>HT<0lsRaaF&2MDN_Qs!3qe0J1)Sk-0srY@&%-r7fmi)jybJqBa-wTF4Mr(I)6eRKFg~WJjPxIw&CYLZ{yk zw)97j3;M=+NV57uqs$j(>A=J05OU#|WqNhqlDF4=#%8Pq8655;1ZMJsvl7`r?8iEe z5oPS87|W}iqjdia*aF%WdiN^S8`_VQHp3Cg97iP)#Uzp|47iRfL zTB+M(uxqr(sQwp3j#ah+r^Itr5B7!h&4wOJ-VTe|^KHFrMB`uF_UQNrv&3s5`9GLt z)>8>Wm-=im^NOES9I-*xa4!>zwImU%?F|=JeFO_C7sQo=#=kMkiocj;MWFi^W?9$c zwJn1WXD{)8FiTU|znEqGKbWNkh{G3VIa4k3AIwrtyrN8*YGNe@EJ zJ&qK#KuhPsH~q1Ia4@z$pAjp4HhoHq{KH;1=G|$@Q)3<*`e6M?B^<{p;yz?$CR!+; z^~IrnpJt^qK~toolLIuGIu=sz_kt(dP}!ChG_TWzN3}XNi4RwQ!sOel zn2gco!~l!a2wK4%+FSrp^~Z!h8mgu!XBR~H>40Hl;=R5pmRGcio6g2c$yj{Q(k)Gv2@!9yi#JHDWWyc`UUeN1WF#$D*U zp&s5VadHM=MsSpxjSbe3p>O5mMQyV0>7`|Unp11cgW(XrOXe{c0#qnE+U$*AHk;z4 zG4LKNWd4y2g7YFTPD0yJWl!y8gEIui!2v@)O{DZfh{wY!ny#=t!QVg9EXdgF>DbPzS$NneRPNTeseCnF7L> zg3D6QdI}E_s?eUVC8WSvQrk-@d!{dacyxXd*|-ys>UZBOO)l8%WtAlf6H&6<5{2Px z-ma)$T*&@>KdbNbUU^vpimT8c`>=(LyzYJcVB?vs*1pYXTG)FDCV_wL>+L$#L$Hjm zV~bp{wXu^0_(>wA_0fsr*E%KREm7&|^A!G66ByNQv|;;fF3A*V|2|>k@1ZbAeGY_9 zr?X3O^r~-#yFf}rR3|XW$OWwNF7duDQdsaTLlarha&meW*K!@F-Z)zS(k5mD%KLWv zv|=4NRt2v=+ma$75GYa7y)1eR$^z2*gpAvjyCKlu&gl96_+faCs1yB~$N}zuxPyrJ zgpB-2`j}DW8;8EV31IY?2ko8PuCU?wn5<8+`Y77GQ!58~nJ{wF?GmcUkTel^LhKKz zRrA(KBsa-8J0zXLE5AKDiDkGS=62SNPqD5}aA zKdpS^hPF3J=3o4GMBgru{Ws_$ss?HZSwZGNGqmf6B0i-$TP|6!x2PY1dFJ}G_udYn z(5LnV#Fs9yWk32L{P(JM^FPm`jDFwoA$}ae8_b){37D!pE0BERCHpCAM_~%M^xuwN zB6GeyEEHU~B>U%f9f+K;eZF51f2#EBX3Kpv+{Vq$eSqF??si-IkZn2-$6*iP zepL*A?nXr%xn{CRo4V=-saGJz$iT+vkGb@0GdKTOr$92E*+oH?rzSn56&BaZ<3YLs zk7tnPf6^rEw7>0v^dYhD9N^`zd1LrICUOu1ZKr-;j8-e%543#rV(T3GWSO1iQrziaEt)bymEin z1ZJ!pUJ?4>487{R9(w9{Bu#}kngxi@+N;5D=U-14xH~8dW@nvPsqHHpc&P-MrHI2= zM}lRl!l0?$HXNzyxOkFmAh1#NHn2#sQo3DS#R0d~ADsrWt?ZhBMOb4^A19=4z|*Go z-sSQ)BBkZoMl&a?WAGP8`doyq)X7g8w(fU2GmY^uyHXI;AQ8~k_8PQ-BFK-W_f!A( zOXLA6pstutfnq3XyPr8@eOjZGKc5vWUDm?xe0yl%Bz;LoPr}>Q$ll!yj)?+elJSJFOoO zjz&OhcJDT_3w!u<|8~P1H71&b)LeA7a<B*d;0J18bKSM6Vtb!I4gA41=2J6fgECl&{Lv$Wa7atfM^8ddXNY&o zo~ueU)dL^ty?p^=Z?p#T0WaQ1=f0`;hW5a)>W7+?P;XgTmxNn`?T$I-!|Fq&x4I5j zK#rdjo%THforGrBc|!8hYpNL2)IXQI)Jl`@=hYI6ke z-i8D%$O8x=1>+tR;FRI{8vK9zmU}`!zkEv+P5YXE`Idn-=1i=kV`aJAtsZVv=D{d0C5EkjP5aH_ zX7$@Hf{>q`cI{Y6dI;y6)(L|7(%-NU3Y<`}PO2d~OUdgnYBC6}2XPzl*cQQX0r{5g zWZ<~CN~}VWhIYaC>@ZAC@Ptv<^aGG!gea;6N|lROFHcyFcpB7GJ{m;_uVu^xsA_{d zlB!Ka)H=zEsxZ%cXLzdp9;y%55Bes_8@eP%be>F1DMd?I&e!y;b`q@Td6uI)i|b%= zTyM!^2A*%p0E1W0Pv9ikf%&pI2l0J~X5C_S;r%}hLAsc#bYO%ITxR8S*>xr7>sBp+ znbAy-yR^MMoVVhjCMD+buQ*8c!*M6fjI*$Qd_SmXvGYn214=T#oJ+pH&gFctp*8TA zbNNdA(EOJB~~MU4^jE#tQA5Y*1Dp)EIw3ix80IZE^SWbz(t#m~H- zvq1Pu8PU!mpI1nH+Oy(vcbuO$9;i2}w|7&?8VvTG9iaO4Yec+BHc$Bp{reA_Zys1S z{Nm;C%0$8=`g@{8!_8^9dsU{8s}2V^$YMpqVv`hIimvPKCXSX;!eXqe7j*39I zJq2AxC9|vpIbFS6!fxDJBIK(fE%1a6TTNZaZy&_dIh*ms59!&sosFkQ?zeb}^6Q__ zxZ|!ncYP+Q{P;*vEYJzt1gEt!Lndw7yY#;xDlBLIy#8mf^jj(s%%kanpDq0$J3CUV z#S$*yw>D)sdb*I+9{edtQPuDxN79&6jbg%!4=R71%SB**zay&FC;n>K_O6siz5R3C z_6fk6Yi9H1H5VdhOgM-W-}X8ChM!V^ebV%VNrR5?jyiOI)qEjONORwlCM#m@g(-gP zEcJ8;8~l1YNNYW*%Vn&XJAps?&2_L(4|353v-CRpe{(L!E>EFaYn*#IJlg^R4m%q5 zJ{LnHM}E~3h&jS>?C^Z??f5z&IYpXxMYnEYIDF}Etx*NxubC9?_+B?p?|vHw<7uU$ zf&e9c^`3}B(o2D;xjyu*KWQ;JV{aeaglz*u_P6XDoQNEpfIg%htFHo2XHkF*yq6V- zm)c<@M}m?=Wxxg)x|d2)%+bVjAqQckd)II~B=l_x^PPIxw9d#Y;QGTFxr1%_sG}G2 z%UktMEJ(FkUhOuBdHdkcogF{qMIhd=7%9ruack2IIT!lNTw<&4CzJqY-(CG3k*0zR z2*kkAoqO?^yeFW=n4+|p^ijR$0so7+d~a-QWNTw_Ut5QTf%!)L11bo{m?+}A(psti z-7&}gszKL#2|X?7Pdv2Py=rN4=e|9C_Jlt2Z=PG6q;cd9yq<}i64LR!v%)ucy|6?H zm{jqyandDDiB@Z-I2@jQiw@tT_Nt5|zrJx#Y))l#;C^=GO;F&}FVftWoCcP3YKs?6 zl|H64{UJe2hV`vDQ(Ri%<^>6XWG(k9&yj{qn8=LRj6z#7U3NqD=E#`J845ts9&m-y zJJu^I-5{XMuK2iMB)PnbP6Y`~Nc_opsIqn#9ixgF4kPrd2D6-1(E2BCxgK=5WzoYn z6s&}Gi|`2%opSh34j4)N^YA$*kaE-{$zma85@)Kv zZ)_=Fb?IFc1m$mGbBX-`2qL-GcyrkJ1K9Y59u%viJUUbcZ{g57ylJKCHYwY}}T!zl~QZs_q_BnPYEyolyVcWd36W2PU2^>rQF+ z=RmM|OmjS2e8Wi5b+;Bv$8d&%j}g{yEMF~}KlEM#znf4tm{7H3&9nrRKaYV-+j`?C z#wHH-&0nodAst;ph94Xcz%AS<)=Y4I|M7S8?*)}4l=XO$HDy^fRfv^fKec%Hw!^F8 z#(Hn3JiK8|;@yV1>|M?gdnaNa?>k4hTw1nE5re0185=ZQ2i-PA9RAD`{(9iJiFc7X zyB?Lr55i?+G`yYe95zT|Q6M~thRYQ{e#u3fz*R94K|GE-9=Sj6l2D&2y;DMb$Y><) zjKIekPT&(9-ri&E)W-qG!HseuoUs^%>&y8P*9VVtJILBwKb$GCA>2zt>uHia7}NMA zpNS)O)Kxeh7Txk6Ir}yBHPJAt|Iy{~-gcL;hwr}h{qUppYi8vD>U!k<>_F%;AjIAN zZs!%P!?ftNP1s8hkr+=acgk$K>-9#k)S{B()+!N(L z?|R?dDG%ebhT4AeB;UdjJ8PioL#BJLkU8Xsw{Yd2VmeoX*$+ytt%0~YQ`|G9Z@$Gh z?EZ(kEd3XC3H~j0pUXW*^y1q|kyfdbDYhZ@y4I|n8LU(>Jo8hp;psv zY{;*d(CL)&!;w|JRrge2E3WOszU^st$Dcb^;5qYx<2LT;kPsf}Gwx|oZBP_fVfWA| zb?u4k+t*B$f~-ztF3G0@>4#l${K{{LPyTTrY^o;!ym>f&{ncUi+BV=8?s>|8s|#V^ zrLH`7$Y5#q!)zv0D186&89RxVTWD+65PB^@Kb+{e*M+G z?=feg29LUHg?@VbtOSEK5`hMBItw)vpjR}nle~h5TH5G@4)Vb%rA8<3~LWh9japm3$ z&ILttd{=uCe?qfI9p+CWR|1mBmhn&M3m*FXi>LhAZ28*DJMC=WcXFhh zNha7F9_JAq*flMR`D}RY^<{+1><$ojHpj)G-xn{-JJsQZ6%7{;Q#45q=WUD_mQLU}oXg#LAUf`3xa~@x7uVaEdKFd9>Pd&a9U%HDwzOL&& zyhD*)C^YT)y4gQk$gEj>bawq@mT56(Tdbt`dIDp7iI=Zmj^Qq6z}Bk|4@R97y0hGW2)(&OCX9ZYHGmsRxq+ZIeo3{V@F8S{PFN@A)Q&b_ zK|}zQ1DVndO5O^&UVKj^ItKY}%ZpXnADrL0(<2!PSvZ0V`)(Mdj#y%{2HG@)I7zA1 z`_b7yBpgX78Y$o+B~c}P^hnmhDZEX8Orbgg)oX&RE4-RY3oe~vqx5?;24&@!DajCq zhqT9J!fthUg2z#~eMGnq3GbO~ONE)h-ZB9Kk_TrZYtH#LZxsQ3@Zq*~ZyWO66_F~{ zCVR22#tC9uL!okUgAElfV5W1bc>8B@A0>-)UQ&$3vFI3ec7YnzZnaA%O_>Y!@v7t| zvCA?2Dm9;ER;Qx00cFhM0txYT1le&s!(AbQ*Gb_dNSr!S-0!_YwmkqkS5RG!GjU2BMOU9%2_D7TXafXkR*82R@)G>)R=HelS^gxuY=etIvvrp z551<8C$Fl}CY7AxCfe91A)Tb`TE#&;FU$7jA?oTTT?3V@(qZfe6%Kovg z9iQH}YZtO>wf;rL6#jP?itF|MN9046Q!C!LoDb4-3;RHe@hX6a1)$aXKDx;tBevTj zc~7&wQnDDLzGH;38LWXz9X_t zM<~Z{Qs{&2gfVr4RX&;y`cK@g)chizoOUQ8bDOSpBXa8q)+f0lj5(Z=YhyE0LzP4Iz zf!b6Jjd)M9adZND{FVB+a)B}GzR8Hing*Vz-~cl6OVINR@C7pg{eSehPo*kJ3kLT;QuM=EB!nNWuc8>I*<-Q@p!OLj8;J(LF z@_2l5d$aVQ_&)DUN}dCmZ)<{_*gn(PFWzHubhKYZ32M?&)B<_bf_Xo<+D1Y3=0h8h zW|oH3LVId{5x!`|khW(uu%)OqPB#5|8n0fF@@bw@^KSgbEu7V<h((k(N% zIfek`hb`&z1+UXTe@|0qNaxX)7wwjL`4|hmYS-;a_j^w8yx#Zg4G+1LIXJft+_EN9 zTt_XtFw>g%Z73r!JU$_I)Q}L=PzY`IVt;N>xW{->a|r%rj$d8k`^)oizBCYrN-YMX z>=;N16-aM(es zlDA};t$CoWd7^v+rUQL3$$M)!-Wqb~d+W$6fAnGzg8`WKlFiPqxWQh3b!>KCz+IlA zLwVst-iP`2;2y+sjN?0S133hl4rdxJ?s1qP-GzBpq4NWQhGyV6H+PxQQ>a0@Pg3(dQ# zmBA|gu8vD_eW#n7_CE21wUyqz<;dR^>h6)<##oqyISY}ikGeHGryu{3t~T1 zhsYaaANAe;ikA-0=MKjb4#9a}a)E|I9 zs*)SHS>YR>14p8~zZb3o_Cag21@S4HDxb47pX=hR#A%zQ+NMm|i(d#N=zU?)uhI># zL8W)J84_2^cix@0kyRPq$&`BuJ0*aA-bZvd4_T#qQ$Nqkz*pMji(FAR-1S2`ab-9& z?iy#jBwjmLspohW3f-f(-JK#l+>v@NmrXiy!P;|;wJu3QJp^!1_#VBxuwLGkQ{QtM zkKV;SHdrt_N*TH=HlKwA{S|v3MIb!{z+io_#8xb42BEKwsOQ3uuY3#@ZjI=kGe>wr zi3u%d<9tkg@Sv}mgh%6ci!LQ{u6Jz_4$9+Tw?103d=_Hk&RF>Er%!eXb|CGZH;sf!nBG2 z+be`EZhuhVZD^Nkb8Oh1;hpXJ5N_OP*1L6AyPetlX;`zalVgU%1X90k;nmxiBj`*=!Ixdn|c4e2&+L|3!) zWeN>r6f4C8WK|gDYEig3DX~*@zT0;B>pGgd+DANeu(WNVzA~_F9In4V|^t6)YgZf`s!;%OLG{o+xWs8>hoZft7XGqkN7&yF?Og1_0|rN zpX*t|Fb-+36z2y$cOs(!<_jJ8!VHtcu#5Z<>hwt#>+^78fbcrZP#S8zk6WN7((JY~ z{?VHJu1)h=ya0vpkXeN)TC*Towh#kS6+NQBfpo@%zv6CMZ+Z-EswZ@2+{s<} z6xR5dWcl($ZMi)lpZgdzK8Dy|R!#Fyk*%hWt%f^Cf3t%#<=K=zj|Vw#zjfR2d^~nWwiYO#cV8&FjGq4|dJ&IA1j6lz*MYsazMR5c03tq&r%t`2%QKrU7KE;P zhL6e4C!S5oNiOK^tXsCP<)TB~ynNTtMJ~*5TUnWgScz~Zzl_G&8pOhyzQ9Eh?!$$E z=zFN|lXh%VOnsd2al4Y%PH8Oo;Zn0sX>9lwc#WL#5ZNYvegV0=w0q1H88BJ!5ZtEf zcpPhq<^xvMoPd+FtVb4s@z+UD?hNNn-2KT%wuX-|c10wdK*d9!5F=6SLF+zE8#G(C z2EDK*38WYn)?1G5+v_m5mEml%a}XV%!=SE;VCQ@mH9bR&@AQn>+?WTFV}BSoBWT$g z)WR_ALQLT37V_GVw{({*EM?gz#oUA^#hQdC2XY|HW{-8@=4bwJYNFs9wIDZ44Lpan zO*p!@KGhpgAMSje(L`hF5)F6ik|0m2*Y`r1cdI2C5jgIcZ>a}Z@e|^v75R3h@bu?} z$PD<54TT4XAx2p{VtN>+y53avR)pIY6sf~o$D?WKRb8-Z}T$hU*;v;zs<|+=jGu> zjb_JlH4Kfz6C=Nic|y;lilK=W7G3X&ofR8dhRH^$0}E<4gG~89Hn%Mg8Gq7k#wHY! zj6`t<#Yb}K=#O<--2LoIpO;NqoYV~taSZ-JFCo9sOQ*t9P&m7^{Fp5|-MGAzQ*yX! z1?K4EFs4~308_)j+pklaXSK!jx$M8%rC)=`*G>vBR9Wc3%)jns2+oS32(FbSav1x< zR0+;pi(Rj74v7)JPj<+@_~a6q5vTx(5zE&Hw}#0mHSht)K5LtRu{ZoU1X>_Ig>w6n zl)4}?8-A4HPvTOdG^#hv3_Ox&^wQ*ipqCc^4ZSQrC<^>SFZ&tAvE!L|)o0NDg6=kspd{y7)`HEc?H!mtXMX|BvdWZPDrW_(XT!|Cf7d>Xz5e zxZ8R1%oY7gt;zMs!pwA0;gF-#-;%2l;M$ePHtR?Azu-#{{%1pVbs(TvTOc4(AS@sg z2YVMYdlv?GGh+r5J0nMD1~q#t85KG;RdLS$n|rC-Zl$Wa+(gfLsBLp;3H>6ERwtxX z=TIjE^&;+tgr-<0rlhE$o8}`kt+e{ue@@EAxs(bjji+TMnCjoPR;oi=5$cJ;8 z2&qnG18269C#Bu@ie_As-xs>oU5kqTmox7b8V_ZOrzghhha7`zZ7Ux48zP$nI~5ux z4`&k-(o$nI@}MDy5nXS0_pCjice4rtpO3R>pQ{Q2?|0Xq@0X<}NbJVH4;Tue2Jc1X zGPY2_g3k#wX_l~|NOiT!KE`DV3ysuweA-Qb7!G>}8pjoT@CLkPkAB*DAmegH!-D{M)#h>G4_Fuw(!Y zoicz<_$EGFvyW4>!>e%S1wfLz1KWGgFhs#LmfGeDqmhJG!UFV=7u`q=JTUIM=KLdM z+WWu_!a^kH=j1ldJ)O^2_`e>X`?rHC+f?-+h8zh-d_QlaJZh#-l}eUE3?nG5>xp!c z*pq7I>5wA56nz7Uq6oeTp(+#dBh`a>28#e5#}KMERy$o}B z-^(@OMlLO6ND1*`Xr=M-Dg6~{1JW}H6gERV)D9mo^dJZyR#P_H&I55T% ztO3kefhsLFSZ%9B>UYVE5I!7c@1hG<&A!xn_+4O^r@;qZSc=k5(wtsXG8{Ki92e<6 z2)|W=z%7Ti?p$Yq+eTSw4#ITa)4ghRN5#uB9KiG|6X&Aoxou)_|b|`RcJp}Y%rKMP4^RAj_|AN(F&ZNPIqGD z1I%##Am4a9?AmmH6Lx!@*vV#Rr=Mr@YXq^~DBvYpBRZu<*S>0rxY~c0Bwl2~&IvVc zPTb?;WO=-N8KPsyz>j(1+1Y$~@;!zF?SQ-wxzF61fum+orpwm`mm9?Q*szQ&_S}$R z;r0EY>VAR^2hq)V573tJE+0bBEct-@@Y3|>Vi#=LKH6xEtEISkns5?L)nxs^PD`jl-$ypIm~6%YFK~37u+vL&{k+yT{dsj1Bm5)K+AOug-=g z;Bbh03Yd`2bTIjovgxEAxd77@08`UIDL&MbLZZg+5pRc zH5BPMv4f`0T`L_JnI|IHC%eLr08TdH8 zWoKGaHPxDY)7GC8&7!lV1B|^Xwt^B-j13=WBwpquZbJ!fL*&Lk@DRo69V=@fvB*LK zuZA%8u(^_kLI>U` ztW|{0f%Pkq%yCMTHvkf089ycin2-D%)4jKpRP2;o@YP0qpswW?Qh*0MIsWv#K?_q} zah1B*gluQBWJO-dW!V6Gz-k!W?za15&^J5bdADzl#X0a~f45Pb&0)lq(a9qXIrp0w zqbgAOQEnof{EV)2P&Q}IiLml9@|9H{ECF`ZvvHvVT+ch%7am3i2$zPmL>mt*$5;}4 zmU}OBN(DiEJHzp+GI$y7s7g?Ttvx3ESujmN@D)^TLob0URCa#LlvZ{#{Ms0c8!Ws0 z3c4p5fgv}(274|M_Tt=-6ZCe%<(XNb4lg0B*U|#GPOY|w@;gXJ8O|IX+^_m+9KD?sdRj8ZnL)@UbgCm}y z7Q6n44Qfkjphc+RDRJHgxJe`y^UR#i&iFLiu0YJTm5~vGRktfleV5DV1kF~P(m`ZU z?&$-{^{8kwP|=xWYvsN0E?Anv&xd=%dka`#MsG}8Dxpp4KOdQdUi3Sv zux{jq9O+F4hIV584ZvaFojzDy&ihj-oP>$|Ik0phSO~a(8?nnh?!$D(ku7v^s(`TI z^j74_)doKU8Ly92wux5C9kS?yIJ+DA39Q79RS`2@#+7*exg^i*DrBxGYJT-hpu!F- zsN;dgD~+@fND~Vf>WPx;_efcRy3+$&6=O_IL@bR|Nh%%E4E3Fu+3`E`rR5P01?_gs zpta6Bhti%Y+9&dv?^hXeZFT(eL^xhGKgle+1~>3R5M94-LU)zJH0pyBPu!4U zjSW`E{APi8eeCW=I9Vc&ggH05GUvde?pBl^*wjF-tqdgKix%B&F1%tRpdDd!98Bd~ zxwttCwYwtxc3g9Owkg$c0eT6u9K<#FCcuOF`|3awzbA3VLSFH6eyYcKS60 zeld^*OAM^jBSIw3L)xH))d?tdb}w$I*OmfI#_Jl5N4_9c8r9v96-S-A#qTO(&P{=t zub&}iX&H~VF0P5VF030?>O;4CM)T0Fx;Zx}kkfcZxexVdDkPI&DztP@g~fXns*516 znhwU91@Nmk((%ZjT!B6RIdD)q=;a~L2LGN{@!?|E>eP`{+Nwj8XA;#Ws=%EPcLihm zC8V^yvLKj^vlbp>awi;$k?*FSUDzhXP{fiG=+j5z9ss;V2z{Y>R0*C4F~Q963diX! zw2DdBnB9#m@S7G2zSq*cUy#YgZXdhJWN!?$kuBQeF%)-3Diy_UwbntP29FBrx$K)k z`gf@TSj=CA670j1sGRFW@T}Bl+8-NC(s-Vdv(vyr#jCs@Qr zj@v}TgGY?A#!V@}{@}*{lo+i!NvgtJI>Y!~sm{Q^T^|u0HTF91L zDgb%P*pc6;N;qttKwRr@wRNk}V^LNIAdRf=BZ#&zP2a;~7Dw&0YsnLmwW}}ZryrQ{ zM&kt_k(`+kAa<|hZm0>f>S%HBmMc%wZM)#I=?ch{uO*MH!^%r7Rd0LaF&_AVTdMhQZ=qOK%I>a;E(jM|KuNyls9SAJ-Q6Q#j#RR;0Gn1bIN{a%Pd6@3;eqOjIFk^ zzMr6B$AnLdyKF3uUy#lQx*Ys;>p?8FPk_j=<`WBhO!(kd($>s`i#l{70?|E8%SRah z07<)gsk@ob)3p|SC2(oZdrtWENnMvRWt(F=m$#i{aH{pk1Qoj#q|eWk5jq;0HqOm< zadJRraF*AVJeUrjV*M2q0tC&ODyia$F6t;@ArLdENvB;|bXk*?o1XcQZATXIxMh4L z?x(xf+uM+fb=lxD`O$jbOAEipOm6B8jxkSpV=kBi{PPXe0rp8ZUfg?X?JJN6?v)yd zt3Uv#?B05v>ELeOJ^#5qDa&asjm#Z9Z+(pt5ZGCBk7mGNsUZz9D)q`U7R6W(1_=JE z5gD5L57Az*S0hF;=_oXant<-ADm<^mqH^Ois=;NP87DjlG(-5XX~Qg}>>m7)lz~LA z-YISH10SroAS(R39EeBqg=Jwn38!+n_O_l3F|X#~1?x2K@S47DUoN-E91a9plsop` zFLASP+6%LtV#*VYoI(0Pgs~HPDA-YSU>07h|EE-|Xs#~&fpRT=_yhIXNFe7`L{8W} zRT!e8Y&s3=It=a!CF`coJ8!_j9#Fs zksfzv9EE#U1eRp71UogYJ8NH%iPSgcI<_2(n4Dx@D?@%sS@gYZ$)$M4YrIv|_m!Ib zd*&|FlBxTUrj6*UHIjwHg}=$Po*7A%zSajqwlsnwAbOKzEZm40m79$*M<&|Z%9aG~a-XVjp3x(B zJS$cGf$yCWEUkDXQAi#<;D*RdND_=j3b?KBHo!a}r&R zMklpuqzkte)MUlgOUuQo{u2hMgS6BseA-w@7tzN#&U4oIY)PV|J0}yKVUWP+@V%)S zsuy@0&$md3?`|xo(RF{jF@!TK^{N63t5Su(k!dr$!z$xOCwm4<*Pw= zg}9%f$n6XE5qv6@R~|=T1$lY8J>%Pl1G~&`8pwLs=_SYDZ5;(JdIJqL=Yl*@y>h-7 z>K#7miC0s1EJr%OGPOGkWr=S(egT{EH+Y310u*_Y{b4#VHXuGw!X{u37-Q?is(U2U zq>UTEHdrlgB9}^OW#lQdQ`;1g>Xh)ix;@LZ<2hyAvVyC%E5-9jYq*1&}s3-hwvEzCyuK`a%J@GcGna3%=@yz5?TG9#%}# zr^5*pRlf@M=+|UKd@GoD`X#CXm7Q9<3!%p?4ryZbNp&Ks#Hw9(&idws+}h6`xFw~3 zNI6G)p6?ub#g8efFs8yR}grr!(RE&moJO?0*k+9xhA!O1JGW|qJoM8?e04+7QiqhJXkJ7j}g zvn7y0&9X&22L0xW{b>GbFZ30~P@<}!l>a+>#*KL+m1+^x*-bd+sb|v{$r(42slw@dzR$IVrfH$V1`WZ(I=9o5nP_d z$+0tI-w-C)2&}Ekb!D_h-)dZ$* z%^MbbKCU13V8Mts-pVes{-|0QZe(7uP+er#>>0ZMyLTfmi!O=W{#T6qbNV&>XfZd| zDngYg!L(whn)a`d>qC^TAI`_$$nvKNhX|p%GFd1p7g!IGljtycHWzIUFvO6>?Mxpcaamvwxl0yy^{jDdl%k5$po&#!1 zgwK=vGqCik;7bsiz4%tkM-oiolfQ5pHz_^ih8W#bklIc`CUSFO2 zzCS%kZ;c05I%EE@&g5>3(rYC4IdmCBJQFp1UgAy@jIR9K>6 zL?o@f4ZC>bncjwd4cprZmDdNhZS_F!pz7n*{>d(Lm{0M2iK z?oHs_y!w>pncx@nbqeV|0>d#pW8wj}Wn<@F>dFUCC23E?l^~o?Bb;DcB)p6Wd=(C# z!-yT(N}4n%*t;WE-3Z3R;K_%dwa|SU%rO#>_KTW#r-`M4WPy{x{BfMP3mpQdVKAg% zK)mO8ar

)CdQ3F!eKyF|9D2V!F-rhUpJ8J+l7g0OBBVM#THTI&O8)>EGR%u6Gd9D9pm5!S}%&6DxW}^f|7=Y zPoO3(pTZY#?(7(|!5}5Nn!D%DotZmlW)?smSMcEE<^aT$6gw#LlwubPI9BYTffL0! zyu-EPCnz{Y#ZR&1d{F!hr_NW!&#~mXis$jseXDo@U)-kR7sMBeUt-T&RQw9By@BF9 z3f?cpmw4m-R{RHncaC**(V--ipJ<~6LkW2fi6RVfh%vcYt9@z>&M0LBSf-Q|Et8wU zCt43_*JB)mHR71wb`K@~5Cizwp{`A2uuJ^_Bcl3k{7ree$8&@l?;^2nagS+NqCDBfkB?pJws=PbK~+A7|2 z{gCDJKI-i%m4LD$n{WIwWR|c+NRy`C1#)1sSBI7FiH6z-QkhY&Q_|%I3exQ zQ`X1M?cZH4^M&BSyr;2z$+^SZUMA*0001Z+HKHROw(}?!13=vX`$@Br+fGR zZ%e`5O6%Txi$Yrz0gF{}p>fY>OnlS0Uevf}oDXW;D{d2gcE<2)oFcV80@g$H)63L{HN*d{8kVzKVW(;E)$9N_%kx5Ku3R9WJbY?JW^G#k0Wdx>E$NBBVtKRLiL?sA*s%w`TdsNz1=+~FRNdB8&+@iBD0 zXFTC4C-8-Cwv(4U=LLQ~^Oa4^rG|OTr5?ItoaPMYxxh`%a*kVU z;HYGAjq6;IY{`*awo0DlOMw(hkrYdb(O28l;MYvSx*ChcQW4f^QL5UdE3HbqvbxB$pfSg`>Cj#;?~00;nMAg}==M6d%RaIhCe zARtS)01i=0um)3FSgr#ump{<1pq_<0a34Kp8x=7I1^|9 literal 0 HcmV?d00001 diff --git a/api/draft/fonts/OpenSans-Regular-webfont.eot b/api/draft/fonts/OpenSans-Regular-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..6bbc3cf58cb011a6b4bf3cb1612ce212608f7274 GIT binary patch literal 19836 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/draft/fonts/OpenSans-Regular-webfont.woff b/api/draft/fonts/OpenSans-Regular-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..e231183dce4c7b452afc9e7799586fd285e146f4 GIT binary patch literal 22660 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 ML;wL%uV=LY00kR;TmS$7 literal 0 HcmV?d00001 diff --git a/api/draft/global.html b/api/draft/global.html new file mode 100644 index 00000000..dbbaa87a --- /dev/null +++ b/api/draft/global.html @@ -0,0 +1,2274 @@ + + + + + JSDoc: Global + + + + + + + + + + +