diff --git a/cps/static/css/libs/images/findbarButton-next-dark.svg b/cps/static/css/libs/images/findbarButton-next-dark.svg new file mode 100644 index 00000000..80df70bc --- /dev/null +++ b/cps/static/css/libs/images/findbarButton-next-dark.svg @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/findbarButton-next-rtl.png b/cps/static/css/libs/images/findbarButton-next-rtl.png deleted file mode 100644 index bef02743..00000000 Binary files a/cps/static/css/libs/images/findbarButton-next-rtl.png and /dev/null differ diff --git a/cps/static/css/libs/images/findbarButton-next-rtl@2x.png b/cps/static/css/libs/images/findbarButton-next-rtl@2x.png deleted file mode 100644 index 1da6dc94..00000000 Binary files a/cps/static/css/libs/images/findbarButton-next-rtl@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/findbarButton-next.png b/cps/static/css/libs/images/findbarButton-next.png deleted file mode 100644 index de1d0fc9..00000000 Binary files a/cps/static/css/libs/images/findbarButton-next.png and /dev/null differ diff --git a/cps/static/css/libs/images/findbarButton-next.svg b/cps/static/css/libs/images/findbarButton-next.svg new file mode 100644 index 00000000..a81eb029 --- /dev/null +++ b/cps/static/css/libs/images/findbarButton-next.svg @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/findbarButton-next@2x.png b/cps/static/css/libs/images/findbarButton-next@2x.png deleted file mode 100644 index 0250307c..00000000 Binary files a/cps/static/css/libs/images/findbarButton-next@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/findbarButton-previous-dark.svg b/cps/static/css/libs/images/findbarButton-previous-dark.svg new file mode 100644 index 00000000..d304a9b8 --- /dev/null +++ b/cps/static/css/libs/images/findbarButton-previous-dark.svg @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/findbarButton-previous-rtl.png b/cps/static/css/libs/images/findbarButton-previous-rtl.png deleted file mode 100644 index de1d0fc9..00000000 Binary files a/cps/static/css/libs/images/findbarButton-previous-rtl.png and /dev/null differ diff --git a/cps/static/css/libs/images/findbarButton-previous-rtl@2x.png b/cps/static/css/libs/images/findbarButton-previous-rtl@2x.png deleted file mode 100644 index 0250307c..00000000 Binary files a/cps/static/css/libs/images/findbarButton-previous-rtl@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/findbarButton-previous.png b/cps/static/css/libs/images/findbarButton-previous.png deleted file mode 100644 index bef02743..00000000 Binary files a/cps/static/css/libs/images/findbarButton-previous.png and /dev/null differ diff --git a/cps/static/css/libs/images/findbarButton-previous.svg b/cps/static/css/libs/images/findbarButton-previous.svg new file mode 100644 index 00000000..5fd70322 --- /dev/null +++ b/cps/static/css/libs/images/findbarButton-previous.svg @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/findbarButton-previous@2x.png b/cps/static/css/libs/images/findbarButton-previous@2x.png deleted file mode 100644 index 1da6dc94..00000000 Binary files a/cps/static/css/libs/images/findbarButton-previous@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/loading-dark.svg b/cps/static/css/libs/images/loading-dark.svg new file mode 100644 index 00000000..fa5269b1 --- /dev/null +++ b/cps/static/css/libs/images/loading-dark.svg @@ -0,0 +1,24 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/loading-small.png b/cps/static/css/libs/images/loading-small.png deleted file mode 100644 index 8831a805..00000000 Binary files a/cps/static/css/libs/images/loading-small.png and /dev/null differ diff --git a/cps/static/css/libs/images/loading-small@2x.png b/cps/static/css/libs/images/loading-small@2x.png deleted file mode 100644 index b25b4452..00000000 Binary files a/cps/static/css/libs/images/loading-small@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/loading.svg b/cps/static/css/libs/images/loading.svg new file mode 100644 index 00000000..0a15ff68 --- /dev/null +++ b/cps/static/css/libs/images/loading.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-documentProperties-dark.svg b/cps/static/css/libs/images/secondaryToolbarButton-documentProperties-dark.svg new file mode 100644 index 00000000..306e628d --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-documentProperties-dark.svg @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-documentProperties.png b/cps/static/css/libs/images/secondaryToolbarButton-documentProperties.png deleted file mode 100644 index 40925e25..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-documentProperties.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-documentProperties.svg b/cps/static/css/libs/images/secondaryToolbarButton-documentProperties.svg new file mode 100644 index 00000000..6bd55cda --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-documentProperties.svg @@ -0,0 +1,15 @@ + + + + + + + + + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-documentProperties@2x.png b/cps/static/css/libs/images/secondaryToolbarButton-documentProperties@2x.png deleted file mode 100644 index adb240ea..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-documentProperties@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-firstPage-dark.svg b/cps/static/css/libs/images/secondaryToolbarButton-firstPage-dark.svg new file mode 100644 index 00000000..c13ff867 --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-firstPage-dark.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-firstPage.png b/cps/static/css/libs/images/secondaryToolbarButton-firstPage.png deleted file mode 100644 index e68846aa..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-firstPage.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-firstPage.svg b/cps/static/css/libs/images/secondaryToolbarButton-firstPage.svg new file mode 100644 index 00000000..2fa0fa6d --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-firstPage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-firstPage@2x.png b/cps/static/css/libs/images/secondaryToolbarButton-firstPage@2x.png deleted file mode 100644 index 3ad8af51..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-firstPage@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-handTool-dark.svg b/cps/static/css/libs/images/secondaryToolbarButton-handTool-dark.svg new file mode 100644 index 00000000..834d8b0d --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-handTool-dark.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-handTool.png b/cps/static/css/libs/images/secondaryToolbarButton-handTool.png deleted file mode 100644 index cb85a841..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-handTool.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-handTool.svg b/cps/static/css/libs/images/secondaryToolbarButton-handTool.svg new file mode 100644 index 00000000..3d038fab --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-handTool.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-handTool@2x.png b/cps/static/css/libs/images/secondaryToolbarButton-handTool@2x.png deleted file mode 100644 index 5c13f77f..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-handTool@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-lastPage-dark.svg b/cps/static/css/libs/images/secondaryToolbarButton-lastPage-dark.svg new file mode 100644 index 00000000..8633e420 --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-lastPage-dark.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-lastPage.png b/cps/static/css/libs/images/secondaryToolbarButton-lastPage.png deleted file mode 100644 index be763e0c..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-lastPage.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-lastPage.svg b/cps/static/css/libs/images/secondaryToolbarButton-lastPage.svg new file mode 100644 index 00000000..53fa9a6d --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-lastPage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-lastPage@2x.png b/cps/static/css/libs/images/secondaryToolbarButton-lastPage@2x.png deleted file mode 100644 index 8570984f..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-lastPage@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-rotateCcw-dark.svg b/cps/static/css/libs/images/secondaryToolbarButton-rotateCcw-dark.svg new file mode 100644 index 00000000..1a92f802 --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-rotateCcw-dark.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-rotateCcw.png b/cps/static/css/libs/images/secondaryToolbarButton-rotateCcw.png deleted file mode 100644 index 675d6da2..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-rotateCcw.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-rotateCcw.svg b/cps/static/css/libs/images/secondaryToolbarButton-rotateCcw.svg new file mode 100644 index 00000000..c71ea8e8 --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-rotateCcw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-rotateCcw@2x.png b/cps/static/css/libs/images/secondaryToolbarButton-rotateCcw@2x.png deleted file mode 100644 index b9e74312..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-rotateCcw@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-rotateCw-dark.svg b/cps/static/css/libs/images/secondaryToolbarButton-rotateCw-dark.svg new file mode 100644 index 00000000..2a4ef738 --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-rotateCw-dark.svg @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-rotateCw.png b/cps/static/css/libs/images/secondaryToolbarButton-rotateCw.png deleted file mode 100644 index e1c75988..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-rotateCw.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-rotateCw.svg b/cps/static/css/libs/images/secondaryToolbarButton-rotateCw.svg new file mode 100644 index 00000000..e1e19e73 --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-rotateCw.svg @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-rotateCw@2x.png b/cps/static/css/libs/images/secondaryToolbarButton-rotateCw@2x.png deleted file mode 100644 index cb257b41..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-rotateCw@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-scrollHorizontal-dark.svg b/cps/static/css/libs/images/secondaryToolbarButton-scrollHorizontal-dark.svg new file mode 100644 index 00000000..337f85ef --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-scrollHorizontal-dark.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-scrollHorizontal.png b/cps/static/css/libs/images/secondaryToolbarButton-scrollHorizontal.png deleted file mode 100644 index cb702fc4..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-scrollHorizontal.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-scrollHorizontal.svg b/cps/static/css/libs/images/secondaryToolbarButton-scrollHorizontal.svg new file mode 100644 index 00000000..8693eec3 --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-scrollHorizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-scrollHorizontal@2x.png b/cps/static/css/libs/images/secondaryToolbarButton-scrollHorizontal@2x.png deleted file mode 100644 index 7f05289b..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-scrollHorizontal@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-scrollVertical-dark.svg b/cps/static/css/libs/images/secondaryToolbarButton-scrollVertical-dark.svg new file mode 100644 index 00000000..41bdd8f1 --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-scrollVertical-dark.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-scrollVertical.png b/cps/static/css/libs/images/secondaryToolbarButton-scrollVertical.png deleted file mode 100644 index 0b8427a1..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-scrollVertical.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-scrollVertical.svg b/cps/static/css/libs/images/secondaryToolbarButton-scrollVertical.svg new file mode 100644 index 00000000..ee1cf22f --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-scrollVertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-scrollVertical@2x.png b/cps/static/css/libs/images/secondaryToolbarButton-scrollVertical@2x.png deleted file mode 100644 index 72ab55eb..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-scrollVertical@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-scrollWrapped-dark.svg b/cps/static/css/libs/images/secondaryToolbarButton-scrollWrapped-dark.svg new file mode 100644 index 00000000..cd50526f --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-scrollWrapped-dark.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-scrollWrapped.png b/cps/static/css/libs/images/secondaryToolbarButton-scrollWrapped.png deleted file mode 100644 index 165fc8bc..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-scrollWrapped.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-scrollWrapped.svg b/cps/static/css/libs/images/secondaryToolbarButton-scrollWrapped.svg new file mode 100644 index 00000000..804e7469 --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-scrollWrapped.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-scrollWrapped@2x.png b/cps/static/css/libs/images/secondaryToolbarButton-scrollWrapped@2x.png deleted file mode 100644 index 42461411..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-scrollWrapped@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-selectTool-dark.svg b/cps/static/css/libs/images/secondaryToolbarButton-selectTool-dark.svg new file mode 100644 index 00000000..7a95098a --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-selectTool-dark.svg @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-selectTool.png b/cps/static/css/libs/images/secondaryToolbarButton-selectTool.png deleted file mode 100644 index 25520a6f..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-selectTool.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-selectTool.svg b/cps/static/css/libs/images/secondaryToolbarButton-selectTool.svg new file mode 100644 index 00000000..43e97894 --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-selectTool.svg @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-selectTool@2x.png b/cps/static/css/libs/images/secondaryToolbarButton-selectTool@2x.png deleted file mode 100644 index a58aaef4..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-selectTool@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-spreadEven-dark.svg b/cps/static/css/libs/images/secondaryToolbarButton-spreadEven-dark.svg new file mode 100644 index 00000000..0c9586ed --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-spreadEven-dark.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-spreadEven.png b/cps/static/css/libs/images/secondaryToolbarButton-spreadEven.png deleted file mode 100644 index 3fa07e70..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-spreadEven.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-spreadEven.svg b/cps/static/css/libs/images/secondaryToolbarButton-spreadEven.svg new file mode 100644 index 00000000..ddec5e68 --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-spreadEven.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-spreadEven@2x.png b/cps/static/css/libs/images/secondaryToolbarButton-spreadEven@2x.png deleted file mode 100644 index 32e5033d..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-spreadEven@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-spreadNone-dark.svg b/cps/static/css/libs/images/secondaryToolbarButton-spreadNone-dark.svg new file mode 100644 index 00000000..75e1b985 --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-spreadNone-dark.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-spreadNone.png b/cps/static/css/libs/images/secondaryToolbarButton-spreadNone.png deleted file mode 100644 index 16114735..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-spreadNone.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-spreadNone.svg b/cps/static/css/libs/images/secondaryToolbarButton-spreadNone.svg new file mode 100644 index 00000000..63318c56 --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-spreadNone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-spreadNone@2x.png b/cps/static/css/libs/images/secondaryToolbarButton-spreadNone@2x.png deleted file mode 100644 index 8e51cf3b..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-spreadNone@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-spreadOdd-dark.svg b/cps/static/css/libs/images/secondaryToolbarButton-spreadOdd-dark.svg new file mode 100644 index 00000000..8dff9598 --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-spreadOdd-dark.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-spreadOdd.png b/cps/static/css/libs/images/secondaryToolbarButton-spreadOdd.png deleted file mode 100644 index 5126313a..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-spreadOdd.png and /dev/null differ diff --git a/cps/static/css/libs/images/secondaryToolbarButton-spreadOdd.svg b/cps/static/css/libs/images/secondaryToolbarButton-spreadOdd.svg new file mode 100644 index 00000000..29909e9f --- /dev/null +++ b/cps/static/css/libs/images/secondaryToolbarButton-spreadOdd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/secondaryToolbarButton-spreadOdd@2x.png b/cps/static/css/libs/images/secondaryToolbarButton-spreadOdd@2x.png deleted file mode 100644 index 5996b74d..00000000 Binary files a/cps/static/css/libs/images/secondaryToolbarButton-spreadOdd@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/shadow.png b/cps/static/css/libs/images/shadow.png index 31d3bdb1..a00061ac 100644 Binary files a/cps/static/css/libs/images/shadow.png and b/cps/static/css/libs/images/shadow.png differ diff --git a/cps/static/css/libs/images/texture.png b/cps/static/css/libs/images/texture.png deleted file mode 100644 index 12bae83a..00000000 Binary files a/cps/static/css/libs/images/texture.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-bookmark-dark.svg b/cps/static/css/libs/images/toolbarButton-bookmark-dark.svg new file mode 100644 index 00000000..7bf33297 --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-bookmark-dark.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-bookmark.png b/cps/static/css/libs/images/toolbarButton-bookmark.png deleted file mode 100644 index a187be6c..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-bookmark.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-bookmark.svg b/cps/static/css/libs/images/toolbarButton-bookmark.svg new file mode 100644 index 00000000..79d39b09 --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-bookmark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-bookmark@2x.png b/cps/static/css/libs/images/toolbarButton-bookmark@2x.png deleted file mode 100644 index 4efbaa67..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-bookmark@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-download-dark.svg b/cps/static/css/libs/images/toolbarButton-download-dark.svg new file mode 100644 index 00000000..d2a92e5d --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-download-dark.svg @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-download.png b/cps/static/css/libs/images/toolbarButton-download.png deleted file mode 100644 index eaab35f0..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-download.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-download.svg b/cps/static/css/libs/images/toolbarButton-download.svg new file mode 100644 index 00000000..2cdb5db3 --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-download.svg @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-download@2x.png b/cps/static/css/libs/images/toolbarButton-download@2x.png deleted file mode 100644 index 896face4..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-download@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-menuArrow-dark.svg b/cps/static/css/libs/images/toolbarButton-menuArrow-dark.svg new file mode 100644 index 00000000..eb7f50e6 --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-menuArrow-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-menuArrow.svg b/cps/static/css/libs/images/toolbarButton-menuArrow.svg new file mode 100644 index 00000000..46e41e18 --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-menuArrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-menuArrows.png b/cps/static/css/libs/images/toolbarButton-menuArrows.png deleted file mode 100644 index e50ca4ee..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-menuArrows.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-menuArrows@2x.png b/cps/static/css/libs/images/toolbarButton-menuArrows@2x.png deleted file mode 100644 index f7570bc0..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-menuArrows@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-openFile-dark.svg b/cps/static/css/libs/images/toolbarButton-openFile-dark.svg new file mode 100644 index 00000000..0bd612f0 --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-openFile-dark.svg @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-openFile.png b/cps/static/css/libs/images/toolbarButton-openFile.png deleted file mode 100644 index b5cf1bd0..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-openFile.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-openFile.svg b/cps/static/css/libs/images/toolbarButton-openFile.svg new file mode 100644 index 00000000..cb35980f --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-openFile.svg @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-openFile@2x.png b/cps/static/css/libs/images/toolbarButton-openFile@2x.png deleted file mode 100644 index 91ab7659..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-openFile@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-pageDown-dark.svg b/cps/static/css/libs/images/toolbarButton-pageDown-dark.svg new file mode 100644 index 00000000..c2ca60c8 --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-pageDown-dark.svg @@ -0,0 +1,8 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-pageDown-rtl.png b/cps/static/css/libs/images/toolbarButton-pageDown-rtl.png deleted file mode 100644 index 1957f79a..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-pageDown-rtl.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-pageDown-rtl@2x.png b/cps/static/css/libs/images/toolbarButton-pageDown-rtl@2x.png deleted file mode 100644 index 16ebcb8e..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-pageDown-rtl@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-pageDown.png b/cps/static/css/libs/images/toolbarButton-pageDown.png deleted file mode 100644 index 8219ecf8..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-pageDown.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-pageDown.svg b/cps/static/css/libs/images/toolbarButton-pageDown.svg new file mode 100644 index 00000000..c5d8b0f3 --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-pageDown.svg @@ -0,0 +1,7 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-pageDown@2x.png b/cps/static/css/libs/images/toolbarButton-pageDown@2x.png deleted file mode 100644 index 758c01d8..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-pageDown@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-pageUp-dark.svg b/cps/static/css/libs/images/toolbarButton-pageUp-dark.svg new file mode 100644 index 00000000..dddc4ab2 --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-pageUp-dark.svg @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-pageUp-rtl.png b/cps/static/css/libs/images/toolbarButton-pageUp-rtl.png deleted file mode 100644 index 98e7ce48..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-pageUp-rtl.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-pageUp-rtl@2x.png b/cps/static/css/libs/images/toolbarButton-pageUp-rtl@2x.png deleted file mode 100644 index a01b0238..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-pageUp-rtl@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-pageUp.png b/cps/static/css/libs/images/toolbarButton-pageUp.png deleted file mode 100644 index fb9daa33..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-pageUp.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-pageUp.svg b/cps/static/css/libs/images/toolbarButton-pageUp.svg new file mode 100644 index 00000000..aa0160ab --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-pageUp.svg @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-pageUp@2x.png b/cps/static/css/libs/images/toolbarButton-pageUp@2x.png deleted file mode 100644 index a5cfd755..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-pageUp@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-presentationMode-dark.svg b/cps/static/css/libs/images/toolbarButton-presentationMode-dark.svg new file mode 100644 index 00000000..13fa9dc7 --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-presentationMode-dark.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-presentationMode.png b/cps/static/css/libs/images/toolbarButton-presentationMode.png deleted file mode 100644 index 3ac21244..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-presentationMode.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-presentationMode.svg b/cps/static/css/libs/images/toolbarButton-presentationMode.svg new file mode 100644 index 00000000..3f1f832e --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-presentationMode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-presentationMode@2x.png b/cps/static/css/libs/images/toolbarButton-presentationMode@2x.png deleted file mode 100644 index cada9e79..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-presentationMode@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-print-dark.svg b/cps/static/css/libs/images/toolbarButton-print-dark.svg new file mode 100644 index 00000000..ad37022f --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-print-dark.svg @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-print.png b/cps/static/css/libs/images/toolbarButton-print.png deleted file mode 100644 index 51275e54..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-print.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-print.svg b/cps/static/css/libs/images/toolbarButton-print.svg new file mode 100644 index 00000000..d521c9ad --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-print.svg @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-print@2x.png b/cps/static/css/libs/images/toolbarButton-print@2x.png deleted file mode 100644 index 53d18daf..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-print@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-search-dark.svg b/cps/static/css/libs/images/toolbarButton-search-dark.svg new file mode 100644 index 00000000..cec8a420 --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-search-dark.svg @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-search.png b/cps/static/css/libs/images/toolbarButton-search.png deleted file mode 100644 index f9b75579..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-search.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-search.svg b/cps/static/css/libs/images/toolbarButton-search.svg new file mode 100644 index 00000000..28b7774e --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-search.svg @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-search@2x.png b/cps/static/css/libs/images/toolbarButton-search@2x.png deleted file mode 100644 index 456b1332..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-search@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-secondaryToolbarToggle-dark.svg b/cps/static/css/libs/images/toolbarButton-secondaryToolbarToggle-dark.svg new file mode 100644 index 00000000..0160c07c --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-secondaryToolbarToggle-dark.svg @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-secondaryToolbarToggle-rtl.png b/cps/static/css/libs/images/toolbarButton-secondaryToolbarToggle-rtl.png deleted file mode 100644 index 84370952..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-secondaryToolbarToggle-rtl.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-secondaryToolbarToggle-rtl@2x.png b/cps/static/css/libs/images/toolbarButton-secondaryToolbarToggle-rtl@2x.png deleted file mode 100644 index 9d9bfa4f..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-secondaryToolbarToggle-rtl@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-secondaryToolbarToggle.png b/cps/static/css/libs/images/toolbarButton-secondaryToolbarToggle.png deleted file mode 100644 index 1f90f83d..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-secondaryToolbarToggle.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-secondaryToolbarToggle.svg b/cps/static/css/libs/images/toolbarButton-secondaryToolbarToggle.svg new file mode 100644 index 00000000..dbef2380 --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-secondaryToolbarToggle.svg @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-secondaryToolbarToggle@2x.png b/cps/static/css/libs/images/toolbarButton-secondaryToolbarToggle@2x.png deleted file mode 100644 index b066fe5c..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-secondaryToolbarToggle@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-sidebarToggle-dark.svg b/cps/static/css/libs/images/toolbarButton-sidebarToggle-dark.svg new file mode 100644 index 00000000..0118e41a --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-sidebarToggle-dark.svg @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-sidebarToggle-rtl.png b/cps/static/css/libs/images/toolbarButton-sidebarToggle-rtl.png deleted file mode 100644 index 6f85ec06..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-sidebarToggle-rtl.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-sidebarToggle-rtl@2x.png b/cps/static/css/libs/images/toolbarButton-sidebarToggle-rtl@2x.png deleted file mode 100644 index 291e0067..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-sidebarToggle-rtl@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-sidebarToggle.png b/cps/static/css/libs/images/toolbarButton-sidebarToggle.png deleted file mode 100644 index 025dc904..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-sidebarToggle.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-sidebarToggle.svg b/cps/static/css/libs/images/toolbarButton-sidebarToggle.svg new file mode 100644 index 00000000..691c41cb --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-sidebarToggle.svg @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-sidebarToggle@2x.png b/cps/static/css/libs/images/toolbarButton-sidebarToggle@2x.png deleted file mode 100644 index 7f834df9..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-sidebarToggle@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-viewAttachments-dark.svg b/cps/static/css/libs/images/toolbarButton-viewAttachments-dark.svg new file mode 100644 index 00000000..c9714fde --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-viewAttachments-dark.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-viewAttachments.png b/cps/static/css/libs/images/toolbarButton-viewAttachments.png deleted file mode 100644 index fcd0b268..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-viewAttachments.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-viewAttachments.svg b/cps/static/css/libs/images/toolbarButton-viewAttachments.svg new file mode 100644 index 00000000..e914ec08 --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-viewAttachments.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-viewAttachments@2x.png b/cps/static/css/libs/images/toolbarButton-viewAttachments@2x.png deleted file mode 100644 index 4a5e2b8a..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-viewAttachments@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-viewLayers-dark.svg b/cps/static/css/libs/images/toolbarButton-viewLayers-dark.svg new file mode 100644 index 00000000..76b042a9 --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-viewLayers-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-viewLayers.svg b/cps/static/css/libs/images/toolbarButton-viewLayers.svg new file mode 100644 index 00000000..e8687b77 --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-viewLayers.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-viewOutline-dark.svg b/cps/static/css/libs/images/toolbarButton-viewOutline-dark.svg new file mode 100644 index 00000000..1704d961 --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-viewOutline-dark.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-viewOutline-rtl.png b/cps/static/css/libs/images/toolbarButton-viewOutline-rtl.png deleted file mode 100644 index aaa94302..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-viewOutline-rtl.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-viewOutline-rtl@2x.png b/cps/static/css/libs/images/toolbarButton-viewOutline-rtl@2x.png deleted file mode 100644 index 3410f70d..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-viewOutline-rtl@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-viewOutline.png b/cps/static/css/libs/images/toolbarButton-viewOutline.png deleted file mode 100644 index 976365a5..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-viewOutline.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-viewOutline.svg b/cps/static/css/libs/images/toolbarButton-viewOutline.svg new file mode 100644 index 00000000..030c28df --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-viewOutline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-viewOutline@2x.png b/cps/static/css/libs/images/toolbarButton-viewOutline@2x.png deleted file mode 100644 index b6a197fd..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-viewOutline@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-viewThumbnail-dark.svg b/cps/static/css/libs/images/toolbarButton-viewThumbnail-dark.svg new file mode 100644 index 00000000..17c55f7b --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-viewThumbnail-dark.svg @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-viewThumbnail.png b/cps/static/css/libs/images/toolbarButton-viewThumbnail.png deleted file mode 100644 index 584ba558..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-viewThumbnail.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-viewThumbnail.svg b/cps/static/css/libs/images/toolbarButton-viewThumbnail.svg new file mode 100644 index 00000000..b997ec49 --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-viewThumbnail.svg @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-viewThumbnail@2x.png b/cps/static/css/libs/images/toolbarButton-viewThumbnail@2x.png deleted file mode 100644 index a0208b41..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-viewThumbnail@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-zoomIn-dark.svg b/cps/static/css/libs/images/toolbarButton-zoomIn-dark.svg new file mode 100644 index 00000000..9b615541 --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-zoomIn-dark.svg @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-zoomIn.png b/cps/static/css/libs/images/toolbarButton-zoomIn.png deleted file mode 100644 index 513d081b..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-zoomIn.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-zoomIn.svg b/cps/static/css/libs/images/toolbarButton-zoomIn.svg new file mode 100644 index 00000000..480d2cef --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-zoomIn.svg @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-zoomIn@2x.png b/cps/static/css/libs/images/toolbarButton-zoomIn@2x.png deleted file mode 100644 index d5d49d5f..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-zoomIn@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-zoomOut-dark.svg b/cps/static/css/libs/images/toolbarButton-zoomOut-dark.svg new file mode 100644 index 00000000..0fb3594d --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-zoomOut-dark.svg @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-zoomOut.png b/cps/static/css/libs/images/toolbarButton-zoomOut.png deleted file mode 100644 index 156c26b9..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-zoomOut.png and /dev/null differ diff --git a/cps/static/css/libs/images/toolbarButton-zoomOut.svg b/cps/static/css/libs/images/toolbarButton-zoomOut.svg new file mode 100644 index 00000000..527f5210 --- /dev/null +++ b/cps/static/css/libs/images/toolbarButton-zoomOut.svg @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/cps/static/css/libs/images/toolbarButton-zoomOut@2x.png b/cps/static/css/libs/images/toolbarButton-zoomOut@2x.png deleted file mode 100644 index 959e1919..00000000 Binary files a/cps/static/css/libs/images/toolbarButton-zoomOut@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/treeitem-collapsed-dark.svg b/cps/static/css/libs/images/treeitem-collapsed-dark.svg new file mode 100644 index 00000000..1fb65516 --- /dev/null +++ b/cps/static/css/libs/images/treeitem-collapsed-dark.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/treeitem-collapsed-rtl.png b/cps/static/css/libs/images/treeitem-collapsed-rtl.png deleted file mode 100644 index 0496b357..00000000 Binary files a/cps/static/css/libs/images/treeitem-collapsed-rtl.png and /dev/null differ diff --git a/cps/static/css/libs/images/treeitem-collapsed-rtl@2x.png b/cps/static/css/libs/images/treeitem-collapsed-rtl@2x.png deleted file mode 100644 index 6ad9ebcd..00000000 Binary files a/cps/static/css/libs/images/treeitem-collapsed-rtl@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/treeitem-collapsed.png b/cps/static/css/libs/images/treeitem-collapsed.png deleted file mode 100644 index 06d4d376..00000000 Binary files a/cps/static/css/libs/images/treeitem-collapsed.png and /dev/null differ diff --git a/cps/static/css/libs/images/treeitem-collapsed.svg b/cps/static/css/libs/images/treeitem-collapsed.svg new file mode 100644 index 00000000..831cddfc --- /dev/null +++ b/cps/static/css/libs/images/treeitem-collapsed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/treeitem-collapsed@2x.png b/cps/static/css/libs/images/treeitem-collapsed@2x.png deleted file mode 100644 index eec1e58c..00000000 Binary files a/cps/static/css/libs/images/treeitem-collapsed@2x.png and /dev/null differ diff --git a/cps/static/css/libs/images/treeitem-expanded-dark.svg b/cps/static/css/libs/images/treeitem-expanded-dark.svg new file mode 100644 index 00000000..695b0aa6 --- /dev/null +++ b/cps/static/css/libs/images/treeitem-expanded-dark.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/treeitem-expanded.png b/cps/static/css/libs/images/treeitem-expanded.png deleted file mode 100644 index c8d55735..00000000 Binary files a/cps/static/css/libs/images/treeitem-expanded.png and /dev/null differ diff --git a/cps/static/css/libs/images/treeitem-expanded.svg b/cps/static/css/libs/images/treeitem-expanded.svg new file mode 100644 index 00000000..2d45f0c8 --- /dev/null +++ b/cps/static/css/libs/images/treeitem-expanded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cps/static/css/libs/images/treeitem-expanded@2x.png b/cps/static/css/libs/images/treeitem-expanded@2x.png deleted file mode 100644 index 3b3b6103..00000000 Binary files a/cps/static/css/libs/images/treeitem-expanded@2x.png and /dev/null differ diff --git a/cps/static/css/libs/viewer.css b/cps/static/css/libs/viewer.css index 5835b309..605cad57 100644 --- a/cps/static/css/libs/viewer.css +++ b/cps/static/css/libs/viewer.css @@ -21,7 +21,7 @@ bottom: 0; overflow: hidden; opacity: 0.2; - line-height: 1.0; + line-height: 1; } .textLayer > span { @@ -29,15 +29,13 @@ position: absolute; white-space: pre; cursor: text; - -webkit-transform-origin: 0% 0%; - transform-origin: 0% 0%; + transform-origin: 0% 0%; } .textLayer .highlight { margin: -1px; padding: 1px; - - background-color: rgb(180, 0, 170); + background-color: rgba(180, 0, 170, 1); border-radius: 4px; } @@ -54,12 +52,16 @@ } .textLayer .highlight.selected { - background-color: rgb(0, 100, 0); + background-color: rgba(0, 100, 0, 1); } -.textLayer ::-moz-selection { background: rgb(0,0,255); } +.textLayer ::-moz-selection { + background: rgba(0, 0, 255, 1); +} -.textLayer ::selection { background: rgb(0,0,255); } +.textLayer ::selection { + background: rgba(0, 0, 255, 1); +} .textLayer .endOfContent { display: block; @@ -98,8 +100,8 @@ .annotationLayer .linkAnnotation > a:hover, .annotationLayer .buttonWidgetAnnotation.pushButton > a:hover { opacity: 0.2; - background: #ff0; - box-shadow: 0px 2px 10px #ff0; + background: rgba(255, 255, 0, 1); + box-shadow: 0px 2px 10px rgba(255, 255, 0, 1); } .annotationLayer .textAnnotation img { @@ -152,7 +154,7 @@ .annotationLayer .choiceWidgetAnnotation select:hover, .annotationLayer .buttonWidgetAnnotation.checkBox input:hover, .annotationLayer .buttonWidgetAnnotation.radioButton input:hover { - border: 1px solid #000; + border: 1px solid rgba(0, 0, 0, 1); } .annotationLayer .textWidgetAnnotation input:focus, @@ -165,8 +167,8 @@ .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before, .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after, .annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before { - background-color: #000; - content: ''; + background-color: rgba(0, 0, 0, 1); + content: ""; display: block; position: absolute; } @@ -179,13 +181,11 @@ } .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before { - -webkit-transform: rotate(45deg); - transform: rotate(45deg); + transform: rotate(45deg); } .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after { - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); + transform: rotate(-45deg); } .annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before { @@ -229,8 +229,8 @@ position: absolute; z-index: 200; max-width: 20em; - background-color: #FFFF99; - box-shadow: 0px 2px 5px #888; + background-color: rgba(255, 255, 153, 1); + box-shadow: 0px 2px 5px rgba(136, 136, 136, 1); border-radius: 2px; padding: 6px; margin-left: 5px; @@ -254,7 +254,7 @@ } .annotationLayer .popup p { - border-top: 1px solid #333; + border-top: 1px solid rgba(51, 51, 51, 1); margin-top: 2px; padding-top: 2px; } @@ -289,10 +289,9 @@ overflow: visible; border: 9px solid transparent; background-clip: content-box; - -webkit-border-image: url(images/shadow.png) 9 9 repeat; - -o-border-image: url(images/shadow.png) 9 9 repeat; - border-image: url(images/shadow.png) 9 9 repeat; - background-color: white; + -o-border-image: url(images/shadow.png) 9 9 repeat; + border-image: url(images/shadow.png) 9 9 repeat; + background-color: rgba(255, 255, 255, 1); } .pdfViewer.removePageBorders .page { @@ -309,13 +308,16 @@ border: none; } -.pdfViewer.scrollHorizontal, .pdfViewer.scrollWrapped, .spread { +.pdfViewer.scrollHorizontal, +.pdfViewer.scrollWrapped, +.spread { margin-left: 3.5px; margin-right: 3.5px; text-align: center; } -.pdfViewer.scrollHorizontal, .spread { +.pdfViewer.scrollHorizontal, +.spread { white-space: nowrap; } @@ -365,7 +367,7 @@ top: 0; right: 0; bottom: 0; - background: url('images/loading-icon.gif') center no-repeat; + background: url("images/loading-icon.gif") center no-repeat; } .pdfPresentationMode .pdfViewer { @@ -405,6 +407,151 @@ :root { --sidebar-width: 200px; + --sidebar-transition-duration: 200ms; + --sidebar-transition-timing-function: ease; + + --toolbar-icon-opacity: 0.7; + --doorhanger-icon-opacity: 0.9; + + --main-color: rgba(12, 12, 13, 1); + --body-bg-color: rgba(237, 237, 240, 1); + --errorWrapper-bg-color: rgba(255, 74, 74, 1); + --progressBar-color: rgba(10, 132, 255, 1); + --progressBar-indeterminate-bg-color: rgba(221, 221, 222, 1); + --progressBar-indeterminate-blend-color: rgba(116, 177, 239, 1); + --scrollbar-color: auto; + --scrollbar-bg-color: auto; + + --sidebar-bg-color: rgba(245, 246, 247, 1); + --toolbar-bg-color: rgba(249, 249, 250, 1); + --toolbar-border-color: rgba(204, 204, 204, 1); + --button-hover-color: rgba(221, 222, 223, 1); + --toggled-btn-bg-color: rgba(0, 0, 0, 0.3); + --dropdown-btn-bg-color: rgba(215, 215, 219, 1); + --separator-color: rgba(0, 0, 0, 0.3); + --field-color: rgba(6, 6, 6, 1); + --field-bg-color: rgba(255, 255, 255, 1); + --field-border-color: rgba(187, 187, 188, 1); + --findbar-nextprevious-btn-bg-color: rgba(227, 228, 230, 1); + --outline-color: rgba(0, 0, 0, 0.8); + --outline-hover-color: rgba(0, 0, 0, 0.9); + --outline-active-color: rgba(0, 0, 0, 0.08); + --outline-active-bg-color: rgba(0, 0, 0, 1); + --sidebaritem-bg-color: rgba(0, 0, 0, 0.15); + --doorhanger-bg-color: rgba(255, 255, 255, 1); + --doorhanger-border-color: rgba(12, 12, 13, 0.2); + --doorhanger-hover-color: rgba(237, 237, 237, 1); + --doorhanger-separator-color: rgba(222, 222, 222, 1); + --overlay-button-bg-color: rgba(12, 12, 13, 0.1); + --overlay-button-hover-color: rgba(12, 12, 13, 0.3); + + --loading-icon: url(images/loading.svg); + --treeitem-expanded-icon: url(images/treeitem-expanded.svg); + --treeitem-collapsed-icon: url(images/treeitem-collapsed.svg); + --toolbarButton-menuArrow-icon: url(images/toolbarButton-menuArrow.svg); + --toolbarButton-sidebarToggle-icon: url(images/toolbarButton-sidebarToggle.svg); + --toolbarButton-secondaryToolbarToggle-icon: url(images/toolbarButton-secondaryToolbarToggle.svg); + --toolbarButton-pageUp-icon: url(images/toolbarButton-pageUp.svg); + --toolbarButton-pageDown-icon: url(images/toolbarButton-pageDown.svg); + --toolbarButton-zoomOut-icon: url(images/toolbarButton-zoomOut.svg); + --toolbarButton-zoomIn-icon: url(images/toolbarButton-zoomIn.svg); + --toolbarButton-presentationMode-icon: url(images/toolbarButton-presentationMode.svg); + --toolbarButton-print-icon: url(images/toolbarButton-print.svg); + --toolbarButton-openFile-icon: url(images/toolbarButton-openFile.svg); + --toolbarButton-download-icon: url(images/toolbarButton-download.svg); + --toolbarButton-bookmark-icon: url(images/toolbarButton-bookmark.svg); + --toolbarButton-viewThumbnail-icon: url(images/toolbarButton-viewThumbnail.svg); + --toolbarButton-viewOutline-icon: url(images/toolbarButton-viewOutline.svg); + --toolbarButton-viewAttachments-icon: url(images/toolbarButton-viewAttachments.svg); + --toolbarButton-viewLayers-icon: url(images/toolbarButton-viewLayers.svg); + --toolbarButton-search-icon: url(images/toolbarButton-search.svg); + --findbarButton-previous-icon: url(images/findbarButton-previous.svg); + --findbarButton-next-icon: url(images/findbarButton-next.svg); + --secondaryToolbarButton-firstPage-icon: url(images/secondaryToolbarButton-firstPage.svg); + --secondaryToolbarButton-lastPage-icon: url(images/secondaryToolbarButton-lastPage.svg); + --secondaryToolbarButton-rotateCcw-icon: url(images/secondaryToolbarButton-rotateCcw.svg); + --secondaryToolbarButton-rotateCw-icon: url(images/secondaryToolbarButton-rotateCw.svg); + --secondaryToolbarButton-selectTool-icon: url(images/secondaryToolbarButton-selectTool.svg); + --secondaryToolbarButton-handTool-icon: url(images/secondaryToolbarButton-handTool.svg); + --secondaryToolbarButton-scrollVertical-icon: url(images/secondaryToolbarButton-scrollVertical.svg); + --secondaryToolbarButton-scrollHorizontal-icon: url(images/secondaryToolbarButton-scrollHorizontal.svg); + --secondaryToolbarButton-scrollWrapped-icon: url(images/secondaryToolbarButton-scrollWrapped.svg); + --secondaryToolbarButton-spreadNone-icon: url(images/secondaryToolbarButton-spreadNone.svg); + --secondaryToolbarButton-spreadOdd-icon: url(images/secondaryToolbarButton-spreadOdd.svg); + --secondaryToolbarButton-spreadEven-icon: url(images/secondaryToolbarButton-spreadEven.svg); + --secondaryToolbarButton-documentProperties-icon: url(images/secondaryToolbarButton-documentProperties.svg); +} + +@media (prefers-color-scheme: dark) { + :root { + --main-color: rgba(249, 249, 250, 1); + --body-bg-color: rgba(42, 42, 46, 1); + --errorWrapper-bg-color: rgba(199, 17, 17, 1); + --progressBar-color: rgba(0, 96, 223, 1); + --progressBar-indeterminate-bg-color: rgba(40, 40, 43, 1); + --progressBar-indeterminate-blend-color: rgba(20, 68, 133, 1); + --scrollbar-color: rgba(121, 121, 123, 1); + --scrollbar-bg-color: rgba(35, 35, 39, 1); + + --sidebar-bg-color: rgba(50, 50, 52, 1); + --toolbar-bg-color: rgba(56, 56, 61, 1); + --toolbar-border-color: rgba(12, 12, 13, 1); + --button-hover-color: rgba(102, 102, 103, 1); + --toggled-btn-bg-color: rgba(0, 0, 0, 0.3); + --dropdown-btn-bg-color: rgba(74, 74, 79, 1); + --separator-color: rgba(0, 0, 0, 0.3); + --field-color: rgba(250, 250, 250, 1); + --field-bg-color: rgba(64, 64, 68, 1); + --field-border-color: rgba(115, 115, 115, 1); + --findbar-nextprevious-btn-bg-color: rgba(89, 89, 89, 1); + --outline-color: rgba(255, 255, 255, 0.8); + --outline-hover-color: rgba(255, 255, 255, 0.9); + --outline-active-color: rgba(255, 255, 255, 0.08); + --outline-active-bg-color: rgba(255, 255, 255, 1); + --sidebaritem-bg-color: rgba(255, 255, 255, 0.15); + --doorhanger-bg-color: rgba(74, 74, 79, 1); + --doorhanger-border-color: rgba(39, 39, 43, 1); + --doorhanger-hover-color: rgba(93, 94, 98, 1); + --doorhanger-separator-color: rgba(92, 92, 97, 1); + --overlay-button-bg-color: rgba(92, 92, 97, 1); + --overlay-button-hover-color: rgba(115, 115, 115, 1); + + --loading-icon: url(images/loading-dark.svg); + --treeitem-expanded-icon: url(images/treeitem-expanded-dark.svg); + --treeitem-collapsed-icon: url(images/treeitem-collapsed-dark.svg); + --toolbarButton-menuArrow-icon: url(images/toolbarButton-menuArrow-dark.svg); + --toolbarButton-sidebarToggle-icon: url(images/toolbarButton-sidebarToggle-dark.svg); + --toolbarButton-secondaryToolbarToggle-icon: url(images/toolbarButton-secondaryToolbarToggle-dark.svg); + --toolbarButton-pageUp-icon: url(images/toolbarButton-pageUp-dark.svg); + --toolbarButton-pageDown-icon: url(images/toolbarButton-pageDown-dark.svg); + --toolbarButton-zoomOut-icon: url(images/toolbarButton-zoomOut-dark.svg); + --toolbarButton-zoomIn-icon: url(images/toolbarButton-zoomIn-dark.svg); + --toolbarButton-presentationMode-icon: url(images/toolbarButton-presentationMode-dark.svg); + --toolbarButton-print-icon: url(images/toolbarButton-print-dark.svg); + --toolbarButton-openFile-icon: url(images/toolbarButton-openFile-dark.svg); + --toolbarButton-download-icon: url(images/toolbarButton-download-dark.svg); + --toolbarButton-bookmark-icon: url(images/toolbarButton-bookmark-dark.svg); + --toolbarButton-viewThumbnail-icon: url(images/toolbarButton-viewThumbnail-dark.svg); + --toolbarButton-viewOutline-icon: url(images/toolbarButton-viewOutline-dark.svg); + --toolbarButton-viewAttachments-icon: url(images/toolbarButton-viewAttachments-dark.svg); + --toolbarButton-viewLayers-icon: url(images/toolbarButton-viewLayers-dark.svg); + --toolbarButton-search-icon: url(images/toolbarButton-search-dark.svg); + --findbarButton-previous-icon: url(images/findbarButton-previous-dark.svg); + --findbarButton-next-icon: url(images/findbarButton-next-dark.svg); + --secondaryToolbarButton-firstPage-icon: url(images/secondaryToolbarButton-firstPage-dark.svg); + --secondaryToolbarButton-lastPage-icon: url(images/secondaryToolbarButton-lastPage-dark.svg); + --secondaryToolbarButton-rotateCcw-icon: url(images/secondaryToolbarButton-rotateCcw-dark.svg); + --secondaryToolbarButton-rotateCw-icon: url(images/secondaryToolbarButton-rotateCw-dark.svg); + --secondaryToolbarButton-selectTool-icon: url(images/secondaryToolbarButton-selectTool-dark.svg); + --secondaryToolbarButton-handTool-icon: url(images/secondaryToolbarButton-handTool-dark.svg); + --secondaryToolbarButton-scrollVertical-icon: url(images/secondaryToolbarButton-scrollVertical-dark.svg); + --secondaryToolbarButton-scrollHorizontal-icon: url(images/secondaryToolbarButton-scrollHorizontal-dark.svg); + --secondaryToolbarButton-scrollWrapped-icon: url(images/secondaryToolbarButton-scrollWrapped-dark.svg); + --secondaryToolbarButton-spreadNone-icon: url(images/secondaryToolbarButton-spreadNone-dark.svg); + --secondaryToolbarButton-spreadOdd-icon: url(images/secondaryToolbarButton-spreadOdd-dark.svg); + --secondaryToolbarButton-spreadEven-icon: url(images/secondaryToolbarButton-spreadEven-dark.svg); + --secondaryToolbarButton-documentProperties-icon: url(images/secondaryToolbarButton-documentProperties-dark.svg); + } } * { @@ -422,16 +569,172 @@ html { body { height: 100%; width: 100%; - background-color: #404040; - background-image: url(images/texture.png); + background-color: rgba(237, 237, 240, 1); + background-color: var(--body-bg-color); +} + +@media (prefers-color-scheme: dark) { + + body { + background-color: rgba(42, 42, 46, 1); + background-color: var(--body-bg-color); + } +} + +body { + font: message-box; + outline: none; + scrollbar-color: auto auto; + scrollbar-color: var(--scrollbar-color) var(--scrollbar-bg-color); +} + +@media (prefers-color-scheme: dark) { + + body { + scrollbar-color: rgba(121, 121, 123, 1) rgba(35, 35, 39, 1); + scrollbar-color: var(--scrollbar-color) var(--scrollbar-bg-color); + } +} + +@media (prefers-color-scheme: dark) { + + body { + scrollbar-color: rgba(121, 121, 123, 1) rgba(35, 35, 39, 1); + scrollbar-color: var(--scrollbar-color) var(--scrollbar-bg-color); + } +} + +@media (prefers-color-scheme: dark) { + + body { + scrollbar-color: rgba(121, 121, 123, 1) rgba(35, 35, 39, 1); + scrollbar-color: var(--scrollbar-color) var(--scrollbar-bg-color); + } +} + +@media (prefers-color-scheme: dark) { + + body { + scrollbar-color: rgba(121, 121, 123, 1) rgba(35, 35, 39, 1); + scrollbar-color: var(--scrollbar-color) var(--scrollbar-bg-color); + } +} + +input { + font: message-box; + outline: none; + scrollbar-color: auto auto; + scrollbar-color: var(--scrollbar-color) var(--scrollbar-bg-color); +} + +@media (prefers-color-scheme: dark) { + + input { + scrollbar-color: rgba(121, 121, 123, 1) rgba(35, 35, 39, 1); + scrollbar-color: var(--scrollbar-color) var(--scrollbar-bg-color); + } +} + +@media (prefers-color-scheme: dark) { + + input { + scrollbar-color: rgba(121, 121, 123, 1) rgba(35, 35, 39, 1); + scrollbar-color: var(--scrollbar-color) var(--scrollbar-bg-color); + } +} + +@media (prefers-color-scheme: dark) { + + input { + scrollbar-color: rgba(121, 121, 123, 1) rgba(35, 35, 39, 1); + scrollbar-color: var(--scrollbar-color) var(--scrollbar-bg-color); + } +} + +@media (prefers-color-scheme: dark) { + + input { + scrollbar-color: rgba(121, 121, 123, 1) rgba(35, 35, 39, 1); + scrollbar-color: var(--scrollbar-color) var(--scrollbar-bg-color); + } +} + +button { + font: message-box; + outline: none; + scrollbar-color: auto auto; + scrollbar-color: var(--scrollbar-color) var(--scrollbar-bg-color); +} + +@media (prefers-color-scheme: dark) { + + button { + scrollbar-color: rgba(121, 121, 123, 1) rgba(35, 35, 39, 1); + scrollbar-color: var(--scrollbar-color) var(--scrollbar-bg-color); + } +} + +@media (prefers-color-scheme: dark) { + + button { + scrollbar-color: rgba(121, 121, 123, 1) rgba(35, 35, 39, 1); + scrollbar-color: var(--scrollbar-color) var(--scrollbar-bg-color); + } +} + +@media (prefers-color-scheme: dark) { + + button { + scrollbar-color: rgba(121, 121, 123, 1) rgba(35, 35, 39, 1); + scrollbar-color: var(--scrollbar-color) var(--scrollbar-bg-color); + } +} + +@media (prefers-color-scheme: dark) { + + button { + scrollbar-color: rgba(121, 121, 123, 1) rgba(35, 35, 39, 1); + scrollbar-color: var(--scrollbar-color) var(--scrollbar-bg-color); + } } -body, -input, -button, select { font: message-box; outline: none; + scrollbar-color: auto auto; + scrollbar-color: var(--scrollbar-color) var(--scrollbar-bg-color); +} + +@media (prefers-color-scheme: dark) { + + select { + scrollbar-color: rgba(121, 121, 123, 1) rgba(35, 35, 39, 1); + scrollbar-color: var(--scrollbar-color) var(--scrollbar-bg-color); + } +} + +@media (prefers-color-scheme: dark) { + + select { + scrollbar-color: rgba(121, 121, 123, 1) rgba(35, 35, 39, 1); + scrollbar-color: var(--scrollbar-color) var(--scrollbar-bg-color); + } +} + +@media (prefers-color-scheme: dark) { + + select { + scrollbar-color: rgba(121, 121, 123, 1) rgba(35, 35, 39, 1); + scrollbar-color: var(--scrollbar-color) var(--scrollbar-bg-color); + } +} + +@media (prefers-color-scheme: dark) { + + select { + scrollbar-color: rgba(121, 121, 123, 1) rgba(35, 35, 39, 1); + scrollbar-color: var(--scrollbar-color) var(--scrollbar-bg-color); + } } .hidden { @@ -441,19 +744,27 @@ select { display: none !important; } +.pdfViewer.enablePermissions .textLayer > span { + -webkit-user-select: none !important; + -moz-user-select: none !important; + -ms-user-select: none !important; + user-select: none !important; + cursor: not-allowed; +} + #viewerContainer.pdfPresentationMode:-ms-fullscreen { top: 0px !important; overflow: hidden !important; } #viewerContainer.pdfPresentationMode:-ms-fullscreen::-ms-backdrop { - background-color: #000; + background-color: rgba(0, 0, 0, 1); } #viewerContainer.pdfPresentationMode:-webkit-full-screen { top: 0px; - border-top: 2px solid transparent; - background-color: #000; + border-top: 2px solid rgba(0, 0, 0, 0); + background-color: rgba(0, 0, 0, 1); width: 100%; height: 100%; overflow: hidden; @@ -464,8 +775,8 @@ select { #viewerContainer.pdfPresentationMode:-moz-full-screen { top: 0px; - border-top: 2px solid transparent; - background-color: #000; + border-top: 2px solid rgba(0, 0, 0, 0); + background-color: rgba(0, 0, 0, 1); width: 100%; height: 100%; overflow: hidden; @@ -476,8 +787,8 @@ select { #viewerContainer.pdfPresentationMode:-ms-fullscreen { top: 0px; - border-top: 2px solid transparent; - background-color: #000; + border-top: 2px solid rgba(0, 0, 0, 0); + background-color: rgba(0, 0, 0, 1); width: 100%; height: 100%; overflow: hidden; @@ -488,8 +799,8 @@ select { #viewerContainer.pdfPresentationMode:fullscreen { top: 0px; - border-top: 2px solid transparent; - background-color: #000; + border-top: 2px solid rgba(0, 0, 0, 0); + background-color: rgba(0, 0, 0, 1); width: 100%; height: 100%; overflow: hidden; @@ -547,30 +858,25 @@ select { position: absolute; top: 32px; bottom: 0; - width: 200px; /* Here, and elsewhere below, keep the constant value for compatibility - with older browsers that lack support for CSS variables. */ + width: 200px; width: var(--sidebar-width); visibility: hidden; z-index: 100; - border-top: 1px solid #333; - - -webkit-transition-duration: 200ms; - - transition-duration: 200ms; - -webkit-transition-timing-function: ease; - transition-timing-function: ease; + border-top: 1px solid rgba(51, 51, 51, 1); + transition-duration: 200ms; + transition-duration: var(--sidebar-transition-duration); + transition-timing-function: ease; + transition-timing-function: var(--sidebar-transition-timing-function); } -html[dir='ltr'] #sidebarContainer { - -webkit-transition-property: left; +html[dir="ltr"] #sidebarContainer { transition-property: left; left: -200px; - left: calc(-1 * var(--sidebar-width)); + left: calc(0px - var(--sidebar-width)); } -html[dir='rtl'] #sidebarContainer { - -webkit-transition-property: right; +html[dir="rtl"] #sidebarContainer { transition-property: right; right: -200px; - right: calc(-1 * var(--sidebar-width)); + right: calc(0px - var(--sidebar-width)); } .loadingInProgress #sidebarContainer { @@ -579,8 +885,7 @@ html[dir='rtl'] #sidebarContainer { #outerContainer.sidebarResizing #sidebarContainer { /* Improve responsiveness and avoid visual glitches when the sidebar is resized. */ - -webkit-transition-duration: 0s; - transition-duration: 0s; + transition-duration: 0s; /* Prevent e.g. the thumbnails being selected when the sidebar is resized. */ -webkit-user-select: none; -moz-user-select: none; @@ -592,10 +897,10 @@ html[dir='rtl'] #sidebarContainer { #outerContainer.sidebarOpen #sidebarContainer { visibility: visible; } -html[dir='ltr'] #outerContainer.sidebarOpen #sidebarContainer { +html[dir="ltr"] #outerContainer.sidebarOpen #sidebarContainer { left: 0px; } -html[dir='rtl'] #outerContainer.sidebarOpen #sidebarContainer { +html[dir="rtl"] #outerContainer.sidebarOpen #sidebarContainer { right: 0px; } @@ -615,15 +920,15 @@ html[dir='rtl'] #outerContainer.sidebarOpen #sidebarContainer { -webkit-overflow-scrolling: touch; position: absolute; width: 100%; - background-color: hsla(0,0%,0%,.1); + background-color: rgba(0, 0, 0, 0.1); } -html[dir='ltr'] #sidebarContent { +html[dir="ltr"] #sidebarContent { left: 0; - box-shadow: inset -1px 0 0 hsla(0,0%,0%,.25); + box-shadow: inset -1px 0 0 rgba(0, 0, 0, 0.25); } -html[dir='rtl'] #sidebarContent { +html[dir="rtl"] #sidebarContent { right: 0; - box-shadow: inset 1px 0 0 hsla(0,0%,0%,.25); + box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.25); } #viewerContainer { @@ -637,32 +942,27 @@ html[dir='rtl'] #sidebarContent { outline: none; } #viewerContainer:not(.pdfPresentationMode) { - -webkit-transition-duration: 200ms; - transition-duration: 200ms; - -webkit-transition-timing-function: ease; - transition-timing-function: ease; -} -html[dir='ltr'] #viewerContainer { - box-shadow: inset 1px 0 0 hsla(0,0%,100%,.05); -} -html[dir='rtl'] #viewerContainer { - box-shadow: inset -1px 0 0 hsla(0,0%,100%,.05); + transition-duration: 200ms; + transition-duration: var(--sidebar-transition-duration); + transition-timing-function: ease; + transition-timing-function: var(--sidebar-transition-timing-function); } #outerContainer.sidebarResizing #viewerContainer { /* Improve responsiveness and avoid visual glitches when the sidebar is resized. */ - -webkit-transition-duration: 0s; - transition-duration: 0s; + transition-duration: 0s; } -html[dir='ltr'] #outerContainer.sidebarOpen #viewerContainer:not(.pdfPresentationMode) { - -webkit-transition-property: left; +html[dir="ltr"] + #outerContainer.sidebarOpen + #viewerContainer:not(.pdfPresentationMode) { transition-property: left; left: 200px; left: var(--sidebar-width); } -html[dir='rtl'] #outerContainer.sidebarOpen #viewerContainer:not(.pdfPresentationMode) { - -webkit-transition-property: right; +html[dir="rtl"] + #outerContainer.sidebarOpen + #viewerContainer:not(.pdfPresentationMode) { transition-property: right; right: 200px; right: var(--sidebar-width); @@ -683,23 +983,31 @@ html[dir='rtl'] #outerContainer.sidebarOpen #viewerContainer:not(.pdfPresentatio #toolbarSidebar { width: 100%; height: 32px; - background-color: #424242; /* fallback */ - background-image: url(images/texture.png), - -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,30%,.99)), to(hsla(0,0%,25%,.95))); - background-image: url(images/texture.png), - linear-gradient(hsla(0,0%,30%,.99), hsla(0,0%,25%,.95)); + background-color: rgba(245, 246, 247, 1); + background-color: var(--sidebar-bg-color); } -html[dir='ltr'] #toolbarSidebar { - box-shadow: inset -1px 0 0 rgba(0, 0, 0, 0.25), - inset 0 -1px 0 hsla(0,0%,100%,.05), - 0 1px 0 hsla(0,0%,0%,.15), - 0 0 1px hsla(0,0%,0%,.1); + +@media (prefers-color-scheme: dark) { + + #toolbarSidebar { + background-color: rgba(50, 50, 52, 1); + background-color: var(--sidebar-bg-color); + } } -html[dir='rtl'] #toolbarSidebar { - box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.25), - inset 0 1px 0 hsla(0,0%,100%,.05), - 0 1px 0 hsla(0,0%,0%,.15), - 0 0 1px hsla(0,0%,0%,.1); +html[dir="ltr"] #toolbarSidebar { + box-shadow: inset -1px 0 0 rgba(0, 0, 0, 0.25), 0 1px 0 rgba(0, 0, 0, 0.15), + 0 0 1px rgba(0, 0, 0, 0.1); +} +html[dir="rtl"] #toolbarSidebar { + box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.25), 0 1px 0 rgba(0, 0, 0, 0.15), + 0 0 1px rgba(0, 0, 0, 0.1); +} + +html[dir="ltr"] #toolbarSidebar .toolbarButton { + margin-right: 2px !important; +} +html[dir="rtl"] #toolbarSidebar .toolbarButton { + margin-left: 2px !important; } #sidebarResizer { @@ -710,33 +1018,122 @@ html[dir='rtl'] #toolbarSidebar { z-index: 200; cursor: ew-resize; } -html[dir='ltr'] #sidebarResizer { +html[dir="ltr"] #sidebarResizer { right: -6px; } -html[dir='rtl'] #sidebarResizer { +html[dir="rtl"] #sidebarResizer { left: -6px; } -#toolbarContainer, .findbar, .secondaryToolbar { +#toolbarContainer { position: relative; height: 32px; - background-color: #474747; /* fallback */ - background-image: url(images/texture.png), - -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,32%,.99)), to(hsla(0,0%,27%,.95))); - background-image: url(images/texture.png), - linear-gradient(hsla(0,0%,32%,.99), hsla(0,0%,27%,.95)); + background-color: rgba(249, 249, 250, 1); + background-color: var(--toolbar-bg-color); } -html[dir='ltr'] #toolbarContainer, .findbar, .secondaryToolbar { - box-shadow: inset 0 1px 1px hsla(0,0%,0%,.15), - inset 0 -1px 0 hsla(0,0%,100%,.05), - 0 1px 0 hsla(0,0%,0%,.15), - 0 1px 1px hsla(0,0%,0%,.1); + +@media (prefers-color-scheme: dark) { + + #toolbarContainer { + background-color: rgba(56, 56, 61, 1); + background-color: var(--toolbar-bg-color); + } } -html[dir='rtl'] #toolbarContainer, .findbar, .secondaryToolbar { - box-shadow: inset 0 1px 1px hsla(0,0%,0%,.15), - inset 0 -1px 0 hsla(0,0%,100%,.05), - 0 1px 0 hsla(0,0%,0%,.15), - 0 1px 1px hsla(0,0%,0%,.1); + +.findbar { + position: relative; + height: 32px; + background-color: rgba(249, 249, 250, 1); + background-color: var(--toolbar-bg-color); +} + +@media (prefers-color-scheme: dark) { + + .findbar { + background-color: rgba(56, 56, 61, 1); + background-color: var(--toolbar-bg-color); + } +} + +.secondaryToolbar { + position: relative; + height: 32px; + background-color: rgba(249, 249, 250, 1); + background-color: var(--toolbar-bg-color); +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbar { + background-color: rgba(56, 56, 61, 1); + background-color: var(--toolbar-bg-color); + } +} +html[dir="ltr"] #toolbarContainer { + box-shadow: 0 1px 0 rgba(204, 204, 204, 1); + box-shadow: 0 1px 0 var(--toolbar-border-color); +} +@media (prefers-color-scheme: dark) { + + html[dir="ltr"] #toolbarContainer { + box-shadow: 0 1px 0 rgba(12, 12, 13, 1); + box-shadow: 0 1px 0 var(--toolbar-border-color); + } +} +.findbar { + box-shadow: 0 1px 0 rgba(204, 204, 204, 1); + box-shadow: 0 1px 0 var(--toolbar-border-color); +} +@media (prefers-color-scheme: dark) { + + .findbar { + box-shadow: 0 1px 0 rgba(12, 12, 13, 1); + box-shadow: 0 1px 0 var(--toolbar-border-color); + } +} +.secondaryToolbar { + box-shadow: 0 1px 0 rgba(204, 204, 204, 1); + box-shadow: 0 1px 0 var(--toolbar-border-color); +} +@media (prefers-color-scheme: dark) { + + .secondaryToolbar { + box-shadow: 0 1px 0 rgba(12, 12, 13, 1); + box-shadow: 0 1px 0 var(--toolbar-border-color); + } +} +html[dir="rtl"] #toolbarContainer { + box-shadow: 0 1px 0 rgba(204, 204, 204, 1); + box-shadow: 0 1px 0 var(--toolbar-border-color); +} +@media (prefers-color-scheme: dark) { + + html[dir="rtl"] #toolbarContainer { + box-shadow: 0 1px 0 rgba(12, 12, 13, 1); + box-shadow: 0 1px 0 var(--toolbar-border-color); + } +} +.findbar { + box-shadow: 0 1px 0 rgba(204, 204, 204, 1); + box-shadow: 0 1px 0 var(--toolbar-border-color); +} +@media (prefers-color-scheme: dark) { + + .findbar { + box-shadow: 0 1px 0 rgba(12, 12, 13, 1); + box-shadow: 0 1px 0 var(--toolbar-border-color); + } +} +.secondaryToolbar { + box-shadow: 0 1px 0 rgba(204, 204, 204, 1); + box-shadow: 0 1px 0 var(--toolbar-border-color); +} +@media (prefers-color-scheme: dark) { + + .secondaryToolbar { + box-shadow: 0 1px 0 rgba(12, 12, 13, 1); + box-shadow: 0 1px 0 var(--toolbar-border-color); + } } #toolbarViewer { @@ -747,8 +1144,26 @@ html[dir='rtl'] #toolbarContainer, .findbar, .secondaryToolbar { position: relative; width: 100%; height: 4px; - background-color: #333; - border-bottom: 1px solid #333; + background-color: rgba(237, 237, 240, 1); + background-color: var(--body-bg-color); + border-bottom: 1px solid rgba(204, 204, 204, 1); + border-bottom: 1px solid var(--toolbar-border-color); +} + +@media (prefers-color-scheme: dark) { + + #loadingBar { + border-bottom: 1px solid rgba(12, 12, 13, 1); + border-bottom: 1px solid var(--toolbar-border-color); + } +} + +@media (prefers-color-scheme: dark) { + + #loadingBar { + background-color: rgba(42, 42, 46, 1); + background-color: var(--body-bg-color); + } } #loadingBar .progress { @@ -757,54 +1172,306 @@ html[dir='rtl'] #toolbarContainer, .findbar, .secondaryToolbar { left: 0; width: 0%; height: 100%; - background-color: #ddd; + background-color: rgba(10, 132, 255, 1); + background-color: var(--progressBar-color); overflow: hidden; - -webkit-transition: width 200ms; transition: width 200ms; } +@media (prefers-color-scheme: dark) { + + #loadingBar .progress { + background-color: rgba(0, 96, 223, 1); + background-color: var(--progressBar-color); + } +} + @-webkit-keyframes progressIndeterminate { - 0% { left: -142px; } - 100% { left: 0; } + 0% { + left: -142px; + } + 100% { + left: 0; + } } @keyframes progressIndeterminate { - 0% { left: -142px; } - 100% { left: 0; } + 0% { + left: -142px; + } + 100% { + left: 0; + } } #loadingBar .progress.indeterminate { - background-color: #999; - -webkit-transition: none; + background-color: rgba(221, 221, 222, 1); + background-color: var(--progressBar-indeterminate-bg-color); transition: none; } +@media (prefers-color-scheme: dark) { + + #loadingBar .progress.indeterminate { + background-color: rgba(40, 40, 43, 1); + background-color: var(--progressBar-indeterminate-bg-color); + } +} + #loadingBar .progress.indeterminate .glimmer { position: absolute; top: 0; left: 0; height: 100%; width: calc(100% + 150px); - - background: repeating-linear-gradient(135deg, - #bbb 0, #999 5px, - #999 45px, #ddd 55px, - #ddd 95px, #bbb 100px); - - -webkit-animation: progressIndeterminate 950ms linear infinite; - - animation: progressIndeterminate 950ms linear infinite; + background: repeating-linear-gradient( + 135deg, + rgba(116, 177, 239, 1) 0, + rgba(221, 221, 222, 1) 5px, + rgba(221, 221, 222, 1) 45px, + rgba(10, 132, 255, 1) 55px, + rgba(10, 132, 255, 1) 95px, + rgba(116, 177, 239, 1) 100px + ); + background: repeating-linear-gradient( + 135deg, + var(--progressBar-indeterminate-blend-color) 0, + var(--progressBar-indeterminate-bg-color) 5px, + var(--progressBar-indeterminate-bg-color) 45px, + var(--progressBar-color) 55px, + var(--progressBar-color) 95px, + var(--progressBar-indeterminate-blend-color) 100px + ); + -webkit-animation: progressIndeterminate 1s linear infinite; + animation: progressIndeterminate 1s linear infinite; } -.findbar, .secondaryToolbar { +@media (prefers-color-scheme: dark) { + + #loadingBar .progress.indeterminate .glimmer { + background: repeating-linear-gradient( + 135deg, + rgba(20, 68, 133, 1) 0, + rgba(40, 40, 43, 1) 5px, + rgba(40, 40, 43, 1) 45px, + rgba(0, 96, 223, 1) 55px, + rgba(0, 96, 223, 1) 95px, + rgba(20, 68, 133, 1) 100px + ); + background: repeating-linear-gradient( + 135deg, + var(--progressBar-indeterminate-blend-color) 0, + var(--progressBar-indeterminate-bg-color) 5px, + var(--progressBar-indeterminate-bg-color) 45px, + var(--progressBar-color) 55px, + var(--progressBar-color) 95px, + var(--progressBar-indeterminate-blend-color) 100px + ); + } +} + +@media (prefers-color-scheme: dark) { + + #loadingBar .progress.indeterminate .glimmer { + background: repeating-linear-gradient( + 135deg, + rgba(20, 68, 133, 1) 0, + rgba(40, 40, 43, 1) 5px, + rgba(40, 40, 43, 1) 45px, + rgba(0, 96, 223, 1) 55px, + rgba(0, 96, 223, 1) 95px, + rgba(20, 68, 133, 1) 100px + ); + background: repeating-linear-gradient( + 135deg, + var(--progressBar-indeterminate-blend-color) 0, + var(--progressBar-indeterminate-bg-color) 5px, + var(--progressBar-indeterminate-bg-color) 45px, + var(--progressBar-color) 55px, + var(--progressBar-color) 95px, + var(--progressBar-indeterminate-blend-color) 100px + ); + } +} + +@media (prefers-color-scheme: dark) { + + #loadingBar .progress.indeterminate .glimmer { + background: repeating-linear-gradient( + 135deg, + rgba(20, 68, 133, 1) 0, + rgba(40, 40, 43, 1) 5px, + rgba(40, 40, 43, 1) 45px, + rgba(0, 96, 223, 1) 55px, + rgba(0, 96, 223, 1) 95px, + rgba(20, 68, 133, 1) 100px + ); + background: repeating-linear-gradient( + 135deg, + var(--progressBar-indeterminate-blend-color) 0, + var(--progressBar-indeterminate-bg-color) 5px, + var(--progressBar-indeterminate-bg-color) 45px, + var(--progressBar-color) 55px, + var(--progressBar-color) 95px, + var(--progressBar-indeterminate-blend-color) 100px + ); + } +} + +@media (prefers-color-scheme: dark) { + + #loadingBar .progress.indeterminate .glimmer { + background: repeating-linear-gradient( + 135deg, + rgba(20, 68, 133, 1) 0, + rgba(40, 40, 43, 1) 5px, + rgba(40, 40, 43, 1) 45px, + rgba(0, 96, 223, 1) 55px, + rgba(0, 96, 223, 1) 95px, + rgba(20, 68, 133, 1) 100px + ); + background: repeating-linear-gradient( + 135deg, + var(--progressBar-indeterminate-blend-color) 0, + var(--progressBar-indeterminate-bg-color) 5px, + var(--progressBar-indeterminate-bg-color) 45px, + var(--progressBar-color) 55px, + var(--progressBar-color) 95px, + var(--progressBar-indeterminate-blend-color) 100px + ); + } +} + +@media (prefers-color-scheme: dark) { + + #loadingBar .progress.indeterminate .glimmer { + background: repeating-linear-gradient( + 135deg, + rgba(20, 68, 133, 1) 0, + rgba(40, 40, 43, 1) 5px, + rgba(40, 40, 43, 1) 45px, + rgba(0, 96, 223, 1) 55px, + rgba(0, 96, 223, 1) 95px, + rgba(20, 68, 133, 1) 100px + ); + background: repeating-linear-gradient( + 135deg, + var(--progressBar-indeterminate-blend-color) 0, + var(--progressBar-indeterminate-bg-color) 5px, + var(--progressBar-indeterminate-bg-color) 45px, + var(--progressBar-color) 55px, + var(--progressBar-color) 95px, + var(--progressBar-indeterminate-blend-color) 100px + ); + } +} + +@media (prefers-color-scheme: dark) { + + #loadingBar .progress.indeterminate .glimmer { + background: repeating-linear-gradient( + 135deg, + rgba(20, 68, 133, 1) 0, + rgba(40, 40, 43, 1) 5px, + rgba(40, 40, 43, 1) 45px, + rgba(0, 96, 223, 1) 55px, + rgba(0, 96, 223, 1) 95px, + rgba(20, 68, 133, 1) 100px + ); + background: repeating-linear-gradient( + 135deg, + var(--progressBar-indeterminate-blend-color) 0, + var(--progressBar-indeterminate-bg-color) 5px, + var(--progressBar-indeterminate-bg-color) 45px, + var(--progressBar-color) 55px, + var(--progressBar-color) 95px, + var(--progressBar-indeterminate-blend-color) 100px + ); + } +} + +@media (prefers-color-scheme: dark) { + + #loadingBar .progress.indeterminate .glimmer { + background: repeating-linear-gradient( + 135deg, + rgba(20, 68, 133, 1) 0, + rgba(40, 40, 43, 1) 5px, + rgba(40, 40, 43, 1) 45px, + rgba(0, 96, 223, 1) 55px, + rgba(0, 96, 223, 1) 95px, + rgba(20, 68, 133, 1) 100px + ); + background: repeating-linear-gradient( + 135deg, + var(--progressBar-indeterminate-blend-color) 0, + var(--progressBar-indeterminate-bg-color) 5px, + var(--progressBar-indeterminate-bg-color) 45px, + var(--progressBar-color) 55px, + var(--progressBar-color) 95px, + var(--progressBar-indeterminate-blend-color) 100px + ); + } +} + +@media (prefers-color-scheme: dark) { + + #loadingBar .progress.indeterminate .glimmer { + background: repeating-linear-gradient( + 135deg, + rgba(20, 68, 133, 1) 0, + rgba(40, 40, 43, 1) 5px, + rgba(40, 40, 43, 1) 45px, + rgba(0, 96, 223, 1) 55px, + rgba(0, 96, 223, 1) 95px, + rgba(20, 68, 133, 1) 100px + ); + background: repeating-linear-gradient( + 135deg, + var(--progressBar-indeterminate-blend-color) 0, + var(--progressBar-indeterminate-bg-color) 5px, + var(--progressBar-indeterminate-bg-color) 45px, + var(--progressBar-color) 55px, + var(--progressBar-color) 95px, + var(--progressBar-indeterminate-blend-color) 100px + ); + } +} + +@media (prefers-color-scheme: dark) { + + #loadingBar .progress.indeterminate .glimmer { + background: repeating-linear-gradient( + 135deg, + rgba(20, 68, 133, 1) 0, + rgba(40, 40, 43, 1) 5px, + rgba(40, 40, 43, 1) 45px, + rgba(0, 96, 223, 1) 55px, + rgba(0, 96, 223, 1) 95px, + rgba(20, 68, 133, 1) 100px + ); + background: repeating-linear-gradient( + 135deg, + var(--progressBar-indeterminate-blend-color) 0, + var(--progressBar-indeterminate-bg-color) 5px, + var(--progressBar-indeterminate-bg-color) 45px, + var(--progressBar-color) 55px, + var(--progressBar-color) 95px, + var(--progressBar-indeterminate-blend-color) 100px + ); + } +} + +.findbar, +.secondaryToolbar { top: 32px; position: absolute; z-index: 10000; height: auto; min-width: 16px; - padding: 0px 6px 0px 6px; + padding: 0px 4px 0px 4px; margin: 4px 2px 4px 2px; - color: hsl(0,0%,85%); + color: rgba(217, 217, 217, 1); font-size: 12px; line-height: 14px; text-align: left; @@ -813,6 +1480,16 @@ html[dir='rtl'] #toolbarContainer, .findbar, .secondaryToolbar { .findbar { min-width: 300px; + background-color: rgba(249, 249, 250, 1); + background-color: var(--toolbar-bg-color); +} + +@media (prefers-color-scheme: dark) { + + .findbar { + background-color: rgba(56, 56, 61, 1); + background-color: var(--toolbar-bg-color); + } } .findbar > div { height: 32px; @@ -823,11 +1500,114 @@ html[dir='rtl'] #toolbarContainer, .findbar, .secondaryToolbar { .findbar.wrapContainers > div#findbarMessageContainer { height: auto; } -html[dir='ltr'] .findbar { - left: 68px; +html[dir="ltr"] .findbar { + left: 64px; } -html[dir='rtl'] .findbar { - right: 68px; +html[dir="rtl"] .findbar { + right: 64px; +} + +html[dir="ltr"] .findbar .splitToolbarButton { + margin-left: 0px; + margin-top: 3px; +} + +html[dir="rtl"] .findbar .splitToolbarButton { + margin-right: 0px; + margin-top: 3px; +} + +.findbar .splitToolbarButton .findNext { + width: 29px; +} + +html[dir="ltr"] .findbar .splitToolbarButton .findNext { + border-right: 1px solid rgba(187, 187, 188, 1); + border-right: 1px solid var(--field-border-color); +} + +@media (prefers-color-scheme: dark) { + + html[dir="ltr"] .findbar .splitToolbarButton .findNext { + border-right: 1px solid rgba(115, 115, 115, 1); + border-right: 1px solid var(--field-border-color); + } +} + +html[dir="rtl"] .findbar .splitToolbarButton .findNext { + border-left: 1px solid rgba(187, 187, 188, 1); + border-left: 1px solid var(--field-border-color); +} + +@media (prefers-color-scheme: dark) { + + html[dir="rtl"] .findbar .splitToolbarButton .findNext { + border-left: 1px solid rgba(115, 115, 115, 1); + border-left: 1px solid var(--field-border-color); + } +} + +.findbar .splitToolbarButton .toolbarButton { + background-color: rgba(227, 228, 230, 1); + background-color: var(--findbar-nextprevious-btn-bg-color); + border-radius: 0px; + height: 26px; + border-top: 1px solid rgba(187, 187, 188, 1); + border-top: 1px solid var(--field-border-color); + border-bottom: 1px solid rgba(187, 187, 188, 1); + border-bottom: 1px solid var(--field-border-color); +} + +@media (prefers-color-scheme: dark) { + + .findbar .splitToolbarButton .toolbarButton { + border-bottom: 1px solid rgba(115, 115, 115, 1); + border-bottom: 1px solid var(--field-border-color); + } +} + +@media (prefers-color-scheme: dark) { + + .findbar .splitToolbarButton .toolbarButton { + border-top: 1px solid rgba(115, 115, 115, 1); + border-top: 1px solid var(--field-border-color); + } +} + +@media (prefers-color-scheme: dark) { + + .findbar .splitToolbarButton .toolbarButton { + background-color: rgba(89, 89, 89, 1); + background-color: var(--findbar-nextprevious-btn-bg-color); + } +} + +.findbar .splitToolbarButton .toolbarButton::before { + top: 5px; +} + +html[dir="ltr"] .findbar .splitToolbarButton > .findPrevious { + border-radius: 0; +} +html[dir="ltr"] .findbar .splitToolbarButton > .findNext { + border-bottom-left-radius: 0; + border-bottom-right-radius: 2px; + border-top-left-radius: 0; + border-top-right-radius: 2px; +} + +html[dir="rtl"] .findbar .splitToolbarButton > .findPrevious { + border-radius: 0; +} +html[dir="rtl"] .findbar .splitToolbarButton > .findNext { + border-bottom-left-radius: 2px; + border-bottom-right-radius: 0; + border-top-left-radius: 2px; + border-top-right-radius: 0; +} + +.findbar input[type="checkbox"] { + pointer-events: none; } .findbar label { @@ -837,47 +1617,114 @@ html[dir='rtl'] .findbar { user-select: none; } +.findbar label:hover { + background-color: rgba(221, 222, 223, 1); + background-color: var(--button-hover-color); +} + +@media (prefers-color-scheme: dark) { + + .findbar label:hover { + background-color: rgba(102, 102, 103, 1); + background-color: var(--button-hover-color); + } +} + +.findbar input:focus + label { + background-color: rgba(221, 222, 223, 1); + background-color: var(--button-hover-color); +} + +@media (prefers-color-scheme: dark) { + + .findbar input:focus + label { + background-color: rgba(102, 102, 103, 1); + background-color: var(--button-hover-color); + } +} + +html[dir="ltr"] #findInput { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +html[dir="rtl"] #findInput { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.findbar .toolbarField[type="checkbox"]:checked + .toolbarLabel { + background-color: rgba(0, 0, 0, 0.3) !important; + background-color: var(--toggled-btn-bg-color) !important; +} + +@media (prefers-color-scheme: dark) { + + .findbar .toolbarField[type="checkbox"]:checked + .toolbarLabel { + background-color: rgba(0, 0, 0, 0.3) !important; + background-color: var(--toggled-btn-bg-color) !important; + } +} + #findInput { width: 200px; } #findInput::-webkit-input-placeholder { - color: hsl(0, 0%, 75%); + color: rgba(191, 191, 191, 1); } #findInput::-moz-placeholder { - font-style: italic; + font-style: normal; } #findInput:-ms-input-placeholder { - font-style: italic; + font-style: normal; } #findInput::-ms-input-placeholder { - font-style: italic; + font-style: normal; } #findInput::placeholder { - font-style: italic; + font-style: normal; } #findInput[data-status="pending"] { - background-image: url(images/loading-small.png); + background-image: url(images/loading.svg); + background-image: var(--loading-icon); background-repeat: no-repeat; - background-position: right; + background-position: 98%; } -html[dir='rtl'] #findInput[data-status="pending"] { - background-position: left; +@media (prefers-color-scheme: dark) { + + #findInput[data-status="pending"] { + background-image: url(images/loading-dark.svg); + background-image: var(--loading-icon); + } +} +html[dir="rtl"] #findInput[data-status="pending"] { + background-position: 3px; } .secondaryToolbar { - padding: 6px; + padding: 6px 0 10px 0; height: auto; z-index: 30000; + background-color: rgba(255, 255, 255, 1); + background-color: var(--doorhanger-bg-color); } -html[dir='ltr'] .secondaryToolbar { + +@media (prefers-color-scheme: dark) { + + .secondaryToolbar { + background-color: rgba(74, 74, 79, 1); + background-color: var(--doorhanger-bg-color); + } +} +html[dir="ltr"] .secondaryToolbar { right: 4px; } -html[dir='rtl'] .secondaryToolbar { +html[dir="rtl"] .secondaryToolbar { left: 4px; } #secondaryToolbarButtonContainer { - max-width: 200px; + max-width: 220px; max-height: 400px; overflow-y: auto; -webkit-overflow-scrolling: touch; @@ -889,16 +1736,47 @@ html[dir='rtl'] .secondaryToolbar { display: none !important; } -.doorHanger, -.doorHangerRight { - border: 1px solid hsla(0,0%,0%,.5); +.doorHanger { border-radius: 2px; - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); + box-shadow: 0 1px 5px rgba(12, 12, 13, 0.2), + 0 0 0 1px rgba(12, 12, 13, 0.2); + box-shadow: 0 1px 5px var(--doorhanger-border-color), + 0 0 0 1px var(--doorhanger-border-color); } -.doorHanger:after, .doorHanger:before, -.doorHangerRight:after, .doorHangerRight:before { + +@media (prefers-color-scheme: dark) { + + .doorHanger { + box-shadow: 0 1px 5px rgba(39, 39, 43, 1), + 0 0 0 1px rgba(39, 39, 43, 1); + box-shadow: 0 1px 5px var(--doorhanger-border-color), + 0 0 0 1px var(--doorhanger-border-color); + } +} + +.doorHangerRight { + border-radius: 2px; + box-shadow: 0 1px 5px rgba(12, 12, 13, 0.2), + 0 0 0 1px rgba(12, 12, 13, 0.2); + box-shadow: 0 1px 5px var(--doorhanger-border-color), + 0 0 0 1px var(--doorhanger-border-color); +} + +@media (prefers-color-scheme: dark) { + + .doorHangerRight { + box-shadow: 0 1px 5px rgba(39, 39, 43, 1), + 0 0 0 1px rgba(39, 39, 43, 1); + box-shadow: 0 1px 5px var(--doorhanger-border-color), + 0 0 0 1px var(--doorhanger-border-color); + } +} +.doorHanger:after, +.doorHanger:before, +.doorHangerRight:after, +.doorHangerRight:before { bottom: 100%; - border: solid transparent; + border: solid rgba(0, 0, 0, 0); content: " "; height: 0; width: 0; @@ -907,102 +1785,141 @@ html[dir='rtl'] .secondaryToolbar { } .doorHanger:after, .doorHangerRight:after { - border-bottom-color: hsla(0,0%,32%,.99); border-width: 8px; } -.doorHanger:before, -.doorHangerRight:before { - border-bottom-color: hsla(0,0%,0%,.5); +.doorHanger:after { + border-bottom-color: rgba(249, 249, 250, 1); + border-bottom-color: var(--toolbar-bg-color); +} +@media (prefers-color-scheme: dark) { + + .doorHanger:after { + border-bottom-color: rgba(56, 56, 61, 1); + border-bottom-color: var(--toolbar-bg-color); + } +} +.doorHangerRight:after { + border-bottom-color: rgba(255, 255, 255, 1); + border-bottom-color: var(--doorhanger-bg-color); +} +@media (prefers-color-scheme: dark) { + + .doorHangerRight:after { + border-bottom-color: rgba(74, 74, 79, 1); + border-bottom-color: var(--doorhanger-bg-color); + } +} +.doorHanger:before { + border-bottom-color: rgba(12, 12, 13, 0.2); + border-bottom-color: var(--doorhanger-border-color); border-width: 9px; } +@media (prefers-color-scheme: dark) { -html[dir='ltr'] .doorHanger:after, -html[dir='rtl'] .doorHangerRight:after { - left: 13px; + .doorHanger:before { + border-bottom-color: rgba(39, 39, 43, 1); + border-bottom-color: var(--doorhanger-border-color); + } +} +.doorHangerRight:before { + border-bottom-color: rgba(12, 12, 13, 0.2); + border-bottom-color: var(--doorhanger-border-color); + border-width: 9px; +} +@media (prefers-color-scheme: dark) { + + .doorHangerRight:before { + border-bottom-color: rgba(39, 39, 43, 1); + border-bottom-color: var(--doorhanger-border-color); + } +} + +html[dir="ltr"] .doorHanger:after, +html[dir="rtl"] .doorHangerRight:after { + left: 10px; margin-left: -8px; } -html[dir='ltr'] .doorHanger:before, -html[dir='rtl'] .doorHangerRight:before { - left: 13px; +html[dir="ltr"] .doorHanger:before, +html[dir="rtl"] .doorHangerRight:before { + left: 10px; margin-left: -9px; } -html[dir='rtl'] .doorHanger:after, -html[dir='ltr'] .doorHangerRight:after { - right: 13px; +html[dir="rtl"] .doorHanger:after, +html[dir="ltr"] .doorHangerRight:after { + right: 10px; margin-right: -8px; } -html[dir='rtl'] .doorHanger:before, -html[dir='ltr'] .doorHangerRight:before { - right: 13px; +html[dir="rtl"] .doorHanger:before, +html[dir="ltr"] .doorHangerRight:before { + right: 10px; margin-right: -9px; } #findResultsCount { - background-color: hsl(0, 0%, 85%); - color: hsl(0, 0%, 32%); + background-color: rgba(217, 217, 217, 1); + color: rgba(82, 82, 82, 1); text-align: center; padding: 3px 4px; + margin: 5px; } #findMsg { - font-style: italic; - color: #A6B7D0; + color: rgba(251, 0, 0, 1); } #findMsg:empty { display: none; } #findInput.notFound { - background-color: rgb(255, 102, 102); + background-color: rgba(255, 102, 102, 1); } #toolbarViewerMiddle { position: absolute; left: 50%; - -webkit-transform: translateX(-50%); - transform: translateX(-50%); + transform: translateX(-50%); } -html[dir='ltr'] #toolbarViewerLeft, -html[dir='rtl'] #toolbarViewerRight { +html[dir="ltr"] #toolbarViewerLeft, +html[dir="rtl"] #toolbarViewerRight { float: left; } -html[dir='ltr'] #toolbarViewerRight, -html[dir='rtl'] #toolbarViewerLeft { +html[dir="ltr"] #toolbarViewerRight, +html[dir="rtl"] #toolbarViewerLeft { float: right; } -html[dir='ltr'] #toolbarViewerLeft > *, -html[dir='ltr'] #toolbarViewerMiddle > *, -html[dir='ltr'] #toolbarViewerRight > *, -html[dir='ltr'] .findbar * { +html[dir="ltr"] #toolbarViewerLeft > *, +html[dir="ltr"] #toolbarViewerMiddle > *, +html[dir="ltr"] #toolbarViewerRight > *, +html[dir="ltr"] .findbar * { position: relative; float: left; } -html[dir='rtl'] #toolbarViewerLeft > *, -html[dir='rtl'] #toolbarViewerMiddle > *, -html[dir='rtl'] #toolbarViewerRight > *, -html[dir='rtl'] .findbar * { +html[dir="rtl"] #toolbarViewerLeft > *, +html[dir="rtl"] #toolbarViewerMiddle > *, +html[dir="rtl"] #toolbarViewerRight > *, +html[dir="rtl"] .findbar * { position: relative; float: right; } -html[dir='ltr'] .splitToolbarButton { - margin: 3px 2px 4px 0; +html[dir="ltr"] .splitToolbarButton { + margin: 2px 2px 0; display: inline-block; } -html[dir='rtl'] .splitToolbarButton { - margin: 3px 0 4px 2px; +html[dir="rtl"] .splitToolbarButton { + margin: 2px 2px 0; display: inline-block; } -html[dir='ltr'] .splitToolbarButton > .toolbarButton { - border-radius: 0; +html[dir="ltr"] .splitToolbarButton > .toolbarButton { + border-radius: 2px; float: left; } -html[dir='rtl'] .splitToolbarButton > .toolbarButton { - border-radius: 0; +html[dir="rtl"] .splitToolbarButton > .toolbarButton { + border-radius: 2px; float: right; } @@ -1011,8 +1928,45 @@ html[dir='rtl'] .splitToolbarButton > .toolbarButton { .overlayButton { border: 0 none; background: none; - width: 32px; - height: 25px; + width: 28px; + height: 28px; +} +.overlayButton { + background-color: rgba(12, 12, 13, 0.1); + background-color: var(--overlay-button-bg-color); +} +@media (prefers-color-scheme: dark) { + + .overlayButton { + background-color: rgba(92, 92, 97, 1); + background-color: var(--overlay-button-bg-color); + } +} + +.overlayButton:hover { + background-color: rgba(12, 12, 13, 0.3); + background-color: var(--overlay-button-hover-color); +} + +@media (prefers-color-scheme: dark) { + + .overlayButton:hover { + background-color: rgba(115, 115, 115, 1); + background-color: var(--overlay-button-hover-color); + } +} + +.overlayButton:focus { + background-color: rgba(12, 12, 13, 0.3); + background-color: var(--overlay-button-hover-color); +} + +@media (prefers-color-scheme: dark) { + + .overlayButton:focus { + background-color: rgba(115, 115, 115, 1); + background-color: var(--overlay-button-hover-color); + } } .toolbarButton > span { @@ -1025,105 +1979,141 @@ html[dir='rtl'] .splitToolbarButton > .toolbarButton { .toolbarButton[disabled], .secondaryToolbarButton[disabled], .overlayButton[disabled] { - opacity: .5; + opacity: 0.5; } .splitToolbarButton.toggled .toolbarButton { margin: 0; } -.splitToolbarButton:hover > .toolbarButton, -.splitToolbarButton:focus > .toolbarButton, -.splitToolbarButton.toggled > .toolbarButton, -.toolbarButton.textButton { - background-color: hsla(0,0%,0%,.12); - background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0))); - background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0)); - background-clip: padding-box; - border: 1px solid hsla(0,0%,0%,.35); - border-color: hsla(0,0%,0%,.32) hsla(0,0%,0%,.38) hsla(0,0%,0%,.42); - box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset, - 0 0 1px hsla(0,0%,100%,.15) inset, - 0 1px 0 hsla(0,0%,100%,.05); - -webkit-transition-property: background-color, border-color, box-shadow; - transition-property: background-color, border-color, box-shadow; - -webkit-transition-duration: 150ms; - transition-duration: 150ms; - -webkit-transition-timing-function: ease; - transition-timing-function: ease; - -} -.splitToolbarButton > .toolbarButton:hover, -.splitToolbarButton > .toolbarButton:focus, -.dropdownToolbarButton:hover, -.overlayButton:hover, -.overlayButton:focus, -.toolbarButton.textButton:hover, -.toolbarButton.textButton:focus { - background-color: hsla(0,0%,0%,.2); - box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset, - 0 0 1px hsla(0,0%,100%,.15) inset, - 0 0 1px hsla(0,0%,0%,.05); +.splitToolbarButton > .toolbarButton:hover { + background-color: rgba(221, 222, 223, 1); + background-color: var(--button-hover-color); z-index: 199; } + +@media (prefers-color-scheme: dark) { + + .splitToolbarButton > .toolbarButton:hover { + background-color: rgba(102, 102, 103, 1); + background-color: var(--button-hover-color); + } +} + +.splitToolbarButton > .toolbarButton:focus { + background-color: rgba(221, 222, 223, 1); + background-color: var(--button-hover-color); + z-index: 199; +} + +@media (prefers-color-scheme: dark) { + + .splitToolbarButton > .toolbarButton:focus { + background-color: rgba(102, 102, 103, 1); + background-color: var(--button-hover-color); + } +} + +.dropdownToolbarButton:hover { + background-color: rgba(221, 222, 223, 1); + background-color: var(--button-hover-color); + z-index: 199; +} + +@media (prefers-color-scheme: dark) { + + .dropdownToolbarButton:hover { + background-color: rgba(102, 102, 103, 1); + background-color: var(--button-hover-color); + } +} + +.toolbarButton.textButton:hover { + background-color: rgba(221, 222, 223, 1); + background-color: var(--button-hover-color); + z-index: 199; +} + +@media (prefers-color-scheme: dark) { + + .toolbarButton.textButton:hover { + background-color: rgba(102, 102, 103, 1); + background-color: var(--button-hover-color); + } +} + +.toolbarButton.textButton:focus { + background-color: rgba(221, 222, 223, 1); + background-color: var(--button-hover-color); + z-index: 199; +} + +@media (prefers-color-scheme: dark) { + + .toolbarButton.textButton:focus { + background-color: rgba(102, 102, 103, 1); + background-color: var(--button-hover-color); + } +} .splitToolbarButton > .toolbarButton { position: relative; } -html[dir='ltr'] .splitToolbarButton > .toolbarButton:first-child, -html[dir='rtl'] .splitToolbarButton > .toolbarButton:last-child { +html[dir="ltr"] .splitToolbarButton > .toolbarButton:first-child, +html[dir="rtl"] .splitToolbarButton > .toolbarButton:last-child { position: relative; margin: 0; - margin-right: -1px; - border-top-left-radius: 2px; - border-bottom-left-radius: 2px; - border-right-color: transparent; } -html[dir='ltr'] .splitToolbarButton > .toolbarButton:last-child, -html[dir='rtl'] .splitToolbarButton > .toolbarButton:first-child { +html[dir="ltr"] .splitToolbarButton > .toolbarButton:last-child, +html[dir="rtl"] .splitToolbarButton > .toolbarButton:first-child { position: relative; margin: 0; - margin-left: -1px; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-left-color: transparent; } .splitToolbarButtonSeparator { - padding: 8px 0; + padding: 10px 0; width: 1px; - background-color: hsla(0,0%,0%,.5); + background-color: rgba(0, 0, 0, 0.3); + background-color: var(--separator-color); z-index: 99; - box-shadow: 0 0 0 1px hsla(0,0%,100%,.08); display: inline-block; - margin: 5px 0; + margin: 4px 0; } -html[dir='ltr'] .splitToolbarButtonSeparator { - float: left; -} -html[dir='rtl'] .splitToolbarButtonSeparator { - float: right; -} -.splitToolbarButton:hover > .splitToolbarButtonSeparator, -.splitToolbarButton.toggled > .splitToolbarButtonSeparator { - padding: 12px 0; - margin: 1px 0; - box-shadow: 0 0 0 1px hsla(0,0%,100%,.03); - -webkit-transition-property: padding; - transition-property: padding; - -webkit-transition-duration: 10ms; - transition-duration: 10ms; - -webkit-transition-timing-function: ease; - transition-timing-function: ease; +@media (prefers-color-scheme: dark) { + + .splitToolbarButtonSeparator { + background-color: rgba(0, 0, 0, 0.3); + background-color: var(--separator-color); + } } -.toolbarButton, -.dropdownToolbarButton, -.secondaryToolbarButton, -.overlayButton { +.findbar .splitToolbarButtonSeparator { + background-color: rgba(187, 187, 188, 1); + background-color: var(--field-border-color); + margin: 0; + padding: 13px 0; +} + +@media (prefers-color-scheme: dark) { + + .findbar .splitToolbarButtonSeparator { + background-color: rgba(115, 115, 115, 1); + background-color: var(--field-border-color); + } +} + +html[dir="ltr"] .splitToolbarButtonSeparator { + float: left; +} +html[dir="rtl"] .splitToolbarButtonSeparator { + float: right; +} + +.toolbarButton { min-width: 16px; padding: 2px 6px 0; - border: 1px solid transparent; + border: none; border-radius: 2px; - color: hsla(0,0%,100%,.8); + color: rgba(12, 12, 13, 1); + color: var(--main-color); font-size: 12px; line-height: 14px; -webkit-user-select: none; @@ -1132,115 +2122,314 @@ html[dir='rtl'] .splitToolbarButtonSeparator { user-select: none; /* Opera does not support user-select, use <... unselectable="on"> instead */ cursor: default; - -webkit-transition-property: background-color, border-color, box-shadow; - transition-property: background-color, border-color, box-shadow; - -webkit-transition-duration: 150ms; - transition-duration: 150ms; - -webkit-transition-timing-function: ease; - transition-timing-function: ease; + box-sizing: border-box; } -html[dir='ltr'] .toolbarButton, -html[dir='ltr'] .overlayButton, -html[dir='ltr'] .dropdownToolbarButton { - margin: 3px 2px 4px 0; -} -html[dir='rtl'] .toolbarButton, -html[dir='rtl'] .overlayButton, -html[dir='rtl'] .dropdownToolbarButton { - margin: 3px 0 4px 2px; +@media (prefers-color-scheme: dark) { + + .toolbarButton { + color: rgba(249, 249, 250, 1); + color: var(--main-color); + } } -.toolbarButton:hover, -.toolbarButton:focus, -.dropdownToolbarButton, -.overlayButton, -.secondaryToolbarButton:hover, +.dropdownToolbarButton { + min-width: 16px; + padding: 2px 6px 0; + border: none; + border-radius: 2px; + color: rgba(12, 12, 13, 1); + color: var(--main-color); + font-size: 12px; + line-height: 14px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + /* Opera does not support user-select, use <... unselectable="on"> instead */ + cursor: default; + box-sizing: border-box; +} + +@media (prefers-color-scheme: dark) { + + .dropdownToolbarButton { + color: rgba(249, 249, 250, 1); + color: var(--main-color); + } +} + +.secondaryToolbarButton { + min-width: 16px; + padding: 2px 6px 0; + border: none; + border-radius: 2px; + color: rgba(12, 12, 13, 1); + color: var(--main-color); + font-size: 12px; + line-height: 14px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + /* Opera does not support user-select, use <... unselectable="on"> instead */ + cursor: default; + box-sizing: border-box; +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton { + color: rgba(249, 249, 250, 1); + color: var(--main-color); + } +} + +.overlayButton { + min-width: 16px; + padding: 2px 6px 0; + border: none; + border-radius: 2px; + color: rgba(12, 12, 13, 1); + color: var(--main-color); + font-size: 12px; + line-height: 14px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + /* Opera does not support user-select, use <... unselectable="on"> instead */ + cursor: default; + box-sizing: border-box; +} + +@media (prefers-color-scheme: dark) { + + .overlayButton { + color: rgba(249, 249, 250, 1); + color: var(--main-color); + } +} + +html[dir="ltr"] .toolbarButton, +html[dir="ltr"] .overlayButton, +html[dir="ltr"] .dropdownToolbarButton { + margin: 2px 1px; +} +html[dir="rtl"] .toolbarButton, +html[dir="rtl"] .overlayButton, +html[dir="rtl"] .dropdownToolbarButton { + margin: 2px 1px; +} + +html[dir="ltr"] #toolbarViewerLeft > .toolbarButton:first-child, +html[dir="rtl"] #toolbarViewerRight > .toolbarButton:last-child { + margin-left: 2px; +} + +html[dir="ltr"] #toolbarViewerRight > .toolbarButton:last-child, +html[dir="rtl"] #toolbarViewerLeft > .toolbarButton:first-child { + margin-right: 2px; +} +.toolbarButton:hover { + background-color: rgba(221, 222, 223, 1); + background-color: var(--button-hover-color); +} +@media (prefers-color-scheme: dark) { + + .toolbarButton:hover { + background-color: rgba(102, 102, 103, 1); + background-color: var(--button-hover-color); + } +} +.toolbarButton:focus { + background-color: rgba(221, 222, 223, 1); + background-color: var(--button-hover-color); +} +@media (prefers-color-scheme: dark) { + + .toolbarButton:focus { + background-color: rgba(102, 102, 103, 1); + background-color: var(--button-hover-color); + } +} +.secondaryToolbarButton:hover { + background-color: rgba(237, 237, 237, 1); + background-color: var(--doorhanger-hover-color); +} +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton:hover { + background-color: rgba(93, 94, 98, 1); + background-color: var(--doorhanger-hover-color); + } +} .secondaryToolbarButton:focus { - background-color: hsla(0,0%,0%,.12); - background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0))); - background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0)); - background-clip: padding-box; - border: 1px solid hsla(0,0%,0%,.35); - border-color: hsla(0,0%,0%,.32) hsla(0,0%,0%,.38) hsla(0,0%,0%,.42); - box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset, - 0 0 1px hsla(0,0%,100%,.15) inset, - 0 1px 0 hsla(0,0%,100%,.05); + background-color: rgba(237, 237, 237, 1); + background-color: var(--doorhanger-hover-color); +} +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton:focus { + background-color: rgba(93, 94, 98, 1); + background-color: var(--doorhanger-hover-color); + } } -.toolbarButton:hover:active, -.overlayButton:hover:active, -.dropdownToolbarButton:hover:active, -.secondaryToolbarButton:hover:active { - background-color: hsla(0,0%,0%,.2); - background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0))); - background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0)); - border-color: hsla(0,0%,0%,.35) hsla(0,0%,0%,.4) hsla(0,0%,0%,.45); - box-shadow: 0 1px 1px hsla(0,0%,0%,.1) inset, - 0 0 1px hsla(0,0%,0%,.2) inset, - 0 1px 0 hsla(0,0%,100%,.05); - -webkit-transition-property: background-color, border-color, box-shadow; - transition-property: background-color, border-color, box-shadow; - -webkit-transition-duration: 10ms; - transition-duration: 10ms; - -webkit-transition-timing-function: linear; - transition-timing-function: linear; +.toolbarButton.toggled { + background-color: rgba(0, 0, 0, 0.3); + background-color: var(--toggled-btn-bg-color); +} + +@media (prefers-color-scheme: dark) { + + .toolbarButton.toggled { + background-color: rgba(0, 0, 0, 0.3); + background-color: var(--toggled-btn-bg-color); + } +} + +.splitToolbarButton.toggled > .toolbarButton.toggled { + background-color: rgba(0, 0, 0, 0.3); + background-color: var(--toggled-btn-bg-color); +} + +@media (prefers-color-scheme: dark) { + + .splitToolbarButton.toggled > .toolbarButton.toggled { + background-color: rgba(0, 0, 0, 0.3); + background-color: var(--toggled-btn-bg-color); + } } -.toolbarButton.toggled, -.splitToolbarButton.toggled > .toolbarButton.toggled, .secondaryToolbarButton.toggled { - background-color: hsla(0,0%,0%,.3); - background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0))); - background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0)); - border-color: hsla(0,0%,0%,.4) hsla(0,0%,0%,.45) hsla(0,0%,0%,.5); - box-shadow: 0 1px 1px hsla(0,0%,0%,.1) inset, - 0 0 1px hsla(0,0%,0%,.2) inset, - 0 1px 0 hsla(0,0%,100%,.05); - -webkit-transition-property: background-color, border-color, box-shadow; - transition-property: background-color, border-color, box-shadow; - -webkit-transition-duration: 10ms; - transition-duration: 10ms; - -webkit-transition-timing-function: linear; - transition-timing-function: linear; + background-color: rgba(0, 0, 0, 0.3); + background-color: var(--toggled-btn-bg-color); +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton.toggled { + background-color: rgba(0, 0, 0, 0.3); + background-color: var(--toggled-btn-bg-color); + } } .toolbarButton.toggled:hover:active, .splitToolbarButton.toggled > .toolbarButton.toggled:hover:active, .secondaryToolbarButton.toggled:hover:active { - background-color: hsla(0,0%,0%,.4); - border-color: hsla(0,0%,0%,.4) hsla(0,0%,0%,.5) hsla(0,0%,0%,.55); - box-shadow: 0 1px 1px hsla(0,0%,0%,.2) inset, - 0 0 1px hsla(0,0%,0%,.3) inset, - 0 1px 0 hsla(0,0%,100%,.05); + background-color: rgba(0, 0, 0, 0.4); } .dropdownToolbarButton { - width: 120px; - max-width: 120px; + width: 140px; padding: 0; overflow: hidden; - background: url(images/toolbarButton-menuArrows.png) no-repeat; + background-color: rgba(215, 215, 219, 1); + background-color: var(--dropdown-btn-bg-color); + margin-top: 2px !important; } -html[dir='ltr'] .dropdownToolbarButton { - background-position: 95%; + +@media (prefers-color-scheme: dark) { + + .dropdownToolbarButton { + background-color: rgba(74, 74, 79, 1); + background-color: var(--dropdown-btn-bg-color); + } } -html[dir='rtl'] .dropdownToolbarButton { - background-position: 5%; +.dropdownToolbarButton::after { + position: absolute; + display: inline-block; + top: 6px; + content: url(images/toolbarButton-menuArrow.svg); + content: var(--toolbarButton-menuArrow-icon); + pointer-events: none; + max-width: 16px; +} +@media (prefers-color-scheme: dark) { + + .dropdownToolbarButton::after { + content: url(images/toolbarButton-menuArrow-dark.svg); + content: var(--toolbarButton-menuArrow-icon); + } +} +html[dir="ltr"] .dropdownToolbarButton::after { + right: 7px; +} +html[dir="rtl"] .dropdownToolbarButton::after { + left: 7px; } .dropdownToolbarButton > select { - min-width: 140px; + width: 162px; + height: 28px; font-size: 12px; - color: hsl(0,0%,95%); + color: rgba(12, 12, 13, 1); + color: var(--main-color); margin: 0; - padding: 3px 2px 2px; + padding: 1px 0 2px; border: none; - background: rgba(0,0,0,0); /* Opera does not support 'transparent' background */ + background-color: rgba(215, 215, 219, 1); + background-color: var(--dropdown-btn-bg-color); +} + +@media (prefers-color-scheme: dark) { + + .dropdownToolbarButton > select { + background-color: rgba(74, 74, 79, 1); + background-color: var(--dropdown-btn-bg-color); + } +} + +@media (prefers-color-scheme: dark) { + + .dropdownToolbarButton > select { + color: rgba(249, 249, 250, 1); + color: var(--main-color); + } +} +html[dir="ltr"] .dropdownToolbarButton > select { + padding-left: 4px; +} +html[dir="rtl"] .dropdownToolbarButton > select { + padding-right: 4px; +} +.dropdownToolbarButton > select:hover { + background-color: rgba(221, 222, 223, 1); + background-color: var(--button-hover-color); +} +@media (prefers-color-scheme: dark) { + + .dropdownToolbarButton > select:hover { + background-color: rgba(102, 102, 103, 1); + background-color: var(--button-hover-color); + } +} + +.dropdownToolbarButton > select:focus { + background-color: rgba(221, 222, 223, 1); + background-color: var(--button-hover-color); +} + +@media (prefers-color-scheme: dark) { + + .dropdownToolbarButton > select:focus { + background-color: rgba(102, 102, 103, 1); + background-color: var(--button-hover-color); + } } .dropdownToolbarButton > select > option { - background: hsl(0,0%,24%); + background: rgba(255, 255, 255, 1); + background: var(--doorhanger-bg-color); +} + +@media (prefers-color-scheme: dark) { + + .dropdownToolbarButton > select > option { + background: rgba(74, 74, 79, 1); + background: var(--doorhanger-bg-color); + } } #customScaleOption { @@ -1248,20 +2437,7 @@ html[dir='rtl'] .dropdownToolbarButton { } #pageWidthOption { - border-bottom: 1px rgba(255, 255, 255, .5) solid; -} - -html[dir='ltr'] .splitToolbarButton:first-child, -html[dir='ltr'] .toolbarButton:first-child, -html[dir='rtl'] .splitToolbarButton:last-child, -html[dir='rtl'] .toolbarButton:last-child { - margin-left: 4px; -} -html[dir='ltr'] .splitToolbarButton:last-child, -html[dir='ltr'] .toolbarButton:last-child, -html[dir='rtl'] .splitToolbarButton:first-child, -html[dir='rtl'] .toolbarButton:first-child { - margin-right: 4px; + border-bottom: 1px rgba(255, 255, 255, 0.5) solid; } .toolbarButtonSpacer { @@ -1270,145 +2446,377 @@ html[dir='rtl'] .toolbarButton:first-child { height: 1px; } -html[dir='ltr'] #findPrevious { - margin-left: 3px; +html[dir="ltr"] #findPrevious { + margin-left: 0; } -html[dir='ltr'] #findNext { +html[dir="ltr"] #findNext { margin-right: 3px; } -html[dir='rtl'] #findPrevious { - margin-right: 3px; +html[dir="rtl"] #findPrevious { + margin-right: 0; } -html[dir='rtl'] #findNext { +html[dir="rtl"] #findNext { margin-left: 3px; } +.toolbarButton::before { + opacity: 0.7; + opacity: var(--toolbar-icon-opacity); + top: 6px; +} + +.secondaryToolbarButton::before { + opacity: 0.9; + opacity: var(--doorhanger-icon-opacity); + top: 5px; +} + .toolbarButton::before, .secondaryToolbarButton::before { /* All matching images have a size of 16x16 - * All relevant containers have a size of 32x25 */ + * All relevant containers have a size of 28x28 */ position: absolute; display: inline-block; - top: 4px; - left: 7px; + left: 6px; + max-width: 16px; } html[dir="ltr"] .secondaryToolbarButton::before { - left: 4px; + left: 12px; } html[dir="rtl"] .secondaryToolbarButton::before { - right: 4px; + right: 12px; } -html[dir='ltr'] .toolbarButton#sidebarToggle::before { - content: url(images/toolbarButton-sidebarToggle.png); -} -html[dir='rtl'] .toolbarButton#sidebarToggle::before { - content: url(images/toolbarButton-sidebarToggle-rtl.png); +.toolbarButton#sidebarToggle::before { + content: url(images/toolbarButton-sidebarToggle.svg); + content: var(--toolbarButton-sidebarToggle-icon); } -html[dir='ltr'] .toolbarButton#secondaryToolbarToggle::before { - content: url(images/toolbarButton-secondaryToolbarToggle.png); +@media (prefers-color-scheme: dark) { + + .toolbarButton#sidebarToggle::before { + content: url(images/toolbarButton-sidebarToggle-dark.svg); + content: var(--toolbarButton-sidebarToggle-icon); + } } -html[dir='rtl'] .toolbarButton#secondaryToolbarToggle::before { - content: url(images/toolbarButton-secondaryToolbarToggle-rtl.png); +html[dir="rtl"] .toolbarButton#sidebarToggle::before { + transform: scaleX(-1); } -html[dir='ltr'] .toolbarButton.findPrevious::before { - content: url(images/findbarButton-previous.png); -} -html[dir='rtl'] .toolbarButton.findPrevious::before { - content: url(images/findbarButton-previous-rtl.png); +.toolbarButton#secondaryToolbarToggle::before { + content: url(images/toolbarButton-secondaryToolbarToggle.svg); + content: var(--toolbarButton-secondaryToolbarToggle-icon); } -html[dir='ltr'] .toolbarButton.findNext::before { - content: url(images/findbarButton-next.png); +@media (prefers-color-scheme: dark) { + + .toolbarButton#secondaryToolbarToggle::before { + content: url(images/toolbarButton-secondaryToolbarToggle-dark.svg); + content: var(--toolbarButton-secondaryToolbarToggle-icon); + } } -html[dir='rtl'] .toolbarButton.findNext::before { - content: url(images/findbarButton-next-rtl.png); +html[dir="rtl"] .toolbarButton#secondaryToolbarToggle::before { + transform: scaleX(-1); } -html[dir='ltr'] .toolbarButton.pageUp::before { - content: url(images/toolbarButton-pageUp.png); -} -html[dir='rtl'] .toolbarButton.pageUp::before { - content: url(images/toolbarButton-pageUp-rtl.png); +.toolbarButton.findPrevious::before { + content: url(images/findbarButton-previous.svg); + content: var(--findbarButton-previous-icon); } -html[dir='ltr'] .toolbarButton.pageDown::before { - content: url(images/toolbarButton-pageDown.png); +@media (prefers-color-scheme: dark) { + + .toolbarButton.findPrevious::before { + content: url(images/findbarButton-previous-dark.svg); + content: var(--findbarButton-previous-icon); + } } -html[dir='rtl'] .toolbarButton.pageDown::before { - content: url(images/toolbarButton-pageDown-rtl.png); +html[dir="rtl"] .toolbarButton.findPrevious::before { + transform: scaleX(-1); +} + +.toolbarButton.findNext::before { + content: url(images/findbarButton-next.svg); + content: var(--findbarButton-next-icon); +} + +@media (prefers-color-scheme: dark) { + + .toolbarButton.findNext::before { + content: url(images/findbarButton-next-dark.svg); + content: var(--findbarButton-next-icon); + } +} +html[dir="rtl"] .toolbarButton.findNext::before { + transform: scaleX(-1); +} + +.toolbarButton.pageUp::before { + content: url(images/toolbarButton-pageUp.svg); + content: var(--toolbarButton-pageUp-icon); +} + +@media (prefers-color-scheme: dark) { + + .toolbarButton.pageUp::before { + content: url(images/toolbarButton-pageUp-dark.svg); + content: var(--toolbarButton-pageUp-icon); + } +} +html[dir="rtl"] .toolbarButton.pageUp::before { + transform: scaleX(-1); +} + +.toolbarButton.pageDown::before { + content: url(images/toolbarButton-pageDown.svg); + content: var(--toolbarButton-pageDown-icon); +} + +@media (prefers-color-scheme: dark) { + + .toolbarButton.pageDown::before { + content: url(images/toolbarButton-pageDown-dark.svg); + content: var(--toolbarButton-pageDown-icon); + } +} +html[dir="rtl"] .toolbarButton.pageDown::before { + transform: scaleX(-1); } .toolbarButton.zoomOut::before { - content: url(images/toolbarButton-zoomOut.png); + content: url(images/toolbarButton-zoomOut.svg); + content: var(--toolbarButton-zoomOut-icon); +} + +@media (prefers-color-scheme: dark) { + + .toolbarButton.zoomOut::before { + content: url(images/toolbarButton-zoomOut-dark.svg); + content: var(--toolbarButton-zoomOut-icon); + } } .toolbarButton.zoomIn::before { - content: url(images/toolbarButton-zoomIn.png); + content: url(images/toolbarButton-zoomIn.svg); + content: var(--toolbarButton-zoomIn-icon); +} + +@media (prefers-color-scheme: dark) { + + .toolbarButton.zoomIn::before { + content: url(images/toolbarButton-zoomIn-dark.svg); + content: var(--toolbarButton-zoomIn-icon); + } +} + +.toolbarButton.presentationMode::before { + content: url(images/toolbarButton-presentationMode.svg); + content: var(--toolbarButton-presentationMode-icon); +} + +@media (prefers-color-scheme: dark) { + + .toolbarButton.presentationMode::before { + content: url(images/toolbarButton-presentationMode-dark.svg); + content: var(--toolbarButton-presentationMode-icon); + } } -.toolbarButton.presentationMode::before, .secondaryToolbarButton.presentationMode::before { - content: url(images/toolbarButton-presentationMode.png); + content: url(images/toolbarButton-presentationMode.svg); + content: var(--toolbarButton-presentationMode-icon); +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton.presentationMode::before { + content: url(images/toolbarButton-presentationMode-dark.svg); + content: var(--toolbarButton-presentationMode-icon); + } +} + +.toolbarButton.print::before { + content: url(images/toolbarButton-print.svg); + content: var(--toolbarButton-print-icon); +} + +@media (prefers-color-scheme: dark) { + + .toolbarButton.print::before { + content: url(images/toolbarButton-print-dark.svg); + content: var(--toolbarButton-print-icon); + } } -.toolbarButton.print::before, .secondaryToolbarButton.print::before { - content: url(images/toolbarButton-print.png); + content: url(images/toolbarButton-print.svg); + content: var(--toolbarButton-print-icon); +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton.print::before { + content: url(images/toolbarButton-print-dark.svg); + content: var(--toolbarButton-print-icon); + } +} + +.toolbarButton.openFile::before { + content: url(images/toolbarButton-openFile.svg); + content: var(--toolbarButton-openFile-icon); +} + +@media (prefers-color-scheme: dark) { + + .toolbarButton.openFile::before { + content: url(images/toolbarButton-openFile-dark.svg); + content: var(--toolbarButton-openFile-icon); + } } -.toolbarButton.openFile::before, .secondaryToolbarButton.openFile::before { - content: url(images/toolbarButton-openFile.png); + content: url(images/toolbarButton-openFile.svg); + content: var(--toolbarButton-openFile-icon); +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton.openFile::before { + content: url(images/toolbarButton-openFile-dark.svg); + content: var(--toolbarButton-openFile-icon); + } +} + +.toolbarButton.download::before { + content: url(images/toolbarButton-download.svg); + content: var(--toolbarButton-download-icon); +} + +@media (prefers-color-scheme: dark) { + + .toolbarButton.download::before { + content: url(images/toolbarButton-download-dark.svg); + content: var(--toolbarButton-download-icon); + } } -.toolbarButton.download::before, .secondaryToolbarButton.download::before { - content: url(images/toolbarButton-download.png); + content: url(images/toolbarButton-download.svg); + content: var(--toolbarButton-download-icon); +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton.download::before { + content: url(images/toolbarButton-download-dark.svg); + content: var(--toolbarButton-download-icon); + } } -.toolbarButton.bookmark, .secondaryToolbarButton.bookmark { - box-sizing: border-box; - outline: none; - padding-top: 4px; + padding-top: 6px; text-decoration: none; } -.secondaryToolbarButton.bookmark { - padding-top: 5px; -} -.bookmark[href='#'] { - opacity: .5; +.bookmark[href="#"] { + opacity: 0.5; pointer-events: none; } -.toolbarButton.bookmark::before, +.toolbarButton.bookmark::before { + content: url(images/toolbarButton-bookmark.svg); + content: var(--toolbarButton-bookmark-icon); +} + +@media (prefers-color-scheme: dark) { + + .toolbarButton.bookmark::before { + content: url(images/toolbarButton-bookmark-dark.svg); + content: var(--toolbarButton-bookmark-icon); + } +} + .secondaryToolbarButton.bookmark::before { - content: url(images/toolbarButton-bookmark.png); + content: url(images/toolbarButton-bookmark.svg); + content: var(--toolbarButton-bookmark-icon); +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton.bookmark::before { + content: url(images/toolbarButton-bookmark-dark.svg); + content: var(--toolbarButton-bookmark-icon); + } } #viewThumbnail.toolbarButton::before { - content: url(images/toolbarButton-viewThumbnail.png); + content: url(images/toolbarButton-viewThumbnail.svg); + content: var(--toolbarButton-viewThumbnail-icon); } -html[dir="ltr"] #viewOutline.toolbarButton::before { - content: url(images/toolbarButton-viewOutline.png); +@media (prefers-color-scheme: dark) { + + #viewThumbnail.toolbarButton::before { + content: url(images/toolbarButton-viewThumbnail-dark.svg); + content: var(--toolbarButton-viewThumbnail-icon); + } +} + +#viewOutline.toolbarButton::before { + content: url(images/toolbarButton-viewOutline.svg); + content: var(--toolbarButton-viewOutline-icon); +} + +@media (prefers-color-scheme: dark) { + + #viewOutline.toolbarButton::before { + content: url(images/toolbarButton-viewOutline-dark.svg); + content: var(--toolbarButton-viewOutline-icon); + } } html[dir="rtl"] #viewOutline.toolbarButton::before { - content: url(images/toolbarButton-viewOutline-rtl.png); + transform: scaleX(-1); } #viewAttachments.toolbarButton::before { - content: url(images/toolbarButton-viewAttachments.png); + content: url(images/toolbarButton-viewAttachments.svg); + content: var(--toolbarButton-viewAttachments-icon); +} + +@media (prefers-color-scheme: dark) { + + #viewAttachments.toolbarButton::before { + content: url(images/toolbarButton-viewAttachments-dark.svg); + content: var(--toolbarButton-viewAttachments-icon); + } +} + +#viewLayers.toolbarButton::before { + content: url(images/toolbarButton-viewLayers.svg); + content: var(--toolbarButton-viewLayers-icon); +} + +@media (prefers-color-scheme: dark) { + + #viewLayers.toolbarButton::before { + content: url(images/toolbarButton-viewLayers-dark.svg); + content: var(--toolbarButton-viewLayers-icon); + } } #viewFind.toolbarButton::before { - content: url(images/toolbarButton-search.png); + content: url(images/toolbarButton-search.svg); + content: var(--toolbarButton-search-icon); +} + +@media (prefers-color-scheme: dark) { + + #viewFind.toolbarButton::before { + content: url(images/toolbarButton-search-dark.svg); + content: var(--toolbarButton-search-icon); + } } .toolbarButton.pdfSidebarNotification::after { @@ -1416,43 +2824,39 @@ html[dir="rtl"] #viewOutline.toolbarButton::before { display: inline-block; top: 1px; /* Create a filled circle, with a diameter of 9 pixels, using only CSS: */ - content: ''; - background-color: #70DB55; + content: ""; + background-color: rgba(112, 219, 85, 1); height: 9px; width: 9px; border-radius: 50%; } -html[dir='ltr'] .toolbarButton.pdfSidebarNotification::after { +html[dir="ltr"] .toolbarButton.pdfSidebarNotification::after { left: 17px; } -html[dir='rtl'] .toolbarButton.pdfSidebarNotification::after { +html[dir="rtl"] .toolbarButton.pdfSidebarNotification::after { right: 17px; } .secondaryToolbarButton { position: relative; - margin: 0 0 4px 0; - padding: 3px 0 1px 0; + margin: 0; + padding: 0 0 1px 0; height: auto; - min-height: 25px; + min-height: 26px; width: auto; min-width: 100%; white-space: normal; + border-radius: 0; + box-sizing: border-box; } html[dir="ltr"] .secondaryToolbarButton { - padding-left: 24px; + padding-left: 36px; text-align: left; } html[dir="rtl"] .secondaryToolbarButton { - padding-right: 24px; + padding-right: 36px; text-align: right; } -html[dir="ltr"] .secondaryToolbarButton.bookmark { - padding-left: 27px; -} -html[dir="rtl"] .secondaryToolbarButton.bookmark { - padding-right: 27px; -} html[dir="ltr"] .secondaryToolbarButton > span { padding-right: 4px; @@ -1462,109 +2866,269 @@ html[dir="rtl"] .secondaryToolbarButton > span { } .secondaryToolbarButton.firstPage::before { - content: url(images/secondaryToolbarButton-firstPage.png); + content: url(images/secondaryToolbarButton-firstPage.svg); + content: var(--secondaryToolbarButton-firstPage-icon); +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton.firstPage::before { + content: url(images/secondaryToolbarButton-firstPage-dark.svg); + content: var(--secondaryToolbarButton-firstPage-icon); + } } .secondaryToolbarButton.lastPage::before { - content: url(images/secondaryToolbarButton-lastPage.png); + content: url(images/secondaryToolbarButton-lastPage.svg); + content: var(--secondaryToolbarButton-lastPage-icon); +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton.lastPage::before { + content: url(images/secondaryToolbarButton-lastPage-dark.svg); + content: var(--secondaryToolbarButton-lastPage-icon); + } } .secondaryToolbarButton.rotateCcw::before { - content: url(images/secondaryToolbarButton-rotateCcw.png); + content: url(images/secondaryToolbarButton-rotateCcw.svg); + content: var(--secondaryToolbarButton-rotateCcw-icon); +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton.rotateCcw::before { + content: url(images/secondaryToolbarButton-rotateCcw-dark.svg); + content: var(--secondaryToolbarButton-rotateCcw-icon); + } } .secondaryToolbarButton.rotateCw::before { - content: url(images/secondaryToolbarButton-rotateCw.png); + content: url(images/secondaryToolbarButton-rotateCw.svg); + content: var(--secondaryToolbarButton-rotateCw-icon); +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton.rotateCw::before { + content: url(images/secondaryToolbarButton-rotateCw-dark.svg); + content: var(--secondaryToolbarButton-rotateCw-icon); + } } .secondaryToolbarButton.selectTool::before { - content: url(images/secondaryToolbarButton-selectTool.png); + content: url(images/secondaryToolbarButton-selectTool.svg); + content: var(--secondaryToolbarButton-selectTool-icon); +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton.selectTool::before { + content: url(images/secondaryToolbarButton-selectTool-dark.svg); + content: var(--secondaryToolbarButton-selectTool-icon); + } } .secondaryToolbarButton.handTool::before { - content: url(images/secondaryToolbarButton-handTool.png); + content: url(images/secondaryToolbarButton-handTool.svg); + content: var(--secondaryToolbarButton-handTool-icon); +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton.handTool::before { + content: url(images/secondaryToolbarButton-handTool-dark.svg); + content: var(--secondaryToolbarButton-handTool-icon); + } } .secondaryToolbarButton.scrollVertical::before { - content: url(images/secondaryToolbarButton-scrollVertical.png); + content: url(images/secondaryToolbarButton-scrollVertical.svg); + content: var(--secondaryToolbarButton-scrollVertical-icon); +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton.scrollVertical::before { + content: url(images/secondaryToolbarButton-scrollVertical-dark.svg); + content: var(--secondaryToolbarButton-scrollVertical-icon); + } } .secondaryToolbarButton.scrollHorizontal::before { - content: url(images/secondaryToolbarButton-scrollHorizontal.png); + content: url(images/secondaryToolbarButton-scrollHorizontal.svg); + content: var(--secondaryToolbarButton-scrollHorizontal-icon); +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton.scrollHorizontal::before { + content: url(images/secondaryToolbarButton-scrollHorizontal-dark.svg); + content: var(--secondaryToolbarButton-scrollHorizontal-icon); + } } .secondaryToolbarButton.scrollWrapped::before { - content: url(images/secondaryToolbarButton-scrollWrapped.png); + content: url(images/secondaryToolbarButton-scrollWrapped.svg); + content: var(--secondaryToolbarButton-scrollWrapped-icon); +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton.scrollWrapped::before { + content: url(images/secondaryToolbarButton-scrollWrapped-dark.svg); + content: var(--secondaryToolbarButton-scrollWrapped-icon); + } } .secondaryToolbarButton.spreadNone::before { - content: url(images/secondaryToolbarButton-spreadNone.png); + content: url(images/secondaryToolbarButton-spreadNone.svg); + content: var(--secondaryToolbarButton-spreadNone-icon); +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton.spreadNone::before { + content: url(images/secondaryToolbarButton-spreadNone-dark.svg); + content: var(--secondaryToolbarButton-spreadNone-icon); + } } .secondaryToolbarButton.spreadOdd::before { - content: url(images/secondaryToolbarButton-spreadOdd.png); + content: url(images/secondaryToolbarButton-spreadOdd.svg); + content: var(--secondaryToolbarButton-spreadOdd-icon); +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton.spreadOdd::before { + content: url(images/secondaryToolbarButton-spreadOdd-dark.svg); + content: var(--secondaryToolbarButton-spreadOdd-icon); + } } .secondaryToolbarButton.spreadEven::before { - content: url(images/secondaryToolbarButton-spreadEven.png); + content: url(images/secondaryToolbarButton-spreadEven.svg); + content: var(--secondaryToolbarButton-spreadEven-icon); +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton.spreadEven::before { + content: url(images/secondaryToolbarButton-spreadEven-dark.svg); + content: var(--secondaryToolbarButton-spreadEven-icon); + } } .secondaryToolbarButton.documentProperties::before { - content: url(images/secondaryToolbarButton-documentProperties.png); + content: url(images/secondaryToolbarButton-documentProperties.svg); + content: var(--secondaryToolbarButton-documentProperties-icon); +} + +@media (prefers-color-scheme: dark) { + + .secondaryToolbarButton.documentProperties::before { + content: url(images/secondaryToolbarButton-documentProperties-dark.svg); + content: var(--secondaryToolbarButton-documentProperties-icon); + } } .verticalToolbarSeparator { display: block; - padding: 8px 0; - margin: 8px 4px; + padding: 11px 0; + margin: 5px 2px; width: 1px; - background-color: hsla(0,0%,0%,.5); - box-shadow: 0 0 0 1px hsla(0,0%,100%,.08); + background-color: rgba(0, 0, 0, 0.3); + background-color: var(--separator-color); } -html[dir='ltr'] .verticalToolbarSeparator { + +@media (prefers-color-scheme: dark) { + + .verticalToolbarSeparator { + background-color: rgba(0, 0, 0, 0.3); + background-color: var(--separator-color); + } +} +html[dir="ltr"] .verticalToolbarSeparator { margin-left: 2px; } -html[dir='rtl'] .verticalToolbarSeparator { +html[dir="rtl"] .verticalToolbarSeparator { margin-right: 2px; } .horizontalToolbarSeparator { display: block; - margin: 0 0 4px 0; + margin: 6px 0 5px 0; height: 1px; width: 100%; - background-color: hsla(0,0%,0%,.5); - box-shadow: 0 0 0 1px hsla(0,0%,100%,.08); + border-top: 1px solid rgba(222, 222, 222, 1); + border-top: 1px solid var(--doorhanger-separator-color); +} + +@media (prefers-color-scheme: dark) { + + .horizontalToolbarSeparator { + border-top: 1px solid rgba(92, 92, 97, 1); + border-top: 1px solid var(--doorhanger-separator-color); + } } .toolbarField { - padding: 3px 6px; - margin: 4px 0 4px 0; - border: 1px solid transparent; + padding: 4px 7px; + margin: 3px 0 3px 0; border-radius: 2px; - background-color: hsla(0,0%,100%,.09); - background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0))); - background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0)); + background-color: rgba(255, 255, 255, 1); + background-color: var(--field-bg-color); background-clip: padding-box; - border: 1px solid hsla(0,0%,0%,.35); - border-color: hsla(0,0%,0%,.32) hsla(0,0%,0%,.38) hsla(0,0%,0%,.42); - box-shadow: 0 1px 0 hsla(0,0%,0%,.05) inset, - 0 1px 0 hsla(0,0%,100%,.05); - color: hsl(0,0%,95%); + border-width: 1px; + border-style: solid; + border-color: rgba(187, 187, 188, 1); + border-color: var(--field-border-color); + box-shadow: none; + color: rgba(6, 6, 6, 1); + color: var(--field-color); font-size: 12px; - line-height: 14px; + line-height: 16px; outline-style: none; - -webkit-transition-property: background-color, border-color, box-shadow; - transition-property: background-color, border-color, box-shadow; - -webkit-transition-duration: 150ms; - transition-duration: 150ms; - -webkit-transition-timing-function: ease; - transition-timing-function: ease; } -.toolbarField[type=checkbox] { - display: inline-block; - margin: 8px 0px; +@media (prefers-color-scheme: dark) { + + .toolbarField { + color: rgba(250, 250, 250, 1); + color: var(--field-color); + } +} + +@media (prefers-color-scheme: dark) { + + .toolbarField { + border-color: rgba(115, 115, 115, 1); + border-color: var(--field-border-color); + } +} + +@media (prefers-color-scheme: dark) { + + .toolbarField { + background-color: rgba(64, 64, 68, 1); + background-color: var(--field-bg-color); + } +} + +.toolbarField[type="checkbox"] { + opacity: 0; + position: absolute !important; + left: 0; +} + +html[dir="ltr"] .toolbarField[type="checkbox"] { + margin: 10px 0 3px 7px; +} + +html[dir="rtl"] .toolbarField[type="checkbox"] { + margin: 10px 7px 3px 0; } .toolbarField.pageNumber { @@ -1575,34 +3139,38 @@ html[dir='rtl'] .verticalToolbarSeparator { } .toolbarField.pageNumber.visiblePageIsLoading { - background-image: url(images/loading-small.png); + background-image: url(images/loading.svg); + background-image: var(--loading-icon); background-repeat: no-repeat; - background-position: 1px; + background-position: 3px; +} + +@media (prefers-color-scheme: dark) { + + .toolbarField.pageNumber.visiblePageIsLoading { + background-image: url(images/loading-dark.svg); + background-image: var(--loading-icon); + } } .toolbarField.pageNumber::-webkit-inner-spin-button, .toolbarField.pageNumber::-webkit-outer-spin-button { - -webkit-appearance: none; - margin: 0; -} - -.toolbarField:hover { - background-color: hsla(0,0%,100%,.11); - border-color: hsla(0,0%,0%,.4) hsla(0,0%,0%,.43) hsla(0,0%,0%,.45); + -webkit-appearance: none; + margin: 0; } .toolbarField:focus { - background-color: hsla(0,0%,100%,.15); - border-color: hsla(204,100%,65%,.8) hsla(204,100%,65%,.85) hsla(204,100%,65%,.9); + border-color: #0a84ff; } .toolbarLabel { min-width: 16px; - padding: 3px 6px 3px 2px; - margin: 4px 2px 4px 0; - border: 1px solid transparent; + padding: 6px; + margin: 2px; + border: 1px solid rgba(0, 0, 0, 0); border-radius: 2px; - color: hsl(0,0%,85%); + color: rgba(12, 12, 13, 1); + color: var(--main-color); font-size: 12px; line-height: 14px; text-align: left; @@ -1613,6 +3181,21 @@ html[dir='rtl'] .verticalToolbarSeparator { cursor: default; } +@media (prefers-color-scheme: dark) { + + .toolbarLabel { + color: rgba(249, 249, 250, 1); + color: var(--main-color); + } +} + +html[dir="ltr"] #numPages.toolbarLabel { + padding-left: 2px; +} +html[dir="rtl"] #numPages.toolbarLabel { + padding-right: 2px; +} + #thumbnailView { position: absolute; width: calc(100% - 60px); @@ -1631,10 +3214,10 @@ html[dir='rtl'] .verticalToolbarSeparator { .thumbnail { margin: 0 10px 5px 10px; } -html[dir='ltr'] .thumbnail { +html[dir="ltr"] .thumbnail { float: left; } -html[dir='rtl'] .thumbnail { +html[dir="rtl"] .thumbnail { float: right; } @@ -1647,16 +3230,16 @@ html[dir='rtl'] .thumbnail { } .thumbnail:not([data-loaded]) { - border: 1px dashed rgba(255, 255, 255, 0.5); + border: 1px dashed rgba(132, 132, 132, 1); margin: -1px 9px 4px 9px; } .thumbnailImage { - border: 1px solid transparent; + border: 1px solid rgba(0, 0, 0, 0); box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3); opacity: 0.8; z-index: 99; - background-color: white; + background-color: rgba(255, 255, 255, 1); background-clip: content-box; } @@ -1667,43 +3250,66 @@ html[dir='rtl'] .thumbnail { a:focus > .thumbnail > .thumbnailSelectionRing > .thumbnailImage, .thumbnail:hover > .thumbnailSelectionRing > .thumbnailImage { - opacity: .9; + opacity: 0.9; } -a:focus > .thumbnail > .thumbnailSelectionRing, -.thumbnail:hover > .thumbnailSelectionRing { - background-color: hsla(0,0%,100%,.15); - background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0))); - background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0)); +a:focus > .thumbnail > .thumbnailSelectionRing { + background-color: rgba(0, 0, 0, 0.15); + background-color: var(--sidebaritem-bg-color); background-clip: padding-box; - box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset, - 0 0 1px hsla(0,0%,100%,.2) inset, - 0 0 1px hsla(0,0%,0%,.2); - color: hsla(0,0%,100%,.9); + color: rgba(255, 255, 255, 0.9); +} + +@media (prefers-color-scheme: dark) { + + a:focus > .thumbnail > .thumbnailSelectionRing { + background-color: rgba(255, 255, 255, 0.15); + background-color: var(--sidebaritem-bg-color); + } +} + +.thumbnail:hover > .thumbnailSelectionRing { + background-color: rgba(0, 0, 0, 0.15); + background-color: var(--sidebaritem-bg-color); + background-clip: padding-box; + color: rgba(255, 255, 255, 0.9); +} + +@media (prefers-color-scheme: dark) { + + .thumbnail:hover > .thumbnailSelectionRing { + background-color: rgba(255, 255, 255, 0.15); + background-color: var(--sidebaritem-bg-color); + } } .thumbnail.selected > .thumbnailSelectionRing > .thumbnailImage { - box-shadow: 0 0 0 1px hsla(0,0%,0%,.5); opacity: 1; } .thumbnail.selected > .thumbnailSelectionRing { - background-color: hsla(0,0%,100%,.3); - background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0))); - background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0)); + background-color: rgba(0, 0, 0, 0.15); + background-color: var(--sidebaritem-bg-color); background-clip: padding-box; - box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset, - 0 0 1px hsla(0,0%,100%,.1) inset, - 0 0 1px hsla(0,0%,0%,.2); - color: hsla(0,0%,100%,1); + color: rgba(255, 255, 255, 1); +} + +@media (prefers-color-scheme: dark) { + + .thumbnail.selected > .thumbnailSelectionRing { + background-color: rgba(255, 255, 255, 0.15); + background-color: var(--sidebaritem-bg-color); + } } #outlineView, -#attachmentsView { +#attachmentsView, +#layersView { position: absolute; width: calc(100% - 8px); top: 0; bottom: 0; + padding: 4px 4px 0; overflow: auto; -webkit-overflow-scrolling: touch; -webkit-user-select: none; @@ -1712,34 +3318,27 @@ a:focus > .thumbnail > .thumbnailSelectionRing, user-select: none; } -#outlineView { - padding: 4px 4px 0; -} -#attachmentsView { - padding: 3px 4px 0; -} - -html[dir='ltr'] .outlineWithDeepNesting > .outlineItem, -html[dir='ltr'] .outlineItem > .outlineItems { +html[dir="ltr"] .treeWithDeepNesting > .treeItem, +html[dir="ltr"] .treeItem > .treeItems { margin-left: 20px; } -html[dir='rtl'] .outlineWithDeepNesting > .outlineItem, -html[dir='rtl'] .outlineItem > .outlineItems { +html[dir="rtl"] .treeWithDeepNesting > .treeItem, +html[dir="rtl"] .treeItem > .treeItems { margin-right: 20px; } -.outlineItem > a, -.attachmentsItem > button { +.treeItem > a { text-decoration: none; display: inline-block; min-width: 95%; - min-width: calc(100% - 4px); /* Subtract the right padding (left, in RTL mode) - of the container. */ + /* Subtract the right padding (left, in RTL mode) of the container: */ + min-width: calc(100% - 4px); height: auto; margin-bottom: 1px; border-radius: 2px; - color: hsla(0,0%,100%,.8); + color: rgba(0, 0, 0, 0.8); + color: var(--outline-color); font-size: 13px; line-height: 15px; -webkit-user-select: none; @@ -1747,94 +3346,211 @@ html[dir='rtl'] .outlineItem > .outlineItems { -ms-user-select: none; user-select: none; white-space: normal; -} - -.attachmentsItem > button { - border: 0 none; - background: none; cursor: pointer; - width: 100%; } -html[dir='ltr'] .outlineItem > a { +@media (prefers-color-scheme: dark) { + + .treeItem > a { + color: rgba(255, 255, 255, 0.8); + color: var(--outline-color); + } +} +html[dir="ltr"] .treeItem > a { padding: 2px 0 5px 4px; } -html[dir='ltr'] .attachmentsItem > button { - padding: 2px 0 3px 7px; - text-align: left; -} - -html[dir='rtl'] .outlineItem > a { +html[dir="rtl"] .treeItem > a { padding: 2px 4px 5px 0; } -html[dir='rtl'] .attachmentsItem > button { - padding: 2px 7px 3px 0; - text-align: right; + +#layersView .treeItem > a > * { + cursor: pointer; +} +html[dir="ltr"] #layersView .treeItem > a > label { + padding-left: 4px; +} +html[dir="rtl"] #layersView .treesItem > a > label { + padding-right: 4px; } -.outlineItemToggler { +.treeItemToggler { position: relative; height: 0; width: 0; - color: hsla(0,0%,100%,.5); + color: rgba(255, 255, 255, 0.5); } -.outlineItemToggler::before { - content: url(images/treeitem-expanded.png); +.treeItemToggler::before { + content: url(images/treeitem-expanded.svg); + content: var(--treeitem-expanded-icon); display: inline-block; position: absolute; + max-width: 16px; } -html[dir='ltr'] .outlineItemToggler.outlineItemsHidden::before { - content: url(images/treeitem-collapsed.png); +@media (prefers-color-scheme: dark) { + + .treeItemToggler::before { + content: url(images/treeitem-expanded-dark.svg); + content: var(--treeitem-expanded-icon); + } } -html[dir='rtl'] .outlineItemToggler.outlineItemsHidden::before { - content: url(images/treeitem-collapsed-rtl.png); +.treeItemToggler.treeItemsHidden::before { + content: url(images/treeitem-collapsed.svg); + content: var(--treeitem-collapsed-icon); + max-width: 16px; } -.outlineItemToggler.outlineItemsHidden ~ .outlineItems { +@media (prefers-color-scheme: dark) { + + .treeItemToggler.treeItemsHidden::before { + content: url(images/treeitem-collapsed-dark.svg); + content: var(--treeitem-collapsed-icon); + } +} +html[dir="rtl"] .treeItemToggler.treeItemsHidden::before { + transform: scaleX(-1); +} +.treeItemToggler.treeItemsHidden ~ .treeItems { display: none; } -html[dir='ltr'] .outlineItemToggler { +html[dir="ltr"] .treeItemToggler { float: left; } -html[dir='rtl'] .outlineItemToggler { +html[dir="rtl"] .treeItemToggler { float: right; } -html[dir='ltr'] .outlineItemToggler::before { +html[dir="ltr"] .treeItemToggler::before { right: 4px; } -html[dir='rtl'] .outlineItemToggler::before { +html[dir="rtl"] .treeItemToggler::before { left: 4px; } -.outlineItemToggler:hover, -.outlineItemToggler:hover + a, -.outlineItemToggler:hover ~ .outlineItems, -.outlineItem > a:hover, -.attachmentsItem > button:hover { - background-color: hsla(0,0%,100%,.02); - background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0))); - background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0)); +.treeItemToggler:hover { + background-color: rgba(0, 0, 0, 0.15); + background-color: var(--sidebaritem-bg-color); background-clip: padding-box; - box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset, - 0 0 1px hsla(0,0%,100%,.2) inset, - 0 0 1px hsla(0,0%,0%,.2); border-radius: 2px; - color: hsla(0,0%,100%,.9); + color: rgba(0, 0, 0, 0.9); + color: var(--outline-hover-color); } -.outlineItem.selected { - background-color: hsla(0,0%,100%,.08); - background-image: -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,100%,.05)), to(hsla(0,0%,100%,0))); - background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0)); +@media (prefers-color-scheme: dark) { + + .treeItemToggler:hover { + color: rgba(255, 255, 255, 0.9); + color: var(--outline-hover-color); + } +} + +@media (prefers-color-scheme: dark) { + + .treeItemToggler:hover { + background-color: rgba(255, 255, 255, 0.15); + background-color: var(--sidebaritem-bg-color); + } +} + +.treeItemToggler:hover + a { + background-color: rgba(0, 0, 0, 0.15); + background-color: var(--sidebaritem-bg-color); background-clip: padding-box; - box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset, - 0 0 1px hsla(0,0%,100%,.1) inset, - 0 0 1px hsla(0,0%,0%,.2); - color: hsla(0,0%,100%,1); + border-radius: 2px; + color: rgba(0, 0, 0, 0.9); + color: var(--outline-hover-color); +} + +@media (prefers-color-scheme: dark) { + + .treeItemToggler:hover + a { + color: rgba(255, 255, 255, 0.9); + color: var(--outline-hover-color); + } +} + +@media (prefers-color-scheme: dark) { + + .treeItemToggler:hover + a { + background-color: rgba(255, 255, 255, 0.15); + background-color: var(--sidebaritem-bg-color); + } +} + +.treeItemToggler:hover ~ .treeItems { + background-color: rgba(0, 0, 0, 0.15); + background-color: var(--sidebaritem-bg-color); + background-clip: padding-box; + border-radius: 2px; + color: rgba(0, 0, 0, 0.9); + color: var(--outline-hover-color); +} + +@media (prefers-color-scheme: dark) { + + .treeItemToggler:hover ~ .treeItems { + color: rgba(255, 255, 255, 0.9); + color: var(--outline-hover-color); + } +} + +@media (prefers-color-scheme: dark) { + + .treeItemToggler:hover ~ .treeItems { + background-color: rgba(255, 255, 255, 0.15); + background-color: var(--sidebaritem-bg-color); + } +} + +.treeItem > a:hover { + background-color: rgba(0, 0, 0, 0.15); + background-color: var(--sidebaritem-bg-color); + background-clip: padding-box; + border-radius: 2px; + color: rgba(0, 0, 0, 0.9); + color: var(--outline-hover-color); +} + +@media (prefers-color-scheme: dark) { + + .treeItem > a:hover { + color: rgba(255, 255, 255, 0.9); + color: var(--outline-hover-color); + } +} + +@media (prefers-color-scheme: dark) { + + .treeItem > a:hover { + background-color: rgba(255, 255, 255, 0.15); + background-color: var(--sidebaritem-bg-color); + } +} + +.treeItem.selected { + background-color: rgba(0, 0, 0, 1); + background-color: var(--outline-active-bg-color); + background-clip: padding-box; + color: rgba(0, 0, 0, 0.08); + color: var(--outline-active-color); +} + +@media (prefers-color-scheme: dark) { + + .treeItem.selected { + color: rgba(255, 255, 255, 0.08); + color: var(--outline-active-color); + } +} + +@media (prefers-color-scheme: dark) { + + .treeItem.selected { + background-color: rgba(255, 255, 255, 1); + background-color: var(--outline-active-bg-color); + } } .noResults { font-size: 12px; - color: hsla(0,0%,100%,.8); + color: rgba(255, 255, 255, 0.8); font-style: italic; cursor: default; } @@ -1842,18 +3558,39 @@ html[dir='rtl'] .outlineItemToggler::before { /* TODO: file FF bug to support ::-moz-selection:window-inactive so we can override the opaque grey background when the window is inactive; see https://bugzilla.mozilla.org/show_bug.cgi?id=706209 */ -::-moz-selection { background: rgba(0,0,255,0.3); } -::selection { background: rgba(0,0,255,0.3); } +::-moz-selection { + background: rgba(0, 0, 255, 0.3); +} +::selection { + background: rgba(0, 0, 255, 0.3); +} #errorWrapper { - background: none repeat scroll 0 0 #FF5555; - color: white; + background: none repeat scroll 0 0 rgba(255, 74, 74, 1); + background: none repeat scroll 0 0 var(--errorWrapper-bg-color); + color: rgba(12, 12, 13, 1); + color: var(--main-color); left: 0; position: absolute; right: 0; z-index: 1000; - padding: 3px; - font-size: 0.8em; + padding: 3px 6px; +} + +@media (prefers-color-scheme: dark) { + + #errorWrapper { + color: rgba(249, 249, 250, 1); + color: var(--main-color); + } +} + +@media (prefers-color-scheme: dark) { + + #errorWrapper { + background: none repeat scroll 0 0 rgba(199, 17, 17, 1); + background: none repeat scroll 0 0 var(--errorWrapper-bg-color); + } } .loadingInProgress #errorWrapper { top: 37px; @@ -1868,17 +3605,45 @@ html[dir='rtl'] .outlineItemToggler::before { } #errorMoreInfo { - background-color: #FFFFFF; - color: black; + background-color: rgba(255, 255, 255, 1); + background-color: var(--field-bg-color); + color: rgba(6, 6, 6, 1); + color: var(--field-color); + border: 1px solid rgba(187, 187, 188, 1); + border: 1px solid var(--field-border-color); padding: 3px; margin: 3px; width: 98%; } +@media (prefers-color-scheme: dark) { + + #errorMoreInfo { + border: 1px solid rgba(115, 115, 115, 1); + border: 1px solid var(--field-border-color); + } +} + +@media (prefers-color-scheme: dark) { + + #errorMoreInfo { + color: rgba(250, 250, 250, 1); + color: var(--field-color); + } +} + +@media (prefers-color-scheme: dark) { + + #errorMoreInfo { + background-color: rgba(64, 64, 68, 1); + background-color: var(--field-bg-color); + } +} + .overlayButton { width: auto; margin: 3px 4px 2px 4px !important; - padding: 2px 6px 3px 6px; + padding: 2px 11px 2px 11px; } #overlayContainer { @@ -1886,7 +3651,7 @@ html[dir='rtl'] .outlineItemToggler::before { position: absolute; width: 100%; height: 100%; - background-color: hsla(0,0%,0%,.2); + background-color: rgba(0, 0, 0, 0.2); z-index: 40000; } #overlayContainer > * { @@ -1904,24 +3669,33 @@ html[dir='rtl'] .outlineItemToggler::before { display: inline-block; padding: 15px; border-spacing: 4px; - color: hsl(0,0%,85%); + color: rgba(12, 12, 13, 1); + color: var(--main-color); font-size: 12px; line-height: 14px; - background-color: #474747; /* fallback */ - background-image: url(images/texture.png), - -webkit-gradient(linear, left top, left bottom, from(hsla(0,0%,32%,.99)), to(hsla(0,0%,27%,.95))); - background-image: url(images/texture.png), - linear-gradient(hsla(0,0%,32%,.99), hsla(0,0%,27%,.95)); - box-shadow: inset 1px 0 0 hsla(0,0%,100%,.08), - inset 0 1px 1px hsla(0,0%,0%,.15), - inset 0 -1px 0 hsla(0,0%,100%,.05), - 0 1px 0 hsla(0,0%,0%,.15), - 0 1px 1px hsla(0,0%,0%,.1); - border: 1px solid hsla(0,0%,0%,.5); + background-color: rgba(255, 255, 255, 1); + background-color: var(--doorhanger-bg-color); + border: 1px solid rgba(0, 0, 0, 0.5); border-radius: 4px; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); } +@media (prefers-color-scheme: dark) { + + #overlayContainer > .container > .dialog { + background-color: rgba(74, 74, 79, 1); + background-color: var(--doorhanger-bg-color); + } +} + +@media (prefers-color-scheme: dark) { + + #overlayContainer > .container > .dialog { + color: rgba(249, 249, 250, 1); + color: var(--main-color); + } +} + .dialog > .row { display: table-row; } @@ -1939,8 +3713,16 @@ html[dir='rtl'] .outlineItemToggler::before { margin: 4px 0 4px 0; height: 1px; width: 100%; - background-color: hsla(0,0%,0%,.5); - box-shadow: 0 0 0 1px hsla(0,0%,100%,.08); + background-color: rgba(0, 0, 0, 0.3); + background-color: var(--separator-color); +} + +@media (prefers-color-scheme: dark) { + + .dialog .separator { + background-color: rgba(0, 0, 0, 0.3); + background-color: var(--separator-color); + } } .dialog .buttonRow { @@ -1949,7 +3731,7 @@ html[dir='rtl'] .outlineItemToggler::before { } .dialog :link { - color: white; + color: rgba(255, 255, 255, 1); } #passwordOverlay > .dialog { @@ -1965,10 +3747,10 @@ html[dir='rtl'] .outlineItemToggler::before { #documentPropertiesOverlay .row > * { min-width: 100px; } -html[dir='ltr'] #documentPropertiesOverlay .row > * { +html[dir="ltr"] #documentPropertiesOverlay .row > * { text-align: left; } -html[dir='rtl'] #documentPropertiesOverlay .row > * { +html[dir="rtl"] #documentPropertiesOverlay .row > * { text-align: right; } #documentPropertiesOverlay .row > span { @@ -1988,8 +3770,8 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * { } .fileInput { - background: white; - color: black; + background: rgba(255, 255, 255, 1); + color: rgba(0, 0, 0, 1); margin-top: 5px; visibility: hidden; position: fixed; @@ -1998,8 +3780,8 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * { } #PDFBug { - background: none repeat scroll 0 0 white; - border: 1px solid #666666; + background: none repeat scroll 0 0 rgba(255, 255, 255, 1); + border: 1px solid rgba(102, 102, 102, 1); position: fixed; top: 32px; right: 0; @@ -2009,9 +3791,9 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * { width: 300px; } #PDFBug .controls { - background:#EEEEEE; - border-bottom: 1px solid #666666; - padding: 3px; + background: rgba(238, 238, 238, 1); + border-bottom: 1px solid rgba(102, 102, 102, 1); + padding: 3px; } #PDFBug .panels { bottom: 0; @@ -2022,15 +3804,18 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * { right: 0; top: 27px; } +#PDFBug .panels > div { + padding: 5px; +} #PDFBug button.active { font-weight: bold; } .debuggerShowText { - background: none repeat scroll 0 0 yellow; - color: blue; + background: none repeat scroll 0 0 rgba(255, 255, 0, 1); + color: rgba(0, 0, 255, 1); } .debuggerHideText:hover { - background: none repeat scroll 0 0 yellow; + background: none repeat scroll 0 0 rgba(255, 255, 0, 1); } #PDFBug .stats { font-family: courier; @@ -2038,18 +3823,18 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * { white-space: pre; } #PDFBug .stats .title { - font-weight: bold; + font-weight: bold; } #PDFBug table { font-size: 10px; } #viewer.textLayer-visible .textLayer { - opacity: 1.0; + opacity: 1; } #viewer.textLayer-visible .canvasWrapper { - background-color: rgb(128,255,128); + background-color: rgba(128, 255, 128, 1); } #viewer.textLayer-visible .canvasWrapper canvas { @@ -2058,19 +3843,19 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * { #viewer.textLayer-visible .textLayer > span { background-color: rgba(255, 255, 0, 0.1); - color: black; + color: rgba(0, 0, 0, 1); border: solid 1px rgba(255, 0, 0, 0.5); box-sizing: border-box; } #viewer.textLayer-hover .textLayer > span:hover { - background-color: white; - color: black; + background-color: rgba(255, 255, 255, 1); + color: rgba(0, 0, 0, 1); } #viewer.textLayer-shadow .textLayer > span { - background-color: rgba(255,255,255, .6); - color: black; + background-color: rgba(255, 255, 255, 0.6); + color: rgba(0, 0, 0, 1); } .grab-to-pan-grab { @@ -2078,7 +3863,8 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * { cursor: -webkit-grab !important; cursor: grab !important; } -.grab-to-pan-grab *:not(input):not(textarea):not(button):not(select):not(:link) { +.grab-to-pan-grab + *:not(input):not(textarea):not(button):not(select):not(:link) { cursor: inherit !important; } .grab-to-pan-grab:active, @@ -2086,9 +3872,8 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * { cursor: url("images/grabbing.cur"), move !important; cursor: -webkit-grabbing !important; cursor: grabbing !important; - position: fixed; - background: transparent; + background: rgba(0, 0, 0, 0); display: block; top: 0; left: 0; @@ -2106,224 +3891,29 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * { display: none; } -@media screen and (-webkit-min-device-pixel-ratio: 1.1), screen and (min-resolution: 1.1dppx) { - /* Rules for Retina screens */ - .toolbarButton::before { - -webkit-transform: scale(0.5); - transform: scale(0.5); - top: -5px; - } - - .secondaryToolbarButton::before { - -webkit-transform: scale(0.5); - transform: scale(0.5); - top: -4px; - } - - html[dir='ltr'] .toolbarButton::before, - html[dir='rtl'] .toolbarButton::before { - left: -1px; - } - - html[dir='ltr'] .secondaryToolbarButton::before { - left: -2px; - } - html[dir='rtl'] .secondaryToolbarButton::before { - left: 186px; - } - - .toolbarField.pageNumber.visiblePageIsLoading, - #findInput[data-status="pending"] { - background-image: url(images/loading-small@2x.png); - background-size: 16px 17px; - } - - .dropdownToolbarButton { - background: url(images/toolbarButton-menuArrows@2x.png) no-repeat; - background-size: 7px 16px; - } - - html[dir='ltr'] .toolbarButton#sidebarToggle::before { - content: url(images/toolbarButton-sidebarToggle@2x.png); - } - html[dir='rtl'] .toolbarButton#sidebarToggle::before { - content: url(images/toolbarButton-sidebarToggle-rtl@2x.png); - } - - html[dir='ltr'] .toolbarButton#secondaryToolbarToggle::before { - content: url(images/toolbarButton-secondaryToolbarToggle@2x.png); - } - html[dir='rtl'] .toolbarButton#secondaryToolbarToggle::before { - content: url(images/toolbarButton-secondaryToolbarToggle-rtl@2x.png); - } - - html[dir='ltr'] .toolbarButton.findPrevious::before { - content: url(images/findbarButton-previous@2x.png); - } - html[dir='rtl'] .toolbarButton.findPrevious::before { - content: url(images/findbarButton-previous-rtl@2x.png); - } - - html[dir='ltr'] .toolbarButton.findNext::before { - content: url(images/findbarButton-next@2x.png); - } - html[dir='rtl'] .toolbarButton.findNext::before { - content: url(images/findbarButton-next-rtl@2x.png); - } - - html[dir='ltr'] .toolbarButton.pageUp::before { - content: url(images/toolbarButton-pageUp@2x.png); - } - html[dir='rtl'] .toolbarButton.pageUp::before { - content: url(images/toolbarButton-pageUp-rtl@2x.png); - } - - html[dir='ltr'] .toolbarButton.pageDown::before { - content: url(images/toolbarButton-pageDown@2x.png); - } - html[dir='rtl'] .toolbarButton.pageDown::before { - content: url(images/toolbarButton-pageDown-rtl@2x.png); - } - - .toolbarButton.zoomIn::before { - content: url(images/toolbarButton-zoomIn@2x.png); - } - - .toolbarButton.zoomOut::before { - content: url(images/toolbarButton-zoomOut@2x.png); - } - - .toolbarButton.presentationMode::before, - .secondaryToolbarButton.presentationMode::before { - content: url(images/toolbarButton-presentationMode@2x.png); - } - - .toolbarButton.print::before, - .secondaryToolbarButton.print::before { - content: url(images/toolbarButton-print@2x.png); - } - - .toolbarButton.openFile::before, - .secondaryToolbarButton.openFile::before { - content: url(images/toolbarButton-openFile@2x.png); - } - - .toolbarButton.download::before, - .secondaryToolbarButton.download::before { - content: url(images/toolbarButton-download@2x.png); - } - - .toolbarButton.bookmark::before, - .secondaryToolbarButton.bookmark::before { - content: url(images/toolbarButton-bookmark@2x.png); - } - - #viewThumbnail.toolbarButton::before { - content: url(images/toolbarButton-viewThumbnail@2x.png); - } - - html[dir="ltr"] #viewOutline.toolbarButton::before { - content: url(images/toolbarButton-viewOutline@2x.png); - } - html[dir="rtl"] #viewOutline.toolbarButton::before { - content: url(images/toolbarButton-viewOutline-rtl@2x.png); - } - - #viewAttachments.toolbarButton::before { - content: url(images/toolbarButton-viewAttachments@2x.png); - } - - #viewFind.toolbarButton::before { - content: url(images/toolbarButton-search@2x.png); - } - - .secondaryToolbarButton.firstPage::before { - content: url(images/secondaryToolbarButton-firstPage@2x.png); - } - - .secondaryToolbarButton.lastPage::before { - content: url(images/secondaryToolbarButton-lastPage@2x.png); - } - - .secondaryToolbarButton.rotateCcw::before { - content: url(images/secondaryToolbarButton-rotateCcw@2x.png); - } - - .secondaryToolbarButton.rotateCw::before { - content: url(images/secondaryToolbarButton-rotateCw@2x.png); - } - - .secondaryToolbarButton.selectTool::before { - content: url(images/secondaryToolbarButton-selectTool@2x.png); - } - - .secondaryToolbarButton.handTool::before { - content: url(images/secondaryToolbarButton-handTool@2x.png); - } - - .secondaryToolbarButton.scrollVertical::before { - content: url(images/secondaryToolbarButton-scrollVertical@2x.png); - } - - .secondaryToolbarButton.scrollHorizontal::before { - content: url(images/secondaryToolbarButton-scrollHorizontal@2x.png); - } - - .secondaryToolbarButton.scrollWrapped::before { - content: url(images/secondaryToolbarButton-scrollWrapped@2x.png); - } - - .secondaryToolbarButton.spreadNone::before { - content: url(images/secondaryToolbarButton-spreadNone@2x.png); - } - - .secondaryToolbarButton.spreadOdd::before { - content: url(images/secondaryToolbarButton-spreadOdd@2x.png); - } - - .secondaryToolbarButton.spreadEven::before { - content: url(images/secondaryToolbarButton-spreadEven@2x.png); - } - - .secondaryToolbarButton.documentProperties::before { - content: url(images/secondaryToolbarButton-documentProperties@2x.png); - } - - .outlineItemToggler::before { - -webkit-transform: scale(0.5); - transform: scale(0.5); - top: -1px; - content: url(images/treeitem-expanded@2x.png); - } - html[dir='ltr'] .outlineItemToggler.outlineItemsHidden::before { - content: url(images/treeitem-collapsed@2x.png); - } - html[dir='rtl'] .outlineItemToggler.outlineItemsHidden::before { - content: url(images/treeitem-collapsed-rtl@2x.png); - } - html[dir='ltr'] .outlineItemToggler::before { - right: 0; - } - html[dir='rtl'] .outlineItemToggler::before { - left: 0; - } -} - @media print { /* General rules for printing. */ body { - background: transparent none; + background: rgba(0, 0, 0, 0) none; } /* Rules for browsers that don't support mozPrintCallback. */ - #sidebarContainer, #secondaryToolbar, .toolbar, #loadingBox, #errorWrapper, .textLayer { + #sidebarContainer, + #secondaryToolbar, + .toolbar, + #loadingBox, + #errorWrapper, + .textLayer { display: none; } #viewerContainer { overflow: visible; } - #mainContainer, #viewerContainer, .page, .page canvas { + #mainContainer, + #viewerContainer, + .page, + .page canvas { position: static; padding: 0; margin: 0; @@ -2335,7 +3925,7 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * { border: none; box-shadow: none; background-clip: content-box; - background-color: white; + background-color: rgba(255, 255, 255, 1); } .page[data-loaded] { @@ -2369,6 +3959,7 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * { } #printContainer canvas, #printContainer img { + direction: ltr; display: block; } } @@ -2385,20 +3976,19 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * { margin: auto; left: auto; position: inherit; - -webkit-transform: none; - transform: none; + transform: none; } } @media all and (max-width: 840px) { #sidebarContent { - background-color: hsla(0,0%,0%,.7); + background-color: rgba(0, 0, 0, 0.7); } - html[dir='ltr'] #outerContainer.sidebarOpen #viewerContainer { + html[dir="ltr"] #outerContainer.sidebarOpen #viewerContainer { left: 0px !important; } - html[dir='rtl'] #outerContainer.sidebarOpen #viewerContainer { + html[dir="rtl"] #outerContainer.sidebarOpen #viewerContainer { right: 0px !important; } @@ -2431,7 +4021,8 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * { } @media all and (max-width: 640px) { - .hiddenSmallView, .hiddenSmallView * { + .hiddenSmallView, + .hiddenSmallView * { display: none; } .visibleSmallView { @@ -2440,11 +4031,11 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * { .toolbarButtonSpacer { width: 0; } - html[dir='ltr'] .findbar { - left: 38px; + html[dir="ltr"] .findbar { + left: 34px; } - html[dir='rtl'] .findbar { - right: 38px; + html[dir="rtl"] .findbar { + right: 34px; } } diff --git a/cps/static/js/libs/pdf.js b/cps/static/js/libs/pdf.js index dcefe070..8d59e6dd 100644 --- a/cps/static/js/libs/pdf.js +++ b/cps/static/js/libs/pdf.js @@ -2,7 +2,7 @@ * @licstart The following is the entire license notice for the * Javascript code in this page * - * Copyright 2019 Mozilla Foundation + * Copyright 2020 Mozilla Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -123,45 +123,242 @@ return /******/ (function(modules) { // webpackBootstrap "use strict"; -var pdfjsVersion = '2.2.228'; -var pdfjsBuild = 'd7afb74a'; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "addLinkAttributes", { + enumerable: true, + get: function () { + return _display_utils.addLinkAttributes; + } +}); +Object.defineProperty(exports, "getFilenameFromUrl", { + enumerable: true, + get: function () { + return _display_utils.getFilenameFromUrl; + } +}); +Object.defineProperty(exports, "LinkTarget", { + enumerable: true, + get: function () { + return _display_utils.LinkTarget; + } +}); +Object.defineProperty(exports, "loadScript", { + enumerable: true, + get: function () { + return _display_utils.loadScript; + } +}); +Object.defineProperty(exports, "PDFDateString", { + enumerable: true, + get: function () { + return _display_utils.PDFDateString; + } +}); +Object.defineProperty(exports, "RenderingCancelledException", { + enumerable: true, + get: function () { + return _display_utils.RenderingCancelledException; + } +}); +Object.defineProperty(exports, "build", { + enumerable: true, + get: function () { + return _api.build; + } +}); +Object.defineProperty(exports, "getDocument", { + enumerable: true, + get: function () { + return _api.getDocument; + } +}); +Object.defineProperty(exports, "LoopbackPort", { + enumerable: true, + get: function () { + return _api.LoopbackPort; + } +}); +Object.defineProperty(exports, "PDFDataRangeTransport", { + enumerable: true, + get: function () { + return _api.PDFDataRangeTransport; + } +}); +Object.defineProperty(exports, "PDFWorker", { + enumerable: true, + get: function () { + return _api.PDFWorker; + } +}); +Object.defineProperty(exports, "version", { + enumerable: true, + get: function () { + return _api.version; + } +}); +Object.defineProperty(exports, "CMapCompressionType", { + enumerable: true, + get: function () { + return _util.CMapCompressionType; + } +}); +Object.defineProperty(exports, "createObjectURL", { + enumerable: true, + get: function () { + return _util.createObjectURL; + } +}); +Object.defineProperty(exports, "createPromiseCapability", { + enumerable: true, + get: function () { + return _util.createPromiseCapability; + } +}); +Object.defineProperty(exports, "createValidAbsoluteUrl", { + enumerable: true, + get: function () { + return _util.createValidAbsoluteUrl; + } +}); +Object.defineProperty(exports, "InvalidPDFException", { + enumerable: true, + get: function () { + return _util.InvalidPDFException; + } +}); +Object.defineProperty(exports, "MissingPDFException", { + enumerable: true, + get: function () { + return _util.MissingPDFException; + } +}); +Object.defineProperty(exports, "OPS", { + enumerable: true, + get: function () { + return _util.OPS; + } +}); +Object.defineProperty(exports, "PasswordResponses", { + enumerable: true, + get: function () { + return _util.PasswordResponses; + } +}); +Object.defineProperty(exports, "PermissionFlag", { + enumerable: true, + get: function () { + return _util.PermissionFlag; + } +}); +Object.defineProperty(exports, "removeNullCharacters", { + enumerable: true, + get: function () { + return _util.removeNullCharacters; + } +}); +Object.defineProperty(exports, "shadow", { + enumerable: true, + get: function () { + return _util.shadow; + } +}); +Object.defineProperty(exports, "UnexpectedResponseException", { + enumerable: true, + get: function () { + return _util.UnexpectedResponseException; + } +}); +Object.defineProperty(exports, "UNSUPPORTED_FEATURES", { + enumerable: true, + get: function () { + return _util.UNSUPPORTED_FEATURES; + } +}); +Object.defineProperty(exports, "Util", { + enumerable: true, + get: function () { + return _util.Util; + } +}); +Object.defineProperty(exports, "VerbosityLevel", { + enumerable: true, + get: function () { + return _util.VerbosityLevel; + } +}); +Object.defineProperty(exports, "AnnotationLayer", { + enumerable: true, + get: function () { + return _annotation_layer.AnnotationLayer; + } +}); +Object.defineProperty(exports, "apiCompatibilityParams", { + enumerable: true, + get: function () { + return _api_compatibility.apiCompatibilityParams; + } +}); +Object.defineProperty(exports, "GlobalWorkerOptions", { + enumerable: true, + get: function () { + return _worker_options.GlobalWorkerOptions; + } +}); +Object.defineProperty(exports, "renderTextLayer", { + enumerable: true, + get: function () { + return _text_layer.renderTextLayer; + } +}); +Object.defineProperty(exports, "SVGGraphics", { + enumerable: true, + get: function () { + return _svg.SVGGraphics; + } +}); -var pdfjsSharedUtil = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(1); -var pdfjsDisplayAPI = __w_pdfjs_require__(147); +var _api = __w_pdfjs_require__(5); -var pdfjsDisplayTextLayer = __w_pdfjs_require__(162); +var _util = __w_pdfjs_require__(2); -var pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(163); +var _annotation_layer = __w_pdfjs_require__(19); -var pdfjsDisplayDisplayUtils = __w_pdfjs_require__(151); +var _api_compatibility = __w_pdfjs_require__(9); -var pdfjsDisplaySVG = __w_pdfjs_require__(164); +var _worker_options = __w_pdfjs_require__(12); -var pdfjsDisplayWorkerOptions = __w_pdfjs_require__(156); +var _text_layer = __w_pdfjs_require__(20); -var pdfjsDisplayAPICompatibility = __w_pdfjs_require__(153); +var _svg = __w_pdfjs_require__(21); +const pdfjsVersion = '2.6.347'; +const pdfjsBuild = '3be9c65f'; { - var isNodeJS = __w_pdfjs_require__(4); + const { + isNodeJS + } = __w_pdfjs_require__(4); - if (isNodeJS()) { - var PDFNodeStream = __w_pdfjs_require__(165).PDFNodeStream; + if (isNodeJS) { + const PDFNodeStream = __w_pdfjs_require__(22).PDFNodeStream; - pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { + (0, _api.setPDFNetworkStreamFactory)(params => { return new PDFNodeStream(params); }); } else { - var PDFNetworkStream = __w_pdfjs_require__(168).PDFNetworkStream; + const PDFNetworkStream = __w_pdfjs_require__(25).PDFNetworkStream; - var PDFFetchStream; + let PDFFetchStream; - if (pdfjsDisplayDisplayUtils.isFetchSupported()) { - PDFFetchStream = __w_pdfjs_require__(169).PDFFetchStream; + if ((0, _display_utils.isFetchSupported)()) { + PDFFetchStream = __w_pdfjs_require__(26).PDFFetchStream; } - pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { - if (PDFFetchStream && pdfjsDisplayDisplayUtils.isValidFetchUrl(params.url)) { + (0, _api.setPDFNetworkStreamFactory)(params => { + if (PDFFetchStream && (0, _display_utils.isValidFetchUrl)(params.url)) { return new PDFFetchStream(params); } @@ -169,41 +366,6 @@ var pdfjsDisplayAPICompatibility = __w_pdfjs_require__(153); }); } } -exports.build = pdfjsDisplayAPI.build; -exports.version = pdfjsDisplayAPI.version; -exports.getDocument = pdfjsDisplayAPI.getDocument; -exports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort; -exports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport; -exports.PDFWorker = pdfjsDisplayAPI.PDFWorker; -exports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer; -exports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer; -exports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability; -exports.PasswordResponses = pdfjsSharedUtil.PasswordResponses; -exports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException; -exports.MissingPDFException = pdfjsSharedUtil.MissingPDFException; -exports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics; -exports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding; -exports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType; -exports.PermissionFlag = pdfjsSharedUtil.PermissionFlag; -exports.UnexpectedResponseException = pdfjsSharedUtil.UnexpectedResponseException; -exports.OPS = pdfjsSharedUtil.OPS; -exports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel; -exports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES; -exports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl; -exports.createObjectURL = pdfjsSharedUtil.createObjectURL; -exports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters; -exports.shadow = pdfjsSharedUtil.shadow; -exports.Util = pdfjsSharedUtil.Util; -exports.ReadableStream = pdfjsSharedUtil.ReadableStream; -exports.URL = pdfjsSharedUtil.URL; -exports.RenderingCancelledException = pdfjsDisplayDisplayUtils.RenderingCancelledException; -exports.getFilenameFromUrl = pdfjsDisplayDisplayUtils.getFilenameFromUrl; -exports.LinkTarget = pdfjsDisplayDisplayUtils.LinkTarget; -exports.addLinkAttributes = pdfjsDisplayDisplayUtils.addLinkAttributes; -exports.loadScript = pdfjsDisplayDisplayUtils.loadScript; -exports.PDFDateString = pdfjsDisplayDisplayUtils.PDFDateString; -exports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions; -exports.apiCompatibilityParams = pdfjsDisplayAPICompatibility.apiCompatibilityParams; /***/ }), /* 1 */ @@ -212,6 +374,543 @@ exports.apiCompatibilityParams = pdfjsDisplayAPICompatibility.apiCompatibilityPa "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.addLinkAttributes = addLinkAttributes; +exports.getFilenameFromUrl = getFilenameFromUrl; +exports.isFetchSupported = isFetchSupported; +exports.isValidFetchUrl = isValidFetchUrl; +exports.loadScript = loadScript; +exports.deprecated = deprecated; +exports.PDFDateString = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.BaseCMapReaderFactory = exports.DOMCanvasFactory = exports.BaseCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.RenderingCancelledException = exports.PageViewport = void 0; + +var _util = __w_pdfjs_require__(2); + +const DEFAULT_LINK_REL = "noopener noreferrer nofollow"; +exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL; +const SVG_NS = "http://www.w3.org/2000/svg"; + +class BaseCanvasFactory { + constructor() { + if (this.constructor === BaseCanvasFactory) { + (0, _util.unreachable)("Cannot initialize BaseCanvasFactory."); + } + } + + create(width, height) { + (0, _util.unreachable)("Abstract method `create` called."); + } + + reset(canvasAndContext, width, height) { + if (!canvasAndContext.canvas) { + throw new Error("Canvas is not specified"); + } + + if (width <= 0 || height <= 0) { + throw new Error("Invalid canvas size"); + } + + canvasAndContext.canvas.width = width; + canvasAndContext.canvas.height = height; + } + + destroy(canvasAndContext) { + if (!canvasAndContext.canvas) { + throw new Error("Canvas is not specified"); + } + + canvasAndContext.canvas.width = 0; + canvasAndContext.canvas.height = 0; + canvasAndContext.canvas = null; + canvasAndContext.context = null; + } + +} + +exports.BaseCanvasFactory = BaseCanvasFactory; + +class DOMCanvasFactory extends BaseCanvasFactory { + constructor({ + ownerDocument = globalThis.document + } = {}) { + super(); + this._document = ownerDocument; + } + + create(width, height) { + if (width <= 0 || height <= 0) { + throw new Error("Invalid canvas size"); + } + + const canvas = this._document.createElement("canvas"); + + const context = canvas.getContext("2d"); + canvas.width = width; + canvas.height = height; + return { + canvas, + context + }; + } + +} + +exports.DOMCanvasFactory = DOMCanvasFactory; + +class BaseCMapReaderFactory { + constructor({ + baseUrl = null, + isCompressed = false + }) { + if (this.constructor === BaseCMapReaderFactory) { + (0, _util.unreachable)("Cannot initialize BaseCMapReaderFactory."); + } + + this.baseUrl = baseUrl; + this.isCompressed = isCompressed; + } + + async fetch({ + name + }) { + if (!this.baseUrl) { + throw new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.'); + } + + if (!name) { + throw new Error("CMap name must be specified."); + } + + const url = this.baseUrl + name + (this.isCompressed ? ".bcmap" : ""); + const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE; + return this._fetchData(url, compressionType).catch(reason => { + throw new Error(`Unable to load ${this.isCompressed ? "binary " : ""}CMap at: ${url}`); + }); + } + + _fetchData(url, compressionType) { + (0, _util.unreachable)("Abstract method `_fetchData` called."); + } + +} + +exports.BaseCMapReaderFactory = BaseCMapReaderFactory; + +class DOMCMapReaderFactory extends BaseCMapReaderFactory { + _fetchData(url, compressionType) { + if (isFetchSupported() && isValidFetchUrl(url, document.baseURI)) { + return fetch(url).then(async response => { + if (!response.ok) { + throw new Error(response.statusText); + } + + let cMapData; + + if (this.isCompressed) { + cMapData = new Uint8Array(await response.arrayBuffer()); + } else { + cMapData = (0, _util.stringToBytes)(await response.text()); + } + + return { + cMapData, + compressionType + }; + }); + } + + return new Promise((resolve, reject) => { + const request = new XMLHttpRequest(); + request.open("GET", url, true); + + if (this.isCompressed) { + request.responseType = "arraybuffer"; + } + + request.onreadystatechange = () => { + if (request.readyState !== XMLHttpRequest.DONE) { + return; + } + + if (request.status === 200 || request.status === 0) { + let cMapData; + + if (this.isCompressed && request.response) { + cMapData = new Uint8Array(request.response); + } else if (!this.isCompressed && request.responseText) { + cMapData = (0, _util.stringToBytes)(request.responseText); + } + + if (cMapData) { + resolve({ + cMapData, + compressionType + }); + return; + } + } + + reject(new Error(request.statusText)); + }; + + request.send(null); + }); + } + +} + +exports.DOMCMapReaderFactory = DOMCMapReaderFactory; + +class DOMSVGFactory { + create(width, height) { + (0, _util.assert)(width > 0 && height > 0, "Invalid SVG dimensions"); + const svg = document.createElementNS(SVG_NS, "svg:svg"); + svg.setAttribute("version", "1.1"); + svg.setAttribute("width", width + "px"); + svg.setAttribute("height", height + "px"); + svg.setAttribute("preserveAspectRatio", "none"); + svg.setAttribute("viewBox", "0 0 " + width + " " + height); + return svg; + } + + createElement(type) { + (0, _util.assert)(typeof type === "string", "Invalid SVG element type"); + return document.createElementNS(SVG_NS, type); + } + +} + +exports.DOMSVGFactory = DOMSVGFactory; + +class PageViewport { + constructor({ + viewBox, + scale, + rotation, + offsetX = 0, + offsetY = 0, + dontFlip = false + }) { + this.viewBox = viewBox; + this.scale = scale; + this.rotation = rotation; + this.offsetX = offsetX; + this.offsetY = offsetY; + const centerX = (viewBox[2] + viewBox[0]) / 2; + const centerY = (viewBox[3] + viewBox[1]) / 2; + let 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: + rotateA = 1; + rotateB = 0; + rotateC = 0; + rotateD = -1; + break; + + default: + throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees."); + } + + if (dontFlip) { + rotateC = -rotateC; + rotateD = -rotateD; + } + + let offsetCanvasX, offsetCanvasY; + let 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; + } + + clone({ + scale = this.scale, + rotation = this.rotation, + offsetX = this.offsetX, + offsetY = this.offsetY, + dontFlip = false + } = {}) { + return new PageViewport({ + viewBox: this.viewBox.slice(), + scale, + rotation, + offsetX, + offsetY, + dontFlip + }); + } + + convertToViewportPoint(x, y) { + return _util.Util.applyTransform([x, y], this.transform); + } + + convertToViewportRectangle(rect) { + const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform); + + const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform); + + return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]]; + } + + convertToPdfPoint(x, y) { + return _util.Util.applyInverseTransform([x, y], this.transform); + } + +} + +exports.PageViewport = PageViewport; + +class RenderingCancelledException extends _util.BaseException { + constructor(msg, type) { + super(msg); + this.type = type; + } + +} + +exports.RenderingCancelledException = RenderingCancelledException; +const LinkTarget = { + NONE: 0, + SELF: 1, + BLANK: 2, + PARENT: 3, + TOP: 4 +}; +exports.LinkTarget = LinkTarget; + +function addLinkAttributes(link, { + url, + target, + rel, + enabled = true +} = {}) { + (0, _util.assert)(url && typeof url === "string", 'addLinkAttributes: A valid "url" parameter must provided.'); + const urlNullRemoved = (0, _util.removeNullCharacters)(url); + + if (enabled) { + link.href = link.title = urlNullRemoved; + } else { + link.href = ""; + link.title = `Disabled: ${urlNullRemoved}`; + + link.onclick = () => { + return false; + }; + } + + let targetStr = ""; + + switch (target) { + case LinkTarget.NONE: + break; + + case LinkTarget.SELF: + targetStr = "_self"; + break; + + case LinkTarget.BLANK: + targetStr = "_blank"; + break; + + case LinkTarget.PARENT: + targetStr = "_parent"; + break; + + case LinkTarget.TOP: + targetStr = "_top"; + break; + } + + link.target = targetStr; + link.rel = typeof rel === "string" ? rel : DEFAULT_LINK_REL; +} + +function getFilenameFromUrl(url) { + const anchor = url.indexOf("#"); + const query = url.indexOf("?"); + const end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length); + return url.substring(url.lastIndexOf("/", end) + 1, end); +} + +class StatTimer { + constructor() { + this.started = Object.create(null); + this.times = []; + } + + time(name) { + if (name in this.started) { + (0, _util.warn)(`Timer is already running for ${name}`); + } + + this.started[name] = Date.now(); + } + + timeEnd(name) { + if (!(name in this.started)) { + (0, _util.warn)(`Timer has not been started for ${name}`); + } + + this.times.push({ + name, + start: this.started[name], + end: Date.now() + }); + delete this.started[name]; + } + + toString() { + const outBuf = []; + let longest = 0; + + for (const time of this.times) { + const name = time.name; + + if (name.length > longest) { + longest = name.length; + } + } + + for (const time of this.times) { + const duration = time.end - time.start; + outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\n`); + } + + return outBuf.join(""); + } + +} + +exports.StatTimer = StatTimer; + +function isFetchSupported() { + return typeof fetch !== "undefined" && typeof Response !== "undefined" && "body" in Response.prototype && typeof ReadableStream !== "undefined"; +} + +function isValidFetchUrl(url, baseUrl) { + try { + const { + protocol + } = baseUrl ? new URL(url, baseUrl) : new URL(url); + return protocol === "http:" || protocol === "https:"; + } catch (ex) { + return false; + } +} + +function loadScript(src) { + return new Promise((resolve, reject) => { + const script = document.createElement("script"); + script.src = src; + script.onload = resolve; + + script.onerror = function () { + reject(new Error(`Cannot load script at: ${script.src}`)); + }; + + (document.head || document.documentElement).appendChild(script); + }); +} + +function deprecated(details) { + console.log("Deprecated API usage: " + details); +} + +let pdfDateStringRegex; + +class PDFDateString { + static toDateObject(input) { + if (!input || !(0, _util.isString)(input)) { + return null; + } + + if (!pdfDateStringRegex) { + pdfDateStringRegex = new RegExp("^D:" + "(\\d{4})" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "([Z|+|-])?" + "(\\d{2})?" + "'?" + "(\\d{2})?" + "'?"); + } + + const matches = pdfDateStringRegex.exec(input); + + if (!matches) { + return null; + } + + const year = parseInt(matches[1], 10); + let month = parseInt(matches[2], 10); + month = month >= 1 && month <= 12 ? month - 1 : 0; + let day = parseInt(matches[3], 10); + day = day >= 1 && day <= 31 ? day : 1; + let hour = parseInt(matches[4], 10); + hour = hour >= 0 && hour <= 23 ? hour : 0; + let minute = parseInt(matches[5], 10); + minute = minute >= 0 && minute <= 59 ? minute : 0; + let second = parseInt(matches[6], 10); + second = second >= 0 && second <= 59 ? second : 0; + const universalTimeRelation = matches[7] || "Z"; + let offsetHour = parseInt(matches[8], 10); + offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0; + let offsetMinute = parseInt(matches[9], 10) || 0; + offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0; + + if (universalTimeRelation === "-") { + hour += offsetHour; + minute += offsetMinute; + } else if (universalTimeRelation === "+") { + hour -= offsetHour; + minute -= offsetMinute; + } + + return new Date(Date.UTC(year, month, day, hour, minute, second)); + } + +} + +exports.PDFDateString = PDFDateString; + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); @@ -220,23 +919,17 @@ exports.arraysToBytes = arraysToBytes; exports.assert = assert; exports.bytesToString = bytesToString; exports.createPromiseCapability = createPromiseCapability; +exports.escapeString = escapeString; +exports.getModificationDate = getModificationDate; exports.getVerbosityLevel = getVerbosityLevel; exports.info = info; exports.isArrayBuffer = isArrayBuffer; exports.isArrayEqual = isArrayEqual; exports.isBool = isBool; -exports.isEmptyObj = isEmptyObj; exports.isNum = isNum; exports.isString = isString; -exports.isSpace = isSpace; exports.isSameOrigin = isSameOrigin; exports.createValidAbsoluteUrl = createValidAbsoluteUrl; -exports.isLittleEndian = isLittleEndian; -exports.isEvalSupported = isEvalSupported; -exports.log2 = log2; -exports.readInt8 = readInt8; -exports.readUint16 = readUint16; -exports.readUint32 = readUint32; exports.removeNullCharacters = removeNullCharacters; exports.setVerbosityLevel = setVerbosityLevel; exports.shadow = shadow; @@ -247,39 +940,15 @@ exports.stringToUTF8String = stringToUTF8String; exports.utf8StringToString = utf8StringToString; exports.warn = warn; exports.unreachable = unreachable; -Object.defineProperty(exports, "ReadableStream", { - enumerable: true, - get: function get() { - return _streams_polyfill.ReadableStream; - } -}); -Object.defineProperty(exports, "URL", { - enumerable: true, - get: function get() { - return _url_polyfill.URL; - } -}); -exports.createObjectURL = exports.FormatError = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = void 0; +exports.IsEvalSupportedCached = exports.IsLittleEndianCached = exports.createObjectURL = exports.FormatError = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.MissingPDFException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = exports.BaseException = void 0; -__w_pdfjs_require__(2); +__w_pdfjs_require__(3); -var _streams_polyfill = __w_pdfjs_require__(143); - -var _url_polyfill = __w_pdfjs_require__(145); - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; +const IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; exports.IDENTITY_MATRIX = IDENTITY_MATRIX; -var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; +const FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX; -var NativeImageDecoding = { - NONE: 'none', - DECODE: 'decode', - DISPLAY: 'display' -}; -exports.NativeImageDecoding = NativeImageDecoding; -var PermissionFlag = { +const PermissionFlag = { PRINT: 0x04, MODIFY_CONTENTS: 0x08, COPY: 0x10, @@ -290,7 +959,7 @@ var PermissionFlag = { PRINT_HIGH_QUALITY: 0x800 }; exports.PermissionFlag = PermissionFlag; -var TextRenderingMode = { +const TextRenderingMode = { FILL: 0, STROKE: 1, FILL_STROKE: 2, @@ -303,13 +972,13 @@ var TextRenderingMode = { ADD_TO_PATH_FLAG: 4 }; exports.TextRenderingMode = TextRenderingMode; -var ImageKind = { +const ImageKind = { GRAYSCALE_1BPP: 1, RGB_24BPP: 2, RGBA_32BPP: 3 }; exports.ImageKind = ImageKind; -var AnnotationType = { +const AnnotationType = { TEXT: 1, LINK: 2, FREETEXT: 3, @@ -338,7 +1007,30 @@ var AnnotationType = { REDACT: 26 }; exports.AnnotationType = AnnotationType; -var AnnotationFlag = { +const AnnotationStateModelType = { + MARKED: "Marked", + REVIEW: "Review" +}; +exports.AnnotationStateModelType = AnnotationStateModelType; +const AnnotationMarkedState = { + MARKED: "Marked", + UNMARKED: "Unmarked" +}; +exports.AnnotationMarkedState = AnnotationMarkedState; +const AnnotationReviewState = { + ACCEPTED: "Accepted", + REJECTED: "Rejected", + CANCELLED: "Cancelled", + COMPLETED: "Completed", + NONE: "None" +}; +exports.AnnotationReviewState = AnnotationReviewState; +const AnnotationReplyType = { + GROUP: "Group", + REPLY: "R" +}; +exports.AnnotationReplyType = AnnotationReplyType; +const AnnotationFlag = { INVISIBLE: 0x01, HIDDEN: 0x02, PRINT: 0x04, @@ -351,7 +1043,7 @@ var AnnotationFlag = { LOCKEDCONTENTS: 0x200 }; exports.AnnotationFlag = AnnotationFlag; -var AnnotationFieldFlag = { +const AnnotationFieldFlag = { READONLY: 0x0000001, REQUIRED: 0x0000002, NOEXPORT: 0x0000004, @@ -373,7 +1065,7 @@ var AnnotationFieldFlag = { COMMITONSELCHANGE: 0x4000000 }; exports.AnnotationFieldFlag = AnnotationFieldFlag; -var AnnotationBorderStyleType = { +const AnnotationBorderStyleType = { SOLID: 1, DASHED: 2, BEVELED: 3, @@ -381,46 +1073,46 @@ var AnnotationBorderStyleType = { UNDERLINE: 5 }; exports.AnnotationBorderStyleType = AnnotationBorderStyleType; -var StreamType = { - UNKNOWN: 0, - FLATE: 1, - LZW: 2, - DCT: 3, - JPX: 4, - JBIG: 5, - A85: 6, - AHX: 7, - CCF: 8, - RL: 9 +const StreamType = { + UNKNOWN: "UNKNOWN", + FLATE: "FLATE", + LZW: "LZW", + DCT: "DCT", + JPX: "JPX", + JBIG: "JBIG", + A85: "A85", + AHX: "AHX", + CCF: "CCF", + RLX: "RLX" }; exports.StreamType = StreamType; -var FontType = { - UNKNOWN: 0, - TYPE1: 1, - TYPE1C: 2, - CIDFONTTYPE0: 3, - CIDFONTTYPE0C: 4, - TRUETYPE: 5, - CIDFONTTYPE2: 6, - TYPE3: 7, - OPENTYPE: 8, - TYPE0: 9, - MMTYPE1: 10 +const FontType = { + UNKNOWN: "UNKNOWN", + TYPE1: "TYPE1", + TYPE1C: "TYPE1C", + CIDFONTTYPE0: "CIDFONTTYPE0", + CIDFONTTYPE0C: "CIDFONTTYPE0C", + TRUETYPE: "TRUETYPE", + CIDFONTTYPE2: "CIDFONTTYPE2", + TYPE3: "TYPE3", + OPENTYPE: "OPENTYPE", + TYPE0: "TYPE0", + MMTYPE1: "MMTYPE1" }; exports.FontType = FontType; -var VerbosityLevel = { +const VerbosityLevel = { ERRORS: 0, WARNINGS: 1, INFOS: 5 }; exports.VerbosityLevel = VerbosityLevel; -var CMapCompressionType = { +const CMapCompressionType = { NONE: 0, BINARY: 1, STREAM: 2 }; exports.CMapCompressionType = CMapCompressionType; -var OPS = { +const OPS = { dependency: 1, setLineWidth: 2, setLineCap: 3, @@ -514,21 +1206,34 @@ var OPS = { constructPath: 91 }; exports.OPS = OPS; -var UNSUPPORTED_FEATURES = { - unknown: 'unknown', - forms: 'forms', - javaScript: 'javaScript', - smask: 'smask', - shadingPattern: 'shadingPattern', - font: 'font' +const UNSUPPORTED_FEATURES = { + unknown: "unknown", + forms: "forms", + javaScript: "javaScript", + smask: "smask", + shadingPattern: "shadingPattern", + font: "font", + errorTilingPattern: "errorTilingPattern", + errorExtGState: "errorExtGState", + errorXObject: "errorXObject", + errorFontLoadType3: "errorFontLoadType3", + errorFontState: "errorFontState", + errorFontMissing: "errorFontMissing", + errorFontTranslate: "errorFontTranslate", + errorColorSpace: "errorColorSpace", + errorOperatorList: "errorOperatorList", + errorFontToUnicode: "errorFontToUnicode", + errorFontLoadNative: "errorFontLoadNative", + errorFontGetPath: "errorFontGetPath", + errorMarkedContent: "errorMarkedContent" }; exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES; -var PasswordResponses = { +const PasswordResponses = { NEED_PASSWORD: 1, INCORRECT_PASSWORD: 2 }; exports.PasswordResponses = PasswordResponses; -var verbosity = VerbosityLevel.WARNINGS; +let verbosity = VerbosityLevel.WARNINGS; function setVerbosityLevel(level) { if (Number.isInteger(level)) { @@ -542,13 +1247,13 @@ function getVerbosityLevel() { function info(msg) { if (verbosity >= VerbosityLevel.INFOS) { - console.log('Info: ' + msg); + console.log(`Info: ${msg}`); } } function warn(msg) { if (verbosity >= VerbosityLevel.WARNINGS) { - console.log('Warning: ' + msg); + console.log(`Warning: ${msg}`); } } @@ -563,17 +1268,19 @@ function assert(cond, msg) { } function isSameOrigin(baseUrl, otherUrl) { - try { - var base = new _url_polyfill.URL(baseUrl); + let base; - if (!base.origin || base.origin === 'null') { + try { + base = new URL(baseUrl); + + if (!base.origin || base.origin === "null") { return false; } } catch (e) { return false; } - var other = new _url_polyfill.URL(otherUrl, base); + const other = new URL(otherUrl, base); return base.origin === other.origin; } @@ -583,11 +1290,11 @@ function _isValidProtocol(url) { } switch (url.protocol) { - case 'http:': - case 'https:': - case 'ftp:': - case 'mailto:': - case 'tel:': + case "http:": + case "https:": + case "ftp:": + case "mailto:": + case "tel:": return true; default: @@ -601,7 +1308,7 @@ function createValidAbsoluteUrl(url, baseUrl) { } try { - var absoluteUrl = baseUrl ? new _url_polyfill.URL(url, baseUrl) : new _url_polyfill.URL(url); + const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url); if (_isValidProtocol(absoluteUrl)) { return absoluteUrl; @@ -613,7 +1320,7 @@ function createValidAbsoluteUrl(url, baseUrl) { function shadow(obj, prop, value) { Object.defineProperty(obj, prop, { - value: value, + value, enumerable: true, configurable: true, writable: false @@ -621,137 +1328,106 @@ function shadow(obj, prop, value) { return value; } -var PasswordException = function PasswordExceptionClosure() { - function PasswordException(msg, code) { - this.name = 'PasswordException'; - this.message = msg; +const BaseException = function BaseExceptionClosure() { + function BaseException(message) { + if (this.constructor === BaseException) { + unreachable("Cannot initialize BaseException."); + } + + this.message = message; + this.name = this.constructor.name; + } + + BaseException.prototype = new Error(); + BaseException.constructor = BaseException; + return BaseException; +}(); + +exports.BaseException = BaseException; + +class PasswordException extends BaseException { + constructor(msg, code) { + super(msg); this.code = code; } - PasswordException.prototype = new Error(); - PasswordException.constructor = PasswordException; - return PasswordException; -}(); +} exports.PasswordException = PasswordException; -var UnknownErrorException = function UnknownErrorExceptionClosure() { - function UnknownErrorException(msg, details) { - this.name = 'UnknownErrorException'; - this.message = msg; +class UnknownErrorException extends BaseException { + constructor(msg, details) { + super(msg); this.details = details; } - UnknownErrorException.prototype = new Error(); - UnknownErrorException.constructor = UnknownErrorException; - return UnknownErrorException; -}(); +} exports.UnknownErrorException = UnknownErrorException; -var InvalidPDFException = function InvalidPDFExceptionClosure() { - function InvalidPDFException(msg) { - this.name = 'InvalidPDFException'; - this.message = msg; - } - - InvalidPDFException.prototype = new Error(); - InvalidPDFException.constructor = InvalidPDFException; - return InvalidPDFException; -}(); +class InvalidPDFException extends BaseException {} exports.InvalidPDFException = InvalidPDFException; -var MissingPDFException = function MissingPDFExceptionClosure() { - function MissingPDFException(msg) { - this.name = 'MissingPDFException'; - this.message = msg; - } - - MissingPDFException.prototype = new Error(); - MissingPDFException.constructor = MissingPDFException; - return MissingPDFException; -}(); +class MissingPDFException extends BaseException {} exports.MissingPDFException = MissingPDFException; -var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() { - function UnexpectedResponseException(msg, status) { - this.name = 'UnexpectedResponseException'; - this.message = msg; +class UnexpectedResponseException extends BaseException { + constructor(msg, status) { + super(msg); this.status = status; } - UnexpectedResponseException.prototype = new Error(); - UnexpectedResponseException.constructor = UnexpectedResponseException; - return UnexpectedResponseException; -}(); +} exports.UnexpectedResponseException = UnexpectedResponseException; -var FormatError = function FormatErrorClosure() { - function FormatError(msg) { - this.message = msg; - } - - FormatError.prototype = new Error(); - FormatError.prototype.name = 'FormatError'; - FormatError.constructor = FormatError; - return FormatError; -}(); +class FormatError extends BaseException {} exports.FormatError = FormatError; -var AbortException = function AbortExceptionClosure() { - function AbortException(msg) { - this.name = 'AbortException'; - this.message = msg; - } - - AbortException.prototype = new Error(); - AbortException.constructor = AbortException; - return AbortException; -}(); +class AbortException extends BaseException {} exports.AbortException = AbortException; -var NullCharactersRegExp = /\x00/g; +const NullCharactersRegExp = /\x00/g; function removeNullCharacters(str) { - if (typeof str !== 'string') { - warn('The argument for removeNullCharacters must be a string.'); + if (typeof str !== "string") { + warn("The argument for removeNullCharacters must be a string."); return str; } - return str.replace(NullCharactersRegExp, ''); + 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; + assert(bytes !== null && typeof bytes === "object" && bytes.length !== undefined, "Invalid argument for bytesToString"); + const length = bytes.length; + const MAX_ARGUMENT_COUNT = 8192; if (length < MAX_ARGUMENT_COUNT) { return String.fromCharCode.apply(null, bytes); } - var strBuf = []; + const 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); + for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) { + const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); + const chunk = bytes.subarray(i, chunkEnd); strBuf.push(String.fromCharCode.apply(null, chunk)); } - return strBuf.join(''); + return strBuf.join(""); } function stringToBytes(str) { - assert(typeof str === 'string', 'Invalid argument for stringToBytes'); - var length = str.length; - var bytes = new Uint8Array(length); + assert(typeof str === "string", "Invalid argument for stringToBytes"); + const length = str.length; + const bytes = new Uint8Array(length); - for (var i = 0; i < length; ++i) { - bytes[i] = str.charCodeAt(i) & 0xFF; + for (let i = 0; i < length; ++i) { + bytes[i] = str.charCodeAt(i) & 0xff; } return bytes; @@ -762,41 +1438,38 @@ function arrayByteLength(arr) { return arr.length; } - assert(arr.byteLength !== undefined); + assert(arr.byteLength !== undefined, "arrayByteLength - invalid argument."); return arr.byteLength; } function arraysToBytes(arr) { - if (arr.length === 1 && arr[0] instanceof Uint8Array) { + const length = arr.length; + + if (length === 1 && arr[0] instanceof Uint8Array) { return arr[0]; } - var resultLength = 0; - var i, - ii = arr.length; - var item, itemLength; + let resultLength = 0; - for (i = 0; i < ii; i++) { - item = arr[i]; - itemLength = arrayByteLength(item); - resultLength += itemLength; + for (let i = 0; i < length; i++) { + resultLength += arrayByteLength(arr[i]); } - var pos = 0; - var data = new Uint8Array(resultLength); + let pos = 0; + const data = new Uint8Array(resultLength); - for (i = 0; i < ii; i++) { - item = arr[i]; + for (let i = 0; i < length; i++) { + let item = arr[i]; if (!(item instanceof Uint8Array)) { - if (typeof item === 'string') { + if (typeof item === "string") { item = stringToBytes(item); } else { item = new Uint8Array(item); } } - itemLength = item.byteLength; + const itemLength = item.byteLength; data.set(item, pos); pos += itemLength; } @@ -808,103 +1481,96 @@ function string32(value) { return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); } -function log2(x) { - if (x <= 0) { - return 0; - } - - return Math.ceil(Math.log2(x)); -} - -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(4); + const buffer8 = new Uint8Array(4); buffer8[0] = 1; - var view32 = new Uint32Array(buffer8.buffer, 0, 1); + const view32 = new Uint32Array(buffer8.buffer, 0, 1); return view32[0] === 1; } +const IsLittleEndianCached = { + get value() { + return shadow(this, "value", isLittleEndian()); + } + +}; +exports.IsLittleEndianCached = IsLittleEndianCached; + function isEvalSupported() { try { - new Function(''); + new Function(""); return true; } catch (e) { return false; } } -var Util = function UtilClosure() { - function Util() {} +const IsEvalSupportedCached = { + get value() { + return shadow(this, "value", isEvalSupported()); + } - var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')']; +}; +exports.IsEvalSupportedCached = IsEvalSupportedCached; +const rgbBuf = ["rgb(", 0, ",", 0, ",", 0, ")"]; - Util.makeCssRgb = function Util_makeCssRgb(r, g, b) { +class Util { + static makeCssRgb(r, g, b) { rgbBuf[1] = r; rgbBuf[3] = g; rgbBuf[5] = b; - return rgbBuf.join(''); - }; + return rgbBuf.join(""); + } - Util.transform = function Util_transform(m1, m2) { + static 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]; + static applyTransform(p, m) { + const xt = p[0] * m[0] + p[1] * m[2] + m[4]; + const 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; + static applyInverseTransform(p, m) { + const d = m[0] * m[3] - m[1] * m[2]; + const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; + const 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); + static getAxialAlignedBoundingBox(r, m) { + const p1 = Util.applyTransform(r, m); + const p2 = Util.applyTransform(r.slice(2, 4), m); + const p3 = Util.applyTransform([r[0], r[3]], m); + const 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]; + static inverseTransform(m) { + const 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) { + static 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; + static singularValueDecompose2dScale(m) { + const transpose = [m[0], m[2], m[1], m[3]]; + const a = m[0] * transpose[0] + m[1] * transpose[2]; + const b = m[0] * transpose[1] + m[1] * transpose[3]; + const c = m[2] * transpose[0] + m[3] * transpose[2]; + const d = m[2] * transpose[1] + m[3] * transpose[3]; + const first = (a + d) / 2; + const second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2; + const sx = first + second || 1; + const sy = first - second || 1; return [Math.sqrt(sx), Math.sqrt(sy)]; - }; + } - Util.normalizeRect = function Util_normalizeRect(rect) { - var r = rect.slice(0); + static normalizeRect(rect) { + const r = rect.slice(0); if (rect[0] > rect[2]) { r[0] = rect[2]; @@ -917,16 +1583,16 @@ var Util = function UtilClosure() { } return r; - }; + } - Util.intersect = function Util_intersect(rect1, rect2) { + static 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 = []; + const orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare); + const orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare); + const result = []; rect1 = Util.normalizeRect(rect1); rect2 = Util.normalizeRect(rect2); @@ -934,42 +1600,48 @@ var Util = function UtilClosure() { result[0] = orderedX[1]; result[2] = orderedX[2]; } else { - return false; + return null; } 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 null; } return result; - }; + } - return Util; -}(); +} exports.Util = Util; -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]; +const 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 = []; + const length = str.length, + strBuf = []; - if (str[0] === '\xFE' && str[1] === '\xFF') { - for (i = 2; i < n; i += 2) { + if (str[0] === "\xFE" && str[1] === "\xFF") { + for (let i = 2; i < length; i += 2) { strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1))); } + } else if (str[0] === "\xFF" && str[1] === "\xFE") { + for (let i = 2; i < length; i += 2) { + strBuf.push(String.fromCharCode(str.charCodeAt(i + 1) << 8 | str.charCodeAt(i))); + } } else { - for (i = 0; i < n; ++i) { - var code = PDFStringTranslateTable[str.charCodeAt(i)]; + for (let i = 0; i < length; ++i) { + const code = PDFStringTranslateTable[str.charCodeAt(i)]; strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); } } - return strBuf.join(''); + return strBuf.join(""); +} + +function escapeString(str) { + return str.replace(/([\(\)\\])/g, "\\$1"); } function stringToUTF8String(str) { @@ -980,28 +1652,20 @@ 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'; + return typeof v === "boolean"; } function isNum(v) { - return typeof v === 'number'; + return typeof v === "number"; } function isString(v) { - return typeof v === 'string'; + return typeof v === "string"; } function isArrayBuffer(v) { - return _typeof(v) === 'object' && v !== null && v.byteLength !== undefined; + return typeof v === "object" && v !== null && v.byteLength !== undefined; } function isArrayEqual(arr1, arr2) { @@ -1014,17 +1678,19 @@ function isArrayEqual(arr1, arr2) { }); } -function isSpace(ch) { - return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A; +function getModificationDate(date = new Date(Date.now())) { + const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, "0"), (date.getUTCDate() + 1).toString().padStart(2, "0"), date.getUTCHours().toString().padStart(2, "0"), date.getUTCMinutes().toString().padStart(2, "0"), date.getUTCSeconds().toString().padStart(2, "0")]; + return buffer.join(""); } function createPromiseCapability() { - var capability = Object.create(null); - var isSettled = false; - Object.defineProperty(capability, 'settled', { - get: function get() { + const capability = Object.create(null); + let isSettled = false; + Object.defineProperty(capability, "settled", { + get() { return isSettled; } + }); capability.promise = new Promise(function (resolve, reject) { capability.resolve = function (data) { @@ -1040,28 +1706,26 @@ function createPromiseCapability() { return capability; } -var createObjectURL = function createObjectURLClosure() { - var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; - return function createObjectURL(data, contentType) { - var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - if (!forceDataSchema && _url_polyfill.URL.createObjectURL) { - var blob = new Blob([data], { +const createObjectURL = function createObjectURLClosure() { + const digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + return function createObjectURL(data, contentType, forceDataSchema = false) { + if (!forceDataSchema && URL.createObjectURL) { + const blob = new Blob([data], { type: contentType }); - return _url_polyfill.URL.createObjectURL(blob); + return URL.createObjectURL(blob); } - var buffer = 'data:' + contentType + ';base64,'; + let 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; + for (let i = 0, ii = data.length; i < ii; i += 3) { + const b1 = data[i] & 0xff; + const b2 = data[i + 1] & 0xff; + const b3 = data[i + 2] & 0xff; + const d1 = b1 >> 2, + d2 = (b1 & 3) << 4 | b2 >> 4; + const d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64; + const d4 = i + 2 < ii ? b3 & 0x3f : 64; buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4]; } @@ -1071,260 +1735,6 @@ var createObjectURL = function createObjectURLClosure() { exports.createObjectURL = createObjectURL; -/***/ }), -/* 2 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var globalScope = __w_pdfjs_require__(3); - -if (!globalScope._pdfjsCompatibilityChecked) { - globalScope._pdfjsCompatibilityChecked = true; - - var isNodeJS = __w_pdfjs_require__(4); - - var hasDOM = (typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object' && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object'; - - (function checkNodeBtoa() { - if (globalScope.btoa || !isNodeJS()) { - return; - } - - globalScope.btoa = function (chars) { - return Buffer.from(chars, 'binary').toString('base64'); - }; - })(); - - (function checkNodeAtob() { - if (globalScope.atob || !isNodeJS()) { - return; - } - - globalScope.atob = function (input) { - return Buffer.from(input, 'base64').toString('binary'); - }; - })(); - - (function checkChildNodeRemove() { - if (!hasDOM) { - return; - } - - if (typeof Element.prototype.remove !== 'undefined') { - return; - } - - Element.prototype.remove = function () { - if (this.parentNode) { - this.parentNode.removeChild(this); - } - }; - })(); - - (function checkDOMTokenListAddRemove() { - if (!hasDOM || isNodeJS()) { - return; - } - - var div = document.createElement('div'); - div.classList.add('testOne', 'testTwo'); - - if (div.classList.contains('testOne') === true && div.classList.contains('testTwo') === true) { - return; - } - - var OriginalDOMTokenListAdd = DOMTokenList.prototype.add; - var OriginalDOMTokenListRemove = DOMTokenList.prototype.remove; - - DOMTokenList.prototype.add = function () { - for (var _len = arguments.length, tokens = new Array(_len), _key = 0; _key < _len; _key++) { - tokens[_key] = arguments[_key]; - } - - for (var _i = 0, _tokens = tokens; _i < _tokens.length; _i++) { - var token = _tokens[_i]; - OriginalDOMTokenListAdd.call(this, token); - } - }; - - DOMTokenList.prototype.remove = function () { - for (var _len2 = arguments.length, tokens = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - tokens[_key2] = arguments[_key2]; - } - - for (var _i2 = 0, _tokens2 = tokens; _i2 < _tokens2.length; _i2++) { - var token = _tokens2[_i2]; - OriginalDOMTokenListRemove.call(this, token); - } - }; - })(); - - (function checkDOMTokenListToggle() { - if (!hasDOM || isNodeJS()) { - return; - } - - var div = document.createElement('div'); - - if (div.classList.toggle('test', 0) === false) { - return; - } - - DOMTokenList.prototype.toggle = function (token) { - var force = arguments.length > 1 ? !!arguments[1] : !this.contains(token); - return this[force ? 'add' : 'remove'](token), force; - }; - })(); - - (function checkStringStartsWith() { - if (String.prototype.startsWith) { - return; - } - - __w_pdfjs_require__(5); - })(); - - (function checkStringEndsWith() { - if (String.prototype.endsWith) { - return; - } - - __w_pdfjs_require__(36); - })(); - - (function checkStringIncludes() { - if (String.prototype.includes) { - return; - } - - __w_pdfjs_require__(38); - })(); - - (function checkArrayIncludes() { - if (Array.prototype.includes) { - return; - } - - __w_pdfjs_require__(40); - })(); - - (function checkArrayFrom() { - if (Array.from) { - return; - } - - __w_pdfjs_require__(47); - })(); - - (function checkObjectAssign() { - if (Object.assign) { - return; - } - - __w_pdfjs_require__(70); - })(); - - (function checkMathLog2() { - if (Math.log2) { - return; - } - - Math.log2 = __w_pdfjs_require__(75); - })(); - - (function checkNumberIsNaN() { - if (Number.isNaN) { - return; - } - - Number.isNaN = __w_pdfjs_require__(77); - })(); - - (function checkNumberIsInteger() { - if (Number.isInteger) { - return; - } - - Number.isInteger = __w_pdfjs_require__(79); - })(); - - (function checkPromise() { - if (globalScope.Promise && globalScope.Promise.prototype && globalScope.Promise.prototype["finally"]) { - return; - } - - globalScope.Promise = __w_pdfjs_require__(82); - })(); - - (function checkWeakMap() { - if (globalScope.WeakMap) { - return; - } - - globalScope.WeakMap = __w_pdfjs_require__(102); - })(); - - (function checkWeakSet() { - if (globalScope.WeakSet) { - return; - } - - globalScope.WeakSet = __w_pdfjs_require__(119); - })(); - - (function checkStringCodePointAt() { - if (String.codePointAt) { - return; - } - - String.codePointAt = __w_pdfjs_require__(123); - })(); - - (function checkStringFromCodePoint() { - if (String.fromCodePoint) { - return; - } - - String.fromCodePoint = __w_pdfjs_require__(125); - })(); - - (function checkSymbol() { - if (globalScope.Symbol) { - return; - } - - __w_pdfjs_require__(127); - })(); - - (function checkStringPadStart() { - if (String.prototype.padStart) { - return; - } - - __w_pdfjs_require__(134); - })(); - - (function checkStringPadEnd() { - if (String.prototype.padEnd) { - return; - } - - __w_pdfjs_require__(138); - })(); - - (function checkObjectValues() { - if (Object.values) { - return; - } - - Object.values = __w_pdfjs_require__(140); - })(); -} - /***/ }), /* 3 */ /***/ (function(module, exports, __w_pdfjs_require__) { @@ -1332,7 +1742,9 @@ if (!globalScope._pdfjsCompatibilityChecked) { "use strict"; -module.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {}; +var _is_node = __w_pdfjs_require__(4); + +; /***/ }), /* 4 */ @@ -1341,11 +1753,12 @@ module.exports = typeof window !== 'undefined' && window.Math === Math ? window "use strict"; -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -module.exports = function isNodeJS() { - return (typeof process === "undefined" ? "undefined" : _typeof(process)) === 'object' && process + '' === '[object process]' && !process.versions['nw'] && !process.versions['electron']; -}; +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isNodeJS = void 0; +const isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser"); +exports.isNodeJS = isNodeJS; /***/ }), /* 5 */ @@ -1354,8420 +1767,6 @@ module.exports = function isNodeJS() { "use strict"; -__w_pdfjs_require__(6); - -module.exports = __w_pdfjs_require__(9).String.startsWith; - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var toLength = __w_pdfjs_require__(28); - -var context = __w_pdfjs_require__(30); - -var STARTS_WITH = 'startsWith'; -var $startsWith = ''[STARTS_WITH]; -$export($export.P + $export.F * __w_pdfjs_require__(35)(STARTS_WITH), 'String', { - startsWith: function startsWith(searchString) { - var that = context(this, searchString, STARTS_WITH); - var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length)); - var search = String(searchString); - return $startsWith ? $startsWith.call(that, search, index) : that.slice(index, index + search.length) === search; - } -}); - -/***/ }), -/* 7 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(8); - -var core = __w_pdfjs_require__(9); - -var hide = __w_pdfjs_require__(10); - -var redefine = __w_pdfjs_require__(20); - -var ctx = __w_pdfjs_require__(26); - -var PROTOTYPE = 'prototype'; - -var $export = function $export(type, name, source) { - var IS_FORCED = type & $export.F; - var IS_GLOBAL = type & $export.G; - var IS_STATIC = type & $export.S; - var IS_PROTO = type & $export.P; - var IS_BIND = type & $export.B; - var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; - var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); - var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); - var key, own, out, exp; - if (IS_GLOBAL) source = name; - - for (key in source) { - own = !IS_FORCED && target && target[key] !== undefined; - out = (own ? target : source)[key]; - exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - if (target) redefine(target, key, out, type & $export.U); - if (exports[key] != out) hide(exports, key, exp); - if (IS_PROTO && expProto[key] != out) expProto[key] = out; - } -}; - -global.core = core; -$export.F = 1; -$export.G = 2; -$export.S = 4; -$export.P = 8; -$export.B = 16; -$export.W = 32; -$export.U = 64; -$export.R = 128; -module.exports = $export; - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); -if (typeof __g == 'number') __g = global; - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var core = module.exports = { - version: '2.6.9' -}; -if (typeof __e == 'number') __e = core; - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var dP = __w_pdfjs_require__(11); - -var createDesc = __w_pdfjs_require__(19); - -module.exports = __w_pdfjs_require__(15) ? function (object, key, value) { - return dP.f(object, key, createDesc(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - -/***/ }), -/* 11 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var anObject = __w_pdfjs_require__(12); - -var IE8_DOM_DEFINE = __w_pdfjs_require__(14); - -var toPrimitive = __w_pdfjs_require__(18); - -var dP = Object.defineProperty; -exports.f = __w_pdfjs_require__(15) ? Object.defineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return dP(O, P, Attributes); - } catch (e) {} - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - -/***/ }), -/* 12 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(13); - -module.exports = function (it) { - if (!isObject(it)) throw TypeError(it + ' is not an object!'); - return it; -}; - -/***/ }), -/* 13 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -module.exports = function (it) { - return _typeof(it) === 'object' ? it !== null : typeof it === 'function'; -}; - -/***/ }), -/* 14 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = !__w_pdfjs_require__(15) && !__w_pdfjs_require__(16)(function () { - return Object.defineProperty(__w_pdfjs_require__(17)('div'), 'a', { - get: function get() { - return 7; - } - }).a != 7; -}); - -/***/ }), -/* 15 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = !__w_pdfjs_require__(16)(function () { - return Object.defineProperty({}, 'a', { - get: function get() { - return 7; - } - }).a != 7; -}); - -/***/ }), -/* 16 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (exec) { - try { - return !!exec(); - } catch (e) { - return true; - } -}; - -/***/ }), -/* 17 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(13); - -var document = __w_pdfjs_require__(8).document; - -var is = isObject(document) && isObject(document.createElement); - -module.exports = function (it) { - return is ? document.createElement(it) : {}; -}; - -/***/ }), -/* 18 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(13); - -module.exports = function (it, S) { - if (!isObject(it)) return it; - var fn, val; - if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; - if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - -/***/ }), -/* 19 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - -/***/ }), -/* 20 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(8); - -var hide = __w_pdfjs_require__(10); - -var has = __w_pdfjs_require__(21); - -var SRC = __w_pdfjs_require__(22)('src'); - -var $toString = __w_pdfjs_require__(23); - -var TO_STRING = 'toString'; -var TPL = ('' + $toString).split(TO_STRING); - -__w_pdfjs_require__(9).inspectSource = function (it) { - return $toString.call(it); -}; - -(module.exports = function (O, key, val, safe) { - var isFunction = typeof val == 'function'; - if (isFunction) has(val, 'name') || hide(val, 'name', key); - if (O[key] === val) return; - if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); - - if (O === global) { - O[key] = val; - } else if (!safe) { - delete O[key]; - hide(O, key, val); - } else if (O[key]) { - O[key] = val; - } else { - hide(O, key, val); - } -})(Function.prototype, TO_STRING, function toString() { - return typeof this == 'function' && this[SRC] || $toString.call(this); -}); - -/***/ }), -/* 21 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var hasOwnProperty = {}.hasOwnProperty; - -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - -/***/ }), -/* 22 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var id = 0; -var px = Math.random(); - -module.exports = function (key) { - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); -}; - -/***/ }), -/* 23 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = __w_pdfjs_require__(24)('native-function-to-string', Function.toString); - -/***/ }), -/* 24 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var core = __w_pdfjs_require__(9); - -var global = __w_pdfjs_require__(8); - -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || (global[SHARED] = {}); -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: core.version, - mode: __w_pdfjs_require__(25) ? 'pure' : 'global', - copyright: '© 2019 Denis Pushkarev (zloirock.ru)' -}); - -/***/ }), -/* 25 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = false; - -/***/ }), -/* 26 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var aFunction = __w_pdfjs_require__(27); - -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - - switch (length) { - case 1: - return function (a) { - return fn.call(that, a); - }; - - case 2: - return function (a, b) { - return fn.call(that, a, b); - }; - - case 3: - return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - - return function () { - return fn.apply(that, arguments); - }; -}; - -/***/ }), -/* 27 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (it) { - if (typeof it != 'function') throw TypeError(it + ' is not a function!'); - return it; -}; - -/***/ }), -/* 28 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toInteger = __w_pdfjs_require__(29); - -var min = Math.min; - -module.exports = function (it) { - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; -}; - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var ceil = Math.ceil; -var floor = Math.floor; - -module.exports = function (it) { - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); -}; - -/***/ }), -/* 30 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isRegExp = __w_pdfjs_require__(31); - -var defined = __w_pdfjs_require__(34); - -module.exports = function (that, searchString, NAME) { - if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); - return String(defined(that)); -}; - -/***/ }), -/* 31 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(13); - -var cof = __w_pdfjs_require__(32); - -var MATCH = __w_pdfjs_require__(33)('match'); - -module.exports = function (it) { - var isRegExp; - return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); -}; - -/***/ }), -/* 32 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - -/***/ }), -/* 33 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var store = __w_pdfjs_require__(24)('wks'); - -var uid = __w_pdfjs_require__(22); - -var _Symbol = __w_pdfjs_require__(8).Symbol; - -var USE_SYMBOL = typeof _Symbol == 'function'; - -var $exports = module.exports = function (name) { - return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name)); -}; - -$exports.store = store; - -/***/ }), -/* 34 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - -/***/ }), -/* 35 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var MATCH = __w_pdfjs_require__(33)('match'); - -module.exports = function (KEY) { - var re = /./; - - try { - '/./'[KEY](re); - } catch (e) { - try { - re[MATCH] = false; - return !'/./'[KEY](re); - } catch (f) {} - } - - return true; -}; - -/***/ }), -/* 36 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(37); - -module.exports = __w_pdfjs_require__(9).String.endsWith; - -/***/ }), -/* 37 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var toLength = __w_pdfjs_require__(28); - -var context = __w_pdfjs_require__(30); - -var ENDS_WITH = 'endsWith'; -var $endsWith = ''[ENDS_WITH]; -$export($export.P + $export.F * __w_pdfjs_require__(35)(ENDS_WITH), 'String', { - endsWith: function endsWith(searchString) { - var that = context(this, searchString, ENDS_WITH); - var endPosition = arguments.length > 1 ? arguments[1] : undefined; - var len = toLength(that.length); - var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len); - var search = String(searchString); - return $endsWith ? $endsWith.call(that, search, end) : that.slice(end - search.length, end) === search; - } -}); - -/***/ }), -/* 38 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(39); - -module.exports = __w_pdfjs_require__(9).String.includes; - -/***/ }), -/* 39 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var context = __w_pdfjs_require__(30); - -var INCLUDES = 'includes'; -$export($export.P + $export.F * __w_pdfjs_require__(35)(INCLUDES), 'String', { - includes: function includes(searchString) { - return !!~context(this, searchString, INCLUDES).indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); - } -}); - -/***/ }), -/* 40 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(41); - -module.exports = __w_pdfjs_require__(9).Array.includes; - -/***/ }), -/* 41 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var $includes = __w_pdfjs_require__(42)(true); - -$export($export.P, 'Array', { - includes: function includes(el) { - return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); - } -}); - -__w_pdfjs_require__(46)('includes'); - -/***/ }), -/* 42 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toIObject = __w_pdfjs_require__(43); - -var toLength = __w_pdfjs_require__(28); - -var toAbsoluteIndex = __w_pdfjs_require__(45); - -module.exports = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - if (value != value) return true; - } else for (; length > index; index++) { - if (IS_INCLUDES || index in O) { - if (O[index] === el) return IS_INCLUDES || index || 0; - } - } - return !IS_INCLUDES && -1; - }; -}; - -/***/ }), -/* 43 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var IObject = __w_pdfjs_require__(44); - -var defined = __w_pdfjs_require__(34); - -module.exports = function (it) { - return IObject(defined(it)); -}; - -/***/ }), -/* 44 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var cof = __w_pdfjs_require__(32); - -module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { - return cof(it) == 'String' ? it.split('') : Object(it); -}; - -/***/ }), -/* 45 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toInteger = __w_pdfjs_require__(29); - -var max = Math.max; -var min = Math.min; - -module.exports = function (index, length) { - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); -}; - -/***/ }), -/* 46 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var UNSCOPABLES = __w_pdfjs_require__(33)('unscopables'); - -var ArrayProto = Array.prototype; -if (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(10)(ArrayProto, UNSCOPABLES, {}); - -module.exports = function (key) { - ArrayProto[UNSCOPABLES][key] = true; -}; - -/***/ }), -/* 47 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(48); - -__w_pdfjs_require__(63); - -module.exports = __w_pdfjs_require__(9).Array.from; - -/***/ }), -/* 48 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $at = __w_pdfjs_require__(49)(true); - -__w_pdfjs_require__(50)(String, 'String', function (iterated) { - this._t = String(iterated); - this._i = 0; -}, function () { - var O = this._t; - var index = this._i; - var point; - if (index >= O.length) return { - value: undefined, - done: true - }; - point = $at(O, index); - this._i += point.length; - return { - value: point, - done: false - }; -}); - -/***/ }), -/* 49 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toInteger = __w_pdfjs_require__(29); - -var defined = __w_pdfjs_require__(34); - -module.exports = function (TO_STRING) { - return function (that, pos) { - var s = String(defined(that)); - var i = toInteger(pos); - var l = s.length; - var a, b; - if (i < 0 || i >= l) return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; -}; - -/***/ }), -/* 50 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var LIBRARY = __w_pdfjs_require__(25); - -var $export = __w_pdfjs_require__(7); - -var redefine = __w_pdfjs_require__(20); - -var hide = __w_pdfjs_require__(10); - -var Iterators = __w_pdfjs_require__(51); - -var $iterCreate = __w_pdfjs_require__(52); - -var setToStringTag = __w_pdfjs_require__(60); - -var getPrototypeOf = __w_pdfjs_require__(61); - -var ITERATOR = __w_pdfjs_require__(33)('iterator'); - -var BUGGY = !([].keys && 'next' in [].keys()); -var FF_ITERATOR = '@@iterator'; -var KEYS = 'keys'; -var VALUES = 'values'; - -var returnThis = function returnThis() { - return this; -}; - -module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { - $iterCreate(Constructor, NAME, next); - - var getMethod = function getMethod(kind) { - if (!BUGGY && kind in proto) return proto[kind]; - - switch (kind) { - case KEYS: - return function keys() { - return new Constructor(this, kind); - }; - - case VALUES: - return function values() { - return new Constructor(this, kind); - }; - } - - return function entries() { - return new Constructor(this, kind); - }; - }; - - var TAG = NAME + ' Iterator'; - var DEF_VALUES = DEFAULT == VALUES; - var VALUES_BUG = false; - var proto = Base.prototype; - var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; - var $default = $native || getMethod(DEFAULT); - var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; - var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; - var methods, key, IteratorPrototype; - - if ($anyNative) { - IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); - - if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { - setToStringTag(IteratorPrototype, TAG, true); - if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); - } - } - - if (DEF_VALUES && $native && $native.name !== VALUES) { - VALUES_BUG = true; - - $default = function values() { - return $native.call(this); - }; - } - - if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { - hide(proto, ITERATOR, $default); - } - - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - - if (DEFAULT) { - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if (FORCED) for (key in methods) { - if (!(key in proto)) redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - - return methods; -}; - -/***/ }), -/* 51 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = {}; - -/***/ }), -/* 52 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var create = __w_pdfjs_require__(53); - -var descriptor = __w_pdfjs_require__(19); - -var setToStringTag = __w_pdfjs_require__(60); - -var IteratorPrototype = {}; - -__w_pdfjs_require__(10)(IteratorPrototype, __w_pdfjs_require__(33)('iterator'), function () { - return this; -}); - -module.exports = function (Constructor, NAME, next) { - Constructor.prototype = create(IteratorPrototype, { - next: descriptor(1, next) - }); - setToStringTag(Constructor, NAME + ' Iterator'); -}; - -/***/ }), -/* 53 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var anObject = __w_pdfjs_require__(12); - -var dPs = __w_pdfjs_require__(54); - -var enumBugKeys = __w_pdfjs_require__(58); - -var IE_PROTO = __w_pdfjs_require__(57)('IE_PROTO'); - -var Empty = function Empty() {}; - -var PROTOTYPE = 'prototype'; - -var _createDict = function createDict() { - var iframe = __w_pdfjs_require__(17)('iframe'); - - var i = enumBugKeys.length; - var lt = '<'; - var gt = '>'; - var iframeDocument; - iframe.style.display = 'none'; - - __w_pdfjs_require__(59).appendChild(iframe); - - iframe.src = 'javascript:'; - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - _createDict = iframeDocument.F; - - while (i--) { - delete _createDict[PROTOTYPE][enumBugKeys[i]]; - } - - return _createDict(); -}; - -module.exports = Object.create || function create(O, Properties) { - var result; - - if (O !== null) { - Empty[PROTOTYPE] = anObject(O); - result = new Empty(); - Empty[PROTOTYPE] = null; - result[IE_PROTO] = O; - } else result = _createDict(); - - return Properties === undefined ? result : dPs(result, Properties); -}; - -/***/ }), -/* 54 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var dP = __w_pdfjs_require__(11); - -var anObject = __w_pdfjs_require__(12); - -var getKeys = __w_pdfjs_require__(55); - -module.exports = __w_pdfjs_require__(15) ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = getKeys(Properties); - var length = keys.length; - var i = 0; - var P; - - while (length > i) { - dP.f(O, P = keys[i++], Properties[P]); - } - - return O; -}; - -/***/ }), -/* 55 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $keys = __w_pdfjs_require__(56); - -var enumBugKeys = __w_pdfjs_require__(58); - -module.exports = Object.keys || function keys(O) { - return $keys(O, enumBugKeys); -}; - -/***/ }), -/* 56 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var has = __w_pdfjs_require__(21); - -var toIObject = __w_pdfjs_require__(43); - -var arrayIndexOf = __w_pdfjs_require__(42)(false); - -var IE_PROTO = __w_pdfjs_require__(57)('IE_PROTO'); - -module.exports = function (object, names) { - var O = toIObject(object); - var i = 0; - var result = []; - var key; - - for (key in O) { - if (key != IE_PROTO) has(O, key) && result.push(key); - } - - while (names.length > i) { - if (has(O, key = names[i++])) { - ~arrayIndexOf(result, key) || result.push(key); - } - } - - return result; -}; - -/***/ }), -/* 57 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var shared = __w_pdfjs_require__(24)('keys'); - -var uid = __w_pdfjs_require__(22); - -module.exports = function (key) { - return shared[key] || (shared[key] = uid(key)); -}; - -/***/ }), -/* 58 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(','); - -/***/ }), -/* 59 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var document = __w_pdfjs_require__(8).document; - -module.exports = document && document.documentElement; - -/***/ }), -/* 60 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var def = __w_pdfjs_require__(11).f; - -var has = __w_pdfjs_require__(21); - -var TAG = __w_pdfjs_require__(33)('toStringTag'); - -module.exports = function (it, tag, stat) { - if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { - configurable: true, - value: tag - }); -}; - -/***/ }), -/* 61 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var has = __w_pdfjs_require__(21); - -var toObject = __w_pdfjs_require__(62); - -var IE_PROTO = __w_pdfjs_require__(57)('IE_PROTO'); - -var ObjectProto = Object.prototype; - -module.exports = Object.getPrototypeOf || function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } - - return O instanceof Object ? ObjectProto : null; -}; - -/***/ }), -/* 62 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var defined = __w_pdfjs_require__(34); - -module.exports = function (it) { - return Object(defined(it)); -}; - -/***/ }), -/* 63 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var ctx = __w_pdfjs_require__(26); - -var $export = __w_pdfjs_require__(7); - -var toObject = __w_pdfjs_require__(62); - -var call = __w_pdfjs_require__(64); - -var isArrayIter = __w_pdfjs_require__(65); - -var toLength = __w_pdfjs_require__(28); - -var createProperty = __w_pdfjs_require__(66); - -var getIterFn = __w_pdfjs_require__(67); - -$export($export.S + $export.F * !__w_pdfjs_require__(69)(function (iter) { - Array.from(iter); -}), 'Array', { - from: function from(arrayLike) { - var O = toObject(arrayLike); - var C = typeof this == 'function' ? this : Array; - var aLen = arguments.length; - var mapfn = aLen > 1 ? arguments[1] : undefined; - var mapping = mapfn !== undefined; - var index = 0; - var iterFn = getIterFn(O); - var length, result, step, iterator; - if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); - - if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { - for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { - createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); - } - } else { - length = toLength(O.length); - - for (result = new C(length); length > index; index++) { - createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); - } - } - - result.length = index; - return result; - } -}); - -/***/ }), -/* 64 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var anObject = __w_pdfjs_require__(12); - -module.exports = function (iterator, fn, value, entries) { - try { - return entries ? fn(anObject(value)[0], value[1]) : fn(value); - } catch (e) { - var ret = iterator['return']; - if (ret !== undefined) anObject(ret.call(iterator)); - throw e; - } -}; - -/***/ }), -/* 65 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var Iterators = __w_pdfjs_require__(51); - -var ITERATOR = __w_pdfjs_require__(33)('iterator'); - -var ArrayProto = Array.prototype; - -module.exports = function (it) { - return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); -}; - -/***/ }), -/* 66 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $defineProperty = __w_pdfjs_require__(11); - -var createDesc = __w_pdfjs_require__(19); - -module.exports = function (object, index, value) { - if (index in object) $defineProperty.f(object, index, createDesc(0, value));else object[index] = value; -}; - -/***/ }), -/* 67 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var classof = __w_pdfjs_require__(68); - -var ITERATOR = __w_pdfjs_require__(33)('iterator'); - -var Iterators = __w_pdfjs_require__(51); - -module.exports = __w_pdfjs_require__(9).getIteratorMethod = function (it) { - if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)]; -}; - -/***/ }), -/* 68 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var cof = __w_pdfjs_require__(32); - -var TAG = __w_pdfjs_require__(33)('toStringTag'); - -var ARG = cof(function () { - return arguments; -}()) == 'Arguments'; - -var tryGet = function tryGet(it, key) { - try { - return it[key]; - } catch (e) {} -}; - -module.exports = function (it) { - var O, T, B; - return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T : ARG ? cof(O) : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; -}; - -/***/ }), -/* 69 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var ITERATOR = __w_pdfjs_require__(33)('iterator'); - -var SAFE_CLOSING = false; - -try { - var riter = [7][ITERATOR](); - - riter['return'] = function () { - SAFE_CLOSING = true; - }; - - Array.from(riter, function () { - throw 2; - }); -} catch (e) {} - -module.exports = function (exec, skipClosing) { - if (!skipClosing && !SAFE_CLOSING) return false; - var safe = false; - - try { - var arr = [7]; - var iter = arr[ITERATOR](); - - iter.next = function () { - return { - done: safe = true - }; - }; - - arr[ITERATOR] = function () { - return iter; - }; - - exec(arr); - } catch (e) {} - - return safe; -}; - -/***/ }), -/* 70 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(71); - -module.exports = __w_pdfjs_require__(9).Object.assign; - -/***/ }), -/* 71 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -$export($export.S + $export.F, 'Object', { - assign: __w_pdfjs_require__(72) -}); - -/***/ }), -/* 72 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var DESCRIPTORS = __w_pdfjs_require__(15); - -var getKeys = __w_pdfjs_require__(55); - -var gOPS = __w_pdfjs_require__(73); - -var pIE = __w_pdfjs_require__(74); - -var toObject = __w_pdfjs_require__(62); - -var IObject = __w_pdfjs_require__(44); - -var $assign = Object.assign; -module.exports = !$assign || __w_pdfjs_require__(16)(function () { - var A = {}; - var B = {}; - var S = Symbol(); - var K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function (k) { - B[k] = k; - }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; -}) ? function assign(target, source) { - var T = toObject(target); - var aLen = arguments.length; - var index = 1; - var getSymbols = gOPS.f; - var isEnum = pIE.f; - - while (aLen > index) { - var S = IObject(arguments[index++]); - var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); - var length = keys.length; - var j = 0; - var key; - - while (length > j) { - key = keys[j++]; - if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key]; - } - } - - return T; -} : $assign; - -/***/ }), -/* 73 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -exports.f = Object.getOwnPropertySymbols; - -/***/ }), -/* 74 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -exports.f = {}.propertyIsEnumerable; - -/***/ }), -/* 75 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(76); - -module.exports = __w_pdfjs_require__(9).Math.log2; - -/***/ }), -/* 76 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -$export($export.S, 'Math', { - log2: function log2(x) { - return Math.log(x) / Math.LN2; - } -}); - -/***/ }), -/* 77 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(78); - -module.exports = __w_pdfjs_require__(9).Number.isNaN; - -/***/ }), -/* 78 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -$export($export.S, 'Number', { - isNaN: function isNaN(number) { - return number != number; - } -}); - -/***/ }), -/* 79 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(80); - -module.exports = __w_pdfjs_require__(9).Number.isInteger; - -/***/ }), -/* 80 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -$export($export.S, 'Number', { - isInteger: __w_pdfjs_require__(81) -}); - -/***/ }), -/* 81 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(13); - -var floor = Math.floor; - -module.exports = function isInteger(it) { - return !isObject(it) && isFinite(it) && floor(it) === it; -}; - -/***/ }), -/* 82 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(83); - -__w_pdfjs_require__(48); - -__w_pdfjs_require__(84); - -__w_pdfjs_require__(87); - -__w_pdfjs_require__(100); - -__w_pdfjs_require__(101); - -module.exports = __w_pdfjs_require__(9).Promise; - -/***/ }), -/* 83 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var classof = __w_pdfjs_require__(68); - -var test = {}; -test[__w_pdfjs_require__(33)('toStringTag')] = 'z'; - -if (test + '' != '[object z]') { - __w_pdfjs_require__(20)(Object.prototype, 'toString', function toString() { - return '[object ' + classof(this) + ']'; - }, true); -} - -/***/ }), -/* 84 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $iterators = __w_pdfjs_require__(85); - -var getKeys = __w_pdfjs_require__(55); - -var redefine = __w_pdfjs_require__(20); - -var global = __w_pdfjs_require__(8); - -var hide = __w_pdfjs_require__(10); - -var Iterators = __w_pdfjs_require__(51); - -var wks = __w_pdfjs_require__(33); - -var ITERATOR = wks('iterator'); -var TO_STRING_TAG = wks('toStringTag'); -var ArrayValues = Iterators.Array; -var DOMIterables = { - CSSRuleList: true, - CSSStyleDeclaration: false, - CSSValueList: false, - ClientRectList: false, - DOMRectList: false, - DOMStringList: false, - DOMTokenList: true, - DataTransferItemList: false, - FileList: false, - HTMLAllCollection: false, - HTMLCollection: false, - HTMLFormElement: false, - HTMLSelectElement: false, - MediaList: true, - MimeTypeArray: false, - NamedNodeMap: false, - NodeList: true, - PaintRequestList: false, - Plugin: false, - PluginArray: false, - SVGLengthList: false, - SVGNumberList: false, - SVGPathSegList: false, - SVGPointList: false, - SVGStringList: false, - SVGTransformList: false, - SourceBufferList: false, - StyleSheetList: true, - TextTrackCueList: false, - TextTrackList: false, - TouchList: false -}; - -for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) { - var NAME = collections[i]; - var explicit = DOMIterables[NAME]; - var Collection = global[NAME]; - var proto = Collection && Collection.prototype; - var key; - - if (proto) { - if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues); - if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = ArrayValues; - if (explicit) for (key in $iterators) { - if (!proto[key]) redefine(proto, key, $iterators[key], true); - } - } -} - -/***/ }), -/* 85 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var addToUnscopables = __w_pdfjs_require__(46); - -var step = __w_pdfjs_require__(86); - -var Iterators = __w_pdfjs_require__(51); - -var toIObject = __w_pdfjs_require__(43); - -module.exports = __w_pdfjs_require__(50)(Array, 'Array', function (iterated, kind) { - this._t = toIObject(iterated); - this._i = 0; - this._k = kind; -}, function () { - var O = this._t; - var kind = this._k; - var index = this._i++; - - if (!O || index >= O.length) { - this._t = undefined; - return step(1); - } - - if (kind == 'keys') return step(0, index); - if (kind == 'values') return step(0, O[index]); - return step(0, [index, O[index]]); -}, 'values'); -Iterators.Arguments = Iterators.Array; -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - -/***/ }), -/* 86 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (done, value) { - return { - value: value, - done: !!done - }; -}; - -/***/ }), -/* 87 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var LIBRARY = __w_pdfjs_require__(25); - -var global = __w_pdfjs_require__(8); - -var ctx = __w_pdfjs_require__(26); - -var classof = __w_pdfjs_require__(68); - -var $export = __w_pdfjs_require__(7); - -var isObject = __w_pdfjs_require__(13); - -var aFunction = __w_pdfjs_require__(27); - -var anInstance = __w_pdfjs_require__(88); - -var forOf = __w_pdfjs_require__(89); - -var speciesConstructor = __w_pdfjs_require__(90); - -var task = __w_pdfjs_require__(91).set; - -var microtask = __w_pdfjs_require__(93)(); - -var newPromiseCapabilityModule = __w_pdfjs_require__(94); - -var perform = __w_pdfjs_require__(95); - -var userAgent = __w_pdfjs_require__(96); - -var promiseResolve = __w_pdfjs_require__(97); - -var PROMISE = 'Promise'; -var TypeError = global.TypeError; -var process = global.process; -var versions = process && process.versions; -var v8 = versions && versions.v8 || ''; -var $Promise = global[PROMISE]; -var isNode = classof(process) == 'process'; - -var empty = function empty() {}; - -var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; -var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; -var USE_NATIVE = !!function () { - try { - var promise = $Promise.resolve(1); - - var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(33)('species')] = function (exec) { - exec(empty, empty); - }; - - return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1; - } catch (e) {} -}(); - -var isThenable = function isThenable(it) { - var then; - return isObject(it) && typeof (then = it.then) == 'function' ? then : false; -}; - -var notify = function notify(promise, isReject) { - if (promise._n) return; - promise._n = true; - var chain = promise._c; - microtask(function () { - var value = promise._v; - var ok = promise._s == 1; - var i = 0; - - var run = function run(reaction) { - var handler = ok ? reaction.ok : reaction.fail; - var resolve = reaction.resolve; - var reject = reaction.reject; - var domain = reaction.domain; - var result, then, exited; - - try { - if (handler) { - if (!ok) { - if (promise._h == 2) onHandleUnhandled(promise); - promise._h = 1; - } - - if (handler === true) result = value;else { - if (domain) domain.enter(); - result = handler(value); - - if (domain) { - domain.exit(); - exited = true; - } - } - - if (result === reaction.promise) { - reject(TypeError('Promise-chain cycle')); - } else if (then = isThenable(result)) { - then.call(result, resolve, reject); - } else resolve(result); - } else reject(value); - } catch (e) { - if (domain && !exited) domain.exit(); - reject(e); - } - }; - - while (chain.length > i) { - run(chain[i++]); - } - - promise._c = []; - promise._n = false; - if (isReject && !promise._h) onUnhandled(promise); - }); -}; - -var onUnhandled = function onUnhandled(promise) { - task.call(global, function () { - var value = promise._v; - var unhandled = isUnhandled(promise); - var result, handler, console; - - if (unhandled) { - result = perform(function () { - if (isNode) { - process.emit('unhandledRejection', value, promise); - } else if (handler = global.onunhandledrejection) { - handler({ - promise: promise, - reason: value - }); - } else if ((console = global.console) && console.error) { - console.error('Unhandled promise rejection', value); - } - }); - promise._h = isNode || isUnhandled(promise) ? 2 : 1; - } - - promise._a = undefined; - if (unhandled && result.e) throw result.v; - }); -}; - -var isUnhandled = function isUnhandled(promise) { - return promise._h !== 1 && (promise._a || promise._c).length === 0; -}; - -var onHandleUnhandled = function onHandleUnhandled(promise) { - task.call(global, function () { - var handler; - - if (isNode) { - process.emit('rejectionHandled', promise); - } else if (handler = global.onrejectionhandled) { - handler({ - promise: promise, - reason: promise._v - }); - } - }); -}; - -var $reject = function $reject(value) { - var promise = this; - if (promise._d) return; - promise._d = true; - promise = promise._w || promise; - promise._v = value; - promise._s = 2; - if (!promise._a) promise._a = promise._c.slice(); - notify(promise, true); -}; - -var $resolve = function $resolve(value) { - var promise = this; - var then; - if (promise._d) return; - promise._d = true; - promise = promise._w || promise; - - try { - if (promise === value) throw TypeError("Promise can't be resolved itself"); - - if (then = isThenable(value)) { - microtask(function () { - var wrapper = { - _w: promise, - _d: false - }; - - try { - then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); - } catch (e) { - $reject.call(wrapper, e); - } - }); - } else { - promise._v = value; - promise._s = 1; - notify(promise, false); - } - } catch (e) { - $reject.call({ - _w: promise, - _d: false - }, e); - } -}; - -if (!USE_NATIVE) { - $Promise = function Promise(executor) { - anInstance(this, $Promise, PROMISE, '_h'); - aFunction(executor); - Internal.call(this); - - try { - executor(ctx($resolve, this, 1), ctx($reject, this, 1)); - } catch (err) { - $reject.call(this, err); - } - }; - - Internal = function Promise(executor) { - this._c = []; - this._a = undefined; - this._s = 0; - this._d = false; - this._v = undefined; - this._h = 0; - this._n = false; - }; - - Internal.prototype = __w_pdfjs_require__(98)($Promise.prototype, { - then: function then(onFulfilled, onRejected) { - var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); - reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; - reaction.fail = typeof onRejected == 'function' && onRejected; - reaction.domain = isNode ? process.domain : undefined; - - this._c.push(reaction); - - if (this._a) this._a.push(reaction); - if (this._s) notify(this, false); - return reaction.promise; - }, - 'catch': function _catch(onRejected) { - return this.then(undefined, onRejected); - } - }); - - OwnPromiseCapability = function OwnPromiseCapability() { - var promise = new Internal(); - this.promise = promise; - this.resolve = ctx($resolve, promise, 1); - this.reject = ctx($reject, promise, 1); - }; - - newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) { - return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { - Promise: $Promise -}); - -__w_pdfjs_require__(60)($Promise, PROMISE); - -__w_pdfjs_require__(99)(PROMISE); - -Wrapper = __w_pdfjs_require__(9)[PROMISE]; -$export($export.S + $export.F * !USE_NATIVE, PROMISE, { - reject: function reject(r) { - var capability = newPromiseCapability(this); - var $$reject = capability.reject; - $$reject(r); - return capability.promise; - } -}); -$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { - resolve: function resolve(x) { - return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); - } -}); -$export($export.S + $export.F * !(USE_NATIVE && __w_pdfjs_require__(69)(function (iter) { - $Promise.all(iter)['catch'](empty); -})), PROMISE, { - all: function all(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var resolve = capability.resolve; - var reject = capability.reject; - var result = perform(function () { - var values = []; - var index = 0; - var remaining = 1; - forOf(iterable, false, function (promise) { - var $index = index++; - var alreadyCalled = false; - values.push(undefined); - remaining++; - C.resolve(promise).then(function (value) { - if (alreadyCalled) return; - alreadyCalled = true; - values[$index] = value; - --remaining || resolve(values); - }, reject); - }); - --remaining || resolve(values); - }); - if (result.e) reject(result.v); - return capability.promise; - }, - race: function race(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var reject = capability.reject; - var result = perform(function () { - forOf(iterable, false, function (promise) { - C.resolve(promise).then(capability.resolve, reject); - }); - }); - if (result.e) reject(result.v); - return capability.promise; - } -}); - -/***/ }), -/* 88 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (it, Constructor, name, forbiddenField) { - if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) { - throw TypeError(name + ': incorrect invocation!'); - } - - return it; -}; - -/***/ }), -/* 89 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var ctx = __w_pdfjs_require__(26); - -var call = __w_pdfjs_require__(64); - -var isArrayIter = __w_pdfjs_require__(65); - -var anObject = __w_pdfjs_require__(12); - -var toLength = __w_pdfjs_require__(28); - -var getIterFn = __w_pdfjs_require__(67); - -var BREAK = {}; -var RETURN = {}; - -var _exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { - var iterFn = ITERATOR ? function () { - return iterable; - } : getIterFn(iterable); - var f = ctx(fn, that, entries ? 2 : 1); - var index = 0; - var length, step, iterator, result; - if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); - if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { - result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); - if (result === BREAK || result === RETURN) return result; - } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { - result = call(iterator, f, step.value, entries); - if (result === BREAK || result === RETURN) return result; - } -}; - -_exports.BREAK = BREAK; -_exports.RETURN = RETURN; - -/***/ }), -/* 90 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var anObject = __w_pdfjs_require__(12); - -var aFunction = __w_pdfjs_require__(27); - -var SPECIES = __w_pdfjs_require__(33)('species'); - -module.exports = function (O, D) { - var C = anObject(O).constructor; - var S; - return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); -}; - -/***/ }), -/* 91 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var ctx = __w_pdfjs_require__(26); - -var invoke = __w_pdfjs_require__(92); - -var html = __w_pdfjs_require__(59); - -var cel = __w_pdfjs_require__(17); - -var global = __w_pdfjs_require__(8); - -var process = global.process; -var setTask = global.setImmediate; -var clearTask = global.clearImmediate; -var MessageChannel = global.MessageChannel; -var Dispatch = global.Dispatch; -var counter = 0; -var queue = {}; -var ONREADYSTATECHANGE = 'onreadystatechange'; -var defer, channel, port; - -var run = function run() { - var id = +this; - - if (queue.hasOwnProperty(id)) { - var fn = queue[id]; - delete queue[id]; - fn(); - } -}; - -var listener = function listener(event) { - run.call(event.data); -}; - -if (!setTask || !clearTask) { - setTask = function setImmediate(fn) { - var args = []; - var i = 1; - - while (arguments.length > i) { - args.push(arguments[i++]); - } - - queue[++counter] = function () { - invoke(typeof fn == 'function' ? fn : Function(fn), args); - }; - - defer(counter); - return counter; - }; - - clearTask = function clearImmediate(id) { - delete queue[id]; - }; - - if (__w_pdfjs_require__(32)(process) == 'process') { - defer = function defer(id) { - process.nextTick(ctx(run, id, 1)); - }; - } else if (Dispatch && Dispatch.now) { - defer = function defer(id) { - Dispatch.now(ctx(run, id, 1)); - }; - } else if (MessageChannel) { - channel = new MessageChannel(); - port = channel.port2; - channel.port1.onmessage = listener; - defer = ctx(port.postMessage, port, 1); - } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { - defer = function defer(id) { - global.postMessage(id + '', '*'); - }; - - global.addEventListener('message', listener, false); - } else if (ONREADYSTATECHANGE in cel('script')) { - defer = function defer(id) { - html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { - html.removeChild(this); - run.call(id); - }; - }; - } else { - defer = function defer(id) { - setTimeout(ctx(run, id, 1), 0); - }; - } -} - -module.exports = { - set: setTask, - clear: clearTask -}; - -/***/ }), -/* 92 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (fn, args, that) { - var un = that === undefined; - - switch (args.length) { - case 0: - return un ? fn() : fn.call(that); - - case 1: - return un ? fn(args[0]) : fn.call(that, args[0]); - - case 2: - return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]); - - case 3: - return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]); - - case 4: - return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]); - } - - return fn.apply(that, args); -}; - -/***/ }), -/* 93 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(8); - -var macrotask = __w_pdfjs_require__(91).set; - -var Observer = global.MutationObserver || global.WebKitMutationObserver; -var process = global.process; -var Promise = global.Promise; -var isNode = __w_pdfjs_require__(32)(process) == 'process'; - -module.exports = function () { - var head, last, notify; - - var flush = function flush() { - var parent, fn; - if (isNode && (parent = process.domain)) parent.exit(); - - while (head) { - fn = head.fn; - head = head.next; - - try { - fn(); - } catch (e) { - if (head) notify();else last = undefined; - throw e; - } - } - - last = undefined; - if (parent) parent.enter(); - }; - - if (isNode) { - notify = function notify() { - process.nextTick(flush); - }; - } else if (Observer && !(global.navigator && global.navigator.standalone)) { - var toggle = true; - var node = document.createTextNode(''); - new Observer(flush).observe(node, { - characterData: true - }); - - notify = function notify() { - node.data = toggle = !toggle; - }; - } else if (Promise && Promise.resolve) { - var promise = Promise.resolve(undefined); - - notify = function notify() { - promise.then(flush); - }; - } else { - notify = function notify() { - macrotask.call(global, flush); - }; - } - - return function (fn) { - var task = { - fn: fn, - next: undefined - }; - if (last) last.next = task; - - if (!head) { - head = task; - notify(); - } - - last = task; - }; -}; - -/***/ }), -/* 94 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var aFunction = __w_pdfjs_require__(27); - -function PromiseCapability(C) { - var resolve, reject; - this.promise = new C(function ($$resolve, $$reject) { - if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); - resolve = $$resolve; - reject = $$reject; - }); - this.resolve = aFunction(resolve); - this.reject = aFunction(reject); -} - -module.exports.f = function (C) { - return new PromiseCapability(C); -}; - -/***/ }), -/* 95 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (exec) { - try { - return { - e: false, - v: exec() - }; - } catch (e) { - return { - e: true, - v: e - }; - } -}; - -/***/ }), -/* 96 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(8); - -var navigator = global.navigator; -module.exports = navigator && navigator.userAgent || ''; - -/***/ }), -/* 97 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var anObject = __w_pdfjs_require__(12); - -var isObject = __w_pdfjs_require__(13); - -var newPromiseCapability = __w_pdfjs_require__(94); - -module.exports = function (C, x) { - anObject(C); - if (isObject(x) && x.constructor === C) return x; - var promiseCapability = newPromiseCapability.f(C); - var resolve = promiseCapability.resolve; - resolve(x); - return promiseCapability.promise; -}; - -/***/ }), -/* 98 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var redefine = __w_pdfjs_require__(20); - -module.exports = function (target, src, safe) { - for (var key in src) { - redefine(target, key, src[key], safe); - } - - return target; -}; - -/***/ }), -/* 99 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(8); - -var dP = __w_pdfjs_require__(11); - -var DESCRIPTORS = __w_pdfjs_require__(15); - -var SPECIES = __w_pdfjs_require__(33)('species'); - -module.exports = function (KEY) { - var C = global[KEY]; - if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { - configurable: true, - get: function get() { - return this; - } - }); -}; - -/***/ }), -/* 100 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var core = __w_pdfjs_require__(9); - -var global = __w_pdfjs_require__(8); - -var speciesConstructor = __w_pdfjs_require__(90); - -var promiseResolve = __w_pdfjs_require__(97); - -$export($export.P + $export.R, 'Promise', { - 'finally': function _finally(onFinally) { - var C = speciesConstructor(this, core.Promise || global.Promise); - var isFunction = typeof onFinally == 'function'; - return this.then(isFunction ? function (x) { - return promiseResolve(C, onFinally()).then(function () { - return x; - }); - } : onFinally, isFunction ? function (e) { - return promiseResolve(C, onFinally()).then(function () { - throw e; - }); - } : onFinally); - } -}); - -/***/ }), -/* 101 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var newPromiseCapability = __w_pdfjs_require__(94); - -var perform = __w_pdfjs_require__(95); - -$export($export.S, 'Promise', { - 'try': function _try(callbackfn) { - var promiseCapability = newPromiseCapability.f(this); - var result = perform(callbackfn); - (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); - return promiseCapability.promise; - } -}); - -/***/ }), -/* 102 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(83); - -__w_pdfjs_require__(84); - -__w_pdfjs_require__(103); - -__w_pdfjs_require__(115); - -__w_pdfjs_require__(117); - -module.exports = __w_pdfjs_require__(9).WeakMap; - -/***/ }), -/* 103 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(8); - -var each = __w_pdfjs_require__(104)(0); - -var redefine = __w_pdfjs_require__(20); - -var meta = __w_pdfjs_require__(108); - -var assign = __w_pdfjs_require__(72); - -var weak = __w_pdfjs_require__(109); - -var isObject = __w_pdfjs_require__(13); - -var validate = __w_pdfjs_require__(110); - -var NATIVE_WEAK_MAP = __w_pdfjs_require__(110); - -var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; -var WEAK_MAP = 'WeakMap'; -var getWeak = meta.getWeak; -var isExtensible = Object.isExtensible; -var uncaughtFrozenStore = weak.ufstore; -var InternalMap; - -var wrapper = function wrapper(get) { - return function WeakMap() { - return get(this, arguments.length > 0 ? arguments[0] : undefined); - }; -}; - -var methods = { - get: function get(key) { - if (isObject(key)) { - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); - return data ? data[this._i] : undefined; - } - }, - set: function set(key, value) { - return weak.def(validate(this, WEAK_MAP), key, value); - } -}; - -var $WeakMap = module.exports = __w_pdfjs_require__(111)(WEAK_MAP, wrapper, methods, weak, true, true); - -if (NATIVE_WEAK_MAP && IS_IE11) { - InternalMap = weak.getConstructor(wrapper, WEAK_MAP); - assign(InternalMap.prototype, methods); - meta.NEED = true; - each(['delete', 'has', 'get', 'set'], function (key) { - var proto = $WeakMap.prototype; - var method = proto[key]; - redefine(proto, key, function (a, b) { - if (isObject(a) && !isExtensible(a)) { - if (!this._f) this._f = new InternalMap(); - - var result = this._f[key](a, b); - - return key == 'set' ? this : result; - } - - return method.call(this, a, b); - }); - }); -} - -/***/ }), -/* 104 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var ctx = __w_pdfjs_require__(26); - -var IObject = __w_pdfjs_require__(44); - -var toObject = __w_pdfjs_require__(62); - -var toLength = __w_pdfjs_require__(28); - -var asc = __w_pdfjs_require__(105); - -module.exports = function (TYPE, $create) { - var IS_MAP = TYPE == 1; - var IS_FILTER = TYPE == 2; - var IS_SOME = TYPE == 3; - var IS_EVERY = TYPE == 4; - var IS_FIND_INDEX = TYPE == 6; - var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; - var create = $create || asc; - return function ($this, callbackfn, that) { - var O = toObject($this); - var self = IObject(O); - var f = ctx(callbackfn, that, 3); - var length = toLength(self.length); - var index = 0; - var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; - var val, res; - - for (; length > index; index++) { - if (NO_HOLES || index in self) { - val = self[index]; - res = f(val, index, O); - - if (TYPE) { - if (IS_MAP) result[index] = res;else if (res) switch (TYPE) { - case 3: - return true; - - case 5: - return val; - - case 6: - return index; - - case 2: - result.push(val); - } else if (IS_EVERY) return false; - } - } - } - - return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; - }; -}; - -/***/ }), -/* 105 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var speciesConstructor = __w_pdfjs_require__(106); - -module.exports = function (original, length) { - return new (speciesConstructor(original))(length); -}; - -/***/ }), -/* 106 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(13); - -var isArray = __w_pdfjs_require__(107); - -var SPECIES = __w_pdfjs_require__(33)('species'); - -module.exports = function (original) { - var C; - - if (isArray(original)) { - C = original.constructor; - if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; - - if (isObject(C)) { - C = C[SPECIES]; - if (C === null) C = undefined; - } - } - - return C === undefined ? Array : C; -}; - -/***/ }), -/* 107 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var cof = __w_pdfjs_require__(32); - -module.exports = Array.isArray || function isArray(arg) { - return cof(arg) == 'Array'; -}; - -/***/ }), -/* 108 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var META = __w_pdfjs_require__(22)('meta'); - -var isObject = __w_pdfjs_require__(13); - -var has = __w_pdfjs_require__(21); - -var setDesc = __w_pdfjs_require__(11).f; - -var id = 0; - -var isExtensible = Object.isExtensible || function () { - return true; -}; - -var FREEZE = !__w_pdfjs_require__(16)(function () { - return isExtensible(Object.preventExtensions({})); -}); - -var setMeta = function setMeta(it) { - setDesc(it, META, { - value: { - i: 'O' + ++id, - w: {} - } - }); -}; - -var fastKey = function fastKey(it, create) { - if (!isObject(it)) return _typeof(it) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - - if (!has(it, META)) { - if (!isExtensible(it)) return 'F'; - if (!create) return 'E'; - setMeta(it); - } - - return it[META].i; -}; - -var getWeak = function getWeak(it, create) { - if (!has(it, META)) { - if (!isExtensible(it)) return true; - if (!create) return false; - setMeta(it); - } - - return it[META].w; -}; - -var onFreeze = function onFreeze(it) { - if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); - return it; -}; - -var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze -}; - -/***/ }), -/* 109 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var redefineAll = __w_pdfjs_require__(98); - -var getWeak = __w_pdfjs_require__(108).getWeak; - -var anObject = __w_pdfjs_require__(12); - -var isObject = __w_pdfjs_require__(13); - -var anInstance = __w_pdfjs_require__(88); - -var forOf = __w_pdfjs_require__(89); - -var createArrayMethod = __w_pdfjs_require__(104); - -var $has = __w_pdfjs_require__(21); - -var validate = __w_pdfjs_require__(110); - -var arrayFind = createArrayMethod(5); -var arrayFindIndex = createArrayMethod(6); -var id = 0; - -var uncaughtFrozenStore = function uncaughtFrozenStore(that) { - return that._l || (that._l = new UncaughtFrozenStore()); -}; - -var UncaughtFrozenStore = function UncaughtFrozenStore() { - this.a = []; -}; - -var findUncaughtFrozen = function findUncaughtFrozen(store, key) { - return arrayFind(store.a, function (it) { - return it[0] === key; - }); -}; - -UncaughtFrozenStore.prototype = { - get: function get(key) { - var entry = findUncaughtFrozen(this, key); - if (entry) return entry[1]; - }, - has: function has(key) { - return !!findUncaughtFrozen(this, key); - }, - set: function set(key, value) { - var entry = findUncaughtFrozen(this, key); - if (entry) entry[1] = value;else this.a.push([key, value]); - }, - 'delete': function _delete(key) { - var index = arrayFindIndex(this.a, function (it) { - return it[0] === key; - }); - if (~index) this.a.splice(index, 1); - return !!~index; - } -}; -module.exports = { - getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, NAME, '_i'); - that._t = NAME; - that._i = id++; - that._l = undefined; - if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); - }); - redefineAll(C.prototype, { - 'delete': function _delete(key) { - if (!isObject(key)) return false; - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); - return data && $has(data, this._i) && delete data[this._i]; - }, - has: function has(key) { - if (!isObject(key)) return false; - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); - return data && $has(data, this._i); - } - }); - return C; - }, - def: function def(that, key, value) { - var data = getWeak(anObject(key), true); - if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value; - return that; - }, - ufstore: uncaughtFrozenStore -}; - -/***/ }), -/* 110 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(13); - -module.exports = function (it, TYPE) { - if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); - return it; -}; - -/***/ }), -/* 111 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(8); - -var $export = __w_pdfjs_require__(7); - -var redefine = __w_pdfjs_require__(20); - -var redefineAll = __w_pdfjs_require__(98); - -var meta = __w_pdfjs_require__(108); - -var forOf = __w_pdfjs_require__(89); - -var anInstance = __w_pdfjs_require__(88); - -var isObject = __w_pdfjs_require__(13); - -var fails = __w_pdfjs_require__(16); - -var $iterDetect = __w_pdfjs_require__(69); - -var setToStringTag = __w_pdfjs_require__(60); - -var inheritIfRequired = __w_pdfjs_require__(112); - -module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { - var Base = global[NAME]; - var C = Base; - var ADDER = IS_MAP ? 'set' : 'add'; - var proto = C && C.prototype; - var O = {}; - - var fixMethod = function fixMethod(KEY) { - var fn = proto[KEY]; - redefine(proto, KEY, KEY == 'delete' ? function (a) { - return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'has' ? function has(a) { - return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'get' ? function get(a) { - return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'add' ? function add(a) { - fn.call(this, a === 0 ? 0 : a); - return this; - } : function set(a, b) { - fn.call(this, a === 0 ? 0 : a, b); - return this; - }); - }; - - if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { - new C().entries().next(); - }))) { - C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); - redefineAll(C.prototype, methods); - meta.NEED = true; - } else { - var instance = new C(); - var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; - var THROWS_ON_PRIMITIVES = fails(function () { - instance.has(1); - }); - var ACCEPT_ITERABLES = $iterDetect(function (iter) { - new C(iter); - }); - var BUGGY_ZERO = !IS_WEAK && fails(function () { - var $instance = new C(); - var index = 5; - - while (index--) { - $instance[ADDER](index, index); - } - - return !$instance.has(-0); - }); - - if (!ACCEPT_ITERABLES) { - C = wrapper(function (target, iterable) { - anInstance(target, C, NAME); - var that = inheritIfRequired(new Base(), target, C); - if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); - return that; - }); - C.prototype = proto; - proto.constructor = C; - } - - if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { - fixMethod('delete'); - fixMethod('has'); - IS_MAP && fixMethod('get'); - } - - if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); - if (IS_WEAK && proto.clear) delete proto.clear; - } - - setToStringTag(C, NAME); - O[NAME] = C; - $export($export.G + $export.W + $export.F * (C != Base), O); - if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); - return C; -}; - -/***/ }), -/* 112 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(13); - -var setPrototypeOf = __w_pdfjs_require__(113).set; - -module.exports = function (that, target, C) { - var S = target.constructor; - var P; - - if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { - setPrototypeOf(that, P); - } - - return that; -}; - -/***/ }), -/* 113 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(13); - -var anObject = __w_pdfjs_require__(12); - -var check = function check(O, proto) { - anObject(O); - if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); -}; - -module.exports = { - set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) { - try { - set = __w_pdfjs_require__(26)(Function.call, __w_pdfjs_require__(114).f(Object.prototype, '__proto__').set, 2); - set(test, []); - buggy = !(test instanceof Array); - } catch (e) { - buggy = true; - } - - return function setPrototypeOf(O, proto) { - check(O, proto); - if (buggy) O.__proto__ = proto;else set(O, proto); - return O; - }; - }({}, false) : undefined), - check: check -}; - -/***/ }), -/* 114 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var pIE = __w_pdfjs_require__(74); - -var createDesc = __w_pdfjs_require__(19); - -var toIObject = __w_pdfjs_require__(43); - -var toPrimitive = __w_pdfjs_require__(18); - -var has = __w_pdfjs_require__(21); - -var IE8_DOM_DEFINE = __w_pdfjs_require__(14); - -var gOPD = Object.getOwnPropertyDescriptor; -exports.f = __w_pdfjs_require__(15) ? gOPD : function getOwnPropertyDescriptor(O, P) { - O = toIObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return gOPD(O, P); - } catch (e) {} - if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); -}; - -/***/ }), -/* 115 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(116)('WeakMap'); - -/***/ }), -/* 116 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -module.exports = function (COLLECTION) { - $export($export.S, COLLECTION, { - of: function of() { - var length = arguments.length; - var A = new Array(length); - - while (length--) { - A[length] = arguments[length]; - } - - return new this(A); - } - }); -}; - -/***/ }), -/* 117 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(118)('WeakMap'); - -/***/ }), -/* 118 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var aFunction = __w_pdfjs_require__(27); - -var ctx = __w_pdfjs_require__(26); - -var forOf = __w_pdfjs_require__(89); - -module.exports = function (COLLECTION) { - $export($export.S, COLLECTION, { - from: function from(source) { - var mapFn = arguments[1]; - var mapping, A, n, cb; - aFunction(this); - mapping = mapFn !== undefined; - if (mapping) aFunction(mapFn); - if (source == undefined) return new this(); - A = []; - - if (mapping) { - n = 0; - cb = ctx(mapFn, arguments[2], 2); - forOf(source, false, function (nextItem) { - A.push(cb(nextItem, n++)); - }); - } else { - forOf(source, false, A.push, A); - } - - return new this(A); - } - }); -}; - -/***/ }), -/* 119 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(83); - -__w_pdfjs_require__(84); - -__w_pdfjs_require__(120); - -__w_pdfjs_require__(121); - -__w_pdfjs_require__(122); - -module.exports = __w_pdfjs_require__(9).WeakSet; - -/***/ }), -/* 120 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var weak = __w_pdfjs_require__(109); - -var validate = __w_pdfjs_require__(110); - -var WEAK_SET = 'WeakSet'; - -__w_pdfjs_require__(111)(WEAK_SET, function (get) { - return function WeakSet() { - return get(this, arguments.length > 0 ? arguments[0] : undefined); - }; -}, { - add: function add(value) { - return weak.def(validate(this, WEAK_SET), value, true); - } -}, weak, false, true); - -/***/ }), -/* 121 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(116)('WeakSet'); - -/***/ }), -/* 122 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(118)('WeakSet'); - -/***/ }), -/* 123 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(124); - -module.exports = __w_pdfjs_require__(9).String.codePointAt; - -/***/ }), -/* 124 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var $at = __w_pdfjs_require__(49)(false); - -$export($export.P, 'String', { - codePointAt: function codePointAt(pos) { - return $at(this, pos); - } -}); - -/***/ }), -/* 125 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(126); - -module.exports = __w_pdfjs_require__(9).String.fromCodePoint; - -/***/ }), -/* 126 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var toAbsoluteIndex = __w_pdfjs_require__(45); - -var fromCharCode = String.fromCharCode; -var $fromCodePoint = String.fromCodePoint; -$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', { - fromCodePoint: function fromCodePoint(x) { - var res = []; - var aLen = arguments.length; - var i = 0; - var code; - - while (aLen > i) { - code = +arguments[i++]; - if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point'); - res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)); - } - - return res.join(''); - } -}); - -/***/ }), -/* 127 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(128); - -__w_pdfjs_require__(83); - -module.exports = __w_pdfjs_require__(9).Symbol; - -/***/ }), -/* 128 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var global = __w_pdfjs_require__(8); - -var has = __w_pdfjs_require__(21); - -var DESCRIPTORS = __w_pdfjs_require__(15); - -var $export = __w_pdfjs_require__(7); - -var redefine = __w_pdfjs_require__(20); - -var META = __w_pdfjs_require__(108).KEY; - -var $fails = __w_pdfjs_require__(16); - -var shared = __w_pdfjs_require__(24); - -var setToStringTag = __w_pdfjs_require__(60); - -var uid = __w_pdfjs_require__(22); - -var wks = __w_pdfjs_require__(33); - -var wksExt = __w_pdfjs_require__(129); - -var wksDefine = __w_pdfjs_require__(130); - -var enumKeys = __w_pdfjs_require__(131); - -var isArray = __w_pdfjs_require__(107); - -var anObject = __w_pdfjs_require__(12); - -var isObject = __w_pdfjs_require__(13); - -var toObject = __w_pdfjs_require__(62); - -var toIObject = __w_pdfjs_require__(43); - -var toPrimitive = __w_pdfjs_require__(18); - -var createDesc = __w_pdfjs_require__(19); - -var _create = __w_pdfjs_require__(53); - -var gOPNExt = __w_pdfjs_require__(132); - -var $GOPD = __w_pdfjs_require__(114); - -var $GOPS = __w_pdfjs_require__(73); - -var $DP = __w_pdfjs_require__(11); - -var $keys = __w_pdfjs_require__(55); - -var gOPD = $GOPD.f; -var dP = $DP.f; -var gOPN = gOPNExt.f; -var $Symbol = global.Symbol; -var $JSON = global.JSON; - -var _stringify = $JSON && $JSON.stringify; - -var PROTOTYPE = 'prototype'; -var HIDDEN = wks('_hidden'); -var TO_PRIMITIVE = wks('toPrimitive'); -var isEnum = {}.propertyIsEnumerable; -var SymbolRegistry = shared('symbol-registry'); -var AllSymbols = shared('symbols'); -var OPSymbols = shared('op-symbols'); -var ObjectProto = Object[PROTOTYPE]; -var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f; -var QObject = global.QObject; -var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; -var setSymbolDesc = DESCRIPTORS && $fails(function () { - return _create(dP({}, 'a', { - get: function get() { - return dP(this, 'a', { - value: 7 - }).a; - } - })).a != 7; -}) ? function (it, key, D) { - var protoDesc = gOPD(ObjectProto, key); - if (protoDesc) delete ObjectProto[key]; - dP(it, key, D); - if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); -} : dP; - -var wrap = function wrap(tag) { - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - - sym._k = tag; - return sym; -}; - -var isSymbol = USE_NATIVE && _typeof($Symbol.iterator) == 'symbol' ? function (it) { - return _typeof(it) == 'symbol'; -} : function (it) { - return it instanceof $Symbol; -}; - -var $defineProperty = function defineProperty(it, key, D) { - if (it === ObjectProto) $defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - - if (has(AllSymbols, key)) { - if (!D.enumerable) { - if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; - D = _create(D, { - enumerable: createDesc(0, false) - }); - } - - return setSymbolDesc(it, key, D); - } - - return dP(it, key, D); -}; - -var $defineProperties = function defineProperties(it, P) { - anObject(it); - var keys = enumKeys(P = toIObject(P)); - var i = 0; - var l = keys.length; - var key; - - while (l > i) { - $defineProperty(it, key = keys[i++], P[key]); - } - - return it; -}; - -var $create = function create(it, P) { - return P === undefined ? _create(it) : $defineProperties(_create(it), P); -}; - -var $propertyIsEnumerable = function propertyIsEnumerable(key) { - var E = isEnum.call(this, key = toPrimitive(key, true)); - if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; -}; - -var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { - it = toIObject(it); - key = toPrimitive(key, true); - if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; - var D = gOPD(it, key); - if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; - return D; -}; - -var $getOwnPropertyNames = function getOwnPropertyNames(it) { - var names = gOPN(toIObject(it)); - var result = []; - var i = 0; - var key; - - while (names.length > i) { - if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); - } - - return result; -}; - -var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { - var IS_OP = it === ObjectProto; - var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); - var result = []; - var i = 0; - var key; - - while (names.length > i) { - if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); - } - - return result; -}; - -if (!USE_NATIVE) { - $Symbol = function _Symbol() { - if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - - var $set = function $set(value) { - if (this === ObjectProto) $set.call(OPSymbols, value); - if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - - if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { - configurable: true, - set: $set - }); - return wrap(tag); - }; - - redefine($Symbol[PROTOTYPE], 'toString', function toString() { - return this._k; - }); - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __w_pdfjs_require__(133).f = gOPNExt.f = $getOwnPropertyNames; - __w_pdfjs_require__(74).f = $propertyIsEnumerable; - $GOPS.f = $getOwnPropertySymbols; - - if (DESCRIPTORS && !__w_pdfjs_require__(25)) { - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function (name) { - return wrap(wks(name)); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { - Symbol: $Symbol -}); - -for (var es6Symbols = 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;) { - wks(es6Symbols[j++]); -} - -for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) { - wksDefine(wellKnownSymbols[k++]); -} - -$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - 'for': function _for(key) { - return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key); - }, - keyFor: function keyFor(sym) { - if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); - - for (var key in SymbolRegistry) { - if (SymbolRegistry[key] === sym) return key; - } - }, - useSetter: function useSetter() { - setter = true; - }, - useSimple: function useSimple() { - setter = false; - } -}); -$export($export.S + $export.F * !USE_NATIVE, 'Object', { - create: $create, - defineProperty: $defineProperty, - defineProperties: $defineProperties, - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - getOwnPropertyNames: $getOwnPropertyNames, - getOwnPropertySymbols: $getOwnPropertySymbols -}); -var FAILS_ON_PRIMITIVES = $fails(function () { - $GOPS.f(1); -}); -$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', { - getOwnPropertySymbols: function getOwnPropertySymbols(it) { - return $GOPS.f(toObject(it)); - } -}); -$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { - var S = $Symbol(); - return _stringify([S]) != '[null]' || _stringify({ - a: S - }) != '{}' || _stringify(Object(S)) != '{}'; -})), 'JSON', { - stringify: function stringify(it) { - var args = [it]; - var i = 1; - var replacer, $replacer; - - while (arguments.length > i) { - args.push(arguments[i++]); - } - - $replacer = replacer = args[1]; - if (!isObject(replacer) && it === undefined || isSymbol(it)) return; - if (!isArray(replacer)) replacer = function replacer(key, value) { - if (typeof $replacer == 'function') value = $replacer.call(this, key, value); - if (!isSymbol(value)) return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } -}); -$Symbol[PROTOTYPE][TO_PRIMITIVE] || __w_pdfjs_require__(10)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); -setToStringTag($Symbol, 'Symbol'); -setToStringTag(Math, 'Math', true); -setToStringTag(global.JSON, 'JSON', true); - -/***/ }), -/* 129 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -exports.f = __w_pdfjs_require__(33); - -/***/ }), -/* 130 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(8); - -var core = __w_pdfjs_require__(9); - -var LIBRARY = __w_pdfjs_require__(25); - -var wksExt = __w_pdfjs_require__(129); - -var defineProperty = __w_pdfjs_require__(11).f; - -module.exports = function (name) { - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { - value: wksExt.f(name) - }); -}; - -/***/ }), -/* 131 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var getKeys = __w_pdfjs_require__(55); - -var gOPS = __w_pdfjs_require__(73); - -var pIE = __w_pdfjs_require__(74); - -module.exports = function (it) { - var result = getKeys(it); - var getSymbols = gOPS.f; - - if (getSymbols) { - var symbols = getSymbols(it); - var isEnum = pIE.f; - var i = 0; - var key; - - while (symbols.length > i) { - if (isEnum.call(it, key = symbols[i++])) result.push(key); - } - } - - return result; -}; - -/***/ }), -/* 132 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var toIObject = __w_pdfjs_require__(43); - -var gOPN = __w_pdfjs_require__(133).f; - -var toString = {}.toString; -var windowNames = (typeof window === "undefined" ? "undefined" : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; - -var getWindowNames = function getWindowNames(it) { - try { - return gOPN(it); - } catch (e) { - return windowNames.slice(); - } -}; - -module.exports.f = function getOwnPropertyNames(it) { - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); -}; - -/***/ }), -/* 133 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $keys = __w_pdfjs_require__(56); - -var hiddenKeys = __w_pdfjs_require__(58).concat('length', 'prototype'); - -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return $keys(O, hiddenKeys); -}; - -/***/ }), -/* 134 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(135); - -module.exports = __w_pdfjs_require__(9).String.padStart; - -/***/ }), -/* 135 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var $pad = __w_pdfjs_require__(136); - -var userAgent = __w_pdfjs_require__(96); - -var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); -$export($export.P + $export.F * WEBKIT_BUG, 'String', { - padStart: function padStart(maxLength) { - return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true); - } -}); - -/***/ }), -/* 136 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toLength = __w_pdfjs_require__(28); - -var repeat = __w_pdfjs_require__(137); - -var defined = __w_pdfjs_require__(34); - -module.exports = function (that, maxLength, fillString, left) { - var S = String(defined(that)); - var stringLength = S.length; - var fillStr = fillString === undefined ? ' ' : String(fillString); - var intMaxLength = toLength(maxLength); - if (intMaxLength <= stringLength || fillStr == '') return S; - var fillLen = intMaxLength - stringLength; - var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length)); - if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen); - return left ? stringFiller + S : S + stringFiller; -}; - -/***/ }), -/* 137 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toInteger = __w_pdfjs_require__(29); - -var defined = __w_pdfjs_require__(34); - -module.exports = function repeat(count) { - var str = String(defined(this)); - var res = ''; - var n = toInteger(count); - if (n < 0 || n == Infinity) throw RangeError("Count can't be negative"); - - for (; n > 0; (n >>>= 1) && (str += str)) { - if (n & 1) res += str; - } - - return res; -}; - -/***/ }), -/* 138 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(139); - -module.exports = __w_pdfjs_require__(9).String.padEnd; - -/***/ }), -/* 139 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var $pad = __w_pdfjs_require__(136); - -var userAgent = __w_pdfjs_require__(96); - -var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); -$export($export.P + $export.F * WEBKIT_BUG, 'String', { - padEnd: function padEnd(maxLength) { - return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false); - } -}); - -/***/ }), -/* 140 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(141); - -module.exports = __w_pdfjs_require__(9).Object.values; - -/***/ }), -/* 141 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var $values = __w_pdfjs_require__(142)(false); - -$export($export.S, 'Object', { - values: function values(it) { - return $values(it); - } -}); - -/***/ }), -/* 142 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var DESCRIPTORS = __w_pdfjs_require__(15); - -var getKeys = __w_pdfjs_require__(55); - -var toIObject = __w_pdfjs_require__(43); - -var isEnum = __w_pdfjs_require__(74).f; - -module.exports = function (isEntries) { - return function (it) { - var O = toIObject(it); - var keys = getKeys(O); - var length = keys.length; - var i = 0; - var result = []; - var key; - - while (length > i) { - key = keys[i++]; - - if (!DESCRIPTORS || isEnum.call(O, key)) { - result.push(isEntries ? [key, O[key]] : O[key]); - } - } - - return result; - }; -}; - -/***/ }), -/* 143 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -{ - var isReadableStreamSupported = false; - - if (typeof ReadableStream !== 'undefined') { - try { - new ReadableStream({ - start: function start(controller) { - controller.close(); - } - }); - isReadableStreamSupported = true; - } catch (e) {} - } - - if (isReadableStreamSupported) { - exports.ReadableStream = ReadableStream; - } else { - exports.ReadableStream = __w_pdfjs_require__(144).ReadableStream; - } -} - -/***/ }), -/* 144 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } - -(function (e, a) { - for (var i in a) { - e[i] = a[i]; - } -})(exports, function (modules) { - var installedModules = {}; - - function __w_pdfjs_require__(moduleId) { - if (installedModules[moduleId]) return installedModules[moduleId].exports; - var module = installedModules[moduleId] = { - i: moduleId, - l: false, - exports: {} - }; - modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__); - module.l = true; - return module.exports; - } - - __w_pdfjs_require__.m = modules; - __w_pdfjs_require__.c = installedModules; - - __w_pdfjs_require__.i = function (value) { - return value; - }; - - __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 - }); - } - }; - - __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; - }; - - __w_pdfjs_require__.o = function (object, property) { - return Object.prototype.hasOwnProperty.call(object, property); - }; - - __w_pdfjs_require__.p = ""; - return __w_pdfjs_require__(__w_pdfjs_require__.s = 7); -}([function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { - return _typeof2(obj); - } : function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); - }; - - var _require = __w_pdfjs_require__(1), - assert = _require.assert; - - function IsPropertyKey(argument) { - return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol'; - } - - exports.typeIsObject = function (x) { - return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function'; - }; - - exports.createDataProperty = function (o, p, v) { - assert(exports.typeIsObject(o)); - Object.defineProperty(o, p, { - value: v, - writable: true, - enumerable: true, - configurable: true - }); - }; - - exports.createArrayFromList = function (elements) { - return elements.slice(); - }; - - exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) { - new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset); - }; - - exports.CreateIterResultObject = function (value, done) { - assert(typeof done === 'boolean'); - var obj = {}; - Object.defineProperty(obj, 'value', { - value: value, - enumerable: true, - writable: true, - configurable: true - }); - Object.defineProperty(obj, 'done', { - value: done, - enumerable: true, - writable: true, - configurable: true - }); - return obj; - }; - - exports.IsFiniteNonNegativeNumber = function (v) { - if (Number.isNaN(v)) { - return false; - } - - if (v === Infinity) { - return false; - } - - if (v < 0) { - return false; - } - - return true; - }; - - function Call(F, V, args) { - if (typeof F !== 'function') { - throw new TypeError('Argument is not a function'); - } - - return Function.prototype.apply.call(F, V, args); - } - - exports.InvokeOrNoop = function (O, P, args) { - assert(O !== undefined); - assert(IsPropertyKey(P)); - assert(Array.isArray(args)); - var method = O[P]; - - if (method === undefined) { - return undefined; - } - - return Call(method, O, args); - }; - - exports.PromiseInvokeOrNoop = function (O, P, args) { - assert(O !== undefined); - assert(IsPropertyKey(P)); - assert(Array.isArray(args)); - - try { - return Promise.resolve(exports.InvokeOrNoop(O, P, args)); - } catch (returnValueE) { - return Promise.reject(returnValueE); - } - }; - - exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) { - assert(O !== undefined); - assert(IsPropertyKey(P)); - assert(Array.isArray(args)); - assert(Array.isArray(argsF)); - var method = void 0; - - try { - method = O[P]; - } catch (methodE) { - return Promise.reject(methodE); - } - - if (method === undefined) { - return F.apply(null, argsF); - } - - try { - return Promise.resolve(Call(method, O, args)); - } catch (e) { - return Promise.reject(e); - } - }; - - exports.TransferArrayBuffer = function (O) { - return O.slice(); - }; - - exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) { - highWaterMark = Number(highWaterMark); - - if (Number.isNaN(highWaterMark) || highWaterMark < 0) { - throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN'); - } - - return highWaterMark; - }; - - exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) { - if (size !== undefined && typeof size !== 'function') { - throw new TypeError('size property of a queuing strategy must be a function'); - } - - highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark); - return { - size: size, - highWaterMark: highWaterMark - }; - }; -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - function rethrowAssertionErrorRejection(e) { - if (e && e.constructor === AssertionError) { - setTimeout(function () { - throw e; - }, 0); - } - } - - function AssertionError(message) { - this.name = 'AssertionError'; - this.message = message || ''; - this.stack = new Error().stack; - } - - AssertionError.prototype = Object.create(Error.prototype); - AssertionError.prototype.constructor = AssertionError; - - function assert(value, message) { - if (!value) { - throw new AssertionError(message); - } - } - - module.exports = { - rethrowAssertionErrorRejection: rethrowAssertionErrorRejection, - AssertionError: AssertionError, - assert: assert - }; -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var _createClass = function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; - }(); - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - var _require = __w_pdfjs_require__(0), - InvokeOrNoop = _require.InvokeOrNoop, - PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, - ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, - typeIsObject = _require.typeIsObject; - - var _require2 = __w_pdfjs_require__(1), - assert = _require2.assert, - rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection; - - var _require3 = __w_pdfjs_require__(3), - DequeueValue = _require3.DequeueValue, - EnqueueValueWithSize = _require3.EnqueueValueWithSize, - PeekQueueValue = _require3.PeekQueueValue, - ResetQueue = _require3.ResetQueue; - - var WritableStream = function () { - function WritableStream() { - var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - size = _ref.size, - _ref$highWaterMark = _ref.highWaterMark, - highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark; - - _classCallCheck(this, WritableStream); - - this._state = 'writable'; - this._storedError = undefined; - this._writer = undefined; - this._writableStreamController = undefined; - this._writeRequests = []; - this._inFlightWriteRequest = undefined; - this._closeRequest = undefined; - this._inFlightCloseRequest = undefined; - this._pendingAbortRequest = undefined; - this._backpressure = false; - var type = underlyingSink.type; - - if (type !== undefined) { - throw new RangeError('Invalid type is specified'); - } - - this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark); - - this._writableStreamController.__startSteps(); - } - - _createClass(WritableStream, [{ - key: 'abort', - value: function abort(reason) { - if (IsWritableStream(this) === false) { - return Promise.reject(streamBrandCheckException('abort')); - } - - if (IsWritableStreamLocked(this) === true) { - return Promise.reject(new TypeError('Cannot abort a stream that already has a writer')); - } - - return WritableStreamAbort(this, reason); - } - }, { - key: 'getWriter', - value: function getWriter() { - if (IsWritableStream(this) === false) { - throw streamBrandCheckException('getWriter'); - } - - return AcquireWritableStreamDefaultWriter(this); - } - }, { - key: 'locked', - get: function get() { - if (IsWritableStream(this) === false) { - throw streamBrandCheckException('locked'); - } - - return IsWritableStreamLocked(this); - } - }]); - - return WritableStream; - }(); - - module.exports = { - AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter, - IsWritableStream: IsWritableStream, - IsWritableStreamLocked: IsWritableStreamLocked, - WritableStream: WritableStream, - WritableStreamAbort: WritableStreamAbort, - WritableStreamDefaultControllerError: WritableStreamDefaultControllerError, - WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation, - WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease, - WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite, - WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight - }; - - function AcquireWritableStreamDefaultWriter(stream) { - return new WritableStreamDefaultWriter(stream); - } - - function IsWritableStream(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) { - return false; - } - - return true; - } - - function IsWritableStreamLocked(stream) { - assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams'); - - if (stream._writer === undefined) { - return false; - } - - return true; - } - - function WritableStreamAbort(stream, reason) { - var state = stream._state; - - if (state === 'closed') { - return Promise.resolve(undefined); - } - - if (state === 'errored') { - return Promise.reject(stream._storedError); - } - - var error = new TypeError('Requested to abort'); - - if (stream._pendingAbortRequest !== undefined) { - return Promise.reject(error); - } - - assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring'); - var wasAlreadyErroring = false; - - if (state === 'erroring') { - wasAlreadyErroring = true; - reason = undefined; - } - - var promise = new Promise(function (resolve, reject) { - stream._pendingAbortRequest = { - _resolve: resolve, - _reject: reject, - _reason: reason, - _wasAlreadyErroring: wasAlreadyErroring - }; - }); - - if (wasAlreadyErroring === false) { - WritableStreamStartErroring(stream, error); - } - - return promise; - } - - function WritableStreamAddWriteRequest(stream) { - assert(IsWritableStreamLocked(stream) === true); - assert(stream._state === 'writable'); - var promise = new Promise(function (resolve, reject) { - var writeRequest = { - _resolve: resolve, - _reject: reject - }; - - stream._writeRequests.push(writeRequest); - }); - return promise; - } - - function WritableStreamDealWithRejection(stream, error) { - var state = stream._state; - - if (state === 'writable') { - WritableStreamStartErroring(stream, error); - return; - } - - assert(state === 'erroring'); - WritableStreamFinishErroring(stream); - } - - function WritableStreamStartErroring(stream, reason) { - assert(stream._storedError === undefined, 'stream._storedError === undefined'); - assert(stream._state === 'writable', 'state must be writable'); - var controller = stream._writableStreamController; - assert(controller !== undefined, 'controller must not be undefined'); - stream._state = 'erroring'; - stream._storedError = reason; - var writer = stream._writer; - - if (writer !== undefined) { - WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason); - } - - if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) { - WritableStreamFinishErroring(stream); - } - } - - function WritableStreamFinishErroring(stream) { - assert(stream._state === 'erroring', 'stream._state === erroring'); - assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false'); - stream._state = 'errored'; - - stream._writableStreamController.__errorSteps(); - - var storedError = stream._storedError; - - for (var i = 0; i < stream._writeRequests.length; i++) { - var writeRequest = stream._writeRequests[i]; - - writeRequest._reject(storedError); - } - - stream._writeRequests = []; - - if (stream._pendingAbortRequest === undefined) { - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - return; - } - - var abortRequest = stream._pendingAbortRequest; - stream._pendingAbortRequest = undefined; - - if (abortRequest._wasAlreadyErroring === true) { - abortRequest._reject(storedError); - - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - return; - } - - var promise = stream._writableStreamController.__abortSteps(abortRequest._reason); - - promise.then(function () { - abortRequest._resolve(); - - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - }, function (reason) { - abortRequest._reject(reason); - - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - }); - } - - function WritableStreamFinishInFlightWrite(stream) { - assert(stream._inFlightWriteRequest !== undefined); - - stream._inFlightWriteRequest._resolve(undefined); - - stream._inFlightWriteRequest = undefined; - } - - function WritableStreamFinishInFlightWriteWithError(stream, error) { - assert(stream._inFlightWriteRequest !== undefined); - - stream._inFlightWriteRequest._reject(error); - - stream._inFlightWriteRequest = undefined; - assert(stream._state === 'writable' || stream._state === 'erroring'); - WritableStreamDealWithRejection(stream, error); - } - - function WritableStreamFinishInFlightClose(stream) { - assert(stream._inFlightCloseRequest !== undefined); - - stream._inFlightCloseRequest._resolve(undefined); - - stream._inFlightCloseRequest = undefined; - var state = stream._state; - assert(state === 'writable' || state === 'erroring'); - - if (state === 'erroring') { - stream._storedError = undefined; - - if (stream._pendingAbortRequest !== undefined) { - stream._pendingAbortRequest._resolve(); - - stream._pendingAbortRequest = undefined; - } - } - - stream._state = 'closed'; - var writer = stream._writer; - - if (writer !== undefined) { - defaultWriterClosedPromiseResolve(writer); - } - - assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined'); - assert(stream._storedError === undefined, 'stream._storedError === undefined'); - } - - function WritableStreamFinishInFlightCloseWithError(stream, error) { - assert(stream._inFlightCloseRequest !== undefined); - - stream._inFlightCloseRequest._reject(error); - - stream._inFlightCloseRequest = undefined; - assert(stream._state === 'writable' || stream._state === 'erroring'); - - if (stream._pendingAbortRequest !== undefined) { - stream._pendingAbortRequest._reject(error); - - stream._pendingAbortRequest = undefined; - } - - WritableStreamDealWithRejection(stream, error); - } - - function WritableStreamCloseQueuedOrInFlight(stream) { - if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) { - return false; - } - - return true; - } - - function WritableStreamHasOperationMarkedInFlight(stream) { - if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) { - return false; - } - - return true; - } - - function WritableStreamMarkCloseRequestInFlight(stream) { - assert(stream._inFlightCloseRequest === undefined); - assert(stream._closeRequest !== undefined); - stream._inFlightCloseRequest = stream._closeRequest; - stream._closeRequest = undefined; - } - - function WritableStreamMarkFirstWriteRequestInFlight(stream) { - assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request'); - assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty'); - stream._inFlightWriteRequest = stream._writeRequests.shift(); - } - - function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) { - assert(stream._state === 'errored', '_stream_.[[state]] is `"errored"`'); - - if (stream._closeRequest !== undefined) { - assert(stream._inFlightCloseRequest === undefined); - - stream._closeRequest._reject(stream._storedError); - - stream._closeRequest = undefined; - } - - var writer = stream._writer; - - if (writer !== undefined) { - defaultWriterClosedPromiseReject(writer, stream._storedError); - - writer._closedPromise["catch"](function () {}); - } - } - - function WritableStreamUpdateBackpressure(stream, backpressure) { - assert(stream._state === 'writable'); - assert(WritableStreamCloseQueuedOrInFlight(stream) === false); - var writer = stream._writer; - - if (writer !== undefined && backpressure !== stream._backpressure) { - if (backpressure === true) { - defaultWriterReadyPromiseReset(writer); - } else { - assert(backpressure === false); - defaultWriterReadyPromiseResolve(writer); - } - } - - stream._backpressure = backpressure; - } - - var WritableStreamDefaultWriter = function () { - function WritableStreamDefaultWriter(stream) { - _classCallCheck(this, WritableStreamDefaultWriter); - - if (IsWritableStream(stream) === false) { - throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance'); - } - - if (IsWritableStreamLocked(stream) === true) { - throw new TypeError('This stream has already been locked for exclusive writing by another writer'); - } - - this._ownerWritableStream = stream; - stream._writer = this; - var state = stream._state; - - if (state === 'writable') { - if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) { - defaultWriterReadyPromiseInitialize(this); - } else { - defaultWriterReadyPromiseInitializeAsResolved(this); - } - - defaultWriterClosedPromiseInitialize(this); - } else if (state === 'erroring') { - defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError); - - this._readyPromise["catch"](function () {}); - - defaultWriterClosedPromiseInitialize(this); - } else if (state === 'closed') { - defaultWriterReadyPromiseInitializeAsResolved(this); - defaultWriterClosedPromiseInitializeAsResolved(this); - } else { - assert(state === 'errored', 'state must be errored'); - var storedError = stream._storedError; - defaultWriterReadyPromiseInitializeAsRejected(this, storedError); - - this._readyPromise["catch"](function () {}); - - defaultWriterClosedPromiseInitializeAsRejected(this, storedError); - - this._closedPromise["catch"](function () {}); - } - } - - _createClass(WritableStreamDefaultWriter, [{ - key: 'abort', - value: function abort(reason) { - if (IsWritableStreamDefaultWriter(this) === false) { - return Promise.reject(defaultWriterBrandCheckException('abort')); - } - - if (this._ownerWritableStream === undefined) { - return Promise.reject(defaultWriterLockException('abort')); - } - - return WritableStreamDefaultWriterAbort(this, reason); - } - }, { - key: 'close', - value: function close() { - if (IsWritableStreamDefaultWriter(this) === false) { - return Promise.reject(defaultWriterBrandCheckException('close')); - } - - var stream = this._ownerWritableStream; - - if (stream === undefined) { - return Promise.reject(defaultWriterLockException('close')); - } - - if (WritableStreamCloseQueuedOrInFlight(stream) === true) { - return Promise.reject(new TypeError('cannot close an already-closing stream')); - } - - return WritableStreamDefaultWriterClose(this); - } - }, { - key: 'releaseLock', - value: function releaseLock() { - if (IsWritableStreamDefaultWriter(this) === false) { - throw defaultWriterBrandCheckException('releaseLock'); - } - - var stream = this._ownerWritableStream; - - if (stream === undefined) { - return; - } - - assert(stream._writer !== undefined); - WritableStreamDefaultWriterRelease(this); - } - }, { - key: 'write', - value: function write(chunk) { - if (IsWritableStreamDefaultWriter(this) === false) { - return Promise.reject(defaultWriterBrandCheckException('write')); - } - - if (this._ownerWritableStream === undefined) { - return Promise.reject(defaultWriterLockException('write to')); - } - - return WritableStreamDefaultWriterWrite(this, chunk); - } - }, { - key: 'closed', - get: function get() { - if (IsWritableStreamDefaultWriter(this) === false) { - return Promise.reject(defaultWriterBrandCheckException('closed')); - } - - return this._closedPromise; - } - }, { - key: 'desiredSize', - get: function get() { - if (IsWritableStreamDefaultWriter(this) === false) { - throw defaultWriterBrandCheckException('desiredSize'); - } - - if (this._ownerWritableStream === undefined) { - throw defaultWriterLockException('desiredSize'); - } - - return WritableStreamDefaultWriterGetDesiredSize(this); - } - }, { - key: 'ready', - get: function get() { - if (IsWritableStreamDefaultWriter(this) === false) { - return Promise.reject(defaultWriterBrandCheckException('ready')); - } - - return this._readyPromise; - } - }]); - - return WritableStreamDefaultWriter; - }(); - - function IsWritableStreamDefaultWriter(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) { - return false; - } - - return true; - } - - function WritableStreamDefaultWriterAbort(writer, reason) { - var stream = writer._ownerWritableStream; - assert(stream !== undefined); - return WritableStreamAbort(stream, reason); - } - - function WritableStreamDefaultWriterClose(writer) { - var stream = writer._ownerWritableStream; - assert(stream !== undefined); - var state = stream._state; - - if (state === 'closed' || state === 'errored') { - return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed')); - } - - assert(state === 'writable' || state === 'erroring'); - assert(WritableStreamCloseQueuedOrInFlight(stream) === false); - var promise = new Promise(function (resolve, reject) { - var closeRequest = { - _resolve: resolve, - _reject: reject - }; - stream._closeRequest = closeRequest; - }); - - if (stream._backpressure === true && state === 'writable') { - defaultWriterReadyPromiseResolve(writer); - } - - WritableStreamDefaultControllerClose(stream._writableStreamController); - return promise; - } - - function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) { - var stream = writer._ownerWritableStream; - assert(stream !== undefined); - var state = stream._state; - - if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { - return Promise.resolve(); - } - - if (state === 'errored') { - return Promise.reject(stream._storedError); - } - - assert(state === 'writable' || state === 'erroring'); - return WritableStreamDefaultWriterClose(writer); - } - - function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) { - if (writer._closedPromiseState === 'pending') { - defaultWriterClosedPromiseReject(writer, error); - } else { - defaultWriterClosedPromiseResetToRejected(writer, error); - } - - writer._closedPromise["catch"](function () {}); - } - - function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) { - if (writer._readyPromiseState === 'pending') { - defaultWriterReadyPromiseReject(writer, error); - } else { - defaultWriterReadyPromiseResetToRejected(writer, error); - } - - writer._readyPromise["catch"](function () {}); - } - - function WritableStreamDefaultWriterGetDesiredSize(writer) { - var stream = writer._ownerWritableStream; - var state = stream._state; - - if (state === 'errored' || state === 'erroring') { - return null; - } - - if (state === 'closed') { - return 0; - } - - return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController); - } - - function WritableStreamDefaultWriterRelease(writer) { - var stream = writer._ownerWritableStream; - assert(stream !== undefined); - assert(stream._writer === writer); - var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\'s closedness'); - WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError); - WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError); - stream._writer = undefined; - writer._ownerWritableStream = undefined; - } - - function WritableStreamDefaultWriterWrite(writer, chunk) { - var stream = writer._ownerWritableStream; - assert(stream !== undefined); - var controller = stream._writableStreamController; - var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk); - - if (stream !== writer._ownerWritableStream) { - return Promise.reject(defaultWriterLockException('write to')); - } - - var state = stream._state; - - if (state === 'errored') { - return Promise.reject(stream._storedError); - } - - if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { - return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to')); - } - - if (state === 'erroring') { - return Promise.reject(stream._storedError); - } - - assert(state === 'writable'); - var promise = WritableStreamAddWriteRequest(stream); - WritableStreamDefaultControllerWrite(controller, chunk, chunkSize); - return promise; - } - - var WritableStreamDefaultController = function () { - function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) { - _classCallCheck(this, WritableStreamDefaultController); - - if (IsWritableStream(stream) === false) { - throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance'); - } - - if (stream._writableStreamController !== undefined) { - throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor'); - } - - this._controlledWritableStream = stream; - this._underlyingSink = underlyingSink; - this._queue = undefined; - this._queueTotalSize = undefined; - ResetQueue(this); - this._started = false; - var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); - this._strategySize = normalizedStrategy.size; - this._strategyHWM = normalizedStrategy.highWaterMark; - var backpressure = WritableStreamDefaultControllerGetBackpressure(this); - WritableStreamUpdateBackpressure(stream, backpressure); - } - - _createClass(WritableStreamDefaultController, [{ - key: 'error', - value: function error(e) { - if (IsWritableStreamDefaultController(this) === false) { - throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController'); - } - - var state = this._controlledWritableStream._state; - - if (state !== 'writable') { - return; - } - - WritableStreamDefaultControllerError(this, e); - } - }, { - key: '__abortSteps', - value: function __abortSteps(reason) { - return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]); - } - }, { - key: '__errorSteps', - value: function __errorSteps() { - ResetQueue(this); - } - }, { - key: '__startSteps', - value: function __startSteps() { - var _this = this; - - var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]); - var stream = this._controlledWritableStream; - Promise.resolve(startResult).then(function () { - assert(stream._state === 'writable' || stream._state === 'erroring'); - _this._started = true; - WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this); - }, function (r) { - assert(stream._state === 'writable' || stream._state === 'erroring'); - _this._started = true; - WritableStreamDealWithRejection(stream, r); - })["catch"](rethrowAssertionErrorRejection); - } - }]); - - return WritableStreamDefaultController; - }(); - - function WritableStreamDefaultControllerClose(controller) { - EnqueueValueWithSize(controller, 'close', 0); - WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); - } - - function WritableStreamDefaultControllerGetChunkSize(controller, chunk) { - var strategySize = controller._strategySize; - - if (strategySize === undefined) { - return 1; - } - - try { - return strategySize(chunk); - } catch (chunkSizeE) { - WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); - return 1; - } - } - - function WritableStreamDefaultControllerGetDesiredSize(controller) { - return controller._strategyHWM - controller._queueTotalSize; - } - - function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) { - var writeRecord = { - chunk: chunk - }; - - try { - EnqueueValueWithSize(controller, writeRecord, chunkSize); - } catch (enqueueE) { - WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); - return; - } - - var stream = controller._controlledWritableStream; - - if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') { - var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); - WritableStreamUpdateBackpressure(stream, backpressure); - } - - WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); - } - - function IsWritableStreamDefaultController(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) { - return false; - } - - return true; - } - - function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) { - var stream = controller._controlledWritableStream; - - if (controller._started === false) { - return; - } - - if (stream._inFlightWriteRequest !== undefined) { - return; - } - - var state = stream._state; - - if (state === 'closed' || state === 'errored') { - return; - } - - if (state === 'erroring') { - WritableStreamFinishErroring(stream); - return; - } - - if (controller._queue.length === 0) { - return; - } - - var writeRecord = PeekQueueValue(controller); - - if (writeRecord === 'close') { - WritableStreamDefaultControllerProcessClose(controller); - } else { - WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk); - } - } - - function WritableStreamDefaultControllerErrorIfNeeded(controller, error) { - if (controller._controlledWritableStream._state === 'writable') { - WritableStreamDefaultControllerError(controller, error); - } - } - - function WritableStreamDefaultControllerProcessClose(controller) { - var stream = controller._controlledWritableStream; - WritableStreamMarkCloseRequestInFlight(stream); - DequeueValue(controller); - assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued'); - var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []); - sinkClosePromise.then(function () { - WritableStreamFinishInFlightClose(stream); - }, function (reason) { - WritableStreamFinishInFlightCloseWithError(stream, reason); - })["catch"](rethrowAssertionErrorRejection); - } - - function WritableStreamDefaultControllerProcessWrite(controller, chunk) { - var stream = controller._controlledWritableStream; - WritableStreamMarkFirstWriteRequestInFlight(stream); - var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]); - sinkWritePromise.then(function () { - WritableStreamFinishInFlightWrite(stream); - var state = stream._state; - assert(state === 'writable' || state === 'erroring'); - DequeueValue(controller); - - if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') { - var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); - WritableStreamUpdateBackpressure(stream, backpressure); - } - - WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); - }, function (reason) { - WritableStreamFinishInFlightWriteWithError(stream, reason); - })["catch"](rethrowAssertionErrorRejection); - } - - function WritableStreamDefaultControllerGetBackpressure(controller) { - var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller); - return desiredSize <= 0; - } - - function WritableStreamDefaultControllerError(controller, error) { - var stream = controller._controlledWritableStream; - assert(stream._state === 'writable'); - WritableStreamStartErroring(stream, error); - } - - function streamBrandCheckException(name) { - return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream'); - } - - function defaultWriterBrandCheckException(name) { - return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter'); - } - - function defaultWriterLockException(name) { - return new TypeError('Cannot ' + name + ' a stream using a released writer'); - } - - function defaultWriterClosedPromiseInitialize(writer) { - writer._closedPromise = new Promise(function (resolve, reject) { - writer._closedPromise_resolve = resolve; - writer._closedPromise_reject = reject; - writer._closedPromiseState = 'pending'; - }); - } - - function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) { - writer._closedPromise = Promise.reject(reason); - writer._closedPromise_resolve = undefined; - writer._closedPromise_reject = undefined; - writer._closedPromiseState = 'rejected'; - } - - function defaultWriterClosedPromiseInitializeAsResolved(writer) { - writer._closedPromise = Promise.resolve(undefined); - writer._closedPromise_resolve = undefined; - writer._closedPromise_reject = undefined; - writer._closedPromiseState = 'resolved'; - } - - function defaultWriterClosedPromiseReject(writer, reason) { - assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); - assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); - assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); - - writer._closedPromise_reject(reason); - - writer._closedPromise_resolve = undefined; - writer._closedPromise_reject = undefined; - writer._closedPromiseState = 'rejected'; - } - - function defaultWriterClosedPromiseResetToRejected(writer, reason) { - assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined'); - assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined'); - assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending'); - writer._closedPromise = Promise.reject(reason); - writer._closedPromiseState = 'rejected'; - } - - function defaultWriterClosedPromiseResolve(writer) { - assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); - assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); - assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); - - writer._closedPromise_resolve(undefined); - - writer._closedPromise_resolve = undefined; - writer._closedPromise_reject = undefined; - writer._closedPromiseState = 'resolved'; - } - - function defaultWriterReadyPromiseInitialize(writer) { - writer._readyPromise = new Promise(function (resolve, reject) { - writer._readyPromise_resolve = resolve; - writer._readyPromise_reject = reject; - }); - writer._readyPromiseState = 'pending'; - } - - function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) { - writer._readyPromise = Promise.reject(reason); - writer._readyPromise_resolve = undefined; - writer._readyPromise_reject = undefined; - writer._readyPromiseState = 'rejected'; - } - - function defaultWriterReadyPromiseInitializeAsResolved(writer) { - writer._readyPromise = Promise.resolve(undefined); - writer._readyPromise_resolve = undefined; - writer._readyPromise_reject = undefined; - writer._readyPromiseState = 'fulfilled'; - } - - function defaultWriterReadyPromiseReject(writer, reason) { - assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); - assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); - - writer._readyPromise_reject(reason); - - writer._readyPromise_resolve = undefined; - writer._readyPromise_reject = undefined; - writer._readyPromiseState = 'rejected'; - } - - function defaultWriterReadyPromiseReset(writer) { - assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); - assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); - writer._readyPromise = new Promise(function (resolve, reject) { - writer._readyPromise_resolve = resolve; - writer._readyPromise_reject = reject; - }); - writer._readyPromiseState = 'pending'; - } - - function defaultWriterReadyPromiseResetToRejected(writer, reason) { - assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); - assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); - writer._readyPromise = Promise.reject(reason); - writer._readyPromiseState = 'rejected'; - } - - function defaultWriterReadyPromiseResolve(writer) { - assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); - assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); - - writer._readyPromise_resolve(undefined); - - writer._readyPromise_resolve = undefined; - writer._readyPromise_reject = undefined; - writer._readyPromiseState = 'fulfilled'; - } -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var _require = __w_pdfjs_require__(0), - IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber; - - var _require2 = __w_pdfjs_require__(1), - assert = _require2.assert; - - exports.DequeueValue = function (container) { - assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); - assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.'); - - var pair = container._queue.shift(); - - container._queueTotalSize -= pair.size; - - if (container._queueTotalSize < 0) { - container._queueTotalSize = 0; - } - - return pair.value; - }; - - exports.EnqueueValueWithSize = function (container, value, size) { - assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].'); - size = Number(size); - - if (!IsFiniteNonNegativeNumber(size)) { - throw new RangeError('Size must be a finite, non-NaN, non-negative number.'); - } - - container._queue.push({ - value: value, - size: size - }); - - container._queueTotalSize += size; - }; - - exports.PeekQueueValue = function (container) { - assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); - assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.'); - var pair = container._queue[0]; - return pair.value; - }; - - exports.ResetQueue = function (container) { - assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].'); - container._queue = []; - container._queueTotalSize = 0; - }; -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var _createClass = function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; - }(); - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - var _require = __w_pdfjs_require__(0), - ArrayBufferCopy = _require.ArrayBufferCopy, - CreateIterResultObject = _require.CreateIterResultObject, - IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber, - InvokeOrNoop = _require.InvokeOrNoop, - PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, - TransferArrayBuffer = _require.TransferArrayBuffer, - ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, - ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark; - - var _require2 = __w_pdfjs_require__(0), - createArrayFromList = _require2.createArrayFromList, - createDataProperty = _require2.createDataProperty, - typeIsObject = _require2.typeIsObject; - - var _require3 = __w_pdfjs_require__(1), - assert = _require3.assert, - rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection; - - var _require4 = __w_pdfjs_require__(3), - DequeueValue = _require4.DequeueValue, - EnqueueValueWithSize = _require4.EnqueueValueWithSize, - ResetQueue = _require4.ResetQueue; - - var _require5 = __w_pdfjs_require__(2), - AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter, - IsWritableStream = _require5.IsWritableStream, - IsWritableStreamLocked = _require5.IsWritableStreamLocked, - WritableStreamAbort = _require5.WritableStreamAbort, - WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation, - WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease, - WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite, - WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight; - - var ReadableStream = function () { - function ReadableStream() { - var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - size = _ref.size, - highWaterMark = _ref.highWaterMark; - - _classCallCheck(this, ReadableStream); - - this._state = 'readable'; - this._reader = undefined; - this._storedError = undefined; - this._disturbed = false; - this._readableStreamController = undefined; - var type = underlyingSource.type; - var typeString = String(type); - - if (typeString === 'bytes') { - if (highWaterMark === undefined) { - highWaterMark = 0; - } - - this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark); - } else if (type === undefined) { - if (highWaterMark === undefined) { - highWaterMark = 1; - } - - this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark); - } else { - throw new RangeError('Invalid type is specified'); - } - } - - _createClass(ReadableStream, [{ - key: 'cancel', - value: function cancel(reason) { - if (IsReadableStream(this) === false) { - return Promise.reject(streamBrandCheckException('cancel')); - } - - if (IsReadableStreamLocked(this) === true) { - return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader')); - } - - return ReadableStreamCancel(this, reason); - } - }, { - key: 'getReader', - value: function getReader() { - var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - mode = _ref2.mode; - - if (IsReadableStream(this) === false) { - throw streamBrandCheckException('getReader'); - } - - if (mode === undefined) { - return AcquireReadableStreamDefaultReader(this); - } - - mode = String(mode); - - if (mode === 'byob') { - return AcquireReadableStreamBYOBReader(this); - } - - throw new RangeError('Invalid mode is specified'); - } - }, { - key: 'pipeThrough', - value: function pipeThrough(_ref3, options) { - var writable = _ref3.writable, - readable = _ref3.readable; - var promise = this.pipeTo(writable, options); - ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise); - return readable; - } - }, { - key: 'pipeTo', - value: function pipeTo(dest) { - var _this = this; - - var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - preventClose = _ref4.preventClose, - preventAbort = _ref4.preventAbort, - preventCancel = _ref4.preventCancel; - - if (IsReadableStream(this) === false) { - return Promise.reject(streamBrandCheckException('pipeTo')); - } - - if (IsWritableStream(dest) === false) { - return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\'s first argument must be a WritableStream')); - } - - preventClose = Boolean(preventClose); - preventAbort = Boolean(preventAbort); - preventCancel = Boolean(preventCancel); - - if (IsReadableStreamLocked(this) === true) { - return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream')); - } - - if (IsWritableStreamLocked(dest) === true) { - return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream')); - } - - var reader = AcquireReadableStreamDefaultReader(this); - var writer = AcquireWritableStreamDefaultWriter(dest); - var shuttingDown = false; - var currentWrite = Promise.resolve(); - return new Promise(function (resolve, reject) { - function pipeLoop() { - currentWrite = Promise.resolve(); - - if (shuttingDown === true) { - return Promise.resolve(); - } - - return writer._readyPromise.then(function () { - return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) { - var value = _ref5.value, - done = _ref5.done; - - if (done === true) { - return; - } - - currentWrite = WritableStreamDefaultWriterWrite(writer, value)["catch"](function () {}); - }); - }).then(pipeLoop); - } - - isOrBecomesErrored(_this, reader._closedPromise, function (storedError) { - if (preventAbort === false) { - shutdownWithAction(function () { - return WritableStreamAbort(dest, storedError); - }, true, storedError); - } else { - shutdown(true, storedError); - } - }); - isOrBecomesErrored(dest, writer._closedPromise, function (storedError) { - if (preventCancel === false) { - shutdownWithAction(function () { - return ReadableStreamCancel(_this, storedError); - }, true, storedError); - } else { - shutdown(true, storedError); - } - }); - isOrBecomesClosed(_this, reader._closedPromise, function () { - if (preventClose === false) { - shutdownWithAction(function () { - return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); - }); - } else { - shutdown(); - } - }); - - if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') { - var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it'); - - if (preventCancel === false) { - shutdownWithAction(function () { - return ReadableStreamCancel(_this, destClosed); - }, true, destClosed); - } else { - shutdown(true, destClosed); - } - } - - pipeLoop()["catch"](function (err) { - currentWrite = Promise.resolve(); - rethrowAssertionErrorRejection(err); - }); - - function waitForWritesToFinish() { - var oldCurrentWrite = currentWrite; - return currentWrite.then(function () { - return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; - }); - } - - function isOrBecomesErrored(stream, promise, action) { - if (stream._state === 'errored') { - action(stream._storedError); - } else { - promise["catch"](action)["catch"](rethrowAssertionErrorRejection); - } - } - - function isOrBecomesClosed(stream, promise, action) { - if (stream._state === 'closed') { - action(); - } else { - promise.then(action)["catch"](rethrowAssertionErrorRejection); - } - } - - function shutdownWithAction(action, originalIsError, originalError) { - if (shuttingDown === true) { - return; - } - - shuttingDown = true; - - if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { - waitForWritesToFinish().then(doTheRest); - } else { - doTheRest(); - } - - function doTheRest() { - action().then(function () { - return finalize(originalIsError, originalError); - }, function (newError) { - return finalize(true, newError); - })["catch"](rethrowAssertionErrorRejection); - } - } - - function shutdown(isError, error) { - if (shuttingDown === true) { - return; - } - - shuttingDown = true; - - if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { - waitForWritesToFinish().then(function () { - return finalize(isError, error); - })["catch"](rethrowAssertionErrorRejection); - } else { - finalize(isError, error); - } - } - - function finalize(isError, error) { - WritableStreamDefaultWriterRelease(writer); - ReadableStreamReaderGenericRelease(reader); - - if (isError) { - reject(error); - } else { - resolve(undefined); - } - } - }); - } - }, { - key: 'tee', - value: function tee() { - if (IsReadableStream(this) === false) { - throw streamBrandCheckException('tee'); - } - - var branches = ReadableStreamTee(this, false); - return createArrayFromList(branches); - } - }, { - key: 'locked', - get: function get() { - if (IsReadableStream(this) === false) { - throw streamBrandCheckException('locked'); - } - - return IsReadableStreamLocked(this); - } - }]); - - return ReadableStream; - }(); - - module.exports = { - ReadableStream: ReadableStream, - IsReadableStreamDisturbed: IsReadableStreamDisturbed, - ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose, - ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue, - ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError, - ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize - }; - - function AcquireReadableStreamBYOBReader(stream) { - return new ReadableStreamBYOBReader(stream); - } - - function AcquireReadableStreamDefaultReader(stream) { - return new ReadableStreamDefaultReader(stream); - } - - function IsReadableStream(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) { - return false; - } - - return true; - } - - function IsReadableStreamDisturbed(stream) { - assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams'); - return stream._disturbed; - } - - function IsReadableStreamLocked(stream) { - assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams'); - - if (stream._reader === undefined) { - return false; - } - - return true; - } - - function ReadableStreamTee(stream, cloneForBranch2) { - assert(IsReadableStream(stream) === true); - assert(typeof cloneForBranch2 === 'boolean'); - var reader = AcquireReadableStreamDefaultReader(stream); - var teeState = { - closedOrErrored: false, - canceled1: false, - canceled2: false, - reason1: undefined, - reason2: undefined - }; - teeState.promise = new Promise(function (resolve) { - teeState._resolve = resolve; - }); - var pull = create_ReadableStreamTeePullFunction(); - pull._reader = reader; - pull._teeState = teeState; - pull._cloneForBranch2 = cloneForBranch2; - var cancel1 = create_ReadableStreamTeeBranch1CancelFunction(); - cancel1._stream = stream; - cancel1._teeState = teeState; - var cancel2 = create_ReadableStreamTeeBranch2CancelFunction(); - cancel2._stream = stream; - cancel2._teeState = teeState; - var underlyingSource1 = Object.create(Object.prototype); - createDataProperty(underlyingSource1, 'pull', pull); - createDataProperty(underlyingSource1, 'cancel', cancel1); - var branch1Stream = new ReadableStream(underlyingSource1); - var underlyingSource2 = Object.create(Object.prototype); - createDataProperty(underlyingSource2, 'pull', pull); - createDataProperty(underlyingSource2, 'cancel', cancel2); - var branch2Stream = new ReadableStream(underlyingSource2); - pull._branch1 = branch1Stream._readableStreamController; - pull._branch2 = branch2Stream._readableStreamController; - - reader._closedPromise["catch"](function (r) { - if (teeState.closedOrErrored === true) { - return; - } - - ReadableStreamDefaultControllerError(pull._branch1, r); - ReadableStreamDefaultControllerError(pull._branch2, r); - teeState.closedOrErrored = true; - }); - - return [branch1Stream, branch2Stream]; - } - - function create_ReadableStreamTeePullFunction() { - function f() { - var reader = f._reader, - branch1 = f._branch1, - branch2 = f._branch2, - teeState = f._teeState; - return ReadableStreamDefaultReaderRead(reader).then(function (result) { - assert(typeIsObject(result)); - var value = result.value; - var done = result.done; - assert(typeof done === 'boolean'); - - if (done === true && teeState.closedOrErrored === false) { - if (teeState.canceled1 === false) { - ReadableStreamDefaultControllerClose(branch1); - } - - if (teeState.canceled2 === false) { - ReadableStreamDefaultControllerClose(branch2); - } - - teeState.closedOrErrored = true; - } - - if (teeState.closedOrErrored === true) { - return; - } - - var value1 = value; - var value2 = value; - - if (teeState.canceled1 === false) { - ReadableStreamDefaultControllerEnqueue(branch1, value1); - } - - if (teeState.canceled2 === false) { - ReadableStreamDefaultControllerEnqueue(branch2, value2); - } - }); - } - - return f; - } - - function create_ReadableStreamTeeBranch1CancelFunction() { - function f(reason) { - var stream = f._stream, - teeState = f._teeState; - teeState.canceled1 = true; - teeState.reason1 = reason; - - if (teeState.canceled2 === true) { - var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); - var cancelResult = ReadableStreamCancel(stream, compositeReason); - - teeState._resolve(cancelResult); - } - - return teeState.promise; - } - - return f; - } - - function create_ReadableStreamTeeBranch2CancelFunction() { - function f(reason) { - var stream = f._stream, - teeState = f._teeState; - teeState.canceled2 = true; - teeState.reason2 = reason; - - if (teeState.canceled1 === true) { - var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); - var cancelResult = ReadableStreamCancel(stream, compositeReason); - - teeState._resolve(cancelResult); - } - - return teeState.promise; - } - - return f; - } - - function ReadableStreamAddReadIntoRequest(stream) { - assert(IsReadableStreamBYOBReader(stream._reader) === true); - assert(stream._state === 'readable' || stream._state === 'closed'); - var promise = new Promise(function (resolve, reject) { - var readIntoRequest = { - _resolve: resolve, - _reject: reject - }; - - stream._reader._readIntoRequests.push(readIntoRequest); - }); - return promise; - } - - function ReadableStreamAddReadRequest(stream) { - assert(IsReadableStreamDefaultReader(stream._reader) === true); - assert(stream._state === 'readable'); - var promise = new Promise(function (resolve, reject) { - var readRequest = { - _resolve: resolve, - _reject: reject - }; - - stream._reader._readRequests.push(readRequest); - }); - return promise; - } - - function ReadableStreamCancel(stream, reason) { - stream._disturbed = true; - - if (stream._state === 'closed') { - return Promise.resolve(undefined); - } - - if (stream._state === 'errored') { - return Promise.reject(stream._storedError); - } - - ReadableStreamClose(stream); - - var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason); - - return sourceCancelPromise.then(function () { - return undefined; - }); - } - - function ReadableStreamClose(stream) { - assert(stream._state === 'readable'); - stream._state = 'closed'; - var reader = stream._reader; - - if (reader === undefined) { - return undefined; - } - - if (IsReadableStreamDefaultReader(reader) === true) { - for (var i = 0; i < reader._readRequests.length; i++) { - var _resolve = reader._readRequests[i]._resolve; - - _resolve(CreateIterResultObject(undefined, true)); - } - - reader._readRequests = []; - } - - defaultReaderClosedPromiseResolve(reader); - return undefined; - } - - function ReadableStreamError(stream, e) { - assert(IsReadableStream(stream) === true, 'stream must be ReadableStream'); - assert(stream._state === 'readable', 'state must be readable'); - stream._state = 'errored'; - stream._storedError = e; - var reader = stream._reader; - - if (reader === undefined) { - return undefined; - } - - if (IsReadableStreamDefaultReader(reader) === true) { - for (var i = 0; i < reader._readRequests.length; i++) { - var readRequest = reader._readRequests[i]; - - readRequest._reject(e); - } - - reader._readRequests = []; - } else { - assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader'); - - for (var _i = 0; _i < reader._readIntoRequests.length; _i++) { - var readIntoRequest = reader._readIntoRequests[_i]; - - readIntoRequest._reject(e); - } - - reader._readIntoRequests = []; - } - - defaultReaderClosedPromiseReject(reader, e); - - reader._closedPromise["catch"](function () {}); - } - - function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) { - var reader = stream._reader; - assert(reader._readIntoRequests.length > 0); - - var readIntoRequest = reader._readIntoRequests.shift(); - - readIntoRequest._resolve(CreateIterResultObject(chunk, done)); - } - - function ReadableStreamFulfillReadRequest(stream, chunk, done) { - var reader = stream._reader; - assert(reader._readRequests.length > 0); - - var readRequest = reader._readRequests.shift(); - - readRequest._resolve(CreateIterResultObject(chunk, done)); - } - - function ReadableStreamGetNumReadIntoRequests(stream) { - return stream._reader._readIntoRequests.length; - } - - function ReadableStreamGetNumReadRequests(stream) { - return stream._reader._readRequests.length; - } - - function ReadableStreamHasBYOBReader(stream) { - var reader = stream._reader; - - if (reader === undefined) { - return false; - } - - if (IsReadableStreamBYOBReader(reader) === false) { - return false; - } - - return true; - } - - function ReadableStreamHasDefaultReader(stream) { - var reader = stream._reader; - - if (reader === undefined) { - return false; - } - - if (IsReadableStreamDefaultReader(reader) === false) { - return false; - } - - return true; - } - - var ReadableStreamDefaultReader = function () { - function ReadableStreamDefaultReader(stream) { - _classCallCheck(this, ReadableStreamDefaultReader); - - if (IsReadableStream(stream) === false) { - throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance'); - } - - if (IsReadableStreamLocked(stream) === true) { - throw new TypeError('This stream has already been locked for exclusive reading by another reader'); - } - - ReadableStreamReaderGenericInitialize(this, stream); - this._readRequests = []; - } - - _createClass(ReadableStreamDefaultReader, [{ - key: 'cancel', - value: function cancel(reason) { - if (IsReadableStreamDefaultReader(this) === false) { - return Promise.reject(defaultReaderBrandCheckException('cancel')); - } - - if (this._ownerReadableStream === undefined) { - return Promise.reject(readerLockException('cancel')); - } - - return ReadableStreamReaderGenericCancel(this, reason); - } - }, { - key: 'read', - value: function read() { - if (IsReadableStreamDefaultReader(this) === false) { - return Promise.reject(defaultReaderBrandCheckException('read')); - } - - if (this._ownerReadableStream === undefined) { - return Promise.reject(readerLockException('read from')); - } - - return ReadableStreamDefaultReaderRead(this); - } - }, { - key: 'releaseLock', - value: function releaseLock() { - if (IsReadableStreamDefaultReader(this) === false) { - throw defaultReaderBrandCheckException('releaseLock'); - } - - if (this._ownerReadableStream === undefined) { - return; - } - - if (this._readRequests.length > 0) { - throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); - } - - ReadableStreamReaderGenericRelease(this); - } - }, { - key: 'closed', - get: function get() { - if (IsReadableStreamDefaultReader(this) === false) { - return Promise.reject(defaultReaderBrandCheckException('closed')); - } - - return this._closedPromise; - } - }]); - - return ReadableStreamDefaultReader; - }(); - - var ReadableStreamBYOBReader = function () { - function ReadableStreamBYOBReader(stream) { - _classCallCheck(this, ReadableStreamBYOBReader); - - if (!IsReadableStream(stream)) { - throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source'); - } - - if (IsReadableByteStreamController(stream._readableStreamController) === false) { - throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source'); - } - - if (IsReadableStreamLocked(stream)) { - throw new TypeError('This stream has already been locked for exclusive reading by another reader'); - } - - ReadableStreamReaderGenericInitialize(this, stream); - this._readIntoRequests = []; - } - - _createClass(ReadableStreamBYOBReader, [{ - key: 'cancel', - value: function cancel(reason) { - if (!IsReadableStreamBYOBReader(this)) { - return Promise.reject(byobReaderBrandCheckException('cancel')); - } - - if (this._ownerReadableStream === undefined) { - return Promise.reject(readerLockException('cancel')); - } - - return ReadableStreamReaderGenericCancel(this, reason); - } - }, { - key: 'read', - value: function read(view) { - if (!IsReadableStreamBYOBReader(this)) { - return Promise.reject(byobReaderBrandCheckException('read')); - } - - if (this._ownerReadableStream === undefined) { - return Promise.reject(readerLockException('read from')); - } - - if (!ArrayBuffer.isView(view)) { - return Promise.reject(new TypeError('view must be an array buffer view')); - } - - if (view.byteLength === 0) { - return Promise.reject(new TypeError('view must have non-zero byteLength')); - } - - return ReadableStreamBYOBReaderRead(this, view); - } - }, { - key: 'releaseLock', - value: function releaseLock() { - if (!IsReadableStreamBYOBReader(this)) { - throw byobReaderBrandCheckException('releaseLock'); - } - - if (this._ownerReadableStream === undefined) { - return; - } - - if (this._readIntoRequests.length > 0) { - throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); - } - - ReadableStreamReaderGenericRelease(this); - } - }, { - key: 'closed', - get: function get() { - if (!IsReadableStreamBYOBReader(this)) { - return Promise.reject(byobReaderBrandCheckException('closed')); - } - - return this._closedPromise; - } - }]); - - return ReadableStreamBYOBReader; - }(); - - function IsReadableStreamBYOBReader(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) { - return false; - } - - return true; - } - - function IsReadableStreamDefaultReader(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) { - return false; - } - - return true; - } - - function ReadableStreamReaderGenericInitialize(reader, stream) { - reader._ownerReadableStream = stream; - stream._reader = reader; - - if (stream._state === 'readable') { - defaultReaderClosedPromiseInitialize(reader); - } else if (stream._state === 'closed') { - defaultReaderClosedPromiseInitializeAsResolved(reader); - } else { - assert(stream._state === 'errored', 'state must be errored'); - defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError); - - reader._closedPromise["catch"](function () {}); - } - } - - function ReadableStreamReaderGenericCancel(reader, reason) { - var stream = reader._ownerReadableStream; - assert(stream !== undefined); - return ReadableStreamCancel(stream, reason); - } - - function ReadableStreamReaderGenericRelease(reader) { - assert(reader._ownerReadableStream !== undefined); - assert(reader._ownerReadableStream._reader === reader); - - if (reader._ownerReadableStream._state === 'readable') { - defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); - } else { - defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); - } - - reader._closedPromise["catch"](function () {}); - - reader._ownerReadableStream._reader = undefined; - reader._ownerReadableStream = undefined; - } - - function ReadableStreamBYOBReaderRead(reader, view) { - var stream = reader._ownerReadableStream; - assert(stream !== undefined); - stream._disturbed = true; - - if (stream._state === 'errored') { - return Promise.reject(stream._storedError); - } - - return ReadableByteStreamControllerPullInto(stream._readableStreamController, view); - } - - function ReadableStreamDefaultReaderRead(reader) { - var stream = reader._ownerReadableStream; - assert(stream !== undefined); - stream._disturbed = true; - - if (stream._state === 'closed') { - return Promise.resolve(CreateIterResultObject(undefined, true)); - } - - if (stream._state === 'errored') { - return Promise.reject(stream._storedError); - } - - assert(stream._state === 'readable'); - return stream._readableStreamController.__pullSteps(); - } - - var ReadableStreamDefaultController = function () { - function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) { - _classCallCheck(this, ReadableStreamDefaultController); - - if (IsReadableStream(stream) === false) { - throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance'); - } - - if (stream._readableStreamController !== undefined) { - throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor'); - } - - this._controlledReadableStream = stream; - this._underlyingSource = underlyingSource; - this._queue = undefined; - this._queueTotalSize = undefined; - ResetQueue(this); - this._started = false; - this._closeRequested = false; - this._pullAgain = false; - this._pulling = false; - var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); - this._strategySize = normalizedStrategy.size; - this._strategyHWM = normalizedStrategy.highWaterMark; - var controller = this; - var startResult = InvokeOrNoop(underlyingSource, 'start', [this]); - Promise.resolve(startResult).then(function () { - controller._started = true; - assert(controller._pulling === false); - assert(controller._pullAgain === false); - ReadableStreamDefaultControllerCallPullIfNeeded(controller); - }, function (r) { - ReadableStreamDefaultControllerErrorIfNeeded(controller, r); - })["catch"](rethrowAssertionErrorRejection); - } - - _createClass(ReadableStreamDefaultController, [{ - key: 'close', - value: function close() { - if (IsReadableStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('close'); - } - - if (this._closeRequested === true) { - throw new TypeError('The stream has already been closed; do not close it again!'); - } - - var state = this._controlledReadableStream._state; - - if (state !== 'readable') { - throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); - } - - ReadableStreamDefaultControllerClose(this); - } - }, { - key: 'enqueue', - value: function enqueue(chunk) { - if (IsReadableStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('enqueue'); - } - - if (this._closeRequested === true) { - throw new TypeError('stream is closed or draining'); - } - - var state = this._controlledReadableStream._state; - - if (state !== 'readable') { - throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); - } - - return ReadableStreamDefaultControllerEnqueue(this, chunk); - } - }, { - key: 'error', - value: function error(e) { - if (IsReadableStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('error'); - } - - var stream = this._controlledReadableStream; - - if (stream._state !== 'readable') { - throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); - } - - ReadableStreamDefaultControllerError(this, e); - } - }, { - key: '__cancelSteps', - value: function __cancelSteps(reason) { - ResetQueue(this); - return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]); - } - }, { - key: '__pullSteps', - value: function __pullSteps() { - var stream = this._controlledReadableStream; - - if (this._queue.length > 0) { - var chunk = DequeueValue(this); - - if (this._closeRequested === true && this._queue.length === 0) { - ReadableStreamClose(stream); - } else { - ReadableStreamDefaultControllerCallPullIfNeeded(this); - } - - return Promise.resolve(CreateIterResultObject(chunk, false)); - } - - var pendingPromise = ReadableStreamAddReadRequest(stream); - ReadableStreamDefaultControllerCallPullIfNeeded(this); - return pendingPromise; - } - }, { - key: 'desiredSize', - get: function get() { - if (IsReadableStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('desiredSize'); - } - - return ReadableStreamDefaultControllerGetDesiredSize(this); - } - }]); - - return ReadableStreamDefaultController; - }(); - - function IsReadableStreamDefaultController(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) { - return false; - } - - return true; - } - - function ReadableStreamDefaultControllerCallPullIfNeeded(controller) { - var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller); - - if (shouldPull === false) { - return undefined; - } - - if (controller._pulling === true) { - controller._pullAgain = true; - return undefined; - } - - assert(controller._pullAgain === false); - controller._pulling = true; - var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]); - pullPromise.then(function () { - controller._pulling = false; - - if (controller._pullAgain === true) { - controller._pullAgain = false; - return ReadableStreamDefaultControllerCallPullIfNeeded(controller); - } - - return undefined; - }, function (e) { - ReadableStreamDefaultControllerErrorIfNeeded(controller, e); - })["catch"](rethrowAssertionErrorRejection); - return undefined; - } - - function ReadableStreamDefaultControllerShouldCallPull(controller) { - var stream = controller._controlledReadableStream; - - if (stream._state === 'closed' || stream._state === 'errored') { - return false; - } - - if (controller._closeRequested === true) { - return false; - } - - if (controller._started === false) { - return false; - } - - if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { - return true; - } - - var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); - - if (desiredSize > 0) { - return true; - } - - return false; - } - - function ReadableStreamDefaultControllerClose(controller) { - var stream = controller._controlledReadableStream; - assert(controller._closeRequested === false); - assert(stream._state === 'readable'); - controller._closeRequested = true; - - if (controller._queue.length === 0) { - ReadableStreamClose(stream); - } - } - - function ReadableStreamDefaultControllerEnqueue(controller, chunk) { - var stream = controller._controlledReadableStream; - assert(controller._closeRequested === false); - assert(stream._state === 'readable'); - - if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { - ReadableStreamFulfillReadRequest(stream, chunk, false); - } else { - var chunkSize = 1; - - if (controller._strategySize !== undefined) { - var strategySize = controller._strategySize; - - try { - chunkSize = strategySize(chunk); - } catch (chunkSizeE) { - ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); - throw chunkSizeE; - } - } - - try { - EnqueueValueWithSize(controller, chunk, chunkSize); - } catch (enqueueE) { - ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); - throw enqueueE; - } - } - - ReadableStreamDefaultControllerCallPullIfNeeded(controller); - return undefined; - } - - function ReadableStreamDefaultControllerError(controller, e) { - var stream = controller._controlledReadableStream; - assert(stream._state === 'readable'); - ResetQueue(controller); - ReadableStreamError(stream, e); - } - - function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) { - if (controller._controlledReadableStream._state === 'readable') { - ReadableStreamDefaultControllerError(controller, e); - } - } - - function ReadableStreamDefaultControllerGetDesiredSize(controller) { - var stream = controller._controlledReadableStream; - var state = stream._state; - - if (state === 'errored') { - return null; - } - - if (state === 'closed') { - return 0; - } - - return controller._strategyHWM - controller._queueTotalSize; - } - - var ReadableStreamBYOBRequest = function () { - function ReadableStreamBYOBRequest(controller, view) { - _classCallCheck(this, ReadableStreamBYOBRequest); - - this._associatedReadableByteStreamController = controller; - this._view = view; - } - - _createClass(ReadableStreamBYOBRequest, [{ - key: 'respond', - value: function respond(bytesWritten) { - if (IsReadableStreamBYOBRequest(this) === false) { - throw byobRequestBrandCheckException('respond'); - } - - if (this._associatedReadableByteStreamController === undefined) { - throw new TypeError('This BYOB request has been invalidated'); - } - - ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten); - } - }, { - key: 'respondWithNewView', - value: function respondWithNewView(view) { - if (IsReadableStreamBYOBRequest(this) === false) { - throw byobRequestBrandCheckException('respond'); - } - - if (this._associatedReadableByteStreamController === undefined) { - throw new TypeError('This BYOB request has been invalidated'); - } - - if (!ArrayBuffer.isView(view)) { - throw new TypeError('You can only respond with array buffer views'); - } - - ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view); - } - }, { - key: 'view', - get: function get() { - return this._view; - } - }]); - - return ReadableStreamBYOBRequest; - }(); - - var ReadableByteStreamController = function () { - function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) { - _classCallCheck(this, ReadableByteStreamController); - - if (IsReadableStream(stream) === false) { - throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source'); - } - - if (stream._readableStreamController !== undefined) { - throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source'); - } - - this._controlledReadableStream = stream; - this._underlyingByteSource = underlyingByteSource; - this._pullAgain = false; - this._pulling = false; - ReadableByteStreamControllerClearPendingPullIntos(this); - this._queue = this._queueTotalSize = undefined; - ResetQueue(this); - this._closeRequested = false; - this._started = false; - this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark); - var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize; - - if (autoAllocateChunkSize !== undefined) { - if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) { - throw new RangeError('autoAllocateChunkSize must be a positive integer'); - } - } - - this._autoAllocateChunkSize = autoAllocateChunkSize; - this._pendingPullIntos = []; - var controller = this; - var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]); - Promise.resolve(startResult).then(function () { - controller._started = true; - assert(controller._pulling === false); - assert(controller._pullAgain === false); - ReadableByteStreamControllerCallPullIfNeeded(controller); - }, function (r) { - if (stream._state === 'readable') { - ReadableByteStreamControllerError(controller, r); - } - })["catch"](rethrowAssertionErrorRejection); - } - - _createClass(ReadableByteStreamController, [{ - key: 'close', - value: function close() { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('close'); - } - - if (this._closeRequested === true) { - throw new TypeError('The stream has already been closed; do not close it again!'); - } - - var state = this._controlledReadableStream._state; - - if (state !== 'readable') { - throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); - } - - ReadableByteStreamControllerClose(this); - } - }, { - key: 'enqueue', - value: function enqueue(chunk) { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('enqueue'); - } - - if (this._closeRequested === true) { - throw new TypeError('stream is closed or draining'); - } - - var state = this._controlledReadableStream._state; - - if (state !== 'readable') { - throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); - } - - if (!ArrayBuffer.isView(chunk)) { - throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController'); - } - - ReadableByteStreamControllerEnqueue(this, chunk); - } - }, { - key: 'error', - value: function error(e) { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('error'); - } - - var stream = this._controlledReadableStream; - - if (stream._state !== 'readable') { - throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); - } - - ReadableByteStreamControllerError(this, e); - } - }, { - key: '__cancelSteps', - value: function __cancelSteps(reason) { - if (this._pendingPullIntos.length > 0) { - var firstDescriptor = this._pendingPullIntos[0]; - firstDescriptor.bytesFilled = 0; - } - - ResetQueue(this); - return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]); - } - }, { - key: '__pullSteps', - value: function __pullSteps() { - var stream = this._controlledReadableStream; - assert(ReadableStreamHasDefaultReader(stream) === true); - - if (this._queueTotalSize > 0) { - assert(ReadableStreamGetNumReadRequests(stream) === 0); - - var entry = this._queue.shift(); - - this._queueTotalSize -= entry.byteLength; - ReadableByteStreamControllerHandleQueueDrain(this); - var view = void 0; - - try { - view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength); - } catch (viewE) { - return Promise.reject(viewE); - } - - return Promise.resolve(CreateIterResultObject(view, false)); - } - - var autoAllocateChunkSize = this._autoAllocateChunkSize; - - if (autoAllocateChunkSize !== undefined) { - var buffer = void 0; - - try { - buffer = new ArrayBuffer(autoAllocateChunkSize); - } catch (bufferE) { - return Promise.reject(bufferE); - } - - var pullIntoDescriptor = { - buffer: buffer, - byteOffset: 0, - byteLength: autoAllocateChunkSize, - bytesFilled: 0, - elementSize: 1, - ctor: Uint8Array, - readerType: 'default' - }; - - this._pendingPullIntos.push(pullIntoDescriptor); - } - - var promise = ReadableStreamAddReadRequest(stream); - ReadableByteStreamControllerCallPullIfNeeded(this); - return promise; - } - }, { - key: 'byobRequest', - get: function get() { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('byobRequest'); - } - - if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) { - var firstDescriptor = this._pendingPullIntos[0]; - var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled); - this._byobRequest = new ReadableStreamBYOBRequest(this, view); - } - - return this._byobRequest; - } - }, { - key: 'desiredSize', - get: function get() { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('desiredSize'); - } - - return ReadableByteStreamControllerGetDesiredSize(this); - } - }]); - - return ReadableByteStreamController; - }(); - - function IsReadableByteStreamController(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) { - return false; - } - - return true; - } - - function IsReadableStreamBYOBRequest(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) { - return false; - } - - return true; - } - - function ReadableByteStreamControllerCallPullIfNeeded(controller) { - var shouldPull = ReadableByteStreamControllerShouldCallPull(controller); - - if (shouldPull === false) { - return undefined; - } - - if (controller._pulling === true) { - controller._pullAgain = true; - return undefined; - } - - assert(controller._pullAgain === false); - controller._pulling = true; - var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]); - pullPromise.then(function () { - controller._pulling = false; - - if (controller._pullAgain === true) { - controller._pullAgain = false; - ReadableByteStreamControllerCallPullIfNeeded(controller); - } - }, function (e) { - if (controller._controlledReadableStream._state === 'readable') { - ReadableByteStreamControllerError(controller, e); - } - })["catch"](rethrowAssertionErrorRejection); - return undefined; - } - - function ReadableByteStreamControllerClearPendingPullIntos(controller) { - ReadableByteStreamControllerInvalidateBYOBRequest(controller); - controller._pendingPullIntos = []; - } - - function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) { - assert(stream._state !== 'errored', 'state must not be errored'); - var done = false; - - if (stream._state === 'closed') { - assert(pullIntoDescriptor.bytesFilled === 0); - done = true; - } - - var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); - - if (pullIntoDescriptor.readerType === 'default') { - ReadableStreamFulfillReadRequest(stream, filledView, done); - } else { - assert(pullIntoDescriptor.readerType === 'byob'); - ReadableStreamFulfillReadIntoRequest(stream, filledView, done); - } - } - - function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) { - var bytesFilled = pullIntoDescriptor.bytesFilled; - var elementSize = pullIntoDescriptor.elementSize; - assert(bytesFilled <= pullIntoDescriptor.byteLength); - assert(bytesFilled % elementSize === 0); - return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize); - } - - function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) { - controller._queue.push({ - buffer: buffer, - byteOffset: byteOffset, - byteLength: byteLength - }); - - controller._queueTotalSize += byteLength; - } - - function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) { - var elementSize = pullIntoDescriptor.elementSize; - var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize; - var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled); - var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy; - var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize; - var totalBytesToCopyRemaining = maxBytesToCopy; - var ready = false; - - if (maxAlignedBytes > currentAlignedBytes) { - totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled; - ready = true; - } - - var queue = controller._queue; - - while (totalBytesToCopyRemaining > 0) { - var headOfQueue = queue[0]; - var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength); - var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; - ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy); - - if (headOfQueue.byteLength === bytesToCopy) { - queue.shift(); - } else { - headOfQueue.byteOffset += bytesToCopy; - headOfQueue.byteLength -= bytesToCopy; - } - - controller._queueTotalSize -= bytesToCopy; - ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor); - totalBytesToCopyRemaining -= bytesToCopy; - } - - if (ready === false) { - assert(controller._queueTotalSize === 0, 'queue must be empty'); - assert(pullIntoDescriptor.bytesFilled > 0); - assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize); - } - - return ready; - } - - function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) { - assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor); - ReadableByteStreamControllerInvalidateBYOBRequest(controller); - pullIntoDescriptor.bytesFilled += size; - } - - function ReadableByteStreamControllerHandleQueueDrain(controller) { - assert(controller._controlledReadableStream._state === 'readable'); - - if (controller._queueTotalSize === 0 && controller._closeRequested === true) { - ReadableStreamClose(controller._controlledReadableStream); - } else { - ReadableByteStreamControllerCallPullIfNeeded(controller); - } - } - - function ReadableByteStreamControllerInvalidateBYOBRequest(controller) { - if (controller._byobRequest === undefined) { - return; - } - - controller._byobRequest._associatedReadableByteStreamController = undefined; - controller._byobRequest._view = undefined; - controller._byobRequest = undefined; - } - - function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) { - assert(controller._closeRequested === false); - - while (controller._pendingPullIntos.length > 0) { - if (controller._queueTotalSize === 0) { - return; - } - - var pullIntoDescriptor = controller._pendingPullIntos[0]; - - if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { - ReadableByteStreamControllerShiftPendingPullInto(controller); - ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); - } - } - } - - function ReadableByteStreamControllerPullInto(controller, view) { - var stream = controller._controlledReadableStream; - var elementSize = 1; - - if (view.constructor !== DataView) { - elementSize = view.constructor.BYTES_PER_ELEMENT; - } - - var ctor = view.constructor; - var pullIntoDescriptor = { - buffer: view.buffer, - byteOffset: view.byteOffset, - byteLength: view.byteLength, - bytesFilled: 0, - elementSize: elementSize, - ctor: ctor, - readerType: 'byob' - }; - - if (controller._pendingPullIntos.length > 0) { - pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); - - controller._pendingPullIntos.push(pullIntoDescriptor); - - return ReadableStreamAddReadIntoRequest(stream); - } - - if (stream._state === 'closed') { - var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0); - return Promise.resolve(CreateIterResultObject(emptyView, true)); - } - - if (controller._queueTotalSize > 0) { - if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { - var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); - ReadableByteStreamControllerHandleQueueDrain(controller); - return Promise.resolve(CreateIterResultObject(filledView, false)); - } - - if (controller._closeRequested === true) { - var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); - ReadableByteStreamControllerError(controller, e); - return Promise.reject(e); - } - } - - pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); - - controller._pendingPullIntos.push(pullIntoDescriptor); - - var promise = ReadableStreamAddReadIntoRequest(stream); - ReadableByteStreamControllerCallPullIfNeeded(controller); - return promise; - } - - function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) { - firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer); - assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0'); - var stream = controller._controlledReadableStream; - - if (ReadableStreamHasBYOBReader(stream) === true) { - while (ReadableStreamGetNumReadIntoRequests(stream) > 0) { - var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller); - ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor); - } - } - } - - function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) { - if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) { - throw new RangeError('bytesWritten out of range'); - } - - ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor); - - if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) { - return; - } - - ReadableByteStreamControllerShiftPendingPullInto(controller); - var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize; - - if (remainderSize > 0) { - var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; - var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end); - ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength); - } - - pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); - pullIntoDescriptor.bytesFilled -= remainderSize; - ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); - ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); - } - - function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) { - var firstDescriptor = controller._pendingPullIntos[0]; - var stream = controller._controlledReadableStream; - - if (stream._state === 'closed') { - if (bytesWritten !== 0) { - throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream'); - } - - ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor); - } else { - assert(stream._state === 'readable'); - ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor); - } - } - - function ReadableByteStreamControllerShiftPendingPullInto(controller) { - var descriptor = controller._pendingPullIntos.shift(); - - ReadableByteStreamControllerInvalidateBYOBRequest(controller); - return descriptor; - } - - function ReadableByteStreamControllerShouldCallPull(controller) { - var stream = controller._controlledReadableStream; - - if (stream._state !== 'readable') { - return false; - } - - if (controller._closeRequested === true) { - return false; - } - - if (controller._started === false) { - return false; - } - - if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { - return true; - } - - if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) { - return true; - } - - if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) { - return true; - } - - return false; - } - - function ReadableByteStreamControllerClose(controller) { - var stream = controller._controlledReadableStream; - assert(controller._closeRequested === false); - assert(stream._state === 'readable'); - - if (controller._queueTotalSize > 0) { - controller._closeRequested = true; - return; - } - - if (controller._pendingPullIntos.length > 0) { - var firstPendingPullInto = controller._pendingPullIntos[0]; - - if (firstPendingPullInto.bytesFilled > 0) { - var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); - ReadableByteStreamControllerError(controller, e); - throw e; - } - } - - ReadableStreamClose(stream); - } - - function ReadableByteStreamControllerEnqueue(controller, chunk) { - var stream = controller._controlledReadableStream; - assert(controller._closeRequested === false); - assert(stream._state === 'readable'); - var buffer = chunk.buffer; - var byteOffset = chunk.byteOffset; - var byteLength = chunk.byteLength; - var transferredBuffer = TransferArrayBuffer(buffer); - - if (ReadableStreamHasDefaultReader(stream) === true) { - if (ReadableStreamGetNumReadRequests(stream) === 0) { - ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); - } else { - assert(controller._queue.length === 0); - var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength); - ReadableStreamFulfillReadRequest(stream, transferredView, false); - } - } else if (ReadableStreamHasBYOBReader(stream) === true) { - ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); - ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); - } else { - assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked'); - ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); - } - } - - function ReadableByteStreamControllerError(controller, e) { - var stream = controller._controlledReadableStream; - assert(stream._state === 'readable'); - ReadableByteStreamControllerClearPendingPullIntos(controller); - ResetQueue(controller); - ReadableStreamError(stream, e); - } - - function ReadableByteStreamControllerGetDesiredSize(controller) { - var stream = controller._controlledReadableStream; - var state = stream._state; - - if (state === 'errored') { - return null; - } - - if (state === 'closed') { - return 0; - } - - return controller._strategyHWM - controller._queueTotalSize; - } - - function ReadableByteStreamControllerRespond(controller, bytesWritten) { - bytesWritten = Number(bytesWritten); - - if (IsFiniteNonNegativeNumber(bytesWritten) === false) { - throw new RangeError('bytesWritten must be a finite'); - } - - assert(controller._pendingPullIntos.length > 0); - ReadableByteStreamControllerRespondInternal(controller, bytesWritten); - } - - function ReadableByteStreamControllerRespondWithNewView(controller, view) { - assert(controller._pendingPullIntos.length > 0); - var firstDescriptor = controller._pendingPullIntos[0]; - - if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) { - throw new RangeError('The region specified by view does not match byobRequest'); - } - - if (firstDescriptor.byteLength !== view.byteLength) { - throw new RangeError('The buffer of view has different capacity than byobRequest'); - } - - firstDescriptor.buffer = view.buffer; - ReadableByteStreamControllerRespondInternal(controller, view.byteLength); - } - - function streamBrandCheckException(name) { - return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream'); - } - - function readerLockException(name) { - return new TypeError('Cannot ' + name + ' a stream using a released reader'); - } - - function defaultReaderBrandCheckException(name) { - return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader'); - } - - function defaultReaderClosedPromiseInitialize(reader) { - reader._closedPromise = new Promise(function (resolve, reject) { - reader._closedPromise_resolve = resolve; - reader._closedPromise_reject = reject; - }); - } - - function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) { - reader._closedPromise = Promise.reject(reason); - reader._closedPromise_resolve = undefined; - reader._closedPromise_reject = undefined; - } - - function defaultReaderClosedPromiseInitializeAsResolved(reader) { - reader._closedPromise = Promise.resolve(undefined); - reader._closedPromise_resolve = undefined; - reader._closedPromise_reject = undefined; - } - - function defaultReaderClosedPromiseReject(reader, reason) { - assert(reader._closedPromise_resolve !== undefined); - assert(reader._closedPromise_reject !== undefined); - - reader._closedPromise_reject(reason); - - reader._closedPromise_resolve = undefined; - reader._closedPromise_reject = undefined; - } - - function defaultReaderClosedPromiseResetToRejected(reader, reason) { - assert(reader._closedPromise_resolve === undefined); - assert(reader._closedPromise_reject === undefined); - reader._closedPromise = Promise.reject(reason); - } - - function defaultReaderClosedPromiseResolve(reader) { - assert(reader._closedPromise_resolve !== undefined); - assert(reader._closedPromise_reject !== undefined); - - reader._closedPromise_resolve(undefined); - - reader._closedPromise_resolve = undefined; - reader._closedPromise_reject = undefined; - } - - function byobReaderBrandCheckException(name) { - return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader'); - } - - function defaultControllerBrandCheckException(name) { - return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController'); - } - - function byobRequestBrandCheckException(name) { - return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest'); - } - - function byteStreamControllerBrandCheckException(name) { - return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController'); - } - - function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) { - try { - Promise.prototype.then.call(promise, undefined, function () {}); - } catch (e) {} - } -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var transformStream = __w_pdfjs_require__(6); - - var readableStream = __w_pdfjs_require__(4); - - var writableStream = __w_pdfjs_require__(2); - - exports.TransformStream = transformStream.TransformStream; - exports.ReadableStream = readableStream.ReadableStream; - exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed; - exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose; - exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue; - exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError; - exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize; - exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter; - exports.IsWritableStream = writableStream.IsWritableStream; - exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked; - exports.WritableStream = writableStream.WritableStream; - exports.WritableStreamAbort = writableStream.WritableStreamAbort; - exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError; - exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation; - exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease; - exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite; -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var _createClass = function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; - }(); - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - var _require = __w_pdfjs_require__(1), - assert = _require.assert; - - var _require2 = __w_pdfjs_require__(0), - InvokeOrNoop = _require2.InvokeOrNoop, - PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback, - PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop, - typeIsObject = _require2.typeIsObject; - - var _require3 = __w_pdfjs_require__(4), - ReadableStream = _require3.ReadableStream, - ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose, - ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue, - ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError, - ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize; - - var _require4 = __w_pdfjs_require__(2), - WritableStream = _require4.WritableStream, - WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError; - - function TransformStreamCloseReadable(transformStream) { - if (transformStream._errored === true) { - throw new TypeError('TransformStream is already errored'); - } - - if (transformStream._readableClosed === true) { - throw new TypeError('Readable side is already closed'); - } - - TransformStreamCloseReadableInternal(transformStream); - } - - function TransformStreamEnqueueToReadable(transformStream, chunk) { - if (transformStream._errored === true) { - throw new TypeError('TransformStream is already errored'); - } - - if (transformStream._readableClosed === true) { - throw new TypeError('Readable side is already closed'); - } - - var controller = transformStream._readableController; - - try { - ReadableStreamDefaultControllerEnqueue(controller, chunk); - } catch (e) { - transformStream._readableClosed = true; - TransformStreamErrorIfNeeded(transformStream, e); - throw transformStream._storedError; - } - - var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); - var maybeBackpressure = desiredSize <= 0; - - if (maybeBackpressure === true && transformStream._backpressure === false) { - TransformStreamSetBackpressure(transformStream, true); - } - } - - function TransformStreamError(transformStream, e) { - if (transformStream._errored === true) { - throw new TypeError('TransformStream is already errored'); - } - - TransformStreamErrorInternal(transformStream, e); - } - - function TransformStreamCloseReadableInternal(transformStream) { - assert(transformStream._errored === false); - assert(transformStream._readableClosed === false); - - try { - ReadableStreamDefaultControllerClose(transformStream._readableController); - } catch (e) { - assert(false); - } - - transformStream._readableClosed = true; - } - - function TransformStreamErrorIfNeeded(transformStream, e) { - if (transformStream._errored === false) { - TransformStreamErrorInternal(transformStream, e); - } - } - - function TransformStreamErrorInternal(transformStream, e) { - assert(transformStream._errored === false); - transformStream._errored = true; - transformStream._storedError = e; - - if (transformStream._writableDone === false) { - WritableStreamDefaultControllerError(transformStream._writableController, e); - } - - if (transformStream._readableClosed === false) { - ReadableStreamDefaultControllerError(transformStream._readableController, e); - } - } - - function TransformStreamReadableReadyPromise(transformStream) { - assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); - - if (transformStream._backpressure === false) { - return Promise.resolve(); - } - - assert(transformStream._backpressure === true, '_backpressure should have been initialized'); - return transformStream._backpressureChangePromise; - } - - function TransformStreamSetBackpressure(transformStream, backpressure) { - assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed'); - - if (transformStream._backpressureChangePromise !== undefined) { - transformStream._backpressureChangePromise_resolve(backpressure); - } - - transformStream._backpressureChangePromise = new Promise(function (resolve) { - transformStream._backpressureChangePromise_resolve = resolve; - }); - - transformStream._backpressureChangePromise.then(function (resolution) { - assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed'); - }); - - transformStream._backpressure = backpressure; - } - - function TransformStreamDefaultTransform(chunk, transformStreamController) { - var transformStream = transformStreamController._controlledTransformStream; - TransformStreamEnqueueToReadable(transformStream, chunk); - return Promise.resolve(); - } - - function TransformStreamTransform(transformStream, chunk) { - assert(transformStream._errored === false); - assert(transformStream._transforming === false); - assert(transformStream._backpressure === false); - transformStream._transforming = true; - var transformer = transformStream._transformer; - var controller = transformStream._transformStreamController; - var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]); - return transformPromise.then(function () { - transformStream._transforming = false; - return TransformStreamReadableReadyPromise(transformStream); - }, function (e) { - TransformStreamErrorIfNeeded(transformStream, e); - return Promise.reject(e); - }); - } - - function IsTransformStreamDefaultController(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) { - return false; - } - - return true; - } - - function IsTransformStream(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) { - return false; - } - - return true; - } - - var TransformStreamSink = function () { - function TransformStreamSink(transformStream, startPromise) { - _classCallCheck(this, TransformStreamSink); - - this._transformStream = transformStream; - this._startPromise = startPromise; - } - - _createClass(TransformStreamSink, [{ - key: 'start', - value: function start(c) { - var transformStream = this._transformStream; - transformStream._writableController = c; - return this._startPromise.then(function () { - return TransformStreamReadableReadyPromise(transformStream); - }); - } - }, { - key: 'write', - value: function write(chunk) { - var transformStream = this._transformStream; - return TransformStreamTransform(transformStream, chunk); - } - }, { - key: 'abort', - value: function abort() { - var transformStream = this._transformStream; - transformStream._writableDone = true; - TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted')); - } - }, { - key: 'close', - value: function close() { - var transformStream = this._transformStream; - assert(transformStream._transforming === false); - transformStream._writableDone = true; - var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]); - return flushPromise.then(function () { - if (transformStream._errored === true) { - return Promise.reject(transformStream._storedError); - } - - if (transformStream._readableClosed === false) { - TransformStreamCloseReadableInternal(transformStream); - } - - return Promise.resolve(); - })["catch"](function (r) { - TransformStreamErrorIfNeeded(transformStream, r); - return Promise.reject(transformStream._storedError); - }); - } - }]); - - return TransformStreamSink; - }(); - - var TransformStreamSource = function () { - function TransformStreamSource(transformStream, startPromise) { - _classCallCheck(this, TransformStreamSource); - - this._transformStream = transformStream; - this._startPromise = startPromise; - } - - _createClass(TransformStreamSource, [{ - key: 'start', - value: function start(c) { - var transformStream = this._transformStream; - transformStream._readableController = c; - return this._startPromise.then(function () { - assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); - - if (transformStream._backpressure === true) { - return Promise.resolve(); - } - - assert(transformStream._backpressure === false, '_backpressure should have been initialized'); - return transformStream._backpressureChangePromise; - }); - } - }, { - key: 'pull', - value: function pull() { - var transformStream = this._transformStream; - assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false'); - assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); - TransformStreamSetBackpressure(transformStream, false); - return transformStream._backpressureChangePromise; - } - }, { - key: 'cancel', - value: function cancel() { - var transformStream = this._transformStream; - transformStream._readableClosed = true; - TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled')); - } - }]); - - return TransformStreamSource; - }(); - - var TransformStreamDefaultController = function () { - function TransformStreamDefaultController(transformStream) { - _classCallCheck(this, TransformStreamDefaultController); - - if (IsTransformStream(transformStream) === false) { - throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance'); - } - - if (transformStream._transformStreamController !== undefined) { - throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor'); - } - - this._controlledTransformStream = transformStream; - } - - _createClass(TransformStreamDefaultController, [{ - key: 'enqueue', - value: function enqueue(chunk) { - if (IsTransformStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('enqueue'); - } - - TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk); - } - }, { - key: 'close', - value: function close() { - if (IsTransformStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('close'); - } - - TransformStreamCloseReadable(this._controlledTransformStream); - } - }, { - key: 'error', - value: function error(reason) { - if (IsTransformStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('error'); - } - - TransformStreamError(this._controlledTransformStream, reason); - } - }, { - key: 'desiredSize', - get: function get() { - if (IsTransformStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('desiredSize'); - } - - var transformStream = this._controlledTransformStream; - var readableController = transformStream._readableController; - return ReadableStreamDefaultControllerGetDesiredSize(readableController); - } - }]); - - return TransformStreamDefaultController; - }(); - - var TransformStream = function () { - function TransformStream() { - var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - _classCallCheck(this, TransformStream); - - this._transformer = transformer; - var readableStrategy = transformer.readableStrategy, - writableStrategy = transformer.writableStrategy; - this._transforming = false; - this._errored = false; - this._storedError = undefined; - this._writableController = undefined; - this._readableController = undefined; - this._transformStreamController = undefined; - this._writableDone = false; - this._readableClosed = false; - this._backpressure = undefined; - this._backpressureChangePromise = undefined; - this._backpressureChangePromise_resolve = undefined; - this._transformStreamController = new TransformStreamDefaultController(this); - var startPromise_resolve = void 0; - var startPromise = new Promise(function (resolve) { - startPromise_resolve = resolve; - }); - var source = new TransformStreamSource(this, startPromise); - this._readable = new ReadableStream(source, readableStrategy); - var sink = new TransformStreamSink(this, startPromise); - this._writable = new WritableStream(sink, writableStrategy); - assert(this._writableController !== undefined); - assert(this._readableController !== undefined); - var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController); - TransformStreamSetBackpressure(this, desiredSize <= 0); - var transformStream = this; - var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]); - startPromise_resolve(startResult); - startPromise["catch"](function (e) { - if (transformStream._errored === false) { - transformStream._errored = true; - transformStream._storedError = e; - } - }); - } - - _createClass(TransformStream, [{ - key: 'readable', - get: function get() { - if (IsTransformStream(this) === false) { - throw streamBrandCheckException('readable'); - } - - return this._readable; - } - }, { - key: 'writable', - get: function get() { - if (IsTransformStream(this) === false) { - throw streamBrandCheckException('writable'); - } - - return this._writable; - } - }]); - - return TransformStream; - }(); - - module.exports = { - TransformStream: TransformStream - }; - - function defaultControllerBrandCheckException(name) { - return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController'); - } - - function streamBrandCheckException(name) { - return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream'); - } -}, function (module, exports, __w_pdfjs_require__) { - module.exports = __w_pdfjs_require__(5); -}])); - -/***/ }), -/* 145 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -{ - var isURLSupported = 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'; - isURLSupported = u.href === 'http://a/c%20d'; - } - } catch (ex) {} - - if (isURLSupported) { - exports.URL = URL; - } else { - var PolyfillURL = __w_pdfjs_require__(146).URL; - - var OriginalURL = __w_pdfjs_require__(3).URL; - - if (OriginalURL) { - PolyfillURL.createObjectURL = function (blob) { - return OriginalURL.createObjectURL.apply(OriginalURL, arguments); - }; - - PolyfillURL.revokeObjectURL = function (url) { - OriginalURL.revokeObjectURL(url); - }; - } - - exports.URL = PolyfillURL; - } -} - -/***/ }), -/* 146 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -(function URLConstructorClosure() { - 'use strict'; - - 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 (c === EOF) { - 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 (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { - 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 (this._scheme !== 'file') { - this._scheme = base._scheme; - } - - if (c === EOF) { - 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 (this._scheme !== 'file' || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || nextNextC !== EOF && 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 (this._scheme !== 'file') { - 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 (this._password !== null) { - 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 (c !== '\t' && c !== '\n' && c !== '\r') { - 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 (c !== '\t' && c !== '\n' && c !== '\r') { - buffer += percentEscape(c); - } - - break; - - case 'query': - if (!stateOverride && c === '#') { - this._fragment = '#'; - state = 'fragment'; - } else if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { - this._query += percentEscapeQuery(c); - } - - break; - - case 'fragment': - if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { - 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 toString() { - return this.href; - }, - - get href() { - if (this._isInvalid) { - return this._url; - } - - var authority = ''; - - if (this._username !== '' || this._password !== null) { - authority = this._username + (this._password !== null ? ':' + this._password : '') + '@'; - } - - return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment; - }, - - set href(value) { - clear.call(this); - parse.call(this, value); - }, - - get protocol() { - return this._scheme + ':'; - }, - - set protocol(value) { - if (this._isInvalid) { - return; - } - - parse.call(this, value + ':', 'scheme start'); - }, - - get host() { - return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host; - }, - - set host(value) { - if (this._isInvalid || !this._isRelative) { - return; - } - - parse.call(this, value, 'host'); - }, - - get hostname() { - return this._host; - }, - - set hostname(value) { - if (this._isInvalid || !this._isRelative) { - return; - } - - parse.call(this, value, 'hostname'); - }, - - get port() { - return this._port; - }, - - set port(value) { - if (this._isInvalid || !this._isRelative) { - return; - } - - parse.call(this, value, 'port'); - }, - - get pathname() { - return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData; - }, - - set pathname(value) { - if (this._isInvalid || !this._isRelative) { - return; - } - - this._path = []; - parse.call(this, value, 'relative path start'); - }, - - get search() { - return this._isInvalid || !this._query || this._query === '?' ? '' : this._query; - }, - - set search(value) { - if (this._isInvalid || !this._isRelative) { - return; - } - - this._query = '?'; - - if (value[0] === '?') { - value = value.slice(1); - } - - parse.call(this, value, 'query'); - }, - - get hash() { - return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment; - }, - - set hash(value) { - if (this._isInvalid) { - return; - } - - this._fragment = '#'; - - if (value[0] === '#') { - value = value.slice(1); - } - - parse.call(this, value, 'fragment'); - }, - - get origin() { - var host; - - if (this._isInvalid || !this._scheme) { - return ''; - } - - switch (this._scheme) { - case 'data': - case 'file': - case 'javascript': - case 'mailto': - return 'null'; - - case 'blob': - try { - return new JURL(this._schemeData).origin || 'null'; - } catch (_) {} - - return 'null'; - } - - host = this.host; - - if (!host) { - return ''; - } - - return this._scheme + '://' + host; - } - - }; - exports.URL = JURL; -})(); - -/***/ }), -/* 147 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - Object.defineProperty(exports, "__esModule", { value: true }); @@ -9775,127 +1774,49 @@ exports.getDocument = getDocument; exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory; exports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(1); -var _display_utils = __w_pdfjs_require__(151); +var _font_loader = __w_pdfjs_require__(6); -var _font_loader = __w_pdfjs_require__(152); +var _node_utils = __w_pdfjs_require__(7); -var _api_compatibility = __w_pdfjs_require__(153); +var _annotation_storage = __w_pdfjs_require__(8); -var _canvas = __w_pdfjs_require__(154); +var _api_compatibility = __w_pdfjs_require__(9); -var _global_scope = _interopRequireDefault(__w_pdfjs_require__(3)); +var _canvas = __w_pdfjs_require__(10); -var _worker_options = __w_pdfjs_require__(156); +var _worker_options = __w_pdfjs_require__(12); -var _message_handler = __w_pdfjs_require__(157); +var _is_node = __w_pdfjs_require__(4); -var _metadata = __w_pdfjs_require__(158); +var _message_handler = __w_pdfjs_require__(13); -var _transport_stream = __w_pdfjs_require__(160); +var _metadata = __w_pdfjs_require__(14); -var _webgl = __w_pdfjs_require__(161); +var _optional_content_config = __w_pdfjs_require__(16); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +var _transport_stream = __w_pdfjs_require__(17); -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +var _webgl = __w_pdfjs_require__(18); -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } - -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } - -function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } - -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var DEFAULT_RANGE_CHUNK_SIZE = 65536; -var isWorkerDisabled = false; -var fallbackWorkerSrc; -var fakeWorkerFilesLoader = null; -{ - var useRequireEnsure = false; - - 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) { - fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js'); - } - - var dynamicLoaderSupported = typeof requirejs !== 'undefined' && requirejs.load; - fakeWorkerFilesLoader = useRequireEnsure ? function () { - return new Promise(function (resolve, reject) { - require.ensure([], function () { - try { - var worker; - worker = require('./pdf.worker.js'); - resolve(worker.WorkerMessageHandler); - } catch (ex) { - reject(ex); - } - }, reject, 'pdfjsWorker'); - }); - } : dynamicLoaderSupported ? function () { - return new Promise(function (resolve, reject) { - requirejs(['pdfjs-dist/build/pdf.worker'], function (worker) { - try { - resolve(worker.WorkerMessageHandler); - } catch (ex) { - reject(ex); - } - }, reject); - }); - } : null; - - if (!fallbackWorkerSrc && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object' && 'currentScript' in document) { - var pdfjsFilePath = document.currentScript && document.currentScript.src; - - if (pdfjsFilePath) { - fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, '.worker$1$2'); - } - } -} -var createPDFNetworkStream; +const DEFAULT_RANGE_CHUNK_SIZE = 65536; +const RENDERING_CANCELLED_TIMEOUT = 100; +const DefaultCanvasFactory = _is_node.isNodeJS ? _node_utils.NodeCanvasFactory : _display_utils.DOMCanvasFactory; +const DefaultCMapReaderFactory = _is_node.isNodeJS ? _node_utils.NodeCMapReaderFactory : _display_utils.DOMCMapReaderFactory; +let createPDFNetworkStream; function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) { createPDFNetworkStream = pdfNetworkStreamFactory; } function getDocument(src) { - var task = new PDFDocumentLoadingTask(); - var source; + const task = new PDFDocumentLoadingTask(); + let source; - if (typeof src === 'string') { + if (typeof src === "string") { source = { url: src }; @@ -9908,42 +1829,42 @@ function getDocument(src) { range: src }; } else { - if (_typeof(src) !== 'object') { - throw new Error('Invalid parameter in getDocument, ' + 'need either Uint8Array, string or a parameter object'); + if (typeof src !== "object") { + throw new Error("Invalid parameter in getDocument, " + "need either Uint8Array, string or a parameter object"); } if (!src.url && !src.data && !src.range) { - throw new Error('Invalid parameter object: need either .data, .range or .url'); + throw new Error("Invalid parameter object: need either .data, .range or .url"); } source = src; } - var params = Object.create(null); - var rangeTransport = null, + const params = Object.create(null); + let rangeTransport = null, worker = null; - for (var key in source) { - if (key === 'url' && typeof window !== 'undefined') { - params[key] = new _util.URL(source[key], window.location).href; + for (const key in source) { + if (key === "url" && typeof window !== "undefined") { + params[key] = new URL(source[key], window.location).href; continue; - } else if (key === 'range') { + } else if (key === "range") { rangeTransport = source[key]; continue; - } else if (key === 'worker') { + } else if (key === "worker") { worker = source[key]; continue; - } else if (key === 'data' && !(source[key] instanceof Uint8Array)) { - var pdfBytes = source[key]; + } else if (key === "data" && !(source[key] instanceof Uint8Array)) { + const pdfBytes = source[key]; - if (typeof pdfBytes === 'string') { + if (typeof pdfBytes === "string") { params[key] = (0, _util.stringToBytes)(pdfBytes); - } else if (_typeof(pdfBytes) === 'object' && pdfBytes !== null && !isNaN(pdfBytes.length)) { + } else if (typeof pdfBytes === "object" && pdfBytes !== null && !isNaN(pdfBytes.length)) { params[key] = new Uint8Array(pdfBytes); } else if ((0, _util.isArrayBuffer)(pdfBytes)) { params[key] = new Uint8Array(pdfBytes); } else { - throw new Error('Invalid PDF binary data: either typed array, ' + 'string or array-like object is expected in the ' + 'data property.'); + throw new Error("Invalid PDF binary data: either typed array, " + "string or array-like object is expected in the " + "data property."); } continue; @@ -9953,48 +1874,43 @@ function getDocument(src) { } params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE; - params.CMapReaderFactory = params.CMapReaderFactory || _display_utils.DOMCMapReaderFactory; + params.CMapReaderFactory = params.CMapReaderFactory || DefaultCMapReaderFactory; params.ignoreErrors = params.stopAtErrors !== true; + params.fontExtraProperties = params.fontExtraProperties === true; params.pdfBug = params.pdfBug === true; - var NativeImageDecoderValues = Object.values(_util.NativeImageDecoding); - - if (params.nativeImageDecoderSupport === undefined || !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) { - params.nativeImageDecoderSupport = _api_compatibility.apiCompatibilityParams.nativeImageDecoderSupport || _util.NativeImageDecoding.DECODE; - } if (!Number.isInteger(params.maxImageSize)) { params.maxImageSize = -1; } - if (typeof params.isEvalSupported !== 'boolean') { + if (typeof params.isEvalSupported !== "boolean") { params.isEvalSupported = true; } - if (typeof params.disableFontFace !== 'boolean') { + if (typeof params.disableFontFace !== "boolean") { params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false; } - if (typeof params.disableRange !== 'boolean') { + if (typeof params.ownerDocument === "undefined") { + params.ownerDocument = globalThis.document; + } + + if (typeof params.disableRange !== "boolean") { params.disableRange = false; } - if (typeof params.disableStream !== 'boolean') { + if (typeof params.disableStream !== "boolean") { params.disableStream = false; } - if (typeof params.disableAutoFetch !== 'boolean') { + if (typeof params.disableAutoFetch !== "boolean") { params.disableAutoFetch = false; } - if (typeof params.disableCreateObjectURL !== 'boolean') { - params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || false; - } - (0, _util.setVerbosityLevel)(params.verbosity); if (!worker) { - var workerParams = { - postMessageTransfers: params.postMessageTransfers, + const workerParams = { verbosity: params.verbosity, port: _worker_options.GlobalWorkerOptions.workerPort }; @@ -10002,18 +1918,16 @@ function getDocument(src) { task._worker = worker; } - var docId = task.docId; + const docId = task.docId; worker.promise.then(function () { if (task.destroyed) { - throw new Error('Loading aborted'); + throw new Error("Loading aborted"); } - return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) { - if (task.destroyed) { - throw new Error('Loading aborted'); - } + const workerIdPromise = _fetchDocument(worker, params, rangeTransport, docId); - var networkStream; + const networkStreamPromise = new Promise(function (resolve) { + let networkStream; if (rangeTransport) { networkStream = new _transport_stream.PDFDataTransportStream({ @@ -10035,19 +1949,26 @@ function getDocument(src) { }); } - var messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port); - messageHandler.postMessageTransfers = worker.postMessageTransfers; - var transport = new WorkerTransport(messageHandler, task, networkStream, params); - task._transport = transport; - messageHandler.send('Ready', null); + resolve(networkStream); }); - })["catch"](task._capability.reject); + return Promise.all([workerIdPromise, networkStreamPromise]).then(function ([workerId, networkStream]) { + if (task.destroyed) { + throw new Error("Loading aborted"); + } + + const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port); + messageHandler.postMessageTransfers = worker.postMessageTransfers; + const transport = new WorkerTransport(messageHandler, task, networkStream, params); + 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')); + return Promise.reject(new Error("Worker was destroyed")); } if (pdfDataRangeTransport) { @@ -10056,9 +1977,9 @@ function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { source.progressiveDone = pdfDataRangeTransport.progressiveDone; } - return worker.messageHandler.sendWithPromise('GetDocRequest', { - docId: docId, - apiVersion: '2.2.228', + return worker.messageHandler.sendWithPromise("GetDocRequest", { + docId, + apiVersion: '2.6.347', source: { data: source.data, url: source.url, @@ -10069,84 +1990,60 @@ function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { }, maxImageSize: source.maxImageSize, disableFontFace: source.disableFontFace, - disableCreateObjectURL: source.disableCreateObjectURL, postMessageTransfers: worker.postMessageTransfers, docBaseUrl: source.docBaseUrl, - nativeImageDecoderSupport: source.nativeImageDecoderSupport, ignoreErrors: source.ignoreErrors, - isEvalSupported: source.isEvalSupported + isEvalSupported: source.isEvalSupported, + fontExtraProperties: source.fontExtraProperties }).then(function (workerId) { if (worker.destroyed) { - throw new Error('Worker was destroyed'); + throw new Error("Worker was destroyed"); } return workerId; }); } -var PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() { - var nextDocumentId = 0; - - var PDFDocumentLoadingTask = - /*#__PURE__*/ - function () { - function PDFDocumentLoadingTask() { - _classCallCheck(this, PDFDocumentLoadingTask); +const PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() { + let nextDocumentId = 0; + class PDFDocumentLoadingTask { + constructor() { this._capability = (0, _util.createPromiseCapability)(); this._transport = null; this._worker = null; - this.docId = 'd' + nextDocumentId++; + this.docId = "d" + nextDocumentId++; this.destroyed = false; this.onPassword = null; this.onProgress = null; this.onUnsupportedFeature = null; } - _createClass(PDFDocumentLoadingTask, [{ - key: "destroy", - value: function destroy() { - var _this = this; + get promise() { + return this._capability.promise; + } - this.destroyed = true; - var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy(); - return transportDestroyed.then(function () { - _this._transport = null; + destroy() { + this.destroyed = true; + const transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy(); + return transportDestroyed.then(() => { + this._transport = null; - if (_this._worker) { - _this._worker.destroy(); + if (this._worker) { + this._worker.destroy(); - _this._worker = null; - } - }); - } - }, { - key: "then", - value: function then(onFulfilled, onRejected) { - (0, _display_utils.deprecated)('PDFDocumentLoadingTask.then method, ' + 'use the `promise` getter instead.'); - return this.promise.then.apply(this.promise, arguments); - } - }, { - key: "promise", - get: function get() { - return this._capability.promise; - } - }]); + this._worker = null; + } + }); + } - return PDFDocumentLoadingTask; - }(); + } return PDFDocumentLoadingTask; }(); -var PDFDataRangeTransport = -/*#__PURE__*/ -function () { - function PDFDataRangeTransport(length, initialData) { - var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - _classCallCheck(this, PDFDataRangeTransport); - +class PDFDataRangeTransport { + constructor(length, initialData, progressiveDone = false) { this.length = length; this.initialData = initialData; this.progressiveDone = progressiveDone; @@ -10157,815 +2054,815 @@ function () { this._readyCapability = (0, _util.createPromiseCapability)(); } - _createClass(PDFDataRangeTransport, [{ - key: "addRangeListener", - value: function addRangeListener(listener) { - this._rangeListeners.push(listener); - } - }, { - key: "addProgressListener", - value: function addProgressListener(listener) { - this._progressListeners.push(listener); - } - }, { - key: "addProgressiveReadListener", - value: function addProgressiveReadListener(listener) { - this._progressiveReadListeners.push(listener); - } - }, { - key: "addProgressiveDoneListener", - value: function addProgressiveDoneListener(listener) { - this._progressiveDoneListeners.push(listener); - } - }, { - key: "onDataRange", - value: function onDataRange(begin, chunk) { - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; + addRangeListener(listener) { + this._rangeListeners.push(listener); + } - try { - for (var _iterator = this._rangeListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var listener = _step.value; - listener(begin, chunk); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } + addProgressListener(listener) { + this._progressListeners.push(listener); + } + + addProgressiveReadListener(listener) { + this._progressiveReadListeners.push(listener); + } + + addProgressiveDoneListener(listener) { + this._progressiveDoneListeners.push(listener); + } + + onDataRange(begin, chunk) { + for (const listener of this._rangeListeners) { + listener(begin, chunk); + } + } + + onDataProgress(loaded, total) { + this._readyCapability.promise.then(() => { + for (const listener of this._progressListeners) { + listener(loaded, total); } - } - }, { - key: "onDataProgress", - value: function onDataProgress(loaded, total) { - var _this2 = this; + }); + } - this._readyCapability.promise.then(function () { - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; + onDataProgressiveRead(chunk) { + this._readyCapability.promise.then(() => { + for (const listener of this._progressiveReadListeners) { + listener(chunk); + } + }); + } - try { - for (var _iterator2 = _this2._progressListeners[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var listener = _step2.value; - listener(loaded, total); - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - }); - } - }, { - key: "onDataProgressiveRead", - value: function onDataProgressiveRead(chunk) { - var _this3 = this; + onDataProgressiveDone() { + this._readyCapability.promise.then(() => { + for (const listener of this._progressiveDoneListeners) { + listener(); + } + }); + } - this._readyCapability.promise.then(function () { - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; + transportReady() { + this._readyCapability.resolve(); + } - try { - for (var _iterator3 = _this3._progressiveReadListeners[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var listener = _step3.value; - listener(chunk); - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) { - _iterator3["return"](); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - }); - } - }, { - key: "onDataProgressiveDone", - value: function onDataProgressiveDone() { - var _this4 = this; + requestDataRange(begin, end) { + (0, _util.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange"); + } - this._readyCapability.promise.then(function () { - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; + abort() {} - try { - for (var _iterator4 = _this4._progressiveDoneListeners[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var listener = _step4.value; - listener(); - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) { - _iterator4["return"](); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - }); - } - }, { - key: "transportReady", - value: function transportReady() { - this._readyCapability.resolve(); - } - }, { - key: "requestDataRange", - value: function requestDataRange(begin, end) { - (0, _util.unreachable)('Abstract method PDFDataRangeTransport.requestDataRange'); - } - }, { - key: "abort", - value: function abort() {} - }]); - - return PDFDataRangeTransport; -}(); +} exports.PDFDataRangeTransport = PDFDataRangeTransport; -var PDFDocumentProxy = -/*#__PURE__*/ -function () { - function PDFDocumentProxy(pdfInfo, transport) { - _classCallCheck(this, PDFDocumentProxy); - +class PDFDocumentProxy { + constructor(pdfInfo, transport) { this._pdfInfo = pdfInfo; this._transport = transport; } - _createClass(PDFDocumentProxy, [{ - key: "getPage", - value: function getPage(pageNumber) { - return this._transport.getPage(pageNumber); - } - }, { - key: "getPageIndex", - value: function getPageIndex(ref) { - return this._transport.getPageIndex(ref); - } - }, { - key: "getDestinations", - value: function getDestinations() { - return this._transport.getDestinations(); - } - }, { - key: "getDestination", - value: function getDestination(id) { - return this._transport.getDestination(id); - } - }, { - key: "getPageLabels", - value: function getPageLabels() { - return this._transport.getPageLabels(); - } - }, { - key: "getPageLayout", - value: function getPageLayout() { - return this._transport.getPageLayout(); - } - }, { - key: "getPageMode", - value: function getPageMode() { - return this._transport.getPageMode(); - } - }, { - key: "getViewerPreferences", - value: function getViewerPreferences() { - return this._transport.getViewerPreferences(); - } - }, { - key: "getOpenActionDestination", - value: function getOpenActionDestination() { - return this._transport.getOpenActionDestination(); - } - }, { - key: "getAttachments", - value: function getAttachments() { - return this._transport.getAttachments(); - } - }, { - key: "getJavaScript", - value: function getJavaScript() { - return this._transport.getJavaScript(); - } - }, { - key: "getOutline", - value: function getOutline() { - return this._transport.getOutline(); - } - }, { - key: "getPermissions", - value: function getPermissions() { - return this._transport.getPermissions(); - } - }, { - key: "getMetadata", - value: function getMetadata() { - return this._transport.getMetadata(); - } - }, { - key: "getData", - value: function getData() { - return this._transport.getData(); - } - }, { - key: "getDownloadInfo", - value: function getDownloadInfo() { - return this._transport.downloadInfoCapability.promise; - } - }, { - key: "getStats", - value: function getStats() { - return this._transport.getStats(); - } - }, { - key: "cleanup", - value: function cleanup() { - this._transport.startCleanup(); - } - }, { - key: "destroy", - value: function destroy() { - return this.loadingTask.destroy(); - } - }, { - key: "numPages", - get: function get() { - return this._pdfInfo.numPages; - } - }, { - key: "fingerprint", - get: function get() { - return this._pdfInfo.fingerprint; - } - }, { - key: "loadingParams", - get: function get() { - return this._transport.loadingParams; - } - }, { - key: "loadingTask", - get: function get() { - return this._transport.loadingTask; - } - }]); + get annotationStorage() { + return (0, _util.shadow)(this, "annotationStorage", new _annotation_storage.AnnotationStorage()); + } - return PDFDocumentProxy; -}(); + get numPages() { + return this._pdfInfo.numPages; + } + + get fingerprint() { + return this._pdfInfo.fingerprint; + } + + getPage(pageNumber) { + return this._transport.getPage(pageNumber); + } + + getPageIndex(ref) { + return this._transport.getPageIndex(ref); + } + + getDestinations() { + return this._transport.getDestinations(); + } + + getDestination(id) { + return this._transport.getDestination(id); + } + + getPageLabels() { + return this._transport.getPageLabels(); + } + + getPageLayout() { + return this._transport.getPageLayout(); + } + + getPageMode() { + return this._transport.getPageMode(); + } + + getViewerPreferences() { + return this._transport.getViewerPreferences(); + } + + getOpenAction() { + return this._transport.getOpenAction(); + } + + getAttachments() { + return this._transport.getAttachments(); + } + + getJavaScript() { + return this._transport.getJavaScript(); + } + + getOutline() { + return this._transport.getOutline(); + } + + getOptionalContentConfig() { + return this._transport.getOptionalContentConfig(); + } + + getPermissions() { + return this._transport.getPermissions(); + } + + getMetadata() { + return this._transport.getMetadata(); + } + + getData() { + return this._transport.getData(); + } + + getDownloadInfo() { + return this._transport.downloadInfoCapability.promise; + } + + getStats() { + return this._transport.getStats(); + } + + cleanup() { + return this._transport.startCleanup(); + } + + destroy() { + return this.loadingTask.destroy(); + } + + get loadingParams() { + return this._transport.loadingParams; + } + + get loadingTask() { + return this._transport.loadingTask; + } + + saveDocument(annotationStorage) { + return this._transport.saveDocument(annotationStorage); + } + +} exports.PDFDocumentProxy = PDFDocumentProxy; -var PDFPageProxy = -/*#__PURE__*/ -function () { - function PDFPageProxy(pageIndex, pageInfo, transport) { - var pdfBug = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - - _classCallCheck(this, PDFPageProxy); - - this.pageIndex = pageIndex; +class PDFPageProxy { + constructor(pageIndex, pageInfo, transport, ownerDocument, pdfBug = false) { + this._pageIndex = pageIndex; this._pageInfo = pageInfo; + this._ownerDocument = ownerDocument; this._transport = transport; - this._stats = pdfBug ? new _display_utils.StatTimer() : _display_utils.DummyStatTimer; + this._stats = pdfBug ? new _display_utils.StatTimer() : null; this._pdfBug = pdfBug; this.commonObjs = transport.commonObjs; this.objs = new PDFObjects(); this.cleanupAfterRender = false; this.pendingCleanup = false; - this.intentStates = Object.create(null); + this._intentStates = new Map(); this.destroyed = false; } - _createClass(PDFPageProxy, [{ - key: "getViewport", - value: function getViewport() { - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - scale = _ref.scale, - _ref$rotation = _ref.rotation, - rotation = _ref$rotation === void 0 ? this.rotate : _ref$rotation, - _ref$dontFlip = _ref.dontFlip, - dontFlip = _ref$dontFlip === void 0 ? false : _ref$dontFlip; + get pageNumber() { + return this._pageIndex + 1; + } - if (arguments.length > 1 || typeof arguments[0] === 'number') { - (0, _display_utils.deprecated)('getViewport is called with obsolete arguments.'); - scale = arguments[0]; - rotation = typeof arguments[1] === 'number' ? arguments[1] : this.rotate; - dontFlip = typeof arguments[2] === 'boolean' ? arguments[2] : false; + 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({ + scale, + rotation = this.rotate, + offsetX = 0, + offsetY = 0, + dontFlip = false + } = {}) { + return new _display_utils.PageViewport({ + viewBox: this.view, + scale, + rotation, + offsetX, + offsetY, + dontFlip + }); + } + + getAnnotations({ + intent = null + } = {}) { + if (!this.annotationsPromise || this.annotationsIntent !== intent) { + this.annotationsPromise = this._transport.getAnnotations(this._pageIndex, intent); + this.annotationsIntent = intent; + } + + return this.annotationsPromise; + } + + render({ + canvasContext, + viewport, + intent = "display", + enableWebGL = false, + renderInteractiveForms = false, + transform = null, + imageLayer = null, + canvasFactory = null, + background = null, + annotationStorage = null, + optionalContentConfigPromise = null + }) { + if (this._stats) { + this._stats.time("Overall"); + } + + const renderingIntent = intent === "print" ? "print" : "display"; + this.pendingCleanup = false; + + if (!optionalContentConfigPromise) { + optionalContentConfigPromise = this._transport.getOptionalContentConfig(); + } + + let intentState = this._intentStates.get(renderingIntent); + + if (!intentState) { + intentState = Object.create(null); + + this._intentStates.set(renderingIntent, intentState); + } + + if (intentState.streamReaderCancelTimeout) { + clearTimeout(intentState.streamReaderCancelTimeout); + intentState.streamReaderCancelTimeout = null; + } + + const canvasFactoryInstance = canvasFactory || new DefaultCanvasFactory({ + ownerDocument: this._ownerDocument + }); + const webGLContext = new _webgl.WebGLContext({ + enable: enableWebGL + }); + + if (!intentState.displayReadyCapability) { + intentState.displayReadyCapability = (0, _util.createPromiseCapability)(); + intentState.operatorList = { + fnArray: [], + argsArray: [], + lastChunk: false + }; + + if (this._stats) { + this._stats.time("Page Request"); } - return new _display_utils.PageViewport({ - viewBox: this.view, - scale: scale, - rotation: rotation, - dontFlip: dontFlip + this._pumpOperatorList({ + pageIndex: this._pageIndex, + intent: renderingIntent, + renderInteractiveForms: renderInteractiveForms === true, + annotationStorage: annotationStorage && annotationStorage.getAll() || null }); } - }, { - key: "getAnnotations", - value: function getAnnotations() { - var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref2$intent = _ref2.intent, - intent = _ref2$intent === void 0 ? null : _ref2$intent; - if (!this.annotationsPromise || this.annotationsIntent !== intent) { - this.annotationsPromise = this._transport.getAnnotations(this.pageIndex, intent); - this.annotationsIntent = intent; + const complete = error => { + const i = intentState.renderTasks.indexOf(internalRenderTask); + + if (i >= 0) { + intentState.renderTasks.splice(i, 1); } - return this.annotationsPromise; - } - }, { - key: "render", - value: function render(_ref3) { - var _this5 = this; - - var canvasContext = _ref3.canvasContext, - viewport = _ref3.viewport, - _ref3$intent = _ref3.intent, - intent = _ref3$intent === void 0 ? 'display' : _ref3$intent, - _ref3$enableWebGL = _ref3.enableWebGL, - enableWebGL = _ref3$enableWebGL === void 0 ? false : _ref3$enableWebGL, - _ref3$renderInteracti = _ref3.renderInteractiveForms, - renderInteractiveForms = _ref3$renderInteracti === void 0 ? false : _ref3$renderInteracti, - _ref3$transform = _ref3.transform, - transform = _ref3$transform === void 0 ? null : _ref3$transform, - _ref3$imageLayer = _ref3.imageLayer, - imageLayer = _ref3$imageLayer === void 0 ? null : _ref3$imageLayer, - _ref3$canvasFactory = _ref3.canvasFactory, - canvasFactory = _ref3$canvasFactory === void 0 ? null : _ref3$canvasFactory, - _ref3$background = _ref3.background, - background = _ref3$background === void 0 ? null : _ref3$background; - var stats = this._stats; - stats.time('Overall'); - this.pendingCleanup = false; - var renderingIntent = intent === 'print' ? 'print' : 'display'; - var canvasFactoryInstance = canvasFactory || new _display_utils.DOMCanvasFactory(); - var webGLContext = new _webgl.WebGLContext({ - enable: enableWebGL - }); - - if (!this.intentStates[renderingIntent]) { - this.intentStates[renderingIntent] = Object.create(null); + if (this.cleanupAfterRender || renderingIntent === "print") { + this.pendingCleanup = true; } - var intentState = this.intentStates[renderingIntent]; + this._tryCleanup(); - if (!intentState.displayReadyCapability) { - intentState.receivingOperatorList = true; - intentState.displayReadyCapability = (0, _util.createPromiseCapability)(); - intentState.operatorList = { - fnArray: [], - argsArray: [], - lastChunk: false - }; - stats.time('Page Request'); + if (error) { + internalRenderTask.capability.reject(error); - this._transport.messageHandler.send('RenderPageRequest', { - pageIndex: this.pageNumber - 1, - intent: renderingIntent, - renderInteractiveForms: renderInteractiveForms === true + this._abortOperatorList({ + intentState, + reason: error }); + } else { + internalRenderTask.capability.resolve(); } - var complete = function complete(error) { - var i = intentState.renderTasks.indexOf(internalRenderTask); + if (this._stats) { + this._stats.timeEnd("Rendering"); + + this._stats.timeEnd("Overall"); + } + }; + + const internalRenderTask = new InternalRenderTask({ + callback: complete, + params: { + canvasContext, + viewport, + transform, + imageLayer, + background + }, + objs: this.objs, + commonObjs: this.commonObjs, + operatorList: intentState.operatorList, + pageIndex: this._pageIndex, + canvasFactory: canvasFactoryInstance, + webGLContext, + useRequestAnimationFrame: renderingIntent !== "print", + pdfBug: this._pdfBug + }); + + if (!intentState.renderTasks) { + intentState.renderTasks = []; + } + + intentState.renderTasks.push(internalRenderTask); + const renderTask = internalRenderTask.task; + Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => { + if (this.pendingCleanup) { + complete(); + return; + } + + if (this._stats) { + this._stats.time("Rendering"); + } + + internalRenderTask.initializeGraphics({ + transparency, + optionalContentConfig + }); + internalRenderTask.operatorListChanged(); + }).catch(complete); + return renderTask; + } + + getOperatorList() { + function operatorListChanged() { + if (intentState.operatorList.lastChunk) { + intentState.opListReadCapability.resolve(intentState.operatorList); + const i = intentState.renderTasks.indexOf(opListTask); if (i >= 0) { intentState.renderTasks.splice(i, 1); } + } + } - if (_this5.cleanupAfterRender || renderingIntent === 'print') { - _this5.pendingCleanup = true; - } + const renderingIntent = "oplist"; - _this5._tryCleanup(); + let intentState = this._intentStates.get(renderingIntent); - if (error) { - internalRenderTask.capability.reject(error); - } else { - internalRenderTask.capability.resolve(); - } + if (!intentState) { + intentState = Object.create(null); - stats.timeEnd('Rendering'); - stats.timeEnd('Overall'); + this._intentStates.set(renderingIntent, intentState); + } + + let opListTask; + + if (!intentState.opListReadCapability) { + opListTask = Object.create(null); + opListTask.operatorListChanged = operatorListChanged; + intentState.opListReadCapability = (0, _util.createPromiseCapability)(); + intentState.renderTasks = []; + intentState.renderTasks.push(opListTask); + intentState.operatorList = { + fnArray: [], + argsArray: [], + lastChunk: false }; - var internalRenderTask = new InternalRenderTask({ - callback: complete, - params: { - canvasContext: canvasContext, - viewport: viewport, - transform: transform, - imageLayer: imageLayer, - background: background - }, - objs: this.objs, - commonObjs: this.commonObjs, - operatorList: intentState.operatorList, - pageNumber: this.pageNumber, - canvasFactory: canvasFactoryInstance, - webGLContext: webGLContext, - useRequestAnimationFrame: renderingIntent !== 'print', - pdfBug: this._pdfBug - }); - - if (!intentState.renderTasks) { - intentState.renderTasks = []; + if (this._stats) { + this._stats.time("Page Request"); } - intentState.renderTasks.push(internalRenderTask); - var renderTask = internalRenderTask.task; - intentState.displayReadyCapability.promise.then(function (transparency) { - if (_this5.pendingCleanup) { - complete(); - return; - } - - stats.time('Rendering'); - internalRenderTask.initializeGraphics(transparency); - internalRenderTask.operatorListChanged(); - })["catch"](complete); - return renderTask; + this._pumpOperatorList({ + pageIndex: this._pageIndex, + intent: renderingIntent + }); } - }, { - key: "getOperatorList", - value: function 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); + return intentState.opListReadCapability.promise; + } + + streamTextContent({ + normalizeWhitespace = false, + disableCombineTextItems = false + } = {}) { + const TEXT_CONTENT_CHUNK_SIZE = 100; + return this._transport.messageHandler.sendWithStream("GetTextContent", { + pageIndex: this._pageIndex, + normalizeWhitespace: normalizeWhitespace === true, + combineTextItems: disableCombineTextItems !== true + }, { + highWaterMark: TEXT_CONTENT_CHUNK_SIZE, + + size(textContent) { + return textContent.items.length; + } + + }); + } + + getTextContent(params = {}) { + const readableStream = this.streamTextContent(params); + return new Promise(function (resolve, reject) { + function pump() { + reader.read().then(function ({ + value, + done + }) { + if (done) { + resolve(textContent); + return; } - } + + Object.assign(textContent.styles, value.styles); + textContent.items.push(...value.items); + pump(); + }, reject); } - var renderingIntent = 'oplist'; + const reader = readableStream.getReader(); + const textContent = { + items: [], + styles: Object.create(null) + }; + pump(); + }); + } - if (!this.intentStates[renderingIntent]) { - this.intentStates[renderingIntent] = Object.create(null); - } + _destroy() { + this.destroyed = true; + this._transport.pageCache[this._pageIndex] = null; + const waitOn = []; - var intentState = this.intentStates[renderingIntent]; - var opListTask; - - if (!intentState.opListReadCapability) { - opListTask = {}; - opListTask.operatorListChanged = operatorListChanged; - intentState.receivingOperatorList = true; - intentState.opListReadCapability = (0, _util.createPromiseCapability)(); - intentState.renderTasks = []; - intentState.renderTasks.push(opListTask); - intentState.operatorList = { - fnArray: [], - argsArray: [], - lastChunk: false - }; - - this._stats.time('Page Request'); - - this._transport.messageHandler.send('RenderPageRequest', { - pageIndex: this.pageIndex, - intent: renderingIntent - }); - } - - return intentState.opListReadCapability.promise; - } - }, { - key: "streamTextContent", - value: function streamTextContent() { - var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref4$normalizeWhites = _ref4.normalizeWhitespace, - normalizeWhitespace = _ref4$normalizeWhites === void 0 ? false : _ref4$normalizeWhites, - _ref4$disableCombineT = _ref4.disableCombineTextItems, - disableCombineTextItems = _ref4$disableCombineT === void 0 ? false : _ref4$disableCombineT; - - var TEXT_CONTENT_CHUNK_SIZE = 100; - return this._transport.messageHandler.sendWithStream('GetTextContent', { - pageIndex: this.pageNumber - 1, - normalizeWhitespace: normalizeWhitespace === true, - combineTextItems: disableCombineTextItems !== true - }, { - highWaterMark: TEXT_CONTENT_CHUNK_SIZE, - size: function size(textContent) { - return textContent.items.length; - } + for (const [intent, intentState] of this._intentStates) { + this._abortOperatorList({ + intentState, + reason: new Error("Page was destroyed."), + force: true }); + + if (intent === "oplist") { + continue; + } + + for (const internalRenderTask of intentState.renderTasks) { + waitOn.push(internalRenderTask.completed); + internalRenderTask.cancel(); + } } - }, { - key: "getTextContent", - value: function getTextContent() { - var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var readableStream = this.streamTextContent(params); - return new Promise(function (resolve, reject) { - function pump() { - reader.read().then(function (_ref5) { - var _textContent$items; - var value = _ref5.value, - done = _ref5.done; + this.objs.clear(); + this.annotationsPromise = null; + this.pendingCleanup = false; + return Promise.all(waitOn); + } - if (done) { - resolve(textContent); - return; - } + cleanup(resetStats = false) { + this.pendingCleanup = true; + return this._tryCleanup(resetStats); + } - Object.assign(textContent.styles, value.styles); - - (_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items)); - - pump(); - }, reject); - } - - var reader = readableStream.getReader(); - var textContent = { - items: [], - styles: Object.create(null) - }; - pump(); - }); + _tryCleanup(resetStats = false) { + if (!this.pendingCleanup) { + return false; } - }, { - key: "_destroy", - value: function _destroy() { - this.destroyed = true; - this._transport.pageCache[this.pageIndex] = null; - var waitOn = []; - Object.keys(this.intentStates).forEach(function (intent) { - if (intent === 'oplist') { + + for (const { + renderTasks, + operatorList + } of this._intentStates.values()) { + if (renderTasks.length !== 0 || !operatorList.lastChunk) { + return false; + } + } + + this._intentStates.clear(); + + this.objs.clear(); + this.annotationsPromise = null; + + if (resetStats && this._stats) { + this._stats = new _display_utils.StatTimer(); + } + + this.pendingCleanup = false; + return true; + } + + _startRenderPage(transparency, intent) { + const intentState = this._intentStates.get(intent); + + if (!intentState) { + return; + } + + if (this._stats) { + this._stats.timeEnd("Page Request"); + } + + if (intentState.displayReadyCapability) { + intentState.displayReadyCapability.resolve(transparency); + } + } + + _renderPageChunk(operatorListChunk, intentState) { + for (let 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 (let i = 0; i < intentState.renderTasks.length; i++) { + intentState.renderTasks[i].operatorListChanged(); + } + + if (operatorListChunk.lastChunk) { + this._tryCleanup(); + } + } + + _pumpOperatorList(args) { + (0, _util.assert)(args.intent, 'PDFPageProxy._pumpOperatorList: Expected "intent" argument.'); + + const readableStream = this._transport.messageHandler.sendWithStream("GetOperatorList", args); + + const reader = readableStream.getReader(); + + const intentState = this._intentStates.get(args.intent); + + intentState.streamReader = reader; + + const pump = () => { + reader.read().then(({ + value, + done + }) => { + if (done) { + intentState.streamReader = null; 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); - } - }, { - key: "cleanup", - value: function cleanup() { - var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - this.pendingCleanup = true; + if (this._transport.destroyed) { + return; + } - this._tryCleanup(resetStats); - } - }, { - key: "_tryCleanup", - value: function _tryCleanup() { - var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + this._renderPageChunk(value, intentState); - if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) { - var intentState = this.intentStates[intent]; - return intentState.renderTasks.length !== 0 || intentState.receivingOperatorList; - }, this)) { + pump(); + }, reason => { + intentState.streamReader = null; + + if (this._transport.destroyed) { + return; + } + + if (intentState.operatorList) { + intentState.operatorList.lastChunk = true; + + for (let i = 0; i < intentState.renderTasks.length; i++) { + intentState.renderTasks[i].operatorListChanged(); + } + + this._tryCleanup(); + } + + if (intentState.displayReadyCapability) { + intentState.displayReadyCapability.reject(reason); + } else if (intentState.opListReadCapability) { + intentState.opListReadCapability.reject(reason); + } else { + throw reason; + } + }); + }; + + pump(); + } + + _abortOperatorList({ + intentState, + reason, + force = false + }) { + (0, _util.assert)(reason instanceof Error || typeof reason === "object" && reason !== null, 'PDFPageProxy._abortOperatorList: Expected "reason" argument.'); + + if (!intentState.streamReader) { + return; + } + + if (!force) { + if (intentState.renderTasks.length !== 0) { return; } - Object.keys(this.intentStates).forEach(function (intent) { - delete this.intentStates[intent]; - }, this); - this.objs.clear(); - this.annotationsPromise = null; + if (reason instanceof _display_utils.RenderingCancelledException) { + intentState.streamReaderCancelTimeout = setTimeout(() => { + this._abortOperatorList({ + intentState, + reason, + force: true + }); - if (resetStats && this._stats instanceof _display_utils.StatTimer) { - this._stats = new _display_utils.StatTimer(); - } - - this.pendingCleanup = false; - } - }, { - key: "_startRenderPage", - value: function _startRenderPage(transparency, intent) { - var intentState = this.intentStates[intent]; - - if (intentState.displayReadyCapability) { - intentState.displayReadyCapability.resolve(transparency); + intentState.streamReaderCancelTimeout = null; + }, RENDERING_CANCELLED_TIMEOUT); + return; } } - }, { - key: "_renderPageChunk", - value: function _renderPageChunk(operatorListChunk, intent) { - var intentState = this.intentStates[intent]; - for (var i = 0, ii = operatorListChunk.length; i < ii; i++) { - intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]); - intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]); - } + intentState.streamReader.cancel(new _util.AbortException(reason && reason.message)); + intentState.streamReader = null; - intentState.operatorList.lastChunk = operatorListChunk.lastChunk; + if (this._transport.destroyed) { + return; + } - for (var _i = 0; _i < intentState.renderTasks.length; _i++) { - intentState.renderTasks[_i].operatorListChanged(); - } + for (const [intent, curIntentState] of this._intentStates) { + if (curIntentState === intentState) { + this._intentStates.delete(intent); - if (operatorListChunk.lastChunk) { - intentState.receivingOperatorList = false; - - this._tryCleanup(); + break; } } - }, { - key: "pageNumber", - get: function get() { - return this.pageIndex + 1; - } - }, { - key: "rotate", - get: function get() { - return this._pageInfo.rotate; - } - }, { - key: "ref", - get: function get() { - return this._pageInfo.ref; - } - }, { - key: "userUnit", - get: function get() { - return this._pageInfo.userUnit; - } - }, { - key: "view", - get: function get() { - return this._pageInfo.view; - } - }, { - key: "stats", - get: function get() { - return this._stats instanceof _display_utils.StatTimer ? this._stats : null; - } - }]); - return PDFPageProxy; -}(); + this.cleanup(); + } + + get stats() { + return this._stats; + } + +} exports.PDFPageProxy = PDFPageProxy; -var LoopbackPort = -/*#__PURE__*/ -function () { - function LoopbackPort() { - var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; - - _classCallCheck(this, LoopbackPort); - +class LoopbackPort { + constructor(defer = true) { this._listeners = []; this._defer = defer; this._deferred = Promise.resolve(undefined); } - _createClass(LoopbackPort, [{ - key: "postMessage", - value: function postMessage(obj, transfers) { - var _this6 = this; + postMessage(obj, transfers) { + function cloneValue(value) { + if (typeof value !== "object" || value === null) { + return value; + } - function cloneValue(value) { - if (_typeof(value) !== 'object' || value === null) { - return value; + if (cloned.has(value)) { + return cloned.get(value); + } + + let buffer, result; + + if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) { + const transferable = transfers && transfers.includes(buffer); + + if (transferable) { + result = new value.constructor(buffer, value.byteOffset, value.byteLength); + } else { + result = new value.constructor(value); } - if (cloned.has(value)) { - return cloned.get(value); - } - - var buffer, result; - - if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) { - var transferable = transfers && transfers.includes(buffer); - - 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 = Array.isArray(value) ? [] : {}; cloned.set(value, result); - - for (var i in value) { - var desc = void 0, - 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); + result = Array.isArray(value) ? [] : {}; + cloned.set(value, result); - return; + for (const i in value) { + let desc, + p = value; + + while (!(desc = Object.getOwnPropertyDescriptor(p, i))) { + p = Object.getPrototypeOf(p); + } + + if (typeof desc.value === "undefined") { + continue; + } + + if (typeof desc.value === "function") { + if (value.hasOwnProperty && value.hasOwnProperty(i)) { + throw new Error(`LoopbackPort.postMessage - cannot clone: ${value[i]}`); + } + + continue; + } + + result[i] = cloneValue(desc.value); } - var cloned = new WeakMap(); - var e = { - data: cloneValue(obj) - }; + return result; + } - this._deferred.then(function () { - _this6._listeners.forEach(function (listener) { - listener.call(this, e); - }, _this6); + if (!this._defer) { + this._listeners.forEach(listener => { + listener.call(this, { + data: obj + }); }); - } - }, { - key: "addEventListener", - value: function addEventListener(name, listener) { - this._listeners.push(listener); - } - }, { - key: "removeEventListener", - value: function removeEventListener(name, listener) { - var i = this._listeners.indexOf(listener); - this._listeners.splice(i, 1); + return; } - }, { - key: "terminate", - value: function terminate() { - this._listeners.length = 0; - } - }]); - return LoopbackPort; -}(); + const cloned = new WeakMap(); + const e = { + data: cloneValue(obj) + }; + + this._deferred.then(() => { + this._listeners.forEach(listener => { + listener.call(this, e); + }); + }); + } + + addEventListener(name, listener) { + this._listeners.push(listener); + } + + removeEventListener(name, listener) { + const i = this._listeners.indexOf(listener); + + this._listeners.splice(i, 1); + } + + terminate() { + this._listeners.length = 0; + } + +} exports.LoopbackPort = LoopbackPort; -var PDFWorker = function PDFWorkerClosure() { - var pdfWorkerPorts = new WeakMap(); - var nextFakeWorkerId = 0; - var fakeWorkerFilesLoadedCapability; +const PDFWorker = function PDFWorkerClosure() { + const pdfWorkerPorts = new WeakMap(); + let isWorkerDisabled = false; + let fallbackWorkerSrc; + let nextFakeWorkerId = 0; + let fakeWorkerCapability; - function _getWorkerSrc() { + if (_is_node.isNodeJS && typeof require === "function") { + isWorkerDisabled = true; + fallbackWorkerSrc = "./pdf.worker.js"; + } else if (typeof document === "object" && "currentScript" in document) { + const pdfjsFilePath = document.currentScript && document.currentScript.src; + + if (pdfjsFilePath) { + fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, ".worker$1$2"); + } + } + + function getWorkerSrc() { if (_worker_options.GlobalWorkerOptions.workerSrc) { return _worker_options.GlobalWorkerOptions.workerSrc; } - if (typeof fallbackWorkerSrc !== 'undefined') { + if (typeof fallbackWorkerSrc !== "undefined") { + if (!_is_node.isNodeJS) { + (0, _display_utils.deprecated)('No "GlobalWorkerOptions.workerSrc" specified.'); + } + return fallbackWorkerSrc; } @@ -10973,66 +2870,60 @@ var PDFWorker = function PDFWorkerClosure() { } function getMainThreadWorkerMessageHandler() { + let mainWorkerMessageHandler; + try { - if (typeof window !== 'undefined') { - return window.pdfjsWorker && window.pdfjsWorker.WorkerMessageHandler; - } + mainWorkerMessageHandler = globalThis.pdfjsWorker && globalThis.pdfjsWorker.WorkerMessageHandler; } catch (ex) {} - return null; + return mainWorkerMessageHandler || null; } function setupFakeWorkerGlobal() { - if (fakeWorkerFilesLoadedCapability) { - return fakeWorkerFilesLoadedCapability.promise; + if (fakeWorkerCapability) { + return fakeWorkerCapability.promise; } - fakeWorkerFilesLoadedCapability = (0, _util.createPromiseCapability)(); - var mainWorkerMessageHandler = getMainThreadWorkerMessageHandler(); + fakeWorkerCapability = (0, _util.createPromiseCapability)(); - if (mainWorkerMessageHandler) { - fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler); - return fakeWorkerFilesLoadedCapability.promise; - } + const loader = async function () { + const mainWorkerMessageHandler = getMainThreadWorkerMessageHandler(); - var loader = fakeWorkerFilesLoader || function () { - return (0, _display_utils.loadScript)(_getWorkerSrc()).then(function () { - return window.pdfjsWorker.WorkerMessageHandler; - }); + if (mainWorkerMessageHandler) { + return mainWorkerMessageHandler; + } + + if (_is_node.isNodeJS && typeof require === "function") { + const worker = eval("require")(getWorkerSrc()); + return worker.WorkerMessageHandler; + } + + await (0, _display_utils.loadScript)(getWorkerSrc()); + return window.pdfjsWorker.WorkerMessageHandler; }; - loader().then(fakeWorkerFilesLoadedCapability.resolve, fakeWorkerFilesLoadedCapability.reject); - return fakeWorkerFilesLoadedCapability.promise; + loader().then(fakeWorkerCapability.resolve, fakeWorkerCapability.reject); + return fakeWorkerCapability.promise; } function createCDNWrapper(url) { - var wrapper = 'importScripts(\'' + url + '\');'; - return _util.URL.createObjectURL(new Blob([wrapper])); + const wrapper = "importScripts('" + url + "');"; + return URL.createObjectURL(new Blob([wrapper])); } - var PDFWorker = - /*#__PURE__*/ - function () { - function PDFWorker() { - var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref6$name = _ref6.name, - name = _ref6$name === void 0 ? null : _ref6$name, - _ref6$port = _ref6.port, - port = _ref6$port === void 0 ? null : _ref6$port, - _ref6$postMessageTran = _ref6.postMessageTransfers, - postMessageTransfers = _ref6$postMessageTran === void 0 ? true : _ref6$postMessageTran, - _ref6$verbosity = _ref6.verbosity, - verbosity = _ref6$verbosity === void 0 ? (0, _util.getVerbosityLevel)() : _ref6$verbosity; - - _classCallCheck(this, PDFWorker); - + class PDFWorker { + constructor({ + name = null, + port = null, + verbosity = (0, _util.getVerbosityLevel)() + } = {}) { if (port && pdfWorkerPorts.has(port)) { - throw new Error('Cannot use more than one PDFWorker per port'); + throw new Error("Cannot use more than one PDFWorker per port"); } this.name = name; this.destroyed = false; - this.postMessageTransfers = postMessageTransfers !== false; + this.postMessageTransfers = true; this.verbosity = verbosity; this._readyCapability = (0, _util.createPromiseCapability)(); this._port = null; @@ -11050,221 +2941,206 @@ var PDFWorker = function PDFWorkerClosure() { this._initialize(); } - _createClass(PDFWorker, [{ - key: "_initializeFromPort", - value: function _initializeFromPort(port) { - this._port = port; - this._messageHandler = new _message_handler.MessageHandler('main', 'worker', port); + get promise() { + return this._readyCapability.promise; + } - this._messageHandler.on('ready', function () {}); + get port() { + return this._port; + } - this._readyCapability.resolve(); - } - }, { - key: "_initialize", - value: function _initialize() { - var _this7 = this; + get messageHandler() { + return this._messageHandler; + } - if (typeof Worker !== 'undefined' && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) { - var workerSrc = _getWorkerSrc(); + _initializeFromPort(port) { + this._port = port; + this._messageHandler = new _message_handler.MessageHandler("main", "worker", port); - try { - if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) { - workerSrc = createCDNWrapper(new _util.URL(workerSrc, window.location).href); + this._messageHandler.on("ready", function () {}); + + this._readyCapability.resolve(); + } + + _initialize() { + if (typeof Worker !== "undefined" && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) { + let workerSrc = getWorkerSrc(); + + try { + if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) { + workerSrc = createCDNWrapper(new URL(workerSrc, window.location).href); + } + + const worker = new Worker(workerSrc); + const messageHandler = new _message_handler.MessageHandler("main", "worker", worker); + + const terminateEarly = () => { + worker.removeEventListener("error", onWorkerError); + messageHandler.destroy(); + worker.terminate(); + + if (this.destroyed) { + this._readyCapability.reject(new Error("Worker was destroyed")); + } else { + this._setupFakeWorker(); + } + }; + + const onWorkerError = () => { + if (!this._webWorker) { + terminateEarly(); + } + }; + + worker.addEventListener("error", onWorkerError); + messageHandler.on("test", data => { + worker.removeEventListener("error", onWorkerError); + + if (this.destroyed) { + terminateEarly(); + return; } - var worker = new Worker(workerSrc); - var messageHandler = new _message_handler.MessageHandler('main', 'worker', worker); + if (data) { + this._messageHandler = messageHandler; + this._port = worker; + this._webWorker = worker; + + if (!data.supportTransfers) { + this.postMessageTransfers = false; + } + + this._readyCapability.resolve(); + + messageHandler.send("configure", { + verbosity: this.verbosity + }); + } else { + this._setupFakeWorker(); - var terminateEarly = function terminateEarly() { - worker.removeEventListener('error', onWorkerError); messageHandler.destroy(); worker.terminate(); + } + }); + messageHandler.on("ready", data => { + worker.removeEventListener("error", onWorkerError); - if (_this7.destroyed) { - _this7._readyCapability.reject(new Error('Worker was destroyed')); - } else { - _this7._setupFakeWorker(); - } - }; + if (this.destroyed) { + terminateEarly(); + return; + } - var onWorkerError = function onWorkerError() { - if (!_this7._webWorker) { - terminateEarly(); - } - }; + try { + sendTest(); + } catch (e) { + this._setupFakeWorker(); + } + }); - worker.addEventListener('error', onWorkerError); - messageHandler.on('test', function (data) { - worker.removeEventListener('error', onWorkerError); + const sendTest = () => { + const testObj = new Uint8Array([this.postMessageTransfers ? 255 : 0]); - if (_this7.destroyed) { - terminateEarly(); - return; - } + try { + messageHandler.send("test", testObj, [testObj.buffer]); + } catch (ex) { + (0, _util.warn)("Cannot use postMessage transfers."); + testObj[0] = 0; + messageHandler.send("test", testObj); + } + }; - if (data && data.supportTypedArray) { - _this7._messageHandler = messageHandler; - _this7._port = worker; - _this7._webWorker = worker; - - if (!data.supportTransfers) { - _this7.postMessageTransfers = false; - } - - _this7._readyCapability.resolve(); - - messageHandler.send('configure', { - verbosity: _this7.verbosity - }); - } else { - _this7._setupFakeWorker(); - - messageHandler.destroy(); - worker.terminate(); - } - }); - messageHandler.on('ready', function (data) { - worker.removeEventListener('error', onWorkerError); - - if (_this7.destroyed) { - terminateEarly(); - return; - } - - try { - sendTest(); - } catch (e) { - _this7._setupFakeWorker(); - } - }); - - var sendTest = function sendTest() { - var testObj = new Uint8Array([_this7.postMessageTransfers ? 255 : 0]); - - try { - messageHandler.send('test', testObj, [testObj.buffer]); - } catch (ex) { - (0, _util.info)('Cannot use postMessage transfers'); - testObj[0] = 0; - messageHandler.send('test', testObj); - } - }; - - sendTest(); - return; - } catch (e) { - (0, _util.info)('The worker has been disabled.'); - } + sendTest(); + return; + } catch (e) { + (0, _util.info)("The worker has been disabled."); } - - this._setupFakeWorker(); } - }, { - key: "_setupFakeWorker", - value: function _setupFakeWorker() { - var _this8 = this; - if (!isWorkerDisabled) { - (0, _util.warn)('Setting up fake worker.'); - isWorkerDisabled = true; + this._setupFakeWorker(); + } + + _setupFakeWorker() { + if (!isWorkerDisabled) { + (0, _util.warn)("Setting up fake worker."); + isWorkerDisabled = true; + } + + setupFakeWorkerGlobal().then(WorkerMessageHandler => { + if (this.destroyed) { + this._readyCapability.reject(new Error("Worker was destroyed")); + + return; } - setupFakeWorkerGlobal().then(function (WorkerMessageHandler) { - if (_this8.destroyed) { - _this8._readyCapability.reject(new Error('Worker was destroyed')); + const port = new LoopbackPort(); + this._port = port; + const id = "fake" + nextFakeWorkerId++; + const workerHandler = new _message_handler.MessageHandler(id + "_worker", id, port); + WorkerMessageHandler.setup(workerHandler, port); + const messageHandler = new _message_handler.MessageHandler(id, id + "_worker", port); + this._messageHandler = messageHandler; - return; - } + this._readyCapability.resolve(); - var port = new LoopbackPort(); - _this8._port = port; - var id = 'fake' + nextFakeWorkerId++; - var workerHandler = new _message_handler.MessageHandler(id + '_worker', id, port); - WorkerMessageHandler.setup(workerHandler, port); - var messageHandler = new _message_handler.MessageHandler(id, id + '_worker', port); - _this8._messageHandler = messageHandler; - - _this8._readyCapability.resolve(); - })["catch"](function (reason) { - _this8._readyCapability.reject(new Error("Setting up fake worker failed: \"".concat(reason.message, "\"."))); + messageHandler.send("configure", { + verbosity: this.verbosity }); + }).catch(reason => { + this._readyCapability.reject(new Error(`Setting up fake worker failed: "${reason.message}".`)); + }); + } + + destroy() { + this.destroyed = true; + + if (this._webWorker) { + this._webWorker.terminate(); + + this._webWorker = null; } - }, { - key: "destroy", - value: function destroy() { - this.destroyed = true; - if (this._webWorker) { - this._webWorker.terminate(); + pdfWorkerPorts.delete(this._port); + this._port = null; - this._webWorker = null; - } + if (this._messageHandler) { + this._messageHandler.destroy(); - pdfWorkerPorts["delete"](this._port); - this._port = null; - - if (this._messageHandler) { - this._messageHandler.destroy(); - - this._messageHandler = null; - } + this._messageHandler = null; } - }, { - key: "promise", - get: function get() { - return this._readyCapability.promise; - } - }, { - key: "port", - get: function get() { - return this._port; - } - }, { - key: "messageHandler", - get: function get() { - return this._messageHandler; - } - }], [{ - key: "fromPort", - value: function fromPort(params) { - if (!params || !params.port) { - throw new Error('PDFWorker.fromPort - invalid method signature.'); - } + } - if (pdfWorkerPorts.has(params.port)) { - return pdfWorkerPorts.get(params.port); - } - - return new PDFWorker(params); + static fromPort(params) { + if (!params || !params.port) { + throw new Error("PDFWorker.fromPort - invalid method signature."); } - }, { - key: "getWorkerSrc", - value: function getWorkerSrc() { - return _getWorkerSrc(); - } - }]); - return PDFWorker; - }(); + if (pdfWorkerPorts.has(params.port)) { + return pdfWorkerPorts.get(params.port); + } + + return new PDFWorker(params); + } + + static getWorkerSrc() { + return getWorkerSrc(); + } + + } return PDFWorker; }(); exports.PDFWorker = PDFWorker; -var WorkerTransport = -/*#__PURE__*/ -function () { - function WorkerTransport(messageHandler, loadingTask, networkStream, params) { - _classCallCheck(this, WorkerTransport); - +class WorkerTransport { + constructor(messageHandler, loadingTask, networkStream, params) { this.messageHandler = messageHandler; this.loadingTask = loadingTask; this.commonObjs = new PDFObjects(); this.fontLoader = new _font_loader.FontLoader({ docId: loadingTask.docId, - onUnsupportedFeature: this._onUnsupportedFeature.bind(this) + onUnsupportedFeature: this._onUnsupportedFeature.bind(this), + ownerDocument: params.ownerDocument }); this._params = params; this.CMapReaderFactory = new params.CMapReaderFactory({ @@ -11283,767 +3159,628 @@ function () { this.setupMessageHandler(); } - _createClass(WorkerTransport, [{ - key: "destroy", - value: function destroy() { - var _this9 = this; - - if (this.destroyCapability) { - return this.destroyCapability.promise; - } - - this.destroyed = true; - this.destroyCapability = (0, _util.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.length = 0; - this.pagePromises.length = 0; - var terminated = this.messageHandler.sendWithPromise('Terminate', null); - waitOn.push(terminated); - Promise.all(waitOn).then(function () { - _this9.fontLoader.clear(); - - if (_this9._networkStream) { - _this9._networkStream.cancelAllRequests(); - } - - if (_this9.messageHandler) { - _this9.messageHandler.destroy(); - - _this9.messageHandler = null; - } - - _this9.destroyCapability.resolve(); - }, this.destroyCapability.reject); + destroy() { + if (this.destroyCapability) { return this.destroyCapability.promise; } - }, { - key: "setupMessageHandler", - value: function setupMessageHandler() { - var messageHandler = this.messageHandler, - loadingTask = this.loadingTask; - messageHandler.on('GetReader', function (data, sink) { - var _this10 = this; - (0, _util.assert)(this._networkStream); - this._fullReader = this._networkStream.getFullReader(); + this.destroyed = true; + this.destroyCapability = (0, _util.createPromiseCapability)(); - this._fullReader.onProgress = function (evt) { - _this10._lastProgress = { - loaded: evt.loaded, - total: evt.total - }; - }; - - sink.onPull = function () { - _this10._fullReader.read().then(function (_ref7) { - var value = _ref7.value, - done = _ref7.done; - - if (done) { - sink.close(); - return; - } - - (0, _util.assert)((0, _util.isArrayBuffer)(value)); - sink.enqueue(new Uint8Array(value), 1, [value]); - })["catch"](function (reason) { - sink.error(reason); - }); - }; - - sink.onCancel = function (reason) { - _this10._fullReader.cancel(reason); - }; - }, this); - messageHandler.on('ReaderHeadersReady', function (data) { - var _this11 = this; - - var headersCapability = (0, _util.createPromiseCapability)(); - var fullReader = this._fullReader; - fullReader.headersReady.then(function () { - if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) { - if (_this11._lastProgress && loadingTask.onProgress) { - loadingTask.onProgress(_this11._lastProgress); - } - - fullReader.onProgress = function (evt) { - if (loadingTask.onProgress) { - loadingTask.onProgress({ - loaded: evt.loaded, - total: evt.total - }); - } - }; - } - - headersCapability.resolve({ - isStreamingSupported: fullReader.isStreamingSupported, - isRangeSupported: fullReader.isRangeSupported, - contentLength: fullReader.contentLength - }); - }, headersCapability.reject); - return headersCapability.promise; - }, this); - messageHandler.on('GetRangeReader', function (data, sink) { - (0, _util.assert)(this._networkStream); - - var rangeReader = this._networkStream.getRangeReader(data.begin, data.end); - - if (!rangeReader) { - sink.close(); - return; - } - - sink.onPull = function () { - rangeReader.read().then(function (_ref8) { - var value = _ref8.value, - done = _ref8.done; - - if (done) { - sink.close(); - return; - } - - (0, _util.assert)((0, _util.isArrayBuffer)(value)); - sink.enqueue(new Uint8Array(value), 1, [value]); - })["catch"](function (reason) { - sink.error(reason); - }); - }; - - sink.onCancel = function (reason) { - rangeReader.cancel(reason); - }; - }, this); - messageHandler.on('GetDoc', function (_ref9) { - var pdfInfo = _ref9.pdfInfo; - this._numPages = pdfInfo.numPages; - - loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this)); - }, this); - messageHandler.on('PasswordRequest', function (exception) { - var _this12 = this; - - this._passwordCapability = (0, _util.createPromiseCapability)(); - - if (loadingTask.onPassword) { - var updatePassword = function updatePassword(password) { - _this12._passwordCapability.resolve({ - password: password - }); - }; - - try { - loadingTask.onPassword(updatePassword, exception.code); - } catch (ex) { - this._passwordCapability.reject(ex); - } - } else { - this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code)); - } - - return this._passwordCapability.promise; - }, this); - messageHandler.on('PasswordException', function (exception) { - loadingTask._capability.reject(new _util.PasswordException(exception.message, exception.code)); - }, this); - messageHandler.on('InvalidPDF', function (exception) { - loadingTask._capability.reject(new _util.InvalidPDFException(exception.message)); - }, this); - messageHandler.on('MissingPDF', function (exception) { - loadingTask._capability.reject(new _util.MissingPDFException(exception.message)); - }, this); - messageHandler.on('UnexpectedResponse', function (exception) { - loadingTask._capability.reject(new _util.UnexpectedResponseException(exception.message, exception.status)); - }, this); - messageHandler.on('UnknownError', function (exception) { - loadingTask._capability.reject(new _util.UnknownErrorException(exception.message, exception.details)); - }, this); - messageHandler.on('DataLoaded', function (data) { - if (loadingTask.onProgress) { - loadingTask.onProgress({ - loaded: data.length, - total: data.length - }); - } - - this.downloadInfoCapability.resolve(data); - }, this); - messageHandler.on('StartRenderPage', function (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 (data) { - if (this.destroyed) { - return; - } - - var page = this.pageCache[data.pageIndex]; - - page._renderPageChunk(data.operatorList, data.intent); - }, this); - messageHandler.on('commonobj', function (data) { - var _this13 = this; - - if (this.destroyed) { - return; - } - - var _data = _slicedToArray(data, 3), - id = _data[0], - type = _data[1], - exportedData = _data[2]; - - if (this.commonObjs.has(id)) { - return; - } - - switch (type) { - case 'Font': - var params = this._params; - - if ('error' in exportedData) { - var exportedError = exportedData.error; - (0, _util.warn)("Error during font loading: ".concat(exportedError)); - this.commonObjs.resolve(id, exportedError); - break; - } - - var fontRegistry = null; - - if (params.pdfBug && _global_scope["default"].FontInspector && _global_scope["default"].FontInspector.enabled) { - fontRegistry = { - registerFont: function registerFont(font, url) { - _global_scope["default"]['FontInspector'].fontAdded(font, url); - } - }; - } - - var font = new _font_loader.FontFaceObject(exportedData, { - isEvalSupported: params.isEvalSupported, - disableFontFace: params.disableFontFace, - ignoreErrors: params.ignoreErrors, - onUnsupportedFeature: this._onUnsupportedFeature.bind(this), - fontRegistry: fontRegistry - }); - this.fontLoader.bind(font).then(function () { - _this13.commonObjs.resolve(id, font); - }, function (reason) { - messageHandler.sendWithPromise('FontFallback', { - id: id - })["finally"](function () { - _this13.commonObjs.resolve(id, font); - }); - }); - break; - - case 'FontPath': - case 'FontType3Res': - this.commonObjs.resolve(id, exportedData); - break; - - default: - throw new Error("Got unknown common object type ".concat(type)); - } - }, this); - messageHandler.on('obj', function (data) { - if (this.destroyed) { - return undefined; - } - - var _data2 = _slicedToArray(data, 4), - id = _data2[0], - pageIndex = _data2[1], - type = _data2[2], - imageData = _data2[3]; - - var pageProxy = this.pageCache[pageIndex]; - - if (pageProxy.objs.has(id)) { - return undefined; - } - - switch (type) { - case 'JpegStream': - return new Promise(function (resolve, reject) { - var img = new Image(); - - img.onload = function () { - resolve(img); - }; - - img.onerror = function () { - reject(new Error('Error during JPEG image loading')); - (0, _display_utils.releaseImageResources)(img); - }; - - img.src = imageData; - }).then(function (img) { - pageProxy.objs.resolve(id, img); - }); - - case 'Image': - 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: - throw new Error("Got unknown object type ".concat(type)); - } - - return undefined; - }, this); - messageHandler.on('DocProgress', function (data) { - if (this.destroyed) { - return; - } - - if (loadingTask.onProgress) { - loadingTask.onProgress({ - loaded: data.loaded, - total: data.total - }); - } - }, this); - messageHandler.on('PageError', function (data) { - if (this.destroyed) { - return; - } - - var page = this.pageCache[data.pageIndex]; - var intentState = page.intentStates[data.intent]; - - if (intentState.displayReadyCapability) { - intentState.displayReadyCapability.reject(new Error(data.error)); - } else { - throw new 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', this._onUnsupportedFeature, 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 _data3 = _slicedToArray(data, 2), - imageUrl = _data3[0], - components = _data3[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, - height = img.height; - var size = width * height; - var rgbaLength = size * 4; - var buf = new Uint8ClampedArray(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; - - if (components === 3) { - for (var 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 (var _i2 = 0, _j = 0; _i2 < rgbaLength; _i2 += 4, _j++) { - buf[_j] = data[_i2]; - } - } - - resolve({ - data: buf, - width: width, - height: height - }); - (0, _display_utils.releaseImageResources)(img); - tmpCanvas.width = 0; - tmpCanvas.height = 0; - tmpCanvas = null; - tmpCtx = null; - }; - - img.onerror = function () { - reject(new Error('JpegDecode failed to load image')); - (0, _display_utils.releaseImageResources)(img); - }; - - 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); + if (this._passwordCapability) { + this._passwordCapability.reject(new Error("Worker was destroyed during onPassword callback")); } - }, { - key: "_onUnsupportedFeature", - value: function _onUnsupportedFeature(_ref10) { - var featureId = _ref10.featureId; + const waitOn = []; + this.pageCache.forEach(function (page) { + if (page) { + waitOn.push(page._destroy()); + } + }); + this.pageCache.length = 0; + this.pagePromises.length = 0; + const terminated = this.messageHandler.sendWithPromise("Terminate", null); + waitOn.push(terminated); + Promise.all(waitOn).then(() => { + this.fontLoader.clear(); + + if (this._networkStream) { + this._networkStream.cancelAllRequests(new _util.AbortException("Worker was terminated.")); + } + + if (this.messageHandler) { + this.messageHandler.destroy(); + this.messageHandler = null; + } + + this.destroyCapability.resolve(); + }, this.destroyCapability.reject); + return this.destroyCapability.promise; + } + + setupMessageHandler() { + const { + messageHandler, + loadingTask + } = this; + messageHandler.on("GetReader", (data, sink) => { + (0, _util.assert)(this._networkStream, "GetReader - no `IPDFStream` instance available."); + this._fullReader = this._networkStream.getFullReader(); + + this._fullReader.onProgress = evt => { + this._lastProgress = { + loaded: evt.loaded, + total: evt.total + }; + }; + + sink.onPull = () => { + this._fullReader.read().then(function ({ + value, + done + }) { + if (done) { + sink.close(); + return; + } + + (0, _util.assert)((0, _util.isArrayBuffer)(value), "GetReader - expected an ArrayBuffer."); + sink.enqueue(new Uint8Array(value), 1, [value]); + }).catch(reason => { + sink.error(reason); + }); + }; + + sink.onCancel = reason => { + this._fullReader.cancel(reason); + + sink.ready.catch(readyReason => { + if (this.destroyed) { + return; + } + + throw readyReason; + }); + }; + }); + messageHandler.on("ReaderHeadersReady", data => { + const headersCapability = (0, _util.createPromiseCapability)(); + const fullReader = this._fullReader; + fullReader.headersReady.then(() => { + if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) { + if (this._lastProgress && loadingTask.onProgress) { + loadingTask.onProgress(this._lastProgress); + } + + fullReader.onProgress = evt => { + if (loadingTask.onProgress) { + loadingTask.onProgress({ + loaded: evt.loaded, + total: evt.total + }); + } + }; + } + + headersCapability.resolve({ + isStreamingSupported: fullReader.isStreamingSupported, + isRangeSupported: fullReader.isRangeSupported, + contentLength: fullReader.contentLength + }); + }, headersCapability.reject); + return headersCapability.promise; + }); + messageHandler.on("GetRangeReader", (data, sink) => { + (0, _util.assert)(this._networkStream, "GetRangeReader - no `IPDFStream` instance available."); + + const rangeReader = this._networkStream.getRangeReader(data.begin, data.end); + + if (!rangeReader) { + sink.close(); + return; + } + + sink.onPull = () => { + rangeReader.read().then(function ({ + value, + done + }) { + if (done) { + sink.close(); + return; + } + + (0, _util.assert)((0, _util.isArrayBuffer)(value), "GetRangeReader - expected an ArrayBuffer."); + sink.enqueue(new Uint8Array(value), 1, [value]); + }).catch(reason => { + sink.error(reason); + }); + }; + + sink.onCancel = reason => { + rangeReader.cancel(reason); + sink.ready.catch(readyReason => { + if (this.destroyed) { + return; + } + + throw readyReason; + }); + }; + }); + messageHandler.on("GetDoc", ({ + pdfInfo + }) => { + this._numPages = pdfInfo.numPages; + + loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this)); + }); + messageHandler.on("DocException", function (ex) { + let reason; + + switch (ex.name) { + case "PasswordException": + reason = new _util.PasswordException(ex.message, ex.code); + break; + + case "InvalidPDFException": + reason = new _util.InvalidPDFException(ex.message); + break; + + case "MissingPDFException": + reason = new _util.MissingPDFException(ex.message); + break; + + case "UnexpectedResponseException": + reason = new _util.UnexpectedResponseException(ex.message, ex.status); + break; + + case "UnknownErrorException": + reason = new _util.UnknownErrorException(ex.message, ex.details); + break; + } + + if (!(reason instanceof Error)) { + const msg = "DocException - expected a valid Error."; + (0, _util.warn)(msg); + } + + loadingTask._capability.reject(reason); + }); + messageHandler.on("PasswordRequest", exception => { + this._passwordCapability = (0, _util.createPromiseCapability)(); + + if (loadingTask.onPassword) { + const updatePassword = password => { + this._passwordCapability.resolve({ + password + }); + }; + + try { + loadingTask.onPassword(updatePassword, exception.code); + } catch (ex) { + this._passwordCapability.reject(ex); + } + } else { + this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code)); + } + + return this._passwordCapability.promise; + }); + messageHandler.on("DataLoaded", data => { + if (loadingTask.onProgress) { + loadingTask.onProgress({ + loaded: data.length, + total: data.length + }); + } + + this.downloadInfoCapability.resolve(data); + }); + messageHandler.on("StartRenderPage", data => { if (this.destroyed) { return; } - if (this.loadingTask.onUnsupportedFeature) { - this.loadingTask.onUnsupportedFeature(featureId); - } - } - }, { - key: "getData", - value: function getData() { - return this.messageHandler.sendWithPromise('GetData', null); - } - }, { - key: "getPage", - value: function getPage(pageNumber) { - var _this14 = this; + const page = this.pageCache[data.pageIndex]; - if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) { - return Promise.reject(new Error('Invalid page request')); + page._startRenderPage(data.transparency, data.intent); + }); + messageHandler.on("commonobj", data => { + if (this.destroyed) { + return; } - var pageIndex = pageNumber - 1; + const [id, type, exportedData] = data; - if (pageIndex in this.pagePromises) { - return this.pagePromises[pageIndex]; + if (this.commonObjs.has(id)) { + return; } - var promise = this.messageHandler.sendWithPromise('GetPage', { - pageIndex: pageIndex - }).then(function (pageInfo) { - if (_this14.destroyed) { - throw new Error('Transport destroyed'); + switch (type) { + case "Font": + const params = this._params; + + if ("error" in exportedData) { + const exportedError = exportedData.error; + (0, _util.warn)(`Error during font loading: ${exportedError}`); + this.commonObjs.resolve(id, exportedError); + break; + } + + let fontRegistry = null; + + if (params.pdfBug && globalThis.FontInspector && globalThis.FontInspector.enabled) { + fontRegistry = { + registerFont(font, url) { + globalThis.FontInspector.fontAdded(font, url); + } + + }; + } + + const font = new _font_loader.FontFaceObject(exportedData, { + isEvalSupported: params.isEvalSupported, + disableFontFace: params.disableFontFace, + ignoreErrors: params.ignoreErrors, + onUnsupportedFeature: this._onUnsupportedFeature.bind(this), + fontRegistry + }); + this.fontLoader.bind(font).catch(reason => { + return messageHandler.sendWithPromise("FontFallback", { + id + }); + }).finally(() => { + if (!params.fontExtraProperties && font.data) { + font.data = null; + } + + this.commonObjs.resolve(id, font); + }); + break; + + case "FontPath": + case "Image": + this.commonObjs.resolve(id, exportedData); + break; + + default: + throw new Error(`Got unknown common object type ${type}`); + } + }); + messageHandler.on("obj", data => { + if (this.destroyed) { + return undefined; + } + + const [id, pageIndex, type, imageData] = data; + const pageProxy = this.pageCache[pageIndex]; + + if (pageProxy.objs.has(id)) { + return undefined; + } + + switch (type) { + case "Image": + pageProxy.objs.resolve(id, imageData); + const MAX_IMAGE_SIZE_TO_STORE = 8000000; + + if (imageData && "data" in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) { + pageProxy.cleanupAfterRender = true; + } + + break; + + default: + throw new Error(`Got unknown object type ${type}`); + } + + return undefined; + }); + messageHandler.on("DocProgress", data => { + if (this.destroyed) { + return; + } + + if (loadingTask.onProgress) { + loadingTask.onProgress({ + loaded: data.loaded, + total: data.total + }); + } + }); + messageHandler.on("UnsupportedFeature", this._onUnsupportedFeature.bind(this)); + messageHandler.on("FetchBuiltInCMap", (data, sink) => { + if (this.destroyed) { + sink.error(new Error("Worker was destroyed")); + return; + } + + let fetched = false; + + sink.onPull = () => { + if (fetched) { + sink.close(); + return; } - var page = new PDFPageProxy(pageIndex, pageInfo, _this14, _this14._params.pdfBug); - _this14.pageCache[pageIndex] = page; - return page; - }); - this.pagePromises[pageIndex] = promise; - return promise; + fetched = true; + this.CMapReaderFactory.fetch(data).then(function (builtInCMap) { + sink.enqueue(builtInCMap, 1, [builtInCMap.cMapData.buffer]); + }).catch(function (reason) { + sink.error(reason); + }); + }; + }); + } + + _onUnsupportedFeature({ + featureId + }) { + if (this.destroyed) { + return; } - }, { - key: "getPageIndex", - value: function getPageIndex(ref) { - return this.messageHandler.sendWithPromise('GetPageIndex', { - ref: ref - })["catch"](function (reason) { - return Promise.reject(new Error(reason)); - }); + + if (this.loadingTask.onUnsupportedFeature) { + this.loadingTask.onUnsupportedFeature(featureId); } - }, { - key: "getAnnotations", - value: function getAnnotations(pageIndex, intent) { - return this.messageHandler.sendWithPromise('GetAnnotations', { - pageIndex: pageIndex, - intent: intent - }); + } + + getData() { + return this.messageHandler.sendWithPromise("GetData", null); + } + + getPage(pageNumber) { + if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) { + return Promise.reject(new Error("Invalid page request")); } - }, { - key: "getDestinations", - value: function getDestinations() { - return this.messageHandler.sendWithPromise('GetDestinations', null); + + const pageIndex = pageNumber - 1; + + if (pageIndex in this.pagePromises) { + return this.pagePromises[pageIndex]; } - }, { - key: "getDestination", - value: function getDestination(id) { - if (typeof id !== 'string') { - return Promise.reject(new Error('Invalid destination request.')); + + const promise = this.messageHandler.sendWithPromise("GetPage", { + pageIndex + }).then(pageInfo => { + if (this.destroyed) { + throw new Error("Transport destroyed"); } - return this.messageHandler.sendWithPromise('GetDestination', { - id: id - }); - } - }, { - key: "getPageLabels", - value: function getPageLabels() { - return this.messageHandler.sendWithPromise('GetPageLabels', null); - } - }, { - key: "getPageLayout", - value: function getPageLayout() { - return this.messageHandler.sendWithPromise('GetPageLayout', null); - } - }, { - key: "getPageMode", - value: function getPageMode() { - return this.messageHandler.sendWithPromise('GetPageMode', null); - } - }, { - key: "getViewerPreferences", - value: function getViewerPreferences() { - return this.messageHandler.sendWithPromise('GetViewerPreferences', null); - } - }, { - key: "getOpenActionDestination", - value: function getOpenActionDestination() { - return this.messageHandler.sendWithPromise('GetOpenActionDestination', null); - } - }, { - key: "getAttachments", - value: function getAttachments() { - return this.messageHandler.sendWithPromise('GetAttachments', null); - } - }, { - key: "getJavaScript", - value: function getJavaScript() { - return this.messageHandler.sendWithPromise('GetJavaScript', null); - } - }, { - key: "getOutline", - value: function getOutline() { - return this.messageHandler.sendWithPromise('GetOutline', null); - } - }, { - key: "getPermissions", - value: function getPermissions() { - return this.messageHandler.sendWithPromise('GetPermissions', null); - } - }, { - key: "getMetadata", - value: function getMetadata() { - var _this15 = this; + const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.ownerDocument, this._params.pdfBug); + this.pageCache[pageIndex] = page; + return page; + }); + this.pagePromises[pageIndex] = promise; + return promise; + } - return this.messageHandler.sendWithPromise('GetMetadata', null).then(function (results) { - return { - info: results[0], - metadata: results[1] ? new _metadata.Metadata(results[1]) : null, - contentDispositionFilename: _this15._fullReader ? _this15._fullReader.filename : null - }; - }); - } - }, { - key: "getStats", - value: function getStats() { - return this.messageHandler.sendWithPromise('GetStats', null); - } - }, { - key: "startCleanup", - value: function startCleanup() { - var _this16 = this; + getPageIndex(ref) { + return this.messageHandler.sendWithPromise("GetPageIndex", { + ref + }).catch(function (reason) { + return Promise.reject(new Error(reason)); + }); + } - this.messageHandler.sendWithPromise('Cleanup', null).then(function () { - for (var i = 0, ii = _this16.pageCache.length; i < ii; i++) { - var page = _this16.pageCache[i]; + getAnnotations(pageIndex, intent) { + return this.messageHandler.sendWithPromise("GetAnnotations", { + pageIndex, + intent + }); + } - if (page) { - page.cleanup(); + saveDocument(annotationStorage) { + return this.messageHandler.sendWithPromise("SaveDocument", { + numPages: this._numPages, + annotationStorage: annotationStorage && annotationStorage.getAll() || null, + filename: this._fullReader ? this._fullReader.filename : null + }).finally(() => { + if (annotationStorage) { + annotationStorage.resetModified(); + } + }); + } + + getDestinations() { + return this.messageHandler.sendWithPromise("GetDestinations", null); + } + + getDestination(id) { + if (typeof id !== "string") { + return Promise.reject(new Error("Invalid destination request.")); + } + + return this.messageHandler.sendWithPromise("GetDestination", { + id + }); + } + + getPageLabels() { + return this.messageHandler.sendWithPromise("GetPageLabels", null); + } + + getPageLayout() { + return this.messageHandler.sendWithPromise("GetPageLayout", null); + } + + getPageMode() { + return this.messageHandler.sendWithPromise("GetPageMode", null); + } + + getViewerPreferences() { + return this.messageHandler.sendWithPromise("GetViewerPreferences", null); + } + + getOpenAction() { + return this.messageHandler.sendWithPromise("GetOpenAction", null); + } + + getAttachments() { + return this.messageHandler.sendWithPromise("GetAttachments", null); + } + + getJavaScript() { + return this.messageHandler.sendWithPromise("GetJavaScript", null); + } + + getOutline() { + return this.messageHandler.sendWithPromise("GetOutline", null); + } + + getOptionalContentConfig() { + return this.messageHandler.sendWithPromise("GetOptionalContentConfig", null).then(results => { + return new _optional_content_config.OptionalContentConfig(results); + }); + } + + getPermissions() { + return this.messageHandler.sendWithPromise("GetPermissions", null); + } + + getMetadata() { + return this.messageHandler.sendWithPromise("GetMetadata", null).then(results => { + return { + info: results[0], + metadata: results[1] ? new _metadata.Metadata(results[1]) : null, + contentDispositionFilename: this._fullReader ? this._fullReader.filename : null + }; + }); + } + + getStats() { + return this.messageHandler.sendWithPromise("GetStats", null); + } + + startCleanup() { + return this.messageHandler.sendWithPromise("Cleanup", null).then(() => { + for (let i = 0, ii = this.pageCache.length; i < ii; i++) { + const page = this.pageCache[i]; + + if (page) { + const cleanupSuccessful = page.cleanup(); + + if (!cleanupSuccessful) { + throw new Error(`startCleanup: Page ${i + 1} is currently rendering.`); } } + } - _this16.commonObjs.clear(); + this.commonObjs.clear(); + this.fontLoader.clear(); + }); + } - _this16.fontLoader.clear(); - }); - } - }, { - key: "loadingParams", - get: function get() { - var params = this._params; - return (0, _util.shadow)(this, 'loadingParams', { - disableAutoFetch: params.disableAutoFetch, - disableCreateObjectURL: params.disableCreateObjectURL, - disableFontFace: params.disableFontFace, - nativeImageDecoderSupport: params.nativeImageDecoderSupport - }); - } - }]); + get loadingParams() { + const params = this._params; + return (0, _util.shadow)(this, "loadingParams", { + disableAutoFetch: params.disableAutoFetch, + disableFontFace: params.disableFontFace + }); + } - return WorkerTransport; -}(); - -var PDFObjects = -/*#__PURE__*/ -function () { - function PDFObjects() { - _classCallCheck(this, PDFObjects); +} +class PDFObjects { + constructor() { this._objs = Object.create(null); } - _createClass(PDFObjects, [{ - key: "_ensureObj", - value: function _ensureObj(objId) { - if (this._objs[objId]) { - return this._objs[objId]; - } - - return this._objs[objId] = { - capability: (0, _util.createPromiseCapability)(), - data: null, - resolved: false - }; + _ensureObj(objId) { + if (this._objs[objId]) { + return this._objs[objId]; } - }, { - key: "get", - value: function get(objId) { - var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - if (callback) { - this._ensureObj(objId).capability.promise.then(callback); + return this._objs[objId] = { + capability: (0, _util.createPromiseCapability)(), + data: null, + resolved: false + }; + } - return null; - } + get(objId, callback = null) { + if (callback) { + this._ensureObj(objId).capability.promise.then(callback); - var obj = this._objs[objId]; - - if (!obj || !obj.resolved) { - throw new Error("Requesting object that isn't resolved yet ".concat(objId, ".")); - } - - return obj.data; + return null; } - }, { - key: "has", - value: function has(objId) { - var obj = this._objs[objId]; - return obj ? obj.resolved : false; + + const obj = this._objs[objId]; + + if (!obj || !obj.resolved) { + throw new Error(`Requesting object that isn't resolved yet ${objId}.`); } - }, { - key: "resolve", - value: function resolve(objId, data) { - var obj = this._ensureObj(objId); - obj.resolved = true; - obj.data = data; - obj.capability.resolve(data); - } - }, { - key: "clear", - value: function clear() { - for (var objId in this._objs) { - var data = this._objs[objId].data; + return obj.data; + } - if (typeof Image !== 'undefined' && data instanceof Image) { - (0, _display_utils.releaseImageResources)(data); - } - } + has(objId) { + const obj = this._objs[objId]; + return obj ? obj.resolved : false; + } - this._objs = Object.create(null); - } - }]); + resolve(objId, data) { + const obj = this._ensureObj(objId); - return PDFObjects; -}(); + obj.resolved = true; + obj.data = data; + obj.capability.resolve(data); + } -var RenderTask = -/*#__PURE__*/ -function () { - function RenderTask(internalRenderTask) { - _classCallCheck(this, RenderTask); + clear() { + this._objs = Object.create(null); + } +} + +class RenderTask { + constructor(internalRenderTask) { this._internalRenderTask = internalRenderTask; this.onContinue = null; } - _createClass(RenderTask, [{ - key: "cancel", - value: function cancel() { - this._internalRenderTask.cancel(); - } - }, { - key: "then", - value: function then(onFulfilled, onRejected) { - (0, _display_utils.deprecated)('RenderTask.then method, use the `promise` getter instead.'); - return this.promise.then.apply(this.promise, arguments); - } - }, { - key: "promise", - get: function get() { - return this._internalRenderTask.capability.promise; - } - }]); + get promise() { + return this._internalRenderTask.capability.promise; + } - return RenderTask; -}(); + cancel() { + this._internalRenderTask.cancel(); + } -var InternalRenderTask = function InternalRenderTaskClosure() { - var canvasInRendering = new WeakSet(); +} - var InternalRenderTask = - /*#__PURE__*/ - function () { - function InternalRenderTask(_ref11) { - var callback = _ref11.callback, - params = _ref11.params, - objs = _ref11.objs, - commonObjs = _ref11.commonObjs, - operatorList = _ref11.operatorList, - pageNumber = _ref11.pageNumber, - canvasFactory = _ref11.canvasFactory, - webGLContext = _ref11.webGLContext, - _ref11$useRequestAnim = _ref11.useRequestAnimationFrame, - useRequestAnimationFrame = _ref11$useRequestAnim === void 0 ? false : _ref11$useRequestAnim, - _ref11$pdfBug = _ref11.pdfBug, - pdfBug = _ref11$pdfBug === void 0 ? false : _ref11$pdfBug; - - _classCallCheck(this, InternalRenderTask); +const InternalRenderTask = function InternalRenderTaskClosure() { + const canvasInRendering = new WeakSet(); + class InternalRenderTask { + constructor({ + callback, + params, + objs, + commonObjs, + operatorList, + pageIndex, + canvasFactory, + webGLContext, + useRequestAnimationFrame = false, + pdfBug = false + }) { this.callback = callback; this.params = params; this.objs = objs; this.commonObjs = commonObjs; this.operatorListIdx = null; this.operatorList = operatorList; - this.pageNumber = pageNumber; + this._pageIndex = pageIndex; this.canvasFactory = canvasFactory; this.webGLContext = webGLContext; this._pdfBug = pdfBug; this.running = false; this.graphicsReadyCallback = null; this.graphicsReady = false; - this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== 'undefined'; + this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== "undefined"; this.cancelled = false; this.capability = (0, _util.createPromiseCapability)(); this.task = new RenderTask(this); @@ -12053,1531 +3790,147 @@ var InternalRenderTask = function InternalRenderTaskClosure() { this._canvas = params.canvasContext.canvas; } - _createClass(InternalRenderTask, [{ - key: "initializeGraphics", - value: function initializeGraphics() { - var transparency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + get completed() { + return this.capability.promise.catch(function () {}); + } - if (this.cancelled) { - return; + initializeGraphics({ + transparency = false, + optionalContentConfig + }) { + if (this.cancelled) { + return; + } + + if (this._canvas) { + if (canvasInRendering.has(this._canvas)) { + throw new Error("Cannot use the same canvas during multiple render() operations. " + "Use different canvas or ensure previous operations were " + "cancelled or completed."); } - if (this._canvas) { - if (canvasInRendering.has(this._canvas)) { - throw new Error('Cannot use the same canvas during multiple render() operations. ' + 'Use different canvas or ensure previous operations were ' + 'cancelled or completed.'); - } + canvasInRendering.add(this._canvas); + } - canvasInRendering.add(this._canvas); + if (this._pdfBug && globalThis.StepperManager && globalThis.StepperManager.enabled) { + this.stepper = globalThis.StepperManager.create(this._pageIndex); + this.stepper.init(this.operatorList); + this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint(); + } + + const { + canvasContext, + viewport, + transform, + imageLayer, + background + } = this.params; + this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, imageLayer, optionalContentConfig); + this.gfx.beginDrawing({ + transform, + viewport, + transparency, + background + }); + this.operatorListIdx = 0; + this.graphicsReady = true; + + if (this.graphicsReadyCallback) { + this.graphicsReadyCallback(); + } + } + + cancel(error = null) { + this.running = false; + this.cancelled = true; + + if (this.gfx) { + this.gfx.endDrawing(); + } + + if (this._canvas) { + canvasInRendering.delete(this._canvas); + } + + this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, "canvas")); + } + + operatorListChanged() { + if (!this.graphicsReady) { + if (!this.graphicsReadyCallback) { + this.graphicsReadyCallback = this._continueBound; } - if (this._pdfBug && _global_scope["default"].StepperManager && _global_scope["default"].StepperManager.enabled) { - this.stepper = _global_scope["default"].StepperManager.create(this.pageNumber - 1); - this.stepper.init(this.operatorList); - this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint(); - } + return; + } - var _this$params = this.params, - canvasContext = _this$params.canvasContext, - viewport = _this$params.viewport, - transform = _this$params.transform, - imageLayer = _this$params.imageLayer, - background = _this$params.background; - this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, imageLayer); - this.gfx.beginDrawing({ - transform: transform, - viewport: viewport, - transparency: transparency, - background: background + if (this.stepper) { + this.stepper.updateOperatorList(this.operatorList); + } + + if (this.running) { + return; + } + + this._continue(); + } + + _continue() { + this.running = true; + + if (this.cancelled) { + return; + } + + if (this.task.onContinue) { + this.task.onContinue(this._scheduleNextBound); + } else { + this._scheduleNext(); + } + } + + _scheduleNext() { + if (this._useRequestAnimationFrame) { + window.requestAnimationFrame(() => { + this._nextBound().catch(this.cancel.bind(this)); }); - this.operatorListIdx = 0; - this.graphicsReady = true; - - if (this.graphicsReadyCallback) { - this.graphicsReadyCallback(); - } + } else { + Promise.resolve().then(this._nextBound).catch(this.cancel.bind(this)); } - }, { - key: "cancel", - value: function cancel() { - var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + } + + async _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; - this.cancelled = true; - if (this.gfx) { + if (this.operatorList.lastChunk) { this.gfx.endDrawing(); - } - if (this._canvas) { - canvasInRendering["delete"](this._canvas); - } - - this.callback(error || new _display_utils.RenderingCancelledException("Rendering cancelled, page ".concat(this.pageNumber), 'canvas')); - } - }, { - key: "operatorListChanged", - value: function operatorListChanged() { - if (!this.graphicsReady) { - if (!this.graphicsReadyCallback) { - this.graphicsReadyCallback = this._continueBound; + if (this._canvas) { + canvasInRendering.delete(this._canvas); } - return; - } - - if (this.stepper) { - this.stepper.updateOperatorList(this.operatorList); - } - - if (this.running) { - return; - } - - this._continue(); - } - }, { - key: "_continue", - value: function _continue() { - this.running = true; - - if (this.cancelled) { - return; - } - - if (this.task.onContinue) { - this.task.onContinue(this._scheduleNextBound); - } else { - this._scheduleNext(); + this.callback(); } } - }, { - key: "_scheduleNext", - value: function _scheduleNext() { - var _this17 = this; + } - if (this._useRequestAnimationFrame) { - window.requestAnimationFrame(function () { - _this17._nextBound()["catch"](_this17.cancel.bind(_this17)); - }); - } else { - Promise.resolve().then(this._nextBound)["catch"](this.cancel.bind(this)); - } - } - }, { - key: "_next", - value: function () { - var _next2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee() { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!this.cancelled) { - _context.next = 2; - break; - } - - return _context.abrupt("return"); - - case 2: - 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(); - - if (this._canvas) { - canvasInRendering["delete"](this._canvas); - } - - this.callback(); - } - } - - case 4: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function _next() { - return _next2.apply(this, arguments); - } - - return _next; - }() - }]); - - return InternalRenderTask; - }(); + } return InternalRenderTask; }(); -var version = '2.2.228'; +const version = '2.6.347'; exports.version = version; -var build = 'd7afb74a'; +const build = '3be9c65f'; exports.build = build; /***/ }), -/* 148 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = __w_pdfjs_require__(149); - -/***/ }), -/* 149 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(module) { - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var runtime = function (exports) { - "use strict"; - - var Op = Object.prototype; - var hasOwn = Op.hasOwnProperty; - var undefined; - var $Symbol = typeof Symbol === "function" ? Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; - var generator = Object.create(protoGenerator.prototype); - var context = new Context(tryLocsList || []); - generator._invoke = makeInvokeMethod(innerFn, self, context); - return generator; - } - - exports.wrap = wrap; - - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; - } - } - - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; - var ContinueSentinel = {}; - - function Generator() {} - - function GeneratorFunction() {} - - function GeneratorFunctionPrototype() {} - - var IteratorPrototype = {}; - - IteratorPrototype[iteratorSymbol] = function () { - return this; - }; - - var getProto = Object.getPrototypeOf; - var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - - if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { - IteratorPrototype = NativeIteratorPrototype; - } - - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; - GeneratorFunctionPrototype.constructor = GeneratorFunction; - GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; - - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - prototype[method] = function (arg) { - return this._invoke(method, arg); - }; - }); - } - - exports.isGeneratorFunction = function (genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; - }; - - exports.mark = function (genFun) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - - if (!(toStringTagSymbol in genFun)) { - genFun[toStringTagSymbol] = "GeneratorFunction"; - } - } - - genFun.prototype = Object.create(Gp); - return genFun; - }; - - exports.awrap = function (arg) { - return { - __await: arg - }; - }; - - function AsyncIterator(generator) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value = result.value; - - if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) { - return Promise.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }); - } - - return Promise.resolve(value).then(function (unwrapped) { - result.value = unwrapped; - resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); - } - } - - var previousPromise; - - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new Promise(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - - this._invoke = enqueue; - } - - defineIteratorMethods(AsyncIterator.prototype); - - AsyncIterator.prototype[asyncIteratorSymbol] = function () { - return this; - }; - - exports.AsyncIterator = AsyncIterator; - - exports.async = function (innerFn, outerFn, self, tryLocsList) { - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList)); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }; - - function makeInvokeMethod(innerFn, self, context) { - var state = GenStateSuspendedStart; - return function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); - } - - if (state === GenStateCompleted) { - if (method === "throw") { - throw arg; - } - - return doneResult(); - } - - context.method = method; - context.arg = arg; - - while (true) { - var delegate = context.delegate; - - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - - if (context.method === "next") { - context.sent = context._sent = context.arg; - } else if (context.method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw context.arg; - } - - context.dispatchException(context.arg); - } else if (context.method === "return") { - context.abrupt("return", context.arg); - } - - state = GenStateExecuting; - var record = tryCatch(innerFn, self, context); - - if (record.type === "normal") { - state = context.done ? GenStateCompleted : GenStateSuspendedYield; - - if (record.arg === ContinueSentinel) { - continue; - } - - return { - value: record.arg, - done: context.done - }; - } else if (record.type === "throw") { - state = GenStateCompleted; - context.method = "throw"; - context.arg = record.arg; - } - } - }; - } - - function maybeInvokeDelegate(delegate, context) { - var method = delegate.iterator[context.method]; - - if (method === undefined) { - context.delegate = null; - - if (context.method === "throw") { - if (delegate.iterator["return"]) { - context.method = "return"; - context.arg = undefined; - maybeInvokeDelegate(delegate, context); - - if (context.method === "throw") { - return ContinueSentinel; - } - } - - context.method = "throw"; - context.arg = new TypeError("The iterator does not provide a 'throw' method"); - } - - return ContinueSentinel; - } - - var record = tryCatch(method, delegate.iterator, context.arg); - - if (record.type === "throw") { - context.method = "throw"; - context.arg = record.arg; - context.delegate = null; - return ContinueSentinel; - } - - var info = record.arg; - - if (!info) { - context.method = "throw"; - context.arg = new TypeError("iterator result is not an object"); - context.delegate = null; - return ContinueSentinel; - } - - if (info.done) { - context[delegate.resultName] = info.value; - context.next = delegate.nextLoc; - - if (context.method !== "return") { - context.method = "next"; - context.arg = undefined; - } - } else { - return info; - } - - context.delegate = null; - return ContinueSentinel; - } - - defineIteratorMethods(Gp); - Gp[toStringTagSymbol] = "Generator"; - - Gp[iteratorSymbol] = function () { - return this; - }; - - Gp.toString = function () { - return "[object Generator]"; - }; - - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - - if (1 in locs) { - entry.catchLoc = locs[1]; - } - - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; - } - - this.tryEntries.push(entry); - } - - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; - } - - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(true); - } - - exports.keys = function (object) { - var keys = []; - - for (var key in object) { - keys.push(key); - } - - keys.reverse(); - return function next() { - while (keys.length) { - var key = keys.pop(); - - if (key in object) { - next.value = key; - next.done = false; - return next; - } - } - - next.done = true; - return next; - }; - }; - - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } - - if (typeof iterable.next === "function") { - return iterable; - } - - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - while (++i < iterable.length) { - if (hasOwn.call(iterable, i)) { - next.value = iterable[i]; - next.done = false; - return next; - } - } - - next.value = undefined; - next.done = true; - return next; - }; - - return next.next = next; - } - } - - return { - next: doneResult - }; - } - - exports.values = values; - - function doneResult() { - return { - value: undefined, - done: true - }; - } - - Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - this.prev = 0; - this.next = 0; - this.sent = this._sent = undefined; - this.done = false; - this.delegate = null; - this.method = "next"; - this.arg = undefined; - this.tryEntries.forEach(resetTryEntry); - - if (!skipTempReset) { - for (var name in this) { - if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { - this[name] = undefined; - } - } - } - }, - stop: function stop() { - this.done = true; - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) { - throw exception; - } - - var context = this; - - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception; - context.next = loc; - - if (caught) { - context.method = "next"; - context.arg = undefined; - } - - return !!caught; - } - - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - var record = entry.completion; - - if (entry.tryLoc === "root") { - return handle("end"); - } - - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); - - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - - if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { - finallyEntry = null; - } - - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type; - record.arg = arg; - - if (finallyEntry) { - this.method = "next"; - this.next = finallyEntry.finallyLoc; - return ContinueSentinel; - } - - return this.complete(record); - }, - complete: function complete(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } - - if (record.type === "break" || record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = this.arg = record.arg; - this.method = "return"; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } - - return ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.finallyLoc === finallyLoc) { - this.complete(entry.completion, entry.afterLoc); - resetTryEntry(entry); - return ContinueSentinel; - } - } - }, - "catch": function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - - return thrown; - } - } - - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }; - - if (this.method === "next") { - this.arg = undefined; - } - - return ContinueSentinel; - } - }; - return exports; -}(( false ? undefined : _typeof(module)) === "object" ? module.exports : {}); - -try { - regeneratorRuntime = runtime; -} catch (accidentalStrictMode) { - Function("r", "regeneratorRuntime = r")(runtime); -} -/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(150)(module))) - -/***/ }), -/* 150 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (module) { - if (!module.webpackPolyfill) { - module.deprecate = function () {}; - - module.paths = []; - if (!module.children) module.children = []; - Object.defineProperty(module, "loaded", { - enumerable: true, - get: function get() { - return module.l; - } - }); - Object.defineProperty(module, "id", { - enumerable: true, - get: function get() { - return module.i; - } - }); - module.webpackPolyfill = 1; - } - - return module; -}; - -/***/ }), -/* 151 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.addLinkAttributes = addLinkAttributes; -exports.getFilenameFromUrl = getFilenameFromUrl; -exports.isFetchSupported = isFetchSupported; -exports.isValidFetchUrl = isValidFetchUrl; -exports.loadScript = loadScript; -exports.deprecated = deprecated; -exports.releaseImageResources = releaseImageResources; -exports.PDFDateString = exports.DummyStatTimer = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.RenderingCancelledException = exports.PageViewport = void 0; - -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); - -var _util = __w_pdfjs_require__(1); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var DEFAULT_LINK_REL = 'noopener noreferrer nofollow'; -exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL; -var SVG_NS = 'http://www.w3.org/2000/svg'; - -var DOMCanvasFactory = -/*#__PURE__*/ -function () { - function DOMCanvasFactory() { - _classCallCheck(this, DOMCanvasFactory); - } - - _createClass(DOMCanvasFactory, [{ - key: "create", - value: function create(width, height) { - if (width <= 0 || height <= 0) { - throw new Error('Invalid canvas size'); - } - - var canvas = document.createElement('canvas'); - var context = canvas.getContext('2d'); - canvas.width = width; - canvas.height = height; - return { - canvas: canvas, - context: context - }; - } - }, { - key: "reset", - value: function reset(canvasAndContext, width, height) { - if (!canvasAndContext.canvas) { - throw new Error('Canvas is not specified'); - } - - if (width <= 0 || height <= 0) { - throw new Error('Invalid canvas size'); - } - - canvasAndContext.canvas.width = width; - canvasAndContext.canvas.height = height; - } - }, { - key: "destroy", - value: function destroy(canvasAndContext) { - if (!canvasAndContext.canvas) { - throw new Error('Canvas is not specified'); - } - - canvasAndContext.canvas.width = 0; - canvasAndContext.canvas.height = 0; - canvasAndContext.canvas = null; - canvasAndContext.context = null; - } - }]); - - return DOMCanvasFactory; -}(); - -exports.DOMCanvasFactory = DOMCanvasFactory; - -var DOMCMapReaderFactory = -/*#__PURE__*/ -function () { - function DOMCMapReaderFactory(_ref) { - var _ref$baseUrl = _ref.baseUrl, - baseUrl = _ref$baseUrl === void 0 ? null : _ref$baseUrl, - _ref$isCompressed = _ref.isCompressed, - isCompressed = _ref$isCompressed === void 0 ? false : _ref$isCompressed; - - _classCallCheck(this, DOMCMapReaderFactory); - - this.baseUrl = baseUrl; - this.isCompressed = isCompressed; - } - - _createClass(DOMCMapReaderFactory, [{ - key: "fetch", - value: function (_fetch) { - function fetch(_x) { - return _fetch.apply(this, arguments); - } - - fetch.toString = function () { - return _fetch.toString(); - }; - - return fetch; - }( - /*#__PURE__*/ - function () { - var _ref3 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2(_ref2) { - var _this = this; - - var name, url, compressionType; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - name = _ref2.name; - - if (this.baseUrl) { - _context2.next = 3; - break; - } - - throw new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.'); - - case 3: - if (name) { - _context2.next = 5; - break; - } - - throw new Error('CMap name must be specified.'); - - case 5: - url = this.baseUrl + name + (this.isCompressed ? '.bcmap' : ''); - compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE; - - if (!(isFetchSupported() && isValidFetchUrl(url, document.baseURI))) { - _context2.next = 9; - break; - } - - return _context2.abrupt("return", fetch(url).then( - /*#__PURE__*/ - function () { - var _ref4 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(response) { - var cMapData; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (response.ok) { - _context.next = 2; - break; - } - - throw new Error(response.statusText); - - case 2: - if (!_this.isCompressed) { - _context.next = 10; - break; - } - - _context.t0 = Uint8Array; - _context.next = 6; - return response.arrayBuffer(); - - case 6: - _context.t1 = _context.sent; - cMapData = new _context.t0(_context.t1); - _context.next = 15; - break; - - case 10: - _context.t2 = _util.stringToBytes; - _context.next = 13; - return response.text(); - - case 13: - _context.t3 = _context.sent; - cMapData = (0, _context.t2)(_context.t3); - - case 15: - return _context.abrupt("return", { - cMapData: cMapData, - compressionType: compressionType - }); - - case 16: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - - return function (_x3) { - return _ref4.apply(this, arguments); - }; - }())["catch"](function (reason) { - throw new Error("Unable to load ".concat(_this.isCompressed ? 'binary ' : '') + "CMap at: ".concat(url)); - })); - - case 9: - return _context2.abrupt("return", new Promise(function (resolve, reject) { - var request = new XMLHttpRequest(); - request.open('GET', url, true); - - if (_this.isCompressed) { - request.responseType = 'arraybuffer'; - } - - request.onreadystatechange = function () { - if (request.readyState !== XMLHttpRequest.DONE) { - return; - } - - if (request.status === 200 || request.status === 0) { - var cMapData; - - if (_this.isCompressed && request.response) { - cMapData = new Uint8Array(request.response); - } else if (!_this.isCompressed && request.responseText) { - cMapData = (0, _util.stringToBytes)(request.responseText); - } - - if (cMapData) { - resolve({ - cMapData: cMapData, - compressionType: compressionType - }); - return; - } - } - - reject(new Error(request.statusText)); - }; - - request.send(null); - })["catch"](function (reason) { - throw new Error("Unable to load ".concat(_this.isCompressed ? 'binary ' : '') + "CMap at: ".concat(url)); - })); - - case 10: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - return function (_x2) { - return _ref3.apply(this, arguments); - }; - }()) - }]); - - return DOMCMapReaderFactory; -}(); - -exports.DOMCMapReaderFactory = DOMCMapReaderFactory; - -var DOMSVGFactory = -/*#__PURE__*/ -function () { - function DOMSVGFactory() { - _classCallCheck(this, DOMSVGFactory); - } - - _createClass(DOMSVGFactory, [{ - key: "create", - value: function create(width, height) { - (0, _util.assert)(width > 0 && height > 0, 'Invalid SVG dimensions'); - var svg = document.createElementNS(SVG_NS, 'svg:svg'); - svg.setAttribute('version', '1.1'); - svg.setAttribute('width', width + 'px'); - svg.setAttribute('height', height + 'px'); - svg.setAttribute('preserveAspectRatio', 'none'); - svg.setAttribute('viewBox', '0 0 ' + width + ' ' + height); - return svg; - } - }, { - key: "createElement", - value: function createElement(type) { - (0, _util.assert)(typeof type === 'string', 'Invalid SVG element type'); - return document.createElementNS(SVG_NS, type); - } - }]); - - return DOMSVGFactory; -}(); - -exports.DOMSVGFactory = DOMSVGFactory; - -var PageViewport = -/*#__PURE__*/ -function () { - function PageViewport(_ref5) { - var viewBox = _ref5.viewBox, - scale = _ref5.scale, - rotation = _ref5.rotation, - _ref5$offsetX = _ref5.offsetX, - offsetX = _ref5$offsetX === void 0 ? 0 : _ref5$offsetX, - _ref5$offsetY = _ref5.offsetY, - offsetY = _ref5$offsetY === void 0 ? 0 : _ref5$offsetY, - _ref5$dontFlip = _ref5.dontFlip, - dontFlip = _ref5$dontFlip === void 0 ? false : _ref5$dontFlip; - - _classCallCheck(this, PageViewport); - - 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; - } - - _createClass(PageViewport, [{ - key: "clone", - value: function clone() { - var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref6$scale = _ref6.scale, - scale = _ref6$scale === void 0 ? this.scale : _ref6$scale, - _ref6$rotation = _ref6.rotation, - rotation = _ref6$rotation === void 0 ? this.rotation : _ref6$rotation, - _ref6$dontFlip = _ref6.dontFlip, - dontFlip = _ref6$dontFlip === void 0 ? false : _ref6$dontFlip; - - return new PageViewport({ - viewBox: this.viewBox.slice(), - scale: scale, - rotation: rotation, - offsetX: this.offsetX, - offsetY: this.offsetY, - dontFlip: dontFlip - }); - } - }, { - key: "convertToViewportPoint", - value: function convertToViewportPoint(x, y) { - return _util.Util.applyTransform([x, y], this.transform); - } - }, { - key: "convertToViewportRectangle", - value: function convertToViewportRectangle(rect) { - var topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform); - - var bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform); - - return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]]; - } - }, { - key: "convertToPdfPoint", - value: function convertToPdfPoint(x, y) { - return _util.Util.applyInverseTransform([x, y], this.transform); - } - }]); - - return PageViewport; -}(); - -exports.PageViewport = PageViewport; - -var RenderingCancelledException = function RenderingCancelledException() { - function RenderingCancelledException(msg, type) { - this.message = msg; - this.type = type; - } - - RenderingCancelledException.prototype = new Error(); - RenderingCancelledException.prototype.name = 'RenderingCancelledException'; - RenderingCancelledException.constructor = RenderingCancelledException; - return RenderingCancelledException; -}(); - -exports.RenderingCancelledException = RenderingCancelledException; -var LinkTarget = { - NONE: 0, - SELF: 1, - BLANK: 2, - PARENT: 3, - TOP: 4 -}; -exports.LinkTarget = LinkTarget; -var LinkTargetStringMap = ['', '_self', '_blank', '_parent', '_top']; - -function addLinkAttributes(link) { - var _ref7 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - url = _ref7.url, - target = _ref7.target, - rel = _ref7.rel; - - link.href = link.title = url ? (0, _util.removeNullCharacters)(url) : ''; - - if (url) { - var LinkTargetValues = Object.values(LinkTarget); - var targetIndex = LinkTargetValues.includes(target) ? target : LinkTarget.NONE; - link.target = LinkTargetStringMap[targetIndex]; - link.rel = typeof rel === 'string' ? rel : DEFAULT_LINK_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); -} - -var StatTimer = -/*#__PURE__*/ -function () { - function StatTimer() { - var enable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; - - _classCallCheck(this, StatTimer); - - this.enabled = !!enable; - this.started = Object.create(null); - this.times = []; - } - - _createClass(StatTimer, [{ - key: "time", - value: function time(name) { - if (!this.enabled) { - return; - } - - if (name in this.started) { - (0, _util.warn)('Timer is already running for ' + name); - } - - this.started[name] = Date.now(); - } - }, { - key: "timeEnd", - value: function timeEnd(name) { - if (!this.enabled) { - return; - } - - if (!(name in this.started)) { - (0, _util.warn)('Timer has not been started for ' + name); - } - - this.times.push({ - 'name': name, - 'start': this.started[name], - 'end': Date.now() - }); - delete this.started[name]; - } - }, { - key: "toString", - value: function toString() { - var out = '', - longest = 0; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = this.times[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var time = _step.value; - var name = time.name; - - if (name.length > longest) { - longest = name.length; - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = this.times[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var _time = _step2.value; - var duration = _time.end - _time.start; - out += "".concat(_time.name.padEnd(longest), " ").concat(duration, "ms\n"); - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - - return out; - } - }]); - - return StatTimer; -}(); - -exports.StatTimer = StatTimer; - -var DummyStatTimer = -/*#__PURE__*/ -function () { - function DummyStatTimer() { - _classCallCheck(this, DummyStatTimer); - - (0, _util.unreachable)('Cannot initialize DummyStatTimer.'); - } - - _createClass(DummyStatTimer, null, [{ - key: "time", - value: function time(name) {} - }, { - key: "timeEnd", - value: function timeEnd(name) {} - }, { - key: "toString", - value: function toString() { - return ''; - } - }]); - - return DummyStatTimer; -}(); - -exports.DummyStatTimer = DummyStatTimer; - -function isFetchSupported() { - return typeof fetch !== 'undefined' && typeof Response !== 'undefined' && 'body' in Response.prototype && typeof ReadableStream !== 'undefined'; -} - -function isValidFetchUrl(url, baseUrl) { - try { - var _ref8 = baseUrl ? new _util.URL(url, baseUrl) : new _util.URL(url), - protocol = _ref8.protocol; - - return protocol === 'http:' || protocol === 'https:'; - } catch (ex) { - return false; - } -} - -function loadScript(src) { - return new Promise(function (resolve, reject) { - var script = document.createElement('script'); - script.src = src; - script.onload = resolve; - - script.onerror = function () { - reject(new Error("Cannot load script at: ".concat(script.src))); - }; - - (document.head || document.documentElement).appendChild(script); - }); -} - -function deprecated(details) { - console.log('Deprecated API usage: ' + details); -} - -function releaseImageResources(img) { - (0, _util.assert)(img instanceof Image, 'Invalid `img` parameter.'); - var url = img.src; - - if (typeof url === 'string' && url.startsWith('blob:') && _util.URL.revokeObjectURL) { - _util.URL.revokeObjectURL(url); - } - - img.removeAttribute('src'); -} - -var pdfDateStringRegex; - -var PDFDateString = -/*#__PURE__*/ -function () { - function PDFDateString() { - _classCallCheck(this, PDFDateString); - } - - _createClass(PDFDateString, null, [{ - key: "toDateObject", - value: function toDateObject(input) { - if (!input || !(0, _util.isString)(input)) { - return null; - } - - if (!pdfDateStringRegex) { - pdfDateStringRegex = new RegExp('^D:' + '(\\d{4})' + '(\\d{2})?' + '(\\d{2})?' + '(\\d{2})?' + '(\\d{2})?' + '(\\d{2})?' + '([Z|+|-])?' + '(\\d{2})?' + '\'?' + '(\\d{2})?' + '\'?'); - } - - var matches = pdfDateStringRegex.exec(input); - - if (!matches) { - return null; - } - - var year = parseInt(matches[1], 10); - var month = parseInt(matches[2], 10); - month = month >= 1 && month <= 12 ? month - 1 : 0; - var day = parseInt(matches[3], 10); - day = day >= 1 && day <= 31 ? day : 1; - var hour = parseInt(matches[4], 10); - hour = hour >= 0 && hour <= 23 ? hour : 0; - var minute = parseInt(matches[5], 10); - minute = minute >= 0 && minute <= 59 ? minute : 0; - var second = parseInt(matches[6], 10); - second = second >= 0 && second <= 59 ? second : 0; - var universalTimeRelation = matches[7] || 'Z'; - var offsetHour = parseInt(matches[8], 10); - offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0; - var offsetMinute = parseInt(matches[9], 10) || 0; - offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0; - - if (universalTimeRelation === '-') { - hour += offsetHour; - minute += offsetMinute; - } else if (universalTimeRelation === '+') { - hour -= offsetHour; - minute -= offsetMinute; - } - - return new Date(Date.UTC(year, month, day, hour, minute, second)); - } - }]); - - return PDFDateString; -}(); - -exports.PDFDateString = PDFDateString; - -/***/ }), -/* 152 */ +/* 6 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -13588,418 +3941,292 @@ Object.defineProperty(exports, "__esModule", { }); exports.FontLoader = exports.FontFaceObject = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); - -var _util = __w_pdfjs_require__(1); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var BaseFontLoader = -/*#__PURE__*/ -function () { - function BaseFontLoader(_ref) { - var docId = _ref.docId, - onUnsupportedFeature = _ref.onUnsupportedFeature; - - _classCallCheck(this, BaseFontLoader); +var _util = __w_pdfjs_require__(2); +class BaseFontLoader { + constructor({ + docId, + onUnsupportedFeature, + ownerDocument = globalThis.document + }) { if (this.constructor === BaseFontLoader) { - (0, _util.unreachable)('Cannot initialize BaseFontLoader.'); + (0, _util.unreachable)("Cannot initialize BaseFontLoader."); } this.docId = docId; this._onUnsupportedFeature = onUnsupportedFeature; + this._document = ownerDocument; this.nativeFontFaces = []; this.styleElement = null; } - _createClass(BaseFontLoader, [{ - key: "addNativeFontFace", - value: function addNativeFontFace(nativeFontFace) { - this.nativeFontFaces.push(nativeFontFace); - document.fonts.add(nativeFontFace); - } - }, { - key: "insertRule", - value: function insertRule(rule) { - var styleElement = this.styleElement; + addNativeFontFace(nativeFontFace) { + this.nativeFontFaces.push(nativeFontFace); - if (!styleElement) { - styleElement = this.styleElement = document.createElement('style'); - styleElement.id = "PDFJS_FONT_STYLE_TAG_".concat(this.docId); - document.documentElement.getElementsByTagName('head')[0].appendChild(styleElement); + this._document.fonts.add(nativeFontFace); + } + + insertRule(rule) { + let styleElement = this.styleElement; + + if (!styleElement) { + styleElement = this.styleElement = this._document.createElement("style"); + styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`; + + this._document.documentElement.getElementsByTagName("head")[0].appendChild(styleElement); + } + + const styleSheet = styleElement.sheet; + styleSheet.insertRule(rule, styleSheet.cssRules.length); + } + + clear() { + this.nativeFontFaces.forEach(nativeFontFace => { + this._document.fonts.delete(nativeFontFace); + }); + this.nativeFontFaces.length = 0; + + if (this.styleElement) { + this.styleElement.remove(); + this.styleElement = null; + } + } + + async bind(font) { + if (font.attached || font.missingFile) { + return; + } + + font.attached = true; + + if (this.isFontLoadingAPISupported) { + const nativeFontFace = font.createNativeFontFace(); + + if (nativeFontFace) { + this.addNativeFontFace(nativeFontFace); + + try { + await nativeFontFace.loaded; + } catch (ex) { + this._onUnsupportedFeature({ + featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadNative + }); + + (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`); + font.disableFontFace = true; + throw ex; + } } - var styleSheet = styleElement.sheet; - styleSheet.insertRule(rule, styleSheet.cssRules.length); + return; } - }, { - key: "clear", - value: function clear() { - this.nativeFontFaces.forEach(function (nativeFontFace) { - document.fonts["delete"](nativeFontFace); + + const rule = font.createFontFaceRule(); + + if (rule) { + this.insertRule(rule); + + if (this.isSyncFontLoadingSupported) { + return; + } + + await new Promise(resolve => { + const request = this._queueLoadingCallback(resolve); + + this._prepareFontLoadEvent([rule], [font], request); }); - this.nativeFontFaces.length = 0; - - if (this.styleElement) { - this.styleElement.remove(); - this.styleElement = null; - } } - }, { - key: "bind", - value: function () { - var _bind = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(font) { - var _this = this; + } - var nativeFontFace, rule; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!(font.attached || font.missingFile)) { - _context.next = 2; - break; - } + _queueLoadingCallback(callback) { + (0, _util.unreachable)("Abstract method `_queueLoadingCallback`."); + } - return _context.abrupt("return", undefined); + get isFontLoadingAPISupported() { + const supported = typeof this._document !== "undefined" && !!this._document.fonts; + return (0, _util.shadow)(this, "isFontLoadingAPISupported", supported); + } - case 2: - font.attached = true; + get isSyncFontLoadingSupported() { + (0, _util.unreachable)("Abstract method `isSyncFontLoadingSupported`."); + } - if (!this.isFontLoadingAPISupported) { - _context.next = 19; - break; - } + get _loadTestFont() { + (0, _util.unreachable)("Abstract method `_loadTestFont`."); + } - nativeFontFace = font.createNativeFontFace(); + _prepareFontLoadEvent(rules, fontsToLoad, request) { + (0, _util.unreachable)("Abstract method `_prepareFontLoadEvent`."); + } - if (!nativeFontFace) { - _context.next = 18; - break; - } +} - this.addNativeFontFace(nativeFontFace); - _context.prev = 7; - _context.next = 10; - return nativeFontFace.loaded; - - case 10: - _context.next = 18; - break; - - case 12: - _context.prev = 12; - _context.t0 = _context["catch"](7); - - this._onUnsupportedFeature({ - featureId: _util.UNSUPPORTED_FEATURES.font - }); - - (0, _util.warn)("Failed to load font '".concat(nativeFontFace.family, "': '").concat(_context.t0, "'.")); - font.disableFontFace = true; - throw _context.t0; - - case 18: - return _context.abrupt("return", undefined); - - case 19: - rule = font.createFontFaceRule(); - - if (!rule) { - _context.next = 25; - break; - } - - this.insertRule(rule); - - if (!this.isSyncFontLoadingSupported) { - _context.next = 24; - break; - } - - return _context.abrupt("return", undefined); - - case 24: - return _context.abrupt("return", new Promise(function (resolve) { - var request = _this._queueLoadingCallback(resolve); - - _this._prepareFontLoadEvent([rule], [font], request); - })); - - case 25: - return _context.abrupt("return", undefined); - - case 26: - case "end": - return _context.stop(); - } - } - }, _callee, this, [[7, 12]]); - })); - - function bind(_x) { - return _bind.apply(this, arguments); - } - - return bind; - }() - }, { - key: "_queueLoadingCallback", - value: function _queueLoadingCallback(callback) { - (0, _util.unreachable)('Abstract method `_queueLoadingCallback`.'); - } - }, { - key: "_prepareFontLoadEvent", - value: function _prepareFontLoadEvent(rules, fontsToLoad, request) { - (0, _util.unreachable)('Abstract method `_prepareFontLoadEvent`.'); - } - }, { - key: "isFontLoadingAPISupported", - get: function get() { - (0, _util.unreachable)('Abstract method `isFontLoadingAPISupported`.'); - } - }, { - key: "isSyncFontLoadingSupported", - get: function get() { - (0, _util.unreachable)('Abstract method `isSyncFontLoadingSupported`.'); - } - }, { - key: "_loadTestFont", - get: function get() { - (0, _util.unreachable)('Abstract method `_loadTestFont`.'); - } - }]); - - return BaseFontLoader; -}(); - -var FontLoader; +let FontLoader; exports.FontLoader = FontLoader; { - exports.FontLoader = FontLoader = - /*#__PURE__*/ - function (_BaseFontLoader) { - _inherits(GenericFontLoader, _BaseFontLoader); - - function GenericFontLoader(docId) { - var _this2; - - _classCallCheck(this, GenericFontLoader); - - _this2 = _possibleConstructorReturn(this, _getPrototypeOf(GenericFontLoader).call(this, docId)); - _this2.loadingContext = { + exports.FontLoader = FontLoader = class GenericFontLoader extends BaseFontLoader { + constructor(params) { + super(params); + this.loadingContext = { requests: [], nextRequestId: 0 }; - _this2.loadTestFontId = 0; - return _this2; + this.loadTestFontId = 0; } - _createClass(GenericFontLoader, [{ - key: "_queueLoadingCallback", - value: function _queueLoadingCallback(callback) { - function completeRequest() { - (0, _util.assert)(!request.done, 'completeRequest() cannot be called twice.'); - request.done = true; + get isSyncFontLoadingSupported() { + let supported = false; - while (context.requests.length > 0 && context.requests[0].done) { - var otherRequest = context.requests.shift(); - setTimeout(otherRequest.callback, 0); - } - } + if (typeof navigator === "undefined") { + supported = true; + } else { + const m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); - var context = this.loadingContext; - var request = { - id: "pdfjs-font-loading-".concat(context.nextRequestId++), - done: false, - complete: completeRequest, - callback: callback - }; - context.requests.push(request); - return request; - } - }, { - key: "_prepareFontLoadEvent", - value: function _prepareFontLoadEvent(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.substring(0, offset); - var chunk2 = s.substring(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) { - (0, _util.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".concat(Date.now()).concat(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, (0, _util.string32)(checksum)); - var url = "url(data:font/opentype;base64,".concat(btoa(data), ");"); - var rule = "@font-face {font-family:\"".concat(loadTestFontId, "\";src:").concat(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(); - }); - } - }, { - key: "isFontLoadingAPISupported", - get: function get() { - var supported = typeof document !== 'undefined' && !!document.fonts; - - if (supported && typeof navigator !== 'undefined') { - var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); - - if (m && m[1] < 63) { - supported = false; - } - } - - return (0, _util.shadow)(this, 'isFontLoadingAPISupported', supported); - } - }, { - key: "isSyncFontLoadingSupported", - get: function get() { - var supported = false; - - if (typeof navigator === 'undefined') { + if (m && m[1] >= 14) { supported = true; - } else { - var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); + } + } - if (m && m[1] >= 14) { - supported = true; - } + return (0, _util.shadow)(this, "isSyncFontLoadingSupported", supported); + } + + _queueLoadingCallback(callback) { + function completeRequest() { + (0, _util.assert)(!request.done, "completeRequest() cannot be called twice."); + request.done = true; + + while (context.requests.length > 0 && context.requests[0].done) { + const otherRequest = context.requests.shift(); + setTimeout(otherRequest.callback, 0); + } + } + + const context = this.loadingContext; + const request = { + id: `pdfjs-font-loading-${context.nextRequestId++}`, + done: false, + complete: completeRequest, + callback + }; + context.requests.push(request); + return request; + } + + get _loadTestFont() { + const getLoadTestFont = function () { + return atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA" + "FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA" + "ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA" + "AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1" + "AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD" + "6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM" + "AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D" + "IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA" + "AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA" + "AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB" + "AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY" + "AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA" + "AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA" + "AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC" + "AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3" + "Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj" + "FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA=="); + }; + + return (0, _util.shadow)(this, "_loadTestFont", getLoadTestFont()); + } + + _prepareFontLoadEvent(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) { + const chunk1 = s.substring(0, offset); + const chunk2 = s.substring(offset + remove); + return chunk1 + insert + chunk2; + } + + let i, ii; + + const canvas = this._document.createElement("canvas"); + + canvas.width = 1; + canvas.height = 1; + const ctx = canvas.getContext("2d"); + let called = 0; + + function isFontReady(name, callback) { + called++; + + if (called > 30) { + (0, _util.warn)("Load test font never loaded."); + callback(); + return; } - return (0, _util.shadow)(this, 'isSyncFontLoadingSupported', supported); - } - }, { - key: "_loadTestFont", - get: function get() { - var getLoadTestFont = function getLoadTestFont() { - return atob('T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA' + 'FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA' + 'ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA' + 'AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1' + 'AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD' + '6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM' + 'AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D' + 'IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA' + 'AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA' + 'AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB' + 'AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY' + 'AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA' + 'AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA' + 'AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC' + 'AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3' + 'Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj' + 'FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA=='); - }; + ctx.font = "30px " + name; + ctx.fillText(".", 0, 20); + const imageData = ctx.getImageData(0, 0, 1, 1); - return (0, _util.shadow)(this, '_loadTestFont', getLoadTestFont()); - } - }]); + if (imageData.data[3] > 0) { + callback(); + return; + } - return GenericFontLoader; - }(BaseFontLoader); + setTimeout(isFontReady.bind(null, name, callback)); + } + + const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`; + let data = this._loadTestFont; + const COMMENT_OFFSET = 976; + data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId); + const CFF_CHECKSUM_OFFSET = 16; + const XXXX_VALUE = 0x58585858; + let 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, (0, _util.string32)(checksum)); + const url = `url(data:font/opentype;base64,${btoa(data)});`; + const rule = `@font-face {font-family:"${loadTestFontId}";src:${url}}`; + this.insertRule(rule); + const names = []; + + for (i = 0, ii = fonts.length; i < ii; i++) { + names.push(fonts[i].loadedName); + } + + names.push(loadTestFontId); + + const div = this._document.createElement("div"); + + div.style.visibility = "hidden"; + div.style.width = div.style.height = "10px"; + div.style.position = "absolute"; + div.style.top = div.style.left = "0px"; + + for (i = 0, ii = names.length; i < ii; ++i) { + const span = this._document.createElement("span"); + + span.textContent = "Hi"; + span.style.fontFamily = names[i]; + div.appendChild(span); + } + + this._document.body.appendChild(div); + + isFontReady(loadTestFontId, () => { + this._document.body.removeChild(div); + + request.complete(); + }); + } + + }; } -var IsEvalSupportedCached = { - get value() { - return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)()); - } - -}; - -var FontFaceObject = -/*#__PURE__*/ -function () { - function FontFaceObject(translatedData, _ref2) { - var _ref2$isEvalSupported = _ref2.isEvalSupported, - isEvalSupported = _ref2$isEvalSupported === void 0 ? true : _ref2$isEvalSupported, - _ref2$disableFontFace = _ref2.disableFontFace, - disableFontFace = _ref2$disableFontFace === void 0 ? false : _ref2$disableFontFace, - _ref2$ignoreErrors = _ref2.ignoreErrors, - ignoreErrors = _ref2$ignoreErrors === void 0 ? false : _ref2$ignoreErrors, - _ref2$onUnsupportedFe = _ref2.onUnsupportedFeature, - onUnsupportedFeature = _ref2$onUnsupportedFe === void 0 ? null : _ref2$onUnsupportedFe, - _ref2$fontRegistry = _ref2.fontRegistry, - fontRegistry = _ref2$fontRegistry === void 0 ? null : _ref2$fontRegistry; - - _classCallCheck(this, FontFaceObject); +class FontFaceObject { + constructor(translatedData, { + isEvalSupported = true, + disableFontFace = false, + ignoreErrors = false, + onUnsupportedFeature = null, + fontRegistry = null + }) { this.compiledGlyphs = Object.create(null); - for (var i in translatedData) { + for (const i in translatedData) { this[i] = translatedData[i]; } @@ -14010,134 +4237,269 @@ function () { this.fontRegistry = fontRegistry; } - _createClass(FontFaceObject, [{ - key: "createNativeFontFace", - value: function createNativeFontFace() { - if (!this.data || this.disableFontFace) { - return null; - } - - var nativeFontFace = new FontFace(this.loadedName, this.data, {}); - - if (this.fontRegistry) { - this.fontRegistry.registerFont(this); - } - - return nativeFontFace; + createNativeFontFace() { + if (!this.data || this.disableFontFace) { + return null; } - }, { - key: "createFontFaceRule", - value: function createFontFaceRule() { - if (!this.data || this.disableFontFace) { - return null; - } - var data = (0, _util.bytesToString)(new Uint8Array(this.data)); - var url = "url(data:".concat(this.mimetype, ";base64,").concat(btoa(data), ");"); - var rule = "@font-face {font-family:\"".concat(this.loadedName, "\";src:").concat(url, "}"); + const nativeFontFace = new FontFace(this.loadedName, this.data, {}); - if (this.fontRegistry) { - this.fontRegistry.registerFont(this, url); - } - - return rule; + if (this.fontRegistry) { + this.fontRegistry.registerFont(this); } - }, { - key: "getPathGenerator", - value: function getPathGenerator(objs, character) { - if (this.compiledGlyphs[character] !== undefined) { - return this.compiledGlyphs[character]; - } - var cmds, current; + return nativeFontFace; + } - try { - cmds = objs.get(this.loadedName + '_path_' + character); - } catch (ex) { - if (!this.ignoreErrors) { - throw ex; - } - - if (this._onUnsupportedFeature) { - this._onUnsupportedFeature({ - featureId: _util.UNSUPPORTED_FEATURES.font - }); - } - - (0, _util.warn)("getPathGenerator - ignoring character: \"".concat(ex, "\".")); - return this.compiledGlyphs[character] = function (c, size) {}; - } - - if (this.isEvalSupported && IsEvalSupportedCached.value) { - var args, - js = ''; - - for (var i = 0, ii = cmds.length; i < ii; i++) { - current = cmds[i]; - - if (current.args !== undefined) { - args = current.args.join(','); - } else { - args = ''; - } - - js += 'c.' + current.cmd + '(' + args + ');\n'; - } - - return this.compiledGlyphs[character] = new Function('c', 'size', js); - } - - return this.compiledGlyphs[character] = function (c, size) { - for (var _i = 0, _ii = cmds.length; _i < _ii; _i++) { - current = cmds[_i]; - - if (current.cmd === 'scale') { - current.args = [size, -size]; - } - - c[current.cmd].apply(c, current.args); - } - }; + createFontFaceRule() { + if (!this.data || this.disableFontFace) { + return null; } - }]); - return FontFaceObject; -}(); + const data = (0, _util.bytesToString)(new Uint8Array(this.data)); + const url = `url(data:${this.mimetype};base64,${btoa(data)});`; + const rule = `@font-face {font-family:"${this.loadedName}";src:${url}}`; + + if (this.fontRegistry) { + this.fontRegistry.registerFont(this, url); + } + + return rule; + } + + getPathGenerator(objs, character) { + if (this.compiledGlyphs[character] !== undefined) { + return this.compiledGlyphs[character]; + } + + let cmds, current; + + try { + cmds = objs.get(this.loadedName + "_path_" + character); + } catch (ex) { + if (!this.ignoreErrors) { + throw ex; + } + + if (this._onUnsupportedFeature) { + this._onUnsupportedFeature({ + featureId: _util.UNSUPPORTED_FEATURES.errorFontGetPath + }); + } + + (0, _util.warn)(`getPathGenerator - ignoring character: "${ex}".`); + return this.compiledGlyphs[character] = function (c, size) {}; + } + + if (this.isEvalSupported && _util.IsEvalSupportedCached.value) { + let args, + js = ""; + + for (let i = 0, ii = cmds.length; i < ii; i++) { + current = cmds[i]; + + if (current.args !== undefined) { + args = current.args.join(","); + } else { + args = ""; + } + + js += "c." + current.cmd + "(" + args + ");\n"; + } + + return this.compiledGlyphs[character] = new Function("c", "size", js); + } + + return this.compiledGlyphs[character] = function (c, size) { + for (let i = 0, ii = cmds.length; i < ii; i++) { + current = cmds[i]; + + if (current.cmd === "scale") { + current.args = [size, -size]; + } + + c[current.cmd].apply(c, current.args); + } + }; + } + +} exports.FontFaceObject = FontFaceObject; /***/ }), -/* 153 */ +/* 7 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; -var compatibilityParams = Object.create(null); -{ - var isNodeJS = __w_pdfjs_require__(4); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.NodeCMapReaderFactory = exports.NodeCanvasFactory = void 0; - var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || ''; - var isIE = /Trident/.test(userAgent); - var isIOSChrome = /CriOS/.test(userAgent); +var _display_utils = __w_pdfjs_require__(1); - (function checkOnBlobSupport() { - if (isIE || isIOSChrome) { - compatibilityParams.disableCreateObjectURL = true; +var _is_node = __w_pdfjs_require__(4); + +var _util = __w_pdfjs_require__(2); + +let NodeCanvasFactory = class { + constructor() { + (0, _util.unreachable)("Not implemented: NodeCanvasFactory"); + } + +}; +exports.NodeCanvasFactory = NodeCanvasFactory; +let NodeCMapReaderFactory = class { + constructor() { + (0, _util.unreachable)("Not implemented: NodeCMapReaderFactory"); + } + +}; +exports.NodeCMapReaderFactory = NodeCMapReaderFactory; + +if (_is_node.isNodeJS) { + exports.NodeCanvasFactory = NodeCanvasFactory = class extends _display_utils.BaseCanvasFactory { + create(width, height) { + if (width <= 0 || height <= 0) { + throw new Error("Invalid canvas size"); + } + + const Canvas = require("canvas"); + + const canvas = Canvas.createCanvas(width, height); + return { + canvas, + context: canvas.getContext("2d") + }; } - })(); - (function checkFontFaceAndImage() { - if (isNodeJS()) { + }; + exports.NodeCMapReaderFactory = NodeCMapReaderFactory = class extends _display_utils.BaseCMapReaderFactory { + _fetchData(url, compressionType) { + return new Promise((resolve, reject) => { + const fs = require("fs"); + + fs.readFile(url, (error, data) => { + if (error || !data) { + reject(new Error(error)); + return; + } + + resolve({ + cMapData: new Uint8Array(data), + compressionType + }); + }); + }); + } + + }; +} + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.AnnotationStorage = void 0; + +class AnnotationStorage { + constructor() { + this._storage = new Map(); + this._modified = false; + this.onSetModified = null; + this.onResetModified = null; + } + + getOrCreateValue(key, defaultValue) { + if (this._storage.has(key)) { + return this._storage.get(key); + } + + this._storage.set(key, defaultValue); + + return defaultValue; + } + + setValue(key, value) { + if (this._storage.get(key) !== value) { + this._setModified(); + } + + this._storage.set(key, value); + } + + getAll() { + if (this._storage.size === 0) { + return null; + } + + return Object.fromEntries(this._storage); + } + + get size() { + return this._storage.size; + } + + _setModified() { + if (!this._modified) { + this._modified = true; + + if (typeof this.onSetModified === "function") { + this.onSetModified(); + } + } + } + + resetModified() { + if (this._modified) { + this._modified = false; + + if (typeof this.onResetModified === "function") { + this.onResetModified(); + } + } + } + +} + +exports.AnnotationStorage = AnnotationStorage; + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.apiCompatibilityParams = void 0; + +var _is_node = __w_pdfjs_require__(4); + +const compatibilityParams = Object.create(null); +{ + (function checkFontFace() { + if (_is_node.isNodeJS) { compatibilityParams.disableFontFace = true; - compatibilityParams.nativeImageDecoderSupport = 'none'; } })(); } -exports.apiCompatibilityParams = Object.freeze(compatibilityParams); +const apiCompatibilityParams = Object.freeze(compatibilityParams); +exports.apiCompatibilityParams = apiCompatibilityParams; /***/ }), -/* 154 */ +/* 10 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -14148,9 +4510,9 @@ Object.defineProperty(exports, "__esModule", { }); exports.CanvasGraphics = void 0; -var _util = __w_pdfjs_require__(1); +var _util = __w_pdfjs_require__(2); -var _pattern_helper = __w_pdfjs_require__(155); +var _pattern_helper = __w_pdfjs_require__(11); var MIN_FONT_SIZE = 16; var MAX_FONT_SIZE = 100; @@ -14159,12 +4521,6 @@ var MIN_WIDTH_FACTOR = 0.65; var COMPILE_TYPE3_GLYPHS = true; var MAX_SIZE_TO_COMPILE = 1000; var FULL_CHUNK_HEIGHT = 16; -var IsLittleEndianCached = { - get value() { - return (0, _util.shadow)(IsLittleEndianCached, 'value', (0, _util.isLittleEndian)()); - } - -}; function addContextCurrentTransform(ctx) { if (!ctx.mozCurrentTransform) { @@ -14177,12 +4533,12 @@ function addContextCurrentTransform(ctx) { ctx._originalSetTransform = ctx.setTransform; ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0]; ctx._transformStack = []; - Object.defineProperty(ctx, 'mozCurrentTransform', { + Object.defineProperty(ctx, "mozCurrentTransform", { get: function getCurrentTransform() { return this._transformMatrix; } }); - Object.defineProperty(ctx, 'mozCurrentTransformInverse', { + Object.defineProperty(ctx, "mozCurrentTransformInverse", { get: function getCurrentTransformInverse() { var m = this._transformMatrix; var a = m[0], @@ -14284,13 +4640,15 @@ var CachedCanvases = function CachedCanvasesClosure() { return canvasEntry; }, - clear: function clear() { + + clear() { for (var id in this.cache) { var canvasEntry = this.cache[id]; this.canvasFactory.destroy(canvasEntry); delete this.cache[id]; } } + }; return CachedCanvases; }(); @@ -14450,18 +4808,18 @@ function compileType3Glyph(imgData) { --i; } - var drawOutline = function drawOutline(c) { + 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]; + for (let k = 0, kk = outlines.length; k < kk; k++) { + var o = outlines[k]; c.moveTo(o[0], o[1]); - for (var j = 2, jj = o.length; j < jj; j += 2) { - c.lineTo(o[j], o[j + 1]); + for (let l = 2, ll = o.length; l < ll; l += 2) { + c.lineTo(o[l], o[l + 1]); } } @@ -14491,14 +4849,15 @@ var CanvasExtraState = function CanvasExtraStateClosure() { this.textHScale = 1; this.textRenderingMode = _util.TextRenderingMode.FILL; this.textRise = 0; - this.fillColor = '#000000'; - this.strokeColor = '#000000'; + 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.transferMaps = null; } CanvasExtraState.prototype = { @@ -14517,7 +4876,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() { var EXECUTION_TIME = 15; var EXECUTION_STEPS = 10; - function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer) { + function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer, optionalContentConfig) { this.ctx = canvasCtx; this.current = new CanvasExtraState(); this.stateStack = []; @@ -14538,6 +4897,9 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.smaskStack = []; this.smaskCounter = 0; this.tempSMask = null; + this.contentVisible = true; + this.markedContentStack = []; + this.optionalContentConfig = optionalContentConfig; this.cachedCanvases = new CachedCanvases(this.canvasFactory); if (canvasCtx) { @@ -14547,8 +4909,8 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this._cachedGetSinglePixelWidth = null; } - function putBinaryImageData(ctx, imgData) { - if (typeof ImageData !== 'undefined' && imgData instanceof ImageData) { + function putBinaryImageData(ctx, imgData, transferMaps = null) { + if (typeof ImageData !== "undefined" && imgData instanceof ImageData) { ctx.putImageData(imgData, 0, 0); return; } @@ -14564,14 +4926,39 @@ var CanvasGraphics = function CanvasGraphicsClosure() { var src = imgData.data; var dest = chunkImgData.data; var i, j, thisChunkHeight, elemsInThisChunk; + let transferMapRed, transferMapGreen, transferMapBlue, transferMapGray; + + if (transferMaps) { + switch (transferMaps.length) { + case 1: + transferMapRed = transferMaps[0]; + transferMapGreen = transferMaps[0]; + transferMapBlue = transferMaps[0]; + transferMapGray = transferMaps[0]; + break; + + case 4: + transferMapRed = transferMaps[0]; + transferMapGreen = transferMaps[1]; + transferMapBlue = transferMaps[2]; + transferMapGray = transferMaps[3]; + break; + } + } if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) { var srcLength = src.byteLength; var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2); var dest32DataLength = dest32.length; var fullSrcDiff = width + 7 >> 3; - var white = 0xFFFFFFFF; - var black = IsLittleEndianCached.value ? 0xFF000000 : 0x000000FF; + var white = 0xffffffff; + var black = _util.IsLittleEndianCached.value ? 0xff000000 : 0x000000ff; + + if (transferMapGray) { + if (transferMapGray[0] === 0xff && transferMapGray[0xff] === 0) { + [white, black] = [black, white]; + } + } for (i = 0; i < totalChunks; i++) { thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; @@ -14579,7 +4966,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() { for (j = 0; j < thisChunkHeight; j++) { var srcDiff = srcLength - srcPos; - var k = 0; + let k = 0; var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7; var kEndUnrolled = kEnd & ~7; var mask = 0; @@ -14615,12 +5002,30 @@ var CanvasGraphics = function CanvasGraphicsClosure() { ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); } } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) { + const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue); j = 0; elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4; for (i = 0; i < fullChunks; i++) { dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); srcPos += elemsInThisChunk; + + if (hasTransferMaps) { + for (let k = 0; k < elemsInThisChunk; k += 4) { + if (transferMapRed) { + dest[k + 0] = transferMapRed[dest[k + 0]]; + } + + if (transferMapGreen) { + dest[k + 1] = transferMapGreen[dest[k + 1]]; + } + + if (transferMapBlue) { + dest[k + 2] = transferMapBlue[dest[k + 2]]; + } + } + } + ctx.putImageData(chunkImgData, 0, j); j += FULL_CHUNK_HEIGHT; } @@ -14628,9 +5033,27 @@ var CanvasGraphics = function CanvasGraphicsClosure() { if (i < totalChunks) { elemsInThisChunk = width * partialChunkHeight * 4; dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); + + if (hasTransferMaps) { + for (let k = 0; k < elemsInThisChunk; k += 4) { + if (transferMapRed) { + dest[k + 0] = transferMapRed[dest[k + 0]]; + } + + if (transferMapGreen) { + dest[k + 1] = transferMapGreen[dest[k + 1]]; + } + + if (transferMapBlue) { + dest[k + 2] = transferMapBlue[dest[k + 2]]; + } + } + } + ctx.putImageData(chunkImgData, 0, j); } } else if (imgData.kind === _util.ImageKind.RGB_24BPP) { + const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue); thisChunkHeight = FULL_CHUNK_HEIGHT; elemsInThisChunk = width * thisChunkHeight; @@ -14649,10 +5072,26 @@ var CanvasGraphics = function CanvasGraphicsClosure() { dest[destPos++] = 255; } + if (hasTransferMaps) { + for (let k = 0; k < destPos; k += 4) { + if (transferMapRed) { + dest[k + 0] = transferMapRed[dest[k + 0]]; + } + + if (transferMapGreen) { + dest[k + 1] = transferMapGreen[dest[k + 1]]; + } + + if (transferMapBlue) { + dest[k + 2] = transferMapBlue[dest[k + 2]]; + } + } + } + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); } } else { - throw new Error("bad image kind: ".concat(imgData.kind)); + throw new Error(`bad image kind: ${imgData.kind}`); } } @@ -14691,7 +5130,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } function copyCtxState(sourceCtx, destCtx) { - var properties = ['strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha', 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit', 'globalCompositeOperation', 'font']; + 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]; @@ -14708,16 +5147,16 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } function resetCtxToDefault(ctx) { - ctx.strokeStyle = '#000000'; - ctx.fillStyle = '#000000'; - ctx.fillRule = 'nonzero'; + ctx.strokeStyle = "#000000"; + ctx.fillStyle = "#000000"; + ctx.fillRule = "nonzero"; ctx.globalAlpha = 1; ctx.lineWidth = 1; - ctx.lineCap = 'butt'; - ctx.lineJoin = 'miter'; + ctx.lineCap = "butt"; + ctx.lineJoin = "miter"; ctx.miterLimit = 10; - ctx.globalCompositeOperation = 'source-over'; - ctx.font = '10px sans-serif'; + ctx.globalCompositeOperation = "source-over"; + ctx.font = "10px sans-serif"; if (ctx.setLineDash !== undefined) { ctx.setLineDash([]); @@ -14770,7 +5209,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() { var b0 = hasBackdrop ? backdrop[2] : 0; var composeFn; - if (subtype === 'Luminosity') { + if (subtype === "Luminosity") { composeFn = composeSMaskLuminosity; } else { composeFn = composeSMaskAlpha; @@ -14800,12 +5239,12 @@ var CanvasGraphics = function CanvasGraphicsClosure() { var backdrop = smask.backdrop || null; if (!smask.transferMap && webGLContext.isEnabled) { - var composed = webGLContext.composeSMask({ + const composed = webGLContext.composeSMask({ layer: layerCtx.canvas, - mask: mask, + mask, properties: { subtype: smask.subtype, - backdrop: backdrop + backdrop } }); ctx.setTransform(1, 0, 0, 1, 0, 0); @@ -14817,27 +5256,26 @@ var CanvasGraphics = function CanvasGraphicsClosure() { ctx.drawImage(mask, 0, 0); } - var LINE_CAP_STYLES = ['butt', 'round', 'square']; - var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; + var LINE_CAP_STYLES = ["butt", "round", "square"]; + var LINE_JOIN_STYLES = ["miter", "round", "bevel"]; var NORMAL_CLIP = {}; var EO_CLIP = {}; CanvasGraphics.prototype = { - beginDrawing: function beginDrawing(_ref) { - var transform = _ref.transform, - viewport = _ref.viewport, - _ref$transparency = _ref.transparency, - transparency = _ref$transparency === void 0 ? false : _ref$transparency, - _ref$background = _ref.background, - background = _ref$background === void 0 ? null : _ref$background; + beginDrawing({ + transform, + viewport, + transparency = false, + background = null + }) { var width = this.ctx.canvas.width; var height = this.ctx.canvas.height; this.ctx.save(); - this.ctx.fillStyle = background || 'rgb(255, 255, 255)'; + this.ctx.fillStyle = background || "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); + var transparentCanvas = this.cachedCanvases.getCanvas("transparent", width, height, true); this.compositeCtx = this.ctx; this.transparentCanvas = transparentCanvas.canvas; this.ctx = transparentCanvas.context; @@ -14859,6 +5297,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.imageLayer.beginLayout(); } }, + executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) { var argsArray = operatorList.argsArray; var fnArray = operatorList.fnArray; @@ -14869,7 +5308,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() { return i; } - var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === 'function'; + var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === "function"; var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0; var steps = 0; var commonObjs = this.commonObjs; @@ -14887,32 +5326,12 @@ var CanvasGraphics = function CanvasGraphicsClosure() { if (fnId !== _util.OPS.dependency) { this[fnId].apply(this, argsArray[i]); } else { - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; + for (const depObjId of argsArray[i]) { + const objsPool = depObjId.startsWith("g_") ? commonObjs : objs; - try { - for (var _iterator = argsArray[i][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var depObjId = _step.value; - var objsPool = depObjId.startsWith('g_') ? commonObjs : objs; - - if (!objsPool.has(depObjId)) { - objsPool.get(depObjId, continueCallback); - return i; - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } + if (!objsPool.has(depObjId)) { + objsPool.get(depObjId, continueCallback); + return i; } } } @@ -14977,8 +5396,11 @@ var CanvasGraphics = function CanvasGraphicsClosure() { ctx.lineDashOffset = dashPhase; } }, - setRenderingIntent: function setRenderingIntent(intent) {}, - setFlatness: function setFlatness(flatness) {}, + + setRenderingIntent(intent) {}, + + setFlatness(flatness) {}, + setGState: function CanvasGraphics_setGState(states) { for (var i = 0, ii = states.length; i < ii; i++) { var state = states[i]; @@ -14986,52 +5408,52 @@ var CanvasGraphics = function CanvasGraphicsClosure() { var value = state[1]; switch (key) { - case 'LW': + case "LW": this.setLineWidth(value); break; - case 'LC': + case "LC": this.setLineCap(value); break; - case 'LJ': + case "LJ": this.setLineJoin(value); break; - case 'ML': + case "ML": this.setMiterLimit(value); break; - case 'D': + case "D": this.setDash(value[0], value[1]); break; - case 'RI': + case "RI": this.setRenderingIntent(value); break; - case 'FL': + case "FL": this.setFlatness(value); break; - case 'Font': + case "Font": this.setFont(value[0], value[1]); break; - case 'CA': + case "CA": this.current.strokeAlpha = state[1]; break; - case 'ca': + case "ca": this.current.fillAlpha = state[1]; this.ctx.globalAlpha = state[1]; break; - case 'BM': + case "BM": this.ctx.globalCompositeOperation = value; break; - case 'SMask': + case "SMask": if (this.current.activeSMask) { if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) { this.suspendSMaskGroup(); @@ -15048,6 +5470,9 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.tempSMask = null; break; + + case "TR": + this.current.transferMaps = value; } } }, @@ -15055,7 +5480,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() { var activeSMask = this.current.activeSMask; var drawnWidth = activeSMask.canvas.width; var drawnHeight = activeSMask.canvas.height; - var cacheId = 'smaskGroupAt' + this.groupLevel; + var cacheId = "smaskGroupAt" + this.groupLevel; var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); var currentCtx = this.ctx; var currentTransform = currentCtx.mozCurrentTransform; @@ -15067,7 +5492,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() { activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse; copyCtxState(currentCtx, groupCtx); this.ctx = groupCtx; - this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]); + this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]); this.groupStack.push(currentCtx); this.groupLevel++; }, @@ -15149,22 +5574,22 @@ var CanvasGraphics = function CanvasGraphicsClosure() { var width = args[j++]; var height = args[j++]; - if (width === 0) { + if (width === 0 && ctx.lineWidth < this.getSinglePixelWidth()) { width = this.getSinglePixelWidth(); } - if (height === 0) { + if (height === 0 && ctx.lineWidth < this.getSinglePixelWidth()) { 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(); + ctx.moveTo(x, y); + ctx.lineTo(xw, y); + ctx.lineTo(xw, yh); + ctx.lineTo(x, yh); + ctx.lineTo(x, y); + ctx.closePath(); break; case _util.OPS.moveTo: @@ -15212,19 +5637,26 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.ctx.closePath(); }, stroke: function CanvasGraphics_stroke(consumePath) { - consumePath = typeof consumePath !== 'undefined' ? consumePath : true; + 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 (this.contentVisible) { + if (strokeColor && strokeColor.hasOwnProperty("type") && strokeColor.type === "Pattern") { + ctx.save(); + const transform = ctx.mozCurrentTransform; + + const scale = _util.Util.singularValueDecompose2dScale(transform)[0]; + + ctx.strokeStyle = strokeColor.getPattern(ctx, this); + ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth * scale); + ctx.stroke(); + ctx.restore(); + } else { + ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth); + ctx.stroke(); + } } if (consumePath) { @@ -15238,7 +5670,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.stroke(); }, fill: function CanvasGraphics_fill(consumePath) { - consumePath = typeof consumePath !== 'undefined' ? consumePath : true; + consumePath = typeof consumePath !== "undefined" ? consumePath : true; var ctx = this.ctx; var fillColor = this.current.fillColor; var isPatternFill = this.current.patternFill; @@ -15255,11 +5687,13 @@ var CanvasGraphics = function CanvasGraphicsClosure() { needRestore = true; } - if (this.pendingEOFill) { - ctx.fill('evenodd'); - this.pendingEOFill = false; - } else { - ctx.fill(); + if (this.contentVisible) { + if (this.pendingEOFill) { + ctx.fill("evenodd"); + this.pendingEOFill = false; + } else { + ctx.fill(); + } } if (needRestore) { @@ -15348,13 +5782,13 @@ var CanvasGraphics = function CanvasGraphicsClosure() { var current = this.current; if (!fontObj) { - throw new Error("Can't find font for ".concat(fontRefName)); + throw new Error(`Can't find font for ${fontRefName}`); } current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX; if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) { - (0, _util.warn)('Invalid font matrix for font ' + fontRefName); + (0, _util.warn)("Invalid font matrix for font " + fontRefName); } if (size < 0) { @@ -15371,13 +5805,27 @@ var CanvasGraphics = function CanvasGraphicsClosure() { return; } - var name = fontObj.loadedName || 'sans-serif'; - var bold = fontObj.black ? '900' : fontObj.bold ? 'bold' : 'normal'; - var italic = fontObj.italic ? 'italic' : 'normal'; - var typeface = "\"".concat(name, "\", ").concat(fontObj.fallbackName); - var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE : size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size; + var name = fontObj.loadedName || "sans-serif"; + let bold = "normal"; + + if (fontObj.black) { + bold = "900"; + } else if (fontObj.bold) { + bold = "bold"; + } + + var italic = fontObj.italic ? "italic" : "normal"; + var typeface = `"${name}", ${fontObj.fallbackName}`; + let browserFontSize = size; + + if (size < MIN_FONT_SIZE) { + browserFontSize = MIN_FONT_SIZE; + } else if (size > MAX_FONT_SIZE) { + browserFontSize = MAX_FONT_SIZE; + } + this.current.fontSizeScale = size / browserFontSize; - this.ctx.font = "".concat(italic, " ").concat(bold, " ").concat(browserFontSize, "px ").concat(typeface); + this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`; }, setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) { this.current.textRenderingMode = mode; @@ -15402,7 +5850,8 @@ var CanvasGraphics = function CanvasGraphicsClosure() { nextLine: function CanvasGraphics_nextLine() { this.moveText(0, this.current.leading); }, - paintChar: function paintChar(character, x, y, patternTransform) { + + paintChar(character, x, y, patternTransform) { var ctx = this.ctx; var current = this.current; var font = current.font; @@ -15410,7 +5859,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() { var fontSize = current.fontSize / current.fontSizeScale; var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG); - var patternFill = current.patternFill && font.data; + const patternFill = current.patternFill && !font.missingFile; var addToPath; if (font.disableFontFace || isAddToPathSet || patternFill) { @@ -15450,20 +5899,20 @@ var CanvasGraphics = function CanvasGraphicsClosure() { var paths = this.pendingTextPaths || (this.pendingTextPaths = []); paths.push({ transform: ctx.mozCurrentTransform, - x: x, - y: y, - fontSize: fontSize, - addToPath: addToPath + x, + y, + fontSize, + addToPath }); } }, get isFontSubpixelAAEnabled() { - var _this$cachedCanvases$ = this.cachedCanvases.getCanvas('isFontSubpixelAAEnabled', 10, 10), - ctx = _this$cachedCanvases$.context; - + const { + context: ctx + } = this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled", 10, 10); ctx.scale(1.5, 1); - ctx.fillText('I', 0, 10); + ctx.fillText("I", 0, 10); var data = ctx.getImageData(0, 0, 10, 10).data; var enabled = false; @@ -15474,7 +5923,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } } - return (0, _util.shadow)(this, 'isFontSubpixelAAEnabled', enabled); + return (0, _util.shadow)(this, "isFontSubpixelAAEnabled", enabled); }, showText: function CanvasGraphics_showText(glyphs) { @@ -15504,11 +5953,11 @@ var CanvasGraphics = function CanvasGraphicsClosure() { var widthAdvanceScale = fontSize * current.fontMatrix[0]; var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill; ctx.save(); - var patternTransform; + let patternTransform; if (current.patternFill) { ctx.save(); - var pattern = current.fillColor.getPattern(ctx, this); + const pattern = current.fillColor.getPattern(ctx, this); patternTransform = ctx.mozCurrentTransform; ctx.restore(); ctx.fillStyle = pattern; @@ -15589,21 +6038,28 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } } - if (glyph.isInFont || font.missingFile) { + if (this.contentVisible && (glyph.isInFont || font.missingFile)) { if (simpleFillText && !accent) { ctx.fillText(character, scaledX, scaledY); } else { this.paintChar(character, scaledX, scaledY, patternTransform); if (accent) { - scaledAccentX = scaledX + accent.offset.x / fontSizeScale; - scaledAccentY = scaledY - accent.offset.y / fontSizeScale; + scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale; + scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale; this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform); } } } - var charWidth = width * widthAdvanceScale + spacing * fontDirection; + var charWidth; + + if (vertical) { + charWidth = width * widthAdvanceScale - spacing * fontDirection; + } else { + charWidth = width * widthAdvanceScale + spacing * fontDirection; + } + x += charWidth; if (restoreNeeded) { @@ -15612,7 +6068,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } if (vertical) { - current.y -= x * textHScale; + current.y -= x; } else { current.x += x * textHScale; } @@ -15658,16 +6114,18 @@ var CanvasGraphics = function CanvasGraphicsClosure() { var operatorList = font.charProcOperatorList[glyph.operatorListId]; if (!operatorList) { - (0, _util.warn)("Type3 character \"".concat(glyph.operatorListId, "\" is not available.")); + (0, _util.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(); + if (this.contentVisible) { + this.processingType3 = glyph; + this.save(); + ctx.scale(fontSize, fontSize); + ctx.transform.apply(ctx, fontMatrix); + this.executeOperatorList(operatorList); + this.restore(); + } var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix); @@ -15686,16 +6144,14 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.endPath(); }, getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) { - var _this = this; - var pattern; - if (IR[0] === 'TilingPattern') { + if (IR[0] === "TilingPattern") { var color = IR[1]; var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice(); var canvasGraphicsFactory = { - createCanvasGraphics: function createCanvasGraphics(ctx) { - return new CanvasGraphics(ctx, _this.commonObjs, _this.objs, _this.canvasFactory, _this.webGLContext); + createCanvasGraphics: ctx => { + return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext); } }; pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform); @@ -15726,6 +6182,10 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.current.patternFill = false; }, shadingFill: function CanvasGraphics_shadingFill(patternIR) { + if (!this.contentVisible) { + return; + } + var ctx = this.ctx; this.save(); var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR); @@ -15757,12 +6217,16 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.restore(); }, beginInlineImage: function CanvasGraphics_beginInlineImage() { - (0, _util.unreachable)('Should not call beginInlineImage'); + (0, _util.unreachable)("Should not call beginInlineImage"); }, beginImageData: function CanvasGraphics_beginImageData() { - (0, _util.unreachable)('Should not call beginImageData'); + (0, _util.unreachable)("Should not call beginImageData"); }, paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) { + if (!this.contentVisible) { + return; + } + this.save(); this.baseTransformStack.push(this.baseTransform); @@ -15781,19 +6245,27 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } }, paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() { + if (!this.contentVisible) { + return; + } + this.restore(); this.baseTransform = this.baseTransformStack.pop(); }, beginGroup: function CanvasGraphics_beginGroup(group) { + if (!this.contentVisible) { + return; + } + this.save(); var currentCtx = this.ctx; if (!group.isolated) { - (0, _util.info)('TODO: Support non-isolated groups.'); + (0, _util.info)("TODO: Support non-isolated groups."); } if (group.knockout) { - (0, _util.warn)('Knockout groups not supported.'); + (0, _util.warn)("Knockout groups not supported."); } var currentTransform = currentCtx.mozCurrentTransform; @@ -15803,7 +6275,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } if (!group.bbox) { - throw new Error('Bounding box is required.'); + throw new Error("Bounding box is required."); } var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform); @@ -15827,10 +6299,10 @@ var CanvasGraphics = function CanvasGraphicsClosure() { drawnHeight = MAX_GROUP_SIZE; } - var cacheId = 'groupAt' + this.groupLevel; + var cacheId = "groupAt" + this.groupLevel; if (group.smask) { - cacheId += '_smask_' + this.smaskCounter++ % 2; + cacheId += "_smask_" + this.smaskCounter++ % 2; } var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); @@ -15843,10 +6315,10 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.smaskStack.push({ canvas: scratchCanvas.canvas, context: groupCtx, - offsetX: offsetX, - offsetY: offsetY, - scaleX: scaleX, - scaleY: scaleY, + offsetX, + offsetY, + scaleX, + scaleY, subtype: group.smask.subtype, backdrop: group.smask.backdrop, transferMap: group.smask.transferMap || null, @@ -15860,12 +6332,16 @@ var CanvasGraphics = function CanvasGraphicsClosure() { copyCtxState(currentCtx, groupCtx); this.ctx = groupCtx; - this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]); + this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]); this.groupStack.push(currentCtx); this.groupLevel++; this.current.activeSMask = null; }, endGroup: function CanvasGraphics_endGroup(group) { + if (!this.contentVisible) { + return; + } + this.groupLevel--; var groupCtx = this.ctx; this.ctx = this.groupStack.pop(); @@ -15913,34 +6389,11 @@ var CanvasGraphics = function CanvasGraphicsClosure() { endAnnotation: function CanvasGraphics_endAnnotation() { this.restore(); }, - paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) { - var domImage = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId); - - if (!domImage) { - (0, _util.warn)('Dependent image isn\'t ready yet'); + paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) { + if (!this.contentVisible) { 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; @@ -15952,8 +6405,8 @@ var CanvasGraphics = function CanvasGraphicsClosure() { if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) { glyph.compiled = compileType3Glyph({ data: img.data, - width: width, - height: height + width, + height }); } else { glyph.compiled = null; @@ -15965,26 +6418,31 @@ var CanvasGraphics = function CanvasGraphicsClosure() { return; } - var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); + var maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height); var maskCtx = maskCanvas.context; maskCtx.save(); putBinaryImageMask(maskCtx, img); - maskCtx.globalCompositeOperation = 'source-in'; + 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) { + + paintImageMaskXObjectRepeat(imgData, scaleX, skewX = 0, skewY = 0, scaleY, positions) { + if (!this.contentVisible) { + return; + } + 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 maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height); var maskCtx = maskCanvas.context; maskCtx.save(); putBinaryImageMask(maskCtx, imgData); - maskCtx.globalCompositeOperation = 'source-in'; + maskCtx.globalCompositeOperation = "source-in"; maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; maskCtx.fillRect(0, 0, width, height); maskCtx.restore(); @@ -15992,13 +6450,18 @@ var CanvasGraphics = function CanvasGraphicsClosure() { 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.transform(scaleX, skewX, skewY, 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) { + if (!this.contentVisible) { + return; + } + var ctx = this.ctx; var fillColor = this.current.fillColor; var isPatternFill = this.current.patternFill; @@ -16007,11 +6470,11 @@ var CanvasGraphics = function CanvasGraphicsClosure() { var image = images[i]; var width = image.width, height = image.height; - var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); + var maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height); var maskCtx = maskCanvas.context; maskCtx.save(); putBinaryImageMask(maskCtx, image); - maskCtx.globalCompositeOperation = 'source-in'; + maskCtx.globalCompositeOperation = "source-in"; maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; maskCtx.fillRect(0, 0, width, height); maskCtx.restore(); @@ -16023,20 +6486,28 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } }, paintImageXObject: function CanvasGraphics_paintImageXObject(objId) { - var imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId); + if (!this.contentVisible) { + return; + } + + const imgData = objId.startsWith("g_") ? this.commonObjs.get(objId) : this.objs.get(objId); if (!imgData) { - (0, _util.warn)('Dependent image isn\'t ready yet'); + (0, _util.warn)("Dependent image isn't ready yet"); return; } this.paintInlineImageXObject(imgData); }, paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) { - var imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId); + if (!this.contentVisible) { + return; + } + + const imgData = objId.startsWith("g_") ? this.commonObjs.get(objId) : this.objs.get(objId); if (!imgData) { - (0, _util.warn)('Dependent image isn\'t ready yet'); + (0, _util.warn)("Dependent image isn't ready yet"); return; } @@ -16057,6 +6528,10 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.paintInlineImageXObjectGroup(imgData, map); }, paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) { + if (!this.contentVisible) { + return; + } + var width = imgData.width; var height = imgData.height; var ctx = this.ctx; @@ -16071,18 +6546,18 @@ var CanvasGraphics = function CanvasGraphicsClosure() { var heightScale = Math.max(Math.sqrt(c * c + d * d), 1); var imgToPaint, tmpCanvas; - if (typeof HTMLElement === 'function' && imgData instanceof HTMLElement || !imgData.data) { + if (typeof HTMLElement === "function" && imgData instanceof HTMLElement || !imgData.data) { imgToPaint = imgData; } else { - tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', width, height); + tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", width, height); var tmpCtx = tmpCanvas.context; - putBinaryImageData(tmpCtx, imgData); + putBinaryImageData(tmpCtx, imgData, this.current.transferMaps); imgToPaint = tmpCanvas.canvas; } var paintWidth = width, paintHeight = height; - var tmpCanvasId = 'prescale1'; + var tmpCanvasId = "prescale1"; while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) { var newWidth = paintWidth, @@ -16105,7 +6580,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() { imgToPaint = tmpCanvas.canvas; paintWidth = newWidth; paintHeight = newHeight; - tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1'; + tmpCanvasId = tmpCanvasId === "prescale1" ? "prescale2" : "prescale1"; } ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height); @@ -16113,7 +6588,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() { if (this.imageLayer) { var position = this.getCanvasPosition(0, -height); this.imageLayer.appendImage({ - imgData: imgData, + imgData, left: position[0], top: position[1], width: width / currentTransform[0], @@ -16124,12 +6599,16 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.restore(); }, paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) { + if (!this.contentVisible) { + return; + } + var ctx = this.ctx; var w = imgData.width; var h = imgData.height; - var tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', w, h); + var tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", w, h); var tmpCtx = tmpCanvas.context; - putBinaryImageData(tmpCtx, imgData); + putBinaryImageData(tmpCtx, imgData, this.current.transferMaps); for (var i = 0, ii = map.length; i < ii; i++) { var entry = map[i]; @@ -16141,7 +6620,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() { if (this.imageLayer) { var position = this.getCanvasPosition(entry.x, entry.y); this.imageLayer.appendImage({ - imgData: imgData, + imgData, left: position[0], top: position[1], width: w, @@ -16153,16 +6632,36 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } }, paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() { + if (!this.contentVisible) { + return; + } + this.ctx.fillRect(0, 0, 1, 1); }, - paintXObject: function CanvasGraphics_paintXObject() { - (0, _util.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() {}, + beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) { + this.markedContentStack.push({ + visible: true + }); + }, + beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) { + if (tag === "OC") { + this.markedContentStack.push({ + visible: this.optionalContentConfig.isVisible(properties) + }); + } else { + this.markedContentStack.push({ + visible: true + }); + } + + this.contentVisible = this.isContentVisible(); + }, + endMarkedContent: function CanvasGraphics_endMarkedContent() { + this.markedContentStack.pop(); + this.contentVisible = this.isContentVisible(); + }, beginCompat: function CanvasGraphics_beginCompat() {}, endCompat: function CanvasGraphics_endCompat() {}, consumePath: function CanvasGraphics_consumePath() { @@ -16170,7 +6669,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() { if (this.pendingClip) { if (this.pendingClip === EO_CLIP) { - ctx.clip('evenodd'); + ctx.clip("evenodd"); } else { ctx.clip(); } @@ -16180,17 +6679,28 @@ var CanvasGraphics = function CanvasGraphicsClosure() { ctx.beginPath(); }, - getSinglePixelWidth: function getSinglePixelWidth(scale) { + + getSinglePixelWidth(scale) { if (this._cachedGetSinglePixelWidth === null) { - var inverse = this.ctx.mozCurrentTransformInverse; + const inverse = this.ctx.mozCurrentTransformInverse; 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]]; + }, + isContentVisible: function CanvasGraphics_isContentVisible() { + for (let i = this.markedContentStack.length - 1; i >= 0; i--) { + if (!this.markedContentStack[i].visible) { + return false; + } + } + + return true; } }; @@ -16204,7 +6714,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() { exports.CanvasGraphics = CanvasGraphics; /***/ }), -/* 155 */ +/* 11 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -16216,25 +6726,40 @@ Object.defineProperty(exports, "__esModule", { exports.getShadingPatternFromIR = getShadingPatternFromIR; exports.TilingPattern = void 0; -var _util = __w_pdfjs_require__(1); +var _util = __w_pdfjs_require__(2); var ShadingIRs = {}; + +function applyBoundingBox(ctx, bbox) { + if (!bbox || typeof Path2D === "undefined") { + return; + } + + const width = bbox[2] - bbox[0]; + const height = bbox[3] - bbox[1]; + const region = new Path2D(); + region.rect(bbox[0], bbox[1], width, height); + ctx.clip(region); +} + 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]; + var bbox = raw[2]; + var colorStops = raw[3]; + var p0 = raw[4]; + var p1 = raw[5]; + var r0 = raw[6]; + var r1 = raw[7]; return { - type: 'Pattern', + type: "Pattern", getPattern: function RadialAxial_getPattern(ctx) { + applyBoundingBox(ctx, bbox); var grad; - if (type === 'axial') { + if (type === "axial") { grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]); - } else if (type === 'radial') { + } else if (type === "radial") { grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1); } @@ -16308,24 +6833,50 @@ var createMeshCanvas = function createMeshCanvasClosure() { 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); + let k; + + if (y < y1) { + k = 0; + } else if (y1 === y2) { + k = 1; + } else { + k = (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); + let k; + + if (y > y3) { + k = 1; + } else if (y2 === y3) { + k = 0; + } else { + k = (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); + let k; + + if (y < y1) { + k = 0; + } else if (y > y3) { + k = 1; + } else { + k = (y1 - y) / (y1 - y3); + } + xb = x1 - (x1 - x3) * k; cbr = c1r - (c1r - c3r) * k; cbg = c1g - (c1g - c3g) * k; @@ -16336,7 +6887,13 @@ var createMeshCanvas = function createMeshCanvasClosure() { for (var x = x1_; x <= x2_; x++) { k = (xa - x) / (xa - xb); - k = k < 0 ? 0 : k > 1 ? 1 : k; + + if (k < 0) { + k = 0; + } else if (k > 1) { + k = 1; + } + bytes[j++] = car - (car - cbr) * k | 0; bytes[j++] = cag - (cag - cbg) * k | 0; bytes[j++] = cab - (cab - cbb) * k | 0; @@ -16351,7 +6908,7 @@ var createMeshCanvas = function createMeshCanvasClosure() { var i, ii; switch (figure.type) { - case 'lattice': + case "lattice": var verticesPerRow = figure.verticesPerRow; var rows = Math.floor(ps.length / verticesPerRow) - 1; var cols = verticesPerRow - 1; @@ -16367,7 +6924,7 @@ var createMeshCanvas = function createMeshCanvasClosure() { break; - case 'triangles': + 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]); } @@ -16375,7 +6932,7 @@ var createMeshCanvas = function createMeshCanvasClosure() { break; default: - throw new Error('illegal figure'); + throw new Error("illegal figure"); } } @@ -16392,8 +6949,8 @@ var createMeshCanvas = function createMeshCanvasClosure() { var scaleX = boundsWidth / width; var scaleY = boundsHeight / height; var context = { - coords: coords, - colors: colors, + coords, + colors, offsetX: -offsetX, offsetY: -offsetY, scaleX: 1 / scaleX, @@ -16405,17 +6962,17 @@ var createMeshCanvas = function createMeshCanvasClosure() { if (webGLContext.isEnabled) { canvas = webGLContext.drawFigures({ - width: width, - height: height, - backgroundColor: backgroundColor, - figures: figures, - context: context + width, + height, + backgroundColor, + figures, + context }); - tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false); + 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); + tmpCanvas = cachedCanvases.getCanvas("mesh", paddedWidth, paddedHeight, false); var tmpCtx = tmpCanvas.context; var data = tmpCtx.createImageData(width, height); @@ -16439,11 +6996,11 @@ var createMeshCanvas = function createMeshCanvasClosure() { } return { - canvas: canvas, + canvas, offsetX: offsetX - BORDER_SIZE * scaleX, offsetY: offsetY - BORDER_SIZE * scaleY, - scaleX: scaleX, - scaleY: scaleY + scaleX, + scaleY }; } @@ -16457,10 +7014,12 @@ ShadingIRs.Mesh = { var figures = raw[4]; var bounds = raw[5]; var matrix = raw[6]; + var bbox = raw[7]; var background = raw[8]; return { - type: 'Pattern', + type: "Pattern", getPattern: function Mesh_getPattern(ctx, owner, shadingFill) { + applyBoundingBox(ctx, bbox); var scale; if (shadingFill) { @@ -16487,7 +7046,7 @@ ShadingIRs.Mesh = { ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY); - return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat'); + return ctx.createPattern(temporaryPatternCanvas.canvas, "no-repeat"); } }; } @@ -16495,9 +7054,9 @@ ShadingIRs.Mesh = { ShadingIRs.Dummy = { fromIR: function Dummy_fromIR() { return { - type: 'Pattern', + type: "Pattern", getPattern: function Dummy_fromIR_getPattern() { - return 'hotpink'; + return "hotpink"; } }; } @@ -16507,7 +7066,7 @@ function getShadingPatternFromIR(raw) { var shadingIR = ShadingIRs[raw[0]]; if (!shadingIR) { - throw new Error("Unknown IR type: ".concat(raw[0])); + throw new Error(`Unknown IR type: ${raw[0]}`); } return shadingIR.fromIR(raw); @@ -16531,7 +7090,7 @@ var TilingPattern = function TilingPatternClosure() { this.color = color; this.canvasGraphicsFactory = canvasGraphicsFactory; this.baseTransform = baseTransform; - this.type = 'Pattern'; + this.type = "Pattern"; this.ctx = ctx; } @@ -16545,7 +7104,7 @@ var TilingPattern = function TilingPatternClosure() { var tilingType = this.tilingType; var color = this.color; var canvasGraphicsFactory = this.canvasGraphicsFactory; - (0, _util.info)('TilingType: ' + tilingType); + (0, _util.info)("TilingType: " + tilingType); var x0 = bbox[0], y0 = bbox[1], x1 = bbox[2], @@ -16558,7 +7117,7 @@ var TilingPattern = function TilingPatternClosure() { var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]]; var dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]); var dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]); - var tmpCanvas = owner.cachedCanvases.getCanvas('pattern', dimx.size, dimy.size, true); + var tmpCanvas = owner.cachedCanvases.getCanvas("pattern", dimx.size, dimy.size, true); var tmpCtx = tmpCanvas.context; var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx); graphics.groupLevel = owner.groupLevel; @@ -16583,8 +7142,8 @@ var TilingPattern = function TilingPatternClosure() { } return { - scale: scale, - size: size + scale, + size }; }, clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) { @@ -16597,8 +7156,8 @@ var TilingPattern = function TilingPatternClosure() { } }, setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) { - var context = graphics.ctx, - current = graphics.current; + const context = graphics.ctx, + current = graphics.current; switch (paintType) { case PaintType.COLORED: @@ -16619,7 +7178,7 @@ var TilingPattern = function TilingPatternClosure() { break; default: - throw new _util.FormatError("Unsupported paint type: ".concat(paintType)); + throw new _util.FormatError(`Unsupported paint type: ${paintType}`); } }, getPattern: function TilingPattern_getPattern(ctx, owner) { @@ -16627,7 +7186,7 @@ var TilingPattern = function TilingPatternClosure() { ctx.setTransform.apply(ctx, this.baseTransform); ctx.transform.apply(ctx, this.matrix); var temporaryPatternCanvas = this.createPatternCanvas(owner); - return ctx.createPattern(temporaryPatternCanvas, 'repeat'); + return ctx.createPattern(temporaryPatternCanvas, "repeat"); } }; return TilingPattern; @@ -16636,7 +7195,7 @@ var TilingPattern = function TilingPatternClosure() { exports.TilingPattern = TilingPattern; /***/ }), -/* 156 */ +/* 12 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -16646,13 +7205,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.GlobalWorkerOptions = void 0; -var GlobalWorkerOptions = Object.create(null); +const GlobalWorkerOptions = Object.create(null); exports.GlobalWorkerOptions = GlobalWorkerOptions; GlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort; -GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? '' : GlobalWorkerOptions.workerSrc; +GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? "" : GlobalWorkerOptions.workerSrc; /***/ }), -/* 157 */ +/* 13 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -16661,307 +7220,249 @@ GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? '' Object.defineProperty(exports, "__esModule", { value: true }); -exports.MessageHandler = MessageHandler; +exports.MessageHandler = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(1); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function resolveCall(_x, _x2) { - return _resolveCall.apply(this, arguments); -} - -function _resolveCall() { - _resolveCall = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(fn, args) { - var thisArg, - _args = arguments; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - thisArg = _args.length > 2 && _args[2] !== undefined ? _args[2] : null; - - if (fn) { - _context.next = 3; - break; - } - - return _context.abrupt("return", undefined); - - case 3: - return _context.abrupt("return", fn.apply(thisArg, args)); - - case 4: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - return _resolveCall.apply(this, arguments); -} +const CallbackKind = { + UNKNOWN: 0, + DATA: 1, + ERROR: 2 +}; +const StreamKind = { + UNKNOWN: 0, + CANCEL: 1, + CANCEL_COMPLETE: 2, + CLOSE: 3, + ENQUEUE: 4, + ERROR: 5, + PULL: 6, + PULL_COMPLETE: 7, + START_COMPLETE: 8 +}; function wrapReason(reason) { - if (_typeof(reason) !== 'object') { + if (typeof reason !== "object" || reason === null) { return reason; } switch (reason.name) { - case 'AbortException': + case "AbortException": return new _util.AbortException(reason.message); - case 'MissingPDFException': + case "MissingPDFException": return new _util.MissingPDFException(reason.message); - case 'UnexpectedResponseException': + case "UnexpectedResponseException": return new _util.UnexpectedResponseException(reason.message, reason.status); - default: + case "UnknownErrorException": return new _util.UnknownErrorException(reason.message, reason.details); + + default: + return new _util.UnknownErrorException(reason.message, reason.toString()); } } -function makeReasonSerializable(reason) { - if (!(reason instanceof Error) || reason instanceof _util.AbortException || reason instanceof _util.MissingPDFException || reason instanceof _util.UnexpectedResponseException || reason instanceof _util.UnknownErrorException) { - return reason; - } +class MessageHandler { + constructor(sourceName, targetName, comObj) { + this.sourceName = sourceName; + this.targetName = targetName; + this.comObj = comObj; + this.callbackId = 1; + this.streamId = 1; + this.postMessageTransfers = true; + this.streamSinks = Object.create(null); + this.streamControllers = Object.create(null); + this.callbackCapabilities = Object.create(null); + this.actionHandler = Object.create(null); - return new _util.UnknownErrorException(reason.message, reason.toString()); -} + this._onComObjOnMessage = event => { + const data = event.data; -function resolveOrReject(capability, success, reason) { - if (success) { - capability.resolve(); - } else { - capability.reject(reason); - } -} - -function finalize(promise) { - return Promise.resolve(promise)["catch"](function () {}); -} - -function MessageHandler(sourceName, targetName, comObj) { - var _this = this; - - this.sourceName = sourceName; - this.targetName = targetName; - this.comObj = comObj; - this.callbackId = 1; - this.streamId = 1; - this.postMessageTransfers = true; - this.streamSinks = Object.create(null); - this.streamControllers = Object.create(null); - var callbacksCapabilities = this.callbacksCapabilities = Object.create(null); - var ah = this.actionHandler = Object.create(null); - - this._onComObjOnMessage = function (event) { - var data = event.data; - - if (data.targetName !== _this.sourceName) { - return; - } - - if (data.stream) { - _this._processStreamMessage(data); - } else 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(wrapReason(data.error)); - } else { - callback.resolve(data.data); - } - } else { - throw new Error("Cannot resolve callback ".concat(callbackId)); + if (data.targetName !== this.sourceName) { + return; + } + + if (data.stream) { + this._processStreamMessage(data); + + return; + } + + if (data.callback) { + const callbackId = data.callbackId; + const capability = this.callbackCapabilities[callbackId]; + + if (!capability) { + throw new Error(`Cannot resolve callback ${callbackId}`); + } + + delete this.callbackCapabilities[callbackId]; + + if (data.callback === CallbackKind.DATA) { + capability.resolve(data.data); + } else if (data.callback === CallbackKind.ERROR) { + capability.reject(wrapReason(data.reason)); + } else { + throw new Error("Unexpected callback case"); + } + + return; + } + + const action = this.actionHandler[data.action]; + + if (!action) { + throw new Error(`Unknown action from worker: ${data.action}`); } - } 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); + const cbSourceName = this.sourceName; + const cbTargetName = data.sourceName; + new Promise(function (resolve) { + resolve(action(data.data)); }).then(function (result) { comObj.postMessage({ - sourceName: _sourceName, - targetName: _targetName, - isReply: true, + sourceName: cbSourceName, + targetName: cbTargetName, + callback: CallbackKind.DATA, callbackId: data.callbackId, data: result }); }, function (reason) { comObj.postMessage({ - sourceName: _sourceName, - targetName: _targetName, - isReply: true, + sourceName: cbSourceName, + targetName: cbTargetName, + callback: CallbackKind.ERROR, callbackId: data.callbackId, - error: makeReasonSerializable(reason) + reason: wrapReason(reason) }); }); - } else if (data.streamId) { - _this._createStreamSink(data); - } else { - action[0].call(action[1], data.data); + return; } - } else { - throw new Error("Unknown action from worker: ".concat(data.action)); - } - }; - comObj.addEventListener('message', this._onComObjOnMessage); -} + if (data.streamId) { + this._createStreamSink(data); -MessageHandler.prototype = { - on: function on(actionName, handler, scope) { - var ah = this.actionHandler; + return; + } + + action(data.data); + }; + + comObj.addEventListener("message", this._onComObjOnMessage); + } + + on(actionName, handler) { + const ah = this.actionHandler; if (ah[actionName]) { - throw new Error("There is already an actionName called \"".concat(actionName, "\"")); + throw new Error(`There is already an actionName called "${actionName}"`); } - ah[actionName] = [handler, scope]; - }, - send: function send(actionName, data, transfers) { - var message = { + ah[actionName] = handler; + } + + send(actionName, data, transfers) { + this._postMessage({ sourceName: this.sourceName, targetName: this.targetName, action: actionName, - data: data - }; - this.postMessage(message, transfers); - }, - sendWithPromise: function sendWithPromise(actionName, data, transfers) { - var callbackId = this.callbackId++; - var message = { - sourceName: this.sourceName, - targetName: this.targetName, - action: actionName, - data: data, - callbackId: callbackId - }; - var capability = (0, _util.createPromiseCapability)(); - this.callbacksCapabilities[callbackId] = capability; + data + }, transfers); + } + + sendWithPromise(actionName, data, transfers) { + const callbackId = this.callbackId++; + const capability = (0, _util.createPromiseCapability)(); + this.callbackCapabilities[callbackId] = capability; try { - this.postMessage(message, transfers); - } catch (e) { - capability.reject(e); + this._postMessage({ + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + callbackId, + data + }, transfers); + } catch (ex) { + capability.reject(ex); } return capability.promise; - }, - sendWithStream: function sendWithStream(actionName, data, queueingStrategy, transfers) { - var _this2 = this; + } - var streamId = this.streamId++; - var sourceName = this.sourceName; - var targetName = this.targetName; - return new _util.ReadableStream({ - start: function start(controller) { - var startCapability = (0, _util.createPromiseCapability)(); - _this2.streamControllers[streamId] = { - controller: controller, + sendWithStream(actionName, data, queueingStrategy, transfers) { + const streamId = this.streamId++; + const sourceName = this.sourceName; + const targetName = this.targetName; + const comObj = this.comObj; + return new ReadableStream({ + start: controller => { + const startCapability = (0, _util.createPromiseCapability)(); + this.streamControllers[streamId] = { + controller, startCall: startCapability, + pullCall: null, + cancelCall: null, isClosed: false }; - _this2.postMessage({ - sourceName: sourceName, - targetName: targetName, + this._postMessage({ + sourceName, + targetName, action: actionName, - streamId: streamId, - data: data, + streamId, + data, desiredSize: controller.desiredSize - }); + }, transfers); return startCapability.promise; }, - pull: function pull(controller) { - var pullCapability = (0, _util.createPromiseCapability)(); - _this2.streamControllers[streamId].pullCall = pullCapability; - - _this2.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: 'pull', - streamId: streamId, + pull: controller => { + const pullCapability = (0, _util.createPromiseCapability)(); + this.streamControllers[streamId].pullCall = pullCapability; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL, + streamId, desiredSize: controller.desiredSize }); - return pullCapability.promise; }, - cancel: function cancel(reason) { - var cancelCapability = (0, _util.createPromiseCapability)(); - _this2.streamControllers[streamId].cancelCall = cancelCapability; - _this2.streamControllers[streamId].isClosed = true; - - _this2.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: 'cancel', - reason: reason, - streamId: streamId + cancel: reason => { + (0, _util.assert)(reason instanceof Error, "cancel must have a valid reason"); + const cancelCapability = (0, _util.createPromiseCapability)(); + this.streamControllers[streamId].cancelCall = cancelCapability; + this.streamControllers[streamId].isClosed = true; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL, + streamId, + reason: wrapReason(reason) }); - return cancelCapability.promise; } }, queueingStrategy); - }, - _createStreamSink: function _createStreamSink(data) { - var _this3 = this; - - var self = this; - var action = this.actionHandler[data.action]; - var streamId = data.streamId; - var desiredSize = data.desiredSize; - var sourceName = this.sourceName; - var targetName = data.sourceName; - var capability = (0, _util.createPromiseCapability)(); - - var sendStreamRequest = function sendStreamRequest(_ref) { - var stream = _ref.stream, - chunk = _ref.chunk, - transfers = _ref.transfers, - success = _ref.success, - reason = _ref.reason; - - _this3.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: stream, - streamId: streamId, - chunk: chunk, - success: success, - reason: reason - }, transfers); - }; - - var streamSink = { - enqueue: function enqueue(chunk) { - var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; - var transfers = arguments.length > 2 ? arguments[2] : undefined; + } + _createStreamSink(data) { + const self = this; + const action = this.actionHandler[data.action]; + const streamId = data.streamId; + const sourceName = this.sourceName; + const targetName = data.sourceName; + const comObj = this.comObj; + const streamSink = { + enqueue(chunk, size = 1, transfers) { if (this.isCancelled) { return; } - var lastDesiredSize = this.desiredSize; + const lastDesiredSize = this.desiredSize; this.desiredSize -= size; if (lastDesiredSize > 0 && this.desiredSize <= 0) { @@ -16969,196 +7470,249 @@ MessageHandler.prototype = { this.ready = this.sinkCapability.promise; } - sendStreamRequest({ - stream: 'enqueue', - chunk: chunk, - transfers: transfers - }); + self._postMessage({ + sourceName, + targetName, + stream: StreamKind.ENQUEUE, + streamId, + chunk + }, transfers); }, - close: function close() { + + close() { if (this.isCancelled) { return; } this.isCancelled = true; - sendStreamRequest({ - stream: 'close' + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CLOSE, + streamId }); delete self.streamSinks[streamId]; }, - error: function error(reason) { + + error(reason) { + (0, _util.assert)(reason instanceof Error, "error must have a valid reason"); + if (this.isCancelled) { return; } this.isCancelled = true; - sendStreamRequest({ - stream: 'error', - reason: reason + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.ERROR, + streamId, + reason: wrapReason(reason) }); }, - sinkCapability: capability, + + sinkCapability: (0, _util.createPromiseCapability)(), onPull: null, onCancel: null, isCancelled: false, - desiredSize: desiredSize, + desiredSize: data.desiredSize, ready: null }; streamSink.sinkCapability.resolve(); streamSink.ready = streamSink.sinkCapability.promise; this.streamSinks[streamId] = streamSink; - resolveCall(action[0], [data.data, streamSink], action[1]).then(function () { - sendStreamRequest({ - stream: 'start_complete', + new Promise(function (resolve) { + resolve(action(data.data, streamSink)); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.START_COMPLETE, + streamId, success: true }); }, function (reason) { - sendStreamRequest({ - stream: 'start_complete', - success: false, - reason: reason + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.START_COMPLETE, + streamId, + reason: wrapReason(reason) }); }); - }, - _processStreamMessage: function _processStreamMessage(data) { - var _this4 = this; + } - var sourceName = this.sourceName; - var targetName = data.sourceName; - var streamId = data.streamId; - - var sendStreamResponse = function sendStreamResponse(_ref2) { - var stream = _ref2.stream, - success = _ref2.success, - reason = _ref2.reason; - - _this4.comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: stream, - success: success, - streamId: streamId, - reason: reason - }); - }; - - var deleteStreamController = function deleteStreamController() { - Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) { - return capability && finalize(capability.promise); - })).then(function () { - delete _this4.streamControllers[data.streamId]; - }); - }; + _processStreamMessage(data) { + const streamId = data.streamId; + const sourceName = this.sourceName; + const targetName = data.sourceName; + const comObj = this.comObj; switch (data.stream) { - case 'start_complete': - resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason)); + case StreamKind.START_COMPLETE: + if (data.success) { + this.streamControllers[streamId].startCall.resolve(); + } else { + this.streamControllers[streamId].startCall.reject(wrapReason(data.reason)); + } + break; - case 'pull_complete': - resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason)); + case StreamKind.PULL_COMPLETE: + if (data.success) { + this.streamControllers[streamId].pullCall.resolve(); + } else { + this.streamControllers[streamId].pullCall.reject(wrapReason(data.reason)); + } + break; - case 'pull': - if (!this.streamSinks[data.streamId]) { - sendStreamResponse({ - stream: 'pull_complete', + case StreamKind.PULL: + if (!this.streamSinks[streamId]) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, success: true }); break; } - if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) { - this.streamSinks[data.streamId].sinkCapability.resolve(); + if (this.streamSinks[streamId].desiredSize <= 0 && data.desiredSize > 0) { + this.streamSinks[streamId].sinkCapability.resolve(); } - this.streamSinks[data.streamId].desiredSize = data.desiredSize; - resolveCall(this.streamSinks[data.streamId].onPull).then(function () { - sendStreamResponse({ - stream: 'pull_complete', + this.streamSinks[streamId].desiredSize = data.desiredSize; + const { + onPull + } = this.streamSinks[data.streamId]; + new Promise(function (resolve) { + resolve(onPull && onPull()); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, success: true }); }, function (reason) { - sendStreamResponse({ - stream: 'pull_complete', - success: false, - reason: reason + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + reason: wrapReason(reason) }); }); break; - case 'enqueue': - (0, _util.assert)(this.streamControllers[data.streamId], 'enqueue should have stream controller'); + case StreamKind.ENQUEUE: + (0, _util.assert)(this.streamControllers[streamId], "enqueue should have stream controller"); - if (!this.streamControllers[data.streamId].isClosed) { - this.streamControllers[data.streamId].controller.enqueue(data.chunk); - } - - break; - - case 'close': - (0, _util.assert)(this.streamControllers[data.streamId], 'close should have stream controller'); - - if (this.streamControllers[data.streamId].isClosed) { + if (this.streamControllers[streamId].isClosed) { break; } - this.streamControllers[data.streamId].isClosed = true; - this.streamControllers[data.streamId].controller.close(); - deleteStreamController(); + this.streamControllers[streamId].controller.enqueue(data.chunk); break; - case 'error': - (0, _util.assert)(this.streamControllers[data.streamId], 'error should have stream controller'); - this.streamControllers[data.streamId].controller.error(wrapReason(data.reason)); - deleteStreamController(); - break; + case StreamKind.CLOSE: + (0, _util.assert)(this.streamControllers[streamId], "close should have stream controller"); - case 'cancel_complete': - resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason)); - deleteStreamController(); - break; - - case 'cancel': - if (!this.streamSinks[data.streamId]) { + if (this.streamControllers[streamId].isClosed) { break; } - resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () { - sendStreamResponse({ - stream: 'cancel_complete', + this.streamControllers[streamId].isClosed = true; + this.streamControllers[streamId].controller.close(); + + this._deleteStreamController(streamId); + + break; + + case StreamKind.ERROR: + (0, _util.assert)(this.streamControllers[streamId], "error should have stream controller"); + this.streamControllers[streamId].controller.error(wrapReason(data.reason)); + + this._deleteStreamController(streamId); + + break; + + case StreamKind.CANCEL_COMPLETE: + if (data.success) { + this.streamControllers[streamId].cancelCall.resolve(); + } else { + this.streamControllers[streamId].cancelCall.reject(wrapReason(data.reason)); + } + + this._deleteStreamController(streamId); + + break; + + case StreamKind.CANCEL: + if (!this.streamSinks[streamId]) { + break; + } + + const { + onCancel + } = this.streamSinks[data.streamId]; + new Promise(function (resolve) { + resolve(onCancel && onCancel(wrapReason(data.reason))); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL_COMPLETE, + streamId, success: true }); }, function (reason) { - sendStreamResponse({ - stream: 'cancel_complete', - success: false, - reason: reason + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL_COMPLETE, + streamId, + reason: wrapReason(reason) }); }); - this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason)); - this.streamSinks[data.streamId].isCancelled = true; - delete this.streamSinks[data.streamId]; + this.streamSinks[streamId].sinkCapability.reject(wrapReason(data.reason)); + this.streamSinks[streamId].isCancelled = true; + delete this.streamSinks[streamId]; break; default: - throw new Error('Unexpected stream case'); + throw new Error("Unexpected stream case"); } - }, - postMessage: function postMessage(message, transfers) { + } + + async _deleteStreamController(streamId) { + await Promise.allSettled([this.streamControllers[streamId].startCall, this.streamControllers[streamId].pullCall, this.streamControllers[streamId].cancelCall].map(function (capability) { + return capability && capability.promise; + })); + delete this.streamControllers[streamId]; + } + + _postMessage(message, transfers) { if (transfers && this.postMessageTransfers) { this.comObj.postMessage(message, transfers); } else { this.comObj.postMessage(message); } - }, - destroy: function destroy() { - this.comObj.removeEventListener('message', this._onComObjOnMessage); } -}; + + destroy() { + this.comObj.removeEventListener("message", this._onComObjOnMessage); + } + +} + +exports.MessageHandler = MessageHandler; /***/ }), -/* 158 */ +/* 14 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -17169,136 +7723,118 @@ Object.defineProperty(exports, "__esModule", { }); exports.Metadata = void 0; -var _util = __w_pdfjs_require__(1); +var _util = __w_pdfjs_require__(2); -var _xml_parser = __w_pdfjs_require__(159); +var _xml_parser = __w_pdfjs_require__(15); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var Metadata = -/*#__PURE__*/ -function () { - function Metadata(data) { - _classCallCheck(this, Metadata); - - (0, _util.assert)(typeof data === 'string', 'Metadata: input is not a string'); +class Metadata { + constructor(data) { + (0, _util.assert)(typeof data === "string", "Metadata: input is not a string"); data = this._repair(data); - var parser = new _xml_parser.SimpleXMLParser(); - var xmlDocument = parser.parseFromString(data); - this._metadata = Object.create(null); + const parser = new _xml_parser.SimpleXMLParser(); + const xmlDocument = parser.parseFromString(data); + this._metadataMap = new Map(); if (xmlDocument) { this._parse(xmlDocument); } } - _createClass(Metadata, [{ - key: "_repair", - value: function _repair(data) { - return data.replace(/^([^<]+)/, '').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); - }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) { - switch (name) { - case 'amp': - return '&'; + _repair(data) { + return data.replace(/^[^<]+/, "").replace(/>\\376\\377([^<]+)/g, function (all, codes) { + const bytes = codes.replace(/\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) { + return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1); + }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) { + switch (name) { + case "amp": + return "&"; - case 'apos': - return '\''; + case "apos": + return "'"; - case 'gt': - return '>'; + case "gt": + return ">"; - case 'lt': - return '<'; + case "lt": + return "<"; - case 'quot': - return '\"'; - } - - throw new Error("_repair: ".concat(name, " isn't defined.")); - }); - var chars = ''; - - for (var i = 0, ii = bytes.length; i < ii; i += 2) { - var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1); - - if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) { - chars += String.fromCharCode(code); - } else { - chars += '' + (0x10000 + code).toString(16).substring(1) + ';'; - } + case "quot": + return '"'; } - return '>' + chars; + throw new Error(`_repair: ${name} isn't defined.`); }); - } - }, { - key: "_parse", - value: function _parse(xmlDocument) { - var rdf = xmlDocument.documentElement; + let chars = ""; - if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') { - rdf = rdf.firstChild; + for (let i = 0, ii = bytes.length; i < ii; i += 2) { + const code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1); - while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') { - rdf = rdf.nextSibling; + if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) { + chars += String.fromCharCode(code); + } else { + chars += "" + (0x10000 + code).toString(16).substring(1) + ";"; } } - var nodeName = rdf ? rdf.nodeName.toLowerCase() : null; + return ">" + chars; + }); + } - if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) { - return; + _parse(xmlDocument) { + let rdf = xmlDocument.documentElement; + + if (rdf.nodeName.toLowerCase() !== "rdf:rdf") { + rdf = rdf.firstChild; + + while (rdf && rdf.nodeName.toLowerCase() !== "rdf:rdf") { + rdf = rdf.nextSibling; + } + } + + const nodeName = rdf ? rdf.nodeName.toLowerCase() : null; + + if (!rdf || nodeName !== "rdf:rdf" || !rdf.hasChildNodes()) { + return; + } + + const children = rdf.childNodes; + + for (let i = 0, ii = children.length; i < ii; i++) { + const desc = children[i]; + + if (desc.nodeName.toLowerCase() !== "rdf:description") { + continue; } - var children = rdf.childNodes; + for (let j = 0, jj = desc.childNodes.length; j < jj; j++) { + if (desc.childNodes[j].nodeName.toLowerCase() !== "#text") { + const entry = desc.childNodes[j]; + const name = entry.nodeName.toLowerCase(); - for (var i = 0, ii = children.length; i < ii; i++) { - var desc = children[i]; - - if (desc.nodeName.toLowerCase() !== 'rdf:description') { - continue; - } - - for (var j = 0, jj = desc.childNodes.length; j < jj; j++) { - if (desc.childNodes[j].nodeName.toLowerCase() !== '#text') { - var entry = desc.childNodes[j]; - var name = entry.nodeName.toLowerCase(); - this._metadata[name] = entry.textContent.trim(); - } + this._metadataMap.set(name, entry.textContent.trim()); } } } - }, { - key: "get", - value: function get(name) { - var data = this._metadata[name]; - return typeof data !== 'undefined' ? data : null; - } - }, { - key: "getAll", - value: function getAll() { - return this._metadata; - } - }, { - key: "has", - value: function has(name) { - return typeof this._metadata[name] !== 'undefined'; - } - }]); + } - return Metadata; -}(); + get(name) { + return this._metadataMap.has(name) ? this._metadataMap.get(name) : null; + } + + getAll() { + return Object.fromEntries(this._metadataMap); + } + + has(name) { + return this._metadataMap.has(name); + } + +} exports.Metadata = Metadata; /***/ }), -/* 159 */ +/* 15 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -17308,38 +7844,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.SimpleXMLParser = void 0; - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } - -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var XMLParserErrorCode = { +const XMLParserErrorCode = { NoError: 0, EndOfDocument: -1, UnterminatedCdat: -2, @@ -17354,12 +7859,12 @@ var XMLParserErrorCode = { }; function isWhitespace(s, index) { - var ch = s[index]; - return ch === ' ' || ch === '\n' || ch === '\r' || ch === '\t'; + const ch = s[index]; + return ch === " " || ch === "\n" || ch === "\r" || ch === "\t"; } function isWhitespaceString(s) { - for (var i = 0, ii = s.length; i < ii; i++) { + for (let i = 0, ii = s.length; i < ii; i++) { if (!isWhitespace(s, i)) { return false; } @@ -17368,469 +7873,580 @@ function isWhitespaceString(s) { return true; } -var XMLParserBase = -/*#__PURE__*/ -function () { - function XMLParserBase() { - _classCallCheck(this, XMLParserBase); +class XMLParserBase { + _resolveEntities(s) { + return s.replace(/&([^;]+);/g, (all, entity) => { + if (entity.substring(0, 2) === "#x") { + return String.fromCharCode(parseInt(entity.substring(2), 16)); + } else if (entity.substring(0, 1) === "#") { + return String.fromCharCode(parseInt(entity.substring(1), 10)); + } + + switch (entity) { + case "lt": + return "<"; + + case "gt": + return ">"; + + case "amp": + return "&"; + + case "quot": + return '"'; + } + + return this.onResolveEntity(entity); + }); } - _createClass(XMLParserBase, [{ - key: "_resolveEntities", - value: function _resolveEntities(s) { - var _this = this; + _parseContent(s, start) { + const attributes = []; + let pos = start; - return s.replace(/&([^;]+);/g, function (all, entity) { - if (entity.substring(0, 2) === '#x') { - return String.fromCharCode(parseInt(entity.substring(2), 16)); - } else if (entity.substring(0, 1) === '#') { - return String.fromCharCode(parseInt(entity.substring(1), 10)); - } + function skipWs() { + while (pos < s.length && isWhitespace(s, pos)) { + ++pos; + } + } - switch (entity) { - case 'lt': - return '<'; + while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== ">" && s[pos] !== "/") { + ++pos; + } - case 'gt': - return '>'; + const name = s.substring(start, pos); + skipWs(); - case 'amp': - return '&'; + while (pos < s.length && s[pos] !== ">" && s[pos] !== "/" && s[pos] !== "?") { + skipWs(); + let attrName = "", + attrValue = ""; - case 'quot': - return '\"'; - } + while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== "=") { + attrName += s[pos]; + ++pos; + } - return _this.onResolveEntity(entity); + skipWs(); + + if (s[pos] !== "=") { + return null; + } + + ++pos; + skipWs(); + const attrEndChar = s[pos]; + + if (attrEndChar !== '"' && attrEndChar !== "'") { + return null; + } + + const attrEndIndex = s.indexOf(attrEndChar, ++pos); + + if (attrEndIndex < 0) { + return null; + } + + attrValue = s.substring(pos, attrEndIndex); + attributes.push({ + name: attrName, + value: this._resolveEntities(attrValue) }); - } - }, { - key: "_parseContent", - value: function _parseContent(s, start) { - var pos = start, - name, - attributes = []; - - function skipWs() { - while (pos < s.length && isWhitespace(s, pos)) { - ++pos; - } - } - - while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') { - ++pos; - } - - name = s.substring(start, pos); + pos = attrEndIndex + 1; skipWs(); - - while (pos < s.length && s[pos] !== '>' && s[pos] !== '/' && s[pos] !== '?') { - skipWs(); - var attrName = '', - attrValue = ''; - - while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '=') { - attrName += s[pos]; - ++pos; - } - - skipWs(); - - if (s[pos] !== '=') { - return null; - } - - ++pos; - skipWs(); - var attrEndChar = s[pos]; - - if (attrEndChar !== '\"' && attrEndChar !== '\'') { - return null; - } - - var attrEndIndex = s.indexOf(attrEndChar, ++pos); - - if (attrEndIndex < 0) { - return null; - } - - attrValue = s.substring(pos, attrEndIndex); - attributes.push({ - name: attrName, - value: this._resolveEntities(attrValue) - }); - pos = attrEndIndex + 1; - skipWs(); - } - - return { - name: name, - attributes: attributes, - parsed: pos - start - }; } - }, { - key: "_parseProcessingInstruction", - value: function _parseProcessingInstruction(s, start) { - var pos = start, - name, - value; - function skipWs() { - while (pos < s.length && isWhitespace(s, pos)) { - ++pos; - } - } + return { + name, + attributes, + parsed: pos - start + }; + } - while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') { + _parseProcessingInstruction(s, start) { + let pos = start; + + function skipWs() { + while (pos < s.length && isWhitespace(s, pos)) { ++pos; } - - name = s.substring(start, pos); - skipWs(); - var attrStart = pos; - - while (pos < s.length && (s[pos] !== '?' || s[pos + 1] !== '>')) { - ++pos; - } - - value = s.substring(attrStart, pos); - return { - name: name, - value: value, - parsed: pos - start - }; } - }, { - key: "parseXml", - value: function parseXml(s) { - var i = 0; - while (i < s.length) { - var ch = s[i]; - var j = i; + while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== ">" && s[pos] !== "/") { + ++pos; + } - if (ch === '<') { - ++j; - var ch2 = s[j]; - var q = void 0; + const name = s.substring(start, pos); + skipWs(); + const attrStart = pos; - switch (ch2) { - case '/': - ++j; - q = s.indexOf('>', j); + while (pos < s.length && (s[pos] !== "?" || s[pos + 1] !== ">")) { + ++pos; + } + + const value = s.substring(attrStart, pos); + return { + name, + value, + parsed: pos - start + }; + } + + parseXml(s) { + let i = 0; + + while (i < s.length) { + const ch = s[i]; + let j = i; + + if (ch === "<") { + ++j; + const ch2 = s[j]; + let q; + + switch (ch2) { + case "/": + ++j; + q = s.indexOf(">", j); + + if (q < 0) { + this.onError(XMLParserErrorCode.UnterminatedElement); + return; + } + + this.onEndElement(s.substring(j, q)); + j = q + 1; + break; + + case "?": + ++j; + + const pi = this._parseProcessingInstruction(s, j); + + if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== "?>") { + this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration); + return; + } + + this.onPi(pi.name, pi.value); + j += pi.parsed + 2; + break; + + case "!": + if (s.substring(j + 1, j + 3) === "--") { + q = s.indexOf("-->", j + 3); if (q < 0) { - this.onError(XMLParserErrorCode.UnterminatedElement); + this.onError(XMLParserErrorCode.UnterminatedComment); return; } - this.onEndElement(s.substring(j, q)); - j = q + 1; - break; + this.onComment(s.substring(j + 3, q)); + j = q + 3; + } else if (s.substring(j + 1, j + 8) === "[CDATA[") { + q = s.indexOf("]]>", j + 8); - case '?': - ++j; - - var pi = this._parseProcessingInstruction(s, j); - - if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== '?>') { - this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration); + if (q < 0) { + this.onError(XMLParserErrorCode.UnterminatedCdat); return; } - this.onPi(pi.name, pi.value); - j += pi.parsed + 2; - break; + this.onCdata(s.substring(j + 8, q)); + j = q + 3; + } else if (s.substring(j + 1, j + 8) === "DOCTYPE") { + const q2 = s.indexOf("[", j + 8); + let complexDoctype = false; + q = s.indexOf(">", j + 8); - case '!': - if (s.substring(j + 1, j + 3) === '--') { - q = s.indexOf('-->', j + 3); + if (q < 0) { + this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); + return; + } - if (q < 0) { - this.onError(XMLParserErrorCode.UnterminatedComment); - return; - } - - this.onComment(s.substring(j + 3, q)); - j = q + 3; - } else if (s.substring(j + 1, j + 8) === '[CDATA[') { - q = s.indexOf(']]>', j + 8); - - if (q < 0) { - this.onError(XMLParserErrorCode.UnterminatedCdat); - return; - } - - this.onCdata(s.substring(j + 8, q)); - j = q + 3; - } else if (s.substring(j + 1, j + 8) === 'DOCTYPE') { - var q2 = s.indexOf('[', j + 8); - var complexDoctype = false; - q = s.indexOf('>', j + 8); + if (q2 > 0 && q > q2) { + q = s.indexOf("]>", j + 8); if (q < 0) { this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); return; } - if (q2 > 0 && q > q2) { - q = s.indexOf(']>', j + 8); - - if (q < 0) { - this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); - return; - } - - complexDoctype = true; - } - - var doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0)); - this.onDoctype(doctypeContent); - j = q + (complexDoctype ? 2 : 1); - } else { - this.onError(XMLParserErrorCode.MalformedElement); - return; + complexDoctype = true; } - break; + const doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0)); + this.onDoctype(doctypeContent); + j = q + (complexDoctype ? 2 : 1); + } else { + this.onError(XMLParserErrorCode.MalformedElement); + return; + } - default: - var content = this._parseContent(s, j); + break; - if (content === null) { - this.onError(XMLParserErrorCode.MalformedElement); - return; - } + default: + const content = this._parseContent(s, j); - var isClosed = false; + if (content === null) { + this.onError(XMLParserErrorCode.MalformedElement); + return; + } - if (s.substring(j + content.parsed, j + content.parsed + 2) === '/>') { - isClosed = true; - } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== '>') { - this.onError(XMLParserErrorCode.UnterminatedElement); - return; - } + let isClosed = false; - this.onBeginElement(content.name, content.attributes, isClosed); - j += content.parsed + (isClosed ? 2 : 1); - break; - } - } else { - while (j < s.length && s[j] !== '<') { - j++; - } + if (s.substring(j + content.parsed, j + content.parsed + 2) === "/>") { + isClosed = true; + } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== ">") { + this.onError(XMLParserErrorCode.UnterminatedElement); + return; + } - var text = s.substring(i, j); - this.onText(this._resolveEntities(text)); + this.onBeginElement(content.name, content.attributes, isClosed); + j += content.parsed + (isClosed ? 2 : 1); + break; + } + } else { + while (j < s.length && s[j] !== "<") { + j++; } - i = j; + const text = s.substring(i, j); + this.onText(this._resolveEntities(text)); } + + i = j; } - }, { - key: "onResolveEntity", - value: function onResolveEntity(name) { - return "&".concat(name, ";"); - } - }, { - key: "onPi", - value: function onPi(name, value) {} - }, { - key: "onComment", - value: function onComment(text) {} - }, { - key: "onCdata", - value: function onCdata(text) {} - }, { - key: "onDoctype", - value: function onDoctype(doctypeContent) {} - }, { - key: "onText", - value: function onText(text) {} - }, { - key: "onBeginElement", - value: function onBeginElement(name, attributes, isEmpty) {} - }, { - key: "onEndElement", - value: function onEndElement(name) {} - }, { - key: "onError", - value: function onError(code) {} - }]); + } - return XMLParserBase; -}(); + onResolveEntity(name) { + return `&${name};`; + } -var SimpleDOMNode = -/*#__PURE__*/ -function () { - function SimpleDOMNode(nodeName, nodeValue) { - _classCallCheck(this, SimpleDOMNode); + onPi(name, value) {} + onComment(text) {} + + onCdata(text) {} + + onDoctype(doctypeContent) {} + + onText(text) {} + + onBeginElement(name, attributes, isEmpty) {} + + onEndElement(name) {} + + onError(code) {} + +} + +class SimpleDOMNode { + constructor(nodeName, nodeValue) { this.nodeName = nodeName; this.nodeValue = nodeValue; - Object.defineProperty(this, 'parentNode', { + Object.defineProperty(this, "parentNode", { value: null, writable: true }); } - _createClass(SimpleDOMNode, [{ - key: "hasChildNodes", - value: function hasChildNodes() { - return this.childNodes && this.childNodes.length > 0; - } - }, { - key: "firstChild", - get: function get() { - return this.childNodes && this.childNodes[0]; - } - }, { - key: "nextSibling", - get: function get() { - var childNodes = this.parentNode.childNodes; - - if (!childNodes) { - return undefined; - } - - var index = childNodes.indexOf(this); - - if (index === -1) { - return undefined; - } - - return childNodes[index + 1]; - } - }, { - key: "textContent", - get: function get() { - if (!this.childNodes) { - return this.nodeValue || ''; - } - - return this.childNodes.map(function (child) { - return child.textContent; - }).join(''); - } - }]); - - return SimpleDOMNode; -}(); - -var SimpleXMLParser = -/*#__PURE__*/ -function (_XMLParserBase) { - _inherits(SimpleXMLParser, _XMLParserBase); - - function SimpleXMLParser() { - var _this2; - - _classCallCheck(this, SimpleXMLParser); - - _this2 = _possibleConstructorReturn(this, _getPrototypeOf(SimpleXMLParser).call(this)); - _this2._currentFragment = null; - _this2._stack = null; - _this2._errorCode = XMLParserErrorCode.NoError; - return _this2; + get firstChild() { + return this.childNodes && this.childNodes[0]; } - _createClass(SimpleXMLParser, [{ - key: "parseFromString", - value: function parseFromString(data) { - this._currentFragment = []; - this._stack = []; - this._errorCode = XMLParserErrorCode.NoError; - this.parseXml(data); + get nextSibling() { + const childNodes = this.parentNode.childNodes; - if (this._errorCode !== XMLParserErrorCode.NoError) { - return undefined; - } - - var _this$_currentFragmen = _slicedToArray(this._currentFragment, 1), - documentElement = _this$_currentFragmen[0]; - - if (!documentElement) { - return undefined; - } - - return { - documentElement: documentElement - }; + if (!childNodes) { + return undefined; } - }, { - key: "onResolveEntity", - value: function onResolveEntity(name) { - switch (name) { - case 'apos': - return '\''; - } - return _get(_getPrototypeOf(SimpleXMLParser.prototype), "onResolveEntity", this).call(this, name); + const index = childNodes.indexOf(this); + + if (index === -1) { + return undefined; } - }, { - key: "onText", - value: function onText(text) { - if (isWhitespaceString(text)) { - return; - } - var node = new SimpleDOMNode('#text', text); + return childNodes[index + 1]; + } - this._currentFragment.push(node); + get textContent() { + if (!this.childNodes) { + return this.nodeValue || ""; } - }, { - key: "onCdata", - value: function onCdata(text) { - var node = new SimpleDOMNode('#text', text); - this._currentFragment.push(node); + return this.childNodes.map(function (child) { + return child.textContent; + }).join(""); + } + + hasChildNodes() { + return this.childNodes && this.childNodes.length > 0; + } + +} + +class SimpleXMLParser extends XMLParserBase { + constructor() { + super(); + this._currentFragment = null; + this._stack = null; + this._errorCode = XMLParserErrorCode.NoError; + } + + parseFromString(data) { + this._currentFragment = []; + this._stack = []; + this._errorCode = XMLParserErrorCode.NoError; + this.parseXml(data); + + if (this._errorCode !== XMLParserErrorCode.NoError) { + return undefined; } - }, { - key: "onBeginElement", - value: function onBeginElement(name, attributes, isEmpty) { - var node = new SimpleDOMNode(name); - node.childNodes = []; - this._currentFragment.push(node); + const [documentElement] = this._currentFragment; - if (isEmpty) { - return; - } - - this._stack.push(this._currentFragment); - - this._currentFragment = node.childNodes; + if (!documentElement) { + return undefined; } - }, { - key: "onEndElement", - value: function onEndElement(name) { - this._currentFragment = this._stack.pop() || []; - var lastElement = this._currentFragment[this._currentFragment.length - 1]; - if (!lastElement) { - return; - } + return { + documentElement + }; + } - for (var i = 0, ii = lastElement.childNodes.length; i < ii; i++) { - lastElement.childNodes[i].parentNode = lastElement; - } + onResolveEntity(name) { + switch (name) { + case "apos": + return "'"; } - }, { - key: "onError", - value: function onError(code) { - this._errorCode = code; - } - }]); - return SimpleXMLParser; -}(XMLParserBase); + return super.onResolveEntity(name); + } + + onText(text) { + if (isWhitespaceString(text)) { + return; + } + + const node = new SimpleDOMNode("#text", text); + + this._currentFragment.push(node); + } + + onCdata(text) { + const node = new SimpleDOMNode("#text", text); + + this._currentFragment.push(node); + } + + onBeginElement(name, attributes, isEmpty) { + const node = new SimpleDOMNode(name); + node.childNodes = []; + + this._currentFragment.push(node); + + if (isEmpty) { + return; + } + + this._stack.push(this._currentFragment); + + this._currentFragment = node.childNodes; + } + + onEndElement(name) { + this._currentFragment = this._stack.pop() || []; + const lastElement = this._currentFragment[this._currentFragment.length - 1]; + + if (!lastElement) { + return; + } + + for (let i = 0, ii = lastElement.childNodes.length; i < ii; i++) { + lastElement.childNodes[i].parentNode = lastElement; + } + } + + onError(code) { + this._errorCode = code; + } + +} exports.SimpleXMLParser = SimpleXMLParser; /***/ }), -/* 160 */ +/* 16 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.OptionalContentConfig = void 0; + +var _util = __w_pdfjs_require__(2); + +class OptionalContentGroup { + constructor(name, intent) { + this.visible = true; + this.name = name; + this.intent = intent; + } + +} + +class OptionalContentConfig { + constructor(data) { + this.name = null; + this.creator = null; + this._order = null; + this._groups = new Map(); + + if (data === null) { + return; + } + + this.name = data.name; + this.creator = data.creator; + this._order = data.order; + + for (const group of data.groups) { + this._groups.set(group.id, new OptionalContentGroup(group.name, group.intent)); + } + + if (data.baseState === "OFF") { + for (const group of this._groups) { + group.visible = false; + } + } + + for (const on of data.on) { + this._groups.get(on).visible = true; + } + + for (const off of data.off) { + this._groups.get(off).visible = false; + } + } + + isVisible(group) { + if (group.type === "OCG") { + if (!this._groups.has(group.id)) { + (0, _util.warn)(`Optional content group not found: ${group.id}`); + return true; + } + + return this._groups.get(group.id).visible; + } else if (group.type === "OCMD") { + if (group.expression) { + (0, _util.warn)("Visibility expression not supported yet."); + } + + if (!group.policy || group.policy === "AnyOn") { + for (const id of group.ids) { + if (!this._groups.has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return true; + } + + if (this._groups.get(id).visible) { + return true; + } + } + + return false; + } else if (group.policy === "AllOn") { + for (const id of group.ids) { + if (!this._groups.has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return true; + } + + if (!this._groups.get(id).visible) { + return false; + } + } + + return true; + } else if (group.policy === "AnyOff") { + for (const id of group.ids) { + if (!this._groups.has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return true; + } + + if (!this._groups.get(id).visible) { + return true; + } + } + + return false; + } else if (group.policy === "AllOff") { + for (const id of group.ids) { + if (!this._groups.has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return true; + } + + if (this._groups.get(id).visible) { + return false; + } + } + + return true; + } + + (0, _util.warn)(`Unknown optional content policy ${group.policy}.`); + return true; + } + + (0, _util.warn)(`Unknown group type ${group.type}.`); + return true; + } + + setVisibility(id, visible = true) { + if (!this._groups.has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return; + } + + this._groups.get(id).visible = !!visible; + } + + getOrder() { + if (!this._groups.size) { + return null; + } + + if (this._order) { + return this._order.slice(); + } + + return Array.from(this._groups.keys()); + } + + getGroups() { + if (!this._groups.size) { + return null; + } + + return Object.fromEntries(this._groups); + } + + getGroup(id) { + return this._groups.get(id) || null; + } + +} + +exports.OptionalContentConfig = OptionalContentConfig; + +/***/ }), +/* 17 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -17841,37 +8457,17 @@ Object.defineProperty(exports, "__esModule", { }); exports.PDFDataTransportStream = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(1); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var PDFDataTransportStream = -/*#__PURE__*/ -function () { - function PDFDataTransportStream(params, pdfDataRangeTransport) { - var _this = this; - - _classCallCheck(this, PDFDataTransportStream); - - (0, _util.assert)(pdfDataRangeTransport); +class PDFDataTransportStream { + constructor(params, pdfDataRangeTransport) { + (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required "pdfDataRangeTransport" argument.'); this._queuedChunks = []; this._progressiveDone = params.progressiveDone || false; - var initialData = params.initialData; + const initialData = params.initialData; if (initialData && initialData.length > 0) { - var buffer = new Uint8Array(initialData).buffer; + const buffer = new Uint8Array(initialData).buffer; this._queuedChunks.push(buffer); } @@ -17883,183 +8479,147 @@ function () { this._fullRequestReader = null; this._rangeReaders = []; - this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) { - _this._onReceiveData({ - begin: begin, - chunk: chunk + this._pdfDataRangeTransport.addRangeListener((begin, chunk) => { + this._onReceiveData({ + begin, + chunk }); }); - this._pdfDataRangeTransport.addProgressListener(function (loaded, total) { - _this._onProgress({ - loaded: loaded, - total: total + this._pdfDataRangeTransport.addProgressListener((loaded, total) => { + this._onProgress({ + loaded, + total }); }); - this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) { - _this._onReceiveData({ - chunk: chunk + this._pdfDataRangeTransport.addProgressiveReadListener(chunk => { + this._onReceiveData({ + chunk }); }); - this._pdfDataRangeTransport.addProgressiveDoneListener(function () { - _this._onProgressiveDone(); + this._pdfDataRangeTransport.addProgressiveDoneListener(() => { + this._onProgressiveDone(); }); this._pdfDataRangeTransport.transportReady(); } - _createClass(PDFDataTransportStream, [{ - key: "_onReceiveData", - value: function _onReceiveData(args) { - var buffer = new Uint8Array(args.chunk).buffer; + _onReceiveData(args) { + const buffer = new Uint8Array(args.chunk).buffer; - if (args.begin === undefined) { - if (this._fullRequestReader) { - this._fullRequestReader._enqueue(buffer); - } else { - this._queuedChunks.push(buffer); - } - } else { - var found = this._rangeReaders.some(function (rangeReader) { - if (rangeReader._begin !== args.begin) { - return false; - } - - rangeReader._enqueue(buffer); - - return true; - }); - - (0, _util.assert)(found); - } - } - }, { - key: "_onProgress", - value: function _onProgress(evt) { - if (evt.total === undefined) { - var firstReader = this._rangeReaders[0]; - - if (firstReader && firstReader.onProgress) { - firstReader.onProgress({ - loaded: evt.loaded - }); - } - } else { - var fullReader = this._fullRequestReader; - - if (fullReader && fullReader.onProgress) { - fullReader.onProgress({ - loaded: evt.loaded, - total: evt.total - }); - } - } - } - }, { - key: "_onProgressiveDone", - value: function _onProgressiveDone() { + if (args.begin === undefined) { if (this._fullRequestReader) { - this._fullRequestReader.progressiveDone(); + this._fullRequestReader._enqueue(buffer); + } else { + this._queuedChunks.push(buffer); } + } else { + const found = this._rangeReaders.some(function (rangeReader) { + if (rangeReader._begin !== args.begin) { + return false; + } - this._progressiveDone = true; - } - }, { - key: "_removeRangeReader", - value: function _removeRangeReader(reader) { - var i = this._rangeReaders.indexOf(reader); + rangeReader._enqueue(buffer); - if (i >= 0) { - this._rangeReaders.splice(i, 1); - } - } - }, { - key: "getFullReader", - value: function getFullReader() { - (0, _util.assert)(!this._fullRequestReader); - var queuedChunks = this._queuedChunks; - this._queuedChunks = null; - return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone); - } - }, { - key: "getRangeReader", - value: function getRangeReader(begin, end) { - if (end <= this._progressiveDataLength) { - return null; - } - - var reader = new PDFDataTransportStreamRangeReader(this, begin, end); - - this._pdfDataRangeTransport.requestDataRange(begin, end); - - this._rangeReaders.push(reader); - - return reader; - } - }, { - key: "cancelAllRequests", - value: function cancelAllRequests(reason) { - if (this._fullRequestReader) { - this._fullRequestReader.cancel(reason); - } - - var readers = this._rangeReaders.slice(0); - - readers.forEach(function (rangeReader) { - rangeReader.cancel(reason); + return true; }); - this._pdfDataRangeTransport.abort(); + (0, _util.assert)(found, "_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found."); } - }, { - key: "_progressiveDataLength", - get: function get() { - return this._fullRequestReader ? this._fullRequestReader._loaded : 0; - } - }]); + } - return PDFDataTransportStream; -}(); + get _progressiveDataLength() { + return this._fullRequestReader ? this._fullRequestReader._loaded : 0; + } + + _onProgress(evt) { + if (evt.total === undefined) { + const firstReader = this._rangeReaders[0]; + + if (firstReader && firstReader.onProgress) { + firstReader.onProgress({ + loaded: evt.loaded + }); + } + } else { + const fullReader = this._fullRequestReader; + + if (fullReader && fullReader.onProgress) { + fullReader.onProgress({ + loaded: evt.loaded, + total: evt.total + }); + } + } + } + + _onProgressiveDone() { + if (this._fullRequestReader) { + this._fullRequestReader.progressiveDone(); + } + + this._progressiveDone = true; + } + + _removeRangeReader(reader) { + const i = this._rangeReaders.indexOf(reader); + + if (i >= 0) { + this._rangeReaders.splice(i, 1); + } + } + + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFDataTransportStream.getFullReader can only be called once."); + const queuedChunks = this._queuedChunks; + this._queuedChunks = null; + return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone); + } + + getRangeReader(begin, end) { + if (end <= this._progressiveDataLength) { + return null; + } + + const reader = new PDFDataTransportStreamRangeReader(this, begin, end); + + this._pdfDataRangeTransport.requestDataRange(begin, end); + + this._rangeReaders.push(reader); + + return reader; + } + + cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); + } + + const readers = this._rangeReaders.slice(0); + + readers.forEach(function (rangeReader) { + rangeReader.cancel(reason); + }); + + this._pdfDataRangeTransport.abort(); + } + +} exports.PDFDataTransportStream = PDFDataTransportStream; -var PDFDataTransportStreamReader = -/*#__PURE__*/ -function () { - function PDFDataTransportStreamReader(stream, queuedChunks) { - var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - _classCallCheck(this, PDFDataTransportStreamReader); - +class PDFDataTransportStreamReader { + constructor(stream, queuedChunks, progressiveDone = false) { this._stream = stream; this._done = progressiveDone || false; this._filename = null; this._queuedChunks = queuedChunks || []; this._loaded = 0; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - try { - for (var _iterator = this._queuedChunks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var chunk = _step.value; - this._loaded += chunk.byteLength; - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } + for (const chunk of this._queuedChunks) { + this._loaded += chunk.byteLength; } this._requests = []; @@ -18068,139 +8628,94 @@ function () { this.onProgress = null; } - _createClass(PDFDataTransportStreamReader, [{ - key: "_enqueue", - value: function _enqueue(chunk) { - if (this._done) { - return; - } - - if (this._requests.length > 0) { - var requestCapability = this._requests.shift(); - - requestCapability.resolve({ - value: chunk, - done: false - }); - } else { - this._queuedChunks.push(chunk); - } - - this._loaded += chunk.byteLength; + _enqueue(chunk) { + if (this._done) { + return; } - }, { - key: "read", - value: function () { - var _read = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee() { - var chunk, requestCapability; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!(this._queuedChunks.length > 0)) { - _context.next = 3; - break; - } - chunk = this._queuedChunks.shift(); - return _context.abrupt("return", { - value: chunk, - done: false - }); + if (this._requests.length > 0) { + const requestCapability = this._requests.shift(); - case 3: - if (!this._done) { - _context.next = 5; - break; - } - - return _context.abrupt("return", { - value: undefined, - done: true - }); - - case 5: - requestCapability = (0, _util.createPromiseCapability)(); - - this._requests.push(requestCapability); - - return _context.abrupt("return", requestCapability.promise); - - case 8: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function read() { - return _read.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - this._done = true; - - this._requests.forEach(function (requestCapability) { - requestCapability.resolve({ - value: undefined, - done: true - }); + requestCapability.resolve({ + value: chunk, + done: false }); + } else { + this._queuedChunks.push(chunk); + } - this._requests = []; - } - }, { - key: "progressiveDone", - value: function progressiveDone() { - if (this._done) { - return; - } + this._loaded += chunk.byteLength; + } - this._done = true; - } - }, { - key: "headersReady", - get: function get() { - return this._headersReady; - } - }, { - key: "filename", - get: function get() { - return this._filename; - } - }, { - key: "isRangeSupported", - get: function get() { - return this._stream._isRangeSupported; - } - }, { - key: "isStreamingSupported", - get: function get() { - return this._stream._isStreamingSupported; - } - }, { - key: "contentLength", - get: function get() { - return this._stream._contentLength; - } - }]); + get headersReady() { + return this._headersReady; + } - return PDFDataTransportStreamReader; -}(); + get filename() { + return this._filename; + } -var PDFDataTransportStreamRangeReader = -/*#__PURE__*/ -function () { - function PDFDataTransportStreamRangeReader(stream, begin, end) { - _classCallCheck(this, PDFDataTransportStreamRangeReader); + get isRangeSupported() { + return this._stream._isRangeSupported; + } + get isStreamingSupported() { + return this._stream._isStreamingSupported; + } + + get contentLength() { + return this._stream._contentLength; + } + + async read() { + if (this._queuedChunks.length > 0) { + const chunk = this._queuedChunks.shift(); + + return { + value: chunk, + done: false + }; + } + + if (this._done) { + return { + value: undefined, + done: true + }; + } + + const requestCapability = (0, _util.createPromiseCapability)(); + + this._requests.push(requestCapability); + + return requestCapability.promise; + } + + cancel(reason) { + this._done = true; + + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true + }); + }); + + this._requests = []; + } + + progressiveDone() { + if (this._done) { + return; + } + + this._done = true; + } + +} + +class PDFDataTransportStreamRangeReader { + constructor(stream, begin, end) { this._stream = stream; this._begin = begin; this._end = end; @@ -18210,96 +8725,20 @@ function () { this.onProgress = null; } - _createClass(PDFDataTransportStreamRangeReader, [{ - key: "_enqueue", - value: function _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); + _enqueue(chunk) { + if (this._done) { + return; } - }, { - key: "read", - value: function () { - var _read2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2() { - var chunk, requestCapability; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (!this._queuedChunk) { - _context2.next = 4; - break; - } - chunk = this._queuedChunk; - this._queuedChunk = null; - return _context2.abrupt("return", { - value: chunk, - done: false - }); + if (this._requests.length === 0) { + this._queuedChunk = chunk; + } else { + const requestsCapability = this._requests.shift(); - case 4: - if (!this._done) { - _context2.next = 6; - break; - } - - return _context2.abrupt("return", { - value: undefined, - done: true - }); - - case 6: - requestCapability = (0, _util.createPromiseCapability)(); - - this._requests.push(requestCapability); - - return _context2.abrupt("return", requestCapability.promise); - - case 9: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function read() { - return _read2.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - this._done = true; + requestsCapability.resolve({ + value: chunk, + done: false + }); this._requests.forEach(function (requestCapability) { requestCapability.resolve({ @@ -18309,21 +8748,60 @@ function () { }); this._requests = []; - - this._stream._removeRangeReader(this); } - }, { - key: "isStreamingSupported", - get: function get() { - return false; - } - }]); - return PDFDataTransportStreamRangeReader; -}(); + this._done = true; + + this._stream._removeRangeReader(this); + } + + get isStreamingSupported() { + return false; + } + + async read() { + if (this._queuedChunk) { + const chunk = this._queuedChunk; + this._queuedChunk = null; + return { + value: chunk, + done: false + }; + } + + if (this._done) { + return { + value: undefined, + done: true + }; + } + + const requestCapability = (0, _util.createPromiseCapability)(); + + this._requests.push(requestCapability); + + return requestCapability.promise; + } + + cancel(reason) { + this._done = true; + + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true + }); + }); + + this._requests = []; + + this._stream._removeRangeReader(this); + } + +} /***/ }), -/* 161 */ +/* 18 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -18334,64 +8812,48 @@ Object.defineProperty(exports, "__esModule", { }); exports.WebGLContext = void 0; -var _util = __w_pdfjs_require__(1); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var WebGLContext = -/*#__PURE__*/ -function () { - function WebGLContext(_ref) { - var _ref$enable = _ref.enable, - enable = _ref$enable === void 0 ? false : _ref$enable; - - _classCallCheck(this, WebGLContext); +var _util = __w_pdfjs_require__(2); +class WebGLContext { + constructor({ + enable = false + }) { this._enabled = enable === true; } - _createClass(WebGLContext, [{ - key: "composeSMask", - value: function composeSMask(_ref2) { - var layer = _ref2.layer, - mask = _ref2.mask, - properties = _ref2.properties; - return WebGLUtils.composeSMask(layer, mask, properties); - } - }, { - key: "drawFigures", - value: function drawFigures(_ref3) { - var width = _ref3.width, - height = _ref3.height, - backgroundColor = _ref3.backgroundColor, - figures = _ref3.figures, - context = _ref3.context; - return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context); - } - }, { - key: "clear", - value: function clear() { - WebGLUtils.cleanup(); - } - }, { - key: "isEnabled", - get: function get() { - var enabled = this._enabled; + get isEnabled() { + let enabled = this._enabled; - if (enabled) { - enabled = WebGLUtils.tryInitGL(); - } - - return (0, _util.shadow)(this, 'isEnabled', enabled); + if (enabled) { + enabled = WebGLUtils.tryInitGL(); } - }]); - return WebGLContext; -}(); + return (0, _util.shadow)(this, "isEnabled", enabled); + } + + composeSMask({ + layer, + mask, + properties + }) { + return WebGLUtils.composeSMask(layer, mask, properties); + } + + drawFigures({ + width, + height, + backgroundColor, + figures, + context + }) { + return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context); + } + + clear() { + WebGLUtils.cleanup(); + } + +} exports.WebGLContext = WebGLContext; @@ -18404,7 +8866,7 @@ var WebGLUtils = function WebGLUtilsClosure() { if (!compiled) { var errorMsg = gl.getShaderInfoLog(shader); - throw new Error('Error during shader compilation: ' + errorMsg); + throw new Error("Error during shader compilation: " + errorMsg); } return shader; @@ -18430,7 +8892,7 @@ var WebGLUtils = function WebGLUtilsClosure() { if (!linked) { var errorMsg = gl.getProgramInfoLog(program); - throw new Error('Error during program linking: ' + errorMsg); + throw new Error("Error during program linking: " + errorMsg); } return program; @@ -18455,13 +8917,13 @@ var WebGLUtils = function WebGLUtilsClosure() { return; } - currentCanvas = document.createElement('canvas'); - currentGL = currentCanvas.getContext('webgl', { + currentCanvas = document.createElement("canvas"); + currentGL = currentCanvas.getContext("webgl", { premultipliedalpha: false }); } - var smaskVertexShaderCode = '\ + var smaskVertexShaderCode = "\ attribute vec2 a_position; \ attribute vec2 a_texCoord; \ \ @@ -18474,8 +8936,8 @@ var WebGLUtils = function WebGLUtilsClosure() { gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ \ v_texCoord = a_texCoord; \ - } '; - var smaskFragmentShaderCode = '\ + } "; + var smaskFragmentShaderCode = "\ precision mediump float; \ \ uniform vec4 u_backdrop; \ @@ -18502,7 +8964,7 @@ var WebGLUtils = function WebGLUtilsClosure() { imageColor.a *= lum; \ imageColor.rgb *= imageColor.a; \ gl_FragColor = imageColor; \ - } '; + } "; var smaskCache = null; function initSmaskGL() { @@ -18519,13 +8981,13 @@ var WebGLUtils = function WebGLUtilsClosure() { 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'); + 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); @@ -18558,7 +9020,7 @@ var WebGLUtils = function WebGLUtilsClosure() { gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0); } - gl.uniform1i(cache.subtypeLocation, properties.subtype === 'Luminosity' ? 1 : 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(); @@ -18578,7 +9040,7 @@ var WebGLUtils = function WebGLUtilsClosure() { return canvas; } - var figuresVertexShaderCode = '\ + var figuresVertexShaderCode = "\ attribute vec2 a_position; \ attribute vec3 a_color; \ \ @@ -18594,15 +9056,15 @@ var WebGLUtils = function WebGLUtilsClosure() { gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ \ v_color = vec4(a_color / 255.0, 1.0); \ - } '; - var figuresFragmentShaderCode = '\ + } "; + var figuresFragmentShaderCode = "\ precision mediump float; \ \ varying vec4 v_color; \ \ void main() { \ gl_FragColor = v_color; \ - } '; + } "; var figuresCache = null; function initFiguresGL() { @@ -18619,11 +9081,11 @@ var WebGLUtils = function WebGLUtilsClosure() { 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'); + 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; } @@ -18644,12 +9106,12 @@ var WebGLUtils = function WebGLUtilsClosure() { for (i = 0, ii = figures.length; i < ii; i++) { switch (figures[i].type) { - case 'lattice': + case "lattice": rows = figures[i].coords.length / figures[i].verticesPerRow | 0; count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6; break; - case 'triangles': + case "triangles": count += figures[i].coords.length; break; } @@ -18668,7 +9130,7 @@ var WebGLUtils = function WebGLUtilsClosure() { cs = figure.colors; switch (figure.type) { - case 'lattice': + case "lattice": var cols = figure.verticesPerRow; rows = ps.length / cols | 0; @@ -18713,7 +9175,7 @@ var WebGLUtils = function WebGLUtilsClosure() { break; - case 'triangles': + case "triangles": for (var j = 0, jj = ps.length; j < jj; j++) { coords[pIndex] = coordsMap[ps[j]]; coords[pIndex + 1] = coordsMap[ps[j] + 1]; @@ -18755,7 +9217,7 @@ var WebGLUtils = function WebGLUtilsClosure() { } return { - tryInitGL: function tryInitGL() { + tryInitGL() { try { generateGL(); return !!currentGL; @@ -18763,9 +9225,11 @@ var WebGLUtils = function WebGLUtilsClosure() { return false; }, - composeSMask: composeSMask, - drawFigures: drawFigures, - cleanup: function cleanup() { + + composeSMask, + drawFigures, + + cleanup() { if (smaskCache && smaskCache.canvas) { smaskCache.canvas.width = 0; smaskCache.canvas.height = 0; @@ -18779,11 +9243,1089 @@ var WebGLUtils = function WebGLUtilsClosure() { smaskCache = null; figuresCache = null; } + }; }(); /***/ }), -/* 162 */ +/* 19 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.AnnotationLayer = void 0; + +var _display_utils = __w_pdfjs_require__(1); + +var _util = __w_pdfjs_require__(2); + +var _annotation_storage = __w_pdfjs_require__(8); + +class AnnotationElementFactory { + static create(parameters) { + const subtype = parameters.data.annotationType; + + switch (subtype) { + case _util.AnnotationType.LINK: + return new LinkAnnotationElement(parameters); + + case _util.AnnotationType.TEXT: + return new TextAnnotationElement(parameters); + + case _util.AnnotationType.WIDGET: + const 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); + } + + return new PushButtonWidgetAnnotationElement(parameters); + + case "Ch": + return new ChoiceWidgetAnnotationElement(parameters); + } + + return new WidgetAnnotationElement(parameters); + + case _util.AnnotationType.POPUP: + return new PopupAnnotationElement(parameters); + + case _util.AnnotationType.FREETEXT: + return new FreeTextAnnotationElement(parameters); + + case _util.AnnotationType.LINE: + return new LineAnnotationElement(parameters); + + case _util.AnnotationType.SQUARE: + return new SquareAnnotationElement(parameters); + + case _util.AnnotationType.CIRCLE: + return new CircleAnnotationElement(parameters); + + case _util.AnnotationType.POLYLINE: + return new PolylineAnnotationElement(parameters); + + case _util.AnnotationType.CARET: + return new CaretAnnotationElement(parameters); + + case _util.AnnotationType.INK: + return new InkAnnotationElement(parameters); + + case _util.AnnotationType.POLYGON: + return new PolygonAnnotationElement(parameters); + + case _util.AnnotationType.HIGHLIGHT: + return new HighlightAnnotationElement(parameters); + + case _util.AnnotationType.UNDERLINE: + return new UnderlineAnnotationElement(parameters); + + case _util.AnnotationType.SQUIGGLY: + return new SquigglyAnnotationElement(parameters); + + case _util.AnnotationType.STRIKEOUT: + return new StrikeOutAnnotationElement(parameters); + + case _util.AnnotationType.STAMP: + return new StampAnnotationElement(parameters); + + case _util.AnnotationType.FILEATTACHMENT: + return new FileAttachmentAnnotationElement(parameters); + + default: + return new AnnotationElement(parameters); + } + } + +} + +class AnnotationElement { + constructor(parameters, isRenderable = false, ignoreBorder = false) { + this.isRenderable = isRenderable; + 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; + this.svgFactory = parameters.svgFactory; + this.annotationStorage = parameters.annotationStorage; + + if (isRenderable) { + this.container = this._createContainer(ignoreBorder); + } + } + + _createContainer(ignoreBorder = false) { + const data = this.data, + page = this.page, + viewport = this.viewport; + const container = document.createElement("section"); + let width = data.rect[2] - data.rect[0]; + let height = data.rect[3] - data.rect[1]; + container.setAttribute("data-annotation-id", data.id); + + const rect = _util.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]]); + + container.style.transform = `matrix(${viewport.transform.join(",")})`; + container.style.transformOrigin = `-${rect[0]}px -${rect[1]}px`; + + if (!ignoreBorder && data.borderStyle.width > 0) { + container.style.borderWidth = `${data.borderStyle.width}px`; + + if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) { + width = width - 2 * data.borderStyle.width; + height = height - 2 * data.borderStyle.width; + } + + const horizontalRadius = data.borderStyle.horizontalCornerRadius; + const verticalRadius = data.borderStyle.verticalCornerRadius; + + if (horizontalRadius > 0 || verticalRadius > 0) { + const radius = `${horizontalRadius}px / ${verticalRadius}px`; + container.style.borderRadius = radius; + } + + switch (data.borderStyle.style) { + case _util.AnnotationBorderStyleType.SOLID: + container.style.borderStyle = "solid"; + break; + + case _util.AnnotationBorderStyleType.DASHED: + container.style.borderStyle = "dashed"; + break; + + case _util.AnnotationBorderStyleType.BEVELED: + (0, _util.warn)("Unimplemented border style: beveled"); + break; + + case _util.AnnotationBorderStyleType.INSET: + (0, _util.warn)("Unimplemented border style: inset"); + break; + + case _util.AnnotationBorderStyleType.UNDERLINE: + container.style.borderBottomStyle = "solid"; + break; + + default: + break; + } + + if (data.color) { + container.style.borderColor = _util.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(container, trigger, data) { + if (!trigger) { + trigger = document.createElement("div"); + trigger.style.height = container.style.height; + trigger.style.width = container.style.width; + container.appendChild(trigger); + } + + const popupElement = new PopupElement({ + container, + trigger, + color: data.color, + title: data.title, + modificationDate: data.modificationDate, + contents: data.contents, + hideWrapper: true + }); + const popup = popupElement.render(); + popup.style.left = container.style.width; + container.appendChild(popup); + } + + render() { + (0, _util.unreachable)("Abstract method `AnnotationElement.render` called"); + } + +} + +class LinkAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action); + super(parameters, isRenderable); + } + + render() { + this.container.className = "linkAnnotation"; + const { + data, + linkService + } = this; + const link = document.createElement("a"); + + if (data.url) { + (0, _display_utils.addLinkAttributes)(link, { + url: data.url, + target: data.newWindow ? _display_utils.LinkTarget.BLANK : linkService.externalLinkTarget, + rel: linkService.externalLinkRel, + enabled: linkService.externalLinkEnabled + }); + } else if (data.action) { + this._bindNamedAction(link, data.action); + } else { + this._bindLink(link, data.dest); + } + + this.container.appendChild(link); + return this.container; + } + + _bindLink(link, destination) { + link.href = this.linkService.getDestinationHash(destination); + + link.onclick = () => { + if (destination) { + this.linkService.navigateTo(destination); + } + + return false; + }; + + if (destination) { + link.className = "internalLink"; + } + } + + _bindNamedAction(link, action) { + link.href = this.linkService.getAnchorUrl(""); + + link.onclick = () => { + this.linkService.executeNamedAction(action); + return false; + }; + + link.className = "internalLink"; + } + +} + +class TextAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, isRenderable); + } + + render() { + this.container.className = "textAnnotation"; + const 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; + } + +} + +class WidgetAnnotationElement extends AnnotationElement { + render() { + return this.container; + } + +} + +class TextWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + const isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue; + super(parameters, isRenderable); + } + + render() { + const TEXT_ALIGNMENT = ["left", "center", "right"]; + const storage = this.annotationStorage; + const id = this.data.id; + this.container.className = "textWidgetAnnotation"; + let element = null; + + if (this.renderInteractiveForms) { + const textContent = storage.getOrCreateValue(id, this.data.fieldValue); + + if (this.data.multiLine) { + element = document.createElement("textarea"); + element.textContent = textContent; + } else { + element = document.createElement("input"); + element.type = "text"; + element.setAttribute("value", textContent); + } + + element.addEventListener("input", function (event) { + storage.setValue(id, event.target.value); + }); + element.disabled = this.data.readOnly; + element.name = this.data.fieldName; + + if (this.data.maxLen !== null) { + element.maxLength = this.data.maxLen; + } + + if (this.data.comb) { + const fieldWidth = this.data.rect[2] - this.data.rect[0]; + const 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"; + let font = null; + + if (this.data.fontRefName && this.page.commonObjs.has(this.data.fontRefName)) { + font = this.page.commonObjs.get(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(element, font) { + const style = element.style; + style.fontSize = `${this.data.fontSize}px`; + style.direction = this.data.fontDirection < 0 ? "rtl" : "ltr"; + + if (!font) { + return; + } + + let bold = "normal"; + + if (font.black) { + bold = "900"; + } else if (font.bold) { + bold = "bold"; + } + + style.fontWeight = bold; + style.fontStyle = font.italic ? "italic" : "normal"; + const fontFamily = font.loadedName ? `"${font.loadedName}", ` : ""; + const fallbackName = font.fallbackName || "Helvetica, sans-serif"; + style.fontFamily = fontFamily + fallbackName; + } + +} + +class CheckboxWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + super(parameters, parameters.renderInteractiveForms); + } + + render() { + const storage = this.annotationStorage; + const data = this.data; + const id = data.id; + const value = storage.getOrCreateValue(id, data.fieldValue && data.fieldValue !== "Off"); + this.container.className = "buttonWidgetAnnotation checkBox"; + const element = document.createElement("input"); + element.disabled = data.readOnly; + element.type = "checkbox"; + element.name = this.data.fieldName; + + if (value) { + element.setAttribute("checked", true); + } + + element.addEventListener("change", function (event) { + storage.setValue(id, event.target.checked); + }); + this.container.appendChild(element); + return this.container; + } + +} + +class RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + super(parameters, parameters.renderInteractiveForms); + } + + render() { + this.container.className = "buttonWidgetAnnotation radioButton"; + const storage = this.annotationStorage; + const data = this.data; + const id = data.id; + const value = storage.getOrCreateValue(id, data.fieldValue === data.buttonValue); + const element = document.createElement("input"); + element.disabled = data.readOnly; + element.type = "radio"; + element.name = data.fieldName; + + if (value) { + element.setAttribute("checked", true); + } + + element.addEventListener("change", function (event) { + const name = event.target.name; + + for (const radio of document.getElementsByName(name)) { + if (radio !== event.target) { + storage.setValue(radio.parentNode.getAttribute("data-annotation-id"), false); + } + } + + storage.setValue(id, event.target.checked); + }); + this.container.appendChild(element); + return this.container; + } + +} + +class PushButtonWidgetAnnotationElement extends LinkAnnotationElement { + render() { + const container = super.render(); + container.className = "buttonWidgetAnnotation pushButton"; + return container; + } + +} + +class ChoiceWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + super(parameters, parameters.renderInteractiveForms); + } + + render() { + this.container.className = "choiceWidgetAnnotation"; + const storage = this.annotationStorage; + const id = this.data.id; + storage.getOrCreateValue(id, this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null); + const selectElement = document.createElement("select"); + selectElement.disabled = this.data.readOnly; + selectElement.name = this.data.fieldName; + + if (!this.data.combo) { + selectElement.size = this.data.options.length; + + if (this.data.multiSelect) { + selectElement.multiple = true; + } + } + + for (const option of this.data.options) { + const optionElement = document.createElement("option"); + optionElement.textContent = option.displayValue; + optionElement.value = option.exportValue; + + if (this.data.fieldValue.includes(option.exportValue)) { + optionElement.setAttribute("selected", true); + } + + selectElement.appendChild(optionElement); + } + + selectElement.addEventListener("input", function (event) { + const options = event.target.options; + const value = options[options.selectedIndex].value; + storage.setValue(id, value); + }); + this.container.appendChild(selectElement); + return this.container; + } + +} + +class PopupAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.title || parameters.data.contents); + super(parameters, isRenderable); + } + + render() { + const IGNORE_TYPES = ["Line", "Square", "Circle", "PolyLine", "Polygon", "Ink"]; + this.container.className = "popupAnnotation"; + + if (IGNORE_TYPES.includes(this.data.parentType)) { + return this.container; + } + + const selector = `[data-annotation-id="${this.data.parentId}"]`; + const parentElement = this.layer.querySelector(selector); + + if (!parentElement) { + return this.container; + } + + const popup = new PopupElement({ + container: this.container, + trigger: parentElement, + color: this.data.color, + title: this.data.title, + modificationDate: this.data.modificationDate, + contents: this.data.contents + }); + const parentLeft = parseFloat(parentElement.style.left); + const parentWidth = parseFloat(parentElement.style.width); + this.container.style.transformOrigin = `-${parentLeft + parentWidth}px -${parentElement.style.top}`; + this.container.style.left = `${parentLeft + parentWidth}px`; + this.container.appendChild(popup.render()); + return this.container; + } + +} + +class PopupElement { + constructor(parameters) { + this.container = parameters.container; + this.trigger = parameters.trigger; + this.color = parameters.color; + this.title = parameters.title; + this.modificationDate = parameters.modificationDate; + this.contents = parameters.contents; + this.hideWrapper = parameters.hideWrapper || false; + this.pinned = false; + } + + render() { + const BACKGROUND_ENLIGHT = 0.7; + const wrapper = document.createElement("div"); + wrapper.className = "popupWrapper"; + this.hideElement = this.hideWrapper ? wrapper : this.container; + this.hideElement.setAttribute("hidden", true); + const popup = document.createElement("div"); + popup.className = "popup"; + const color = this.color; + + if (color) { + const r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0]; + const g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1]; + const b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2]; + popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0); + } + + const title = document.createElement("h1"); + title.textContent = this.title; + popup.appendChild(title); + + const dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate); + + if (dateObject) { + const modificationDate = document.createElement("span"); + modificationDate.textContent = "{{date}}, {{time}}"; + modificationDate.dataset.l10nId = "annotation_date_string"; + modificationDate.dataset.l10nArgs = JSON.stringify({ + date: dateObject.toLocaleDateString(), + time: dateObject.toLocaleTimeString() + }); + popup.appendChild(modificationDate); + } + + const contents = this._formatContents(this.contents); + + popup.appendChild(contents); + 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)); + wrapper.appendChild(popup); + return wrapper; + } + + _formatContents(contents) { + const p = document.createElement("p"); + const lines = contents.split(/(?:\r\n?|\n)/); + + for (let i = 0, ii = lines.length; i < ii; ++i) { + const line = lines[i]; + p.appendChild(document.createTextNode(line)); + + if (i < ii - 1) { + p.appendChild(document.createElement("br")); + } + } + + return p; + } + + _toggle() { + if (this.pinned) { + this._hide(true); + } else { + this._show(true); + } + } + + _show(pin = false) { + if (pin) { + this.pinned = true; + } + + if (this.hideElement.hasAttribute("hidden")) { + this.hideElement.removeAttribute("hidden"); + this.container.style.zIndex += 1; + } + } + + _hide(unpin = true) { + if (unpin) { + this.pinned = false; + } + + if (!this.hideElement.hasAttribute("hidden") && !this.pinned) { + this.hideElement.setAttribute("hidden", true); + this.container.style.zIndex -= 1; + } + } + +} + +class FreeTextAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, isRenderable, true); + } + + render() { + this.container.className = "freeTextAnnotation"; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + + return this.container; + } + +} + +class LineAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, isRenderable, true); + } + + render() { + this.container.className = "lineAnnotation"; + const data = this.data; + const width = data.rect[2] - data.rect[0]; + const height = data.rect[3] - data.rect[1]; + const svg = this.svgFactory.create(width, height); + const line = this.svgFactory.createElement("svg:line"); + line.setAttribute("x1", data.rect[2] - data.lineCoordinates[0]); + line.setAttribute("y1", data.rect[3] - data.lineCoordinates[1]); + line.setAttribute("x2", data.rect[2] - data.lineCoordinates[2]); + line.setAttribute("y2", data.rect[3] - data.lineCoordinates[3]); + line.setAttribute("stroke-width", data.borderStyle.width || 1); + line.setAttribute("stroke", "transparent"); + svg.appendChild(line); + this.container.append(svg); + + this._createPopup(this.container, line, data); + + return this.container; + } + +} + +class SquareAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, isRenderable, true); + } + + render() { + this.container.className = "squareAnnotation"; + const data = this.data; + const width = data.rect[2] - data.rect[0]; + const height = data.rect[3] - data.rect[1]; + const svg = this.svgFactory.create(width, height); + const borderWidth = data.borderStyle.width; + const square = this.svgFactory.createElement("svg:rect"); + square.setAttribute("x", borderWidth / 2); + square.setAttribute("y", borderWidth / 2); + square.setAttribute("width", width - borderWidth); + square.setAttribute("height", height - borderWidth); + square.setAttribute("stroke-width", borderWidth || 1); + square.setAttribute("stroke", "transparent"); + square.setAttribute("fill", "none"); + svg.appendChild(square); + this.container.append(svg); + + this._createPopup(this.container, square, data); + + return this.container; + } + +} + +class CircleAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, isRenderable, true); + } + + render() { + this.container.className = "circleAnnotation"; + const data = this.data; + const width = data.rect[2] - data.rect[0]; + const height = data.rect[3] - data.rect[1]; + const svg = this.svgFactory.create(width, height); + const borderWidth = data.borderStyle.width; + const circle = this.svgFactory.createElement("svg:ellipse"); + circle.setAttribute("cx", width / 2); + circle.setAttribute("cy", height / 2); + circle.setAttribute("rx", width / 2 - borderWidth / 2); + circle.setAttribute("ry", height / 2 - borderWidth / 2); + circle.setAttribute("stroke-width", borderWidth || 1); + circle.setAttribute("stroke", "transparent"); + circle.setAttribute("fill", "none"); + svg.appendChild(circle); + this.container.append(svg); + + this._createPopup(this.container, circle, data); + + return this.container; + } + +} + +class PolylineAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, isRenderable, true); + this.containerClassName = "polylineAnnotation"; + this.svgElementName = "svg:polyline"; + } + + render() { + this.container.className = this.containerClassName; + const data = this.data; + const width = data.rect[2] - data.rect[0]; + const height = data.rect[3] - data.rect[1]; + const svg = this.svgFactory.create(width, height); + let points = []; + + for (const coordinate of data.vertices) { + const x = coordinate.x - data.rect[0]; + const y = data.rect[3] - coordinate.y; + points.push(x + "," + y); + } + + points = points.join(" "); + const polyline = this.svgFactory.createElement(this.svgElementName); + polyline.setAttribute("points", points); + polyline.setAttribute("stroke-width", data.borderStyle.width || 1); + polyline.setAttribute("stroke", "transparent"); + polyline.setAttribute("fill", "none"); + svg.appendChild(polyline); + this.container.append(svg); + + this._createPopup(this.container, polyline, data); + + return this.container; + } + +} + +class PolygonAnnotationElement extends PolylineAnnotationElement { + constructor(parameters) { + super(parameters); + this.containerClassName = "polygonAnnotation"; + this.svgElementName = "svg:polygon"; + } + +} + +class CaretAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, isRenderable, true); + } + + render() { + this.container.className = "caretAnnotation"; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + + return this.container; + } + +} + +class InkAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, isRenderable, true); + this.containerClassName = "inkAnnotation"; + this.svgElementName = "svg:polyline"; + } + + render() { + this.container.className = this.containerClassName; + const data = this.data; + const width = data.rect[2] - data.rect[0]; + const height = data.rect[3] - data.rect[1]; + const svg = this.svgFactory.create(width, height); + + for (const inkList of data.inkLists) { + let points = []; + + for (const coordinate of inkList) { + const x = coordinate.x - data.rect[0]; + const y = data.rect[3] - coordinate.y; + points.push(`${x},${y}`); + } + + points = points.join(" "); + const polyline = this.svgFactory.createElement(this.svgElementName); + polyline.setAttribute("points", points); + polyline.setAttribute("stroke-width", data.borderStyle.width || 1); + polyline.setAttribute("stroke", "transparent"); + polyline.setAttribute("fill", "none"); + + this._createPopup(this.container, polyline, data); + + svg.appendChild(polyline); + } + + this.container.append(svg); + return this.container; + } + +} + +class HighlightAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, isRenderable, true); + } + + render() { + this.container.className = "highlightAnnotation"; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + + return this.container; + } + +} + +class UnderlineAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, isRenderable, true); + } + + render() { + this.container.className = "underlineAnnotation"; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + + return this.container; + } + +} + +class SquigglyAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, isRenderable, true); + } + + render() { + this.container.className = "squigglyAnnotation"; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + + return this.container; + } + +} + +class StrikeOutAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, isRenderable, true); + } + + render() { + this.container.className = "strikeoutAnnotation"; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + + return this.container; + } + +} + +class StampAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, isRenderable, true); + } + + render() { + this.container.className = "stampAnnotation"; + + if (!this.data.hasPopup) { + this._createPopup(this.container, null, this.data); + } + + return this.container; + } + +} + +class FileAttachmentAnnotationElement extends AnnotationElement { + constructor(parameters) { + super(parameters, true); + const { + filename, + content + } = this.data.file; + this.filename = (0, _display_utils.getFilenameFromUrl)(filename); + this.content = content; + + if (this.linkService.eventBus) { + this.linkService.eventBus.dispatch("fileattachmentannotation", { + source: this, + id: (0, _util.stringToPDFString)(filename), + filename, + content + }); + } + } + + render() { + this.container.className = "fileAttachmentAnnotation"; + const 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() { + if (!this.downloadManager) { + (0, _util.warn)("Download cannot be started due to unavailable download manager"); + return; + } + + this.downloadManager.downloadData(this.content, this.filename, ""); + } + +} + +class AnnotationLayer { + static render(parameters) { + const sortedAnnotations = [], + popupAnnotations = []; + + for (const data of parameters.annotations) { + if (!data) { + continue; + } + + if (data.annotationType === _util.AnnotationType.POPUP) { + popupAnnotations.push(data); + continue; + } + + sortedAnnotations.push(data); + } + + if (popupAnnotations.length) { + sortedAnnotations.push(...popupAnnotations); + } + + for (const data of sortedAnnotations) { + const element = AnnotationElementFactory.create({ + data, + layer: parameters.div, + page: parameters.page, + viewport: parameters.viewport, + linkService: parameters.linkService, + downloadManager: parameters.downloadManager, + imageResourcesPath: parameters.imageResourcesPath || "", + renderInteractiveForms: typeof parameters.renderInteractiveForms === "boolean" ? parameters.renderInteractiveForms : true, + svgFactory: new _display_utils.DOMSVGFactory(), + annotationStorage: parameters.annotationStorage || new _annotation_storage.AnnotationStorage() + }); + + if (element.isRenderable) { + parameters.div.appendChild(element.render()); + } + } + } + + static update(parameters) { + for (const data of parameters.annotations) { + const element = parameters.div.querySelector(`[data-annotation-id="${data.id}"]`); + + if (element) { + element.style.transform = `matrix(${parameters.viewport.transform.join(",")})`; + } + } + + parameters.div.removeAttribute("hidden"); + } + +} + +exports.AnnotationLayer = AnnotationLayer; + +/***/ }), +/* 20 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -18794,11 +10336,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.renderTextLayer = void 0; -var _util = __w_pdfjs_require__(1); - -var _global_scope = _interopRequireDefault(__w_pdfjs_require__(3)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _util = __w_pdfjs_require__(2); var renderTextLayer = function renderTextLayerClosure() { var MAX_TEXT_DIVS_TO_RENDER = 100000; @@ -18808,12 +10346,9 @@ var renderTextLayer = function renderTextLayerClosure() { 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('span'); + var textDiv = document.createElement("span"); var textDivProperties = { - style: null, angle: 0, canvasWidth: 0, isWhitespace: false, @@ -18853,8 +10388,7 @@ var renderTextLayer = function renderTextLayerClosure() { fontAscent = (1 + style.descent) * fontAscent; } - var left; - var top; + let left, top; if (angle === 0) { left = tx[4]; @@ -18864,12 +10398,10 @@ var renderTextLayer = function renderTextLayerClosure() { 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.style.left = `${left}px`; + textDiv.style.top = `${top}px`; + textDiv.style.fontSize = `${fontHeight}px`; + textDiv.style.fontFamily = style.fontFamily; textDiv.textContent = geom.str; if (task._fontInspectorEnabled) { @@ -18880,7 +10412,20 @@ var renderTextLayer = function renderTextLayerClosure() { textDivProperties.angle = angle * (180 / Math.PI); } + let shouldScaleText = false; + if (geom.str.length > 1) { + shouldScaleText = true; + } else if (geom.transform[0] !== geom.transform[3]) { + const absScaleX = Math.abs(geom.transform[0]), + absScaleY = Math.abs(geom.transform[3]); + + if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) { + shouldScaleText = true; + } + } + + if (shouldScaleText) { if (style.vertical) { textDivProperties.canvasWidth = geom.height * task._viewport.scale; } else { @@ -18921,7 +10466,7 @@ var renderTextLayer = function renderTextLayerClosure() { bottom: b[3], div: textDiv, size: [divWidth, divHeight], - m: m + m }); } } @@ -18951,6 +10496,20 @@ var renderTextLayer = function renderTextLayerClosure() { capability.resolve(); } + function findPositiveMin(ts, offset, count) { + let result = 0; + + for (let i = 0; i < count; i++) { + const t = ts[offset++]; + + if (t > 0) { + result = result ? Math.min(t, result) : t; + } + } + + return result; + } + function expand(task) { var bounds = task._bounds; var viewport = task._viewport; @@ -18979,41 +10538,26 @@ var renderTextLayer = function renderTextLayerClosure() { 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) { + points.forEach(function (p, j) { var t = _util.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; + ts[j + 0] = c && (e.left - t[0]) / c; + ts[j + 4] = s && (e.top - t[1]) / s; + ts[j + 8] = c && (e.right - t[0]) / c; + ts[j + 12] = s && (e.bottom - t[1]) / s; + ts[j + 16] = s && (e.left - t[0]) / -s; + ts[j + 20] = c && (e.top - t[1]) / c; + ts[j + 24] = s && (e.right - t[0]) / -s; + ts[j + 28] = c && (e.bottom - t[1]) / c; + ts[j + 32] = c && (e.left - t[0]) / -c; + ts[j + 36] = s && (e.top - t[1]) / -s; + ts[j + 40] = c && (e.right - t[0]) / -c; + ts[j + 44] = s && (e.bottom - t[1]) / -s; + ts[j + 48] = s && (e.left - t[0]) / s; + ts[j + 52] = c && (e.top - t[1]) / -c; + ts[j + 56] = s && (e.right - t[0]) / s; + ts[j + 60] = c && (e.bottom - t[1]) / -c; }); - - var findPositiveMin = function findPositiveMin(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; @@ -19216,24 +10760,24 @@ var renderTextLayer = function renderTextLayerClosure() { }); } - function TextLayerRenderTask(_ref) { - var _this = this; - - var textContent = _ref.textContent, - textContentStream = _ref.textContentStream, - container = _ref.container, - viewport = _ref.viewport, - textDivs = _ref.textDivs, - textContentItemsStr = _ref.textContentItemsStr, - enhanceTextSelection = _ref.enhanceTextSelection; + function TextLayerRenderTask({ + textContent, + textContentStream, + container, + viewport, + textDivs, + textContentItemsStr, + enhanceTextSelection + }) { this._textContent = textContent; this._textContentStream = textContentStream; this._container = container; + this._document = container.ownerDocument; this._viewport = viewport; this._textDivs = textDivs || []; this._textContentItemsStr = textContentItemsStr || []; this._enhanceTextSelection = !!enhanceTextSelection; - this._fontInspectorEnabled = !!(_global_scope["default"].FontInspector && _global_scope["default"].FontInspector.enabled); + this._fontInspectorEnabled = !!(globalThis.FontInspector && globalThis.FontInspector.enabled); this._reader = null; this._layoutTextLastFontSize = null; this._layoutTextLastFontFamily = null; @@ -19245,13 +10789,13 @@ var renderTextLayer = function renderTextLayerClosure() { this._renderTimer = null; this._bounds = []; - this._capability.promise["finally"](function () { - if (_this._layoutTextCtx) { - _this._layoutTextCtx.canvas.width = 0; - _this._layoutTextCtx.canvas.height = 0; - _this._layoutTextCtx = null; + this._capability.promise.finally(() => { + if (this._layoutTextCtx) { + this._layoutTextCtx.canvas.width = 0; + this._layoutTextCtx.canvas.height = 0; + this._layoutTextCtx = null; } - }); + }).catch(() => {}); } TextLayerRenderTask.prototype = { @@ -19263,7 +10807,7 @@ var renderTextLayer = function renderTextLayerClosure() { this._canceled = true; if (this._reader) { - this._reader.cancel(new _util.AbortException('TextLayer task cancelled.')); + this._reader.cancel(new _util.AbortException("TextLayer task cancelled.")); this._reader = null; } @@ -19273,79 +10817,89 @@ var renderTextLayer = function renderTextLayerClosure() { this._renderTimer = null; } - this._capability.reject(new Error('TextLayer task cancelled.')); + this._capability.reject(new Error("TextLayer task cancelled.")); }, - _processItems: function _processItems(items, styleCache) { - for (var i = 0, len = items.length; i < len; i++) { + + _processItems(items, styleCache) { + for (let i = 0, len = items.length; i < len; i++) { this._textContentItemsStr.push(items[i].str); appendText(this, items[i], styleCache); } }, - _layoutText: function _layoutText(textDiv) { - var textLayerFrag = this._container; - var textDivProperties = this._textDivProperties.get(textDiv); + _layoutText(textDiv) { + const textDivProperties = this._textDivProperties.get(textDiv); if (textDivProperties.isWhitespace) { return; } - var fontSize = textDiv.style.fontSize; - var fontFamily = textDiv.style.fontFamily; + let transform = ""; - if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) { - this._layoutTextCtx.font = fontSize + ' ' + fontFamily; - this._layoutTextLastFontSize = fontSize; - this._layoutTextLastFontFamily = fontFamily; - } + if (textDivProperties.canvasWidth !== 0) { + const { + fontSize, + fontFamily + } = textDiv.style; - var width = this._layoutTextCtx.measureText(textDiv.textContent).width; + if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) { + this._layoutTextCtx.font = `${fontSize} ${fontFamily}`; + this._layoutTextLastFontSize = fontSize; + this._layoutTextLastFontFamily = fontFamily; + } - var transform = ''; + const { + width + } = this._layoutTextCtx.measureText(textDiv.textContent); - if (textDivProperties.canvasWidth !== 0 && width > 0) { - textDivProperties.scale = textDivProperties.canvasWidth / width; - transform = "scaleX(".concat(textDivProperties.scale, ")"); + if (width > 0) { + textDivProperties.scale = textDivProperties.canvasWidth / width; + transform = `scaleX(${textDivProperties.scale})`; + } } if (textDivProperties.angle !== 0) { - transform = "rotate(".concat(textDivProperties.angle, "deg) ").concat(transform); + transform = `rotate(${textDivProperties.angle}deg) ${transform}`; } if (transform.length > 0) { - textDivProperties.originalTransform = transform; + if (this._enhanceTextSelection) { + textDivProperties.originalTransform = transform; + } + textDiv.style.transform = transform; } this._textDivProperties.set(textDiv, textDivProperties); - textLayerFrag.appendChild(textDiv); + this._container.appendChild(textDiv); }, - _render: function TextLayer_render(timeout) { - var _this2 = this; - var capability = (0, _util.createPromiseCapability)(); - var styleCache = Object.create(null); - var canvas = document.createElement('canvas'); + _render: function TextLayer_render(timeout) { + const capability = (0, _util.createPromiseCapability)(); + let styleCache = Object.create(null); + + const canvas = this._document.createElement("canvas"); + canvas.mozOpaque = true; - this._layoutTextCtx = canvas.getContext('2d', { + this._layoutTextCtx = canvas.getContext("2d", { alpha: false }); if (this._textContent) { - var textItems = this._textContent.items; - var textStyles = this._textContent.styles; + const textItems = this._textContent.items; + const textStyles = this._textContent.styles; this._processItems(textItems, textStyles); capability.resolve(); } else if (this._textContentStream) { - var pump = function pump() { - _this2._reader.read().then(function (_ref2) { - var value = _ref2.value, - done = _ref2.done; - + const pump = () => { + this._reader.read().then(({ + value, + done + }) => { if (done) { capability.resolve(); return; @@ -19353,7 +10907,7 @@ var renderTextLayer = function renderTextLayerClosure() { Object.assign(styleCache, value.styles); - _this2._processItems(value.items, styleCache); + this._processItems(value.items, styleCache); pump(); }, capability.reject); @@ -19362,18 +10916,18 @@ var renderTextLayer = function renderTextLayerClosure() { this._reader = this._textContentStream.getReader(); pump(); } else { - throw new Error('Neither "textContent" nor "textContentStream"' + ' parameters specified.'); + throw new Error('Neither "textContent" nor "textContentStream"' + " parameters specified."); } - capability.promise.then(function () { + capability.promise.then(() => { styleCache = null; if (!timeout) { - render(_this2); + render(this); } else { - _this2._renderTimer = setTimeout(function () { - render(_this2); - _this2._renderTimer = null; + this._renderTimer = setTimeout(() => { + render(this); + this._renderTimer = null; }, timeout); } }, this._capability.reject); @@ -19388,55 +10942,60 @@ var renderTextLayer = function renderTextLayerClosure() { this._bounds = null; } + const transformBuf = [], + paddingBuf = []; + for (var i = 0, ii = this._textDivs.length; i < ii; i++) { - var div = this._textDivs[i]; + const div = this._textDivs[i]; - var divProperties = this._textDivProperties.get(div); + const divProps = this._textDivProperties.get(div); - if (divProperties.isWhitespace) { + if (divProps.isWhitespace) { continue; } if (expandDivs) { - var transform = '', - padding = ''; + transformBuf.length = 0; + paddingBuf.length = 0; - if (divProperties.scale !== 1) { - transform = 'scaleX(' + divProperties.scale + ')'; + if (divProps.originalTransform) { + transformBuf.push(divProps.originalTransform); } - if (divProperties.angle !== 0) { - transform = 'rotate(' + divProperties.angle + 'deg) ' + transform; + if (divProps.paddingTop > 0) { + paddingBuf.push(`${divProps.paddingTop}px`); + transformBuf.push(`translateY(${-divProps.paddingTop}px)`); + } else { + paddingBuf.push(0); } - if (divProperties.paddingLeft !== 0) { - padding += ' padding-left: ' + divProperties.paddingLeft / divProperties.scale + 'px;'; - transform += ' translateX(' + -divProperties.paddingLeft / divProperties.scale + 'px)'; + if (divProps.paddingRight > 0) { + paddingBuf.push(`${divProps.paddingRight / divProps.scale}px`); + } else { + paddingBuf.push(0); } - if (divProperties.paddingTop !== 0) { - padding += ' padding-top: ' + divProperties.paddingTop + 'px;'; - transform += ' translateY(' + -divProperties.paddingTop + 'px)'; + if (divProps.paddingBottom > 0) { + paddingBuf.push(`${divProps.paddingBottom}px`); + } else { + paddingBuf.push(0); } - if (divProperties.paddingRight !== 0) { - padding += ' padding-right: ' + divProperties.paddingRight / divProperties.scale + 'px;'; + if (divProps.paddingLeft > 0) { + paddingBuf.push(`${divProps.paddingLeft / divProps.scale}px`); + transformBuf.push(`translateX(${-divProps.paddingLeft / divProps.scale}px)`); + } else { + paddingBuf.push(0); } - if (divProperties.paddingBottom !== 0) { - padding += ' padding-bottom: ' + divProperties.paddingBottom + 'px;'; - } + div.style.padding = paddingBuf.join(" "); - if (padding !== '') { - div.setAttribute('style', divProperties.style + padding); - } - - if (transform !== '') { - div.style.transform = transform; + if (transformBuf.length) { + div.style.transform = transformBuf.join(" "); } } else { - div.style.padding = 0; - div.style.transform = divProperties.originalTransform || ''; + div.style.padding = null; + div.style.transform = divProps.originalTransform; } } } @@ -19464,1353 +11023,7 @@ var renderTextLayer = function renderTextLayerClosure() { exports.renderTextLayer = renderTextLayer; /***/ }), -/* 163 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.AnnotationLayer = void 0; - -var _display_utils = __w_pdfjs_require__(151); - -var _util = __w_pdfjs_require__(1); - -function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } - -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var AnnotationElementFactory = -/*#__PURE__*/ -function () { - function AnnotationElementFactory() { - _classCallCheck(this, AnnotationElementFactory); - } - - _createClass(AnnotationElementFactory, null, [{ - key: "create", - value: function create(parameters) { - var subtype = parameters.data.annotationType; - - switch (subtype) { - case _util.AnnotationType.LINK: - return new LinkAnnotationElement(parameters); - - case _util.AnnotationType.TEXT: - return new TextAnnotationElement(parameters); - - case _util.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); - } - - return new PushButtonWidgetAnnotationElement(parameters); - - case 'Ch': - return new ChoiceWidgetAnnotationElement(parameters); - } - - return new WidgetAnnotationElement(parameters); - - case _util.AnnotationType.POPUP: - return new PopupAnnotationElement(parameters); - - case _util.AnnotationType.FREETEXT: - return new FreeTextAnnotationElement(parameters); - - case _util.AnnotationType.LINE: - return new LineAnnotationElement(parameters); - - case _util.AnnotationType.SQUARE: - return new SquareAnnotationElement(parameters); - - case _util.AnnotationType.CIRCLE: - return new CircleAnnotationElement(parameters); - - case _util.AnnotationType.POLYLINE: - return new PolylineAnnotationElement(parameters); - - case _util.AnnotationType.CARET: - return new CaretAnnotationElement(parameters); - - case _util.AnnotationType.INK: - return new InkAnnotationElement(parameters); - - case _util.AnnotationType.POLYGON: - return new PolygonAnnotationElement(parameters); - - case _util.AnnotationType.HIGHLIGHT: - return new HighlightAnnotationElement(parameters); - - case _util.AnnotationType.UNDERLINE: - return new UnderlineAnnotationElement(parameters); - - case _util.AnnotationType.SQUIGGLY: - return new SquigglyAnnotationElement(parameters); - - case _util.AnnotationType.STRIKEOUT: - return new StrikeOutAnnotationElement(parameters); - - case _util.AnnotationType.STAMP: - return new StampAnnotationElement(parameters); - - case _util.AnnotationType.FILEATTACHMENT: - return new FileAttachmentAnnotationElement(parameters); - - default: - return new AnnotationElement(parameters); - } - } - }]); - - return AnnotationElementFactory; -}(); - -var AnnotationElement = -/*#__PURE__*/ -function () { - function AnnotationElement(parameters) { - var isRenderable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var ignoreBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - _classCallCheck(this, AnnotationElement); - - this.isRenderable = isRenderable; - 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; - this.svgFactory = parameters.svgFactory; - - if (isRenderable) { - this.container = this._createContainer(ignoreBorder); - } - } - - _createClass(AnnotationElement, [{ - key: "_createContainer", - value: function _createContainer() { - var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - 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.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]]); - - container.style.transform = 'matrix(' + viewport.transform.join(',') + ')'; - container.style.transformOrigin = -rect[0] + 'px ' + -rect[1] + 'px'; - - if (!ignoreBorder && data.borderStyle.width > 0) { - container.style.borderWidth = data.borderStyle.width + 'px'; - - if (data.borderStyle.style !== _util.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'; - container.style.borderRadius = radius; - } - - switch (data.borderStyle.style) { - case _util.AnnotationBorderStyleType.SOLID: - container.style.borderStyle = 'solid'; - break; - - case _util.AnnotationBorderStyleType.DASHED: - container.style.borderStyle = 'dashed'; - break; - - case _util.AnnotationBorderStyleType.BEVELED: - (0, _util.warn)('Unimplemented border style: beveled'); - break; - - case _util.AnnotationBorderStyleType.INSET: - (0, _util.warn)('Unimplemented border style: inset'); - break; - - case _util.AnnotationBorderStyleType.UNDERLINE: - container.style.borderBottomStyle = 'solid'; - break; - - default: - break; - } - - if (data.color) { - container.style.borderColor = _util.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; - } - }, { - key: "_createPopup", - value: function _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, - modificationDate: data.modificationDate, - contents: data.contents, - hideWrapper: true - }); - var popup = popupElement.render(); - popup.style.left = container.style.width; - container.appendChild(popup); - } - }, { - key: "render", - value: function render() { - (0, _util.unreachable)('Abstract method `AnnotationElement.render` called'); - } - }]); - - return AnnotationElement; -}(); - -var LinkAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement) { - _inherits(LinkAnnotationElement, _AnnotationElement); - - function LinkAnnotationElement(parameters) { - _classCallCheck(this, LinkAnnotationElement); - - var isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action); - return _possibleConstructorReturn(this, _getPrototypeOf(LinkAnnotationElement).call(this, parameters, isRenderable)); - } - - _createClass(LinkAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'linkAnnotation'; - var data = this.data, - linkService = this.linkService; - var link = document.createElement('a'); - (0, _display_utils.addLinkAttributes)(link, { - url: data.url, - target: data.newWindow ? _display_utils.LinkTarget.BLANK : linkService.externalLinkTarget, - rel: linkService.externalLinkRel - }); - - if (!data.url) { - if (data.action) { - this._bindNamedAction(link, data.action); - } else { - this._bindLink(link, data.dest); - } - } - - this.container.appendChild(link); - return this.container; - } - }, { - key: "_bindLink", - value: function _bindLink(link, destination) { - var _this = this; - - link.href = this.linkService.getDestinationHash(destination); - - link.onclick = function () { - if (destination) { - _this.linkService.navigateTo(destination); - } - - return false; - }; - - if (destination) { - link.className = 'internalLink'; - } - } - }, { - key: "_bindNamedAction", - value: function _bindNamedAction(link, action) { - var _this2 = this; - - link.href = this.linkService.getAnchorUrl(''); - - link.onclick = function () { - _this2.linkService.executeNamedAction(action); - - return false; - }; - - link.className = 'internalLink'; - } - }]); - - return LinkAnnotationElement; -}(AnnotationElement); - -var TextAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement2) { - _inherits(TextAnnotationElement, _AnnotationElement2); - - function TextAnnotationElement(parameters) { - _classCallCheck(this, TextAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(TextAnnotationElement).call(this, parameters, isRenderable)); - } - - _createClass(TextAnnotationElement, [{ - key: "render", - value: function 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; -}(AnnotationElement); - -var WidgetAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement3) { - _inherits(WidgetAnnotationElement, _AnnotationElement3); - - function WidgetAnnotationElement() { - _classCallCheck(this, WidgetAnnotationElement); - - return _possibleConstructorReturn(this, _getPrototypeOf(WidgetAnnotationElement).apply(this, arguments)); - } - - _createClass(WidgetAnnotationElement, [{ - key: "render", - value: function render() { - return this.container; - } - }]); - - return WidgetAnnotationElement; -}(AnnotationElement); - -var TextWidgetAnnotationElement = -/*#__PURE__*/ -function (_WidgetAnnotationElem) { - _inherits(TextWidgetAnnotationElement, _WidgetAnnotationElem); - - function TextWidgetAnnotationElement(parameters) { - _classCallCheck(this, TextWidgetAnnotationElement); - - var isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue; - return _possibleConstructorReturn(this, _getPrototypeOf(TextWidgetAnnotationElement).call(this, parameters, isRenderable)); - } - - _createClass(TextWidgetAnnotationElement, [{ - key: "render", - value: function render() { - var TEXT_ALIGNMENT = ['left', 'center', 'right']; - 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 && this.page.commonObjs.has(this.data.fontRefName)) { - font = this.page.commonObjs.get(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; - } - }, { - key: "_setTextStyle", - value: function _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; -}(WidgetAnnotationElement); - -var CheckboxWidgetAnnotationElement = -/*#__PURE__*/ -function (_WidgetAnnotationElem2) { - _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2); - - function CheckboxWidgetAnnotationElement(parameters) { - _classCallCheck(this, CheckboxWidgetAnnotationElement); - - return _possibleConstructorReturn(this, _getPrototypeOf(CheckboxWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms)); - } - - _createClass(CheckboxWidgetAnnotationElement, [{ - key: "render", - value: function 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; -}(WidgetAnnotationElement); - -var RadioButtonWidgetAnnotationElement = -/*#__PURE__*/ -function (_WidgetAnnotationElem3) { - _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3); - - function RadioButtonWidgetAnnotationElement(parameters) { - _classCallCheck(this, RadioButtonWidgetAnnotationElement); - - return _possibleConstructorReturn(this, _getPrototypeOf(RadioButtonWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms)); - } - - _createClass(RadioButtonWidgetAnnotationElement, [{ - key: "render", - value: function 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; -}(WidgetAnnotationElement); - -var PushButtonWidgetAnnotationElement = -/*#__PURE__*/ -function (_LinkAnnotationElemen) { - _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen); - - function PushButtonWidgetAnnotationElement() { - _classCallCheck(this, PushButtonWidgetAnnotationElement); - - return _possibleConstructorReturn(this, _getPrototypeOf(PushButtonWidgetAnnotationElement).apply(this, arguments)); - } - - _createClass(PushButtonWidgetAnnotationElement, [{ - key: "render", - value: function render() { - var container = _get(_getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), "render", this).call(this); - - container.className = 'buttonWidgetAnnotation pushButton'; - return container; - } - }]); - - return PushButtonWidgetAnnotationElement; -}(LinkAnnotationElement); - -var ChoiceWidgetAnnotationElement = -/*#__PURE__*/ -function (_WidgetAnnotationElem4) { - _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4); - - function ChoiceWidgetAnnotationElement(parameters) { - _classCallCheck(this, ChoiceWidgetAnnotationElement); - - return _possibleConstructorReturn(this, _getPrototypeOf(ChoiceWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms)); - } - - _createClass(ChoiceWidgetAnnotationElement, [{ - key: "render", - value: function 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.includes(option.displayValue)) { - optionElement.setAttribute('selected', true); - } - - selectElement.appendChild(optionElement); - } - - this.container.appendChild(selectElement); - return this.container; - } - }]); - - return ChoiceWidgetAnnotationElement; -}(WidgetAnnotationElement); - -var PopupAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement4) { - _inherits(PopupAnnotationElement, _AnnotationElement4); - - function PopupAnnotationElement(parameters) { - _classCallCheck(this, PopupAnnotationElement); - - var isRenderable = !!(parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(PopupAnnotationElement).call(this, parameters, isRenderable)); - } - - _createClass(PopupAnnotationElement, [{ - key: "render", - value: function render() { - var IGNORE_TYPES = ['Line', 'Square', 'Circle', 'PolyLine', 'Polygon', 'Ink']; - this.container.className = 'popupAnnotation'; - - if (IGNORE_TYPES.includes(this.data.parentType)) { - return this.container; - } - - 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, - modificationDate: this.data.modificationDate, - contents: this.data.contents - }); - var parentLeft = parseFloat(parentElement.style.left); - var parentWidth = parseFloat(parentElement.style.width); - this.container.style.transformOrigin = -(parentLeft + parentWidth) + 'px -' + parentElement.style.top; - this.container.style.left = parentLeft + parentWidth + 'px'; - this.container.appendChild(popup.render()); - return this.container; - } - }]); - - return PopupAnnotationElement; -}(AnnotationElement); - -var PopupElement = -/*#__PURE__*/ -function () { - function PopupElement(parameters) { - _classCallCheck(this, PopupElement); - - this.container = parameters.container; - this.trigger = parameters.trigger; - this.color = parameters.color; - this.title = parameters.title; - this.modificationDate = parameters.modificationDate; - this.contents = parameters.contents; - this.hideWrapper = parameters.hideWrapper || false; - this.pinned = false; - } - - _createClass(PopupElement, [{ - key: "render", - value: function render() { - var BACKGROUND_ENLIGHT = 0.7; - 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.Util.makeCssRgb(r | 0, g | 0, b | 0); - } - - var title = document.createElement('h1'); - title.textContent = this.title; - popup.appendChild(title); - - var dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate); - - if (dateObject) { - var modificationDate = document.createElement('span'); - modificationDate.textContent = '{{date}}, {{time}}'; - modificationDate.dataset.l10nId = 'annotation_date_string'; - modificationDate.dataset.l10nArgs = JSON.stringify({ - date: dateObject.toLocaleDateString(), - time: dateObject.toLocaleTimeString() - }); - popup.appendChild(modificationDate); - } - - var contents = this._formatContents(this.contents); - - popup.appendChild(contents); - 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)); - wrapper.appendChild(popup); - return wrapper; - } - }, { - key: "_formatContents", - value: function _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; - } - }, { - key: "_toggle", - value: function _toggle() { - if (this.pinned) { - this._hide(true); - } else { - this._show(true); - } - } - }, { - key: "_show", - value: function _show() { - var pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - if (pin) { - this.pinned = true; - } - - if (this.hideElement.hasAttribute('hidden')) { - this.hideElement.removeAttribute('hidden'); - this.container.style.zIndex += 1; - } - } - }, { - key: "_hide", - value: function _hide() { - var unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; - - 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 FreeTextAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement5) { - _inherits(FreeTextAnnotationElement, _AnnotationElement5); - - function FreeTextAnnotationElement(parameters) { - _classCallCheck(this, FreeTextAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(FreeTextAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(FreeTextAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'freeTextAnnotation'; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return FreeTextAnnotationElement; -}(AnnotationElement); - -var LineAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement6) { - _inherits(LineAnnotationElement, _AnnotationElement6); - - function LineAnnotationElement(parameters) { - _classCallCheck(this, LineAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(LineAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(LineAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'lineAnnotation'; - var data = this.data; - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - var svg = this.svgFactory.create(width, height); - var line = this.svgFactory.createElement('svg:line'); - line.setAttribute('x1', data.rect[2] - data.lineCoordinates[0]); - line.setAttribute('y1', data.rect[3] - data.lineCoordinates[1]); - line.setAttribute('x2', data.rect[2] - data.lineCoordinates[2]); - line.setAttribute('y2', data.rect[3] - data.lineCoordinates[3]); - line.setAttribute('stroke-width', data.borderStyle.width); - line.setAttribute('stroke', 'transparent'); - svg.appendChild(line); - this.container.append(svg); - - this._createPopup(this.container, line, data); - - return this.container; - } - }]); - - return LineAnnotationElement; -}(AnnotationElement); - -var SquareAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement7) { - _inherits(SquareAnnotationElement, _AnnotationElement7); - - function SquareAnnotationElement(parameters) { - _classCallCheck(this, SquareAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(SquareAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(SquareAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'squareAnnotation'; - var data = this.data; - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - var svg = this.svgFactory.create(width, height); - var borderWidth = data.borderStyle.width; - var square = this.svgFactory.createElement('svg:rect'); - square.setAttribute('x', borderWidth / 2); - square.setAttribute('y', borderWidth / 2); - square.setAttribute('width', width - borderWidth); - square.setAttribute('height', height - borderWidth); - square.setAttribute('stroke-width', borderWidth); - square.setAttribute('stroke', 'transparent'); - square.setAttribute('fill', 'none'); - svg.appendChild(square); - this.container.append(svg); - - this._createPopup(this.container, square, data); - - return this.container; - } - }]); - - return SquareAnnotationElement; -}(AnnotationElement); - -var CircleAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement8) { - _inherits(CircleAnnotationElement, _AnnotationElement8); - - function CircleAnnotationElement(parameters) { - _classCallCheck(this, CircleAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(CircleAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(CircleAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'circleAnnotation'; - var data = this.data; - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - var svg = this.svgFactory.create(width, height); - var borderWidth = data.borderStyle.width; - var circle = this.svgFactory.createElement('svg:ellipse'); - circle.setAttribute('cx', width / 2); - circle.setAttribute('cy', height / 2); - circle.setAttribute('rx', width / 2 - borderWidth / 2); - circle.setAttribute('ry', height / 2 - borderWidth / 2); - circle.setAttribute('stroke-width', borderWidth); - circle.setAttribute('stroke', 'transparent'); - circle.setAttribute('fill', 'none'); - svg.appendChild(circle); - this.container.append(svg); - - this._createPopup(this.container, circle, data); - - return this.container; - } - }]); - - return CircleAnnotationElement; -}(AnnotationElement); - -var PolylineAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement9) { - _inherits(PolylineAnnotationElement, _AnnotationElement9); - - function PolylineAnnotationElement(parameters) { - var _this3; - - _classCallCheck(this, PolylineAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PolylineAnnotationElement).call(this, parameters, isRenderable, true)); - _this3.containerClassName = 'polylineAnnotation'; - _this3.svgElementName = 'svg:polyline'; - return _this3; - } - - _createClass(PolylineAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = this.containerClassName; - var data = this.data; - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - var svg = this.svgFactory.create(width, height); - var vertices = data.vertices; - var points = []; - - for (var i = 0, ii = vertices.length; i < ii; i++) { - var x = vertices[i].x - data.rect[0]; - var y = data.rect[3] - vertices[i].y; - points.push(x + ',' + y); - } - - points = points.join(' '); - var borderWidth = data.borderStyle.width; - var polyline = this.svgFactory.createElement(this.svgElementName); - polyline.setAttribute('points', points); - polyline.setAttribute('stroke-width', borderWidth); - polyline.setAttribute('stroke', 'transparent'); - polyline.setAttribute('fill', 'none'); - svg.appendChild(polyline); - this.container.append(svg); - - this._createPopup(this.container, polyline, data); - - return this.container; - } - }]); - - return PolylineAnnotationElement; -}(AnnotationElement); - -var PolygonAnnotationElement = -/*#__PURE__*/ -function (_PolylineAnnotationEl) { - _inherits(PolygonAnnotationElement, _PolylineAnnotationEl); - - function PolygonAnnotationElement(parameters) { - var _this4; - - _classCallCheck(this, PolygonAnnotationElement); - - _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PolygonAnnotationElement).call(this, parameters)); - _this4.containerClassName = 'polygonAnnotation'; - _this4.svgElementName = 'svg:polygon'; - return _this4; - } - - return PolygonAnnotationElement; -}(PolylineAnnotationElement); - -var CaretAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement10) { - _inherits(CaretAnnotationElement, _AnnotationElement10); - - function CaretAnnotationElement(parameters) { - _classCallCheck(this, CaretAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(CaretAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(CaretAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'caretAnnotation'; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return CaretAnnotationElement; -}(AnnotationElement); - -var InkAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement11) { - _inherits(InkAnnotationElement, _AnnotationElement11); - - function InkAnnotationElement(parameters) { - var _this5; - - _classCallCheck(this, InkAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - _this5 = _possibleConstructorReturn(this, _getPrototypeOf(InkAnnotationElement).call(this, parameters, isRenderable, true)); - _this5.containerClassName = 'inkAnnotation'; - _this5.svgElementName = 'svg:polyline'; - return _this5; - } - - _createClass(InkAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = this.containerClassName; - var data = this.data; - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - var svg = this.svgFactory.create(width, height); - var inkLists = data.inkLists; - - for (var i = 0, ii = inkLists.length; i < ii; i++) { - var inkList = inkLists[i]; - var points = []; - - for (var j = 0, jj = inkList.length; j < jj; j++) { - var x = inkList[j].x - data.rect[0]; - var y = data.rect[3] - inkList[j].y; - points.push(x + ',' + y); - } - - points = points.join(' '); - var borderWidth = data.borderStyle.width; - var polyline = this.svgFactory.createElement(this.svgElementName); - polyline.setAttribute('points', points); - polyline.setAttribute('stroke-width', borderWidth); - polyline.setAttribute('stroke', 'transparent'); - polyline.setAttribute('fill', 'none'); - - this._createPopup(this.container, polyline, data); - - svg.appendChild(polyline); - } - - this.container.append(svg); - return this.container; - } - }]); - - return InkAnnotationElement; -}(AnnotationElement); - -var HighlightAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement12) { - _inherits(HighlightAnnotationElement, _AnnotationElement12); - - function HighlightAnnotationElement(parameters) { - _classCallCheck(this, HighlightAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(HighlightAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(HighlightAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'highlightAnnotation'; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return HighlightAnnotationElement; -}(AnnotationElement); - -var UnderlineAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement13) { - _inherits(UnderlineAnnotationElement, _AnnotationElement13); - - function UnderlineAnnotationElement(parameters) { - _classCallCheck(this, UnderlineAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(UnderlineAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(UnderlineAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'underlineAnnotation'; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return UnderlineAnnotationElement; -}(AnnotationElement); - -var SquigglyAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement14) { - _inherits(SquigglyAnnotationElement, _AnnotationElement14); - - function SquigglyAnnotationElement(parameters) { - _classCallCheck(this, SquigglyAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(SquigglyAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(SquigglyAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'squigglyAnnotation'; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return SquigglyAnnotationElement; -}(AnnotationElement); - -var StrikeOutAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement15) { - _inherits(StrikeOutAnnotationElement, _AnnotationElement15); - - function StrikeOutAnnotationElement(parameters) { - _classCallCheck(this, StrikeOutAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(StrikeOutAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(StrikeOutAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'strikeoutAnnotation'; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return StrikeOutAnnotationElement; -}(AnnotationElement); - -var StampAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement16) { - _inherits(StampAnnotationElement, _AnnotationElement16); - - function StampAnnotationElement(parameters) { - _classCallCheck(this, StampAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(StampAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(StampAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'stampAnnotation'; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return StampAnnotationElement; -}(AnnotationElement); - -var FileAttachmentAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement17) { - _inherits(FileAttachmentAnnotationElement, _AnnotationElement17); - - function FileAttachmentAnnotationElement(parameters) { - var _this6; - - _classCallCheck(this, FileAttachmentAnnotationElement); - - _this6 = _possibleConstructorReturn(this, _getPrototypeOf(FileAttachmentAnnotationElement).call(this, parameters, true)); - var _this6$data$file = _this6.data.file, - filename = _this6$data$file.filename, - content = _this6$data$file.content; - _this6.filename = (0, _display_utils.getFilenameFromUrl)(filename); - _this6.content = content; - - if (_this6.linkService.eventBus) { - _this6.linkService.eventBus.dispatch('fileattachmentannotation', { - source: _assertThisInitialized(_this6), - id: (0, _util.stringToPDFString)(filename), - filename: filename, - content: content - }); - } - - return _this6; - } - - _createClass(FileAttachmentAnnotationElement, [{ - key: "render", - value: function 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; - } - }, { - key: "_download", - value: function _download() { - if (!this.downloadManager) { - (0, _util.warn)('Download cannot be started due to unavailable download manager'); - return; - } - - this.downloadManager.downloadData(this.content, this.filename, ''); - } - }]); - - return FileAttachmentAnnotationElement; -}(AnnotationElement); - -var AnnotationLayer = -/*#__PURE__*/ -function () { - function AnnotationLayer() { - _classCallCheck(this, AnnotationLayer); - } - - _createClass(AnnotationLayer, null, [{ - key: "render", - value: function render(parameters) { - 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 || '', - renderInteractiveForms: parameters.renderInteractiveForms || false, - svgFactory: new _display_utils.DOMSVGFactory() - }); - - if (element.isRenderable) { - parameters.div.appendChild(element.render()); - } - } - } - }, { - key: "update", - value: function 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) { - element.style.transform = 'matrix(' + parameters.viewport.transform.join(',') + ')'; - } - } - - parameters.div.removeAttribute('hidden'); - } - }]); - - return AnnotationLayer; -}(); - -exports.AnnotationLayer = AnnotationLayer; - -/***/ }), -/* 164 */ +/* 21 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -20821,151 +11034,39 @@ Object.defineProperty(exports, "__esModule", { }); exports.SVGGraphics = void 0; -var _util = __w_pdfjs_require__(1); +var _util = __w_pdfjs_require__(2); -var _display_utils = __w_pdfjs_require__(151); +var _display_utils = __w_pdfjs_require__(1); -var _is_node = _interopRequireDefault(__w_pdfjs_require__(4)); +var _is_node = __w_pdfjs_require__(4); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } - -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } - -function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } - -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var SVGGraphics = function SVGGraphics() { - throw new Error('Not implemented: SVGGraphics'); +let SVGGraphics = function () { + throw new Error("Not implemented: SVGGraphics"); }; exports.SVGGraphics = SVGGraphics; { - var opListToTree = function opListToTree(opList) { - var opTree = []; - var tmp = []; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = opList[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var opListElement = _step.value; - - if (opListElement.fn === 'save') { - opTree.push({ - 'fnId': 92, - 'fn': 'group', - 'items': [] - }); - tmp.push(opTree); - opTree = opTree[opTree.length - 1].items; - continue; - } - - if (opListElement.fn === 'restore') { - opTree = tmp.pop(); - } else { - opTree.push(opListElement); - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - return opTree; + const SVG_DEFAULTS = { + fontStyle: "normal", + fontWeight: "normal", + fillColor: "#000000" }; + const XML_NS = "http://www.w3.org/XML/1998/namespace"; + const XLINK_NS = "http://www.w3.org/1999/xlink"; + const LINE_CAP_STYLES = ["butt", "round", "square"]; + const LINE_JOIN_STYLES = ["miter", "round", "bevel"]; - var pf = function pf(value) { - if (Number.isInteger(value)) { - return value.toString(); - } + const convertImgDataToPng = function () { + const PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]); + const CHUNK_WRAPPER_SIZE = 12; + const crcTable = new Int32Array(256); - var s = value.toFixed(10); - var i = s.length - 1; + for (let i = 0; i < 256; i++) { + let c = i; - if (s[i] !== '0') { - return s; - } - - do { - i--; - } while (s[i] === '0'); - - return s.substring(0, s[i] === '.' ? i : i + 1); - }; - - var pm = 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(".concat(pf(m[0]), " ").concat(pf(m[3]), ")"); - } - - if (m[0] === m[3] && m[1] === -m[2]) { - var a = Math.acos(m[0]) * 180 / Math.PI; - return "rotate(".concat(pf(a), ")"); - } - } else { - if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) { - return "translate(".concat(pf(m[4]), " ").concat(pf(m[5]), ")"); - } - } - - return "matrix(".concat(pf(m[0]), " ").concat(pf(m[1]), " ").concat(pf(m[2]), " ").concat(pf(m[3]), " ").concat(pf(m[4]), " ") + "".concat(pf(m[5]), ")"); - }; - - var SVG_DEFAULTS = { - fontStyle: 'normal', - fontWeight: 'normal', - fillColor: '#000000' - }; - 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 convertImgDataToPng = function () { - 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++) { + for (let h = 0; h < 8; h++) { if (c & 1) { - c = 0xedB88320 ^ c >> 1 & 0x7fffffff; + c = 0xedb88320 ^ c >> 1 & 0x7fffffff; } else { c = c >> 1 & 0x7fffffff; } @@ -20975,11 +11076,11 @@ exports.SVGGraphics = SVGGraphics; } function crc32(data, start, end) { - var crc = -1; + let crc = -1; - for (var _i = start; _i < end; _i++) { - var a = (crc ^ data[_i]) & 0xff; - var b = crcTable[a]; + for (let i = start; i < end; i++) { + const a = (crc ^ data[i]) & 0xff; + const b = crcTable[a]; crc = crc >>> 8 ^ b; } @@ -20987,8 +11088,8 @@ exports.SVGGraphics = SVGGraphics; } function writePngChunk(type, body, data, offset) { - var p = offset; - var len = body.length; + let p = offset; + const len = body.length; data[p] = len >> 24 & 0xff; data[p + 1] = len >> 16 & 0xff; data[p + 2] = len >> 8 & 0xff; @@ -21001,7 +11102,7 @@ exports.SVGGraphics = SVGGraphics; p += 4; data.set(body, p); p += body.length; - var crc = crc32(data, offset + 4, p); + const crc = crc32(data, offset + 4, p); data[p] = crc >> 24 & 0xff; data[p + 1] = crc >> 16 & 0xff; data[p + 2] = crc >> 8 & 0xff; @@ -21009,11 +11110,11 @@ exports.SVGGraphics = SVGGraphics; } function adler32(data, start, end) { - var a = 1; - var b = 0; + let a = 1; + let b = 0; - for (var _i2 = start; _i2 < end; ++_i2) { - a = (a + (data[_i2] & 0xff)) % 65521; + for (let i = start; i < end; ++i) { + a = (a + (data[i] & 0xff)) % 65521; b = (b + a) % 65521; } @@ -21021,40 +11122,40 @@ exports.SVGGraphics = SVGGraphics; } function deflateSync(literals) { - if (!(0, _is_node["default"])()) { + if (!_is_node.isNodeJS) { return deflateSyncUncompressed(literals); } try { - var input; + let input; if (parseInt(process.versions.node) >= 8) { input = literals; } else { - input = new Buffer(literals); + input = Buffer.from(literals); } - var output = require('zlib').deflateSync(input, { + const output = require("zlib").deflateSync(input, { level: 9 }); return output instanceof Uint8Array ? output : new Uint8Array(output); } catch (e) { - (0, _util.warn)('Not compressing PNG because zlib.deflateSync is unavailable: ' + e); + (0, _util.warn)("Not compressing PNG because zlib.deflateSync is unavailable: " + e); } return deflateSyncUncompressed(literals); } function deflateSyncUncompressed(literals) { - 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; + let len = literals.length; + const maxBlockLength = 0xffff; + const deflateBlocks = Math.ceil(len / maxBlockLength); + const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4); + let pi = 0; idat[pi++] = 0x78; idat[pi++] = 0x9c; - var pos = 0; + let pos = 0; while (len > maxBlockLength) { idat[pi++] = 0x00; @@ -21075,7 +11176,7 @@ exports.SVGGraphics = SVGGraphics; idat[pi++] = (~len & 0xffff) >> 8 & 0xff; idat.set(literals.subarray(pos), pi); pi += literals.length - pos; - var adler = adler32(literals, 0, literals.length); + const adler = adler32(literals, 0, literals.length); idat[pi++] = adler >> 24 & 0xff; idat[pi++] = adler >> 16 & 0xff; idat[pi++] = adler >> 8 & 0xff; @@ -21084,10 +11185,10 @@ exports.SVGGraphics = SVGGraphics; } function encode(imgData, kind, forceDataSchema, isMask) { - var width = imgData.width; - var height = imgData.height; - var bitDepth, colorType, lineSize; - var bytes = imgData.data; + const width = imgData.width; + const height = imgData.height; + let bitDepth, colorType, lineSize; + const bytes = imgData.data; switch (kind) { case _util.ImageKind.GRAYSCALE_1BPP: @@ -21109,14 +11210,14 @@ exports.SVGGraphics = SVGGraphics; break; default: - throw new Error('invalid format'); + throw new Error("invalid format"); } - var literals = new Uint8Array((1 + lineSize) * height); - var offsetLiterals = 0, + const literals = new Uint8Array((1 + lineSize) * height); + let offsetLiterals = 0, offsetBytes = 0; - for (var y = 0; y < height; ++y) { + for (let y = 0; y < height; ++y) { literals[offsetLiterals++] = 0; literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals); offsetBytes += lineSize; @@ -21126,42 +11227,38 @@ exports.SVGGraphics = SVGGraphics; if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) { offsetLiterals = 0; - for (var _y = 0; _y < height; _y++) { + for (let y = 0; y < height; y++) { offsetLiterals++; - for (var _i3 = 0; _i3 < lineSize; _i3++) { - literals[offsetLiterals++] ^= 0xFF; + for (let 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 idat = deflateSync(literals); - var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length; - var data = new Uint8Array(pngLength); - var offset = 0; + const 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]); + const idat = deflateSync(literals); + const pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length; + const data = new Uint8Array(pngLength); + let offset = 0; data.set(PNG_HEADER, offset); offset += PNG_HEADER.length; - writePngChunk('IHDR', ihdr, data, offset); + writePngChunk("IHDR", ihdr, data, offset); offset += CHUNK_WRAPPER_SIZE + ihdr.length; - writePngChunk('IDATA', idat, data, offset); + writePngChunk("IDATA", idat, data, offset); offset += CHUNK_WRAPPER_SIZE + idat.length; - writePngChunk('IEND', new Uint8Array(0), data, offset); - return (0, _util.createObjectURL)(data, 'image/png', forceDataSchema); + writePngChunk("IEND", new Uint8Array(0), data, offset); + return (0, _util.createObjectURL)(data, "image/png", forceDataSchema); } return function convertImgDataToPng(imgData, forceDataSchema, isMask) { - var kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind; + const kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind; return encode(imgData, kind, forceDataSchema, isMask); }; }(); - var SVGExtraState = - /*#__PURE__*/ - function () { - function SVGExtraState() { - _classCallCheck(this, SVGExtraState); - + class SVGExtraState { + constructor() { this.fontSizeScale = 1; this.fontWeight = SVG_DEFAULTS.fontWeight; this.fontSize = 0; @@ -21179,47 +11276,105 @@ exports.SVGGraphics = SVGGraphics; this.textHScale = 1; this.textRise = 0; this.fillColor = SVG_DEFAULTS.fillColor; - this.strokeColor = '#000000'; + this.strokeColor = "#000000"; this.fillAlpha = 1; this.strokeAlpha = 1; this.lineWidth = 1; - this.lineJoin = ''; - this.lineCap = ''; + this.lineJoin = ""; + this.lineCap = ""; this.miterLimit = 0; this.dashArray = []; this.dashPhase = 0; this.dependencies = []; this.activeClipUrl = null; this.clipGroup = null; - this.maskId = ''; + this.maskId = ""; } - _createClass(SVGExtraState, [{ - key: "clone", - value: function clone() { - return Object.create(this); + clone() { + return Object.create(this); + } + + setCurrentPoint(x, y) { + this.x = x; + this.y = y; + } + + } + + function opListToTree(opList) { + let opTree = []; + const tmp = []; + + for (const opListElement of opList) { + if (opListElement.fn === "save") { + opTree.push({ + fnId: 92, + fn: "group", + items: [] + }); + tmp.push(opTree); + opTree = opTree[opTree.length - 1].items; + continue; } - }, { - key: "setCurrentPoint", - value: function setCurrentPoint(x, y) { - this.x = x; - this.y = y; + + if (opListElement.fn === "restore") { + opTree = tmp.pop(); + } else { + opTree.push(opListElement); } - }]); + } - return SVGExtraState; - }(); + return opTree; + } - var clipCount = 0; - var maskCount = 0; - var shadingCount = 0; + function pf(value) { + if (Number.isInteger(value)) { + return value.toString(); + } - exports.SVGGraphics = SVGGraphics = - /*#__PURE__*/ - function () { - function SVGGraphics(commonObjs, objs, forceDataSchema) { - _classCallCheck(this, SVGGraphics); + const s = value.toFixed(10); + let i = s.length - 1; + if (s[i] !== "0") { + return s; + } + + do { + i--; + } while (s[i] === "0"); + + return s.substring(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]) { + const 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])})`; + } + + let clipCount = 0; + let maskCount = 0; + let shadingCount = 0; + exports.SVGGraphics = SVGGraphics = class SVGGraphics { + constructor(commonObjs, objs, forceDataSchema = false) { this.svgFactory = new _display_utils.DOMSVGFactory(); this.current = new SVGExtraState(); this.transformMatrix = _util.IDENTITY_MATRIX; @@ -21235,1346 +11390,1166 @@ exports.SVGGraphics = SVGGraphics; this.forceDataSchema = !!forceDataSchema; this._operatorIdMapping = []; - for (var op in _util.OPS) { + for (const op in _util.OPS) { this._operatorIdMapping[_util.OPS[op]] = op; } } - _createClass(SVGGraphics, [{ - key: "save", - value: function save() { - this.transformStack.push(this.transformMatrix); - var old = this.current; - this.extraStack.push(old); - this.current = old.clone(); - } - }, { - key: "restore", - value: function restore() { - this.transformMatrix = this.transformStack.pop(); - this.current = this.extraStack.pop(); - this.pendingClip = null; - this.tgrp = null; - } - }, { - key: "group", - value: function group(items) { - this.save(); - this.executeOpTree(items); - this.restore(); - } - }, { - key: "loadDependencies", - value: function loadDependencies(operatorList) { - var _this = this; + save() { + this.transformStack.push(this.transformMatrix); + const old = this.current; + this.extraStack.push(old); + this.current = old.clone(); + } - var fnArray = operatorList.fnArray; - var argsArray = operatorList.argsArray; + restore() { + this.transformMatrix = this.transformStack.pop(); + this.current = this.extraStack.pop(); + this.pendingClip = null; + this.tgrp = null; + } - for (var i = 0, ii = fnArray.length; i < ii; i++) { - if (fnArray[i] !== _util.OPS.dependency) { - continue; - } + group(items) { + this.save(); + this.executeOpTree(items); + this.restore(); + } - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; + loadDependencies(operatorList) { + const fnArray = operatorList.fnArray; + const argsArray = operatorList.argsArray; - try { - var _loop = function _loop() { - var obj = _step2.value; - var objsPool = obj.startsWith('g_') ? _this.commonObjs : _this.objs; - var promise = new Promise(function (resolve) { - objsPool.get(obj, resolve); - }); - - _this.current.dependencies.push(promise); - }; - - for (var _iterator2 = argsArray[i][Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - _loop(); - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } + for (let i = 0, ii = fnArray.length; i < ii; i++) { + if (fnArray[i] !== _util.OPS.dependency) { + continue; } - return Promise.all(this.current.dependencies); + for (const obj of argsArray[i]) { + const objsPool = obj.startsWith("g_") ? this.commonObjs : this.objs; + const promise = new Promise(resolve => { + objsPool.get(obj, resolve); + }); + this.current.dependencies.push(promise); + } } - }, { - key: "transform", - value: function transform(a, b, c, d, e, f) { - var transformMatrix = [a, b, c, d, e, f]; - this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix); - this.tgrp = null; - } - }, { - key: "getSVG", - value: function getSVG(operatorList, viewport) { - var _this2 = this; - this.viewport = viewport; + return Promise.all(this.current.dependencies); + } - var svgElement = this._initialize(viewport); + transform(a, b, c, d, e, f) { + const transformMatrix = [a, b, c, d, e, f]; + this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix); + this.tgrp = null; + } - return this.loadDependencies(operatorList).then(function () { - _this2.transformMatrix = _util.IDENTITY_MATRIX; + getSVG(operatorList, viewport) { + this.viewport = viewport; - _this2.executeOpTree(_this2.convertOpList(operatorList)); + const svgElement = this._initialize(viewport); - return svgElement; + return this.loadDependencies(operatorList).then(() => { + this.transformMatrix = _util.IDENTITY_MATRIX; + this.executeOpTree(this.convertOpList(operatorList)); + return svgElement; + }); + } + + convertOpList(operatorList) { + const operatorIdMapping = this._operatorIdMapping; + const argsArray = operatorList.argsArray; + const fnArray = operatorList.fnArray; + const opList = []; + + for (let i = 0, ii = fnArray.length; i < ii; i++) { + const fnId = fnArray[i]; + opList.push({ + fnId, + fn: operatorIdMapping[fnId], + args: argsArray[i] }); } - }, { - key: "convertOpList", - value: function convertOpList(operatorList) { - var operatorIdMapping = this._operatorIdMapping; - var argsArray = operatorList.argsArray; - var fnArray = operatorList.fnArray; - var opList = []; - - for (var i = 0, ii = fnArray.length; i < ii; i++) { - var fnId = fnArray[i]; - opList.push({ - 'fnId': fnId, - 'fn': operatorIdMapping[fnId], - 'args': argsArray[i] - }); - } - - return opListToTree(opList); - } - }, { - key: "executeOpTree", - value: function executeOpTree(opTree) { - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; - - try { - for (var _iterator3 = opTree[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var opTreeElement = _step3.value; - var fn = opTreeElement.fn; - var fnId = opTreeElement.fnId; - var args = opTreeElement.args; - - switch (fnId | 0) { - case _util.OPS.beginText: - this.beginText(); - break; - - case _util.OPS.dependency: - break; - - case _util.OPS.setLeading: - this.setLeading(args); - break; - - case _util.OPS.setLeadingMoveText: - this.setLeadingMoveText(args[0], args[1]); - break; - - case _util.OPS.setFont: - this.setFont(args); - break; - - case _util.OPS.showText: - this.showText(args[0]); - break; - - case _util.OPS.showSpacedText: - this.showText(args[0]); - break; - - case _util.OPS.endText: - this.endText(); - break; - - case _util.OPS.moveText: - this.moveText(args[0], args[1]); - break; - - case _util.OPS.setCharSpacing: - this.setCharSpacing(args[0]); - break; - - case _util.OPS.setWordSpacing: - this.setWordSpacing(args[0]); - break; - - case _util.OPS.setHScale: - this.setHScale(args[0]); - break; - - case _util.OPS.setTextMatrix: - this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); - break; - - case _util.OPS.setTextRise: - this.setTextRise(args[0]); - break; - - case _util.OPS.setTextRenderingMode: - this.setTextRenderingMode(args[0]); - break; - - case _util.OPS.setLineWidth: - this.setLineWidth(args[0]); - break; - - case _util.OPS.setLineJoin: - this.setLineJoin(args[0]); - break; - - case _util.OPS.setLineCap: - this.setLineCap(args[0]); - break; - - case _util.OPS.setMiterLimit: - this.setMiterLimit(args[0]); - break; - - case _util.OPS.setFillRGBColor: - this.setFillRGBColor(args[0], args[1], args[2]); - break; - - case _util.OPS.setStrokeRGBColor: - this.setStrokeRGBColor(args[0], args[1], args[2]); - break; - - case _util.OPS.setStrokeColorN: - this.setStrokeColorN(args); - break; - - case _util.OPS.setFillColorN: - this.setFillColorN(args); - break; - case _util.OPS.shadingFill: - this.shadingFill(args[0]); - break; + return opListToTree(opList); + } - case _util.OPS.setDash: - this.setDash(args[0], args[1]); - break; + executeOpTree(opTree) { + for (const opTreeElement of opTree) { + const fn = opTreeElement.fn; + const fnId = opTreeElement.fnId; + const args = opTreeElement.args; - case _util.OPS.setRenderingIntent: - this.setRenderingIntent(args[0]); - break; + switch (fnId | 0) { + case _util.OPS.beginText: + this.beginText(); + break; - case _util.OPS.setFlatness: - this.setFlatness(args[0]); - break; + case _util.OPS.dependency: + break; - case _util.OPS.setGState: - this.setGState(args[0]); - break; - - case _util.OPS.fill: - this.fill(); - break; - - case _util.OPS.eoFill: - this.eoFill(); - break; - - case _util.OPS.stroke: - this.stroke(); - break; - - case _util.OPS.fillStroke: - this.fillStroke(); - break; - - case _util.OPS.eoFillStroke: - this.eoFillStroke(); - break; - - case _util.OPS.clip: - this.clip('nonzero'); - break; - - case _util.OPS.eoClip: - this.clip('evenodd'); - break; - - case _util.OPS.paintSolidColorImageMask: - this.paintSolidColorImageMask(); - break; - - case _util.OPS.paintJpegXObject: - this.paintJpegXObject(args[0], args[1], args[2]); - break; - - case _util.OPS.paintImageXObject: - this.paintImageXObject(args[0]); - break; - - case _util.OPS.paintInlineImageXObject: - this.paintInlineImageXObject(args[0]); - break; - - case _util.OPS.paintImageMaskXObject: - this.paintImageMaskXObject(args[0]); - break; - - case _util.OPS.paintFormXObjectBegin: - this.paintFormXObjectBegin(args[0], args[1]); - break; - - case _util.OPS.paintFormXObjectEnd: - this.paintFormXObjectEnd(); - break; - - case _util.OPS.closePath: - this.closePath(); - break; - - case _util.OPS.closeStroke: - this.closeStroke(); - break; - - case _util.OPS.closeFillStroke: - this.closeFillStroke(); - break; - - case _util.OPS.closeEOFillStroke: - this.closeEOFillStroke(); - break; - - case _util.OPS.nextLine: - this.nextLine(); - break; - - case _util.OPS.transform: - this.transform(args[0], args[1], args[2], args[3], args[4], args[5]); - break; - - case _util.OPS.constructPath: - this.constructPath(args[0], args[1]); - break; - - case _util.OPS.endPath: - this.endPath(); - break; - - case 92: - this.group(opTreeElement.items); - break; - - default: - (0, _util.warn)("Unimplemented operator ".concat(fn)); - break; - } - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) { - _iterator3["return"](); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - } - }, { - key: "setWordSpacing", - value: function setWordSpacing(wordSpacing) { - this.current.wordSpacing = wordSpacing; - } - }, { - key: "setCharSpacing", - value: function setCharSpacing(charSpacing) { - this.current.charSpacing = charSpacing; - } - }, { - key: "nextLine", - value: function nextLine() { - this.moveText(0, this.current.leading); - } - }, { - key: "setTextMatrix", - value: function setTextMatrix(a, b, c, d, e, f) { - var current = this.current; - current.textMatrix = current.lineMatrix = [a, b, c, d, e, f]; - current.textMatrixScale = Math.sqrt(a * a + b * b); - current.x = current.lineX = 0; - current.y = current.lineY = 0; - current.xcoords = []; - current.tspan = this.svgFactory.createElement('svg:tspan'); - current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); - current.tspan.setAttributeNS(null, 'font-size', "".concat(pf(current.fontSize), "px")); - current.tspan.setAttributeNS(null, 'y', pf(-current.y)); - current.txtElement = this.svgFactory.createElement('svg:text'); - current.txtElement.appendChild(current.tspan); - } - }, { - key: "beginText", - value: function beginText() { - var current = this.current; - current.x = current.lineX = 0; - current.y = current.lineY = 0; - current.textMatrix = _util.IDENTITY_MATRIX; - current.lineMatrix = _util.IDENTITY_MATRIX; - current.textMatrixScale = 1; - current.tspan = this.svgFactory.createElement('svg:tspan'); - current.txtElement = this.svgFactory.createElement('svg:text'); - current.txtgrp = this.svgFactory.createElement('svg:g'); - current.xcoords = []; - } - }, { - key: "moveText", - value: function moveText(x, y) { - var current = this.current; - current.x = current.lineX += x; - current.y = current.lineY += y; - current.xcoords = []; - current.tspan = this.svgFactory.createElement('svg:tspan'); - current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); - current.tspan.setAttributeNS(null, 'font-size', "".concat(pf(current.fontSize), "px")); - current.tspan.setAttributeNS(null, 'y', pf(-current.y)); - } - }, { - key: "showText", - value: function 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 vertical = font.vertical; - var widthAdvanceScale = fontSize * current.fontMatrix[0]; - var x = 0; - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; - - try { - for (var _iterator4 = glyphs[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var glyph = _step4.value; - - if (glyph === null) { - x += fontDirection * wordSpacing; - continue; - } else if ((0, _util.isNum)(glyph)) { - x += -glyph * fontSize * 0.001; - continue; - } - - var width = glyph.width; - var character = glyph.fontChar; - var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; - var charWidth = width * widthAdvanceScale + spacing * fontDirection; - - if (!glyph.isInFont && !font.missingFile) { - x += charWidth; - continue; - } - - current.xcoords.push(current.x + x * textHScale); - current.tspan.textContent += character; - x += charWidth; - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) { - _iterator4["return"](); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - - 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', "".concat(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); - } - - var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; - - if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { - if (current.fillColor !== SVG_DEFAULTS.fillColor) { - current.tspan.setAttributeNS(null, 'fill', current.fillColor); - } - - if (current.fillAlpha < 1) { - current.tspan.setAttributeNS(null, 'fill-opacity', current.fillAlpha); - } - } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) { - current.tspan.setAttributeNS(null, 'fill', 'transparent'); - } else { - current.tspan.setAttributeNS(null, 'fill', 'none'); - } - - if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { - var lineWidthScale = 1 / (current.textMatrixScale || 1); - - this._setStrokeAttributes(current.tspan, lineWidthScale); - } - - var textMatrix = current.textMatrix; - - if (current.textRise !== 0) { - textMatrix = textMatrix.slice(); - textMatrix[5] += current.textRise; - } - - current.txtElement.setAttributeNS(null, 'transform', "".concat(pm(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); - } - }, { - key: "setLeadingMoveText", - value: function setLeadingMoveText(x, y) { - this.setLeading(-y); - this.moveText(x, y); - } - }, { - key: "addFontStyle", - value: function addFontStyle(fontObj) { - if (!this.cssStyle) { - this.cssStyle = this.svgFactory.createElement('svg:style'); - this.cssStyle.setAttributeNS(null, 'type', 'text/css'); - this.defs.appendChild(this.cssStyle); - } - - var url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema); - this.cssStyle.textContent += "@font-face { font-family: \"".concat(fontObj.loadedName, "\";") + " src: url(".concat(url, "); }\n"); - } - }, { - key: "setFont", - value: function setFont(details) { - var current = this.current; - var fontObj = this.commonObjs.get(details[0]); - var size = details[1]; - 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 : _util.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 = this.svgFactory.createElement('svg:tspan'); - current.tspan.setAttributeNS(null, 'y', pf(-current.y)); - current.xcoords = []; - } - }, { - key: "endText", - value: function endText() { - var current = this.current; - - if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement && current.txtElement.hasChildNodes()) { - current.element = current.txtElement; - this.clip('nonzero'); - this.endPath(); - } - } - }, { - key: "setLineWidth", - value: function setLineWidth(width) { - if (width > 0) { - this.current.lineWidth = width; - } - } - }, { - key: "setLineCap", - value: function setLineCap(style) { - this.current.lineCap = LINE_CAP_STYLES[style]; - } - }, { - key: "setLineJoin", - value: function setLineJoin(style) { - this.current.lineJoin = LINE_JOIN_STYLES[style]; - } - }, { - key: "setMiterLimit", - value: function setMiterLimit(limit) { - this.current.miterLimit = limit; - } - }, { - key: "setStrokeAlpha", - value: function setStrokeAlpha(strokeAlpha) { - this.current.strokeAlpha = strokeAlpha; - } - }, { - key: "setStrokeRGBColor", - value: function setStrokeRGBColor(r, g, b) { - this.current.strokeColor = _util.Util.makeCssRgb(r, g, b); - } - }, { - key: "setFillAlpha", - value: function setFillAlpha(fillAlpha) { - this.current.fillAlpha = fillAlpha; - } - }, { - key: "setFillRGBColor", - value: function setFillRGBColor(r, g, b) { - this.current.fillColor = _util.Util.makeCssRgb(r, g, b); - this.current.tspan = this.svgFactory.createElement('svg:tspan'); - this.current.xcoords = []; - } - }, { - key: "setStrokeColorN", - value: function setStrokeColorN(args) { - this.current.strokeColor = this._makeColorN_Pattern(args); - } - }, { - key: "setFillColorN", - value: function setFillColorN(args) { - this.current.fillColor = this._makeColorN_Pattern(args); - } - }, { - key: "shadingFill", - value: function shadingFill(args) { - var width = this.viewport.width; - var height = this.viewport.height; - - var inv = _util.Util.inverseTransform(this.transformMatrix); - - var bl = _util.Util.applyTransform([0, 0], inv); - - var br = _util.Util.applyTransform([0, height], inv); - - var ul = _util.Util.applyTransform([width, 0], inv); - - var ur = _util.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]); - var rect = this.svgFactory.createElement('svg:rect'); - rect.setAttributeNS(null, 'x', x0); - rect.setAttributeNS(null, 'y', y0); - rect.setAttributeNS(null, 'width', x1 - x0); - rect.setAttributeNS(null, 'height', y1 - y0); - rect.setAttributeNS(null, 'fill', this._makeShadingPattern(args)); - - this._ensureTransformGroup().appendChild(rect); - } - }, { - key: "_makeColorN_Pattern", - value: function _makeColorN_Pattern(args) { - if (args[0] === 'TilingPattern') { - return this._makeTilingPattern(args); - } - - return this._makeShadingPattern(args); - } - }, { - key: "_makeTilingPattern", - value: function _makeTilingPattern(args) { - var color = args[1]; - var operatorList = args[2]; - var matrix = args[3] || _util.IDENTITY_MATRIX; - - var _args$ = _slicedToArray(args[4], 4), - x0 = _args$[0], - y0 = _args$[1], - x1 = _args$[2], - y1 = _args$[3]; - - var xstep = args[5]; - var ystep = args[6]; - var paintType = args[7]; - var tilingId = "shading".concat(shadingCount++); - - var _Util$applyTransform = _util.Util.applyTransform([x0, y0], matrix), - _Util$applyTransform2 = _slicedToArray(_Util$applyTransform, 2), - tx0 = _Util$applyTransform2[0], - ty0 = _Util$applyTransform2[1]; - - var _Util$applyTransform3 = _util.Util.applyTransform([x1, y1], matrix), - _Util$applyTransform4 = _slicedToArray(_Util$applyTransform3, 2), - tx1 = _Util$applyTransform4[0], - ty1 = _Util$applyTransform4[1]; - - var _Util$singularValueDe = _util.Util.singularValueDecompose2dScale(matrix), - _Util$singularValueDe2 = _slicedToArray(_Util$singularValueDe, 2), - xscale = _Util$singularValueDe2[0], - yscale = _Util$singularValueDe2[1]; - - var txstep = xstep * xscale; - var tystep = ystep * yscale; - var tiling = this.svgFactory.createElement('svg:pattern'); - tiling.setAttributeNS(null, 'id', tilingId); - tiling.setAttributeNS(null, 'patternUnits', 'userSpaceOnUse'); - tiling.setAttributeNS(null, 'width', txstep); - tiling.setAttributeNS(null, 'height', tystep); - tiling.setAttributeNS(null, 'x', "".concat(tx0)); - tiling.setAttributeNS(null, 'y', "".concat(ty0)); - var svg = this.svg; - var transformMatrix = this.transformMatrix; - var fillColor = this.current.fillColor; - var strokeColor = this.current.strokeColor; - var bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0); - this.svg = bbox; - this.transformMatrix = matrix; - - if (paintType === 2) { - var cssColor = _util.Util.makeCssRgb.apply(_util.Util, _toConsumableArray(color)); - - this.current.fillColor = cssColor; - this.current.strokeColor = cssColor; - } - - this.executeOpTree(this.convertOpList(operatorList)); - this.svg = svg; - this.transformMatrix = transformMatrix; - this.current.fillColor = fillColor; - this.current.strokeColor = strokeColor; - tiling.appendChild(bbox.childNodes[0]); - this.defs.appendChild(tiling); - return "url(#".concat(tilingId, ")"); - } - }, { - key: "_makeShadingPattern", - value: function _makeShadingPattern(args) { - switch (args[0]) { - case 'RadialAxial': - var shadingId = "shading".concat(shadingCount++); - var colorStops = args[2]; - var gradient; - - switch (args[1]) { - case 'axial': - var point0 = args[3]; - var point1 = args[4]; - gradient = this.svgFactory.createElement('svg:linearGradient'); - gradient.setAttributeNS(null, 'id', shadingId); - gradient.setAttributeNS(null, 'gradientUnits', 'userSpaceOnUse'); - gradient.setAttributeNS(null, 'x1', point0[0]); - gradient.setAttributeNS(null, 'y1', point0[1]); - gradient.setAttributeNS(null, 'x2', point1[0]); - gradient.setAttributeNS(null, 'y2', point1[1]); - break; - - case 'radial': - var focalPoint = args[3]; - var circlePoint = args[4]; - var focalRadius = args[5]; - var circleRadius = args[6]; - gradient = this.svgFactory.createElement('svg:radialGradient'); - gradient.setAttributeNS(null, 'id', shadingId); - gradient.setAttributeNS(null, 'gradientUnits', 'userSpaceOnUse'); - gradient.setAttributeNS(null, 'cx', circlePoint[0]); - gradient.setAttributeNS(null, 'cy', circlePoint[1]); - gradient.setAttributeNS(null, 'r', circleRadius); - gradient.setAttributeNS(null, 'fx', focalPoint[0]); - gradient.setAttributeNS(null, 'fy', focalPoint[1]); - gradient.setAttributeNS(null, 'fr', focalRadius); - break; - - default: - throw new Error("Unknown RadialAxial type: ".concat(args[1])); - } - - var _iteratorNormalCompletion5 = true; - var _didIteratorError5 = false; - var _iteratorError5 = undefined; - - try { - for (var _iterator5 = colorStops[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { - var colorStop = _step5.value; - var stop = this.svgFactory.createElement('svg:stop'); - stop.setAttributeNS(null, 'offset', colorStop[0]); - stop.setAttributeNS(null, 'stop-color', colorStop[1]); - gradient.appendChild(stop); - } - } catch (err) { - _didIteratorError5 = true; - _iteratorError5 = err; - } finally { - try { - if (!_iteratorNormalCompletion5 && _iterator5["return"] != null) { - _iterator5["return"](); - } - } finally { - if (_didIteratorError5) { - throw _iteratorError5; - } - } - } - - this.defs.appendChild(gradient); - return "url(#".concat(shadingId, ")"); - - case 'Mesh': - (0, _util.warn)('Unimplemented pattern Mesh'); - return null; - - case 'Dummy': - return 'hotpink'; + case _util.OPS.setLeading: + this.setLeading(args); + break; + + case _util.OPS.setLeadingMoveText: + this.setLeadingMoveText(args[0], args[1]); + break; + + case _util.OPS.setFont: + this.setFont(args); + break; + + case _util.OPS.showText: + this.showText(args[0]); + break; + + case _util.OPS.showSpacedText: + this.showText(args[0]); + break; + + case _util.OPS.endText: + this.endText(); + break; + + case _util.OPS.moveText: + this.moveText(args[0], args[1]); + break; + + case _util.OPS.setCharSpacing: + this.setCharSpacing(args[0]); + break; + + case _util.OPS.setWordSpacing: + this.setWordSpacing(args[0]); + break; + + case _util.OPS.setHScale: + this.setHScale(args[0]); + break; + + case _util.OPS.setTextMatrix: + this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); + break; + + case _util.OPS.setTextRise: + this.setTextRise(args[0]); + break; + + case _util.OPS.setTextRenderingMode: + this.setTextRenderingMode(args[0]); + break; + + case _util.OPS.setLineWidth: + this.setLineWidth(args[0]); + break; + + case _util.OPS.setLineJoin: + this.setLineJoin(args[0]); + break; + + case _util.OPS.setLineCap: + this.setLineCap(args[0]); + break; + + case _util.OPS.setMiterLimit: + this.setMiterLimit(args[0]); + break; + + case _util.OPS.setFillRGBColor: + this.setFillRGBColor(args[0], args[1], args[2]); + break; + + case _util.OPS.setStrokeRGBColor: + this.setStrokeRGBColor(args[0], args[1], args[2]); + break; + + case _util.OPS.setStrokeColorN: + this.setStrokeColorN(args); + break; + + case _util.OPS.setFillColorN: + this.setFillColorN(args); + break; + + case _util.OPS.shadingFill: + this.shadingFill(args[0]); + break; + + case _util.OPS.setDash: + this.setDash(args[0], args[1]); + break; + + case _util.OPS.setRenderingIntent: + this.setRenderingIntent(args[0]); + break; + + case _util.OPS.setFlatness: + this.setFlatness(args[0]); + break; + + case _util.OPS.setGState: + this.setGState(args[0]); + break; + + case _util.OPS.fill: + this.fill(); + break; + + case _util.OPS.eoFill: + this.eoFill(); + break; + + case _util.OPS.stroke: + this.stroke(); + break; + + case _util.OPS.fillStroke: + this.fillStroke(); + break; + + case _util.OPS.eoFillStroke: + this.eoFillStroke(); + break; + + case _util.OPS.clip: + this.clip("nonzero"); + break; + + case _util.OPS.eoClip: + this.clip("evenodd"); + break; + + case _util.OPS.paintSolidColorImageMask: + this.paintSolidColorImageMask(); + break; + + case _util.OPS.paintImageXObject: + this.paintImageXObject(args[0]); + break; + + case _util.OPS.paintInlineImageXObject: + this.paintInlineImageXObject(args[0]); + break; + + case _util.OPS.paintImageMaskXObject: + this.paintImageMaskXObject(args[0]); + break; + + case _util.OPS.paintFormXObjectBegin: + this.paintFormXObjectBegin(args[0], args[1]); + break; + + case _util.OPS.paintFormXObjectEnd: + this.paintFormXObjectEnd(); + break; + + case _util.OPS.closePath: + this.closePath(); + break; + + case _util.OPS.closeStroke: + this.closeStroke(); + break; + + case _util.OPS.closeFillStroke: + this.closeFillStroke(); + break; + + case _util.OPS.closeEOFillStroke: + this.closeEOFillStroke(); + break; + + case _util.OPS.nextLine: + this.nextLine(); + break; + + case _util.OPS.transform: + this.transform(args[0], args[1], args[2], args[3], args[4], args[5]); + break; + + case _util.OPS.constructPath: + this.constructPath(args[0], args[1]); + break; + + case _util.OPS.endPath: + this.endPath(); + break; + + case 92: + this.group(opTreeElement.items); + break; default: - throw new Error("Unknown IR type: ".concat(args[0])); + (0, _util.warn)(`Unimplemented operator ${fn}`); + break; } } - }, { - key: "setDash", - value: function setDash(dashArray, dashPhase) { - this.current.dashArray = dashArray; - this.current.dashPhase = dashPhase; + } + + setWordSpacing(wordSpacing) { + this.current.wordSpacing = wordSpacing; + } + + setCharSpacing(charSpacing) { + this.current.charSpacing = charSpacing; + } + + nextLine() { + this.moveText(0, this.current.leading); + } + + setTextMatrix(a, b, c, d, e, f) { + const current = this.current; + current.textMatrix = current.lineMatrix = [a, b, c, d, e, f]; + current.textMatrixScale = Math.sqrt(a * a + b * b); + current.x = current.lineX = 0; + current.y = current.lineY = 0; + current.xcoords = []; + current.ycoords = []; + current.tspan = this.svgFactory.createElement("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 = this.svgFactory.createElement("svg:text"); + current.txtElement.appendChild(current.tspan); + } + + beginText() { + const current = this.current; + current.x = current.lineX = 0; + current.y = current.lineY = 0; + current.textMatrix = _util.IDENTITY_MATRIX; + current.lineMatrix = _util.IDENTITY_MATRIX; + current.textMatrixScale = 1; + current.tspan = this.svgFactory.createElement("svg:tspan"); + current.txtElement = this.svgFactory.createElement("svg:text"); + current.txtgrp = this.svgFactory.createElement("svg:g"); + current.xcoords = []; + current.ycoords = []; + } + + moveText(x, y) { + const current = this.current; + current.x = current.lineX += x; + current.y = current.lineY += y; + current.xcoords = []; + current.ycoords = []; + current.tspan = this.svgFactory.createElement("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(glyphs) { + const current = this.current; + const font = current.font; + const fontSize = current.fontSize; + + if (fontSize === 0) { + return; } - }, { - key: "constructPath", - value: function constructPath(ops, args) { - var current = this.current; - var x = current.x, - y = current.y; - var d = []; - var j = 0; - var _iteratorNormalCompletion6 = true; - var _didIteratorError6 = false; - var _iteratorError6 = undefined; - try { - for (var _iterator6 = ops[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) { - var op = _step6.value; + const fontSizeScale = current.fontSizeScale; + const charSpacing = current.charSpacing; + const wordSpacing = current.wordSpacing; + const fontDirection = current.fontDirection; + const textHScale = current.textHScale * fontDirection; + const vertical = font.vertical; + const spacingDir = vertical ? 1 : -1; + const defaultVMetrics = font.defaultVMetrics; + const widthAdvanceScale = fontSize * current.fontMatrix[0]; + let x = 0; - switch (op | 0) { - case _util.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 _util.OPS.moveTo: - x = args[j++]; - y = args[j++]; - d.push('M', pf(x), pf(y)); - break; - - case _util.OPS.lineTo: - x = args[j++]; - y = args[j++]; - d.push('L', pf(x), pf(y)); - break; - - case _util.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 _util.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 _util.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 _util.OPS.closePath: - d.push('Z'); - break; - } - } - } catch (err) { - _didIteratorError6 = true; - _iteratorError6 = err; - } finally { - try { - if (!_iteratorNormalCompletion6 && _iterator6["return"] != null) { - _iterator6["return"](); - } - } finally { - if (_didIteratorError6) { - throw _iteratorError6; - } - } + for (const glyph of glyphs) { + if (glyph === null) { + x += fontDirection * wordSpacing; + continue; + } else if ((0, _util.isNum)(glyph)) { + x += spacingDir * glyph * fontSize / 1000; + continue; } - d = d.join(' '); + const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + const character = glyph.fontChar; + let scaledX, scaledY; + let width = glyph.width; - if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) { - d = current.path.getAttributeNS(null, 'd') + d; + if (vertical) { + let vx; + const vmetric = glyph.vmetric || defaultVMetrics; + vx = glyph.vmetric ? vmetric[1] : width * 0.5; + vx = -vx * widthAdvanceScale; + const vy = vmetric[2] * widthAdvanceScale; + width = vmetric ? -vmetric[0] : width; + scaledX = vx / fontSizeScale; + scaledY = (x + vy) / fontSizeScale; } else { - current.path = this.svgFactory.createElement('svg:path'); - - this._ensureTransformGroup().appendChild(current.path); + scaledX = x / fontSizeScale; + scaledY = 0; } - current.path.setAttributeNS(null, 'd', d); - current.path.setAttributeNS(null, 'fill', 'none'); - current.element = current.path; - current.setCurrentPoint(x, y); - } - }, { - key: "endPath", - value: function endPath() { - var current = this.current; - current.path = null; + if (glyph.isInFont || font.missingFile) { + current.xcoords.push(current.x + scaledX); - if (!this.pendingClip) { - return; - } + if (vertical) { + current.ycoords.push(-current.y + scaledY); + } - if (!current.element) { - this.pendingClip = null; - return; - } + current.tspan.textContent += character; + } else {} - var clipId = "clippath".concat(clipCount++); - var clipPath = this.svgFactory.createElement('svg:clipPath'); - clipPath.setAttributeNS(null, 'id', clipId); - clipPath.setAttributeNS(null, 'transform', pm(this.transformMatrix)); - var clipElement = current.element.cloneNode(true); + let charWidth; - if (this.pendingClip === 'evenodd') { - clipElement.setAttributeNS(null, 'clip-rule', 'evenodd'); + if (vertical) { + charWidth = width * widthAdvanceScale - spacing * fontDirection; } else { - clipElement.setAttributeNS(null, 'clip-rule', 'nonzero'); + charWidth = width * widthAdvanceScale + spacing * fontDirection; } + x += charWidth; + } + + current.tspan.setAttributeNS(null, "x", current.xcoords.map(pf).join(" ")); + + if (vertical) { + current.tspan.setAttributeNS(null, "y", current.ycoords.map(pf).join(" ")); + } else { + current.tspan.setAttributeNS(null, "y", pf(-current.y)); + } + + if (vertical) { + current.y -= x; + } else { + current.x += x * textHScale; + } + + 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); + } + + const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; + + if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + if (current.fillColor !== SVG_DEFAULTS.fillColor) { + current.tspan.setAttributeNS(null, "fill", current.fillColor); + } + + if (current.fillAlpha < 1) { + current.tspan.setAttributeNS(null, "fill-opacity", current.fillAlpha); + } + } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) { + current.tspan.setAttributeNS(null, "fill", "transparent"); + } else { + current.tspan.setAttributeNS(null, "fill", "none"); + } + + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + const lineWidthScale = 1 / (current.textMatrixScale || 1); + + this._setStrokeAttributes(current.tspan, lineWidthScale); + } + + let textMatrix = current.textMatrix; + + if (current.textRise !== 0) { + textMatrix = textMatrix.slice(); + textMatrix[5] += current.textRise; + } + + current.txtElement.setAttributeNS(null, "transform", `${pm(textMatrix)} scale(${pf(textHScale)}, -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(x, y) { + this.setLeading(-y); + this.moveText(x, y); + } + + addFontStyle(fontObj) { + if (!fontObj.data) { + throw new Error("addFontStyle: No font data available, " + 'ensure that the "fontExtraProperties" API parameter is set.'); + } + + if (!this.cssStyle) { + this.cssStyle = this.svgFactory.createElement("svg:style"); + this.cssStyle.setAttributeNS(null, "type", "text/css"); + this.defs.appendChild(this.cssStyle); + } + + const url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema); + this.cssStyle.textContent += `@font-face { font-family: "${fontObj.loadedName}";` + ` src: url(${url}); }\n`; + } + + setFont(details) { + const current = this.current; + const fontObj = this.commonObjs.get(details[0]); + let size = details[1]; + current.font = fontObj; + + if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) { + this.addFontStyle(fontObj); + this.embeddedFonts[fontObj.loadedName] = fontObj; + } + + current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX; + let bold = "normal"; + + if (fontObj.black) { + bold = "900"; + } else if (fontObj.bold) { + bold = "bold"; + } + + const 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 = this.svgFactory.createElement("svg:tspan"); + current.tspan.setAttributeNS(null, "y", pf(-current.y)); + current.xcoords = []; + current.ycoords = []; + } + + endText() { + const current = this.current; + + if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement && current.txtElement.hasChildNodes()) { + current.element = current.txtElement; + this.clip("nonzero"); + this.endPath(); + } + } + + setLineWidth(width) { + if (width > 0) { + this.current.lineWidth = width; + } + } + + setLineCap(style) { + this.current.lineCap = LINE_CAP_STYLES[style]; + } + + setLineJoin(style) { + this.current.lineJoin = LINE_JOIN_STYLES[style]; + } + + setMiterLimit(limit) { + this.current.miterLimit = limit; + } + + setStrokeAlpha(strokeAlpha) { + this.current.strokeAlpha = strokeAlpha; + } + + setStrokeRGBColor(r, g, b) { + this.current.strokeColor = _util.Util.makeCssRgb(r, g, b); + } + + setFillAlpha(fillAlpha) { + this.current.fillAlpha = fillAlpha; + } + + setFillRGBColor(r, g, b) { + this.current.fillColor = _util.Util.makeCssRgb(r, g, b); + this.current.tspan = this.svgFactory.createElement("svg:tspan"); + this.current.xcoords = []; + this.current.ycoords = []; + } + + setStrokeColorN(args) { + this.current.strokeColor = this._makeColorN_Pattern(args); + } + + setFillColorN(args) { + this.current.fillColor = this._makeColorN_Pattern(args); + } + + shadingFill(args) { + const width = this.viewport.width; + const height = this.viewport.height; + + const inv = _util.Util.inverseTransform(this.transformMatrix); + + const bl = _util.Util.applyTransform([0, 0], inv); + + const br = _util.Util.applyTransform([0, height], inv); + + const ul = _util.Util.applyTransform([width, 0], inv); + + const ur = _util.Util.applyTransform([width, height], inv); + + const x0 = Math.min(bl[0], br[0], ul[0], ur[0]); + const y0 = Math.min(bl[1], br[1], ul[1], ur[1]); + const x1 = Math.max(bl[0], br[0], ul[0], ur[0]); + const y1 = Math.max(bl[1], br[1], ul[1], ur[1]); + const rect = this.svgFactory.createElement("svg:rect"); + rect.setAttributeNS(null, "x", x0); + rect.setAttributeNS(null, "y", y0); + rect.setAttributeNS(null, "width", x1 - x0); + rect.setAttributeNS(null, "height", y1 - y0); + rect.setAttributeNS(null, "fill", this._makeShadingPattern(args)); + + if (this.current.fillAlpha < 1) { + rect.setAttributeNS(null, "fill-opacity", this.current.fillAlpha); + } + + this._ensureTransformGroup().appendChild(rect); + } + + _makeColorN_Pattern(args) { + if (args[0] === "TilingPattern") { + return this._makeTilingPattern(args); + } + + return this._makeShadingPattern(args); + } + + _makeTilingPattern(args) { + const color = args[1]; + const operatorList = args[2]; + const matrix = args[3] || _util.IDENTITY_MATRIX; + const [x0, y0, x1, y1] = args[4]; + const xstep = args[5]; + const ystep = args[6]; + const paintType = args[7]; + const tilingId = `shading${shadingCount++}`; + + const [tx0, ty0] = _util.Util.applyTransform([x0, y0], matrix); + + const [tx1, ty1] = _util.Util.applyTransform([x1, y1], matrix); + + const [xscale, yscale] = _util.Util.singularValueDecompose2dScale(matrix); + + const txstep = xstep * xscale; + const tystep = ystep * yscale; + const tiling = this.svgFactory.createElement("svg:pattern"); + tiling.setAttributeNS(null, "id", tilingId); + tiling.setAttributeNS(null, "patternUnits", "userSpaceOnUse"); + tiling.setAttributeNS(null, "width", txstep); + tiling.setAttributeNS(null, "height", tystep); + tiling.setAttributeNS(null, "x", `${tx0}`); + tiling.setAttributeNS(null, "y", `${ty0}`); + const svg = this.svg; + const transformMatrix = this.transformMatrix; + const fillColor = this.current.fillColor; + const strokeColor = this.current.strokeColor; + const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0); + this.svg = bbox; + this.transformMatrix = matrix; + + if (paintType === 2) { + const cssColor = _util.Util.makeCssRgb(...color); + + this.current.fillColor = cssColor; + this.current.strokeColor = cssColor; + } + + this.executeOpTree(this.convertOpList(operatorList)); + this.svg = svg; + this.transformMatrix = transformMatrix; + this.current.fillColor = fillColor; + this.current.strokeColor = strokeColor; + tiling.appendChild(bbox.childNodes[0]); + this.defs.appendChild(tiling); + return `url(#${tilingId})`; + } + + _makeShadingPattern(args) { + switch (args[0]) { + case "RadialAxial": + const shadingId = `shading${shadingCount++}`; + const colorStops = args[3]; + let gradient; + + switch (args[1]) { + case "axial": + const point0 = args[4]; + const point1 = args[5]; + gradient = this.svgFactory.createElement("svg:linearGradient"); + gradient.setAttributeNS(null, "id", shadingId); + gradient.setAttributeNS(null, "gradientUnits", "userSpaceOnUse"); + gradient.setAttributeNS(null, "x1", point0[0]); + gradient.setAttributeNS(null, "y1", point0[1]); + gradient.setAttributeNS(null, "x2", point1[0]); + gradient.setAttributeNS(null, "y2", point1[1]); + break; + + case "radial": + const focalPoint = args[4]; + const circlePoint = args[5]; + const focalRadius = args[6]; + const circleRadius = args[7]; + gradient = this.svgFactory.createElement("svg:radialGradient"); + gradient.setAttributeNS(null, "id", shadingId); + gradient.setAttributeNS(null, "gradientUnits", "userSpaceOnUse"); + gradient.setAttributeNS(null, "cx", circlePoint[0]); + gradient.setAttributeNS(null, "cy", circlePoint[1]); + gradient.setAttributeNS(null, "r", circleRadius); + gradient.setAttributeNS(null, "fx", focalPoint[0]); + gradient.setAttributeNS(null, "fy", focalPoint[1]); + gradient.setAttributeNS(null, "fr", focalRadius); + break; + + default: + throw new Error(`Unknown RadialAxial type: ${args[1]}`); + } + + for (const colorStop of colorStops) { + const stop = this.svgFactory.createElement("svg:stop"); + stop.setAttributeNS(null, "offset", colorStop[0]); + stop.setAttributeNS(null, "stop-color", colorStop[1]); + gradient.appendChild(stop); + } + + this.defs.appendChild(gradient); + return `url(#${shadingId})`; + + case "Mesh": + (0, _util.warn)("Unimplemented pattern Mesh"); + return null; + + case "Dummy": + return "hotpink"; + + default: + throw new Error(`Unknown IR type: ${args[0]}`); + } + } + + setDash(dashArray, dashPhase) { + this.current.dashArray = dashArray; + this.current.dashPhase = dashPhase; + } + + constructPath(ops, args) { + const current = this.current; + let x = current.x, + y = current.y; + let d = []; + let j = 0; + + for (const op of ops) { + switch (op | 0) { + case _util.OPS.rectangle: + x = args[j++]; + y = args[j++]; + const width = args[j++]; + const height = args[j++]; + const xw = x + width; + const 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 _util.OPS.moveTo: + x = args[j++]; + y = args[j++]; + d.push("M", pf(x), pf(y)); + break; + + case _util.OPS.lineTo: + x = args[j++]; + y = args[j++]; + d.push("L", pf(x), pf(y)); + break; + + case _util.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 _util.OPS.curveTo2: + d.push("C", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3])); + x = args[j + 2]; + y = args[j + 3]; + j += 4; + break; + + case _util.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 _util.OPS.closePath: + d.push("Z"); + break; + } + } + + d = d.join(" "); + + if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) { + d = current.path.getAttributeNS(null, "d") + d; + } else { + current.path = this.svgFactory.createElement("svg:path"); + + this._ensureTransformGroup().appendChild(current.path); + } + + current.path.setAttributeNS(null, "d", d); + current.path.setAttributeNS(null, "fill", "none"); + current.element = current.path; + current.setCurrentPoint(x, y); + } + + endPath() { + const current = this.current; + current.path = null; + + if (!this.pendingClip) { + return; + } + + if (!current.element) { this.pendingClip = null; - clipPath.appendChild(clipElement); - this.defs.appendChild(clipPath); - - if (current.activeClipUrl) { - current.clipGroup = null; - this.extraStack.forEach(function (prev) { - prev.clipGroup = null; - }); - clipPath.setAttributeNS(null, 'clip-path', current.activeClipUrl); - } - - current.activeClipUrl = "url(#".concat(clipId, ")"); - this.tgrp = null; + return; } - }, { - key: "clip", - value: function clip(type) { - this.pendingClip = type; - } - }, { - key: "closePath", - value: function closePath() { - var current = this.current; - if (current.path) { - var d = "".concat(current.path.getAttributeNS(null, 'd'), "Z"); - current.path.setAttributeNS(null, 'd', d); + const clipId = `clippath${clipCount++}`; + const clipPath = this.svgFactory.createElement("svg:clipPath"); + clipPath.setAttributeNS(null, "id", clipId); + clipPath.setAttributeNS(null, "transform", pm(this.transformMatrix)); + const clipElement = current.element.cloneNode(true); + + if (this.pendingClip === "evenodd") { + clipElement.setAttributeNS(null, "clip-rule", "evenodd"); + } else { + clipElement.setAttributeNS(null, "clip-rule", "nonzero"); + } + + this.pendingClip = null; + clipPath.appendChild(clipElement); + this.defs.appendChild(clipPath); + + if (current.activeClipUrl) { + current.clipGroup = null; + this.extraStack.forEach(function (prev) { + prev.clipGroup = null; + }); + clipPath.setAttributeNS(null, "clip-path", current.activeClipUrl); + } + + current.activeClipUrl = `url(#${clipId})`; + this.tgrp = null; + } + + clip(type) { + this.pendingClip = type; + } + + closePath() { + const current = this.current; + + if (current.path) { + const d = `${current.path.getAttributeNS(null, "d")}Z`; + current.path.setAttributeNS(null, "d", d); + } + } + + setLeading(leading) { + this.current.leading = -leading; + } + + setTextRise(textRise) { + this.current.textRise = textRise; + } + + setTextRenderingMode(textRenderingMode) { + this.current.textRenderingMode = textRenderingMode; + } + + setHScale(scale) { + this.current.textHScale = scale / 100; + } + + setRenderingIntent(intent) {} + + setFlatness(flatness) {} + + setGState(states) { + for (const [key, value] of states) { + 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); + break; + + case "CA": + this.setStrokeAlpha(value); + break; + + case "ca": + this.setFillAlpha(value); + break; + + default: + (0, _util.warn)(`Unimplemented graphic state operator ${key}`); + break; } } - }, { - key: "setLeading", - value: function setLeading(leading) { - this.current.leading = -leading; + } + + fill() { + const current = this.current; + + if (current.element) { + current.element.setAttributeNS(null, "fill", current.fillColor); + current.element.setAttributeNS(null, "fill-opacity", current.fillAlpha); + this.endPath(); } - }, { - key: "setTextRise", - value: function setTextRise(textRise) { - this.current.textRise = textRise; + } + + stroke() { + const current = this.current; + + if (current.element) { + this._setStrokeAttributes(current.element); + + current.element.setAttributeNS(null, "fill", "none"); + this.endPath(); } - }, { - key: "setTextRenderingMode", - value: function setTextRenderingMode(textRenderingMode) { - this.current.textRenderingMode = textRenderingMode; + } + + _setStrokeAttributes(element, lineWidthScale = 1) { + const current = this.current; + let dashArray = current.dashArray; + + if (lineWidthScale !== 1 && dashArray.length > 0) { + dashArray = dashArray.map(function (value) { + return lineWidthScale * value; + }); } - }, { - key: "setHScale", - value: function setHScale(scale) { - this.current.textHScale = scale / 100; + + element.setAttributeNS(null, "stroke", current.strokeColor); + element.setAttributeNS(null, "stroke-opacity", current.strokeAlpha); + element.setAttributeNS(null, "stroke-miterlimit", pf(current.miterLimit)); + element.setAttributeNS(null, "stroke-linecap", current.lineCap); + element.setAttributeNS(null, "stroke-linejoin", current.lineJoin); + element.setAttributeNS(null, "stroke-width", pf(lineWidthScale * current.lineWidth) + "px"); + element.setAttributeNS(null, "stroke-dasharray", dashArray.map(pf).join(" ")); + element.setAttributeNS(null, "stroke-dashoffset", pf(lineWidthScale * current.dashPhase) + "px"); + } + + eoFill() { + if (this.current.element) { + this.current.element.setAttributeNS(null, "fill-rule", "evenodd"); } - }, { - key: "setRenderingIntent", - value: function setRenderingIntent(intent) {} - }, { - key: "setFlatness", - value: function setFlatness(flatness) {} - }, { - key: "setGState", - value: function setGState(states) { - var _iteratorNormalCompletion7 = true; - var _didIteratorError7 = false; - var _iteratorError7 = undefined; - try { - for (var _iterator7 = states[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) { - var _step7$value = _slicedToArray(_step7.value, 2), - key = _step7$value[0], - value = _step7$value[1]; + this.fill(); + } - switch (key) { - case 'LW': - this.setLineWidth(value); - break; + fillStroke() { + this.stroke(); + this.fill(); + } - 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); - break; - - case 'CA': - this.setStrokeAlpha(value); - break; - - case 'ca': - this.setFillAlpha(value); - break; - - default: - (0, _util.warn)("Unimplemented graphic state operator ".concat(key)); - break; - } - } - } catch (err) { - _didIteratorError7 = true; - _iteratorError7 = err; - } finally { - try { - if (!_iteratorNormalCompletion7 && _iterator7["return"] != null) { - _iterator7["return"](); - } - } finally { - if (_didIteratorError7) { - throw _iteratorError7; - } - } - } + eoFillStroke() { + if (this.current.element) { + this.current.element.setAttributeNS(null, "fill-rule", "evenodd"); } - }, { - key: "fill", - value: function fill() { - var current = this.current; - if (current.element) { - current.element.setAttributeNS(null, 'fill', current.fillColor); - current.element.setAttributeNS(null, 'fill-opacity', current.fillAlpha); - this.endPath(); - } - } - }, { - key: "stroke", - value: function stroke() { - var current = this.current; + this.fillStroke(); + } - if (current.element) { - this._setStrokeAttributes(current.element); + closeStroke() { + this.closePath(); + this.stroke(); + } - current.element.setAttributeNS(null, 'fill', 'none'); - this.endPath(); - } - } - }, { - key: "_setStrokeAttributes", - value: function _setStrokeAttributes(element) { - var lineWidthScale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; - var current = this.current; - var dashArray = current.dashArray; + closeFillStroke() { + this.closePath(); + this.fillStroke(); + } - if (lineWidthScale !== 1 && dashArray.length > 0) { - dashArray = dashArray.map(function (value) { - return lineWidthScale * value; - }); - } + closeEOFillStroke() { + this.closePath(); + this.eoFillStroke(); + } - element.setAttributeNS(null, 'stroke', current.strokeColor); - element.setAttributeNS(null, 'stroke-opacity', current.strokeAlpha); - element.setAttributeNS(null, 'stroke-miterlimit', pf(current.miterLimit)); - element.setAttributeNS(null, 'stroke-linecap', current.lineCap); - element.setAttributeNS(null, 'stroke-linejoin', current.lineJoin); - element.setAttributeNS(null, 'stroke-width', pf(lineWidthScale * current.lineWidth) + 'px'); - element.setAttributeNS(null, 'stroke-dasharray', dashArray.map(pf).join(' ')); - element.setAttributeNS(null, 'stroke-dashoffset', pf(lineWidthScale * current.dashPhase) + 'px'); - } - }, { - key: "eoFill", - value: function eoFill() { - if (this.current.element) { - this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); - } + paintSolidColorImageMask() { + const rect = this.svgFactory.createElement("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", this.current.fillColor); - this.fill(); - } - }, { - key: "fillStroke", - value: function fillStroke() { - this.stroke(); - this.fill(); - } - }, { - key: "eoFillStroke", - value: function eoFillStroke() { - if (this.current.element) { - this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); - } + this._ensureTransformGroup().appendChild(rect); + } - this.fillStroke(); - } - }, { - key: "closeStroke", - value: function closeStroke() { - this.closePath(); - this.stroke(); - } - }, { - key: "closeFillStroke", - value: function closeFillStroke() { - this.closePath(); - this.fillStroke(); - } - }, { - key: "closeEOFillStroke", - value: function closeEOFillStroke() { - this.closePath(); - this.eoFillStroke(); - } - }, { - key: "paintSolidColorImageMask", - value: function paintSolidColorImageMask() { - var rect = this.svgFactory.createElement('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', this.current.fillColor); + paintImageXObject(objId) { + const imgData = objId.startsWith("g_") ? this.commonObjs.get(objId) : this.objs.get(objId); - this._ensureTransformGroup().appendChild(rect); + if (!imgData) { + (0, _util.warn)(`Dependent image with object ID ${objId} is not ready yet`); + return; } - }, { - key: "paintJpegXObject", - value: function paintJpegXObject(objId, w, h) { - var imgObj = this.objs.get(objId); - var imgEl = this.svgFactory.createElement('svg:image'); - imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgObj.src); - imgEl.setAttributeNS(null, 'width', pf(w)); - imgEl.setAttributeNS(null, 'height', pf(h)); - imgEl.setAttributeNS(null, 'x', '0'); - imgEl.setAttributeNS(null, 'y', pf(-h)); - imgEl.setAttributeNS(null, 'transform', "scale(".concat(pf(1 / w), " ").concat(pf(-1 / h), ")")); + this.paintInlineImageXObject(imgData); + } + + paintInlineImageXObject(imgData, mask) { + const width = imgData.width; + const height = imgData.height; + const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask); + const cliprect = this.svgFactory.createElement("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"); + const imgEl = this.svgFactory.createElement("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); } - }, { - key: "paintImageXObject", - value: function paintImageXObject(objId) { - var imgData = this.objs.get(objId); + } - if (!imgData) { - (0, _util.warn)("Dependent image with object ID ".concat(objId, " is not ready yet")); - return; - } + paintImageMaskXObject(imgData) { + const current = this.current; + const width = imgData.width; + const height = imgData.height; + const fillColor = current.fillColor; + current.maskId = `mask${maskCount++}`; + const mask = this.svgFactory.createElement("svg:mask"); + mask.setAttributeNS(null, "id", current.maskId); + const rect = this.svgFactory.createElement("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.paintInlineImageXObject(imgData); + this._ensureTransformGroup().appendChild(rect); + + this.paintInlineImageXObject(imgData, mask); + } + + paintFormXObjectBegin(matrix, bbox) { + if (Array.isArray(matrix) && matrix.length === 6) { + this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]); } - }, { - key: "paintInlineImageXObject", - value: function paintInlineImageXObject(imgData, mask) { - var width = imgData.width; - var height = imgData.height; - var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask); - var cliprect = this.svgFactory.createElement('svg:rect'); - cliprect.setAttributeNS(null, 'x', '0'); - cliprect.setAttributeNS(null, 'y', '0'); - cliprect.setAttributeNS(null, 'width', pf(width)); - cliprect.setAttributeNS(null, 'height', pf(height)); + + if (bbox) { + const width = bbox[2] - bbox[0]; + const height = bbox[3] - bbox[1]; + const cliprect = this.svgFactory.createElement("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'); - var imgEl = this.svgFactory.createElement('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(".concat(pf(1 / width), " ").concat(pf(-1 / height), ")")); + this.clip("nonzero"); + this.endPath(); + } + } - if (mask) { - mask.appendChild(imgEl); + paintFormXObjectEnd() {} + + _initialize(viewport) { + const svg = this.svgFactory.create(viewport.width, viewport.height); + const definitions = this.svgFactory.createElement("svg:defs"); + svg.appendChild(definitions); + this.defs = definitions; + const rootGroup = this.svgFactory.createElement("svg:g"); + rootGroup.setAttributeNS(null, "transform", pm(viewport.transform)); + svg.appendChild(rootGroup); + this.svg = rootGroup; + return svg; + } + + _ensureClipGroup() { + if (!this.current.clipGroup) { + const clipGroup = this.svgFactory.createElement("svg:g"); + clipGroup.setAttributeNS(null, "clip-path", this.current.activeClipUrl); + this.svg.appendChild(clipGroup); + this.current.clipGroup = clipGroup; + } + + return this.current.clipGroup; + } + + _ensureTransformGroup() { + if (!this.tgrp) { + this.tgrp = this.svgFactory.createElement("svg:g"); + this.tgrp.setAttributeNS(null, "transform", pm(this.transformMatrix)); + + if (this.current.activeClipUrl) { + this._ensureClipGroup().appendChild(this.tgrp); } else { - this._ensureTransformGroup().appendChild(imgEl); + this.svg.appendChild(this.tgrp); } } - }, { - key: "paintImageMaskXObject", - value: function paintImageMaskXObject(imgData) { - var current = this.current; - var width = imgData.width; - var height = imgData.height; - var fillColor = current.fillColor; - current.maskId = "mask".concat(maskCount++); - var mask = this.svgFactory.createElement('svg:mask'); - mask.setAttributeNS(null, 'id', current.maskId); - var rect = this.svgFactory.createElement('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(#".concat(current.maskId, ")")); - this.defs.appendChild(mask); - this._ensureTransformGroup().appendChild(rect); + return this.tgrp; + } - this.paintInlineImageXObject(imgData, mask); - } - }, { - key: "paintFormXObjectBegin", - value: function paintFormXObjectBegin(matrix, bbox) { - if (Array.isArray(matrix) && matrix.length === 6) { - this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]); - } - - if (bbox) { - var width = bbox[2] - bbox[0]; - var height = bbox[3] - bbox[1]; - var cliprect = this.svgFactory.createElement('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(); - } - } - }, { - key: "paintFormXObjectEnd", - value: function paintFormXObjectEnd() {} - }, { - key: "_initialize", - value: function _initialize(viewport) { - var svg = this.svgFactory.create(viewport.width, viewport.height); - var definitions = this.svgFactory.createElement('svg:defs'); - svg.appendChild(definitions); - this.defs = definitions; - var rootGroup = this.svgFactory.createElement('svg:g'); - rootGroup.setAttributeNS(null, 'transform', pm(viewport.transform)); - svg.appendChild(rootGroup); - this.svg = rootGroup; - return svg; - } - }, { - key: "_ensureClipGroup", - value: function _ensureClipGroup() { - if (!this.current.clipGroup) { - var clipGroup = this.svgFactory.createElement('svg:g'); - clipGroup.setAttributeNS(null, 'clip-path', this.current.activeClipUrl); - this.svg.appendChild(clipGroup); - this.current.clipGroup = clipGroup; - } - - return this.current.clipGroup; - } - }, { - key: "_ensureTransformGroup", - value: function _ensureTransformGroup() { - if (!this.tgrp) { - this.tgrp = this.svgFactory.createElement('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; - }(); + }; } /***/ }), -/* 165 */ +/* 22 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -22585,135 +12560,96 @@ Object.defineProperty(exports, "__esModule", { }); exports.PDFNodeStream = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(1); +var _network_utils = __w_pdfjs_require__(23); -var _network_utils = __w_pdfjs_require__(166); +; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +const fs = require("fs"); -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +const http = require("http"); -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } +const https = require("https"); -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +const url = require("url"); -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var fs = require('fs'); - -var http = require('http'); - -var https = require('https'); - -var url = require('url'); - -var fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//; +const fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//; function parseUrl(sourceUrl) { - var parsedUrl = url.parse(sourceUrl); + const parsedUrl = url.parse(sourceUrl); - if (parsedUrl.protocol === 'file:' || parsedUrl.host) { + if (parsedUrl.protocol === "file:" || parsedUrl.host) { return parsedUrl; } if (/^[a-z]:[/\\]/i.test(sourceUrl)) { - return url.parse("file:///".concat(sourceUrl)); + return url.parse(`file:///${sourceUrl}`); } if (!parsedUrl.host) { - parsedUrl.protocol = 'file:'; + parsedUrl.protocol = "file:"; } return parsedUrl; } -var PDFNodeStream = -/*#__PURE__*/ -function () { - function PDFNodeStream(source) { - _classCallCheck(this, PDFNodeStream); - +class PDFNodeStream { + constructor(source) { this.source = source; this.url = parseUrl(source.url); - this.isHttp = this.url.protocol === 'http:' || this.url.protocol === 'https:'; - this.isFsUrl = this.url.protocol === 'file:'; + this.isHttp = this.url.protocol === "http:" || this.url.protocol === "https:"; + this.isFsUrl = this.url.protocol === "file:"; this.httpHeaders = this.isHttp && source.httpHeaders || {}; this._fullRequestReader = null; this._rangeRequestReaders = []; } - _createClass(PDFNodeStream, [{ - key: "getFullReader", - value: function getFullReader() { - (0, _util.assert)(!this._fullRequestReader); - this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this); - return this._fullRequestReader; + get _progressiveDataLength() { + return this._fullRequestReader ? this._fullRequestReader._loaded : 0; + } + + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFNodeStream.getFullReader can only be called once."); + this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this); + return this._fullRequestReader; + } + + getRangeReader(start, end) { + if (end <= this._progressiveDataLength) { + return null; } - }, { - key: "getRangeReader", - value: function getRangeReader(start, end) { - if (end <= this._progressiveDataLength) { - return null; - } - var rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end); + const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end); - this._rangeRequestReaders.push(rangeReader); + this._rangeRequestReaders.push(rangeReader); - return rangeReader; + return rangeReader; + } + + cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); } - }, { - key: "cancelAllRequests", - value: function cancelAllRequests(reason) { - if (this._fullRequestReader) { - this._fullRequestReader.cancel(reason); - } - var readers = this._rangeRequestReaders.slice(0); + const readers = this._rangeRequestReaders.slice(0); - readers.forEach(function (reader) { - reader.cancel(reason); - }); - } - }, { - key: "_progressiveDataLength", - get: function get() { - return this._fullRequestReader ? this._fullRequestReader._loaded : 0; - } - }]); + readers.forEach(function (reader) { + reader.cancel(reason); + }); + } - return PDFNodeStream; -}(); +} exports.PDFNodeStream = PDFNodeStream; -var BaseFullReader = -/*#__PURE__*/ -function () { - function BaseFullReader(stream) { - _classCallCheck(this, BaseFullReader); - +class BaseFullReader { + constructor(stream) { this._url = stream.url; this._done = false; this._storedError = null; this.onProgress = null; - var source = stream.source; + const source = stream.source; this._contentLength = source.length; this._loaded = 0; this._filename = null; @@ -22731,161 +12667,107 @@ function () { this._headersCapability = (0, _util.createPromiseCapability)(); } - _createClass(BaseFullReader, [{ - key: "read", - value: function () { - var _read = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee() { - var chunk, buffer; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return this._readCapability.promise; + get headersReady() { + return this._headersCapability.promise; + } - case 2: - if (!this._done) { - _context.next = 4; - break; - } + get filename() { + return this._filename; + } - return _context.abrupt("return", { - value: undefined, - done: true - }); + get contentLength() { + return this._contentLength; + } - case 4: - if (!this._storedError) { - _context.next = 6; - break; - } + get isRangeSupported() { + return this._isRangeSupported; + } - throw this._storedError; + get isStreamingSupported() { + return this._isStreamingSupported; + } - case 6: - chunk = this._readableStream.read(); + async read() { + await this._readCapability.promise; - if (!(chunk === null)) { - _context.next = 10; - break; - } - - this._readCapability = (0, _util.createPromiseCapability)(); - return _context.abrupt("return", this.read()); - - case 10: - this._loaded += chunk.length; - - if (this.onProgress) { - this.onProgress({ - loaded: this._loaded, - total: this._contentLength - }); - } - - buffer = new Uint8Array(chunk).buffer; - return _context.abrupt("return", { - value: buffer, - done: false - }); - - case 14: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function read() { - return _read.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - if (!this._readableStream) { - this._error(reason); - - return; - } - - this._readableStream.destroy(reason); + if (this._done) { + return { + value: undefined, + done: true + }; } - }, { - key: "_error", - value: function _error(reason) { - this._storedError = reason; + + if (this._storedError) { + throw this._storedError; + } + + const chunk = this._readableStream.read(); + + if (chunk === null) { + this._readCapability = (0, _util.createPromiseCapability)(); + return this.read(); + } + + this._loaded += chunk.length; + + if (this.onProgress) { + this.onProgress({ + loaded: this._loaded, + total: this._contentLength + }); + } + + const buffer = new Uint8Array(chunk).buffer; + return { + value: buffer, + done: false + }; + } + + cancel(reason) { + if (!this._readableStream) { + this._error(reason); + + return; + } + + this._readableStream.destroy(reason); + } + + _error(reason) { + this._storedError = reason; + + this._readCapability.resolve(); + } + + _setReadableStream(readableStream) { + this._readableStream = readableStream; + readableStream.on("readable", () => { + this._readCapability.resolve(); + }); + readableStream.on("end", () => { + readableStream.destroy(); + this._done = true; this._readCapability.resolve(); - } - }, { - key: "_setReadableStream", - value: function _setReadableStream(readableStream) { - var _this = this; + }); + readableStream.on("error", reason => { + this._error(reason); + }); - this._readableStream = readableStream; - readableStream.on('readable', function () { - _this._readCapability.resolve(); - }); - readableStream.on('end', function () { - readableStream.destroy(); - _this._done = true; - - _this._readCapability.resolve(); - }); - readableStream.on('error', function (reason) { - _this._error(reason); - }); - - if (!this._isStreamingSupported && this._isRangeSupported) { - this._error(new _util.AbortException('streaming is disabled')); - } - - if (this._storedError) { - this._readableStream.destroy(this._storedError); - } + if (!this._isStreamingSupported && this._isRangeSupported) { + this._error(new _util.AbortException("streaming is disabled")); } - }, { - key: "headersReady", - get: function get() { - return this._headersCapability.promise; - } - }, { - key: "filename", - get: function get() { - return this._filename; - } - }, { - key: "contentLength", - get: function get() { - return this._contentLength; - } - }, { - key: "isRangeSupported", - get: function get() { - return this._isRangeSupported; - } - }, { - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }]); - return BaseFullReader; -}(); + if (this._storedError) { + this._readableStream.destroy(this._storedError); + } + } -var BaseRangeReader = -/*#__PURE__*/ -function () { - function BaseRangeReader(stream) { - _classCallCheck(this, BaseRangeReader); +} +class BaseRangeReader { + constructor(stream) { this._url = stream.url; this._done = false; this._storedError = null; @@ -22893,339 +12775,250 @@ function () { this._loaded = 0; this._readableStream = null; this._readCapability = (0, _util.createPromiseCapability)(); - var source = stream.source; + const source = stream.source; this._isStreamingSupported = !source.disableStream; } - _createClass(BaseRangeReader, [{ - key: "read", - value: function () { - var _read2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2() { - var chunk, buffer; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _context2.next = 2; - return this._readCapability.promise; + get isStreamingSupported() { + return this._isStreamingSupported; + } - case 2: - if (!this._done) { - _context2.next = 4; - break; - } + async read() { + await this._readCapability.promise; - return _context2.abrupt("return", { - value: undefined, - done: true - }); - - case 4: - if (!this._storedError) { - _context2.next = 6; - break; - } - - throw this._storedError; - - case 6: - chunk = this._readableStream.read(); - - if (!(chunk === null)) { - _context2.next = 10; - break; - } - - this._readCapability = (0, _util.createPromiseCapability)(); - return _context2.abrupt("return", this.read()); - - case 10: - this._loaded += chunk.length; - - if (this.onProgress) { - this.onProgress({ - loaded: this._loaded - }); - } - - buffer = new Uint8Array(chunk).buffer; - return _context2.abrupt("return", { - value: buffer, - done: false - }); - - case 14: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function read() { - return _read2.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - if (!this._readableStream) { - this._error(reason); - - return; - } - - this._readableStream.destroy(reason); + if (this._done) { + return { + value: undefined, + done: true + }; } - }, { - key: "_error", - value: function _error(reason) { - this._storedError = reason; + + if (this._storedError) { + throw this._storedError; + } + + const chunk = this._readableStream.read(); + + if (chunk === null) { + this._readCapability = (0, _util.createPromiseCapability)(); + return this.read(); + } + + this._loaded += chunk.length; + + if (this.onProgress) { + this.onProgress({ + loaded: this._loaded + }); + } + + const buffer = new Uint8Array(chunk).buffer; + return { + value: buffer, + done: false + }; + } + + cancel(reason) { + if (!this._readableStream) { + this._error(reason); + + return; + } + + this._readableStream.destroy(reason); + } + + _error(reason) { + this._storedError = reason; + + this._readCapability.resolve(); + } + + _setReadableStream(readableStream) { + this._readableStream = readableStream; + readableStream.on("readable", () => { + this._readCapability.resolve(); + }); + readableStream.on("end", () => { + readableStream.destroy(); + this._done = true; this._readCapability.resolve(); + }); + readableStream.on("error", reason => { + this._error(reason); + }); + + if (this._storedError) { + this._readableStream.destroy(this._storedError); } - }, { - key: "_setReadableStream", - value: function _setReadableStream(readableStream) { - var _this2 = this; + } - this._readableStream = readableStream; - readableStream.on('readable', function () { - _this2._readCapability.resolve(); - }); - readableStream.on('end', function () { - readableStream.destroy(); - _this2._done = true; +} - _this2._readCapability.resolve(); - }); - readableStream.on('error', function (reason) { - _this2._error(reason); - }); - - if (this._storedError) { - this._readableStream.destroy(this._storedError); - } - } - }, { - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }]); - - return BaseRangeReader; -}(); - -function createRequestOptions(url, headers) { +function createRequestOptions(parsedUrl, headers) { return { - protocol: url.protocol, - auth: url.auth, - host: url.hostname, - port: url.port, - path: url.path, - method: 'GET', - headers: headers + protocol: parsedUrl.protocol, + auth: parsedUrl.auth, + host: parsedUrl.hostname, + port: parsedUrl.port, + path: parsedUrl.path, + method: "GET", + headers }; } -var PDFNodeStreamFullReader = -/*#__PURE__*/ -function (_BaseFullReader) { - _inherits(PDFNodeStreamFullReader, _BaseFullReader); +class PDFNodeStreamFullReader extends BaseFullReader { + constructor(stream) { + super(stream); - function PDFNodeStreamFullReader(stream) { - var _this3; - - _classCallCheck(this, PDFNodeStreamFullReader); - - _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFullReader).call(this, stream)); - - var handleResponse = function handleResponse(response) { + const handleResponse = response => { if (response.statusCode === 404) { - var error = new _util.MissingPDFException("Missing PDF \"".concat(_this3._url, "\".")); - _this3._storedError = error; + const error = new _util.MissingPDFException(`Missing PDF "${this._url}".`); + this._storedError = error; - _this3._headersCapability.reject(error); + this._headersCapability.reject(error); return; } - _this3._headersCapability.resolve(); + this._headersCapability.resolve(); - _this3._setReadableStream(response); + this._setReadableStream(response); - var getResponseHeader = function getResponseHeader(name) { - return _this3._readableStream.headers[name.toLowerCase()]; + const getResponseHeader = name => { + return this._readableStream.headers[name.toLowerCase()]; }; - var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ - getResponseHeader: getResponseHeader, + const { + allowRangeRequests, + suggestedLength + } = (0, _network_utils.validateRangeRequestCapabilities)({ + getResponseHeader, isHttp: stream.isHttp, - rangeChunkSize: _this3._rangeChunkSize, - disableRange: _this3._disableRange - }), - allowRangeRequests = _validateRangeRequest.allowRangeRequests, - suggestedLength = _validateRangeRequest.suggestedLength; - - _this3._isRangeSupported = allowRangeRequests; - _this3._contentLength = suggestedLength || _this3._contentLength; - _this3._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); + rangeChunkSize: this._rangeChunkSize, + disableRange: this._disableRange + }); + this._isRangeSupported = allowRangeRequests; + this._contentLength = suggestedLength || this._contentLength; + this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); }; - _this3._request = null; + this._request = null; - if (_this3._url.protocol === 'http:') { - _this3._request = http.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse); + if (this._url.protocol === "http:") { + this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse); } else { - _this3._request = https.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse); + this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse); } - _this3._request.on('error', function (reason) { - _this3._storedError = reason; + this._request.on("error", reason => { + this._storedError = reason; - _this3._headersCapability.reject(reason); + this._headersCapability.reject(reason); }); - _this3._request.end(); - - return _this3; + this._request.end(); } - return PDFNodeStreamFullReader; -}(BaseFullReader); +} -var PDFNodeStreamRangeReader = -/*#__PURE__*/ -function (_BaseRangeReader) { - _inherits(PDFNodeStreamRangeReader, _BaseRangeReader); +class PDFNodeStreamRangeReader extends BaseRangeReader { + constructor(stream, start, end) { + super(stream); + this._httpHeaders = {}; - function PDFNodeStreamRangeReader(stream, start, end) { - var _this4; + for (const property in stream.httpHeaders) { + const value = stream.httpHeaders[property]; - _classCallCheck(this, PDFNodeStreamRangeReader); - - _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamRangeReader).call(this, stream)); - _this4._httpHeaders = {}; - - for (var property in stream.httpHeaders) { - var value = stream.httpHeaders[property]; - - if (typeof value === 'undefined') { + if (typeof value === "undefined") { continue; } - _this4._httpHeaders[property] = value; + this._httpHeaders[property] = value; } - _this4._httpHeaders['Range'] = "bytes=".concat(start, "-").concat(end - 1); + this._httpHeaders.Range = `bytes=${start}-${end - 1}`; - var handleResponse = function handleResponse(response) { + const handleResponse = response => { if (response.statusCode === 404) { - var error = new _util.MissingPDFException("Missing PDF \"".concat(_this4._url, "\".")); - _this4._storedError = error; + const error = new _util.MissingPDFException(`Missing PDF "${this._url}".`); + this._storedError = error; return; } - _this4._setReadableStream(response); + this._setReadableStream(response); }; - _this4._request = null; + this._request = null; - if (_this4._url.protocol === 'http:') { - _this4._request = http.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse); + if (this._url.protocol === "http:") { + this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse); } else { - _this4._request = https.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse); + this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse); } - _this4._request.on('error', function (reason) { - _this4._storedError = reason; + this._request.on("error", reason => { + this._storedError = reason; }); - _this4._request.end(); - - return _this4; + this._request.end(); } - return PDFNodeStreamRangeReader; -}(BaseRangeReader); +} -var PDFNodeStreamFsFullReader = -/*#__PURE__*/ -function (_BaseFullReader2) { - _inherits(PDFNodeStreamFsFullReader, _BaseFullReader2); +class PDFNodeStreamFsFullReader extends BaseFullReader { + constructor(stream) { + super(stream); + let path = decodeURIComponent(this._url.path); - function PDFNodeStreamFsFullReader(stream) { - var _this5; - - _classCallCheck(this, PDFNodeStreamFsFullReader); - - _this5 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsFullReader).call(this, stream)); - var path = decodeURIComponent(_this5._url.path); - - if (fileUriRegex.test(_this5._url.href)) { - path = path.replace(/^\//, ''); + if (fileUriRegex.test(this._url.href)) { + path = path.replace(/^\//, ""); } - fs.lstat(path, function (error, stat) { + fs.lstat(path, (error, stat) => { if (error) { - if (error.code === 'ENOENT') { - error = new _util.MissingPDFException("Missing PDF \"".concat(path, "\".")); + if (error.code === "ENOENT") { + error = new _util.MissingPDFException(`Missing PDF "${path}".`); } - _this5._storedError = error; + this._storedError = error; - _this5._headersCapability.reject(error); + this._headersCapability.reject(error); return; } - _this5._contentLength = stat.size; + this._contentLength = stat.size; - _this5._setReadableStream(fs.createReadStream(path)); + this._setReadableStream(fs.createReadStream(path)); - _this5._headersCapability.resolve(); + this._headersCapability.resolve(); }); - return _this5; } - return PDFNodeStreamFsFullReader; -}(BaseFullReader); +} -var PDFNodeStreamFsRangeReader = -/*#__PURE__*/ -function (_BaseRangeReader2) { - _inherits(PDFNodeStreamFsRangeReader, _BaseRangeReader2); +class PDFNodeStreamFsRangeReader extends BaseRangeReader { + constructor(stream, start, end) { + super(stream); + let path = decodeURIComponent(this._url.path); - function PDFNodeStreamFsRangeReader(stream, start, end) { - var _this6; - - _classCallCheck(this, PDFNodeStreamFsRangeReader); - - _this6 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsRangeReader).call(this, stream)); - var path = decodeURIComponent(_this6._url.path); - - if (fileUriRegex.test(_this6._url.href)) { - path = path.replace(/^\//, ''); + if (fileUriRegex.test(this._url.href)) { + path = path.replace(/^\//, ""); } - _this6._setReadableStream(fs.createReadStream(path, { - start: start, + this._setReadableStream(fs.createReadStream(path, { + start, end: end - 1 })); - - return _this6; } - return PDFNodeStreamFsRangeReader; -}(BaseRangeReader); +} /***/ }), -/* 166 */ +/* 23 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -23239,21 +13032,22 @@ exports.extractFilenameFromHeader = extractFilenameFromHeader; exports.validateRangeRequestCapabilities = validateRangeRequestCapabilities; exports.validateResponseStatus = validateResponseStatus; -var _util = __w_pdfjs_require__(1); +var _util = __w_pdfjs_require__(2); -var _content_disposition = __w_pdfjs_require__(167); +var _content_disposition = __w_pdfjs_require__(24); -function validateRangeRequestCapabilities(_ref) { - var getResponseHeader = _ref.getResponseHeader, - isHttp = _ref.isHttp, - rangeChunkSize = _ref.rangeChunkSize, - disableRange = _ref.disableRange; - (0, _util.assert)(rangeChunkSize > 0, 'Range chunk size must be larger than zero'); - var returnValues = { +function validateRangeRequestCapabilities({ + getResponseHeader, + isHttp, + rangeChunkSize, + disableRange +}) { + (0, _util.assert)(rangeChunkSize > 0, "Range chunk size must be larger than zero"); + const returnValues = { allowRangeRequests: false, suggestedLength: undefined }; - var length = parseInt(getResponseHeader('Content-Length'), 10); + const length = parseInt(getResponseHeader("Content-Length"), 10); if (!Number.isInteger(length)) { return returnValues; @@ -23269,13 +13063,13 @@ function validateRangeRequestCapabilities(_ref) { return returnValues; } - if (getResponseHeader('Accept-Ranges') !== 'bytes') { + if (getResponseHeader("Accept-Ranges") !== "bytes") { return returnValues; } - var contentEncoding = getResponseHeader('Content-Encoding') || 'identity'; + const contentEncoding = getResponseHeader("Content-Encoding") || "identity"; - if (contentEncoding !== 'identity') { + if (contentEncoding !== "identity") { return returnValues; } @@ -23284,10 +13078,16 @@ function validateRangeRequestCapabilities(_ref) { } function extractFilenameFromHeader(getResponseHeader) { - var contentDisposition = getResponseHeader('Content-Disposition'); + const contentDisposition = getResponseHeader("Content-Disposition"); if (contentDisposition) { - var filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition); + let filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition); + + if (filename.includes("%")) { + try { + filename = decodeURIComponent(filename); + } catch (ex) {} + } if (/\.pdf$/i.test(filename)) { return filename; @@ -23298,11 +13098,11 @@ function extractFilenameFromHeader(getResponseHeader) { } function createResponseStatusError(status, url) { - if (status === 404 || status === 0 && /^file:/.test(url)) { + if (status === 404 || status === 0 && url.startsWith("file:")) { return new _util.MissingPDFException('Missing PDF "' + url + '".'); } - return new _util.UnexpectedResponseException('Unexpected server response (' + status + ') while retrieving PDF "' + url + '".', status); + return new _util.UnexpectedResponseException("Unexpected server response (" + status + ') while retrieving PDF "' + url + '".', status); } function validateResponseStatus(status) { @@ -23310,7 +13110,7 @@ function validateResponseStatus(status) { } /***/ }), -/* 167 */ +/* 24 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -23321,21 +13121,13 @@ Object.defineProperty(exports, "__esModule", { }); exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader; -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - function getFilenameFromContentDispositionHeader(contentDisposition) { - var needsEncodingFixup = true; - var tmp = toParamRegExp('filename\\*', 'i').exec(contentDisposition); + let needsEncodingFixup = true; + let tmp = toParamRegExp("filename\\*", "i").exec(contentDisposition); if (tmp) { tmp = tmp[1]; - var filename = rfc2616unquote(tmp); + let filename = rfc2616unquote(tmp); filename = unescape(filename); filename = rfc5987decode(filename); filename = rfc2047decode(filename); @@ -23345,24 +13137,21 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { tmp = rfc2231getparam(contentDisposition); if (tmp) { - var _filename = rfc2047decode(tmp); - - return fixupEncoding(_filename); + const filename = rfc2047decode(tmp); + return fixupEncoding(filename); } - tmp = toParamRegExp('filename', 'i').exec(contentDisposition); + tmp = toParamRegExp("filename", "i").exec(contentDisposition); if (tmp) { tmp = tmp[1]; - - var _filename2 = rfc2616unquote(tmp); - - _filename2 = rfc2047decode(_filename2); - return fixupEncoding(_filename2); + let filename = rfc2616unquote(tmp); + filename = rfc2047decode(filename); + return fixupEncoding(filename); } function toParamRegExp(attributePattern, flags) { - return new RegExp('(?:^|;)\\s*' + attributePattern + '\\s*=\\s*' + '(' + '[^";\\s][^;\\s]*' + '|' + '"(?:[^"\\\\]|\\\\"?)+"?' + ')', flags); + return new RegExp("(?:^|;)\\s*" + attributePattern + "\\s*=\\s*" + "(" + '[^";\\s][^;\\s]*' + "|" + '"(?:[^"\\\\]|\\\\"?)+"?' + ")", flags); } function textdecode(encoding, value) { @@ -23372,11 +13161,11 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { } try { - var decoder = new TextDecoder(encoding, { + const decoder = new TextDecoder(encoding, { fatal: true }); - var bytes = Array.from(value, function (ch) { - return ch.charCodeAt(0) & 0xFF; + const bytes = Array.from(value, function (ch) { + return ch.charCodeAt(0) & 0xff; }); value = decoder.decode(new Uint8Array(bytes)); needsEncodingFixup = false; @@ -23395,28 +13184,23 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { function fixupEncoding(value) { if (needsEncodingFixup && /[\x80-\xff]/.test(value)) { - value = textdecode('utf-8', value); + value = textdecode("utf-8", value); if (needsEncodingFixup) { - value = textdecode('iso-8859-1', value); + value = textdecode("iso-8859-1", value); } } return value; } - function rfc2231getparam(contentDisposition) { - var matches = [], - match; - var iter = toParamRegExp('filename\\*((?!0\\d)\\d+)(\\*?)', 'ig'); - - while ((match = iter.exec(contentDisposition)) !== null) { - var _match = match, - _match2 = _slicedToArray(_match, 4), - n = _match2[1], - quot = _match2[2], - part = _match2[3]; + function rfc2231getparam(contentDispositionStr) { + const matches = []; + let match; + const iter = toParamRegExp("filename\\*((?!0\\d)\\d+)(\\*?)", "ig"); + while ((match = iter.exec(contentDispositionStr)) !== null) { + let [, n, quot, part] = match; n = parseInt(n, 10); if (n in matches) { @@ -23430,17 +13214,14 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { matches[n] = [quot, part]; } - var parts = []; + const parts = []; - for (var n = 0; n < matches.length; ++n) { + for (let n = 0; n < matches.length; ++n) { if (!(n in matches)) { break; } - var _matches$n = _slicedToArray(matches[n], 2), - quot = _matches$n[0], - part = _matches$n[1]; - + let [quot, part] = matches[n]; part = rfc2616unquote(part); if (quot) { @@ -23454,22 +13235,22 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { parts.push(part); } - return parts.join(''); + return parts.join(""); } function rfc2616unquote(value) { if (value.startsWith('"')) { - var parts = value.slice(1).split('\\"'); + const parts = value.slice(1).split('\\"'); - for (var i = 0; i < parts.length; ++i) { - var quotindex = parts[i].indexOf('"'); + for (let i = 0; i < parts.length; ++i) { + const quotindex = parts[i].indexOf('"'); if (quotindex !== -1) { parts[i] = parts[i].slice(0, quotindex); parts.length = i + 1; } - parts[i] = parts[i].replace(/\\(.)/g, '$1'); + parts[i] = parts[i].replace(/\\(.)/g, "$1"); } value = parts.join('"'); @@ -23479,27 +13260,27 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { } function rfc5987decode(extvalue) { - var encodingend = extvalue.indexOf('\''); + const encodingend = extvalue.indexOf("'"); if (encodingend === -1) { return extvalue; } - var encoding = extvalue.slice(0, encodingend); - var langvalue = extvalue.slice(encodingend + 1); - var value = langvalue.replace(/^[^']*'/, ''); + const encoding = extvalue.slice(0, encodingend); + const langvalue = extvalue.slice(encodingend + 1); + const value = langvalue.replace(/^[^']*'/, ""); return textdecode(encoding, value); } function rfc2047decode(value) { - if (!value.startsWith('=?') || /[\x00-\x19\x80-\xff]/.test(value)) { + if (!value.startsWith("=?") || /[\x00-\x19\x80-\xff]/.test(value)) { return value; } - return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (_, charset, encoding, text) { - if (encoding === 'q' || encoding === 'Q') { - text = text.replace(/_/g, ' '); - text = text.replace(/=([0-9a-fA-F]{2})/g, function (_, hex) { + return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (matches, charset, encoding, text) { + if (encoding === "q" || encoding === "Q") { + text = text.replace(/_/g, " "); + text = text.replace(/=([0-9a-fA-F]{2})/g, function (match, hex) { return String.fromCharCode(parseInt(hex, 16)); }); return textdecode(charset, text); @@ -23513,11 +13294,11 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { }); } - return ''; + return ""; } /***/ }), -/* 168 */ +/* 25 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -23528,45 +13309,27 @@ Object.defineProperty(exports, "__esModule", { }); exports.PDFNetworkStream = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(1); - -var _network_utils = __w_pdfjs_require__(166); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _network_utils = __w_pdfjs_require__(23); ; -var OK_RESPONSE = 200; -var PARTIAL_CONTENT_RESPONSE = 206; +const OK_RESPONSE = 200; +const PARTIAL_CONTENT_RESPONSE = 206; function getArrayBuffer(xhr) { - var data = xhr.response; + const data = xhr.response; - if (typeof data !== 'string') { + if (typeof data !== "string") { return data; } - var array = (0, _util.stringToBytes)(data); + const array = (0, _util.stringToBytes)(data); return array.buffer; } -var NetworkManager = -/*#__PURE__*/ -function () { - function NetworkManager(url, args) { - _classCallCheck(this, NetworkManager); - +class NetworkManager { + constructor(url, args) { this.url = url; args = args || {}; this.isHttp = /^https?:/i.test(url); @@ -23581,190 +13344,159 @@ function () { this.pendingRequests = Object.create(null); } - _createClass(NetworkManager, [{ - key: "requestRange", - value: function requestRange(begin, end, listeners) { - var args = { - begin: begin, - end: end + requestRange(begin, end, listeners) { + const args = { + begin, + end + }; + + for (const prop in listeners) { + args[prop] = listeners[prop]; + } + + return this.request(args); + } + + requestFull(listeners) { + return this.request(listeners); + } + + request(args) { + const xhr = this.getXhr(); + const xhrId = this.currXhrId++; + const pendingRequest = this.pendingRequests[xhrId] = { + xhr + }; + xhr.open("GET", this.url); + xhr.withCredentials = this.withCredentials; + + for (const property in this.httpHeaders) { + const value = this.httpHeaders[property]; + + if (typeof value === "undefined") { + continue; + } + + xhr.setRequestHeader(property, value); + } + + if (this.isHttp && "begin" in args && "end" in args) { + xhr.setRequestHeader("Range", `bytes=${args.begin}-${args.end - 1}`); + pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE; + } else { + pendingRequest.expectedStatus = OK_RESPONSE; + } + + xhr.responseType = "arraybuffer"; + + if (args.onError) { + xhr.onerror = function (evt) { + args.onError(xhr.status); }; - - for (var prop in listeners) { - args[prop] = listeners[prop]; - } - - return this.request(args); } - }, { - key: "requestFull", - value: function requestFull(listeners) { - return this.request(listeners); + + 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(xhrId, evt) { + const pendingRequest = this.pendingRequests[xhrId]; + + if (!pendingRequest) { + return; } - }, { - key: "request", - value: function 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) { - xhr.setRequestHeader('Range', "bytes=".concat(args.begin, "-").concat(args.end - 1)); - pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE; - } else { - pendingRequest.expectedStatus = OK_RESPONSE; - } - - 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; + if (pendingRequest.onProgress) { + pendingRequest.onProgress(evt); } - }, { - key: "onProgress", - value: function onProgress(xhrId, evt) { - var pendingRequest = this.pendingRequests[xhrId]; + } - if (!pendingRequest) { - return; - } + onStateChange(xhrId, evt) { + const pendingRequest = this.pendingRequests[xhrId]; - if (pendingRequest.onProgress) { - pendingRequest.onProgress(evt); - } + if (!pendingRequest) { + return; } - }, { - key: "onStateChange", - value: function onStateChange(xhrId, evt) { - var pendingRequest = this.pendingRequests[xhrId]; - if (!pendingRequest) { - return; - } + const xhr = pendingRequest.xhr; - var xhr = pendingRequest.xhr; + if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) { + pendingRequest.onHeadersReceived(); + delete pendingRequest.onHeadersReceived; + } - if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) { - pendingRequest.onHeadersReceived(); - delete pendingRequest.onHeadersReceived; - } + if (xhr.readyState !== 4) { + return; + } - if (xhr.readyState !== 4) { - return; - } + if (!(xhrId in this.pendingRequests)) { + return; + } - if (!(xhrId in this.pendingRequests)) { - return; - } + delete this.pendingRequests[xhrId]; - 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; - } - - var chunk = getArrayBuffer(xhr); - - if (xhrStatus === PARTIAL_CONTENT_RESPONSE) { - var rangeHeader = xhr.getResponseHeader('Content-Range'); - var matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader); - pendingRequest.onDone({ - begin: parseInt(matches[1], 10), - chunk: chunk - }); - } else if (chunk) { - pendingRequest.onDone({ - begin: 0, - chunk: chunk - }); - } else if (pendingRequest.onError) { + if (xhr.status === 0 && this.isHttp) { + if (pendingRequest.onError) { pendingRequest.onError(xhr.status); } + + return; } - }, { - key: "hasPendingRequests", - value: function hasPendingRequests() { - for (var xhrId in this.pendingRequests) { - return true; + + const xhrStatus = xhr.status || OK_RESPONSE; + const 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 false; + return; } - }, { - key: "getRequestXhr", - value: function getRequestXhr(xhrId) { - return this.pendingRequests[xhrId].xhr; - } - }, { - key: "isPendingRequest", - value: function isPendingRequest(xhrId) { - return xhrId in this.pendingRequests; - } - }, { - key: "abortAllRequests", - value: function abortAllRequests() { - for (var xhrId in this.pendingRequests) { - this.abortRequest(xhrId | 0); - } - } - }, { - key: "abortRequest", - value: function abortRequest(xhrId) { - var xhr = this.pendingRequests[xhrId].xhr; - delete this.pendingRequests[xhrId]; - xhr.abort(); - } - }]); - return NetworkManager; -}(); + const chunk = getArrayBuffer(xhr); -var PDFNetworkStream = -/*#__PURE__*/ -function () { - function PDFNetworkStream(source) { - _classCallCheck(this, PDFNetworkStream); + if (xhrStatus === PARTIAL_CONTENT_RESPONSE) { + const rangeHeader = xhr.getResponseHeader("Content-Range"); + const matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader); + pendingRequest.onDone({ + begin: parseInt(matches[1], 10), + chunk + }); + } else if (chunk) { + pendingRequest.onDone({ + begin: 0, + chunk + }); + } else if (pendingRequest.onError) { + pendingRequest.onError(xhr.status); + } + } + getRequestXhr(xhrId) { + return this.pendingRequests[xhrId].xhr; + } + + isPendingRequest(xhrId) { + return xhrId in this.pendingRequests; + } + + abortRequest(xhrId) { + const xhr = this.pendingRequests[xhrId].xhr; + delete this.pendingRequests[xhrId]; + xhr.abort(); + } + +} + +class PDFNetworkStream { + constructor(source) { this._source = source; this._manager = new NetworkManager(source.url, { httpHeaders: source.httpHeaders, @@ -23775,60 +13507,49 @@ function () { this._rangeRequestReaders = []; } - _createClass(PDFNetworkStream, [{ - key: "_onRangeRequestReaderClosed", - value: function _onRangeRequestReaderClosed(reader) { - var i = this._rangeRequestReaders.indexOf(reader); + _onRangeRequestReaderClosed(reader) { + const i = this._rangeRequestReaders.indexOf(reader); - if (i >= 0) { - this._rangeRequestReaders.splice(i, 1); - } + if (i >= 0) { + this._rangeRequestReaders.splice(i, 1); } - }, { - key: "getFullReader", - value: function getFullReader() { - (0, _util.assert)(!this._fullRequestReader); - this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source); - return this._fullRequestReader; + } + + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFNetworkStream.getFullReader can only be called once."); + this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source); + return this._fullRequestReader; + } + + getRangeReader(begin, end) { + const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end); + reader.onClosed = this._onRangeRequestReaderClosed.bind(this); + + this._rangeRequestReaders.push(reader); + + return reader; + } + + cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); } - }, { - key: "getRangeReader", - value: function getRangeReader(begin, end) { - var reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end); - reader.onClosed = this._onRangeRequestReaderClosed.bind(this); - this._rangeRequestReaders.push(reader); + const readers = this._rangeRequestReaders.slice(0); - return reader; - } - }, { - key: "cancelAllRequests", - value: function cancelAllRequests(reason) { - if (this._fullRequestReader) { - this._fullRequestReader.cancel(reason); - } + readers.forEach(function (reader) { + reader.cancel(reason); + }); + } - var readers = this._rangeRequestReaders.slice(0); - - readers.forEach(function (reader) { - reader.cancel(reason); - }); - } - }]); - - return PDFNetworkStream; -}(); +} exports.PDFNetworkStream = PDFNetworkStream; -var PDFNetworkStreamFullRequestReader = -/*#__PURE__*/ -function () { - function PDFNetworkStreamFullRequestReader(manager, source) { - _classCallCheck(this, PDFNetworkStreamFullRequestReader); - +class PDFNetworkStreamFullRequestReader { + constructor(manager, source) { this._manager = manager; - var args = { + const args = { onHeadersReceived: this._onHeadersReceived.bind(this), onDone: this._onDone.bind(this), onError: this._onError.bind(this), @@ -23855,218 +13576,168 @@ function () { this.onProgress = null; } - _createClass(PDFNetworkStreamFullRequestReader, [{ - key: "_onHeadersReceived", - value: function _onHeadersReceived() { - var fullRequestXhrId = this._fullRequestId; + _onHeadersReceived() { + const fullRequestXhrId = this._fullRequestId; - var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId); + const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId); - var getResponseHeader = function getResponseHeader(name) { - return fullRequestXhr.getResponseHeader(name); + const getResponseHeader = name => { + return fullRequestXhr.getResponseHeader(name); + }; + + const { + allowRangeRequests, + suggestedLength + } = (0, _network_utils.validateRangeRequestCapabilities)({ + getResponseHeader, + isHttp: this._manager.isHttp, + rangeChunkSize: this._rangeChunkSize, + disableRange: this._disableRange + }); + + if (allowRangeRequests) { + this._isRangeSupported = true; + } + + this._contentLength = suggestedLength || this._contentLength; + this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); + + if (this._isRangeSupported) { + this._manager.abortRequest(fullRequestXhrId); + } + + this._headersReceivedCapability.resolve(); + } + + _onDone(args) { + if (args) { + if (this._requests.length > 0) { + const requestCapability = this._requests.shift(); + + requestCapability.resolve({ + value: args.chunk, + done: false + }); + } else { + this._cachedChunks.push(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(status) { + const url = this._url; + const exception = (0, _network_utils.createResponseStatusError)(status, url); + this._storedError = exception; + + this._headersReceivedCapability.reject(exception); + + this._requests.forEach(function (requestCapability) { + requestCapability.reject(exception); + }); + + this._requests = []; + this._cachedChunks = []; + } + + _onProgress(data) { + if (this.onProgress) { + this.onProgress({ + loaded: data.loaded, + total: data.lengthComputable ? data.total : this._contentLength + }); + } + } + + get filename() { + return this._filename; + } + + get isRangeSupported() { + return this._isRangeSupported; + } + + get isStreamingSupported() { + return this._isStreamingSupported; + } + + get contentLength() { + return this._contentLength; + } + + get headersReady() { + return this._headersReceivedCapability.promise; + } + + async read() { + if (this._storedError) { + throw this._storedError; + } + + if (this._cachedChunks.length > 0) { + const chunk = this._cachedChunks.shift(); + + return { + value: chunk, + done: false }; - - var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ - getResponseHeader: getResponseHeader, - isHttp: this._manager.isHttp, - rangeChunkSize: this._rangeChunkSize, - disableRange: this._disableRange - }), - allowRangeRequests = _validateRangeRequest.allowRangeRequests, - suggestedLength = _validateRangeRequest.suggestedLength; - - if (allowRangeRequests) { - this._isRangeSupported = true; - } - - this._contentLength = suggestedLength || this._contentLength; - this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); - - if (this._isRangeSupported) { - this._manager.abortRequest(fullRequestXhrId); - } - - this._headersReceivedCapability.resolve(); } - }, { - key: "_onDone", - value: function _onDone(args) { - if (args) { - if (this._requests.length > 0) { - var requestCapability = this._requests.shift(); - requestCapability.resolve({ - value: args.chunk, - done: false - }); - } else { - this._cachedChunks.push(args.chunk); - } - } + if (this._done) { + return { + value: undefined, + done: true + }; + } - this._done = true; + const requestCapability = (0, _util.createPromiseCapability)(); - if (this._cachedChunks.length > 0) { - return; - } + this._requests.push(requestCapability); - this._requests.forEach(function (requestCapability) { - requestCapability.resolve({ - value: undefined, - done: true - }); + return requestCapability.promise; + } + + cancel(reason) { + this._done = true; + + this._headersReceivedCapability.reject(reason); + + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true }); + }); - this._requests = []; + this._requests = []; + + if (this._manager.isPendingRequest(this._fullRequestId)) { + this._manager.abortRequest(this._fullRequestId); } - }, { - key: "_onError", - value: function _onError(status) { - var url = this._url; - var exception = (0, _network_utils.createResponseStatusError)(status, url); - this._storedError = exception; - this._headersReceivedCapability.reject(exception); + this._fullRequestReader = null; + } - this._requests.forEach(function (requestCapability) { - requestCapability.reject(exception); - }); - - this._requests = []; - this._cachedChunks = []; - } - }, { - key: "_onProgress", - value: function _onProgress(data) { - if (this.onProgress) { - this.onProgress({ - loaded: data.loaded, - total: data.lengthComputable ? data.total : this._contentLength - }); - } - } - }, { - key: "read", - value: function () { - var _read = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee() { - var chunk, requestCapability; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!this._storedError) { - _context.next = 2; - break; - } - - throw this._storedError; - - case 2: - if (!(this._cachedChunks.length > 0)) { - _context.next = 5; - break; - } - - chunk = this._cachedChunks.shift(); - return _context.abrupt("return", { - value: chunk, - done: false - }); - - case 5: - if (!this._done) { - _context.next = 7; - break; - } - - return _context.abrupt("return", { - value: undefined, - done: true - }); - - case 7: - requestCapability = (0, _util.createPromiseCapability)(); - - this._requests.push(requestCapability); - - return _context.abrupt("return", requestCapability.promise); - - case 10: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function read() { - return _read.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function 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; - } - }, { - key: "filename", - get: function get() { - return this._filename; - } - }, { - key: "isRangeSupported", - get: function get() { - return this._isRangeSupported; - } - }, { - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }, { - key: "contentLength", - get: function get() { - return this._contentLength; - } - }, { - key: "headersReady", - get: function get() { - return this._headersReceivedCapability.promise; - } - }]); - - return PDFNetworkStreamFullRequestReader; -}(); - -var PDFNetworkStreamRangeRequestReader = -/*#__PURE__*/ -function () { - function PDFNetworkStreamRangeRequestReader(manager, begin, end) { - _classCallCheck(this, PDFNetworkStreamRangeRequestReader); +} +class PDFNetworkStreamRangeRequestReader { + constructor(manager, begin, end) { this._manager = manager; - var args = { + const args = { onDone: this._onDone.bind(this), onProgress: this._onProgress.bind(this) }; @@ -24078,138 +13749,99 @@ function () { this.onClosed = null; } - _createClass(PDFNetworkStreamRangeRequestReader, [{ - key: "_close", - value: function _close() { - if (this.onClosed) { - this.onClosed(this); - } + _close() { + if (this.onClosed) { + this.onClosed(this); } - }, { - key: "_onDone", - value: function _onDone(data) { - var chunk = data.chunk; + } - if (this._requests.length > 0) { - var requestCapability = this._requests.shift(); + _onDone(data) { + const chunk = data.chunk; - requestCapability.resolve({ - value: chunk, - done: false - }); - } else { - this._queuedChunk = chunk; - } + if (this._requests.length > 0) { + const requestCapability = this._requests.shift(); - this._done = true; - - this._requests.forEach(function (requestCapability) { - requestCapability.resolve({ - value: undefined, - done: true - }); + requestCapability.resolve({ + value: chunk, + done: false }); - - this._requests = []; - - this._close(); + } else { + this._queuedChunk = chunk; } - }, { - key: "_onProgress", - value: function _onProgress(evt) { - if (!this.isStreamingSupported && this.onProgress) { - this.onProgress({ - loaded: evt.loaded - }); - } - } - }, { - key: "read", - value: function () { - var _read2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2() { - var chunk, requestCapability; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (!(this._queuedChunk !== null)) { - _context2.next = 4; - break; - } - chunk = this._queuedChunk; - this._queuedChunk = null; - return _context2.abrupt("return", { - value: chunk, - done: false - }); + this._done = true; - case 4: - if (!this._done) { - _context2.next = 6; - break; - } - - return _context2.abrupt("return", { - value: undefined, - done: true - }); - - case 6: - requestCapability = (0, _util.createPromiseCapability)(); - - this._requests.push(requestCapability); - - return _context2.abrupt("return", requestCapability.promise); - - case 9: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function read() { - return _read2.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - this._done = true; - - this._requests.forEach(function (requestCapability) { - requestCapability.resolve({ - value: undefined, - done: true - }); + this._requests.forEach(function (requestCapability) { + requestCapability.resolve({ + value: undefined, + done: true }); + }); - this._requests = []; + this._requests = []; - if (this._manager.isPendingRequest(this._requestId)) { - this._manager.abortRequest(this._requestId); - } + this._close(); + } - this._close(); + _onProgress(evt) { + if (!this.isStreamingSupported && this.onProgress) { + this.onProgress({ + loaded: evt.loaded + }); } - }, { - key: "isStreamingSupported", - get: function get() { - return false; - } - }]); + } - return PDFNetworkStreamRangeRequestReader; -}(); + get isStreamingSupported() { + return false; + } + + async read() { + if (this._queuedChunk !== null) { + const chunk = this._queuedChunk; + this._queuedChunk = null; + return { + value: chunk, + done: false + }; + } + + if (this._done) { + return { + value: undefined, + done: true + }; + } + + const requestCapability = (0, _util.createPromiseCapability)(); + + this._requests.push(requestCapability); + + return requestCapability.promise; + } + + 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(); + } + +} /***/ }), -/* 169 */ +/* 26 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -24220,41 +13852,41 @@ Object.defineProperty(exports, "__esModule", { }); exports.PDFFetchStream = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(1); +var _network_utils = __w_pdfjs_require__(23); -var _network_utils = __w_pdfjs_require__(166); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +; function createFetchOptions(headers, withCredentials, abortController) { return { - method: 'GET', - headers: headers, + method: "GET", + headers, signal: abortController && abortController.signal, - mode: 'cors', - credentials: withCredentials ? 'include' : 'same-origin', - redirect: 'follow' + mode: "cors", + credentials: withCredentials ? "include" : "same-origin", + redirect: "follow" }; } -var PDFFetchStream = -/*#__PURE__*/ -function () { - function PDFFetchStream(source) { - _classCallCheck(this, PDFFetchStream); +function createHeaders(httpHeaders) { + const headers = new Headers(); + for (const property in httpHeaders) { + const value = httpHeaders[property]; + + if (typeof value === "undefined") { + continue; + } + + headers.append(property, value); + } + + return headers; +} + +class PDFFetchStream { + constructor(source) { this.source = source; this.isHttp = /^https?:/i.test(source.url); this.httpHeaders = this.isHttp && source.httpHeaders || {}; @@ -24262,64 +13894,51 @@ function () { this._rangeRequestReaders = []; } - _createClass(PDFFetchStream, [{ - key: "getFullReader", - value: function getFullReader() { - (0, _util.assert)(!this._fullRequestReader); - this._fullRequestReader = new PDFFetchStreamReader(this); - return this._fullRequestReader; + get _progressiveDataLength() { + return this._fullRequestReader ? this._fullRequestReader._loaded : 0; + } + + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFFetchStream.getFullReader can only be called once."); + this._fullRequestReader = new PDFFetchStreamReader(this); + return this._fullRequestReader; + } + + getRangeReader(begin, end) { + if (end <= this._progressiveDataLength) { + return null; } - }, { - key: "getRangeReader", - value: function getRangeReader(begin, end) { - if (end <= this._progressiveDataLength) { - return null; - } - var reader = new PDFFetchStreamRangeReader(this, begin, end); + const reader = new PDFFetchStreamRangeReader(this, begin, end); - this._rangeRequestReaders.push(reader); + this._rangeRequestReaders.push(reader); - return reader; + return reader; + } + + cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); } - }, { - key: "cancelAllRequests", - value: function cancelAllRequests(reason) { - if (this._fullRequestReader) { - this._fullRequestReader.cancel(reason); - } - var readers = this._rangeRequestReaders.slice(0); + const readers = this._rangeRequestReaders.slice(0); - readers.forEach(function (reader) { - reader.cancel(reason); - }); - } - }, { - key: "_progressiveDataLength", - get: function get() { - return this._fullRequestReader ? this._fullRequestReader._loaded : 0; - } - }]); + readers.forEach(function (reader) { + reader.cancel(reason); + }); + } - return PDFFetchStream; -}(); +} exports.PDFFetchStream = PDFFetchStream; -var PDFFetchStreamReader = -/*#__PURE__*/ -function () { - function PDFFetchStreamReader(stream) { - var _this = this; - - _classCallCheck(this, PDFFetchStreamReader); - +class PDFFetchStreamReader { + constructor(stream) { this._stream = stream; this._reader = null; this._loaded = 0; this._filename = null; - var source = stream.source; + const source = stream.source; this._withCredentials = source.withCredentials || false; this._contentLength = source.length; this._headersCapability = (0, _util.createPromiseCapability)(); @@ -24330,293 +13949,190 @@ function () { this._disableRange = true; } - if (typeof AbortController !== 'undefined') { + if (typeof AbortController !== "undefined") { this._abortController = new AbortController(); } this._isStreamingSupported = !source.disableStream; this._isRangeSupported = !source.disableRange; - this._headers = new Headers(); - - for (var property in this._stream.httpHeaders) { - var value = this._stream.httpHeaders[property]; - - if (typeof value === 'undefined') { - continue; - } - - this._headers.append(property, value); - } - - var url = source.url; - fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) { + this._headers = createHeaders(this._stream.httpHeaders); + const url = source.url; + fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => { if (!(0, _network_utils.validateResponseStatus)(response.status)) { throw (0, _network_utils.createResponseStatusError)(response.status, url); } - _this._reader = response.body.getReader(); + this._reader = response.body.getReader(); - _this._headersCapability.resolve(); + this._headersCapability.resolve(); - var getResponseHeader = function getResponseHeader(name) { + const getResponseHeader = name => { return response.headers.get(name); }; - var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ - getResponseHeader: getResponseHeader, - isHttp: _this._stream.isHttp, - rangeChunkSize: _this._rangeChunkSize, - disableRange: _this._disableRange - }), - allowRangeRequests = _validateRangeRequest.allowRangeRequests, - suggestedLength = _validateRangeRequest.suggestedLength; + const { + allowRangeRequests, + suggestedLength + } = (0, _network_utils.validateRangeRequestCapabilities)({ + getResponseHeader, + isHttp: this._stream.isHttp, + rangeChunkSize: this._rangeChunkSize, + disableRange: this._disableRange + }); + this._isRangeSupported = allowRangeRequests; + this._contentLength = suggestedLength || this._contentLength; + this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); - _this._isRangeSupported = allowRangeRequests; - _this._contentLength = suggestedLength || _this._contentLength; - _this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); - - if (!_this._isStreamingSupported && _this._isRangeSupported) { - _this.cancel(new _util.AbortException('Streaming is disabled.')); + if (!this._isStreamingSupported && this._isRangeSupported) { + this.cancel(new _util.AbortException("Streaming is disabled.")); } - })["catch"](this._headersCapability.reject); + }).catch(this._headersCapability.reject); this.onProgress = null; } - _createClass(PDFFetchStreamReader, [{ - key: "read", - value: function () { - var _read = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee() { - var _ref, value, done, buffer; + get headersReady() { + return this._headersCapability.promise; + } - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return this._headersCapability.promise; + get filename() { + return this._filename; + } - case 2: - _context.next = 4; - return this._reader.read(); + get contentLength() { + return this._contentLength; + } - case 4: - _ref = _context.sent; - value = _ref.value; - done = _ref.done; + get isRangeSupported() { + return this._isRangeSupported; + } - if (!done) { - _context.next = 9; - break; - } + get isStreamingSupported() { + return this._isStreamingSupported; + } - return _context.abrupt("return", { - value: value, - done: done - }); + async read() { + await this._headersCapability.promise; + const { + value, + done + } = await this._reader.read(); - case 9: - this._loaded += value.byteLength; - - if (this.onProgress) { - this.onProgress({ - loaded: this._loaded, - total: this._contentLength - }); - } - - buffer = new Uint8Array(value).buffer; - return _context.abrupt("return", { - value: buffer, - done: false - }); - - case 13: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function read() { - return _read.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - if (this._reader) { - this._reader.cancel(reason); - } - - if (this._abortController) { - this._abortController.abort(); - } + if (done) { + return { + value, + done + }; } - }, { - key: "headersReady", - get: function get() { - return this._headersCapability.promise; - } - }, { - key: "filename", - get: function get() { - return this._filename; - } - }, { - key: "contentLength", - get: function get() { - return this._contentLength; - } - }, { - key: "isRangeSupported", - get: function get() { - return this._isRangeSupported; - } - }, { - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }]); - return PDFFetchStreamReader; -}(); + this._loaded += value.byteLength; -var PDFFetchStreamRangeReader = -/*#__PURE__*/ -function () { - function PDFFetchStreamRangeReader(stream, begin, end) { - var _this2 = this; + if (this.onProgress) { + this.onProgress({ + loaded: this._loaded, + total: this._contentLength + }); + } - _classCallCheck(this, PDFFetchStreamRangeReader); + const buffer = new Uint8Array(value).buffer; + return { + value: buffer, + done: false + }; + } + cancel(reason) { + if (this._reader) { + this._reader.cancel(reason); + } + + if (this._abortController) { + this._abortController.abort(); + } + } + +} + +class PDFFetchStreamRangeReader { + constructor(stream, begin, end) { this._stream = stream; this._reader = null; this._loaded = 0; - var source = stream.source; + const source = stream.source; this._withCredentials = source.withCredentials || false; this._readCapability = (0, _util.createPromiseCapability)(); this._isStreamingSupported = !source.disableStream; - if (typeof AbortController !== 'undefined') { + if (typeof AbortController !== "undefined") { this._abortController = new AbortController(); } - this._headers = new Headers(); + this._headers = createHeaders(this._stream.httpHeaders); - for (var property in this._stream.httpHeaders) { - var value = this._stream.httpHeaders[property]; + this._headers.append("Range", `bytes=${begin}-${end - 1}`); - if (typeof value === 'undefined') { - continue; - } - - this._headers.append(property, value); - } - - this._headers.append('Range', "bytes=".concat(begin, "-").concat(end - 1)); - - var url = source.url; - fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) { + const url = source.url; + fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => { if (!(0, _network_utils.validateResponseStatus)(response.status)) { throw (0, _network_utils.createResponseStatusError)(response.status, url); } - _this2._readCapability.resolve(); + this._readCapability.resolve(); - _this2._reader = response.body.getReader(); + this._reader = response.body.getReader(); + }).catch(reason => { + if (reason && reason.name === "AbortError") { + return; + } + + throw reason; }); this.onProgress = null; } - _createClass(PDFFetchStreamRangeReader, [{ - key: "read", - value: function () { - var _read2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2() { - var _ref2, value, done, buffer; + get isStreamingSupported() { + return this._isStreamingSupported; + } - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _context2.next = 2; - return this._readCapability.promise; + async read() { + await this._readCapability.promise; + const { + value, + done + } = await this._reader.read(); - case 2: - _context2.next = 4; - return this._reader.read(); - - case 4: - _ref2 = _context2.sent; - value = _ref2.value; - done = _ref2.done; - - if (!done) { - _context2.next = 9; - break; - } - - return _context2.abrupt("return", { - value: value, - done: done - }); - - case 9: - this._loaded += value.byteLength; - - if (this.onProgress) { - this.onProgress({ - loaded: this._loaded - }); - } - - buffer = new Uint8Array(value).buffer; - return _context2.abrupt("return", { - value: buffer, - done: false - }); - - case 13: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function read() { - return _read2.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - if (this._reader) { - this._reader.cancel(reason); - } - - if (this._abortController) { - this._abortController.abort(); - } + if (done) { + return { + value, + done + }; } - }, { - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }]); - return PDFFetchStreamRangeReader; -}(); + this._loaded += value.byteLength; + + if (this.onProgress) { + this.onProgress({ + loaded: this._loaded + }); + } + + const buffer = new Uint8Array(value).buffer; + return { + value: buffer, + done: false + }; + } + + cancel(reason) { + if (this._reader) { + this._reader.cancel(reason); + } + + if (this._abortController) { + this._abortController.abort(); + } + } + +} /***/ }) /******/ ]); diff --git a/cps/static/js/libs/pdf.worker.js b/cps/static/js/libs/pdf.worker.js index 211fbbdc..58bdf7c1 100644 --- a/cps/static/js/libs/pdf.worker.js +++ b/cps/static/js/libs/pdf.worker.js @@ -2,7 +2,7 @@ * @licstart The following is the entire license notice for the * Javascript code in this page * - * Copyright 2019 Mozilla Foundation + * Copyright 2020 Mozilla Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -123,12 +123,20 @@ return /******/ (function(modules) { // webpackBootstrap "use strict"; -var pdfjsVersion = '2.2.228'; -var pdfjsBuild = 'd7afb74a'; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "WorkerMessageHandler", { + enumerable: true, + get: function () { + return _worker.WorkerMessageHandler; + } +}); -var pdfjsCoreWorker = __w_pdfjs_require__(1); +var _worker = __w_pdfjs_require__(1); -exports.WorkerMessageHandler = pdfjsCoreWorker.WorkerMessageHandler; +const pdfjsVersion = '2.6.347'; +const pdfjsBuild = '3be9c65f'; /***/ }), /* 1 */ @@ -142,70 +150,55 @@ Object.defineProperty(exports, "__esModule", { }); exports.WorkerMessageHandler = exports.WorkerTask = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(2)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(5); +var _primitives = __w_pdfjs_require__(5); -var _primitives = __w_pdfjs_require__(151); +var _pdf_manager = __w_pdfjs_require__(6); -var _pdf_manager = __w_pdfjs_require__(152); +var _writer = __w_pdfjs_require__(27); -var _is_node = _interopRequireDefault(__w_pdfjs_require__(8)); +var _is_node = __w_pdfjs_require__(4); -var _message_handler = __w_pdfjs_require__(191); +var _message_handler = __w_pdfjs_require__(46); -var _worker_stream = __w_pdfjs_require__(192); +var _worker_stream = __w_pdfjs_require__(47); -var _core_utils = __w_pdfjs_require__(154); +var _core_utils = __w_pdfjs_require__(8); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -var WorkerTask = function WorkerTaskClosure() { - function WorkerTask(name) { +class WorkerTask { + constructor(name) { this.name = name; this.terminated = false; this._capability = (0, _util.createPromiseCapability)(); } - WorkerTask.prototype = { - get finished() { - return this._capability.promise; - }, + get finished() { + return this._capability.promise; + } - finish: function finish() { - this._capability.resolve(); - }, - terminate: function terminate() { - this.terminated = true; - }, - ensureNotTerminated: function ensureNotTerminated() { - if (this.terminated) { - throw new Error('Worker task was terminated'); - } + finish() { + this._capability.resolve(); + } + + terminate() { + this.terminated = true; + } + + ensureNotTerminated() { + if (this.terminated) { + throw new Error("Worker task was terminated"); } - }; - return WorkerTask; -}(); + } + +} exports.WorkerTask = WorkerTask; -var WorkerMessageHandler = { - setup: function setup(handler, port) { + +class WorkerMessageHandler { + static setup(handler, port) { var testMessageProcessed = false; - handler.on('test', function wphSetupTest(data) { + handler.on("test", function wphSetupTest(data) { if (testMessageProcessed) { return; } @@ -213,60 +206,60 @@ var WorkerMessageHandler = { testMessageProcessed = true; if (!(data instanceof Uint8Array)) { - handler.send('test', false); + handler.send("test", null); return; } - var supportTransfers = data[0] === 255; + const 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.send("test", { + supportTransfers }); }); - handler.on('configure', function wphConfigure(data) { + handler.on("configure", function wphConfigure(data) { (0, _util.setVerbosityLevel)(data.verbosity); }); - handler.on('GetDocRequest', function wphSetupDoc(data) { + handler.on("GetDocRequest", function wphSetupDoc(data) { return WorkerMessageHandler.createDocumentHandler(data, port); }); - }, - createDocumentHandler: function createDocumentHandler(docParams, port) { + } + + static createDocumentHandler(docParams, port) { var pdfManager; var terminated = false; var cancelXHRs = null; var WorkerTasks = []; - var verbosity = (0, _util.getVerbosityLevel)(); - var apiVersion = docParams.apiVersion; - var workerVersion = '2.2.228'; + const verbosity = (0, _util.getVerbosityLevel)(); + const apiVersion = docParams.apiVersion; + const workerVersion = '2.6.347'; if (apiVersion !== workerVersion) { - throw new Error("The API version \"".concat(apiVersion, "\" does not match ") + "the Worker version \"".concat(workerVersion, "\".")); + throw new Error(`The API version "${apiVersion}" does not match ` + `the Worker version "${workerVersion}".`); + } + + const enumerableProperties = []; + + for (const property in []) { + enumerableProperties.push(property); + } + + if (enumerableProperties.length) { + throw new Error("The `Array.prototype` contains unexpected enumerable properties: " + enumerableProperties.join(", ") + "; thus breaking e.g. `for...in` iteration of `Array`s."); + } + + if (typeof ReadableStream === "undefined" || typeof Promise.allSettled === "undefined") { + throw new Error("The browser/environment lacks native support for critical " + "functionality used by the PDF.js library (e.g. " + "`ReadableStream` and/or `Promise.allSettled`); " + "please use an ES5-compatible build instead."); } var docId = docParams.docId; var docBaseUrl = docParams.docBaseUrl; - var workerHandlerName = docParams.docId + '_worker'; + var workerHandlerName = docParams.docId + "_worker"; var handler = new _message_handler.MessageHandler(workerHandlerName, docId, port); handler.postMessageTransfers = docParams.postMessageTransfers; function ensureNotTerminated() { if (terminated) { - throw new Error('Worker was terminated'); + throw new Error("Worker was terminated"); } } @@ -280,73 +273,31 @@ var WorkerMessageHandler = { WorkerTasks.splice(i, 1); } - function loadDocument(_x) { - return _loadDocument.apply(this, arguments); - } + async function loadDocument(recoveryMode) { + await pdfManager.ensureDoc("checkHeader"); + await pdfManager.ensureDoc("parseStartXRef"); + await pdfManager.ensureDoc("parse", [recoveryMode]); - function _loadDocument() { - _loadDocument = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(recoveryMode) { - var _ref4, _ref5, numPages, fingerprint; + if (!recoveryMode) { + await pdfManager.ensureDoc("checkFirstPage"); + } - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return pdfManager.ensureDoc('checkHeader'); - - case 2: - _context.next = 4; - return pdfManager.ensureDoc('parseStartXRef'); - - case 4: - _context.next = 6; - return pdfManager.ensureDoc('parse', [recoveryMode]); - - case 6: - if (recoveryMode) { - _context.next = 9; - break; - } - - _context.next = 9; - return pdfManager.ensureDoc('checkFirstPage'); - - case 9: - _context.next = 11; - return Promise.all([pdfManager.ensureDoc('numPages'), pdfManager.ensureDoc('fingerprint')]); - - case 11: - _ref4 = _context.sent; - _ref5 = _slicedToArray(_ref4, 2); - numPages = _ref5[0]; - fingerprint = _ref5[1]; - return _context.abrupt("return", { - numPages: numPages, - fingerprint: fingerprint - }); - - case 16: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - return _loadDocument.apply(this, arguments); + const [numPages, fingerprint] = await Promise.all([pdfManager.ensureDoc("numPages"), pdfManager.ensureDoc("fingerprint")]); + return { + numPages, + fingerprint + }; } function getPdfManager(data, evaluatorOptions) { var pdfManagerCapability = (0, _util.createPromiseCapability)(); - var pdfManager; + let newPdfManager; var source = data.source; if (source.data) { try { - pdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl); - pdfManagerCapability.resolve(pdfManager); + newPdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl); + pdfManagerCapability.resolve(newPdfManager); } catch (ex) { pdfManagerCapability.reject(ex); } @@ -371,37 +322,37 @@ var WorkerMessageHandler = { } var disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported; - pdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, { + newPdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, { msgHandler: handler, password: source.password, length: fullRequest.contentLength, - disableAutoFetch: disableAutoFetch, + disableAutoFetch, rangeChunkSize: source.rangeChunkSize }, evaluatorOptions, docBaseUrl); - for (var i = 0; i < cachedChunks.length; i++) { - pdfManager.sendProgressiveData(cachedChunks[i]); + for (let i = 0; i < cachedChunks.length; i++) { + newPdfManager.sendProgressiveData(cachedChunks[i]); } cachedChunks = []; - pdfManagerCapability.resolve(pdfManager); + pdfManagerCapability.resolve(newPdfManager); cancelXHRs = null; - })["catch"](function (reason) { + }).catch(function (reason) { pdfManagerCapability.reject(reason); cancelXHRs = null; }); var loaded = 0; - var flushChunks = function flushChunks() { + var flushChunks = function () { var pdfFile = (0, _util.arraysToBytes)(cachedChunks); if (source.length && pdfFile.length !== source.length) { - (0, _util.warn)('reported HTTP length is different from actual'); + (0, _util.warn)("reported HTTP length is different from actual"); } try { - pdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl); - pdfManagerCapability.resolve(pdfManager); + newPdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl); + pdfManagerCapability.resolve(newPdfManager); } catch (ex) { pdfManagerCapability.reject(ex); } @@ -410,12 +361,15 @@ var WorkerMessageHandler = { }; var readPromise = new Promise(function (resolve, reject) { - var readChunk = function readChunk(chunk) { + var readChunk = function ({ + value, + done + }) { try { ensureNotTerminated(); - if (chunk.done) { - if (!pdfManager) { + if (done) { + if (!newPdfManager) { flushChunks(); } @@ -423,20 +377,19 @@ var WorkerMessageHandler = { return; } - var data = chunk.value; - loaded += (0, _util.arrayByteLength)(data); + loaded += (0, _util.arrayByteLength)(value); if (!fullRequest.isStreamingSupported) { - handler.send('DocProgress', { - loaded: loaded, + handler.send("DocProgress", { + loaded, total: Math.max(loaded, fullRequest.contentLength || 0) }); } - if (pdfManager) { - pdfManager.sendProgressiveData(data); + if (newPdfManager) { + newPdfManager.sendProgressiveData(value); } else { - cachedChunks.push(data); + cachedChunks.push(value); } fullRequest.read().then(readChunk, reject); @@ -447,13 +400,13 @@ var WorkerMessageHandler = { fullRequest.read().then(readChunk, reject); }); - readPromise["catch"](function (e) { + readPromise.catch(function (e) { pdfManagerCapability.reject(e); cancelXHRs = null; }); - cancelXHRs = function cancelXHRs() { - pdfStream.cancelAllRequests('abort'); + cancelXHRs = function (reason) { + pdfStream.cancelAllRequests(reason); }; return pdfManagerCapability.promise; @@ -462,43 +415,41 @@ var WorkerMessageHandler = { function setupDoc(data) { function onSuccess(doc) { ensureNotTerminated(); - handler.send('GetDoc', { + handler.send("GetDoc", { pdfInfo: doc }); } - function onFailure(e) { + function onFailure(ex) { ensureNotTerminated(); - if (e instanceof _util.PasswordException) { - var task = new WorkerTask('PasswordException: response ' + e.code); + if (ex instanceof _util.PasswordException) { + var task = new WorkerTask(`PasswordException: response ${ex.code}`); startWorkerTask(task); - handler.sendWithPromise('PasswordRequest', e).then(function (data) { + handler.sendWithPromise("PasswordRequest", ex).then(function ({ + password + }) { finishWorkerTask(task); - pdfManager.updatePassword(data.password); + pdfManager.updatePassword(password); pdfManagerReady(); - })["catch"](function (boundException) { + }).catch(function () { finishWorkerTask(task); - handler.send('PasswordException', boundException); - }.bind(null, e)); - } else if (e instanceof _util.InvalidPDFException) { - handler.send('InvalidPDF', e); - } else if (e instanceof _util.MissingPDFException) { - handler.send('MissingPDF', e); - } else if (e instanceof _util.UnexpectedResponseException) { - handler.send('UnexpectedResponse', e); + handler.send("DocException", ex); + }); + } else if (ex instanceof _util.InvalidPDFException || ex instanceof _util.MissingPDFException || ex instanceof _util.UnexpectedResponseException || ex instanceof _util.UnknownErrorException) { + handler.send("DocException", ex); } else { - handler.send('UnknownError', new _util.UnknownErrorException(e.message, e.toString())); + handler.send("DocException", new _util.UnknownErrorException(ex.message, ex.toString())); } } function pdfManagerReady() { ensureNotTerminated(); - loadDocument(false).then(onSuccess, function loadFailure(ex) { + loadDocument(false).then(onSuccess, function (reason) { ensureNotTerminated(); - if (!(ex instanceof _core_utils.XRefParseException)) { - onFailure(ex); + if (!(reason instanceof _core_utils.XRefParseException)) { + onFailure(reason); return; } @@ -507,165 +458,202 @@ var WorkerMessageHandler = { ensureNotTerminated(); loadDocument(true).then(onSuccess, onFailure); }); - }, onFailure); + }); } ensureNotTerminated(); var evaluatorOptions = { - forceDataSchema: data.disableCreateObjectURL, maxImageSize: data.maxImageSize, disableFontFace: data.disableFontFace, - nativeImageDecoderSupport: data.nativeImageDecoderSupport, ignoreErrors: data.ignoreErrors, - isEvalSupported: data.isEvalSupported + isEvalSupported: data.isEvalSupported, + fontExtraProperties: data.fontExtraProperties }; getPdfManager(data, evaluatorOptions).then(function (newPdfManager) { if (terminated) { - newPdfManager.terminate(); - throw new Error('Worker was terminated'); + newPdfManager.terminate(new _util.AbortException("Worker was terminated.")); + throw new Error("Worker was terminated"); } pdfManager = newPdfManager; pdfManager.onLoadedStream().then(function (stream) { - handler.send('DataLoaded', { + handler.send("DataLoaded", { length: stream.bytes.byteLength }); }); }).then(pdfManagerReady, onFailure); } - handler.on('GetPage', function wphSetupGetPage(data) { + handler.on("GetPage", function wphSetupGetPage(data) { return pdfManager.getPage(data.pageIndex).then(function (page) { - return Promise.all([pdfManager.ensure(page, 'rotate'), pdfManager.ensure(page, 'ref'), pdfManager.ensure(page, 'userUnit'), pdfManager.ensure(page, 'view')]).then(function (_ref) { - var _ref2 = _slicedToArray(_ref, 4), - rotate = _ref2[0], - ref = _ref2[1], - userUnit = _ref2[2], - view = _ref2[3]; - + return Promise.all([pdfManager.ensure(page, "rotate"), pdfManager.ensure(page, "ref"), pdfManager.ensure(page, "userUnit"), pdfManager.ensure(page, "view")]).then(function ([rotate, ref, userUnit, view]) { return { - rotate: rotate, - ref: ref, - userUnit: userUnit, - view: view + rotate, + ref, + userUnit, + view }; }); }); }); - handler.on('GetPageIndex', function wphSetupGetPageIndex(data) { - var ref = _primitives.Ref.get(data.ref.num, data.ref.gen); + handler.on("GetPageIndex", function wphSetupGetPageIndex({ + ref + }) { + const pageRef = _primitives.Ref.get(ref.num, ref.gen); - var catalog = pdfManager.pdfDocument.catalog; - return catalog.getPageIndex(ref); + return pdfManager.ensureCatalog("getPageIndex", [pageRef]); }); - handler.on('GetDestinations', function wphSetupGetDestinations(data) { - return pdfManager.ensureCatalog('destinations'); + handler.on("GetDestinations", function wphSetupGetDestinations(data) { + return pdfManager.ensureCatalog("destinations"); }); - handler.on('GetDestination', function wphSetupGetDestination(data) { - return pdfManager.ensureCatalog('getDestination', [data.id]); + handler.on("GetDestination", function wphSetupGetDestination(data) { + return pdfManager.ensureCatalog("getDestination", [data.id]); }); - handler.on('GetPageLabels', function wphSetupGetPageLabels(data) { - return pdfManager.ensureCatalog('pageLabels'); + handler.on("GetPageLabels", function wphSetupGetPageLabels(data) { + return pdfManager.ensureCatalog("pageLabels"); }); - handler.on('GetPageLayout', function wphSetupGetPageLayout(data) { - return pdfManager.ensureCatalog('pageLayout'); + handler.on("GetPageLayout", function wphSetupGetPageLayout(data) { + return pdfManager.ensureCatalog("pageLayout"); }); - handler.on('GetPageMode', function wphSetupGetPageMode(data) { - return pdfManager.ensureCatalog('pageMode'); + handler.on("GetPageMode", function wphSetupGetPageMode(data) { + return pdfManager.ensureCatalog("pageMode"); }); - handler.on('GetViewerPreferences', function (data) { - return pdfManager.ensureCatalog('viewerPreferences'); + handler.on("GetViewerPreferences", function (data) { + return pdfManager.ensureCatalog("viewerPreferences"); }); - handler.on('GetOpenActionDestination', function (data) { - return pdfManager.ensureCatalog('openActionDestination'); + handler.on("GetOpenAction", function (data) { + return pdfManager.ensureCatalog("openAction"); }); - handler.on('GetAttachments', function wphSetupGetAttachments(data) { - return pdfManager.ensureCatalog('attachments'); + handler.on("GetAttachments", function wphSetupGetAttachments(data) { + return pdfManager.ensureCatalog("attachments"); }); - handler.on('GetJavaScript', function wphSetupGetJavaScript(data) { - return pdfManager.ensureCatalog('javaScript'); + handler.on("GetJavaScript", function wphSetupGetJavaScript(data) { + return pdfManager.ensureCatalog("javaScript"); }); - handler.on('GetOutline', function wphSetupGetOutline(data) { - return pdfManager.ensureCatalog('documentOutline'); + handler.on("GetOutline", function wphSetupGetOutline(data) { + return pdfManager.ensureCatalog("documentOutline"); }); - handler.on('GetPermissions', function (data) { - return pdfManager.ensureCatalog('permissions'); + handler.on("GetOptionalContentConfig", function (data) { + return pdfManager.ensureCatalog("optionalContentConfig"); }); - handler.on('GetMetadata', function wphSetupGetMetadata(data) { - return Promise.all([pdfManager.ensureDoc('documentInfo'), pdfManager.ensureCatalog('metadata')]); + handler.on("GetPermissions", function (data) { + return pdfManager.ensureCatalog("permissions"); }); - handler.on('GetData', function wphSetupGetData(data) { + 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("GetStats", function wphSetupGetStats(data) { + return pdfManager.ensureXRef("stats"); }); - handler.on('GetAnnotations', function (_ref3) { - var pageIndex = _ref3.pageIndex, - intent = _ref3.intent; + handler.on("GetAnnotations", function ({ + pageIndex, + intent + }) { return pdfManager.getPage(pageIndex).then(function (page) { return page.getAnnotationsData(intent); }); }); - handler.on('RenderPageRequest', function wphSetupRenderPage(data) { + handler.on("SaveDocument", function ({ + numPages, + annotationStorage, + filename + }) { + pdfManager.requestLoadedStream(); + const promises = [pdfManager.onLoadedStream()]; + const document = pdfManager.pdfDocument; + + for (let pageIndex = 0; pageIndex < numPages; pageIndex++) { + promises.push(pdfManager.getPage(pageIndex).then(function (page) { + const task = new WorkerTask(`Save: page ${pageIndex}`); + return page.save(handler, task, annotationStorage); + })); + } + + return Promise.all(promises).then(([stream, ...refs]) => { + let newRefs = []; + + for (const ref of refs) { + newRefs = ref.filter(x => x !== null).reduce((a, b) => a.concat(b), newRefs); + } + + if (newRefs.length === 0) { + return stream.bytes; + } + + const xref = document.xref; + let newXrefInfo = Object.create(null); + + if (xref.trailer) { + const _info = Object.create(null); + + const xrefInfo = xref.trailer.get("Info") || null; + + if (xrefInfo) { + xrefInfo.forEach((key, value) => { + if ((0, _util.isString)(key) && (0, _util.isString)(value)) { + _info[key] = (0, _util.stringToPDFString)(value); + } + }); + } + + newXrefInfo = { + rootRef: xref.trailer.getRaw("Root") || null, + encrypt: xref.trailer.getRaw("Encrypt") || null, + newRef: xref.getNewRef(), + infoRef: xref.trailer.getRaw("Info") || null, + info: _info, + fileIds: xref.trailer.getRaw("ID") || null, + startXRef: document.startXRef, + filename + }; + } + + xref.resetNewRef(); + return (0, _writer.incrementalUpdate)(stream.bytes, newXrefInfo, newRefs); + }); + }); + handler.on("GetOperatorList", function wphSetupRenderPage(data, sink) { var pageIndex = data.pageIndex; pdfManager.getPage(pageIndex).then(function (page) { - var task = new WorkerTask('RenderPageRequest: page ' + pageIndex); + var task = new WorkerTask(`GetOperatorList: page ${pageIndex}`); startWorkerTask(task); - var start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0; + const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0; page.getOperatorList({ - handler: handler, - task: task, + handler, + sink, + task, intent: data.intent, - renderInteractiveForms: data.renderInteractiveForms - }).then(function (operatorList) { + renderInteractiveForms: data.renderInteractiveForms, + annotationStorage: data.annotationStorage + }).then(function (operatorListInfo) { finishWorkerTask(task); if (start) { - (0, _util.info)("page=".concat(pageIndex + 1, " - getOperatorList: time=") + "".concat(Date.now() - start, "ms, len=").concat(operatorList.totalLength)); + (0, _util.info)(`page=${pageIndex + 1} - getOperatorList: time=` + `${Date.now() - start}ms, len=${operatorListInfo.length}`); } - }, function (e) { + + sink.close(); + }, function (reason) { finishWorkerTask(task); if (task.terminated) { return; } - handler.send('UnsupportedFeature', { - featureId: _util.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', { - pageIndex: pageIndex, - error: wrappedException, - intent: data.intent + handler.send("UnsupportedFeature", { + featureId: _util.UNSUPPORTED_FEATURES.errorOperatorList }); + sink.error(reason); }); }); }, this); - handler.on('GetTextContent', function wphExtractText(data, sink) { + handler.on("GetTextContent", function wphExtractText(data, sink) { var pageIndex = data.pageIndex; sink.onPull = function (desiredSize) {}; @@ -673,20 +661,20 @@ var WorkerMessageHandler = { sink.onCancel = function (reason) {}; pdfManager.getPage(pageIndex).then(function (page) { - var task = new WorkerTask('GetTextContent: page ' + pageIndex); + var task = new WorkerTask("GetTextContent: page " + pageIndex); startWorkerTask(task); - var start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0; + const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0; page.extractTextContent({ - handler: handler, - task: task, - sink: sink, + handler, + task, + sink, normalizeWhitespace: data.normalizeWhitespace, combineTextItems: data.combineTextItems }).then(function () { finishWorkerTask(task); if (start) { - (0, _util.info)("page=".concat(pageIndex + 1, " - getTextContent: time=") + "".concat(Date.now() - start, "ms")); + (0, _util.info)(`page=${pageIndex + 1} - getTextContent: time=` + `${Date.now() - start}ms`); } sink.close(); @@ -698,30 +686,32 @@ var WorkerMessageHandler = { } sink.error(reason); - throw reason; }); }); }); - handler.on('FontFallback', function (data) { + handler.on("FontFallback", function (data) { return pdfManager.fontFallback(data.id, handler); }); - handler.on('Cleanup', function wphCleanup(data) { - return pdfManager.cleanup(); + handler.on("Cleanup", function wphCleanup(data) { + return pdfManager.cleanup(true); }); - handler.on('Terminate', function wphTerminate(data) { + handler.on("Terminate", function wphTerminate(data) { terminated = true; + const waitOn = []; if (pdfManager) { - pdfManager.terminate(); + pdfManager.terminate(new _util.AbortException("Worker was terminated.")); + const cleanupPromise = pdfManager.cleanup(); + waitOn.push(cleanupPromise); pdfManager = null; + } else { + (0, _primitives.clearPrimitiveCaches)(); } if (cancelXHRs) { - cancelXHRs(); + cancelXHRs(new _util.AbortException("Worker was terminated.")); } - (0, _primitives.clearPrimitiveCaches)(); - var waitOn = []; WorkerTasks.forEach(function (task) { waitOn.push(task.finished); task.terminate(); @@ -731,25 +721,28 @@ var WorkerMessageHandler = { handler = null; }); }); - handler.on('Ready', function wphReady(data) { + handler.on("Ready", function wphReady(data) { setupDoc(docParams); docParams = null; }); return workerHandlerName; - }, - initializeFromPort: function initializeFromPort(port) { - var handler = new _message_handler.MessageHandler('worker', 'main', port); - WorkerMessageHandler.setup(handler, port); - handler.send('ready', null); } -}; + + static initializeFromPort(port) { + var handler = new _message_handler.MessageHandler("worker", "main", port); + WorkerMessageHandler.setup(handler, port); + handler.send("ready", null); + } + +} + exports.WorkerMessageHandler = WorkerMessageHandler; function isMessagePort(maybePort) { - return typeof maybePort.postMessage === 'function' && 'onmessage' in maybePort; + return typeof maybePort.postMessage === "function" && "onmessage" in maybePort; } -if (typeof window === 'undefined' && !(0, _is_node["default"])() && typeof self !== 'undefined' && isMessagePort(self)) { +if (typeof window === "undefined" && !_is_node.isNodeJS && typeof self !== "undefined" && isMessagePort(self)) { WorkerMessageHandler.initializeFromPort(self); } @@ -760,627 +753,6 @@ if (typeof window === 'undefined' && !(0, _is_node["default"])() && typeof self "use strict"; -module.exports = __w_pdfjs_require__(3); - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(module) { - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var runtime = function (exports) { - "use strict"; - - var Op = Object.prototype; - var hasOwn = Op.hasOwnProperty; - var undefined; - var $Symbol = typeof Symbol === "function" ? Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; - var generator = Object.create(protoGenerator.prototype); - var context = new Context(tryLocsList || []); - generator._invoke = makeInvokeMethod(innerFn, self, context); - return generator; - } - - exports.wrap = wrap; - - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; - } - } - - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; - var ContinueSentinel = {}; - - function Generator() {} - - function GeneratorFunction() {} - - function GeneratorFunctionPrototype() {} - - var IteratorPrototype = {}; - - IteratorPrototype[iteratorSymbol] = function () { - return this; - }; - - var getProto = Object.getPrototypeOf; - var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - - if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { - IteratorPrototype = NativeIteratorPrototype; - } - - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; - GeneratorFunctionPrototype.constructor = GeneratorFunction; - GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; - - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - prototype[method] = function (arg) { - return this._invoke(method, arg); - }; - }); - } - - exports.isGeneratorFunction = function (genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; - }; - - exports.mark = function (genFun) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - - if (!(toStringTagSymbol in genFun)) { - genFun[toStringTagSymbol] = "GeneratorFunction"; - } - } - - genFun.prototype = Object.create(Gp); - return genFun; - }; - - exports.awrap = function (arg) { - return { - __await: arg - }; - }; - - function AsyncIterator(generator) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value = result.value; - - if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) { - return Promise.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }); - } - - return Promise.resolve(value).then(function (unwrapped) { - result.value = unwrapped; - resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); - } - } - - var previousPromise; - - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new Promise(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - - this._invoke = enqueue; - } - - defineIteratorMethods(AsyncIterator.prototype); - - AsyncIterator.prototype[asyncIteratorSymbol] = function () { - return this; - }; - - exports.AsyncIterator = AsyncIterator; - - exports.async = function (innerFn, outerFn, self, tryLocsList) { - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList)); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }; - - function makeInvokeMethod(innerFn, self, context) { - var state = GenStateSuspendedStart; - return function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); - } - - if (state === GenStateCompleted) { - if (method === "throw") { - throw arg; - } - - return doneResult(); - } - - context.method = method; - context.arg = arg; - - while (true) { - var delegate = context.delegate; - - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - - if (context.method === "next") { - context.sent = context._sent = context.arg; - } else if (context.method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw context.arg; - } - - context.dispatchException(context.arg); - } else if (context.method === "return") { - context.abrupt("return", context.arg); - } - - state = GenStateExecuting; - var record = tryCatch(innerFn, self, context); - - if (record.type === "normal") { - state = context.done ? GenStateCompleted : GenStateSuspendedYield; - - if (record.arg === ContinueSentinel) { - continue; - } - - return { - value: record.arg, - done: context.done - }; - } else if (record.type === "throw") { - state = GenStateCompleted; - context.method = "throw"; - context.arg = record.arg; - } - } - }; - } - - function maybeInvokeDelegate(delegate, context) { - var method = delegate.iterator[context.method]; - - if (method === undefined) { - context.delegate = null; - - if (context.method === "throw") { - if (delegate.iterator["return"]) { - context.method = "return"; - context.arg = undefined; - maybeInvokeDelegate(delegate, context); - - if (context.method === "throw") { - return ContinueSentinel; - } - } - - context.method = "throw"; - context.arg = new TypeError("The iterator does not provide a 'throw' method"); - } - - return ContinueSentinel; - } - - var record = tryCatch(method, delegate.iterator, context.arg); - - if (record.type === "throw") { - context.method = "throw"; - context.arg = record.arg; - context.delegate = null; - return ContinueSentinel; - } - - var info = record.arg; - - if (!info) { - context.method = "throw"; - context.arg = new TypeError("iterator result is not an object"); - context.delegate = null; - return ContinueSentinel; - } - - if (info.done) { - context[delegate.resultName] = info.value; - context.next = delegate.nextLoc; - - if (context.method !== "return") { - context.method = "next"; - context.arg = undefined; - } - } else { - return info; - } - - context.delegate = null; - return ContinueSentinel; - } - - defineIteratorMethods(Gp); - Gp[toStringTagSymbol] = "Generator"; - - Gp[iteratorSymbol] = function () { - return this; - }; - - Gp.toString = function () { - return "[object Generator]"; - }; - - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - - if (1 in locs) { - entry.catchLoc = locs[1]; - } - - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; - } - - this.tryEntries.push(entry); - } - - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; - } - - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(true); - } - - exports.keys = function (object) { - var keys = []; - - for (var key in object) { - keys.push(key); - } - - keys.reverse(); - return function next() { - while (keys.length) { - var key = keys.pop(); - - if (key in object) { - next.value = key; - next.done = false; - return next; - } - } - - next.done = true; - return next; - }; - }; - - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } - - if (typeof iterable.next === "function") { - return iterable; - } - - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - while (++i < iterable.length) { - if (hasOwn.call(iterable, i)) { - next.value = iterable[i]; - next.done = false; - return next; - } - } - - next.value = undefined; - next.done = true; - return next; - }; - - return next.next = next; - } - } - - return { - next: doneResult - }; - } - - exports.values = values; - - function doneResult() { - return { - value: undefined, - done: true - }; - } - - Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - this.prev = 0; - this.next = 0; - this.sent = this._sent = undefined; - this.done = false; - this.delegate = null; - this.method = "next"; - this.arg = undefined; - this.tryEntries.forEach(resetTryEntry); - - if (!skipTempReset) { - for (var name in this) { - if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { - this[name] = undefined; - } - } - } - }, - stop: function stop() { - this.done = true; - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) { - throw exception; - } - - var context = this; - - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception; - context.next = loc; - - if (caught) { - context.method = "next"; - context.arg = undefined; - } - - return !!caught; - } - - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - var record = entry.completion; - - if (entry.tryLoc === "root") { - return handle("end"); - } - - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); - - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - - if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { - finallyEntry = null; - } - - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type; - record.arg = arg; - - if (finallyEntry) { - this.method = "next"; - this.next = finallyEntry.finallyLoc; - return ContinueSentinel; - } - - return this.complete(record); - }, - complete: function complete(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } - - if (record.type === "break" || record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = this.arg = record.arg; - this.method = "return"; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } - - return ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.finallyLoc === finallyLoc) { - this.complete(entry.completion, entry.afterLoc); - resetTryEntry(entry); - return ContinueSentinel; - } - } - }, - "catch": function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - - return thrown; - } - } - - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }; - - if (this.method === "next") { - this.arg = undefined; - } - - return ContinueSentinel; - } - }; - return exports; -}(( false ? undefined : _typeof(module)) === "object" ? module.exports : {}); - -try { - regeneratorRuntime = runtime; -} catch (accidentalStrictMode) { - Function("r", "regeneratorRuntime = r")(runtime); -} -/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(4)(module))) - -/***/ }), -/* 4 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (module) { - if (!module.webpackPolyfill) { - module.deprecate = function () {}; - - module.paths = []; - if (!module.children) module.children = []; - Object.defineProperty(module, "loaded", { - enumerable: true, - get: function get() { - return module.l; - } - }); - Object.defineProperty(module, "id", { - enumerable: true, - get: function get() { - return module.i; - } - }); - module.webpackPolyfill = 1; - } - - return module; -}; - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - Object.defineProperty(exports, "__esModule", { value: true }); @@ -1389,23 +761,17 @@ exports.arraysToBytes = arraysToBytes; exports.assert = assert; exports.bytesToString = bytesToString; exports.createPromiseCapability = createPromiseCapability; +exports.escapeString = escapeString; +exports.getModificationDate = getModificationDate; exports.getVerbosityLevel = getVerbosityLevel; exports.info = info; exports.isArrayBuffer = isArrayBuffer; exports.isArrayEqual = isArrayEqual; exports.isBool = isBool; -exports.isEmptyObj = isEmptyObj; exports.isNum = isNum; exports.isString = isString; -exports.isSpace = isSpace; exports.isSameOrigin = isSameOrigin; exports.createValidAbsoluteUrl = createValidAbsoluteUrl; -exports.isLittleEndian = isLittleEndian; -exports.isEvalSupported = isEvalSupported; -exports.log2 = log2; -exports.readInt8 = readInt8; -exports.readUint16 = readUint16; -exports.readUint32 = readUint32; exports.removeNullCharacters = removeNullCharacters; exports.setVerbosityLevel = setVerbosityLevel; exports.shadow = shadow; @@ -1416,39 +782,15 @@ exports.stringToUTF8String = stringToUTF8String; exports.utf8StringToString = utf8StringToString; exports.warn = warn; exports.unreachable = unreachable; -Object.defineProperty(exports, "ReadableStream", { - enumerable: true, - get: function get() { - return _streams_polyfill.ReadableStream; - } -}); -Object.defineProperty(exports, "URL", { - enumerable: true, - get: function get() { - return _url_polyfill.URL; - } -}); -exports.createObjectURL = exports.FormatError = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = void 0; +exports.IsEvalSupportedCached = exports.IsLittleEndianCached = exports.createObjectURL = exports.FormatError = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.MissingPDFException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = exports.BaseException = void 0; -__w_pdfjs_require__(6); +__w_pdfjs_require__(3); -var _streams_polyfill = __w_pdfjs_require__(147); - -var _url_polyfill = __w_pdfjs_require__(149); - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; +const IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; exports.IDENTITY_MATRIX = IDENTITY_MATRIX; -var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; +const FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX; -var NativeImageDecoding = { - NONE: 'none', - DECODE: 'decode', - DISPLAY: 'display' -}; -exports.NativeImageDecoding = NativeImageDecoding; -var PermissionFlag = { +const PermissionFlag = { PRINT: 0x04, MODIFY_CONTENTS: 0x08, COPY: 0x10, @@ -1459,7 +801,7 @@ var PermissionFlag = { PRINT_HIGH_QUALITY: 0x800 }; exports.PermissionFlag = PermissionFlag; -var TextRenderingMode = { +const TextRenderingMode = { FILL: 0, STROKE: 1, FILL_STROKE: 2, @@ -1472,13 +814,13 @@ var TextRenderingMode = { ADD_TO_PATH_FLAG: 4 }; exports.TextRenderingMode = TextRenderingMode; -var ImageKind = { +const ImageKind = { GRAYSCALE_1BPP: 1, RGB_24BPP: 2, RGBA_32BPP: 3 }; exports.ImageKind = ImageKind; -var AnnotationType = { +const AnnotationType = { TEXT: 1, LINK: 2, FREETEXT: 3, @@ -1507,7 +849,30 @@ var AnnotationType = { REDACT: 26 }; exports.AnnotationType = AnnotationType; -var AnnotationFlag = { +const AnnotationStateModelType = { + MARKED: "Marked", + REVIEW: "Review" +}; +exports.AnnotationStateModelType = AnnotationStateModelType; +const AnnotationMarkedState = { + MARKED: "Marked", + UNMARKED: "Unmarked" +}; +exports.AnnotationMarkedState = AnnotationMarkedState; +const AnnotationReviewState = { + ACCEPTED: "Accepted", + REJECTED: "Rejected", + CANCELLED: "Cancelled", + COMPLETED: "Completed", + NONE: "None" +}; +exports.AnnotationReviewState = AnnotationReviewState; +const AnnotationReplyType = { + GROUP: "Group", + REPLY: "R" +}; +exports.AnnotationReplyType = AnnotationReplyType; +const AnnotationFlag = { INVISIBLE: 0x01, HIDDEN: 0x02, PRINT: 0x04, @@ -1520,7 +885,7 @@ var AnnotationFlag = { LOCKEDCONTENTS: 0x200 }; exports.AnnotationFlag = AnnotationFlag; -var AnnotationFieldFlag = { +const AnnotationFieldFlag = { READONLY: 0x0000001, REQUIRED: 0x0000002, NOEXPORT: 0x0000004, @@ -1542,7 +907,7 @@ var AnnotationFieldFlag = { COMMITONSELCHANGE: 0x4000000 }; exports.AnnotationFieldFlag = AnnotationFieldFlag; -var AnnotationBorderStyleType = { +const AnnotationBorderStyleType = { SOLID: 1, DASHED: 2, BEVELED: 3, @@ -1550,46 +915,46 @@ var AnnotationBorderStyleType = { UNDERLINE: 5 }; exports.AnnotationBorderStyleType = AnnotationBorderStyleType; -var StreamType = { - UNKNOWN: 0, - FLATE: 1, - LZW: 2, - DCT: 3, - JPX: 4, - JBIG: 5, - A85: 6, - AHX: 7, - CCF: 8, - RL: 9 +const StreamType = { + UNKNOWN: "UNKNOWN", + FLATE: "FLATE", + LZW: "LZW", + DCT: "DCT", + JPX: "JPX", + JBIG: "JBIG", + A85: "A85", + AHX: "AHX", + CCF: "CCF", + RLX: "RLX" }; exports.StreamType = StreamType; -var FontType = { - UNKNOWN: 0, - TYPE1: 1, - TYPE1C: 2, - CIDFONTTYPE0: 3, - CIDFONTTYPE0C: 4, - TRUETYPE: 5, - CIDFONTTYPE2: 6, - TYPE3: 7, - OPENTYPE: 8, - TYPE0: 9, - MMTYPE1: 10 +const FontType = { + UNKNOWN: "UNKNOWN", + TYPE1: "TYPE1", + TYPE1C: "TYPE1C", + CIDFONTTYPE0: "CIDFONTTYPE0", + CIDFONTTYPE0C: "CIDFONTTYPE0C", + TRUETYPE: "TRUETYPE", + CIDFONTTYPE2: "CIDFONTTYPE2", + TYPE3: "TYPE3", + OPENTYPE: "OPENTYPE", + TYPE0: "TYPE0", + MMTYPE1: "MMTYPE1" }; exports.FontType = FontType; -var VerbosityLevel = { +const VerbosityLevel = { ERRORS: 0, WARNINGS: 1, INFOS: 5 }; exports.VerbosityLevel = VerbosityLevel; -var CMapCompressionType = { +const CMapCompressionType = { NONE: 0, BINARY: 1, STREAM: 2 }; exports.CMapCompressionType = CMapCompressionType; -var OPS = { +const OPS = { dependency: 1, setLineWidth: 2, setLineCap: 3, @@ -1683,21 +1048,34 @@ var OPS = { constructPath: 91 }; exports.OPS = OPS; -var UNSUPPORTED_FEATURES = { - unknown: 'unknown', - forms: 'forms', - javaScript: 'javaScript', - smask: 'smask', - shadingPattern: 'shadingPattern', - font: 'font' +const UNSUPPORTED_FEATURES = { + unknown: "unknown", + forms: "forms", + javaScript: "javaScript", + smask: "smask", + shadingPattern: "shadingPattern", + font: "font", + errorTilingPattern: "errorTilingPattern", + errorExtGState: "errorExtGState", + errorXObject: "errorXObject", + errorFontLoadType3: "errorFontLoadType3", + errorFontState: "errorFontState", + errorFontMissing: "errorFontMissing", + errorFontTranslate: "errorFontTranslate", + errorColorSpace: "errorColorSpace", + errorOperatorList: "errorOperatorList", + errorFontToUnicode: "errorFontToUnicode", + errorFontLoadNative: "errorFontLoadNative", + errorFontGetPath: "errorFontGetPath", + errorMarkedContent: "errorMarkedContent" }; exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES; -var PasswordResponses = { +const PasswordResponses = { NEED_PASSWORD: 1, INCORRECT_PASSWORD: 2 }; exports.PasswordResponses = PasswordResponses; -var verbosity = VerbosityLevel.WARNINGS; +let verbosity = VerbosityLevel.WARNINGS; function setVerbosityLevel(level) { if (Number.isInteger(level)) { @@ -1711,13 +1089,13 @@ function getVerbosityLevel() { function info(msg) { if (verbosity >= VerbosityLevel.INFOS) { - console.log('Info: ' + msg); + console.log(`Info: ${msg}`); } } function warn(msg) { if (verbosity >= VerbosityLevel.WARNINGS) { - console.log('Warning: ' + msg); + console.log(`Warning: ${msg}`); } } @@ -1732,17 +1110,19 @@ function assert(cond, msg) { } function isSameOrigin(baseUrl, otherUrl) { - try { - var base = new _url_polyfill.URL(baseUrl); + let base; - if (!base.origin || base.origin === 'null') { + try { + base = new URL(baseUrl); + + if (!base.origin || base.origin === "null") { return false; } } catch (e) { return false; } - var other = new _url_polyfill.URL(otherUrl, base); + const other = new URL(otherUrl, base); return base.origin === other.origin; } @@ -1752,11 +1132,11 @@ function _isValidProtocol(url) { } switch (url.protocol) { - case 'http:': - case 'https:': - case 'ftp:': - case 'mailto:': - case 'tel:': + case "http:": + case "https:": + case "ftp:": + case "mailto:": + case "tel:": return true; default: @@ -1770,7 +1150,7 @@ function createValidAbsoluteUrl(url, baseUrl) { } try { - var absoluteUrl = baseUrl ? new _url_polyfill.URL(url, baseUrl) : new _url_polyfill.URL(url); + const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url); if (_isValidProtocol(absoluteUrl)) { return absoluteUrl; @@ -1782,7 +1162,7 @@ function createValidAbsoluteUrl(url, baseUrl) { function shadow(obj, prop, value) { Object.defineProperty(obj, prop, { - value: value, + value, enumerable: true, configurable: true, writable: false @@ -1790,137 +1170,106 @@ function shadow(obj, prop, value) { return value; } -var PasswordException = function PasswordExceptionClosure() { - function PasswordException(msg, code) { - this.name = 'PasswordException'; - this.message = msg; +const BaseException = function BaseExceptionClosure() { + function BaseException(message) { + if (this.constructor === BaseException) { + unreachable("Cannot initialize BaseException."); + } + + this.message = message; + this.name = this.constructor.name; + } + + BaseException.prototype = new Error(); + BaseException.constructor = BaseException; + return BaseException; +}(); + +exports.BaseException = BaseException; + +class PasswordException extends BaseException { + constructor(msg, code) { + super(msg); this.code = code; } - PasswordException.prototype = new Error(); - PasswordException.constructor = PasswordException; - return PasswordException; -}(); +} exports.PasswordException = PasswordException; -var UnknownErrorException = function UnknownErrorExceptionClosure() { - function UnknownErrorException(msg, details) { - this.name = 'UnknownErrorException'; - this.message = msg; +class UnknownErrorException extends BaseException { + constructor(msg, details) { + super(msg); this.details = details; } - UnknownErrorException.prototype = new Error(); - UnknownErrorException.constructor = UnknownErrorException; - return UnknownErrorException; -}(); +} exports.UnknownErrorException = UnknownErrorException; -var InvalidPDFException = function InvalidPDFExceptionClosure() { - function InvalidPDFException(msg) { - this.name = 'InvalidPDFException'; - this.message = msg; - } - - InvalidPDFException.prototype = new Error(); - InvalidPDFException.constructor = InvalidPDFException; - return InvalidPDFException; -}(); +class InvalidPDFException extends BaseException {} exports.InvalidPDFException = InvalidPDFException; -var MissingPDFException = function MissingPDFExceptionClosure() { - function MissingPDFException(msg) { - this.name = 'MissingPDFException'; - this.message = msg; - } - - MissingPDFException.prototype = new Error(); - MissingPDFException.constructor = MissingPDFException; - return MissingPDFException; -}(); +class MissingPDFException extends BaseException {} exports.MissingPDFException = MissingPDFException; -var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() { - function UnexpectedResponseException(msg, status) { - this.name = 'UnexpectedResponseException'; - this.message = msg; +class UnexpectedResponseException extends BaseException { + constructor(msg, status) { + super(msg); this.status = status; } - UnexpectedResponseException.prototype = new Error(); - UnexpectedResponseException.constructor = UnexpectedResponseException; - return UnexpectedResponseException; -}(); +} exports.UnexpectedResponseException = UnexpectedResponseException; -var FormatError = function FormatErrorClosure() { - function FormatError(msg) { - this.message = msg; - } - - FormatError.prototype = new Error(); - FormatError.prototype.name = 'FormatError'; - FormatError.constructor = FormatError; - return FormatError; -}(); +class FormatError extends BaseException {} exports.FormatError = FormatError; -var AbortException = function AbortExceptionClosure() { - function AbortException(msg) { - this.name = 'AbortException'; - this.message = msg; - } - - AbortException.prototype = new Error(); - AbortException.constructor = AbortException; - return AbortException; -}(); +class AbortException extends BaseException {} exports.AbortException = AbortException; -var NullCharactersRegExp = /\x00/g; +const NullCharactersRegExp = /\x00/g; function removeNullCharacters(str) { - if (typeof str !== 'string') { - warn('The argument for removeNullCharacters must be a string.'); + if (typeof str !== "string") { + warn("The argument for removeNullCharacters must be a string."); return str; } - return str.replace(NullCharactersRegExp, ''); + 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; + assert(bytes !== null && typeof bytes === "object" && bytes.length !== undefined, "Invalid argument for bytesToString"); + const length = bytes.length; + const MAX_ARGUMENT_COUNT = 8192; if (length < MAX_ARGUMENT_COUNT) { return String.fromCharCode.apply(null, bytes); } - var strBuf = []; + const 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); + for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) { + const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); + const chunk = bytes.subarray(i, chunkEnd); strBuf.push(String.fromCharCode.apply(null, chunk)); } - return strBuf.join(''); + return strBuf.join(""); } function stringToBytes(str) { - assert(typeof str === 'string', 'Invalid argument for stringToBytes'); - var length = str.length; - var bytes = new Uint8Array(length); + assert(typeof str === "string", "Invalid argument for stringToBytes"); + const length = str.length; + const bytes = new Uint8Array(length); - for (var i = 0; i < length; ++i) { - bytes[i] = str.charCodeAt(i) & 0xFF; + for (let i = 0; i < length; ++i) { + bytes[i] = str.charCodeAt(i) & 0xff; } return bytes; @@ -1931,41 +1280,38 @@ function arrayByteLength(arr) { return arr.length; } - assert(arr.byteLength !== undefined); + assert(arr.byteLength !== undefined, "arrayByteLength - invalid argument."); return arr.byteLength; } function arraysToBytes(arr) { - if (arr.length === 1 && arr[0] instanceof Uint8Array) { + const length = arr.length; + + if (length === 1 && arr[0] instanceof Uint8Array) { return arr[0]; } - var resultLength = 0; - var i, - ii = arr.length; - var item, itemLength; + let resultLength = 0; - for (i = 0; i < ii; i++) { - item = arr[i]; - itemLength = arrayByteLength(item); - resultLength += itemLength; + for (let i = 0; i < length; i++) { + resultLength += arrayByteLength(arr[i]); } - var pos = 0; - var data = new Uint8Array(resultLength); + let pos = 0; + const data = new Uint8Array(resultLength); - for (i = 0; i < ii; i++) { - item = arr[i]; + for (let i = 0; i < length; i++) { + let item = arr[i]; if (!(item instanceof Uint8Array)) { - if (typeof item === 'string') { + if (typeof item === "string") { item = stringToBytes(item); } else { item = new Uint8Array(item); } } - itemLength = item.byteLength; + const itemLength = item.byteLength; data.set(item, pos); pos += itemLength; } @@ -1977,103 +1323,96 @@ function string32(value) { return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); } -function log2(x) { - if (x <= 0) { - return 0; - } - - return Math.ceil(Math.log2(x)); -} - -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(4); + const buffer8 = new Uint8Array(4); buffer8[0] = 1; - var view32 = new Uint32Array(buffer8.buffer, 0, 1); + const view32 = new Uint32Array(buffer8.buffer, 0, 1); return view32[0] === 1; } +const IsLittleEndianCached = { + get value() { + return shadow(this, "value", isLittleEndian()); + } + +}; +exports.IsLittleEndianCached = IsLittleEndianCached; + function isEvalSupported() { try { - new Function(''); + new Function(""); return true; } catch (e) { return false; } } -var Util = function UtilClosure() { - function Util() {} +const IsEvalSupportedCached = { + get value() { + return shadow(this, "value", isEvalSupported()); + } - var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')']; +}; +exports.IsEvalSupportedCached = IsEvalSupportedCached; +const rgbBuf = ["rgb(", 0, ",", 0, ",", 0, ")"]; - Util.makeCssRgb = function Util_makeCssRgb(r, g, b) { +class Util { + static makeCssRgb(r, g, b) { rgbBuf[1] = r; rgbBuf[3] = g; rgbBuf[5] = b; - return rgbBuf.join(''); - }; + return rgbBuf.join(""); + } - Util.transform = function Util_transform(m1, m2) { + static 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]; + static applyTransform(p, m) { + const xt = p[0] * m[0] + p[1] * m[2] + m[4]; + const 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; + static applyInverseTransform(p, m) { + const d = m[0] * m[3] - m[1] * m[2]; + const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; + const 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); + static getAxialAlignedBoundingBox(r, m) { + const p1 = Util.applyTransform(r, m); + const p2 = Util.applyTransform(r.slice(2, 4), m); + const p3 = Util.applyTransform([r[0], r[3]], m); + const 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]; + static inverseTransform(m) { + const 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) { + static 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; + static singularValueDecompose2dScale(m) { + const transpose = [m[0], m[2], m[1], m[3]]; + const a = m[0] * transpose[0] + m[1] * transpose[2]; + const b = m[0] * transpose[1] + m[1] * transpose[3]; + const c = m[2] * transpose[0] + m[3] * transpose[2]; + const d = m[2] * transpose[1] + m[3] * transpose[3]; + const first = (a + d) / 2; + const second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2; + const sx = first + second || 1; + const sy = first - second || 1; return [Math.sqrt(sx), Math.sqrt(sy)]; - }; + } - Util.normalizeRect = function Util_normalizeRect(rect) { - var r = rect.slice(0); + static normalizeRect(rect) { + const r = rect.slice(0); if (rect[0] > rect[2]) { r[0] = rect[2]; @@ -2086,16 +1425,16 @@ var Util = function UtilClosure() { } return r; - }; + } - Util.intersect = function Util_intersect(rect1, rect2) { + static 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 = []; + const orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare); + const orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare); + const result = []; rect1 = Util.normalizeRect(rect1); rect2 = Util.normalizeRect(rect2); @@ -2103,42 +1442,48 @@ var Util = function UtilClosure() { result[0] = orderedX[1]; result[2] = orderedX[2]; } else { - return false; + return null; } 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 null; } return result; - }; + } - return Util; -}(); +} exports.Util = Util; -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]; +const 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 = []; + const length = str.length, + strBuf = []; - if (str[0] === '\xFE' && str[1] === '\xFF') { - for (i = 2; i < n; i += 2) { + if (str[0] === "\xFE" && str[1] === "\xFF") { + for (let i = 2; i < length; i += 2) { strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1))); } + } else if (str[0] === "\xFF" && str[1] === "\xFE") { + for (let i = 2; i < length; i += 2) { + strBuf.push(String.fromCharCode(str.charCodeAt(i + 1) << 8 | str.charCodeAt(i))); + } } else { - for (i = 0; i < n; ++i) { - var code = PDFStringTranslateTable[str.charCodeAt(i)]; + for (let i = 0; i < length; ++i) { + const code = PDFStringTranslateTable[str.charCodeAt(i)]; strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); } } - return strBuf.join(''); + return strBuf.join(""); +} + +function escapeString(str) { + return str.replace(/([\(\)\\])/g, "\\$1"); } function stringToUTF8String(str) { @@ -2149,28 +1494,20 @@ 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'; + return typeof v === "boolean"; } function isNum(v) { - return typeof v === 'number'; + return typeof v === "number"; } function isString(v) { - return typeof v === 'string'; + return typeof v === "string"; } function isArrayBuffer(v) { - return _typeof(v) === 'object' && v !== null && v.byteLength !== undefined; + return typeof v === "object" && v !== null && v.byteLength !== undefined; } function isArrayEqual(arr1, arr2) { @@ -2183,17 +1520,19 @@ function isArrayEqual(arr1, arr2) { }); } -function isSpace(ch) { - return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A; +function getModificationDate(date = new Date(Date.now())) { + const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, "0"), (date.getUTCDate() + 1).toString().padStart(2, "0"), date.getUTCHours().toString().padStart(2, "0"), date.getUTCMinutes().toString().padStart(2, "0"), date.getUTCSeconds().toString().padStart(2, "0")]; + return buffer.join(""); } function createPromiseCapability() { - var capability = Object.create(null); - var isSettled = false; - Object.defineProperty(capability, 'settled', { - get: function get() { + const capability = Object.create(null); + let isSettled = false; + Object.defineProperty(capability, "settled", { + get() { return isSettled; } + }); capability.promise = new Promise(function (resolve, reject) { capability.resolve = function (data) { @@ -2209,28 +1548,26 @@ function createPromiseCapability() { return capability; } -var createObjectURL = function createObjectURLClosure() { - var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; - return function createObjectURL(data, contentType) { - var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - if (!forceDataSchema && _url_polyfill.URL.createObjectURL) { - var blob = new Blob([data], { +const createObjectURL = function createObjectURLClosure() { + const digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + return function createObjectURL(data, contentType, forceDataSchema = false) { + if (!forceDataSchema && URL.createObjectURL) { + const blob = new Blob([data], { type: contentType }); - return _url_polyfill.URL.createObjectURL(blob); + return URL.createObjectURL(blob); } - var buffer = 'data:' + contentType + ';base64,'; + let 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; + for (let i = 0, ii = data.length; i < ii; i += 3) { + const b1 = data[i] & 0xff; + const b2 = data[i + 1] & 0xff; + const b3 = data[i + 2] & 0xff; + const d1 = b1 >> 2, + d2 = (b1 & 3) << 4 | b2 >> 4; + const d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64; + const d4 = i + 2 < ii ? b3 & 0x3f : 64; buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4]; } @@ -2241,8697 +1578,32 @@ var createObjectURL = function createObjectURLClosure() { exports.createObjectURL = createObjectURL; /***/ }), -/* 6 */ +/* 3 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +var _is_node = __w_pdfjs_require__(4); -var globalScope = __w_pdfjs_require__(7); - -if (!globalScope._pdfjsCompatibilityChecked) { - globalScope._pdfjsCompatibilityChecked = true; - - var isNodeJS = __w_pdfjs_require__(8); - - var hasDOM = (typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object' && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object'; - - (function checkNodeBtoa() { - if (globalScope.btoa || !isNodeJS()) { - return; - } - - globalScope.btoa = function (chars) { - return Buffer.from(chars, 'binary').toString('base64'); - }; - })(); - - (function checkNodeAtob() { - if (globalScope.atob || !isNodeJS()) { - return; - } - - globalScope.atob = function (input) { - return Buffer.from(input, 'base64').toString('binary'); - }; - })(); - - (function checkChildNodeRemove() { - if (!hasDOM) { - return; - } - - if (typeof Element.prototype.remove !== 'undefined') { - return; - } - - Element.prototype.remove = function () { - if (this.parentNode) { - this.parentNode.removeChild(this); - } - }; - })(); - - (function checkDOMTokenListAddRemove() { - if (!hasDOM || isNodeJS()) { - return; - } - - var div = document.createElement('div'); - div.classList.add('testOne', 'testTwo'); - - if (div.classList.contains('testOne') === true && div.classList.contains('testTwo') === true) { - return; - } - - var OriginalDOMTokenListAdd = DOMTokenList.prototype.add; - var OriginalDOMTokenListRemove = DOMTokenList.prototype.remove; - - DOMTokenList.prototype.add = function () { - for (var _len = arguments.length, tokens = new Array(_len), _key = 0; _key < _len; _key++) { - tokens[_key] = arguments[_key]; - } - - for (var _i = 0, _tokens = tokens; _i < _tokens.length; _i++) { - var token = _tokens[_i]; - OriginalDOMTokenListAdd.call(this, token); - } - }; - - DOMTokenList.prototype.remove = function () { - for (var _len2 = arguments.length, tokens = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - tokens[_key2] = arguments[_key2]; - } - - for (var _i2 = 0, _tokens2 = tokens; _i2 < _tokens2.length; _i2++) { - var token = _tokens2[_i2]; - OriginalDOMTokenListRemove.call(this, token); - } - }; - })(); - - (function checkDOMTokenListToggle() { - if (!hasDOM || isNodeJS()) { - return; - } - - var div = document.createElement('div'); - - if (div.classList.toggle('test', 0) === false) { - return; - } - - DOMTokenList.prototype.toggle = function (token) { - var force = arguments.length > 1 ? !!arguments[1] : !this.contains(token); - return this[force ? 'add' : 'remove'](token), force; - }; - })(); - - (function checkStringStartsWith() { - if (String.prototype.startsWith) { - return; - } - - __w_pdfjs_require__(9); - })(); - - (function checkStringEndsWith() { - if (String.prototype.endsWith) { - return; - } - - __w_pdfjs_require__(40); - })(); - - (function checkStringIncludes() { - if (String.prototype.includes) { - return; - } - - __w_pdfjs_require__(42); - })(); - - (function checkArrayIncludes() { - if (Array.prototype.includes) { - return; - } - - __w_pdfjs_require__(44); - })(); - - (function checkArrayFrom() { - if (Array.from) { - return; - } - - __w_pdfjs_require__(51); - })(); - - (function checkObjectAssign() { - if (Object.assign) { - return; - } - - __w_pdfjs_require__(74); - })(); - - (function checkMathLog2() { - if (Math.log2) { - return; - } - - Math.log2 = __w_pdfjs_require__(79); - })(); - - (function checkNumberIsNaN() { - if (Number.isNaN) { - return; - } - - Number.isNaN = __w_pdfjs_require__(81); - })(); - - (function checkNumberIsInteger() { - if (Number.isInteger) { - return; - } - - Number.isInteger = __w_pdfjs_require__(83); - })(); - - (function checkPromise() { - if (globalScope.Promise && globalScope.Promise.prototype && globalScope.Promise.prototype["finally"]) { - return; - } - - globalScope.Promise = __w_pdfjs_require__(86); - })(); - - (function checkWeakMap() { - if (globalScope.WeakMap) { - return; - } - - globalScope.WeakMap = __w_pdfjs_require__(106); - })(); - - (function checkWeakSet() { - if (globalScope.WeakSet) { - return; - } - - globalScope.WeakSet = __w_pdfjs_require__(123); - })(); - - (function checkStringCodePointAt() { - if (String.codePointAt) { - return; - } - - String.codePointAt = __w_pdfjs_require__(127); - })(); - - (function checkStringFromCodePoint() { - if (String.fromCodePoint) { - return; - } - - String.fromCodePoint = __w_pdfjs_require__(129); - })(); - - (function checkSymbol() { - if (globalScope.Symbol) { - return; - } - - __w_pdfjs_require__(131); - })(); - - (function checkStringPadStart() { - if (String.prototype.padStart) { - return; - } - - __w_pdfjs_require__(138); - })(); - - (function checkStringPadEnd() { - if (String.prototype.padEnd) { - return; - } - - __w_pdfjs_require__(142); - })(); - - (function checkObjectValues() { - if (Object.values) { - return; - } - - Object.values = __w_pdfjs_require__(144); - })(); -} +; /***/ }), -/* 7 */ +/* 4 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; -module.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {}; - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -module.exports = function isNodeJS() { - return (typeof process === "undefined" ? "undefined" : _typeof(process)) === 'object' && process + '' === '[object process]' && !process.versions['nw'] && !process.versions['electron']; -}; - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(10); - -module.exports = __w_pdfjs_require__(13).String.startsWith; - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(11); - -var toLength = __w_pdfjs_require__(32); - -var context = __w_pdfjs_require__(34); - -var STARTS_WITH = 'startsWith'; -var $startsWith = ''[STARTS_WITH]; -$export($export.P + $export.F * __w_pdfjs_require__(39)(STARTS_WITH), 'String', { - startsWith: function startsWith(searchString) { - var that = context(this, searchString, STARTS_WITH); - var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length)); - var search = String(searchString); - return $startsWith ? $startsWith.call(that, search, index) : that.slice(index, index + search.length) === search; - } +Object.defineProperty(exports, "__esModule", { + value: true }); +exports.isNodeJS = void 0; +const isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser"); +exports.isNodeJS = isNodeJS; /***/ }), -/* 11 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(12); - -var core = __w_pdfjs_require__(13); - -var hide = __w_pdfjs_require__(14); - -var redefine = __w_pdfjs_require__(24); - -var ctx = __w_pdfjs_require__(30); - -var PROTOTYPE = 'prototype'; - -var $export = function $export(type, name, source) { - var IS_FORCED = type & $export.F; - var IS_GLOBAL = type & $export.G; - var IS_STATIC = type & $export.S; - var IS_PROTO = type & $export.P; - var IS_BIND = type & $export.B; - var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; - var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); - var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); - var key, own, out, exp; - if (IS_GLOBAL) source = name; - - for (key in source) { - own = !IS_FORCED && target && target[key] !== undefined; - out = (own ? target : source)[key]; - exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - if (target) redefine(target, key, out, type & $export.U); - if (exports[key] != out) hide(exports, key, exp); - if (IS_PROTO && expProto[key] != out) expProto[key] = out; - } -}; - -global.core = core; -$export.F = 1; -$export.G = 2; -$export.S = 4; -$export.P = 8; -$export.B = 16; -$export.W = 32; -$export.U = 64; -$export.R = 128; -module.exports = $export; - -/***/ }), -/* 12 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); -if (typeof __g == 'number') __g = global; - -/***/ }), -/* 13 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var core = module.exports = { - version: '2.6.9' -}; -if (typeof __e == 'number') __e = core; - -/***/ }), -/* 14 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var dP = __w_pdfjs_require__(15); - -var createDesc = __w_pdfjs_require__(23); - -module.exports = __w_pdfjs_require__(19) ? function (object, key, value) { - return dP.f(object, key, createDesc(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - -/***/ }), -/* 15 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var anObject = __w_pdfjs_require__(16); - -var IE8_DOM_DEFINE = __w_pdfjs_require__(18); - -var toPrimitive = __w_pdfjs_require__(22); - -var dP = Object.defineProperty; -exports.f = __w_pdfjs_require__(19) ? Object.defineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return dP(O, P, Attributes); - } catch (e) {} - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - -/***/ }), -/* 16 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(17); - -module.exports = function (it) { - if (!isObject(it)) throw TypeError(it + ' is not an object!'); - return it; -}; - -/***/ }), -/* 17 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -module.exports = function (it) { - return _typeof(it) === 'object' ? it !== null : typeof it === 'function'; -}; - -/***/ }), -/* 18 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = !__w_pdfjs_require__(19) && !__w_pdfjs_require__(20)(function () { - return Object.defineProperty(__w_pdfjs_require__(21)('div'), 'a', { - get: function get() { - return 7; - } - }).a != 7; -}); - -/***/ }), -/* 19 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = !__w_pdfjs_require__(20)(function () { - return Object.defineProperty({}, 'a', { - get: function get() { - return 7; - } - }).a != 7; -}); - -/***/ }), -/* 20 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (exec) { - try { - return !!exec(); - } catch (e) { - return true; - } -}; - -/***/ }), -/* 21 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(17); - -var document = __w_pdfjs_require__(12).document; - -var is = isObject(document) && isObject(document.createElement); - -module.exports = function (it) { - return is ? document.createElement(it) : {}; -}; - -/***/ }), -/* 22 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(17); - -module.exports = function (it, S) { - if (!isObject(it)) return it; - var fn, val; - if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; - if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - -/***/ }), -/* 23 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - -/***/ }), -/* 24 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(12); - -var hide = __w_pdfjs_require__(14); - -var has = __w_pdfjs_require__(25); - -var SRC = __w_pdfjs_require__(26)('src'); - -var $toString = __w_pdfjs_require__(27); - -var TO_STRING = 'toString'; -var TPL = ('' + $toString).split(TO_STRING); - -__w_pdfjs_require__(13).inspectSource = function (it) { - return $toString.call(it); -}; - -(module.exports = function (O, key, val, safe) { - var isFunction = typeof val == 'function'; - if (isFunction) has(val, 'name') || hide(val, 'name', key); - if (O[key] === val) return; - if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); - - if (O === global) { - O[key] = val; - } else if (!safe) { - delete O[key]; - hide(O, key, val); - } else if (O[key]) { - O[key] = val; - } else { - hide(O, key, val); - } -})(Function.prototype, TO_STRING, function toString() { - return typeof this == 'function' && this[SRC] || $toString.call(this); -}); - -/***/ }), -/* 25 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var hasOwnProperty = {}.hasOwnProperty; - -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - -/***/ }), -/* 26 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var id = 0; -var px = Math.random(); - -module.exports = function (key) { - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); -}; - -/***/ }), -/* 27 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = __w_pdfjs_require__(28)('native-function-to-string', Function.toString); - -/***/ }), -/* 28 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var core = __w_pdfjs_require__(13); - -var global = __w_pdfjs_require__(12); - -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || (global[SHARED] = {}); -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: core.version, - mode: __w_pdfjs_require__(29) ? 'pure' : 'global', - copyright: '© 2019 Denis Pushkarev (zloirock.ru)' -}); - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = false; - -/***/ }), -/* 30 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var aFunction = __w_pdfjs_require__(31); - -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - - switch (length) { - case 1: - return function (a) { - return fn.call(that, a); - }; - - case 2: - return function (a, b) { - return fn.call(that, a, b); - }; - - case 3: - return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - - return function () { - return fn.apply(that, arguments); - }; -}; - -/***/ }), -/* 31 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (it) { - if (typeof it != 'function') throw TypeError(it + ' is not a function!'); - return it; -}; - -/***/ }), -/* 32 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toInteger = __w_pdfjs_require__(33); - -var min = Math.min; - -module.exports = function (it) { - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; -}; - -/***/ }), -/* 33 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var ceil = Math.ceil; -var floor = Math.floor; - -module.exports = function (it) { - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); -}; - -/***/ }), -/* 34 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isRegExp = __w_pdfjs_require__(35); - -var defined = __w_pdfjs_require__(38); - -module.exports = function (that, searchString, NAME) { - if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); - return String(defined(that)); -}; - -/***/ }), -/* 35 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(17); - -var cof = __w_pdfjs_require__(36); - -var MATCH = __w_pdfjs_require__(37)('match'); - -module.exports = function (it) { - var isRegExp; - return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); -}; - -/***/ }), -/* 36 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - -/***/ }), -/* 37 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var store = __w_pdfjs_require__(28)('wks'); - -var uid = __w_pdfjs_require__(26); - -var _Symbol = __w_pdfjs_require__(12).Symbol; - -var USE_SYMBOL = typeof _Symbol == 'function'; - -var $exports = module.exports = function (name) { - return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name)); -}; - -$exports.store = store; - -/***/ }), -/* 38 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - -/***/ }), -/* 39 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var MATCH = __w_pdfjs_require__(37)('match'); - -module.exports = function (KEY) { - var re = /./; - - try { - '/./'[KEY](re); - } catch (e) { - try { - re[MATCH] = false; - return !'/./'[KEY](re); - } catch (f) {} - } - - return true; -}; - -/***/ }), -/* 40 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(41); - -module.exports = __w_pdfjs_require__(13).String.endsWith; - -/***/ }), -/* 41 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(11); - -var toLength = __w_pdfjs_require__(32); - -var context = __w_pdfjs_require__(34); - -var ENDS_WITH = 'endsWith'; -var $endsWith = ''[ENDS_WITH]; -$export($export.P + $export.F * __w_pdfjs_require__(39)(ENDS_WITH), 'String', { - endsWith: function endsWith(searchString) { - var that = context(this, searchString, ENDS_WITH); - var endPosition = arguments.length > 1 ? arguments[1] : undefined; - var len = toLength(that.length); - var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len); - var search = String(searchString); - return $endsWith ? $endsWith.call(that, search, end) : that.slice(end - search.length, end) === search; - } -}); - -/***/ }), -/* 42 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(43); - -module.exports = __w_pdfjs_require__(13).String.includes; - -/***/ }), -/* 43 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(11); - -var context = __w_pdfjs_require__(34); - -var INCLUDES = 'includes'; -$export($export.P + $export.F * __w_pdfjs_require__(39)(INCLUDES), 'String', { - includes: function includes(searchString) { - return !!~context(this, searchString, INCLUDES).indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); - } -}); - -/***/ }), -/* 44 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(45); - -module.exports = __w_pdfjs_require__(13).Array.includes; - -/***/ }), -/* 45 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(11); - -var $includes = __w_pdfjs_require__(46)(true); - -$export($export.P, 'Array', { - includes: function includes(el) { - return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); - } -}); - -__w_pdfjs_require__(50)('includes'); - -/***/ }), -/* 46 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toIObject = __w_pdfjs_require__(47); - -var toLength = __w_pdfjs_require__(32); - -var toAbsoluteIndex = __w_pdfjs_require__(49); - -module.exports = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - if (value != value) return true; - } else for (; length > index; index++) { - if (IS_INCLUDES || index in O) { - if (O[index] === el) return IS_INCLUDES || index || 0; - } - } - return !IS_INCLUDES && -1; - }; -}; - -/***/ }), -/* 47 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var IObject = __w_pdfjs_require__(48); - -var defined = __w_pdfjs_require__(38); - -module.exports = function (it) { - return IObject(defined(it)); -}; - -/***/ }), -/* 48 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var cof = __w_pdfjs_require__(36); - -module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { - return cof(it) == 'String' ? it.split('') : Object(it); -}; - -/***/ }), -/* 49 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toInteger = __w_pdfjs_require__(33); - -var max = Math.max; -var min = Math.min; - -module.exports = function (index, length) { - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); -}; - -/***/ }), -/* 50 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var UNSCOPABLES = __w_pdfjs_require__(37)('unscopables'); - -var ArrayProto = Array.prototype; -if (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(14)(ArrayProto, UNSCOPABLES, {}); - -module.exports = function (key) { - ArrayProto[UNSCOPABLES][key] = true; -}; - -/***/ }), -/* 51 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(52); - -__w_pdfjs_require__(67); - -module.exports = __w_pdfjs_require__(13).Array.from; - -/***/ }), -/* 52 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $at = __w_pdfjs_require__(53)(true); - -__w_pdfjs_require__(54)(String, 'String', function (iterated) { - this._t = String(iterated); - this._i = 0; -}, function () { - var O = this._t; - var index = this._i; - var point; - if (index >= O.length) return { - value: undefined, - done: true - }; - point = $at(O, index); - this._i += point.length; - return { - value: point, - done: false - }; -}); - -/***/ }), -/* 53 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toInteger = __w_pdfjs_require__(33); - -var defined = __w_pdfjs_require__(38); - -module.exports = function (TO_STRING) { - return function (that, pos) { - var s = String(defined(that)); - var i = toInteger(pos); - var l = s.length; - var a, b; - if (i < 0 || i >= l) return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; -}; - -/***/ }), -/* 54 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var LIBRARY = __w_pdfjs_require__(29); - -var $export = __w_pdfjs_require__(11); - -var redefine = __w_pdfjs_require__(24); - -var hide = __w_pdfjs_require__(14); - -var Iterators = __w_pdfjs_require__(55); - -var $iterCreate = __w_pdfjs_require__(56); - -var setToStringTag = __w_pdfjs_require__(64); - -var getPrototypeOf = __w_pdfjs_require__(65); - -var ITERATOR = __w_pdfjs_require__(37)('iterator'); - -var BUGGY = !([].keys && 'next' in [].keys()); -var FF_ITERATOR = '@@iterator'; -var KEYS = 'keys'; -var VALUES = 'values'; - -var returnThis = function returnThis() { - return this; -}; - -module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { - $iterCreate(Constructor, NAME, next); - - var getMethod = function getMethod(kind) { - if (!BUGGY && kind in proto) return proto[kind]; - - switch (kind) { - case KEYS: - return function keys() { - return new Constructor(this, kind); - }; - - case VALUES: - return function values() { - return new Constructor(this, kind); - }; - } - - return function entries() { - return new Constructor(this, kind); - }; - }; - - var TAG = NAME + ' Iterator'; - var DEF_VALUES = DEFAULT == VALUES; - var VALUES_BUG = false; - var proto = Base.prototype; - var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; - var $default = $native || getMethod(DEFAULT); - var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; - var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; - var methods, key, IteratorPrototype; - - if ($anyNative) { - IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); - - if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { - setToStringTag(IteratorPrototype, TAG, true); - if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); - } - } - - if (DEF_VALUES && $native && $native.name !== VALUES) { - VALUES_BUG = true; - - $default = function values() { - return $native.call(this); - }; - } - - if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { - hide(proto, ITERATOR, $default); - } - - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - - if (DEFAULT) { - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if (FORCED) for (key in methods) { - if (!(key in proto)) redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - - return methods; -}; - -/***/ }), -/* 55 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = {}; - -/***/ }), -/* 56 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var create = __w_pdfjs_require__(57); - -var descriptor = __w_pdfjs_require__(23); - -var setToStringTag = __w_pdfjs_require__(64); - -var IteratorPrototype = {}; - -__w_pdfjs_require__(14)(IteratorPrototype, __w_pdfjs_require__(37)('iterator'), function () { - return this; -}); - -module.exports = function (Constructor, NAME, next) { - Constructor.prototype = create(IteratorPrototype, { - next: descriptor(1, next) - }); - setToStringTag(Constructor, NAME + ' Iterator'); -}; - -/***/ }), -/* 57 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var anObject = __w_pdfjs_require__(16); - -var dPs = __w_pdfjs_require__(58); - -var enumBugKeys = __w_pdfjs_require__(62); - -var IE_PROTO = __w_pdfjs_require__(61)('IE_PROTO'); - -var Empty = function Empty() {}; - -var PROTOTYPE = 'prototype'; - -var _createDict = function createDict() { - var iframe = __w_pdfjs_require__(21)('iframe'); - - var i = enumBugKeys.length; - var lt = '<'; - var gt = '>'; - var iframeDocument; - iframe.style.display = 'none'; - - __w_pdfjs_require__(63).appendChild(iframe); - - iframe.src = 'javascript:'; - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - _createDict = iframeDocument.F; - - while (i--) { - delete _createDict[PROTOTYPE][enumBugKeys[i]]; - } - - return _createDict(); -}; - -module.exports = Object.create || function create(O, Properties) { - var result; - - if (O !== null) { - Empty[PROTOTYPE] = anObject(O); - result = new Empty(); - Empty[PROTOTYPE] = null; - result[IE_PROTO] = O; - } else result = _createDict(); - - return Properties === undefined ? result : dPs(result, Properties); -}; - -/***/ }), -/* 58 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var dP = __w_pdfjs_require__(15); - -var anObject = __w_pdfjs_require__(16); - -var getKeys = __w_pdfjs_require__(59); - -module.exports = __w_pdfjs_require__(19) ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = getKeys(Properties); - var length = keys.length; - var i = 0; - var P; - - while (length > i) { - dP.f(O, P = keys[i++], Properties[P]); - } - - return O; -}; - -/***/ }), -/* 59 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $keys = __w_pdfjs_require__(60); - -var enumBugKeys = __w_pdfjs_require__(62); - -module.exports = Object.keys || function keys(O) { - return $keys(O, enumBugKeys); -}; - -/***/ }), -/* 60 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var has = __w_pdfjs_require__(25); - -var toIObject = __w_pdfjs_require__(47); - -var arrayIndexOf = __w_pdfjs_require__(46)(false); - -var IE_PROTO = __w_pdfjs_require__(61)('IE_PROTO'); - -module.exports = function (object, names) { - var O = toIObject(object); - var i = 0; - var result = []; - var key; - - for (key in O) { - if (key != IE_PROTO) has(O, key) && result.push(key); - } - - while (names.length > i) { - if (has(O, key = names[i++])) { - ~arrayIndexOf(result, key) || result.push(key); - } - } - - return result; -}; - -/***/ }), -/* 61 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var shared = __w_pdfjs_require__(28)('keys'); - -var uid = __w_pdfjs_require__(26); - -module.exports = function (key) { - return shared[key] || (shared[key] = uid(key)); -}; - -/***/ }), -/* 62 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(','); - -/***/ }), -/* 63 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var document = __w_pdfjs_require__(12).document; - -module.exports = document && document.documentElement; - -/***/ }), -/* 64 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var def = __w_pdfjs_require__(15).f; - -var has = __w_pdfjs_require__(25); - -var TAG = __w_pdfjs_require__(37)('toStringTag'); - -module.exports = function (it, tag, stat) { - if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { - configurable: true, - value: tag - }); -}; - -/***/ }), -/* 65 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var has = __w_pdfjs_require__(25); - -var toObject = __w_pdfjs_require__(66); - -var IE_PROTO = __w_pdfjs_require__(61)('IE_PROTO'); - -var ObjectProto = Object.prototype; - -module.exports = Object.getPrototypeOf || function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } - - return O instanceof Object ? ObjectProto : null; -}; - -/***/ }), -/* 66 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var defined = __w_pdfjs_require__(38); - -module.exports = function (it) { - return Object(defined(it)); -}; - -/***/ }), -/* 67 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var ctx = __w_pdfjs_require__(30); - -var $export = __w_pdfjs_require__(11); - -var toObject = __w_pdfjs_require__(66); - -var call = __w_pdfjs_require__(68); - -var isArrayIter = __w_pdfjs_require__(69); - -var toLength = __w_pdfjs_require__(32); - -var createProperty = __w_pdfjs_require__(70); - -var getIterFn = __w_pdfjs_require__(71); - -$export($export.S + $export.F * !__w_pdfjs_require__(73)(function (iter) { - Array.from(iter); -}), 'Array', { - from: function from(arrayLike) { - var O = toObject(arrayLike); - var C = typeof this == 'function' ? this : Array; - var aLen = arguments.length; - var mapfn = aLen > 1 ? arguments[1] : undefined; - var mapping = mapfn !== undefined; - var index = 0; - var iterFn = getIterFn(O); - var length, result, step, iterator; - if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); - - if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { - for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { - createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); - } - } else { - length = toLength(O.length); - - for (result = new C(length); length > index; index++) { - createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); - } - } - - result.length = index; - return result; - } -}); - -/***/ }), -/* 68 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var anObject = __w_pdfjs_require__(16); - -module.exports = function (iterator, fn, value, entries) { - try { - return entries ? fn(anObject(value)[0], value[1]) : fn(value); - } catch (e) { - var ret = iterator['return']; - if (ret !== undefined) anObject(ret.call(iterator)); - throw e; - } -}; - -/***/ }), -/* 69 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var Iterators = __w_pdfjs_require__(55); - -var ITERATOR = __w_pdfjs_require__(37)('iterator'); - -var ArrayProto = Array.prototype; - -module.exports = function (it) { - return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); -}; - -/***/ }), -/* 70 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $defineProperty = __w_pdfjs_require__(15); - -var createDesc = __w_pdfjs_require__(23); - -module.exports = function (object, index, value) { - if (index in object) $defineProperty.f(object, index, createDesc(0, value));else object[index] = value; -}; - -/***/ }), -/* 71 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var classof = __w_pdfjs_require__(72); - -var ITERATOR = __w_pdfjs_require__(37)('iterator'); - -var Iterators = __w_pdfjs_require__(55); - -module.exports = __w_pdfjs_require__(13).getIteratorMethod = function (it) { - if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)]; -}; - -/***/ }), -/* 72 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var cof = __w_pdfjs_require__(36); - -var TAG = __w_pdfjs_require__(37)('toStringTag'); - -var ARG = cof(function () { - return arguments; -}()) == 'Arguments'; - -var tryGet = function tryGet(it, key) { - try { - return it[key]; - } catch (e) {} -}; - -module.exports = function (it) { - var O, T, B; - return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T : ARG ? cof(O) : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; -}; - -/***/ }), -/* 73 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var ITERATOR = __w_pdfjs_require__(37)('iterator'); - -var SAFE_CLOSING = false; - -try { - var riter = [7][ITERATOR](); - - riter['return'] = function () { - SAFE_CLOSING = true; - }; - - Array.from(riter, function () { - throw 2; - }); -} catch (e) {} - -module.exports = function (exec, skipClosing) { - if (!skipClosing && !SAFE_CLOSING) return false; - var safe = false; - - try { - var arr = [7]; - var iter = arr[ITERATOR](); - - iter.next = function () { - return { - done: safe = true - }; - }; - - arr[ITERATOR] = function () { - return iter; - }; - - exec(arr); - } catch (e) {} - - return safe; -}; - -/***/ }), -/* 74 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(75); - -module.exports = __w_pdfjs_require__(13).Object.assign; - -/***/ }), -/* 75 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(11); - -$export($export.S + $export.F, 'Object', { - assign: __w_pdfjs_require__(76) -}); - -/***/ }), -/* 76 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var DESCRIPTORS = __w_pdfjs_require__(19); - -var getKeys = __w_pdfjs_require__(59); - -var gOPS = __w_pdfjs_require__(77); - -var pIE = __w_pdfjs_require__(78); - -var toObject = __w_pdfjs_require__(66); - -var IObject = __w_pdfjs_require__(48); - -var $assign = Object.assign; -module.exports = !$assign || __w_pdfjs_require__(20)(function () { - var A = {}; - var B = {}; - var S = Symbol(); - var K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function (k) { - B[k] = k; - }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; -}) ? function assign(target, source) { - var T = toObject(target); - var aLen = arguments.length; - var index = 1; - var getSymbols = gOPS.f; - var isEnum = pIE.f; - - while (aLen > index) { - var S = IObject(arguments[index++]); - var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); - var length = keys.length; - var j = 0; - var key; - - while (length > j) { - key = keys[j++]; - if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key]; - } - } - - return T; -} : $assign; - -/***/ }), -/* 77 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -exports.f = Object.getOwnPropertySymbols; - -/***/ }), -/* 78 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -exports.f = {}.propertyIsEnumerable; - -/***/ }), -/* 79 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(80); - -module.exports = __w_pdfjs_require__(13).Math.log2; - -/***/ }), -/* 80 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(11); - -$export($export.S, 'Math', { - log2: function log2(x) { - return Math.log(x) / Math.LN2; - } -}); - -/***/ }), -/* 81 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(82); - -module.exports = __w_pdfjs_require__(13).Number.isNaN; - -/***/ }), -/* 82 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(11); - -$export($export.S, 'Number', { - isNaN: function isNaN(number) { - return number != number; - } -}); - -/***/ }), -/* 83 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(84); - -module.exports = __w_pdfjs_require__(13).Number.isInteger; - -/***/ }), -/* 84 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(11); - -$export($export.S, 'Number', { - isInteger: __w_pdfjs_require__(85) -}); - -/***/ }), -/* 85 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(17); - -var floor = Math.floor; - -module.exports = function isInteger(it) { - return !isObject(it) && isFinite(it) && floor(it) === it; -}; - -/***/ }), -/* 86 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(87); - -__w_pdfjs_require__(52); - -__w_pdfjs_require__(88); - -__w_pdfjs_require__(91); - -__w_pdfjs_require__(104); - -__w_pdfjs_require__(105); - -module.exports = __w_pdfjs_require__(13).Promise; - -/***/ }), -/* 87 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var classof = __w_pdfjs_require__(72); - -var test = {}; -test[__w_pdfjs_require__(37)('toStringTag')] = 'z'; - -if (test + '' != '[object z]') { - __w_pdfjs_require__(24)(Object.prototype, 'toString', function toString() { - return '[object ' + classof(this) + ']'; - }, true); -} - -/***/ }), -/* 88 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $iterators = __w_pdfjs_require__(89); - -var getKeys = __w_pdfjs_require__(59); - -var redefine = __w_pdfjs_require__(24); - -var global = __w_pdfjs_require__(12); - -var hide = __w_pdfjs_require__(14); - -var Iterators = __w_pdfjs_require__(55); - -var wks = __w_pdfjs_require__(37); - -var ITERATOR = wks('iterator'); -var TO_STRING_TAG = wks('toStringTag'); -var ArrayValues = Iterators.Array; -var DOMIterables = { - CSSRuleList: true, - CSSStyleDeclaration: false, - CSSValueList: false, - ClientRectList: false, - DOMRectList: false, - DOMStringList: false, - DOMTokenList: true, - DataTransferItemList: false, - FileList: false, - HTMLAllCollection: false, - HTMLCollection: false, - HTMLFormElement: false, - HTMLSelectElement: false, - MediaList: true, - MimeTypeArray: false, - NamedNodeMap: false, - NodeList: true, - PaintRequestList: false, - Plugin: false, - PluginArray: false, - SVGLengthList: false, - SVGNumberList: false, - SVGPathSegList: false, - SVGPointList: false, - SVGStringList: false, - SVGTransformList: false, - SourceBufferList: false, - StyleSheetList: true, - TextTrackCueList: false, - TextTrackList: false, - TouchList: false -}; - -for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) { - var NAME = collections[i]; - var explicit = DOMIterables[NAME]; - var Collection = global[NAME]; - var proto = Collection && Collection.prototype; - var key; - - if (proto) { - if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues); - if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = ArrayValues; - if (explicit) for (key in $iterators) { - if (!proto[key]) redefine(proto, key, $iterators[key], true); - } - } -} - -/***/ }), -/* 89 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var addToUnscopables = __w_pdfjs_require__(50); - -var step = __w_pdfjs_require__(90); - -var Iterators = __w_pdfjs_require__(55); - -var toIObject = __w_pdfjs_require__(47); - -module.exports = __w_pdfjs_require__(54)(Array, 'Array', function (iterated, kind) { - this._t = toIObject(iterated); - this._i = 0; - this._k = kind; -}, function () { - var O = this._t; - var kind = this._k; - var index = this._i++; - - if (!O || index >= O.length) { - this._t = undefined; - return step(1); - } - - if (kind == 'keys') return step(0, index); - if (kind == 'values') return step(0, O[index]); - return step(0, [index, O[index]]); -}, 'values'); -Iterators.Arguments = Iterators.Array; -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - -/***/ }), -/* 90 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (done, value) { - return { - value: value, - done: !!done - }; -}; - -/***/ }), -/* 91 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var LIBRARY = __w_pdfjs_require__(29); - -var global = __w_pdfjs_require__(12); - -var ctx = __w_pdfjs_require__(30); - -var classof = __w_pdfjs_require__(72); - -var $export = __w_pdfjs_require__(11); - -var isObject = __w_pdfjs_require__(17); - -var aFunction = __w_pdfjs_require__(31); - -var anInstance = __w_pdfjs_require__(92); - -var forOf = __w_pdfjs_require__(93); - -var speciesConstructor = __w_pdfjs_require__(94); - -var task = __w_pdfjs_require__(95).set; - -var microtask = __w_pdfjs_require__(97)(); - -var newPromiseCapabilityModule = __w_pdfjs_require__(98); - -var perform = __w_pdfjs_require__(99); - -var userAgent = __w_pdfjs_require__(100); - -var promiseResolve = __w_pdfjs_require__(101); - -var PROMISE = 'Promise'; -var TypeError = global.TypeError; -var process = global.process; -var versions = process && process.versions; -var v8 = versions && versions.v8 || ''; -var $Promise = global[PROMISE]; -var isNode = classof(process) == 'process'; - -var empty = function empty() {}; - -var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; -var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; -var USE_NATIVE = !!function () { - try { - var promise = $Promise.resolve(1); - - var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(37)('species')] = function (exec) { - exec(empty, empty); - }; - - return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1; - } catch (e) {} -}(); - -var isThenable = function isThenable(it) { - var then; - return isObject(it) && typeof (then = it.then) == 'function' ? then : false; -}; - -var notify = function notify(promise, isReject) { - if (promise._n) return; - promise._n = true; - var chain = promise._c; - microtask(function () { - var value = promise._v; - var ok = promise._s == 1; - var i = 0; - - var run = function run(reaction) { - var handler = ok ? reaction.ok : reaction.fail; - var resolve = reaction.resolve; - var reject = reaction.reject; - var domain = reaction.domain; - var result, then, exited; - - try { - if (handler) { - if (!ok) { - if (promise._h == 2) onHandleUnhandled(promise); - promise._h = 1; - } - - if (handler === true) result = value;else { - if (domain) domain.enter(); - result = handler(value); - - if (domain) { - domain.exit(); - exited = true; - } - } - - if (result === reaction.promise) { - reject(TypeError('Promise-chain cycle')); - } else if (then = isThenable(result)) { - then.call(result, resolve, reject); - } else resolve(result); - } else reject(value); - } catch (e) { - if (domain && !exited) domain.exit(); - reject(e); - } - }; - - while (chain.length > i) { - run(chain[i++]); - } - - promise._c = []; - promise._n = false; - if (isReject && !promise._h) onUnhandled(promise); - }); -}; - -var onUnhandled = function onUnhandled(promise) { - task.call(global, function () { - var value = promise._v; - var unhandled = isUnhandled(promise); - var result, handler, console; - - if (unhandled) { - result = perform(function () { - if (isNode) { - process.emit('unhandledRejection', value, promise); - } else if (handler = global.onunhandledrejection) { - handler({ - promise: promise, - reason: value - }); - } else if ((console = global.console) && console.error) { - console.error('Unhandled promise rejection', value); - } - }); - promise._h = isNode || isUnhandled(promise) ? 2 : 1; - } - - promise._a = undefined; - if (unhandled && result.e) throw result.v; - }); -}; - -var isUnhandled = function isUnhandled(promise) { - return promise._h !== 1 && (promise._a || promise._c).length === 0; -}; - -var onHandleUnhandled = function onHandleUnhandled(promise) { - task.call(global, function () { - var handler; - - if (isNode) { - process.emit('rejectionHandled', promise); - } else if (handler = global.onrejectionhandled) { - handler({ - promise: promise, - reason: promise._v - }); - } - }); -}; - -var $reject = function $reject(value) { - var promise = this; - if (promise._d) return; - promise._d = true; - promise = promise._w || promise; - promise._v = value; - promise._s = 2; - if (!promise._a) promise._a = promise._c.slice(); - notify(promise, true); -}; - -var $resolve = function $resolve(value) { - var promise = this; - var then; - if (promise._d) return; - promise._d = true; - promise = promise._w || promise; - - try { - if (promise === value) throw TypeError("Promise can't be resolved itself"); - - if (then = isThenable(value)) { - microtask(function () { - var wrapper = { - _w: promise, - _d: false - }; - - try { - then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); - } catch (e) { - $reject.call(wrapper, e); - } - }); - } else { - promise._v = value; - promise._s = 1; - notify(promise, false); - } - } catch (e) { - $reject.call({ - _w: promise, - _d: false - }, e); - } -}; - -if (!USE_NATIVE) { - $Promise = function Promise(executor) { - anInstance(this, $Promise, PROMISE, '_h'); - aFunction(executor); - Internal.call(this); - - try { - executor(ctx($resolve, this, 1), ctx($reject, this, 1)); - } catch (err) { - $reject.call(this, err); - } - }; - - Internal = function Promise(executor) { - this._c = []; - this._a = undefined; - this._s = 0; - this._d = false; - this._v = undefined; - this._h = 0; - this._n = false; - }; - - Internal.prototype = __w_pdfjs_require__(102)($Promise.prototype, { - then: function then(onFulfilled, onRejected) { - var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); - reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; - reaction.fail = typeof onRejected == 'function' && onRejected; - reaction.domain = isNode ? process.domain : undefined; - - this._c.push(reaction); - - if (this._a) this._a.push(reaction); - if (this._s) notify(this, false); - return reaction.promise; - }, - 'catch': function _catch(onRejected) { - return this.then(undefined, onRejected); - } - }); - - OwnPromiseCapability = function OwnPromiseCapability() { - var promise = new Internal(); - this.promise = promise; - this.resolve = ctx($resolve, promise, 1); - this.reject = ctx($reject, promise, 1); - }; - - newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) { - return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { - Promise: $Promise -}); - -__w_pdfjs_require__(64)($Promise, PROMISE); - -__w_pdfjs_require__(103)(PROMISE); - -Wrapper = __w_pdfjs_require__(13)[PROMISE]; -$export($export.S + $export.F * !USE_NATIVE, PROMISE, { - reject: function reject(r) { - var capability = newPromiseCapability(this); - var $$reject = capability.reject; - $$reject(r); - return capability.promise; - } -}); -$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { - resolve: function resolve(x) { - return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); - } -}); -$export($export.S + $export.F * !(USE_NATIVE && __w_pdfjs_require__(73)(function (iter) { - $Promise.all(iter)['catch'](empty); -})), PROMISE, { - all: function all(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var resolve = capability.resolve; - var reject = capability.reject; - var result = perform(function () { - var values = []; - var index = 0; - var remaining = 1; - forOf(iterable, false, function (promise) { - var $index = index++; - var alreadyCalled = false; - values.push(undefined); - remaining++; - C.resolve(promise).then(function (value) { - if (alreadyCalled) return; - alreadyCalled = true; - values[$index] = value; - --remaining || resolve(values); - }, reject); - }); - --remaining || resolve(values); - }); - if (result.e) reject(result.v); - return capability.promise; - }, - race: function race(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var reject = capability.reject; - var result = perform(function () { - forOf(iterable, false, function (promise) { - C.resolve(promise).then(capability.resolve, reject); - }); - }); - if (result.e) reject(result.v); - return capability.promise; - } -}); - -/***/ }), -/* 92 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (it, Constructor, name, forbiddenField) { - if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) { - throw TypeError(name + ': incorrect invocation!'); - } - - return it; -}; - -/***/ }), -/* 93 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var ctx = __w_pdfjs_require__(30); - -var call = __w_pdfjs_require__(68); - -var isArrayIter = __w_pdfjs_require__(69); - -var anObject = __w_pdfjs_require__(16); - -var toLength = __w_pdfjs_require__(32); - -var getIterFn = __w_pdfjs_require__(71); - -var BREAK = {}; -var RETURN = {}; - -var _exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { - var iterFn = ITERATOR ? function () { - return iterable; - } : getIterFn(iterable); - var f = ctx(fn, that, entries ? 2 : 1); - var index = 0; - var length, step, iterator, result; - if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); - if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { - result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); - if (result === BREAK || result === RETURN) return result; - } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { - result = call(iterator, f, step.value, entries); - if (result === BREAK || result === RETURN) return result; - } -}; - -_exports.BREAK = BREAK; -_exports.RETURN = RETURN; - -/***/ }), -/* 94 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var anObject = __w_pdfjs_require__(16); - -var aFunction = __w_pdfjs_require__(31); - -var SPECIES = __w_pdfjs_require__(37)('species'); - -module.exports = function (O, D) { - var C = anObject(O).constructor; - var S; - return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); -}; - -/***/ }), -/* 95 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var ctx = __w_pdfjs_require__(30); - -var invoke = __w_pdfjs_require__(96); - -var html = __w_pdfjs_require__(63); - -var cel = __w_pdfjs_require__(21); - -var global = __w_pdfjs_require__(12); - -var process = global.process; -var setTask = global.setImmediate; -var clearTask = global.clearImmediate; -var MessageChannel = global.MessageChannel; -var Dispatch = global.Dispatch; -var counter = 0; -var queue = {}; -var ONREADYSTATECHANGE = 'onreadystatechange'; -var defer, channel, port; - -var run = function run() { - var id = +this; - - if (queue.hasOwnProperty(id)) { - var fn = queue[id]; - delete queue[id]; - fn(); - } -}; - -var listener = function listener(event) { - run.call(event.data); -}; - -if (!setTask || !clearTask) { - setTask = function setImmediate(fn) { - var args = []; - var i = 1; - - while (arguments.length > i) { - args.push(arguments[i++]); - } - - queue[++counter] = function () { - invoke(typeof fn == 'function' ? fn : Function(fn), args); - }; - - defer(counter); - return counter; - }; - - clearTask = function clearImmediate(id) { - delete queue[id]; - }; - - if (__w_pdfjs_require__(36)(process) == 'process') { - defer = function defer(id) { - process.nextTick(ctx(run, id, 1)); - }; - } else if (Dispatch && Dispatch.now) { - defer = function defer(id) { - Dispatch.now(ctx(run, id, 1)); - }; - } else if (MessageChannel) { - channel = new MessageChannel(); - port = channel.port2; - channel.port1.onmessage = listener; - defer = ctx(port.postMessage, port, 1); - } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { - defer = function defer(id) { - global.postMessage(id + '', '*'); - }; - - global.addEventListener('message', listener, false); - } else if (ONREADYSTATECHANGE in cel('script')) { - defer = function defer(id) { - html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { - html.removeChild(this); - run.call(id); - }; - }; - } else { - defer = function defer(id) { - setTimeout(ctx(run, id, 1), 0); - }; - } -} - -module.exports = { - set: setTask, - clear: clearTask -}; - -/***/ }), -/* 96 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (fn, args, that) { - var un = that === undefined; - - switch (args.length) { - case 0: - return un ? fn() : fn.call(that); - - case 1: - return un ? fn(args[0]) : fn.call(that, args[0]); - - case 2: - return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]); - - case 3: - return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]); - - case 4: - return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]); - } - - return fn.apply(that, args); -}; - -/***/ }), -/* 97 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(12); - -var macrotask = __w_pdfjs_require__(95).set; - -var Observer = global.MutationObserver || global.WebKitMutationObserver; -var process = global.process; -var Promise = global.Promise; -var isNode = __w_pdfjs_require__(36)(process) == 'process'; - -module.exports = function () { - var head, last, notify; - - var flush = function flush() { - var parent, fn; - if (isNode && (parent = process.domain)) parent.exit(); - - while (head) { - fn = head.fn; - head = head.next; - - try { - fn(); - } catch (e) { - if (head) notify();else last = undefined; - throw e; - } - } - - last = undefined; - if (parent) parent.enter(); - }; - - if (isNode) { - notify = function notify() { - process.nextTick(flush); - }; - } else if (Observer && !(global.navigator && global.navigator.standalone)) { - var toggle = true; - var node = document.createTextNode(''); - new Observer(flush).observe(node, { - characterData: true - }); - - notify = function notify() { - node.data = toggle = !toggle; - }; - } else if (Promise && Promise.resolve) { - var promise = Promise.resolve(undefined); - - notify = function notify() { - promise.then(flush); - }; - } else { - notify = function notify() { - macrotask.call(global, flush); - }; - } - - return function (fn) { - var task = { - fn: fn, - next: undefined - }; - if (last) last.next = task; - - if (!head) { - head = task; - notify(); - } - - last = task; - }; -}; - -/***/ }), -/* 98 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var aFunction = __w_pdfjs_require__(31); - -function PromiseCapability(C) { - var resolve, reject; - this.promise = new C(function ($$resolve, $$reject) { - if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); - resolve = $$resolve; - reject = $$reject; - }); - this.resolve = aFunction(resolve); - this.reject = aFunction(reject); -} - -module.exports.f = function (C) { - return new PromiseCapability(C); -}; - -/***/ }), -/* 99 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (exec) { - try { - return { - e: false, - v: exec() - }; - } catch (e) { - return { - e: true, - v: e - }; - } -}; - -/***/ }), -/* 100 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(12); - -var navigator = global.navigator; -module.exports = navigator && navigator.userAgent || ''; - -/***/ }), -/* 101 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var anObject = __w_pdfjs_require__(16); - -var isObject = __w_pdfjs_require__(17); - -var newPromiseCapability = __w_pdfjs_require__(98); - -module.exports = function (C, x) { - anObject(C); - if (isObject(x) && x.constructor === C) return x; - var promiseCapability = newPromiseCapability.f(C); - var resolve = promiseCapability.resolve; - resolve(x); - return promiseCapability.promise; -}; - -/***/ }), -/* 102 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var redefine = __w_pdfjs_require__(24); - -module.exports = function (target, src, safe) { - for (var key in src) { - redefine(target, key, src[key], safe); - } - - return target; -}; - -/***/ }), -/* 103 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(12); - -var dP = __w_pdfjs_require__(15); - -var DESCRIPTORS = __w_pdfjs_require__(19); - -var SPECIES = __w_pdfjs_require__(37)('species'); - -module.exports = function (KEY) { - var C = global[KEY]; - if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { - configurable: true, - get: function get() { - return this; - } - }); -}; - -/***/ }), -/* 104 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(11); - -var core = __w_pdfjs_require__(13); - -var global = __w_pdfjs_require__(12); - -var speciesConstructor = __w_pdfjs_require__(94); - -var promiseResolve = __w_pdfjs_require__(101); - -$export($export.P + $export.R, 'Promise', { - 'finally': function _finally(onFinally) { - var C = speciesConstructor(this, core.Promise || global.Promise); - var isFunction = typeof onFinally == 'function'; - return this.then(isFunction ? function (x) { - return promiseResolve(C, onFinally()).then(function () { - return x; - }); - } : onFinally, isFunction ? function (e) { - return promiseResolve(C, onFinally()).then(function () { - throw e; - }); - } : onFinally); - } -}); - -/***/ }), -/* 105 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(11); - -var newPromiseCapability = __w_pdfjs_require__(98); - -var perform = __w_pdfjs_require__(99); - -$export($export.S, 'Promise', { - 'try': function _try(callbackfn) { - var promiseCapability = newPromiseCapability.f(this); - var result = perform(callbackfn); - (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); - return promiseCapability.promise; - } -}); - -/***/ }), -/* 106 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(87); - -__w_pdfjs_require__(88); - -__w_pdfjs_require__(107); - -__w_pdfjs_require__(119); - -__w_pdfjs_require__(121); - -module.exports = __w_pdfjs_require__(13).WeakMap; - -/***/ }), -/* 107 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(12); - -var each = __w_pdfjs_require__(108)(0); - -var redefine = __w_pdfjs_require__(24); - -var meta = __w_pdfjs_require__(112); - -var assign = __w_pdfjs_require__(76); - -var weak = __w_pdfjs_require__(113); - -var isObject = __w_pdfjs_require__(17); - -var validate = __w_pdfjs_require__(114); - -var NATIVE_WEAK_MAP = __w_pdfjs_require__(114); - -var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; -var WEAK_MAP = 'WeakMap'; -var getWeak = meta.getWeak; -var isExtensible = Object.isExtensible; -var uncaughtFrozenStore = weak.ufstore; -var InternalMap; - -var wrapper = function wrapper(get) { - return function WeakMap() { - return get(this, arguments.length > 0 ? arguments[0] : undefined); - }; -}; - -var methods = { - get: function get(key) { - if (isObject(key)) { - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); - return data ? data[this._i] : undefined; - } - }, - set: function set(key, value) { - return weak.def(validate(this, WEAK_MAP), key, value); - } -}; - -var $WeakMap = module.exports = __w_pdfjs_require__(115)(WEAK_MAP, wrapper, methods, weak, true, true); - -if (NATIVE_WEAK_MAP && IS_IE11) { - InternalMap = weak.getConstructor(wrapper, WEAK_MAP); - assign(InternalMap.prototype, methods); - meta.NEED = true; - each(['delete', 'has', 'get', 'set'], function (key) { - var proto = $WeakMap.prototype; - var method = proto[key]; - redefine(proto, key, function (a, b) { - if (isObject(a) && !isExtensible(a)) { - if (!this._f) this._f = new InternalMap(); - - var result = this._f[key](a, b); - - return key == 'set' ? this : result; - } - - return method.call(this, a, b); - }); - }); -} - -/***/ }), -/* 108 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var ctx = __w_pdfjs_require__(30); - -var IObject = __w_pdfjs_require__(48); - -var toObject = __w_pdfjs_require__(66); - -var toLength = __w_pdfjs_require__(32); - -var asc = __w_pdfjs_require__(109); - -module.exports = function (TYPE, $create) { - var IS_MAP = TYPE == 1; - var IS_FILTER = TYPE == 2; - var IS_SOME = TYPE == 3; - var IS_EVERY = TYPE == 4; - var IS_FIND_INDEX = TYPE == 6; - var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; - var create = $create || asc; - return function ($this, callbackfn, that) { - var O = toObject($this); - var self = IObject(O); - var f = ctx(callbackfn, that, 3); - var length = toLength(self.length); - var index = 0; - var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; - var val, res; - - for (; length > index; index++) { - if (NO_HOLES || index in self) { - val = self[index]; - res = f(val, index, O); - - if (TYPE) { - if (IS_MAP) result[index] = res;else if (res) switch (TYPE) { - case 3: - return true; - - case 5: - return val; - - case 6: - return index; - - case 2: - result.push(val); - } else if (IS_EVERY) return false; - } - } - } - - return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; - }; -}; - -/***/ }), -/* 109 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var speciesConstructor = __w_pdfjs_require__(110); - -module.exports = function (original, length) { - return new (speciesConstructor(original))(length); -}; - -/***/ }), -/* 110 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(17); - -var isArray = __w_pdfjs_require__(111); - -var SPECIES = __w_pdfjs_require__(37)('species'); - -module.exports = function (original) { - var C; - - if (isArray(original)) { - C = original.constructor; - if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; - - if (isObject(C)) { - C = C[SPECIES]; - if (C === null) C = undefined; - } - } - - return C === undefined ? Array : C; -}; - -/***/ }), -/* 111 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var cof = __w_pdfjs_require__(36); - -module.exports = Array.isArray || function isArray(arg) { - return cof(arg) == 'Array'; -}; - -/***/ }), -/* 112 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var META = __w_pdfjs_require__(26)('meta'); - -var isObject = __w_pdfjs_require__(17); - -var has = __w_pdfjs_require__(25); - -var setDesc = __w_pdfjs_require__(15).f; - -var id = 0; - -var isExtensible = Object.isExtensible || function () { - return true; -}; - -var FREEZE = !__w_pdfjs_require__(20)(function () { - return isExtensible(Object.preventExtensions({})); -}); - -var setMeta = function setMeta(it) { - setDesc(it, META, { - value: { - i: 'O' + ++id, - w: {} - } - }); -}; - -var fastKey = function fastKey(it, create) { - if (!isObject(it)) return _typeof(it) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - - if (!has(it, META)) { - if (!isExtensible(it)) return 'F'; - if (!create) return 'E'; - setMeta(it); - } - - return it[META].i; -}; - -var getWeak = function getWeak(it, create) { - if (!has(it, META)) { - if (!isExtensible(it)) return true; - if (!create) return false; - setMeta(it); - } - - return it[META].w; -}; - -var onFreeze = function onFreeze(it) { - if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); - return it; -}; - -var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze -}; - -/***/ }), -/* 113 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var redefineAll = __w_pdfjs_require__(102); - -var getWeak = __w_pdfjs_require__(112).getWeak; - -var anObject = __w_pdfjs_require__(16); - -var isObject = __w_pdfjs_require__(17); - -var anInstance = __w_pdfjs_require__(92); - -var forOf = __w_pdfjs_require__(93); - -var createArrayMethod = __w_pdfjs_require__(108); - -var $has = __w_pdfjs_require__(25); - -var validate = __w_pdfjs_require__(114); - -var arrayFind = createArrayMethod(5); -var arrayFindIndex = createArrayMethod(6); -var id = 0; - -var uncaughtFrozenStore = function uncaughtFrozenStore(that) { - return that._l || (that._l = new UncaughtFrozenStore()); -}; - -var UncaughtFrozenStore = function UncaughtFrozenStore() { - this.a = []; -}; - -var findUncaughtFrozen = function findUncaughtFrozen(store, key) { - return arrayFind(store.a, function (it) { - return it[0] === key; - }); -}; - -UncaughtFrozenStore.prototype = { - get: function get(key) { - var entry = findUncaughtFrozen(this, key); - if (entry) return entry[1]; - }, - has: function has(key) { - return !!findUncaughtFrozen(this, key); - }, - set: function set(key, value) { - var entry = findUncaughtFrozen(this, key); - if (entry) entry[1] = value;else this.a.push([key, value]); - }, - 'delete': function _delete(key) { - var index = arrayFindIndex(this.a, function (it) { - return it[0] === key; - }); - if (~index) this.a.splice(index, 1); - return !!~index; - } -}; -module.exports = { - getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, NAME, '_i'); - that._t = NAME; - that._i = id++; - that._l = undefined; - if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); - }); - redefineAll(C.prototype, { - 'delete': function _delete(key) { - if (!isObject(key)) return false; - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); - return data && $has(data, this._i) && delete data[this._i]; - }, - has: function has(key) { - if (!isObject(key)) return false; - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); - return data && $has(data, this._i); - } - }); - return C; - }, - def: function def(that, key, value) { - var data = getWeak(anObject(key), true); - if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value; - return that; - }, - ufstore: uncaughtFrozenStore -}; - -/***/ }), -/* 114 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(17); - -module.exports = function (it, TYPE) { - if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); - return it; -}; - -/***/ }), -/* 115 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(12); - -var $export = __w_pdfjs_require__(11); - -var redefine = __w_pdfjs_require__(24); - -var redefineAll = __w_pdfjs_require__(102); - -var meta = __w_pdfjs_require__(112); - -var forOf = __w_pdfjs_require__(93); - -var anInstance = __w_pdfjs_require__(92); - -var isObject = __w_pdfjs_require__(17); - -var fails = __w_pdfjs_require__(20); - -var $iterDetect = __w_pdfjs_require__(73); - -var setToStringTag = __w_pdfjs_require__(64); - -var inheritIfRequired = __w_pdfjs_require__(116); - -module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { - var Base = global[NAME]; - var C = Base; - var ADDER = IS_MAP ? 'set' : 'add'; - var proto = C && C.prototype; - var O = {}; - - var fixMethod = function fixMethod(KEY) { - var fn = proto[KEY]; - redefine(proto, KEY, KEY == 'delete' ? function (a) { - return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'has' ? function has(a) { - return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'get' ? function get(a) { - return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'add' ? function add(a) { - fn.call(this, a === 0 ? 0 : a); - return this; - } : function set(a, b) { - fn.call(this, a === 0 ? 0 : a, b); - return this; - }); - }; - - if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { - new C().entries().next(); - }))) { - C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); - redefineAll(C.prototype, methods); - meta.NEED = true; - } else { - var instance = new C(); - var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; - var THROWS_ON_PRIMITIVES = fails(function () { - instance.has(1); - }); - var ACCEPT_ITERABLES = $iterDetect(function (iter) { - new C(iter); - }); - var BUGGY_ZERO = !IS_WEAK && fails(function () { - var $instance = new C(); - var index = 5; - - while (index--) { - $instance[ADDER](index, index); - } - - return !$instance.has(-0); - }); - - if (!ACCEPT_ITERABLES) { - C = wrapper(function (target, iterable) { - anInstance(target, C, NAME); - var that = inheritIfRequired(new Base(), target, C); - if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); - return that; - }); - C.prototype = proto; - proto.constructor = C; - } - - if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { - fixMethod('delete'); - fixMethod('has'); - IS_MAP && fixMethod('get'); - } - - if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); - if (IS_WEAK && proto.clear) delete proto.clear; - } - - setToStringTag(C, NAME); - O[NAME] = C; - $export($export.G + $export.W + $export.F * (C != Base), O); - if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); - return C; -}; - -/***/ }), -/* 116 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(17); - -var setPrototypeOf = __w_pdfjs_require__(117).set; - -module.exports = function (that, target, C) { - var S = target.constructor; - var P; - - if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { - setPrototypeOf(that, P); - } - - return that; -}; - -/***/ }), -/* 117 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(17); - -var anObject = __w_pdfjs_require__(16); - -var check = function check(O, proto) { - anObject(O); - if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); -}; - -module.exports = { - set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) { - try { - set = __w_pdfjs_require__(30)(Function.call, __w_pdfjs_require__(118).f(Object.prototype, '__proto__').set, 2); - set(test, []); - buggy = !(test instanceof Array); - } catch (e) { - buggy = true; - } - - return function setPrototypeOf(O, proto) { - check(O, proto); - if (buggy) O.__proto__ = proto;else set(O, proto); - return O; - }; - }({}, false) : undefined), - check: check -}; - -/***/ }), -/* 118 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var pIE = __w_pdfjs_require__(78); - -var createDesc = __w_pdfjs_require__(23); - -var toIObject = __w_pdfjs_require__(47); - -var toPrimitive = __w_pdfjs_require__(22); - -var has = __w_pdfjs_require__(25); - -var IE8_DOM_DEFINE = __w_pdfjs_require__(18); - -var gOPD = Object.getOwnPropertyDescriptor; -exports.f = __w_pdfjs_require__(19) ? gOPD : function getOwnPropertyDescriptor(O, P) { - O = toIObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return gOPD(O, P); - } catch (e) {} - if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); -}; - -/***/ }), -/* 119 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(120)('WeakMap'); - -/***/ }), -/* 120 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(11); - -module.exports = function (COLLECTION) { - $export($export.S, COLLECTION, { - of: function of() { - var length = arguments.length; - var A = new Array(length); - - while (length--) { - A[length] = arguments[length]; - } - - return new this(A); - } - }); -}; - -/***/ }), -/* 121 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(122)('WeakMap'); - -/***/ }), -/* 122 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(11); - -var aFunction = __w_pdfjs_require__(31); - -var ctx = __w_pdfjs_require__(30); - -var forOf = __w_pdfjs_require__(93); - -module.exports = function (COLLECTION) { - $export($export.S, COLLECTION, { - from: function from(source) { - var mapFn = arguments[1]; - var mapping, A, n, cb; - aFunction(this); - mapping = mapFn !== undefined; - if (mapping) aFunction(mapFn); - if (source == undefined) return new this(); - A = []; - - if (mapping) { - n = 0; - cb = ctx(mapFn, arguments[2], 2); - forOf(source, false, function (nextItem) { - A.push(cb(nextItem, n++)); - }); - } else { - forOf(source, false, A.push, A); - } - - return new this(A); - } - }); -}; - -/***/ }), -/* 123 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(87); - -__w_pdfjs_require__(88); - -__w_pdfjs_require__(124); - -__w_pdfjs_require__(125); - -__w_pdfjs_require__(126); - -module.exports = __w_pdfjs_require__(13).WeakSet; - -/***/ }), -/* 124 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var weak = __w_pdfjs_require__(113); - -var validate = __w_pdfjs_require__(114); - -var WEAK_SET = 'WeakSet'; - -__w_pdfjs_require__(115)(WEAK_SET, function (get) { - return function WeakSet() { - return get(this, arguments.length > 0 ? arguments[0] : undefined); - }; -}, { - add: function add(value) { - return weak.def(validate(this, WEAK_SET), value, true); - } -}, weak, false, true); - -/***/ }), -/* 125 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(120)('WeakSet'); - -/***/ }), -/* 126 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(122)('WeakSet'); - -/***/ }), -/* 127 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(128); - -module.exports = __w_pdfjs_require__(13).String.codePointAt; - -/***/ }), -/* 128 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(11); - -var $at = __w_pdfjs_require__(53)(false); - -$export($export.P, 'String', { - codePointAt: function codePointAt(pos) { - return $at(this, pos); - } -}); - -/***/ }), -/* 129 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(130); - -module.exports = __w_pdfjs_require__(13).String.fromCodePoint; - -/***/ }), -/* 130 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(11); - -var toAbsoluteIndex = __w_pdfjs_require__(49); - -var fromCharCode = String.fromCharCode; -var $fromCodePoint = String.fromCodePoint; -$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', { - fromCodePoint: function fromCodePoint(x) { - var res = []; - var aLen = arguments.length; - var i = 0; - var code; - - while (aLen > i) { - code = +arguments[i++]; - if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point'); - res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)); - } - - return res.join(''); - } -}); - -/***/ }), -/* 131 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(132); - -__w_pdfjs_require__(87); - -module.exports = __w_pdfjs_require__(13).Symbol; - -/***/ }), -/* 132 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var global = __w_pdfjs_require__(12); - -var has = __w_pdfjs_require__(25); - -var DESCRIPTORS = __w_pdfjs_require__(19); - -var $export = __w_pdfjs_require__(11); - -var redefine = __w_pdfjs_require__(24); - -var META = __w_pdfjs_require__(112).KEY; - -var $fails = __w_pdfjs_require__(20); - -var shared = __w_pdfjs_require__(28); - -var setToStringTag = __w_pdfjs_require__(64); - -var uid = __w_pdfjs_require__(26); - -var wks = __w_pdfjs_require__(37); - -var wksExt = __w_pdfjs_require__(133); - -var wksDefine = __w_pdfjs_require__(134); - -var enumKeys = __w_pdfjs_require__(135); - -var isArray = __w_pdfjs_require__(111); - -var anObject = __w_pdfjs_require__(16); - -var isObject = __w_pdfjs_require__(17); - -var toObject = __w_pdfjs_require__(66); - -var toIObject = __w_pdfjs_require__(47); - -var toPrimitive = __w_pdfjs_require__(22); - -var createDesc = __w_pdfjs_require__(23); - -var _create = __w_pdfjs_require__(57); - -var gOPNExt = __w_pdfjs_require__(136); - -var $GOPD = __w_pdfjs_require__(118); - -var $GOPS = __w_pdfjs_require__(77); - -var $DP = __w_pdfjs_require__(15); - -var $keys = __w_pdfjs_require__(59); - -var gOPD = $GOPD.f; -var dP = $DP.f; -var gOPN = gOPNExt.f; -var $Symbol = global.Symbol; -var $JSON = global.JSON; - -var _stringify = $JSON && $JSON.stringify; - -var PROTOTYPE = 'prototype'; -var HIDDEN = wks('_hidden'); -var TO_PRIMITIVE = wks('toPrimitive'); -var isEnum = {}.propertyIsEnumerable; -var SymbolRegistry = shared('symbol-registry'); -var AllSymbols = shared('symbols'); -var OPSymbols = shared('op-symbols'); -var ObjectProto = Object[PROTOTYPE]; -var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f; -var QObject = global.QObject; -var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; -var setSymbolDesc = DESCRIPTORS && $fails(function () { - return _create(dP({}, 'a', { - get: function get() { - return dP(this, 'a', { - value: 7 - }).a; - } - })).a != 7; -}) ? function (it, key, D) { - var protoDesc = gOPD(ObjectProto, key); - if (protoDesc) delete ObjectProto[key]; - dP(it, key, D); - if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); -} : dP; - -var wrap = function wrap(tag) { - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - - sym._k = tag; - return sym; -}; - -var isSymbol = USE_NATIVE && _typeof($Symbol.iterator) == 'symbol' ? function (it) { - return _typeof(it) == 'symbol'; -} : function (it) { - return it instanceof $Symbol; -}; - -var $defineProperty = function defineProperty(it, key, D) { - if (it === ObjectProto) $defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - - if (has(AllSymbols, key)) { - if (!D.enumerable) { - if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; - D = _create(D, { - enumerable: createDesc(0, false) - }); - } - - return setSymbolDesc(it, key, D); - } - - return dP(it, key, D); -}; - -var $defineProperties = function defineProperties(it, P) { - anObject(it); - var keys = enumKeys(P = toIObject(P)); - var i = 0; - var l = keys.length; - var key; - - while (l > i) { - $defineProperty(it, key = keys[i++], P[key]); - } - - return it; -}; - -var $create = function create(it, P) { - return P === undefined ? _create(it) : $defineProperties(_create(it), P); -}; - -var $propertyIsEnumerable = function propertyIsEnumerable(key) { - var E = isEnum.call(this, key = toPrimitive(key, true)); - if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; -}; - -var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { - it = toIObject(it); - key = toPrimitive(key, true); - if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; - var D = gOPD(it, key); - if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; - return D; -}; - -var $getOwnPropertyNames = function getOwnPropertyNames(it) { - var names = gOPN(toIObject(it)); - var result = []; - var i = 0; - var key; - - while (names.length > i) { - if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); - } - - return result; -}; - -var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { - var IS_OP = it === ObjectProto; - var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); - var result = []; - var i = 0; - var key; - - while (names.length > i) { - if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); - } - - return result; -}; - -if (!USE_NATIVE) { - $Symbol = function _Symbol() { - if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - - var $set = function $set(value) { - if (this === ObjectProto) $set.call(OPSymbols, value); - if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - - if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { - configurable: true, - set: $set - }); - return wrap(tag); - }; - - redefine($Symbol[PROTOTYPE], 'toString', function toString() { - return this._k; - }); - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __w_pdfjs_require__(137).f = gOPNExt.f = $getOwnPropertyNames; - __w_pdfjs_require__(78).f = $propertyIsEnumerable; - $GOPS.f = $getOwnPropertySymbols; - - if (DESCRIPTORS && !__w_pdfjs_require__(29)) { - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function (name) { - return wrap(wks(name)); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { - Symbol: $Symbol -}); - -for (var es6Symbols = 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;) { - wks(es6Symbols[j++]); -} - -for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) { - wksDefine(wellKnownSymbols[k++]); -} - -$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - 'for': function _for(key) { - return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key); - }, - keyFor: function keyFor(sym) { - if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); - - for (var key in SymbolRegistry) { - if (SymbolRegistry[key] === sym) return key; - } - }, - useSetter: function useSetter() { - setter = true; - }, - useSimple: function useSimple() { - setter = false; - } -}); -$export($export.S + $export.F * !USE_NATIVE, 'Object', { - create: $create, - defineProperty: $defineProperty, - defineProperties: $defineProperties, - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - getOwnPropertyNames: $getOwnPropertyNames, - getOwnPropertySymbols: $getOwnPropertySymbols -}); -var FAILS_ON_PRIMITIVES = $fails(function () { - $GOPS.f(1); -}); -$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', { - getOwnPropertySymbols: function getOwnPropertySymbols(it) { - return $GOPS.f(toObject(it)); - } -}); -$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { - var S = $Symbol(); - return _stringify([S]) != '[null]' || _stringify({ - a: S - }) != '{}' || _stringify(Object(S)) != '{}'; -})), 'JSON', { - stringify: function stringify(it) { - var args = [it]; - var i = 1; - var replacer, $replacer; - - while (arguments.length > i) { - args.push(arguments[i++]); - } - - $replacer = replacer = args[1]; - if (!isObject(replacer) && it === undefined || isSymbol(it)) return; - if (!isArray(replacer)) replacer = function replacer(key, value) { - if (typeof $replacer == 'function') value = $replacer.call(this, key, value); - if (!isSymbol(value)) return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } -}); -$Symbol[PROTOTYPE][TO_PRIMITIVE] || __w_pdfjs_require__(14)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); -setToStringTag($Symbol, 'Symbol'); -setToStringTag(Math, 'Math', true); -setToStringTag(global.JSON, 'JSON', true); - -/***/ }), -/* 133 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -exports.f = __w_pdfjs_require__(37); - -/***/ }), -/* 134 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(12); - -var core = __w_pdfjs_require__(13); - -var LIBRARY = __w_pdfjs_require__(29); - -var wksExt = __w_pdfjs_require__(133); - -var defineProperty = __w_pdfjs_require__(15).f; - -module.exports = function (name) { - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { - value: wksExt.f(name) - }); -}; - -/***/ }), -/* 135 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var getKeys = __w_pdfjs_require__(59); - -var gOPS = __w_pdfjs_require__(77); - -var pIE = __w_pdfjs_require__(78); - -module.exports = function (it) { - var result = getKeys(it); - var getSymbols = gOPS.f; - - if (getSymbols) { - var symbols = getSymbols(it); - var isEnum = pIE.f; - var i = 0; - var key; - - while (symbols.length > i) { - if (isEnum.call(it, key = symbols[i++])) result.push(key); - } - } - - return result; -}; - -/***/ }), -/* 136 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var toIObject = __w_pdfjs_require__(47); - -var gOPN = __w_pdfjs_require__(137).f; - -var toString = {}.toString; -var windowNames = (typeof window === "undefined" ? "undefined" : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; - -var getWindowNames = function getWindowNames(it) { - try { - return gOPN(it); - } catch (e) { - return windowNames.slice(); - } -}; - -module.exports.f = function getOwnPropertyNames(it) { - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); -}; - -/***/ }), -/* 137 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $keys = __w_pdfjs_require__(60); - -var hiddenKeys = __w_pdfjs_require__(62).concat('length', 'prototype'); - -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return $keys(O, hiddenKeys); -}; - -/***/ }), -/* 138 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(139); - -module.exports = __w_pdfjs_require__(13).String.padStart; - -/***/ }), -/* 139 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(11); - -var $pad = __w_pdfjs_require__(140); - -var userAgent = __w_pdfjs_require__(100); - -var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); -$export($export.P + $export.F * WEBKIT_BUG, 'String', { - padStart: function padStart(maxLength) { - return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true); - } -}); - -/***/ }), -/* 140 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toLength = __w_pdfjs_require__(32); - -var repeat = __w_pdfjs_require__(141); - -var defined = __w_pdfjs_require__(38); - -module.exports = function (that, maxLength, fillString, left) { - var S = String(defined(that)); - var stringLength = S.length; - var fillStr = fillString === undefined ? ' ' : String(fillString); - var intMaxLength = toLength(maxLength); - if (intMaxLength <= stringLength || fillStr == '') return S; - var fillLen = intMaxLength - stringLength; - var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length)); - if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen); - return left ? stringFiller + S : S + stringFiller; -}; - -/***/ }), -/* 141 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toInteger = __w_pdfjs_require__(33); - -var defined = __w_pdfjs_require__(38); - -module.exports = function repeat(count) { - var str = String(defined(this)); - var res = ''; - var n = toInteger(count); - if (n < 0 || n == Infinity) throw RangeError("Count can't be negative"); - - for (; n > 0; (n >>>= 1) && (str += str)) { - if (n & 1) res += str; - } - - return res; -}; - -/***/ }), -/* 142 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(143); - -module.exports = __w_pdfjs_require__(13).String.padEnd; - -/***/ }), -/* 143 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(11); - -var $pad = __w_pdfjs_require__(140); - -var userAgent = __w_pdfjs_require__(100); - -var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); -$export($export.P + $export.F * WEBKIT_BUG, 'String', { - padEnd: function padEnd(maxLength) { - return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false); - } -}); - -/***/ }), -/* 144 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(145); - -module.exports = __w_pdfjs_require__(13).Object.values; - -/***/ }), -/* 145 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(11); - -var $values = __w_pdfjs_require__(146)(false); - -$export($export.S, 'Object', { - values: function values(it) { - return $values(it); - } -}); - -/***/ }), -/* 146 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var DESCRIPTORS = __w_pdfjs_require__(19); - -var getKeys = __w_pdfjs_require__(59); - -var toIObject = __w_pdfjs_require__(47); - -var isEnum = __w_pdfjs_require__(78).f; - -module.exports = function (isEntries) { - return function (it) { - var O = toIObject(it); - var keys = getKeys(O); - var length = keys.length; - var i = 0; - var result = []; - var key; - - while (length > i) { - key = keys[i++]; - - if (!DESCRIPTORS || isEnum.call(O, key)) { - result.push(isEntries ? [key, O[key]] : O[key]); - } - } - - return result; - }; -}; - -/***/ }), -/* 147 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -{ - var isReadableStreamSupported = false; - - if (typeof ReadableStream !== 'undefined') { - try { - new ReadableStream({ - start: function start(controller) { - controller.close(); - } - }); - isReadableStreamSupported = true; - } catch (e) {} - } - - if (isReadableStreamSupported) { - exports.ReadableStream = ReadableStream; - } else { - exports.ReadableStream = __w_pdfjs_require__(148).ReadableStream; - } -} - -/***/ }), -/* 148 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } - -(function (e, a) { - for (var i in a) { - e[i] = a[i]; - } -})(exports, function (modules) { - var installedModules = {}; - - function __w_pdfjs_require__(moduleId) { - if (installedModules[moduleId]) return installedModules[moduleId].exports; - var module = installedModules[moduleId] = { - i: moduleId, - l: false, - exports: {} - }; - modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__); - module.l = true; - return module.exports; - } - - __w_pdfjs_require__.m = modules; - __w_pdfjs_require__.c = installedModules; - - __w_pdfjs_require__.i = function (value) { - return value; - }; - - __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 - }); - } - }; - - __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; - }; - - __w_pdfjs_require__.o = function (object, property) { - return Object.prototype.hasOwnProperty.call(object, property); - }; - - __w_pdfjs_require__.p = ""; - return __w_pdfjs_require__(__w_pdfjs_require__.s = 7); -}([function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { - return _typeof2(obj); - } : function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); - }; - - var _require = __w_pdfjs_require__(1), - assert = _require.assert; - - function IsPropertyKey(argument) { - return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol'; - } - - exports.typeIsObject = function (x) { - return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function'; - }; - - exports.createDataProperty = function (o, p, v) { - assert(exports.typeIsObject(o)); - Object.defineProperty(o, p, { - value: v, - writable: true, - enumerable: true, - configurable: true - }); - }; - - exports.createArrayFromList = function (elements) { - return elements.slice(); - }; - - exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) { - new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset); - }; - - exports.CreateIterResultObject = function (value, done) { - assert(typeof done === 'boolean'); - var obj = {}; - Object.defineProperty(obj, 'value', { - value: value, - enumerable: true, - writable: true, - configurable: true - }); - Object.defineProperty(obj, 'done', { - value: done, - enumerable: true, - writable: true, - configurable: true - }); - return obj; - }; - - exports.IsFiniteNonNegativeNumber = function (v) { - if (Number.isNaN(v)) { - return false; - } - - if (v === Infinity) { - return false; - } - - if (v < 0) { - return false; - } - - return true; - }; - - function Call(F, V, args) { - if (typeof F !== 'function') { - throw new TypeError('Argument is not a function'); - } - - return Function.prototype.apply.call(F, V, args); - } - - exports.InvokeOrNoop = function (O, P, args) { - assert(O !== undefined); - assert(IsPropertyKey(P)); - assert(Array.isArray(args)); - var method = O[P]; - - if (method === undefined) { - return undefined; - } - - return Call(method, O, args); - }; - - exports.PromiseInvokeOrNoop = function (O, P, args) { - assert(O !== undefined); - assert(IsPropertyKey(P)); - assert(Array.isArray(args)); - - try { - return Promise.resolve(exports.InvokeOrNoop(O, P, args)); - } catch (returnValueE) { - return Promise.reject(returnValueE); - } - }; - - exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) { - assert(O !== undefined); - assert(IsPropertyKey(P)); - assert(Array.isArray(args)); - assert(Array.isArray(argsF)); - var method = void 0; - - try { - method = O[P]; - } catch (methodE) { - return Promise.reject(methodE); - } - - if (method === undefined) { - return F.apply(null, argsF); - } - - try { - return Promise.resolve(Call(method, O, args)); - } catch (e) { - return Promise.reject(e); - } - }; - - exports.TransferArrayBuffer = function (O) { - return O.slice(); - }; - - exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) { - highWaterMark = Number(highWaterMark); - - if (Number.isNaN(highWaterMark) || highWaterMark < 0) { - throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN'); - } - - return highWaterMark; - }; - - exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) { - if (size !== undefined && typeof size !== 'function') { - throw new TypeError('size property of a queuing strategy must be a function'); - } - - highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark); - return { - size: size, - highWaterMark: highWaterMark - }; - }; -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - function rethrowAssertionErrorRejection(e) { - if (e && e.constructor === AssertionError) { - setTimeout(function () { - throw e; - }, 0); - } - } - - function AssertionError(message) { - this.name = 'AssertionError'; - this.message = message || ''; - this.stack = new Error().stack; - } - - AssertionError.prototype = Object.create(Error.prototype); - AssertionError.prototype.constructor = AssertionError; - - function assert(value, message) { - if (!value) { - throw new AssertionError(message); - } - } - - module.exports = { - rethrowAssertionErrorRejection: rethrowAssertionErrorRejection, - AssertionError: AssertionError, - assert: assert - }; -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var _createClass = function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; - }(); - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - var _require = __w_pdfjs_require__(0), - InvokeOrNoop = _require.InvokeOrNoop, - PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, - ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, - typeIsObject = _require.typeIsObject; - - var _require2 = __w_pdfjs_require__(1), - assert = _require2.assert, - rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection; - - var _require3 = __w_pdfjs_require__(3), - DequeueValue = _require3.DequeueValue, - EnqueueValueWithSize = _require3.EnqueueValueWithSize, - PeekQueueValue = _require3.PeekQueueValue, - ResetQueue = _require3.ResetQueue; - - var WritableStream = function () { - function WritableStream() { - var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - size = _ref.size, - _ref$highWaterMark = _ref.highWaterMark, - highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark; - - _classCallCheck(this, WritableStream); - - this._state = 'writable'; - this._storedError = undefined; - this._writer = undefined; - this._writableStreamController = undefined; - this._writeRequests = []; - this._inFlightWriteRequest = undefined; - this._closeRequest = undefined; - this._inFlightCloseRequest = undefined; - this._pendingAbortRequest = undefined; - this._backpressure = false; - var type = underlyingSink.type; - - if (type !== undefined) { - throw new RangeError('Invalid type is specified'); - } - - this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark); - - this._writableStreamController.__startSteps(); - } - - _createClass(WritableStream, [{ - key: 'abort', - value: function abort(reason) { - if (IsWritableStream(this) === false) { - return Promise.reject(streamBrandCheckException('abort')); - } - - if (IsWritableStreamLocked(this) === true) { - return Promise.reject(new TypeError('Cannot abort a stream that already has a writer')); - } - - return WritableStreamAbort(this, reason); - } - }, { - key: 'getWriter', - value: function getWriter() { - if (IsWritableStream(this) === false) { - throw streamBrandCheckException('getWriter'); - } - - return AcquireWritableStreamDefaultWriter(this); - } - }, { - key: 'locked', - get: function get() { - if (IsWritableStream(this) === false) { - throw streamBrandCheckException('locked'); - } - - return IsWritableStreamLocked(this); - } - }]); - - return WritableStream; - }(); - - module.exports = { - AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter, - IsWritableStream: IsWritableStream, - IsWritableStreamLocked: IsWritableStreamLocked, - WritableStream: WritableStream, - WritableStreamAbort: WritableStreamAbort, - WritableStreamDefaultControllerError: WritableStreamDefaultControllerError, - WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation, - WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease, - WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite, - WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight - }; - - function AcquireWritableStreamDefaultWriter(stream) { - return new WritableStreamDefaultWriter(stream); - } - - function IsWritableStream(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) { - return false; - } - - return true; - } - - function IsWritableStreamLocked(stream) { - assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams'); - - if (stream._writer === undefined) { - return false; - } - - return true; - } - - function WritableStreamAbort(stream, reason) { - var state = stream._state; - - if (state === 'closed') { - return Promise.resolve(undefined); - } - - if (state === 'errored') { - return Promise.reject(stream._storedError); - } - - var error = new TypeError('Requested to abort'); - - if (stream._pendingAbortRequest !== undefined) { - return Promise.reject(error); - } - - assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring'); - var wasAlreadyErroring = false; - - if (state === 'erroring') { - wasAlreadyErroring = true; - reason = undefined; - } - - var promise = new Promise(function (resolve, reject) { - stream._pendingAbortRequest = { - _resolve: resolve, - _reject: reject, - _reason: reason, - _wasAlreadyErroring: wasAlreadyErroring - }; - }); - - if (wasAlreadyErroring === false) { - WritableStreamStartErroring(stream, error); - } - - return promise; - } - - function WritableStreamAddWriteRequest(stream) { - assert(IsWritableStreamLocked(stream) === true); - assert(stream._state === 'writable'); - var promise = new Promise(function (resolve, reject) { - var writeRequest = { - _resolve: resolve, - _reject: reject - }; - - stream._writeRequests.push(writeRequest); - }); - return promise; - } - - function WritableStreamDealWithRejection(stream, error) { - var state = stream._state; - - if (state === 'writable') { - WritableStreamStartErroring(stream, error); - return; - } - - assert(state === 'erroring'); - WritableStreamFinishErroring(stream); - } - - function WritableStreamStartErroring(stream, reason) { - assert(stream._storedError === undefined, 'stream._storedError === undefined'); - assert(stream._state === 'writable', 'state must be writable'); - var controller = stream._writableStreamController; - assert(controller !== undefined, 'controller must not be undefined'); - stream._state = 'erroring'; - stream._storedError = reason; - var writer = stream._writer; - - if (writer !== undefined) { - WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason); - } - - if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) { - WritableStreamFinishErroring(stream); - } - } - - function WritableStreamFinishErroring(stream) { - assert(stream._state === 'erroring', 'stream._state === erroring'); - assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false'); - stream._state = 'errored'; - - stream._writableStreamController.__errorSteps(); - - var storedError = stream._storedError; - - for (var i = 0; i < stream._writeRequests.length; i++) { - var writeRequest = stream._writeRequests[i]; - - writeRequest._reject(storedError); - } - - stream._writeRequests = []; - - if (stream._pendingAbortRequest === undefined) { - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - return; - } - - var abortRequest = stream._pendingAbortRequest; - stream._pendingAbortRequest = undefined; - - if (abortRequest._wasAlreadyErroring === true) { - abortRequest._reject(storedError); - - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - return; - } - - var promise = stream._writableStreamController.__abortSteps(abortRequest._reason); - - promise.then(function () { - abortRequest._resolve(); - - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - }, function (reason) { - abortRequest._reject(reason); - - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - }); - } - - function WritableStreamFinishInFlightWrite(stream) { - assert(stream._inFlightWriteRequest !== undefined); - - stream._inFlightWriteRequest._resolve(undefined); - - stream._inFlightWriteRequest = undefined; - } - - function WritableStreamFinishInFlightWriteWithError(stream, error) { - assert(stream._inFlightWriteRequest !== undefined); - - stream._inFlightWriteRequest._reject(error); - - stream._inFlightWriteRequest = undefined; - assert(stream._state === 'writable' || stream._state === 'erroring'); - WritableStreamDealWithRejection(stream, error); - } - - function WritableStreamFinishInFlightClose(stream) { - assert(stream._inFlightCloseRequest !== undefined); - - stream._inFlightCloseRequest._resolve(undefined); - - stream._inFlightCloseRequest = undefined; - var state = stream._state; - assert(state === 'writable' || state === 'erroring'); - - if (state === 'erroring') { - stream._storedError = undefined; - - if (stream._pendingAbortRequest !== undefined) { - stream._pendingAbortRequest._resolve(); - - stream._pendingAbortRequest = undefined; - } - } - - stream._state = 'closed'; - var writer = stream._writer; - - if (writer !== undefined) { - defaultWriterClosedPromiseResolve(writer); - } - - assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined'); - assert(stream._storedError === undefined, 'stream._storedError === undefined'); - } - - function WritableStreamFinishInFlightCloseWithError(stream, error) { - assert(stream._inFlightCloseRequest !== undefined); - - stream._inFlightCloseRequest._reject(error); - - stream._inFlightCloseRequest = undefined; - assert(stream._state === 'writable' || stream._state === 'erroring'); - - if (stream._pendingAbortRequest !== undefined) { - stream._pendingAbortRequest._reject(error); - - stream._pendingAbortRequest = undefined; - } - - WritableStreamDealWithRejection(stream, error); - } - - function WritableStreamCloseQueuedOrInFlight(stream) { - if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) { - return false; - } - - return true; - } - - function WritableStreamHasOperationMarkedInFlight(stream) { - if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) { - return false; - } - - return true; - } - - function WritableStreamMarkCloseRequestInFlight(stream) { - assert(stream._inFlightCloseRequest === undefined); - assert(stream._closeRequest !== undefined); - stream._inFlightCloseRequest = stream._closeRequest; - stream._closeRequest = undefined; - } - - function WritableStreamMarkFirstWriteRequestInFlight(stream) { - assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request'); - assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty'); - stream._inFlightWriteRequest = stream._writeRequests.shift(); - } - - function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) { - assert(stream._state === 'errored', '_stream_.[[state]] is `"errored"`'); - - if (stream._closeRequest !== undefined) { - assert(stream._inFlightCloseRequest === undefined); - - stream._closeRequest._reject(stream._storedError); - - stream._closeRequest = undefined; - } - - var writer = stream._writer; - - if (writer !== undefined) { - defaultWriterClosedPromiseReject(writer, stream._storedError); - - writer._closedPromise["catch"](function () {}); - } - } - - function WritableStreamUpdateBackpressure(stream, backpressure) { - assert(stream._state === 'writable'); - assert(WritableStreamCloseQueuedOrInFlight(stream) === false); - var writer = stream._writer; - - if (writer !== undefined && backpressure !== stream._backpressure) { - if (backpressure === true) { - defaultWriterReadyPromiseReset(writer); - } else { - assert(backpressure === false); - defaultWriterReadyPromiseResolve(writer); - } - } - - stream._backpressure = backpressure; - } - - var WritableStreamDefaultWriter = function () { - function WritableStreamDefaultWriter(stream) { - _classCallCheck(this, WritableStreamDefaultWriter); - - if (IsWritableStream(stream) === false) { - throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance'); - } - - if (IsWritableStreamLocked(stream) === true) { - throw new TypeError('This stream has already been locked for exclusive writing by another writer'); - } - - this._ownerWritableStream = stream; - stream._writer = this; - var state = stream._state; - - if (state === 'writable') { - if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) { - defaultWriterReadyPromiseInitialize(this); - } else { - defaultWriterReadyPromiseInitializeAsResolved(this); - } - - defaultWriterClosedPromiseInitialize(this); - } else if (state === 'erroring') { - defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError); - - this._readyPromise["catch"](function () {}); - - defaultWriterClosedPromiseInitialize(this); - } else if (state === 'closed') { - defaultWriterReadyPromiseInitializeAsResolved(this); - defaultWriterClosedPromiseInitializeAsResolved(this); - } else { - assert(state === 'errored', 'state must be errored'); - var storedError = stream._storedError; - defaultWriterReadyPromiseInitializeAsRejected(this, storedError); - - this._readyPromise["catch"](function () {}); - - defaultWriterClosedPromiseInitializeAsRejected(this, storedError); - - this._closedPromise["catch"](function () {}); - } - } - - _createClass(WritableStreamDefaultWriter, [{ - key: 'abort', - value: function abort(reason) { - if (IsWritableStreamDefaultWriter(this) === false) { - return Promise.reject(defaultWriterBrandCheckException('abort')); - } - - if (this._ownerWritableStream === undefined) { - return Promise.reject(defaultWriterLockException('abort')); - } - - return WritableStreamDefaultWriterAbort(this, reason); - } - }, { - key: 'close', - value: function close() { - if (IsWritableStreamDefaultWriter(this) === false) { - return Promise.reject(defaultWriterBrandCheckException('close')); - } - - var stream = this._ownerWritableStream; - - if (stream === undefined) { - return Promise.reject(defaultWriterLockException('close')); - } - - if (WritableStreamCloseQueuedOrInFlight(stream) === true) { - return Promise.reject(new TypeError('cannot close an already-closing stream')); - } - - return WritableStreamDefaultWriterClose(this); - } - }, { - key: 'releaseLock', - value: function releaseLock() { - if (IsWritableStreamDefaultWriter(this) === false) { - throw defaultWriterBrandCheckException('releaseLock'); - } - - var stream = this._ownerWritableStream; - - if (stream === undefined) { - return; - } - - assert(stream._writer !== undefined); - WritableStreamDefaultWriterRelease(this); - } - }, { - key: 'write', - value: function write(chunk) { - if (IsWritableStreamDefaultWriter(this) === false) { - return Promise.reject(defaultWriterBrandCheckException('write')); - } - - if (this._ownerWritableStream === undefined) { - return Promise.reject(defaultWriterLockException('write to')); - } - - return WritableStreamDefaultWriterWrite(this, chunk); - } - }, { - key: 'closed', - get: function get() { - if (IsWritableStreamDefaultWriter(this) === false) { - return Promise.reject(defaultWriterBrandCheckException('closed')); - } - - return this._closedPromise; - } - }, { - key: 'desiredSize', - get: function get() { - if (IsWritableStreamDefaultWriter(this) === false) { - throw defaultWriterBrandCheckException('desiredSize'); - } - - if (this._ownerWritableStream === undefined) { - throw defaultWriterLockException('desiredSize'); - } - - return WritableStreamDefaultWriterGetDesiredSize(this); - } - }, { - key: 'ready', - get: function get() { - if (IsWritableStreamDefaultWriter(this) === false) { - return Promise.reject(defaultWriterBrandCheckException('ready')); - } - - return this._readyPromise; - } - }]); - - return WritableStreamDefaultWriter; - }(); - - function IsWritableStreamDefaultWriter(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) { - return false; - } - - return true; - } - - function WritableStreamDefaultWriterAbort(writer, reason) { - var stream = writer._ownerWritableStream; - assert(stream !== undefined); - return WritableStreamAbort(stream, reason); - } - - function WritableStreamDefaultWriterClose(writer) { - var stream = writer._ownerWritableStream; - assert(stream !== undefined); - var state = stream._state; - - if (state === 'closed' || state === 'errored') { - return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed')); - } - - assert(state === 'writable' || state === 'erroring'); - assert(WritableStreamCloseQueuedOrInFlight(stream) === false); - var promise = new Promise(function (resolve, reject) { - var closeRequest = { - _resolve: resolve, - _reject: reject - }; - stream._closeRequest = closeRequest; - }); - - if (stream._backpressure === true && state === 'writable') { - defaultWriterReadyPromiseResolve(writer); - } - - WritableStreamDefaultControllerClose(stream._writableStreamController); - return promise; - } - - function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) { - var stream = writer._ownerWritableStream; - assert(stream !== undefined); - var state = stream._state; - - if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { - return Promise.resolve(); - } - - if (state === 'errored') { - return Promise.reject(stream._storedError); - } - - assert(state === 'writable' || state === 'erroring'); - return WritableStreamDefaultWriterClose(writer); - } - - function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) { - if (writer._closedPromiseState === 'pending') { - defaultWriterClosedPromiseReject(writer, error); - } else { - defaultWriterClosedPromiseResetToRejected(writer, error); - } - - writer._closedPromise["catch"](function () {}); - } - - function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) { - if (writer._readyPromiseState === 'pending') { - defaultWriterReadyPromiseReject(writer, error); - } else { - defaultWriterReadyPromiseResetToRejected(writer, error); - } - - writer._readyPromise["catch"](function () {}); - } - - function WritableStreamDefaultWriterGetDesiredSize(writer) { - var stream = writer._ownerWritableStream; - var state = stream._state; - - if (state === 'errored' || state === 'erroring') { - return null; - } - - if (state === 'closed') { - return 0; - } - - return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController); - } - - function WritableStreamDefaultWriterRelease(writer) { - var stream = writer._ownerWritableStream; - assert(stream !== undefined); - assert(stream._writer === writer); - var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\'s closedness'); - WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError); - WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError); - stream._writer = undefined; - writer._ownerWritableStream = undefined; - } - - function WritableStreamDefaultWriterWrite(writer, chunk) { - var stream = writer._ownerWritableStream; - assert(stream !== undefined); - var controller = stream._writableStreamController; - var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk); - - if (stream !== writer._ownerWritableStream) { - return Promise.reject(defaultWriterLockException('write to')); - } - - var state = stream._state; - - if (state === 'errored') { - return Promise.reject(stream._storedError); - } - - if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { - return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to')); - } - - if (state === 'erroring') { - return Promise.reject(stream._storedError); - } - - assert(state === 'writable'); - var promise = WritableStreamAddWriteRequest(stream); - WritableStreamDefaultControllerWrite(controller, chunk, chunkSize); - return promise; - } - - var WritableStreamDefaultController = function () { - function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) { - _classCallCheck(this, WritableStreamDefaultController); - - if (IsWritableStream(stream) === false) { - throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance'); - } - - if (stream._writableStreamController !== undefined) { - throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor'); - } - - this._controlledWritableStream = stream; - this._underlyingSink = underlyingSink; - this._queue = undefined; - this._queueTotalSize = undefined; - ResetQueue(this); - this._started = false; - var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); - this._strategySize = normalizedStrategy.size; - this._strategyHWM = normalizedStrategy.highWaterMark; - var backpressure = WritableStreamDefaultControllerGetBackpressure(this); - WritableStreamUpdateBackpressure(stream, backpressure); - } - - _createClass(WritableStreamDefaultController, [{ - key: 'error', - value: function error(e) { - if (IsWritableStreamDefaultController(this) === false) { - throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController'); - } - - var state = this._controlledWritableStream._state; - - if (state !== 'writable') { - return; - } - - WritableStreamDefaultControllerError(this, e); - } - }, { - key: '__abortSteps', - value: function __abortSteps(reason) { - return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]); - } - }, { - key: '__errorSteps', - value: function __errorSteps() { - ResetQueue(this); - } - }, { - key: '__startSteps', - value: function __startSteps() { - var _this = this; - - var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]); - var stream = this._controlledWritableStream; - Promise.resolve(startResult).then(function () { - assert(stream._state === 'writable' || stream._state === 'erroring'); - _this._started = true; - WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this); - }, function (r) { - assert(stream._state === 'writable' || stream._state === 'erroring'); - _this._started = true; - WritableStreamDealWithRejection(stream, r); - })["catch"](rethrowAssertionErrorRejection); - } - }]); - - return WritableStreamDefaultController; - }(); - - function WritableStreamDefaultControllerClose(controller) { - EnqueueValueWithSize(controller, 'close', 0); - WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); - } - - function WritableStreamDefaultControllerGetChunkSize(controller, chunk) { - var strategySize = controller._strategySize; - - if (strategySize === undefined) { - return 1; - } - - try { - return strategySize(chunk); - } catch (chunkSizeE) { - WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); - return 1; - } - } - - function WritableStreamDefaultControllerGetDesiredSize(controller) { - return controller._strategyHWM - controller._queueTotalSize; - } - - function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) { - var writeRecord = { - chunk: chunk - }; - - try { - EnqueueValueWithSize(controller, writeRecord, chunkSize); - } catch (enqueueE) { - WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); - return; - } - - var stream = controller._controlledWritableStream; - - if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') { - var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); - WritableStreamUpdateBackpressure(stream, backpressure); - } - - WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); - } - - function IsWritableStreamDefaultController(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) { - return false; - } - - return true; - } - - function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) { - var stream = controller._controlledWritableStream; - - if (controller._started === false) { - return; - } - - if (stream._inFlightWriteRequest !== undefined) { - return; - } - - var state = stream._state; - - if (state === 'closed' || state === 'errored') { - return; - } - - if (state === 'erroring') { - WritableStreamFinishErroring(stream); - return; - } - - if (controller._queue.length === 0) { - return; - } - - var writeRecord = PeekQueueValue(controller); - - if (writeRecord === 'close') { - WritableStreamDefaultControllerProcessClose(controller); - } else { - WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk); - } - } - - function WritableStreamDefaultControllerErrorIfNeeded(controller, error) { - if (controller._controlledWritableStream._state === 'writable') { - WritableStreamDefaultControllerError(controller, error); - } - } - - function WritableStreamDefaultControllerProcessClose(controller) { - var stream = controller._controlledWritableStream; - WritableStreamMarkCloseRequestInFlight(stream); - DequeueValue(controller); - assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued'); - var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []); - sinkClosePromise.then(function () { - WritableStreamFinishInFlightClose(stream); - }, function (reason) { - WritableStreamFinishInFlightCloseWithError(stream, reason); - })["catch"](rethrowAssertionErrorRejection); - } - - function WritableStreamDefaultControllerProcessWrite(controller, chunk) { - var stream = controller._controlledWritableStream; - WritableStreamMarkFirstWriteRequestInFlight(stream); - var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]); - sinkWritePromise.then(function () { - WritableStreamFinishInFlightWrite(stream); - var state = stream._state; - assert(state === 'writable' || state === 'erroring'); - DequeueValue(controller); - - if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') { - var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); - WritableStreamUpdateBackpressure(stream, backpressure); - } - - WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); - }, function (reason) { - WritableStreamFinishInFlightWriteWithError(stream, reason); - })["catch"](rethrowAssertionErrorRejection); - } - - function WritableStreamDefaultControllerGetBackpressure(controller) { - var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller); - return desiredSize <= 0; - } - - function WritableStreamDefaultControllerError(controller, error) { - var stream = controller._controlledWritableStream; - assert(stream._state === 'writable'); - WritableStreamStartErroring(stream, error); - } - - function streamBrandCheckException(name) { - return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream'); - } - - function defaultWriterBrandCheckException(name) { - return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter'); - } - - function defaultWriterLockException(name) { - return new TypeError('Cannot ' + name + ' a stream using a released writer'); - } - - function defaultWriterClosedPromiseInitialize(writer) { - writer._closedPromise = new Promise(function (resolve, reject) { - writer._closedPromise_resolve = resolve; - writer._closedPromise_reject = reject; - writer._closedPromiseState = 'pending'; - }); - } - - function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) { - writer._closedPromise = Promise.reject(reason); - writer._closedPromise_resolve = undefined; - writer._closedPromise_reject = undefined; - writer._closedPromiseState = 'rejected'; - } - - function defaultWriterClosedPromiseInitializeAsResolved(writer) { - writer._closedPromise = Promise.resolve(undefined); - writer._closedPromise_resolve = undefined; - writer._closedPromise_reject = undefined; - writer._closedPromiseState = 'resolved'; - } - - function defaultWriterClosedPromiseReject(writer, reason) { - assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); - assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); - assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); - - writer._closedPromise_reject(reason); - - writer._closedPromise_resolve = undefined; - writer._closedPromise_reject = undefined; - writer._closedPromiseState = 'rejected'; - } - - function defaultWriterClosedPromiseResetToRejected(writer, reason) { - assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined'); - assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined'); - assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending'); - writer._closedPromise = Promise.reject(reason); - writer._closedPromiseState = 'rejected'; - } - - function defaultWriterClosedPromiseResolve(writer) { - assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); - assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); - assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); - - writer._closedPromise_resolve(undefined); - - writer._closedPromise_resolve = undefined; - writer._closedPromise_reject = undefined; - writer._closedPromiseState = 'resolved'; - } - - function defaultWriterReadyPromiseInitialize(writer) { - writer._readyPromise = new Promise(function (resolve, reject) { - writer._readyPromise_resolve = resolve; - writer._readyPromise_reject = reject; - }); - writer._readyPromiseState = 'pending'; - } - - function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) { - writer._readyPromise = Promise.reject(reason); - writer._readyPromise_resolve = undefined; - writer._readyPromise_reject = undefined; - writer._readyPromiseState = 'rejected'; - } - - function defaultWriterReadyPromiseInitializeAsResolved(writer) { - writer._readyPromise = Promise.resolve(undefined); - writer._readyPromise_resolve = undefined; - writer._readyPromise_reject = undefined; - writer._readyPromiseState = 'fulfilled'; - } - - function defaultWriterReadyPromiseReject(writer, reason) { - assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); - assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); - - writer._readyPromise_reject(reason); - - writer._readyPromise_resolve = undefined; - writer._readyPromise_reject = undefined; - writer._readyPromiseState = 'rejected'; - } - - function defaultWriterReadyPromiseReset(writer) { - assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); - assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); - writer._readyPromise = new Promise(function (resolve, reject) { - writer._readyPromise_resolve = resolve; - writer._readyPromise_reject = reject; - }); - writer._readyPromiseState = 'pending'; - } - - function defaultWriterReadyPromiseResetToRejected(writer, reason) { - assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); - assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); - writer._readyPromise = Promise.reject(reason); - writer._readyPromiseState = 'rejected'; - } - - function defaultWriterReadyPromiseResolve(writer) { - assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); - assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); - - writer._readyPromise_resolve(undefined); - - writer._readyPromise_resolve = undefined; - writer._readyPromise_reject = undefined; - writer._readyPromiseState = 'fulfilled'; - } -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var _require = __w_pdfjs_require__(0), - IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber; - - var _require2 = __w_pdfjs_require__(1), - assert = _require2.assert; - - exports.DequeueValue = function (container) { - assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); - assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.'); - - var pair = container._queue.shift(); - - container._queueTotalSize -= pair.size; - - if (container._queueTotalSize < 0) { - container._queueTotalSize = 0; - } - - return pair.value; - }; - - exports.EnqueueValueWithSize = function (container, value, size) { - assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].'); - size = Number(size); - - if (!IsFiniteNonNegativeNumber(size)) { - throw new RangeError('Size must be a finite, non-NaN, non-negative number.'); - } - - container._queue.push({ - value: value, - size: size - }); - - container._queueTotalSize += size; - }; - - exports.PeekQueueValue = function (container) { - assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); - assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.'); - var pair = container._queue[0]; - return pair.value; - }; - - exports.ResetQueue = function (container) { - assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].'); - container._queue = []; - container._queueTotalSize = 0; - }; -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var _createClass = function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; - }(); - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - var _require = __w_pdfjs_require__(0), - ArrayBufferCopy = _require.ArrayBufferCopy, - CreateIterResultObject = _require.CreateIterResultObject, - IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber, - InvokeOrNoop = _require.InvokeOrNoop, - PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, - TransferArrayBuffer = _require.TransferArrayBuffer, - ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, - ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark; - - var _require2 = __w_pdfjs_require__(0), - createArrayFromList = _require2.createArrayFromList, - createDataProperty = _require2.createDataProperty, - typeIsObject = _require2.typeIsObject; - - var _require3 = __w_pdfjs_require__(1), - assert = _require3.assert, - rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection; - - var _require4 = __w_pdfjs_require__(3), - DequeueValue = _require4.DequeueValue, - EnqueueValueWithSize = _require4.EnqueueValueWithSize, - ResetQueue = _require4.ResetQueue; - - var _require5 = __w_pdfjs_require__(2), - AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter, - IsWritableStream = _require5.IsWritableStream, - IsWritableStreamLocked = _require5.IsWritableStreamLocked, - WritableStreamAbort = _require5.WritableStreamAbort, - WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation, - WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease, - WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite, - WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight; - - var ReadableStream = function () { - function ReadableStream() { - var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - size = _ref.size, - highWaterMark = _ref.highWaterMark; - - _classCallCheck(this, ReadableStream); - - this._state = 'readable'; - this._reader = undefined; - this._storedError = undefined; - this._disturbed = false; - this._readableStreamController = undefined; - var type = underlyingSource.type; - var typeString = String(type); - - if (typeString === 'bytes') { - if (highWaterMark === undefined) { - highWaterMark = 0; - } - - this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark); - } else if (type === undefined) { - if (highWaterMark === undefined) { - highWaterMark = 1; - } - - this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark); - } else { - throw new RangeError('Invalid type is specified'); - } - } - - _createClass(ReadableStream, [{ - key: 'cancel', - value: function cancel(reason) { - if (IsReadableStream(this) === false) { - return Promise.reject(streamBrandCheckException('cancel')); - } - - if (IsReadableStreamLocked(this) === true) { - return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader')); - } - - return ReadableStreamCancel(this, reason); - } - }, { - key: 'getReader', - value: function getReader() { - var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - mode = _ref2.mode; - - if (IsReadableStream(this) === false) { - throw streamBrandCheckException('getReader'); - } - - if (mode === undefined) { - return AcquireReadableStreamDefaultReader(this); - } - - mode = String(mode); - - if (mode === 'byob') { - return AcquireReadableStreamBYOBReader(this); - } - - throw new RangeError('Invalid mode is specified'); - } - }, { - key: 'pipeThrough', - value: function pipeThrough(_ref3, options) { - var writable = _ref3.writable, - readable = _ref3.readable; - var promise = this.pipeTo(writable, options); - ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise); - return readable; - } - }, { - key: 'pipeTo', - value: function pipeTo(dest) { - var _this = this; - - var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - preventClose = _ref4.preventClose, - preventAbort = _ref4.preventAbort, - preventCancel = _ref4.preventCancel; - - if (IsReadableStream(this) === false) { - return Promise.reject(streamBrandCheckException('pipeTo')); - } - - if (IsWritableStream(dest) === false) { - return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\'s first argument must be a WritableStream')); - } - - preventClose = Boolean(preventClose); - preventAbort = Boolean(preventAbort); - preventCancel = Boolean(preventCancel); - - if (IsReadableStreamLocked(this) === true) { - return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream')); - } - - if (IsWritableStreamLocked(dest) === true) { - return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream')); - } - - var reader = AcquireReadableStreamDefaultReader(this); - var writer = AcquireWritableStreamDefaultWriter(dest); - var shuttingDown = false; - var currentWrite = Promise.resolve(); - return new Promise(function (resolve, reject) { - function pipeLoop() { - currentWrite = Promise.resolve(); - - if (shuttingDown === true) { - return Promise.resolve(); - } - - return writer._readyPromise.then(function () { - return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) { - var value = _ref5.value, - done = _ref5.done; - - if (done === true) { - return; - } - - currentWrite = WritableStreamDefaultWriterWrite(writer, value)["catch"](function () {}); - }); - }).then(pipeLoop); - } - - isOrBecomesErrored(_this, reader._closedPromise, function (storedError) { - if (preventAbort === false) { - shutdownWithAction(function () { - return WritableStreamAbort(dest, storedError); - }, true, storedError); - } else { - shutdown(true, storedError); - } - }); - isOrBecomesErrored(dest, writer._closedPromise, function (storedError) { - if (preventCancel === false) { - shutdownWithAction(function () { - return ReadableStreamCancel(_this, storedError); - }, true, storedError); - } else { - shutdown(true, storedError); - } - }); - isOrBecomesClosed(_this, reader._closedPromise, function () { - if (preventClose === false) { - shutdownWithAction(function () { - return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); - }); - } else { - shutdown(); - } - }); - - if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') { - var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it'); - - if (preventCancel === false) { - shutdownWithAction(function () { - return ReadableStreamCancel(_this, destClosed); - }, true, destClosed); - } else { - shutdown(true, destClosed); - } - } - - pipeLoop()["catch"](function (err) { - currentWrite = Promise.resolve(); - rethrowAssertionErrorRejection(err); - }); - - function waitForWritesToFinish() { - var oldCurrentWrite = currentWrite; - return currentWrite.then(function () { - return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; - }); - } - - function isOrBecomesErrored(stream, promise, action) { - if (stream._state === 'errored') { - action(stream._storedError); - } else { - promise["catch"](action)["catch"](rethrowAssertionErrorRejection); - } - } - - function isOrBecomesClosed(stream, promise, action) { - if (stream._state === 'closed') { - action(); - } else { - promise.then(action)["catch"](rethrowAssertionErrorRejection); - } - } - - function shutdownWithAction(action, originalIsError, originalError) { - if (shuttingDown === true) { - return; - } - - shuttingDown = true; - - if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { - waitForWritesToFinish().then(doTheRest); - } else { - doTheRest(); - } - - function doTheRest() { - action().then(function () { - return finalize(originalIsError, originalError); - }, function (newError) { - return finalize(true, newError); - })["catch"](rethrowAssertionErrorRejection); - } - } - - function shutdown(isError, error) { - if (shuttingDown === true) { - return; - } - - shuttingDown = true; - - if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { - waitForWritesToFinish().then(function () { - return finalize(isError, error); - })["catch"](rethrowAssertionErrorRejection); - } else { - finalize(isError, error); - } - } - - function finalize(isError, error) { - WritableStreamDefaultWriterRelease(writer); - ReadableStreamReaderGenericRelease(reader); - - if (isError) { - reject(error); - } else { - resolve(undefined); - } - } - }); - } - }, { - key: 'tee', - value: function tee() { - if (IsReadableStream(this) === false) { - throw streamBrandCheckException('tee'); - } - - var branches = ReadableStreamTee(this, false); - return createArrayFromList(branches); - } - }, { - key: 'locked', - get: function get() { - if (IsReadableStream(this) === false) { - throw streamBrandCheckException('locked'); - } - - return IsReadableStreamLocked(this); - } - }]); - - return ReadableStream; - }(); - - module.exports = { - ReadableStream: ReadableStream, - IsReadableStreamDisturbed: IsReadableStreamDisturbed, - ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose, - ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue, - ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError, - ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize - }; - - function AcquireReadableStreamBYOBReader(stream) { - return new ReadableStreamBYOBReader(stream); - } - - function AcquireReadableStreamDefaultReader(stream) { - return new ReadableStreamDefaultReader(stream); - } - - function IsReadableStream(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) { - return false; - } - - return true; - } - - function IsReadableStreamDisturbed(stream) { - assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams'); - return stream._disturbed; - } - - function IsReadableStreamLocked(stream) { - assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams'); - - if (stream._reader === undefined) { - return false; - } - - return true; - } - - function ReadableStreamTee(stream, cloneForBranch2) { - assert(IsReadableStream(stream) === true); - assert(typeof cloneForBranch2 === 'boolean'); - var reader = AcquireReadableStreamDefaultReader(stream); - var teeState = { - closedOrErrored: false, - canceled1: false, - canceled2: false, - reason1: undefined, - reason2: undefined - }; - teeState.promise = new Promise(function (resolve) { - teeState._resolve = resolve; - }); - var pull = create_ReadableStreamTeePullFunction(); - pull._reader = reader; - pull._teeState = teeState; - pull._cloneForBranch2 = cloneForBranch2; - var cancel1 = create_ReadableStreamTeeBranch1CancelFunction(); - cancel1._stream = stream; - cancel1._teeState = teeState; - var cancel2 = create_ReadableStreamTeeBranch2CancelFunction(); - cancel2._stream = stream; - cancel2._teeState = teeState; - var underlyingSource1 = Object.create(Object.prototype); - createDataProperty(underlyingSource1, 'pull', pull); - createDataProperty(underlyingSource1, 'cancel', cancel1); - var branch1Stream = new ReadableStream(underlyingSource1); - var underlyingSource2 = Object.create(Object.prototype); - createDataProperty(underlyingSource2, 'pull', pull); - createDataProperty(underlyingSource2, 'cancel', cancel2); - var branch2Stream = new ReadableStream(underlyingSource2); - pull._branch1 = branch1Stream._readableStreamController; - pull._branch2 = branch2Stream._readableStreamController; - - reader._closedPromise["catch"](function (r) { - if (teeState.closedOrErrored === true) { - return; - } - - ReadableStreamDefaultControllerError(pull._branch1, r); - ReadableStreamDefaultControllerError(pull._branch2, r); - teeState.closedOrErrored = true; - }); - - return [branch1Stream, branch2Stream]; - } - - function create_ReadableStreamTeePullFunction() { - function f() { - var reader = f._reader, - branch1 = f._branch1, - branch2 = f._branch2, - teeState = f._teeState; - return ReadableStreamDefaultReaderRead(reader).then(function (result) { - assert(typeIsObject(result)); - var value = result.value; - var done = result.done; - assert(typeof done === 'boolean'); - - if (done === true && teeState.closedOrErrored === false) { - if (teeState.canceled1 === false) { - ReadableStreamDefaultControllerClose(branch1); - } - - if (teeState.canceled2 === false) { - ReadableStreamDefaultControllerClose(branch2); - } - - teeState.closedOrErrored = true; - } - - if (teeState.closedOrErrored === true) { - return; - } - - var value1 = value; - var value2 = value; - - if (teeState.canceled1 === false) { - ReadableStreamDefaultControllerEnqueue(branch1, value1); - } - - if (teeState.canceled2 === false) { - ReadableStreamDefaultControllerEnqueue(branch2, value2); - } - }); - } - - return f; - } - - function create_ReadableStreamTeeBranch1CancelFunction() { - function f(reason) { - var stream = f._stream, - teeState = f._teeState; - teeState.canceled1 = true; - teeState.reason1 = reason; - - if (teeState.canceled2 === true) { - var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); - var cancelResult = ReadableStreamCancel(stream, compositeReason); - - teeState._resolve(cancelResult); - } - - return teeState.promise; - } - - return f; - } - - function create_ReadableStreamTeeBranch2CancelFunction() { - function f(reason) { - var stream = f._stream, - teeState = f._teeState; - teeState.canceled2 = true; - teeState.reason2 = reason; - - if (teeState.canceled1 === true) { - var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); - var cancelResult = ReadableStreamCancel(stream, compositeReason); - - teeState._resolve(cancelResult); - } - - return teeState.promise; - } - - return f; - } - - function ReadableStreamAddReadIntoRequest(stream) { - assert(IsReadableStreamBYOBReader(stream._reader) === true); - assert(stream._state === 'readable' || stream._state === 'closed'); - var promise = new Promise(function (resolve, reject) { - var readIntoRequest = { - _resolve: resolve, - _reject: reject - }; - - stream._reader._readIntoRequests.push(readIntoRequest); - }); - return promise; - } - - function ReadableStreamAddReadRequest(stream) { - assert(IsReadableStreamDefaultReader(stream._reader) === true); - assert(stream._state === 'readable'); - var promise = new Promise(function (resolve, reject) { - var readRequest = { - _resolve: resolve, - _reject: reject - }; - - stream._reader._readRequests.push(readRequest); - }); - return promise; - } - - function ReadableStreamCancel(stream, reason) { - stream._disturbed = true; - - if (stream._state === 'closed') { - return Promise.resolve(undefined); - } - - if (stream._state === 'errored') { - return Promise.reject(stream._storedError); - } - - ReadableStreamClose(stream); - - var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason); - - return sourceCancelPromise.then(function () { - return undefined; - }); - } - - function ReadableStreamClose(stream) { - assert(stream._state === 'readable'); - stream._state = 'closed'; - var reader = stream._reader; - - if (reader === undefined) { - return undefined; - } - - if (IsReadableStreamDefaultReader(reader) === true) { - for (var i = 0; i < reader._readRequests.length; i++) { - var _resolve = reader._readRequests[i]._resolve; - - _resolve(CreateIterResultObject(undefined, true)); - } - - reader._readRequests = []; - } - - defaultReaderClosedPromiseResolve(reader); - return undefined; - } - - function ReadableStreamError(stream, e) { - assert(IsReadableStream(stream) === true, 'stream must be ReadableStream'); - assert(stream._state === 'readable', 'state must be readable'); - stream._state = 'errored'; - stream._storedError = e; - var reader = stream._reader; - - if (reader === undefined) { - return undefined; - } - - if (IsReadableStreamDefaultReader(reader) === true) { - for (var i = 0; i < reader._readRequests.length; i++) { - var readRequest = reader._readRequests[i]; - - readRequest._reject(e); - } - - reader._readRequests = []; - } else { - assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader'); - - for (var _i = 0; _i < reader._readIntoRequests.length; _i++) { - var readIntoRequest = reader._readIntoRequests[_i]; - - readIntoRequest._reject(e); - } - - reader._readIntoRequests = []; - } - - defaultReaderClosedPromiseReject(reader, e); - - reader._closedPromise["catch"](function () {}); - } - - function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) { - var reader = stream._reader; - assert(reader._readIntoRequests.length > 0); - - var readIntoRequest = reader._readIntoRequests.shift(); - - readIntoRequest._resolve(CreateIterResultObject(chunk, done)); - } - - function ReadableStreamFulfillReadRequest(stream, chunk, done) { - var reader = stream._reader; - assert(reader._readRequests.length > 0); - - var readRequest = reader._readRequests.shift(); - - readRequest._resolve(CreateIterResultObject(chunk, done)); - } - - function ReadableStreamGetNumReadIntoRequests(stream) { - return stream._reader._readIntoRequests.length; - } - - function ReadableStreamGetNumReadRequests(stream) { - return stream._reader._readRequests.length; - } - - function ReadableStreamHasBYOBReader(stream) { - var reader = stream._reader; - - if (reader === undefined) { - return false; - } - - if (IsReadableStreamBYOBReader(reader) === false) { - return false; - } - - return true; - } - - function ReadableStreamHasDefaultReader(stream) { - var reader = stream._reader; - - if (reader === undefined) { - return false; - } - - if (IsReadableStreamDefaultReader(reader) === false) { - return false; - } - - return true; - } - - var ReadableStreamDefaultReader = function () { - function ReadableStreamDefaultReader(stream) { - _classCallCheck(this, ReadableStreamDefaultReader); - - if (IsReadableStream(stream) === false) { - throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance'); - } - - if (IsReadableStreamLocked(stream) === true) { - throw new TypeError('This stream has already been locked for exclusive reading by another reader'); - } - - ReadableStreamReaderGenericInitialize(this, stream); - this._readRequests = []; - } - - _createClass(ReadableStreamDefaultReader, [{ - key: 'cancel', - value: function cancel(reason) { - if (IsReadableStreamDefaultReader(this) === false) { - return Promise.reject(defaultReaderBrandCheckException('cancel')); - } - - if (this._ownerReadableStream === undefined) { - return Promise.reject(readerLockException('cancel')); - } - - return ReadableStreamReaderGenericCancel(this, reason); - } - }, { - key: 'read', - value: function read() { - if (IsReadableStreamDefaultReader(this) === false) { - return Promise.reject(defaultReaderBrandCheckException('read')); - } - - if (this._ownerReadableStream === undefined) { - return Promise.reject(readerLockException('read from')); - } - - return ReadableStreamDefaultReaderRead(this); - } - }, { - key: 'releaseLock', - value: function releaseLock() { - if (IsReadableStreamDefaultReader(this) === false) { - throw defaultReaderBrandCheckException('releaseLock'); - } - - if (this._ownerReadableStream === undefined) { - return; - } - - if (this._readRequests.length > 0) { - throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); - } - - ReadableStreamReaderGenericRelease(this); - } - }, { - key: 'closed', - get: function get() { - if (IsReadableStreamDefaultReader(this) === false) { - return Promise.reject(defaultReaderBrandCheckException('closed')); - } - - return this._closedPromise; - } - }]); - - return ReadableStreamDefaultReader; - }(); - - var ReadableStreamBYOBReader = function () { - function ReadableStreamBYOBReader(stream) { - _classCallCheck(this, ReadableStreamBYOBReader); - - if (!IsReadableStream(stream)) { - throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source'); - } - - if (IsReadableByteStreamController(stream._readableStreamController) === false) { - throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source'); - } - - if (IsReadableStreamLocked(stream)) { - throw new TypeError('This stream has already been locked for exclusive reading by another reader'); - } - - ReadableStreamReaderGenericInitialize(this, stream); - this._readIntoRequests = []; - } - - _createClass(ReadableStreamBYOBReader, [{ - key: 'cancel', - value: function cancel(reason) { - if (!IsReadableStreamBYOBReader(this)) { - return Promise.reject(byobReaderBrandCheckException('cancel')); - } - - if (this._ownerReadableStream === undefined) { - return Promise.reject(readerLockException('cancel')); - } - - return ReadableStreamReaderGenericCancel(this, reason); - } - }, { - key: 'read', - value: function read(view) { - if (!IsReadableStreamBYOBReader(this)) { - return Promise.reject(byobReaderBrandCheckException('read')); - } - - if (this._ownerReadableStream === undefined) { - return Promise.reject(readerLockException('read from')); - } - - if (!ArrayBuffer.isView(view)) { - return Promise.reject(new TypeError('view must be an array buffer view')); - } - - if (view.byteLength === 0) { - return Promise.reject(new TypeError('view must have non-zero byteLength')); - } - - return ReadableStreamBYOBReaderRead(this, view); - } - }, { - key: 'releaseLock', - value: function releaseLock() { - if (!IsReadableStreamBYOBReader(this)) { - throw byobReaderBrandCheckException('releaseLock'); - } - - if (this._ownerReadableStream === undefined) { - return; - } - - if (this._readIntoRequests.length > 0) { - throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); - } - - ReadableStreamReaderGenericRelease(this); - } - }, { - key: 'closed', - get: function get() { - if (!IsReadableStreamBYOBReader(this)) { - return Promise.reject(byobReaderBrandCheckException('closed')); - } - - return this._closedPromise; - } - }]); - - return ReadableStreamBYOBReader; - }(); - - function IsReadableStreamBYOBReader(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) { - return false; - } - - return true; - } - - function IsReadableStreamDefaultReader(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) { - return false; - } - - return true; - } - - function ReadableStreamReaderGenericInitialize(reader, stream) { - reader._ownerReadableStream = stream; - stream._reader = reader; - - if (stream._state === 'readable') { - defaultReaderClosedPromiseInitialize(reader); - } else if (stream._state === 'closed') { - defaultReaderClosedPromiseInitializeAsResolved(reader); - } else { - assert(stream._state === 'errored', 'state must be errored'); - defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError); - - reader._closedPromise["catch"](function () {}); - } - } - - function ReadableStreamReaderGenericCancel(reader, reason) { - var stream = reader._ownerReadableStream; - assert(stream !== undefined); - return ReadableStreamCancel(stream, reason); - } - - function ReadableStreamReaderGenericRelease(reader) { - assert(reader._ownerReadableStream !== undefined); - assert(reader._ownerReadableStream._reader === reader); - - if (reader._ownerReadableStream._state === 'readable') { - defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); - } else { - defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); - } - - reader._closedPromise["catch"](function () {}); - - reader._ownerReadableStream._reader = undefined; - reader._ownerReadableStream = undefined; - } - - function ReadableStreamBYOBReaderRead(reader, view) { - var stream = reader._ownerReadableStream; - assert(stream !== undefined); - stream._disturbed = true; - - if (stream._state === 'errored') { - return Promise.reject(stream._storedError); - } - - return ReadableByteStreamControllerPullInto(stream._readableStreamController, view); - } - - function ReadableStreamDefaultReaderRead(reader) { - var stream = reader._ownerReadableStream; - assert(stream !== undefined); - stream._disturbed = true; - - if (stream._state === 'closed') { - return Promise.resolve(CreateIterResultObject(undefined, true)); - } - - if (stream._state === 'errored') { - return Promise.reject(stream._storedError); - } - - assert(stream._state === 'readable'); - return stream._readableStreamController.__pullSteps(); - } - - var ReadableStreamDefaultController = function () { - function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) { - _classCallCheck(this, ReadableStreamDefaultController); - - if (IsReadableStream(stream) === false) { - throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance'); - } - - if (stream._readableStreamController !== undefined) { - throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor'); - } - - this._controlledReadableStream = stream; - this._underlyingSource = underlyingSource; - this._queue = undefined; - this._queueTotalSize = undefined; - ResetQueue(this); - this._started = false; - this._closeRequested = false; - this._pullAgain = false; - this._pulling = false; - var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); - this._strategySize = normalizedStrategy.size; - this._strategyHWM = normalizedStrategy.highWaterMark; - var controller = this; - var startResult = InvokeOrNoop(underlyingSource, 'start', [this]); - Promise.resolve(startResult).then(function () { - controller._started = true; - assert(controller._pulling === false); - assert(controller._pullAgain === false); - ReadableStreamDefaultControllerCallPullIfNeeded(controller); - }, function (r) { - ReadableStreamDefaultControllerErrorIfNeeded(controller, r); - })["catch"](rethrowAssertionErrorRejection); - } - - _createClass(ReadableStreamDefaultController, [{ - key: 'close', - value: function close() { - if (IsReadableStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('close'); - } - - if (this._closeRequested === true) { - throw new TypeError('The stream has already been closed; do not close it again!'); - } - - var state = this._controlledReadableStream._state; - - if (state !== 'readable') { - throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); - } - - ReadableStreamDefaultControllerClose(this); - } - }, { - key: 'enqueue', - value: function enqueue(chunk) { - if (IsReadableStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('enqueue'); - } - - if (this._closeRequested === true) { - throw new TypeError('stream is closed or draining'); - } - - var state = this._controlledReadableStream._state; - - if (state !== 'readable') { - throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); - } - - return ReadableStreamDefaultControllerEnqueue(this, chunk); - } - }, { - key: 'error', - value: function error(e) { - if (IsReadableStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('error'); - } - - var stream = this._controlledReadableStream; - - if (stream._state !== 'readable') { - throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); - } - - ReadableStreamDefaultControllerError(this, e); - } - }, { - key: '__cancelSteps', - value: function __cancelSteps(reason) { - ResetQueue(this); - return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]); - } - }, { - key: '__pullSteps', - value: function __pullSteps() { - var stream = this._controlledReadableStream; - - if (this._queue.length > 0) { - var chunk = DequeueValue(this); - - if (this._closeRequested === true && this._queue.length === 0) { - ReadableStreamClose(stream); - } else { - ReadableStreamDefaultControllerCallPullIfNeeded(this); - } - - return Promise.resolve(CreateIterResultObject(chunk, false)); - } - - var pendingPromise = ReadableStreamAddReadRequest(stream); - ReadableStreamDefaultControllerCallPullIfNeeded(this); - return pendingPromise; - } - }, { - key: 'desiredSize', - get: function get() { - if (IsReadableStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('desiredSize'); - } - - return ReadableStreamDefaultControllerGetDesiredSize(this); - } - }]); - - return ReadableStreamDefaultController; - }(); - - function IsReadableStreamDefaultController(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) { - return false; - } - - return true; - } - - function ReadableStreamDefaultControllerCallPullIfNeeded(controller) { - var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller); - - if (shouldPull === false) { - return undefined; - } - - if (controller._pulling === true) { - controller._pullAgain = true; - return undefined; - } - - assert(controller._pullAgain === false); - controller._pulling = true; - var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]); - pullPromise.then(function () { - controller._pulling = false; - - if (controller._pullAgain === true) { - controller._pullAgain = false; - return ReadableStreamDefaultControllerCallPullIfNeeded(controller); - } - - return undefined; - }, function (e) { - ReadableStreamDefaultControllerErrorIfNeeded(controller, e); - })["catch"](rethrowAssertionErrorRejection); - return undefined; - } - - function ReadableStreamDefaultControllerShouldCallPull(controller) { - var stream = controller._controlledReadableStream; - - if (stream._state === 'closed' || stream._state === 'errored') { - return false; - } - - if (controller._closeRequested === true) { - return false; - } - - if (controller._started === false) { - return false; - } - - if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { - return true; - } - - var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); - - if (desiredSize > 0) { - return true; - } - - return false; - } - - function ReadableStreamDefaultControllerClose(controller) { - var stream = controller._controlledReadableStream; - assert(controller._closeRequested === false); - assert(stream._state === 'readable'); - controller._closeRequested = true; - - if (controller._queue.length === 0) { - ReadableStreamClose(stream); - } - } - - function ReadableStreamDefaultControllerEnqueue(controller, chunk) { - var stream = controller._controlledReadableStream; - assert(controller._closeRequested === false); - assert(stream._state === 'readable'); - - if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { - ReadableStreamFulfillReadRequest(stream, chunk, false); - } else { - var chunkSize = 1; - - if (controller._strategySize !== undefined) { - var strategySize = controller._strategySize; - - try { - chunkSize = strategySize(chunk); - } catch (chunkSizeE) { - ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); - throw chunkSizeE; - } - } - - try { - EnqueueValueWithSize(controller, chunk, chunkSize); - } catch (enqueueE) { - ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); - throw enqueueE; - } - } - - ReadableStreamDefaultControllerCallPullIfNeeded(controller); - return undefined; - } - - function ReadableStreamDefaultControllerError(controller, e) { - var stream = controller._controlledReadableStream; - assert(stream._state === 'readable'); - ResetQueue(controller); - ReadableStreamError(stream, e); - } - - function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) { - if (controller._controlledReadableStream._state === 'readable') { - ReadableStreamDefaultControllerError(controller, e); - } - } - - function ReadableStreamDefaultControllerGetDesiredSize(controller) { - var stream = controller._controlledReadableStream; - var state = stream._state; - - if (state === 'errored') { - return null; - } - - if (state === 'closed') { - return 0; - } - - return controller._strategyHWM - controller._queueTotalSize; - } - - var ReadableStreamBYOBRequest = function () { - function ReadableStreamBYOBRequest(controller, view) { - _classCallCheck(this, ReadableStreamBYOBRequest); - - this._associatedReadableByteStreamController = controller; - this._view = view; - } - - _createClass(ReadableStreamBYOBRequest, [{ - key: 'respond', - value: function respond(bytesWritten) { - if (IsReadableStreamBYOBRequest(this) === false) { - throw byobRequestBrandCheckException('respond'); - } - - if (this._associatedReadableByteStreamController === undefined) { - throw new TypeError('This BYOB request has been invalidated'); - } - - ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten); - } - }, { - key: 'respondWithNewView', - value: function respondWithNewView(view) { - if (IsReadableStreamBYOBRequest(this) === false) { - throw byobRequestBrandCheckException('respond'); - } - - if (this._associatedReadableByteStreamController === undefined) { - throw new TypeError('This BYOB request has been invalidated'); - } - - if (!ArrayBuffer.isView(view)) { - throw new TypeError('You can only respond with array buffer views'); - } - - ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view); - } - }, { - key: 'view', - get: function get() { - return this._view; - } - }]); - - return ReadableStreamBYOBRequest; - }(); - - var ReadableByteStreamController = function () { - function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) { - _classCallCheck(this, ReadableByteStreamController); - - if (IsReadableStream(stream) === false) { - throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source'); - } - - if (stream._readableStreamController !== undefined) { - throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source'); - } - - this._controlledReadableStream = stream; - this._underlyingByteSource = underlyingByteSource; - this._pullAgain = false; - this._pulling = false; - ReadableByteStreamControllerClearPendingPullIntos(this); - this._queue = this._queueTotalSize = undefined; - ResetQueue(this); - this._closeRequested = false; - this._started = false; - this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark); - var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize; - - if (autoAllocateChunkSize !== undefined) { - if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) { - throw new RangeError('autoAllocateChunkSize must be a positive integer'); - } - } - - this._autoAllocateChunkSize = autoAllocateChunkSize; - this._pendingPullIntos = []; - var controller = this; - var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]); - Promise.resolve(startResult).then(function () { - controller._started = true; - assert(controller._pulling === false); - assert(controller._pullAgain === false); - ReadableByteStreamControllerCallPullIfNeeded(controller); - }, function (r) { - if (stream._state === 'readable') { - ReadableByteStreamControllerError(controller, r); - } - })["catch"](rethrowAssertionErrorRejection); - } - - _createClass(ReadableByteStreamController, [{ - key: 'close', - value: function close() { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('close'); - } - - if (this._closeRequested === true) { - throw new TypeError('The stream has already been closed; do not close it again!'); - } - - var state = this._controlledReadableStream._state; - - if (state !== 'readable') { - throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); - } - - ReadableByteStreamControllerClose(this); - } - }, { - key: 'enqueue', - value: function enqueue(chunk) { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('enqueue'); - } - - if (this._closeRequested === true) { - throw new TypeError('stream is closed or draining'); - } - - var state = this._controlledReadableStream._state; - - if (state !== 'readable') { - throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); - } - - if (!ArrayBuffer.isView(chunk)) { - throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController'); - } - - ReadableByteStreamControllerEnqueue(this, chunk); - } - }, { - key: 'error', - value: function error(e) { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('error'); - } - - var stream = this._controlledReadableStream; - - if (stream._state !== 'readable') { - throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); - } - - ReadableByteStreamControllerError(this, e); - } - }, { - key: '__cancelSteps', - value: function __cancelSteps(reason) { - if (this._pendingPullIntos.length > 0) { - var firstDescriptor = this._pendingPullIntos[0]; - firstDescriptor.bytesFilled = 0; - } - - ResetQueue(this); - return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]); - } - }, { - key: '__pullSteps', - value: function __pullSteps() { - var stream = this._controlledReadableStream; - assert(ReadableStreamHasDefaultReader(stream) === true); - - if (this._queueTotalSize > 0) { - assert(ReadableStreamGetNumReadRequests(stream) === 0); - - var entry = this._queue.shift(); - - this._queueTotalSize -= entry.byteLength; - ReadableByteStreamControllerHandleQueueDrain(this); - var view = void 0; - - try { - view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength); - } catch (viewE) { - return Promise.reject(viewE); - } - - return Promise.resolve(CreateIterResultObject(view, false)); - } - - var autoAllocateChunkSize = this._autoAllocateChunkSize; - - if (autoAllocateChunkSize !== undefined) { - var buffer = void 0; - - try { - buffer = new ArrayBuffer(autoAllocateChunkSize); - } catch (bufferE) { - return Promise.reject(bufferE); - } - - var pullIntoDescriptor = { - buffer: buffer, - byteOffset: 0, - byteLength: autoAllocateChunkSize, - bytesFilled: 0, - elementSize: 1, - ctor: Uint8Array, - readerType: 'default' - }; - - this._pendingPullIntos.push(pullIntoDescriptor); - } - - var promise = ReadableStreamAddReadRequest(stream); - ReadableByteStreamControllerCallPullIfNeeded(this); - return promise; - } - }, { - key: 'byobRequest', - get: function get() { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('byobRequest'); - } - - if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) { - var firstDescriptor = this._pendingPullIntos[0]; - var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled); - this._byobRequest = new ReadableStreamBYOBRequest(this, view); - } - - return this._byobRequest; - } - }, { - key: 'desiredSize', - get: function get() { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('desiredSize'); - } - - return ReadableByteStreamControllerGetDesiredSize(this); - } - }]); - - return ReadableByteStreamController; - }(); - - function IsReadableByteStreamController(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) { - return false; - } - - return true; - } - - function IsReadableStreamBYOBRequest(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) { - return false; - } - - return true; - } - - function ReadableByteStreamControllerCallPullIfNeeded(controller) { - var shouldPull = ReadableByteStreamControllerShouldCallPull(controller); - - if (shouldPull === false) { - return undefined; - } - - if (controller._pulling === true) { - controller._pullAgain = true; - return undefined; - } - - assert(controller._pullAgain === false); - controller._pulling = true; - var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]); - pullPromise.then(function () { - controller._pulling = false; - - if (controller._pullAgain === true) { - controller._pullAgain = false; - ReadableByteStreamControllerCallPullIfNeeded(controller); - } - }, function (e) { - if (controller._controlledReadableStream._state === 'readable') { - ReadableByteStreamControllerError(controller, e); - } - })["catch"](rethrowAssertionErrorRejection); - return undefined; - } - - function ReadableByteStreamControllerClearPendingPullIntos(controller) { - ReadableByteStreamControllerInvalidateBYOBRequest(controller); - controller._pendingPullIntos = []; - } - - function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) { - assert(stream._state !== 'errored', 'state must not be errored'); - var done = false; - - if (stream._state === 'closed') { - assert(pullIntoDescriptor.bytesFilled === 0); - done = true; - } - - var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); - - if (pullIntoDescriptor.readerType === 'default') { - ReadableStreamFulfillReadRequest(stream, filledView, done); - } else { - assert(pullIntoDescriptor.readerType === 'byob'); - ReadableStreamFulfillReadIntoRequest(stream, filledView, done); - } - } - - function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) { - var bytesFilled = pullIntoDescriptor.bytesFilled; - var elementSize = pullIntoDescriptor.elementSize; - assert(bytesFilled <= pullIntoDescriptor.byteLength); - assert(bytesFilled % elementSize === 0); - return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize); - } - - function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) { - controller._queue.push({ - buffer: buffer, - byteOffset: byteOffset, - byteLength: byteLength - }); - - controller._queueTotalSize += byteLength; - } - - function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) { - var elementSize = pullIntoDescriptor.elementSize; - var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize; - var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled); - var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy; - var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize; - var totalBytesToCopyRemaining = maxBytesToCopy; - var ready = false; - - if (maxAlignedBytes > currentAlignedBytes) { - totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled; - ready = true; - } - - var queue = controller._queue; - - while (totalBytesToCopyRemaining > 0) { - var headOfQueue = queue[0]; - var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength); - var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; - ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy); - - if (headOfQueue.byteLength === bytesToCopy) { - queue.shift(); - } else { - headOfQueue.byteOffset += bytesToCopy; - headOfQueue.byteLength -= bytesToCopy; - } - - controller._queueTotalSize -= bytesToCopy; - ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor); - totalBytesToCopyRemaining -= bytesToCopy; - } - - if (ready === false) { - assert(controller._queueTotalSize === 0, 'queue must be empty'); - assert(pullIntoDescriptor.bytesFilled > 0); - assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize); - } - - return ready; - } - - function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) { - assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor); - ReadableByteStreamControllerInvalidateBYOBRequest(controller); - pullIntoDescriptor.bytesFilled += size; - } - - function ReadableByteStreamControllerHandleQueueDrain(controller) { - assert(controller._controlledReadableStream._state === 'readable'); - - if (controller._queueTotalSize === 0 && controller._closeRequested === true) { - ReadableStreamClose(controller._controlledReadableStream); - } else { - ReadableByteStreamControllerCallPullIfNeeded(controller); - } - } - - function ReadableByteStreamControllerInvalidateBYOBRequest(controller) { - if (controller._byobRequest === undefined) { - return; - } - - controller._byobRequest._associatedReadableByteStreamController = undefined; - controller._byobRequest._view = undefined; - controller._byobRequest = undefined; - } - - function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) { - assert(controller._closeRequested === false); - - while (controller._pendingPullIntos.length > 0) { - if (controller._queueTotalSize === 0) { - return; - } - - var pullIntoDescriptor = controller._pendingPullIntos[0]; - - if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { - ReadableByteStreamControllerShiftPendingPullInto(controller); - ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); - } - } - } - - function ReadableByteStreamControllerPullInto(controller, view) { - var stream = controller._controlledReadableStream; - var elementSize = 1; - - if (view.constructor !== DataView) { - elementSize = view.constructor.BYTES_PER_ELEMENT; - } - - var ctor = view.constructor; - var pullIntoDescriptor = { - buffer: view.buffer, - byteOffset: view.byteOffset, - byteLength: view.byteLength, - bytesFilled: 0, - elementSize: elementSize, - ctor: ctor, - readerType: 'byob' - }; - - if (controller._pendingPullIntos.length > 0) { - pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); - - controller._pendingPullIntos.push(pullIntoDescriptor); - - return ReadableStreamAddReadIntoRequest(stream); - } - - if (stream._state === 'closed') { - var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0); - return Promise.resolve(CreateIterResultObject(emptyView, true)); - } - - if (controller._queueTotalSize > 0) { - if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { - var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); - ReadableByteStreamControllerHandleQueueDrain(controller); - return Promise.resolve(CreateIterResultObject(filledView, false)); - } - - if (controller._closeRequested === true) { - var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); - ReadableByteStreamControllerError(controller, e); - return Promise.reject(e); - } - } - - pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); - - controller._pendingPullIntos.push(pullIntoDescriptor); - - var promise = ReadableStreamAddReadIntoRequest(stream); - ReadableByteStreamControllerCallPullIfNeeded(controller); - return promise; - } - - function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) { - firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer); - assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0'); - var stream = controller._controlledReadableStream; - - if (ReadableStreamHasBYOBReader(stream) === true) { - while (ReadableStreamGetNumReadIntoRequests(stream) > 0) { - var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller); - ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor); - } - } - } - - function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) { - if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) { - throw new RangeError('bytesWritten out of range'); - } - - ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor); - - if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) { - return; - } - - ReadableByteStreamControllerShiftPendingPullInto(controller); - var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize; - - if (remainderSize > 0) { - var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; - var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end); - ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength); - } - - pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); - pullIntoDescriptor.bytesFilled -= remainderSize; - ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); - ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); - } - - function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) { - var firstDescriptor = controller._pendingPullIntos[0]; - var stream = controller._controlledReadableStream; - - if (stream._state === 'closed') { - if (bytesWritten !== 0) { - throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream'); - } - - ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor); - } else { - assert(stream._state === 'readable'); - ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor); - } - } - - function ReadableByteStreamControllerShiftPendingPullInto(controller) { - var descriptor = controller._pendingPullIntos.shift(); - - ReadableByteStreamControllerInvalidateBYOBRequest(controller); - return descriptor; - } - - function ReadableByteStreamControllerShouldCallPull(controller) { - var stream = controller._controlledReadableStream; - - if (stream._state !== 'readable') { - return false; - } - - if (controller._closeRequested === true) { - return false; - } - - if (controller._started === false) { - return false; - } - - if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { - return true; - } - - if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) { - return true; - } - - if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) { - return true; - } - - return false; - } - - function ReadableByteStreamControllerClose(controller) { - var stream = controller._controlledReadableStream; - assert(controller._closeRequested === false); - assert(stream._state === 'readable'); - - if (controller._queueTotalSize > 0) { - controller._closeRequested = true; - return; - } - - if (controller._pendingPullIntos.length > 0) { - var firstPendingPullInto = controller._pendingPullIntos[0]; - - if (firstPendingPullInto.bytesFilled > 0) { - var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); - ReadableByteStreamControllerError(controller, e); - throw e; - } - } - - ReadableStreamClose(stream); - } - - function ReadableByteStreamControllerEnqueue(controller, chunk) { - var stream = controller._controlledReadableStream; - assert(controller._closeRequested === false); - assert(stream._state === 'readable'); - var buffer = chunk.buffer; - var byteOffset = chunk.byteOffset; - var byteLength = chunk.byteLength; - var transferredBuffer = TransferArrayBuffer(buffer); - - if (ReadableStreamHasDefaultReader(stream) === true) { - if (ReadableStreamGetNumReadRequests(stream) === 0) { - ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); - } else { - assert(controller._queue.length === 0); - var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength); - ReadableStreamFulfillReadRequest(stream, transferredView, false); - } - } else if (ReadableStreamHasBYOBReader(stream) === true) { - ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); - ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); - } else { - assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked'); - ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); - } - } - - function ReadableByteStreamControllerError(controller, e) { - var stream = controller._controlledReadableStream; - assert(stream._state === 'readable'); - ReadableByteStreamControllerClearPendingPullIntos(controller); - ResetQueue(controller); - ReadableStreamError(stream, e); - } - - function ReadableByteStreamControllerGetDesiredSize(controller) { - var stream = controller._controlledReadableStream; - var state = stream._state; - - if (state === 'errored') { - return null; - } - - if (state === 'closed') { - return 0; - } - - return controller._strategyHWM - controller._queueTotalSize; - } - - function ReadableByteStreamControllerRespond(controller, bytesWritten) { - bytesWritten = Number(bytesWritten); - - if (IsFiniteNonNegativeNumber(bytesWritten) === false) { - throw new RangeError('bytesWritten must be a finite'); - } - - assert(controller._pendingPullIntos.length > 0); - ReadableByteStreamControllerRespondInternal(controller, bytesWritten); - } - - function ReadableByteStreamControllerRespondWithNewView(controller, view) { - assert(controller._pendingPullIntos.length > 0); - var firstDescriptor = controller._pendingPullIntos[0]; - - if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) { - throw new RangeError('The region specified by view does not match byobRequest'); - } - - if (firstDescriptor.byteLength !== view.byteLength) { - throw new RangeError('The buffer of view has different capacity than byobRequest'); - } - - firstDescriptor.buffer = view.buffer; - ReadableByteStreamControllerRespondInternal(controller, view.byteLength); - } - - function streamBrandCheckException(name) { - return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream'); - } - - function readerLockException(name) { - return new TypeError('Cannot ' + name + ' a stream using a released reader'); - } - - function defaultReaderBrandCheckException(name) { - return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader'); - } - - function defaultReaderClosedPromiseInitialize(reader) { - reader._closedPromise = new Promise(function (resolve, reject) { - reader._closedPromise_resolve = resolve; - reader._closedPromise_reject = reject; - }); - } - - function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) { - reader._closedPromise = Promise.reject(reason); - reader._closedPromise_resolve = undefined; - reader._closedPromise_reject = undefined; - } - - function defaultReaderClosedPromiseInitializeAsResolved(reader) { - reader._closedPromise = Promise.resolve(undefined); - reader._closedPromise_resolve = undefined; - reader._closedPromise_reject = undefined; - } - - function defaultReaderClosedPromiseReject(reader, reason) { - assert(reader._closedPromise_resolve !== undefined); - assert(reader._closedPromise_reject !== undefined); - - reader._closedPromise_reject(reason); - - reader._closedPromise_resolve = undefined; - reader._closedPromise_reject = undefined; - } - - function defaultReaderClosedPromiseResetToRejected(reader, reason) { - assert(reader._closedPromise_resolve === undefined); - assert(reader._closedPromise_reject === undefined); - reader._closedPromise = Promise.reject(reason); - } - - function defaultReaderClosedPromiseResolve(reader) { - assert(reader._closedPromise_resolve !== undefined); - assert(reader._closedPromise_reject !== undefined); - - reader._closedPromise_resolve(undefined); - - reader._closedPromise_resolve = undefined; - reader._closedPromise_reject = undefined; - } - - function byobReaderBrandCheckException(name) { - return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader'); - } - - function defaultControllerBrandCheckException(name) { - return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController'); - } - - function byobRequestBrandCheckException(name) { - return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest'); - } - - function byteStreamControllerBrandCheckException(name) { - return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController'); - } - - function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) { - try { - Promise.prototype.then.call(promise, undefined, function () {}); - } catch (e) {} - } -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var transformStream = __w_pdfjs_require__(6); - - var readableStream = __w_pdfjs_require__(4); - - var writableStream = __w_pdfjs_require__(2); - - exports.TransformStream = transformStream.TransformStream; - exports.ReadableStream = readableStream.ReadableStream; - exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed; - exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose; - exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue; - exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError; - exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize; - exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter; - exports.IsWritableStream = writableStream.IsWritableStream; - exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked; - exports.WritableStream = writableStream.WritableStream; - exports.WritableStreamAbort = writableStream.WritableStreamAbort; - exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError; - exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation; - exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease; - exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite; -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var _createClass = function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; - }(); - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - var _require = __w_pdfjs_require__(1), - assert = _require.assert; - - var _require2 = __w_pdfjs_require__(0), - InvokeOrNoop = _require2.InvokeOrNoop, - PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback, - PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop, - typeIsObject = _require2.typeIsObject; - - var _require3 = __w_pdfjs_require__(4), - ReadableStream = _require3.ReadableStream, - ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose, - ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue, - ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError, - ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize; - - var _require4 = __w_pdfjs_require__(2), - WritableStream = _require4.WritableStream, - WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError; - - function TransformStreamCloseReadable(transformStream) { - if (transformStream._errored === true) { - throw new TypeError('TransformStream is already errored'); - } - - if (transformStream._readableClosed === true) { - throw new TypeError('Readable side is already closed'); - } - - TransformStreamCloseReadableInternal(transformStream); - } - - function TransformStreamEnqueueToReadable(transformStream, chunk) { - if (transformStream._errored === true) { - throw new TypeError('TransformStream is already errored'); - } - - if (transformStream._readableClosed === true) { - throw new TypeError('Readable side is already closed'); - } - - var controller = transformStream._readableController; - - try { - ReadableStreamDefaultControllerEnqueue(controller, chunk); - } catch (e) { - transformStream._readableClosed = true; - TransformStreamErrorIfNeeded(transformStream, e); - throw transformStream._storedError; - } - - var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); - var maybeBackpressure = desiredSize <= 0; - - if (maybeBackpressure === true && transformStream._backpressure === false) { - TransformStreamSetBackpressure(transformStream, true); - } - } - - function TransformStreamError(transformStream, e) { - if (transformStream._errored === true) { - throw new TypeError('TransformStream is already errored'); - } - - TransformStreamErrorInternal(transformStream, e); - } - - function TransformStreamCloseReadableInternal(transformStream) { - assert(transformStream._errored === false); - assert(transformStream._readableClosed === false); - - try { - ReadableStreamDefaultControllerClose(transformStream._readableController); - } catch (e) { - assert(false); - } - - transformStream._readableClosed = true; - } - - function TransformStreamErrorIfNeeded(transformStream, e) { - if (transformStream._errored === false) { - TransformStreamErrorInternal(transformStream, e); - } - } - - function TransformStreamErrorInternal(transformStream, e) { - assert(transformStream._errored === false); - transformStream._errored = true; - transformStream._storedError = e; - - if (transformStream._writableDone === false) { - WritableStreamDefaultControllerError(transformStream._writableController, e); - } - - if (transformStream._readableClosed === false) { - ReadableStreamDefaultControllerError(transformStream._readableController, e); - } - } - - function TransformStreamReadableReadyPromise(transformStream) { - assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); - - if (transformStream._backpressure === false) { - return Promise.resolve(); - } - - assert(transformStream._backpressure === true, '_backpressure should have been initialized'); - return transformStream._backpressureChangePromise; - } - - function TransformStreamSetBackpressure(transformStream, backpressure) { - assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed'); - - if (transformStream._backpressureChangePromise !== undefined) { - transformStream._backpressureChangePromise_resolve(backpressure); - } - - transformStream._backpressureChangePromise = new Promise(function (resolve) { - transformStream._backpressureChangePromise_resolve = resolve; - }); - - transformStream._backpressureChangePromise.then(function (resolution) { - assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed'); - }); - - transformStream._backpressure = backpressure; - } - - function TransformStreamDefaultTransform(chunk, transformStreamController) { - var transformStream = transformStreamController._controlledTransformStream; - TransformStreamEnqueueToReadable(transformStream, chunk); - return Promise.resolve(); - } - - function TransformStreamTransform(transformStream, chunk) { - assert(transformStream._errored === false); - assert(transformStream._transforming === false); - assert(transformStream._backpressure === false); - transformStream._transforming = true; - var transformer = transformStream._transformer; - var controller = transformStream._transformStreamController; - var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]); - return transformPromise.then(function () { - transformStream._transforming = false; - return TransformStreamReadableReadyPromise(transformStream); - }, function (e) { - TransformStreamErrorIfNeeded(transformStream, e); - return Promise.reject(e); - }); - } - - function IsTransformStreamDefaultController(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) { - return false; - } - - return true; - } - - function IsTransformStream(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) { - return false; - } - - return true; - } - - var TransformStreamSink = function () { - function TransformStreamSink(transformStream, startPromise) { - _classCallCheck(this, TransformStreamSink); - - this._transformStream = transformStream; - this._startPromise = startPromise; - } - - _createClass(TransformStreamSink, [{ - key: 'start', - value: function start(c) { - var transformStream = this._transformStream; - transformStream._writableController = c; - return this._startPromise.then(function () { - return TransformStreamReadableReadyPromise(transformStream); - }); - } - }, { - key: 'write', - value: function write(chunk) { - var transformStream = this._transformStream; - return TransformStreamTransform(transformStream, chunk); - } - }, { - key: 'abort', - value: function abort() { - var transformStream = this._transformStream; - transformStream._writableDone = true; - TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted')); - } - }, { - key: 'close', - value: function close() { - var transformStream = this._transformStream; - assert(transformStream._transforming === false); - transformStream._writableDone = true; - var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]); - return flushPromise.then(function () { - if (transformStream._errored === true) { - return Promise.reject(transformStream._storedError); - } - - if (transformStream._readableClosed === false) { - TransformStreamCloseReadableInternal(transformStream); - } - - return Promise.resolve(); - })["catch"](function (r) { - TransformStreamErrorIfNeeded(transformStream, r); - return Promise.reject(transformStream._storedError); - }); - } - }]); - - return TransformStreamSink; - }(); - - var TransformStreamSource = function () { - function TransformStreamSource(transformStream, startPromise) { - _classCallCheck(this, TransformStreamSource); - - this._transformStream = transformStream; - this._startPromise = startPromise; - } - - _createClass(TransformStreamSource, [{ - key: 'start', - value: function start(c) { - var transformStream = this._transformStream; - transformStream._readableController = c; - return this._startPromise.then(function () { - assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); - - if (transformStream._backpressure === true) { - return Promise.resolve(); - } - - assert(transformStream._backpressure === false, '_backpressure should have been initialized'); - return transformStream._backpressureChangePromise; - }); - } - }, { - key: 'pull', - value: function pull() { - var transformStream = this._transformStream; - assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false'); - assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); - TransformStreamSetBackpressure(transformStream, false); - return transformStream._backpressureChangePromise; - } - }, { - key: 'cancel', - value: function cancel() { - var transformStream = this._transformStream; - transformStream._readableClosed = true; - TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled')); - } - }]); - - return TransformStreamSource; - }(); - - var TransformStreamDefaultController = function () { - function TransformStreamDefaultController(transformStream) { - _classCallCheck(this, TransformStreamDefaultController); - - if (IsTransformStream(transformStream) === false) { - throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance'); - } - - if (transformStream._transformStreamController !== undefined) { - throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor'); - } - - this._controlledTransformStream = transformStream; - } - - _createClass(TransformStreamDefaultController, [{ - key: 'enqueue', - value: function enqueue(chunk) { - if (IsTransformStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('enqueue'); - } - - TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk); - } - }, { - key: 'close', - value: function close() { - if (IsTransformStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('close'); - } - - TransformStreamCloseReadable(this._controlledTransformStream); - } - }, { - key: 'error', - value: function error(reason) { - if (IsTransformStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('error'); - } - - TransformStreamError(this._controlledTransformStream, reason); - } - }, { - key: 'desiredSize', - get: function get() { - if (IsTransformStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('desiredSize'); - } - - var transformStream = this._controlledTransformStream; - var readableController = transformStream._readableController; - return ReadableStreamDefaultControllerGetDesiredSize(readableController); - } - }]); - - return TransformStreamDefaultController; - }(); - - var TransformStream = function () { - function TransformStream() { - var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - _classCallCheck(this, TransformStream); - - this._transformer = transformer; - var readableStrategy = transformer.readableStrategy, - writableStrategy = transformer.writableStrategy; - this._transforming = false; - this._errored = false; - this._storedError = undefined; - this._writableController = undefined; - this._readableController = undefined; - this._transformStreamController = undefined; - this._writableDone = false; - this._readableClosed = false; - this._backpressure = undefined; - this._backpressureChangePromise = undefined; - this._backpressureChangePromise_resolve = undefined; - this._transformStreamController = new TransformStreamDefaultController(this); - var startPromise_resolve = void 0; - var startPromise = new Promise(function (resolve) { - startPromise_resolve = resolve; - }); - var source = new TransformStreamSource(this, startPromise); - this._readable = new ReadableStream(source, readableStrategy); - var sink = new TransformStreamSink(this, startPromise); - this._writable = new WritableStream(sink, writableStrategy); - assert(this._writableController !== undefined); - assert(this._readableController !== undefined); - var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController); - TransformStreamSetBackpressure(this, desiredSize <= 0); - var transformStream = this; - var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]); - startPromise_resolve(startResult); - startPromise["catch"](function (e) { - if (transformStream._errored === false) { - transformStream._errored = true; - transformStream._storedError = e; - } - }); - } - - _createClass(TransformStream, [{ - key: 'readable', - get: function get() { - if (IsTransformStream(this) === false) { - throw streamBrandCheckException('readable'); - } - - return this._readable; - } - }, { - key: 'writable', - get: function get() { - if (IsTransformStream(this) === false) { - throw streamBrandCheckException('writable'); - } - - return this._writable; - } - }]); - - return TransformStream; - }(); - - module.exports = { - TransformStream: TransformStream - }; - - function defaultControllerBrandCheckException(name) { - return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController'); - } - - function streamBrandCheckException(name) { - return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream'); - } -}, function (module, exports, __w_pdfjs_require__) { - module.exports = __w_pdfjs_require__(5); -}])); - -/***/ }), -/* 149 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -{ - var isURLSupported = 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'; - isURLSupported = u.href === 'http://a/c%20d'; - } - } catch (ex) {} - - if (isURLSupported) { - exports.URL = URL; - } else { - var PolyfillURL = __w_pdfjs_require__(150).URL; - - var OriginalURL = __w_pdfjs_require__(7).URL; - - if (OriginalURL) { - PolyfillURL.createObjectURL = function (blob) { - return OriginalURL.createObjectURL.apply(OriginalURL, arguments); - }; - - PolyfillURL.revokeObjectURL = function (url) { - OriginalURL.revokeObjectURL(url); - }; - } - - exports.URL = PolyfillURL; - } -} - -/***/ }), -/* 150 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -(function URLConstructorClosure() { - 'use strict'; - - 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 (c === EOF) { - 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 (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { - 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 (this._scheme !== 'file') { - this._scheme = base._scheme; - } - - if (c === EOF) { - 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 (this._scheme !== 'file' || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || nextNextC !== EOF && 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 (this._scheme !== 'file') { - 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 (this._password !== null) { - 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 (c !== '\t' && c !== '\n' && c !== '\r') { - 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 (c !== '\t' && c !== '\n' && c !== '\r') { - buffer += percentEscape(c); - } - - break; - - case 'query': - if (!stateOverride && c === '#') { - this._fragment = '#'; - state = 'fragment'; - } else if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { - this._query += percentEscapeQuery(c); - } - - break; - - case 'fragment': - if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { - 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 toString() { - return this.href; - }, - - get href() { - if (this._isInvalid) { - return this._url; - } - - var authority = ''; - - if (this._username !== '' || this._password !== null) { - authority = this._username + (this._password !== null ? ':' + this._password : '') + '@'; - } - - return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment; - }, - - set href(value) { - clear.call(this); - parse.call(this, value); - }, - - get protocol() { - return this._scheme + ':'; - }, - - set protocol(value) { - if (this._isInvalid) { - return; - } - - parse.call(this, value + ':', 'scheme start'); - }, - - get host() { - return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host; - }, - - set host(value) { - if (this._isInvalid || !this._isRelative) { - return; - } - - parse.call(this, value, 'host'); - }, - - get hostname() { - return this._host; - }, - - set hostname(value) { - if (this._isInvalid || !this._isRelative) { - return; - } - - parse.call(this, value, 'hostname'); - }, - - get port() { - return this._port; - }, - - set port(value) { - if (this._isInvalid || !this._isRelative) { - return; - } - - parse.call(this, value, 'port'); - }, - - get pathname() { - return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData; - }, - - set pathname(value) { - if (this._isInvalid || !this._isRelative) { - return; - } - - this._path = []; - parse.call(this, value, 'relative path start'); - }, - - get search() { - return this._isInvalid || !this._query || this._query === '?' ? '' : this._query; - }, - - set search(value) { - if (this._isInvalid || !this._isRelative) { - return; - } - - this._query = '?'; - - if (value[0] === '?') { - value = value.slice(1); - } - - parse.call(this, value, 'query'); - }, - - get hash() { - return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment; - }, - - set hash(value) { - if (this._isInvalid) { - return; - } - - this._fragment = '#'; - - if (value[0] === '#') { - value = value.slice(1); - } - - parse.call(this, value, 'fragment'); - }, - - get origin() { - var host; - - if (this._isInvalid || !this._scheme) { - return ''; - } - - switch (this._scheme) { - case 'data': - case 'file': - case 'javascript': - case 'mailto': - return 'null'; - - case 'blob': - try { - return new JURL(this._schemeData).origin || 'null'; - } catch (_) {} - - return 'null'; - } - - host = this.host; - - if (!host) { - return ''; - } - - return this._scheme + '://' + host; - } - - }; - exports.URL = JURL; -})(); - -/***/ }), -/* 151 */ +/* 5 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -10950,15 +1622,13 @@ exports.isRefsEqual = isRefsEqual; exports.isStream = isStream; exports.RefSetCache = exports.RefSet = exports.Ref = exports.Name = exports.Dict = exports.Cmd = exports.EOF = void 0; -var _util = __w_pdfjs_require__(5); - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +var _util = __w_pdfjs_require__(2); var EOF = {}; exports.EOF = EOF; var Name = function NameClosure() { - var nameCache = Object.create(null); + let nameCache = Object.create(null); function Name(name) { this.name = name; @@ -10981,7 +1651,7 @@ var Name = function NameClosure() { exports.Name = Name; var Cmd = function CmdClosure() { - var cmdCache = Object.create(null); + let cmdCache = Object.create(null); function Cmd(cmd) { this.cmd = cmd; @@ -11020,83 +1690,81 @@ var Dict = function DictClosure() { 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; + get size() { + return Object.keys(this._map).length; }, - 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); + get(key1, key2, key3) { + let value = this._map[key1]; + + if (value === undefined && key2 !== undefined) { + value = this._map[key2]; + + if (value === undefined && key3 !== undefined) { + value = this._map[key3]; } - - 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); + if (value instanceof Ref && this.xref) { + return this.xref.fetch(value, this.suppressEncryption); } - value = this._map[key3] || null; - - if (xref) { - return xref.fetchIfRefAsync(value, suppressEncryption); - } - - return Promise.resolve(value); + return value; }, - getArray: function Dict_getArray(key1, key2, key3) { - var value = this.get(key1, key2, key3); - var xref = this.xref, - suppressEncryption = this.suppressEncryption; - if (!Array.isArray(value) || !xref) { + async getAsync(key1, key2, key3) { + let value = this._map[key1]; + + if (value === undefined && key2 !== undefined) { + value = this._map[key2]; + + if (value === undefined && key3 !== undefined) { + value = this._map[key3]; + } + } + + if (value instanceof Ref && this.xref) { + return this.xref.fetchAsync(value, this.suppressEncryption); + } + + return value; + }, + + getArray(key1, key2, key3) { + let value = this.get(key1, key2, key3); + + if (!Array.isArray(value) || !this.xref) { return value; } value = value.slice(); - for (var i = 0, ii = value.length; i < ii; i++) { - if (!isRef(value[i])) { + for (let i = 0, ii = value.length; i < ii; i++) { + if (!(value[i] instanceof Ref)) { continue; } - value[i] = xref.fetch(value[i], suppressEncryption); + value[i] = this.xref.fetch(value[i], this.suppressEncryption); } return value; }, + getRaw: function Dict_getRaw(key) { return this._map[key]; }, getKeys: function Dict_getKeys() { return Object.keys(this._map); }, + getRawValues: function Dict_getRawValues() { + return Object.values(this._map); + }, set: function Dict_set(key, value) { this._map[key] = value; }, has: function Dict_has(key) { - return key in this._map; + return this._map[key] !== undefined; }, forEach: function Dict_forEach(callback) { for (var key in this._map) { @@ -11106,26 +1774,75 @@ var Dict = function DictClosure() { }; Dict.empty = new Dict(null); - Dict.merge = function (xref, dictArray) { - var mergedDict = new Dict(xref); + Dict.merge = function ({ + xref, + dictArray, + mergeSubDicts = false + }) { + const 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] !== undefined) { + if (!mergeSubDicts) { + for (const dict of dictArray) { + if (!(dict instanceof Dict)) { continue; } - mergedDict._map[keyName] = dict._map[keyName]; + for (const [key, value] of Object.entries(dict._map)) { + if (mergedDict._map[key] === undefined) { + mergedDict._map[key] = value; + } + } + } + + return mergedDict.size > 0 ? mergedDict : Dict.empty; + } + + const properties = new Map(); + + for (const dict of dictArray) { + if (!(dict instanceof Dict)) { + continue; + } + + for (const [key, value] of Object.entries(dict._map)) { + let property = properties.get(key); + + if (property === undefined) { + property = []; + properties.set(key, property); + } + + property.push(value); } } - return mergedDict; + for (const [name, values] of properties) { + if (values.length === 1 || !(values[0] instanceof Dict)) { + mergedDict._map[name] = values[0]; + continue; + } + + const subDict = new Dict(xref); + + for (const dict of values) { + if (!(dict instanceof Dict)) { + continue; + } + + for (const [key, value] of Object.entries(dict._map)) { + if (subDict._map[key] === undefined) { + subDict._map[key] = value; + } + } + } + + if (subDict.size > 0) { + mergedDict._map[name] = subDict; + } + } + + properties.clear(); + return mergedDict.size > 0 ? mergedDict : Dict.empty; }; return Dict; @@ -11134,7 +1851,7 @@ var Dict = function DictClosure() { exports.Dict = Dict; var Ref = function RefClosure() { - var refCache = Object.create(null); + let refCache = Object.create(null); function Ref(num, gen) { this.num = num; @@ -11144,16 +1861,16 @@ var Ref = function RefClosure() { Ref.prototype = { toString: function Ref_toString() { if (this.gen === 0) { - return "".concat(this.num, "R"); + return `${this.num}R`; } - return "".concat(this.num, "R").concat(this.gen); + return `${this.num}R${this.gen}`; } }; Ref.get = function (num, gen) { - var key = gen === 0 ? "".concat(num, "R") : "".concat(num, "R").concat(gen); - var refValue = refCache[key]; + const key = gen === 0 ? `${num}R` : `${num}R${gen}`; + const refValue = refCache[key]; return refValue ? refValue : refCache[key] = new Ref(num, gen); }; @@ -11166,56 +1883,63 @@ var Ref = function RefClosure() { exports.Ref = Ref; -var RefSet = function RefSetClosure() { - function RefSet() { - this.dict = Object.create(null); +class RefSet { + constructor() { + this._set = new Set(); } - 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; -}(); + has(ref) { + return this._set.has(ref.toString()); + } + + put(ref) { + this._set.add(ref.toString()); + } + + remove(ref) { + this._set.delete(ref.toString()); + } + +} exports.RefSet = RefSet; -var RefSetCache = function RefSetCacheClosure() { - function RefSetCache() { - this.dict = Object.create(null); +class RefSetCache { + constructor() { + this._map = new Map(); } - 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); + get size() { + return this._map.size; + } + + get(ref) { + return this._map.get(ref.toString()); + } + + has(ref) { + return this._map.has(ref.toString()); + } + + put(ref, obj) { + this._map.set(ref.toString(), obj); + } + + putAlias(ref, aliasRef) { + this._map.set(ref.toString(), this.get(aliasRef)); + } + + forEach(callback) { + for (const value of this._map.values()) { + callback(value); } - }; - return RefSetCache; -}(); + } + + clear() { + this._map.clear(); + } + +} exports.RefSetCache = RefSetCache; @@ -11232,7 +1956,7 @@ function isCmd(v, cmd) { } function isDict(v, type) { - return v instanceof Dict && (type === undefined || isName(v.get('Type'), type)); + return v instanceof Dict && (type === undefined || isName(v.get("Type"), type)); } function isRef(v) { @@ -11244,7 +1968,7 @@ function isRefsEqual(v1, v2) { } function isStream(v) { - return _typeof(v) === 'object' && v !== null && v.getBytes !== undefined; + return typeof v === "object" && v !== null && v.getBytes !== undefined; } function clearPrimitiveCaches() { @@ -11256,7 +1980,7 @@ function clearPrimitiveCaches() { } /***/ }), -/* 152 */ +/* 6 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -11267,370 +1991,203 @@ Object.defineProperty(exports, "__esModule", { }); exports.NetworkPdfManager = exports.LocalPdfManager = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(2)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(5); +var _chunked_stream = __w_pdfjs_require__(7); -var _chunked_stream = __w_pdfjs_require__(153); +var _core_utils = __w_pdfjs_require__(8); -var _core_utils = __w_pdfjs_require__(154); +var _document = __w_pdfjs_require__(9); -var _document = __w_pdfjs_require__(155); - -var _stream = __w_pdfjs_require__(158); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var BasePdfManager = -/*#__PURE__*/ -function () { - function BasePdfManager() { - _classCallCheck(this, BasePdfManager); +var _stream = __w_pdfjs_require__(12); +class BasePdfManager { + constructor() { if (this.constructor === BasePdfManager) { - (0, _util.unreachable)('Cannot initialize BasePdfManager.'); + (0, _util.unreachable)("Cannot initialize BasePdfManager."); } } - _createClass(BasePdfManager, [{ - key: "onLoadedStream", - value: function onLoadedStream() { - (0, _util.unreachable)('Abstract method `onLoadedStream` called'); - } - }, { - key: "ensureDoc", - value: function ensureDoc(prop, args) { - return this.ensure(this.pdfDocument, prop, args); - } - }, { - key: "ensureXRef", - value: function ensureXRef(prop, args) { - return this.ensure(this.pdfDocument.xref, prop, args); - } - }, { - key: "ensureCatalog", - value: function ensureCatalog(prop, args) { - return this.ensure(this.pdfDocument.catalog, prop, args); - } - }, { - key: "getPage", - value: function getPage(pageIndex) { - return this.pdfDocument.getPage(pageIndex); - } - }, { - key: "fontFallback", - value: function fontFallback(id, handler) { - return this.pdfDocument.fontFallback(id, handler); - } - }, { - key: "cleanup", - value: function cleanup() { - return this.pdfDocument.cleanup(); - } - }, { - key: "ensure", - value: function () { - var _ensure = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(obj, prop, args) { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - (0, _util.unreachable)('Abstract method `ensure` called'); - - case 1: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - - function ensure(_x, _x2, _x3) { - return _ensure.apply(this, arguments); - } - - return ensure; - }() - }, { - key: "requestRange", - value: function requestRange(begin, end) { - (0, _util.unreachable)('Abstract method `requestRange` called'); - } - }, { - key: "requestLoadedStream", - value: function requestLoadedStream() { - (0, _util.unreachable)('Abstract method `requestLoadedStream` called'); - } - }, { - key: "sendProgressiveData", - value: function sendProgressiveData(chunk) { - (0, _util.unreachable)('Abstract method `sendProgressiveData` called'); - } - }, { - key: "updatePassword", - value: function updatePassword(password) { - this._password = password; - } - }, { - key: "terminate", - value: function terminate() { - (0, _util.unreachable)('Abstract method `terminate` called'); - } - }, { - key: "docId", - get: function get() { - return this._docId; - } - }, { - key: "password", - get: function get() { - return this._password; - } - }, { - key: "docBaseUrl", - get: function get() { - var docBaseUrl = null; - - if (this._docBaseUrl) { - var absoluteUrl = (0, _util.createValidAbsoluteUrl)(this._docBaseUrl); - - if (absoluteUrl) { - docBaseUrl = absoluteUrl.href; - } else { - (0, _util.warn)("Invalid absolute docBaseUrl: \"".concat(this._docBaseUrl, "\".")); - } - } - - return (0, _util.shadow)(this, 'docBaseUrl', docBaseUrl); - } - }]); - - return BasePdfManager; -}(); - -var LocalPdfManager = -/*#__PURE__*/ -function (_BasePdfManager) { - _inherits(LocalPdfManager, _BasePdfManager); - - function LocalPdfManager(docId, data, password, evaluatorOptions, docBaseUrl) { - var _this; - - _classCallCheck(this, LocalPdfManager); - - _this = _possibleConstructorReturn(this, _getPrototypeOf(LocalPdfManager).call(this)); - _this._docId = docId; - _this._password = password; - _this._docBaseUrl = docBaseUrl; - _this.evaluatorOptions = evaluatorOptions; - var stream = new _stream.Stream(data); - _this.pdfDocument = new _document.PDFDocument(_assertThisInitialized(_this), stream); - _this._loadedStreamPromise = Promise.resolve(stream); - return _this; + get docId() { + return this._docId; } - _createClass(LocalPdfManager, [{ - key: "ensure", - value: function () { - var _ensure2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2(obj, prop, args) { - var value; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - value = obj[prop]; + get password() { + return this._password; + } - if (!(typeof value === 'function')) { - _context2.next = 3; - break; - } + get docBaseUrl() { + let docBaseUrl = null; - return _context2.abrupt("return", value.apply(obj, args)); + if (this._docBaseUrl) { + const absoluteUrl = (0, _util.createValidAbsoluteUrl)(this._docBaseUrl); - case 3: - return _context2.abrupt("return", value); - - case 4: - case "end": - return _context2.stop(); - } - } - }, _callee2); - })); - - function ensure(_x4, _x5, _x6) { - return _ensure2.apply(this, arguments); + if (absoluteUrl) { + docBaseUrl = absoluteUrl.href; + } else { + (0, _util.warn)(`Invalid absolute docBaseUrl: "${this._docBaseUrl}".`); } - - return ensure; - }() - }, { - key: "requestRange", - value: function requestRange(begin, end) { - return Promise.resolve(); } - }, { - key: "requestLoadedStream", - value: function requestLoadedStream() {} - }, { - key: "onLoadedStream", - value: function onLoadedStream() { - return this._loadedStreamPromise; - } - }, { - key: "terminate", - value: function terminate() {} - }]); - return LocalPdfManager; -}(BasePdfManager); + return (0, _util.shadow)(this, "docBaseUrl", docBaseUrl); + } + + onLoadedStream() { + (0, _util.unreachable)("Abstract method `onLoadedStream` called"); + } + + ensureDoc(prop, args) { + return this.ensure(this.pdfDocument, prop, args); + } + + ensureXRef(prop, args) { + return this.ensure(this.pdfDocument.xref, prop, args); + } + + ensureCatalog(prop, args) { + return this.ensure(this.pdfDocument.catalog, prop, args); + } + + getPage(pageIndex) { + return this.pdfDocument.getPage(pageIndex); + } + + fontFallback(id, handler) { + return this.pdfDocument.fontFallback(id, handler); + } + + cleanup(manuallyTriggered = false) { + return this.pdfDocument.cleanup(manuallyTriggered); + } + + async ensure(obj, prop, args) { + (0, _util.unreachable)("Abstract method `ensure` called"); + } + + requestRange(begin, end) { + (0, _util.unreachable)("Abstract method `requestRange` called"); + } + + requestLoadedStream() { + (0, _util.unreachable)("Abstract method `requestLoadedStream` called"); + } + + sendProgressiveData(chunk) { + (0, _util.unreachable)("Abstract method `sendProgressiveData` called"); + } + + updatePassword(password) { + this._password = password; + } + + terminate(reason) { + (0, _util.unreachable)("Abstract method `terminate` called"); + } + +} + +class LocalPdfManager extends BasePdfManager { + constructor(docId, data, password, evaluatorOptions, docBaseUrl) { + super(); + this._docId = docId; + this._password = password; + this._docBaseUrl = docBaseUrl; + this.evaluatorOptions = evaluatorOptions; + const stream = new _stream.Stream(data); + this.pdfDocument = new _document.PDFDocument(this, stream); + this._loadedStreamPromise = Promise.resolve(stream); + } + + async ensure(obj, prop, args) { + const value = obj[prop]; + + if (typeof value === "function") { + return value.apply(obj, args); + } + + return value; + } + + requestRange(begin, end) { + return Promise.resolve(); + } + + requestLoadedStream() {} + + onLoadedStream() { + return this._loadedStreamPromise; + } + + terminate(reason) {} + +} exports.LocalPdfManager = LocalPdfManager; -var NetworkPdfManager = -/*#__PURE__*/ -function (_BasePdfManager2) { - _inherits(NetworkPdfManager, _BasePdfManager2); - - function NetworkPdfManager(docId, pdfNetworkStream, args, evaluatorOptions, docBaseUrl) { - var _this2; - - _classCallCheck(this, NetworkPdfManager); - - _this2 = _possibleConstructorReturn(this, _getPrototypeOf(NetworkPdfManager).call(this)); - _this2._docId = docId; - _this2._password = args.password; - _this2._docBaseUrl = docBaseUrl; - _this2.msgHandler = args.msgHandler; - _this2.evaluatorOptions = evaluatorOptions; - _this2.streamManager = new _chunked_stream.ChunkedStreamManager(pdfNetworkStream, { +class NetworkPdfManager extends BasePdfManager { + constructor(docId, pdfNetworkStream, args, evaluatorOptions, docBaseUrl) { + super(); + this._docId = docId; + this._password = args.password; + this._docBaseUrl = docBaseUrl; + this.msgHandler = args.msgHandler; + this.evaluatorOptions = evaluatorOptions; + this.streamManager = new _chunked_stream.ChunkedStreamManager(pdfNetworkStream, { msgHandler: args.msgHandler, length: args.length, disableAutoFetch: args.disableAutoFetch, rangeChunkSize: args.rangeChunkSize }); - _this2.pdfDocument = new _document.PDFDocument(_assertThisInitialized(_this2), _this2.streamManager.getStream()); - return _this2; + this.pdfDocument = new _document.PDFDocument(this, this.streamManager.getStream()); } - _createClass(NetworkPdfManager, [{ - key: "ensure", - value: function () { - var _ensure3 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee3(obj, prop, args) { - var value; - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - _context3.prev = 0; - value = obj[prop]; + async ensure(obj, prop, args) { + try { + const value = obj[prop]; - if (!(typeof value === 'function')) { - _context3.next = 4; - break; - } - - return _context3.abrupt("return", value.apply(obj, args)); - - case 4: - return _context3.abrupt("return", value); - - case 7: - _context3.prev = 7; - _context3.t0 = _context3["catch"](0); - - if (_context3.t0 instanceof _core_utils.MissingDataException) { - _context3.next = 11; - break; - } - - throw _context3.t0; - - case 11: - _context3.next = 13; - return this.requestRange(_context3.t0.begin, _context3.t0.end); - - case 13: - return _context3.abrupt("return", this.ensure(obj, prop, args)); - - case 14: - case "end": - return _context3.stop(); - } - } - }, _callee3, this, [[0, 7]]); - })); - - function ensure(_x7, _x8, _x9) { - return _ensure3.apply(this, arguments); + if (typeof value === "function") { + return value.apply(obj, args); } - return ensure; - }() - }, { - key: "requestRange", - value: function requestRange(begin, end) { - return this.streamManager.requestRange(begin, end); - } - }, { - key: "requestLoadedStream", - value: function requestLoadedStream() { - this.streamManager.requestAllChunks(); - } - }, { - key: "sendProgressiveData", - value: function sendProgressiveData(chunk) { - this.streamManager.onReceiveData({ - chunk: chunk - }); - } - }, { - key: "onLoadedStream", - value: function onLoadedStream() { - return this.streamManager.onLoadedStream(); - } - }, { - key: "terminate", - value: function terminate() { - this.streamManager.abort(); - } - }]); + return value; + } catch (ex) { + if (!(ex instanceof _core_utils.MissingDataException)) { + throw ex; + } - return NetworkPdfManager; -}(BasePdfManager); + await this.requestRange(ex.begin, ex.end); + return this.ensure(obj, prop, args); + } + } + + requestRange(begin, end) { + return this.streamManager.requestRange(begin, end); + } + + requestLoadedStream() { + this.streamManager.requestAllChunks(); + } + + sendProgressiveData(chunk) { + this.streamManager.onReceiveData({ + chunk + }); + } + + onLoadedStream() { + return this.streamManager.onLoadedStream(); + } + + terminate(reason) { + this.streamManager.abort(reason); + } + +} exports.NetworkPdfManager = NetworkPdfManager; /***/ }), -/* 153 */ +/* 7 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -11641,318 +2198,308 @@ Object.defineProperty(exports, "__esModule", { }); exports.ChunkedStreamManager = exports.ChunkedStream = void 0; -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -var _core_utils = __w_pdfjs_require__(154); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var ChunkedStream = -/*#__PURE__*/ -function () { - function ChunkedStream(length, chunkSize, manager) { - _classCallCheck(this, ChunkedStream); +var _core_utils = __w_pdfjs_require__(8); +class ChunkedStream { + constructor(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._loadedChunks = new Set(); this.numChunks = Math.ceil(length / chunkSize); this.manager = manager; this.progressiveDataLength = 0; this.lastSuccessfulEnsureByteChunk = -1; } - _createClass(ChunkedStream, [{ - key: "getMissingChunks", - value: function getMissingChunks() { - var chunks = []; + getMissingChunks() { + const chunks = []; - for (var chunk = 0, n = this.numChunks; chunk < n; ++chunk) { - if (!this.loadedChunks[chunk]) { - chunks.push(chunk); - } - } - - return chunks; - } - }, { - key: "getBaseStreams", - value: function getBaseStreams() { - return [this]; - } - }, { - key: "allChunksLoaded", - value: function allChunksLoaded() { - return this.numChunksLoaded === this.numChunks; - } - }, { - key: "onReceiveData", - value: function onReceiveData(begin, chunk) { - var chunkSize = this.chunkSize; - - if (begin % chunkSize !== 0) { - throw new Error("Bad begin offset: ".concat(begin)); - } - - var end = begin + chunk.byteLength; - - if (end % chunkSize !== 0 && end !== this.bytes.length) { - throw new Error("Bad end offset: ".concat(end)); - } - - this.bytes.set(new Uint8Array(chunk), begin); - var beginChunk = Math.floor(begin / chunkSize); - var endChunk = Math.floor((end - 1) / chunkSize) + 1; - - for (var curChunk = beginChunk; curChunk < endChunk; ++curChunk) { - if (!this.loadedChunks[curChunk]) { - this.loadedChunks[curChunk] = true; - ++this.numChunksLoaded; - } + for (let chunk = 0, n = this.numChunks; chunk < n; ++chunk) { + if (!this._loadedChunks.has(chunk)) { + chunks.push(chunk); } } - }, { - key: "onReceiveProgressiveData", - value: function 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); - for (var curChunk = beginChunk; curChunk < endChunk; ++curChunk) { - if (!this.loadedChunks[curChunk]) { - this.loadedChunks[curChunk] = true; - ++this.numChunksLoaded; - } + return chunks; + } + + getBaseStreams() { + return [this]; + } + + get numChunksLoaded() { + return this._loadedChunks.size; + } + + allChunksLoaded() { + return this.numChunksLoaded === this.numChunks; + } + + onReceiveData(begin, chunk) { + const chunkSize = this.chunkSize; + + if (begin % chunkSize !== 0) { + throw new Error(`Bad begin offset: ${begin}`); + } + + const end = begin + chunk.byteLength; + + if (end % chunkSize !== 0 && end !== this.bytes.length) { + throw new Error(`Bad end offset: ${end}`); + } + + this.bytes.set(new Uint8Array(chunk), begin); + const beginChunk = Math.floor(begin / chunkSize); + const endChunk = Math.floor((end - 1) / chunkSize) + 1; + + for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) { + this._loadedChunks.add(curChunk); + } + } + + onReceiveProgressiveData(data) { + let position = this.progressiveDataLength; + const beginChunk = Math.floor(position / this.chunkSize); + this.bytes.set(new Uint8Array(data), position); + position += data.byteLength; + this.progressiveDataLength = position; + const endChunk = position >= this.end ? this.numChunks : Math.floor(position / this.chunkSize); + + for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) { + this._loadedChunks.add(curChunk); + } + } + + ensureByte(pos) { + if (pos < this.progressiveDataLength) { + return; + } + + const chunk = Math.floor(pos / this.chunkSize); + + if (chunk === this.lastSuccessfulEnsureByteChunk) { + return; + } + + if (!this._loadedChunks.has(chunk)) { + throw new _core_utils.MissingDataException(pos, pos + 1); + } + + this.lastSuccessfulEnsureByteChunk = chunk; + } + + ensureRange(begin, end) { + if (begin >= end) { + return; + } + + if (end <= this.progressiveDataLength) { + return; + } + + const chunkSize = this.chunkSize; + const beginChunk = Math.floor(begin / chunkSize); + const endChunk = Math.floor((end - 1) / chunkSize) + 1; + + for (let chunk = beginChunk; chunk < endChunk; ++chunk) { + if (!this._loadedChunks.has(chunk)) { + throw new _core_utils.MissingDataException(begin, end); } } - }, { - key: "ensureByte", - value: function ensureByte(pos) { - if (pos < this.progressiveDataLength) { - return; - } + } - var chunk = Math.floor(pos / this.chunkSize); + nextEmptyChunk(beginChunk) { + const numChunks = this.numChunks; - if (chunk === this.lastSuccessfulEnsureByteChunk) { - return; - } + for (let i = 0; i < numChunks; ++i) { + const chunk = (beginChunk + i) % numChunks; - if (!this.loadedChunks[chunk]) { - throw new _core_utils.MissingDataException(pos, pos + 1); - } - - this.lastSuccessfulEnsureByteChunk = chunk; - } - }, { - key: "ensureRange", - value: function 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 _core_utils.MissingDataException(begin, end); - } + if (!this._loadedChunks.has(chunk)) { + return chunk; } } - }, { - key: "nextEmptyChunk", - value: function nextEmptyChunk(beginChunk) { - var numChunks = this.numChunks; - for (var i = 0; i < numChunks; ++i) { - var chunk = (beginChunk + i) % numChunks; + return null; + } - if (!this.loadedChunks[chunk]) { - return chunk; - } - } + hasChunk(chunk) { + return this._loadedChunks.has(chunk); + } - return null; + get length() { + return this.end - this.start; + } + + get isEmpty() { + return this.length === 0; + } + + getByte() { + const pos = this.pos; + + if (pos >= this.end) { + return -1; } - }, { - key: "hasChunk", - value: function hasChunk(chunk) { - return !!this.loadedChunks[chunk]; - } - }, { - key: "getByte", - value: function getByte() { - var pos = this.pos; - - if (pos >= this.end) { - return -1; - } + if (pos >= this.progressiveDataLength) { this.ensureByte(pos); - return this.bytes[this.pos++]; } - }, { - key: "getUint16", - value: function getUint16() { - var b0 = this.getByte(); - var b1 = this.getByte(); - if (b0 === -1 || b1 === -1) { - return -1; - } + return this.bytes[this.pos++]; + } - return (b0 << 8) + b1; + getUint16() { + const b0 = this.getByte(); + const b1 = this.getByte(); + + if (b0 === -1 || b1 === -1) { + return -1; } - }, { - key: "getInt32", - value: function 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; - } - }, { - key: "getBytes", - value: function getBytes(length) { - var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var bytes = this.bytes; - var pos = this.pos; - var strEnd = this.end; - if (!length) { + return (b0 << 8) + b1; + } + + getInt32() { + const b0 = this.getByte(); + const b1 = this.getByte(); + const b2 = this.getByte(); + const b3 = this.getByte(); + return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3; + } + + getBytes(length, forceClamped = false) { + const bytes = this.bytes; + const pos = this.pos; + const strEnd = this.end; + + if (!length) { + if (strEnd > this.progressiveDataLength) { this.ensureRange(pos, strEnd); - - var _subarray = bytes.subarray(pos, strEnd); - - return forceClamped ? new Uint8ClampedArray(_subarray) : _subarray; } - var end = pos + length; - - if (end > strEnd) { - end = strEnd; - } - - this.ensureRange(pos, end); - this.pos = end; - var subarray = bytes.subarray(pos, end); + const subarray = bytes.subarray(pos, strEnd); return forceClamped ? new Uint8ClampedArray(subarray) : subarray; } - }, { - key: "peekByte", - value: function peekByte() { - var peekedByte = this.getByte(); - this.pos--; - return peekedByte; - } - }, { - key: "peekBytes", - value: function peekBytes(length) { - var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var bytes = this.getBytes(length, forceClamped); - this.pos -= bytes.length; - return bytes; - } - }, { - key: "getByteRange", - value: function getByteRange(begin, end) { - this.ensureRange(begin, end); - return this.bytes.subarray(begin, end); - } - }, { - key: "skip", - value: function skip(n) { - if (!n) { - n = 1; - } - this.pos += n; + let end = pos + length; + + if (end > strEnd) { + end = strEnd; } - }, { - key: "reset", - value: function reset() { - this.pos = this.start; + + if (end > this.progressiveDataLength) { + this.ensureRange(pos, end); } - }, { - key: "moveStart", - value: function moveStart() { - this.start = this.pos; + + this.pos = end; + const subarray = bytes.subarray(pos, end); + return forceClamped ? new Uint8ClampedArray(subarray) : subarray; + } + + peekByte() { + const peekedByte = this.getByte(); + + if (peekedByte !== -1) { + this.pos--; } - }, { - key: "makeSubStream", - value: function makeSubStream(start, length, dict) { - if (length) { + + return peekedByte; + } + + peekBytes(length, forceClamped = false) { + const bytes = this.getBytes(length, forceClamped); + this.pos -= bytes.length; + return bytes; + } + + getByteRange(begin, end) { + if (begin < 0) { + begin = 0; + } + + if (end > this.end) { + end = this.end; + } + + if (end > this.progressiveDataLength) { + this.ensureRange(begin, end); + } + + return this.bytes.subarray(begin, end); + } + + skip(n) { + if (!n) { + n = 1; + } + + this.pos += n; + } + + reset() { + this.pos = this.start; + } + + moveStart() { + this.start = this.pos; + } + + makeSubStream(start, length, dict) { + if (length) { + if (start + length > this.progressiveDataLength) { this.ensureRange(start, start + length); - } else { + } + } else { + if (start >= this.progressiveDataLength) { this.ensureByte(start); } + } - function ChunkedStreamSubstream() {} + function ChunkedStreamSubstream() {} - ChunkedStreamSubstream.prototype = Object.create(this); + 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 = []; + ChunkedStreamSubstream.prototype.getMissingChunks = function () { + const chunkSize = this.chunkSize; + const beginChunk = Math.floor(this.start / chunkSize); + const endChunk = Math.floor((this.end - 1) / chunkSize) + 1; + const missingChunks = []; - for (var chunk = beginChunk; chunk < endChunk; ++chunk) { - if (!this.loadedChunks[chunk]) { - missingChunks.push(chunk); - } + for (let chunk = beginChunk; chunk < endChunk; ++chunk) { + if (!this._loadedChunks.has(chunk)) { + missingChunks.push(chunk); } + } - return missingChunks; - }; + return missingChunks; + }; - var subStream = new ChunkedStreamSubstream(); - subStream.pos = subStream.start = start; - subStream.end = start + length || this.end; - subStream.dict = dict; - return subStream; - } - }, { - key: "length", - get: function get() { - return this.end - this.start; - } - }, { - key: "isEmpty", - get: function get() { - return this.length === 0; - } - }]); + ChunkedStreamSubstream.prototype.allChunksLoaded = function () { + if (this.numChunksLoaded === this.numChunks) { + return true; + } - return ChunkedStream; -}(); + return this.getMissingChunks().length === 0; + }; + + const subStream = new ChunkedStreamSubstream(); + subStream.pos = subStream.start = start; + subStream.end = start + length || this.end; + subStream.dict = dict; + return subStream; + } + +} exports.ChunkedStream = ChunkedStream; -var ChunkedStreamManager = -/*#__PURE__*/ -function () { - function ChunkedStreamManager(pdfNetworkStream, args) { - _classCallCheck(this, ChunkedStreamManager); - +class ChunkedStreamManager { + constructor(pdfNetworkStream, args) { this.length = args.length; this.chunkSize = args.rangeChunkSize; this.stream = new ChunkedStream(this.length, this.chunkSize, this); @@ -11960,395 +2507,314 @@ function () { 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._chunksNeededByRequest = new Map(); + this._requestsByChunk = new Map(); + this._promisesByRequest = new Map(); this.progressiveDataLength = 0; this.aborted = false; this._loadedStreamCapability = (0, _util.createPromiseCapability)(); } - _createClass(ChunkedStreamManager, [{ - key: "onLoadedStream", - value: function onLoadedStream() { - return this._loadedStreamCapability.promise; + onLoadedStream() { + return this._loadedStreamCapability.promise; + } + + sendRequest(begin, end) { + const rangeReader = this.pdfNetworkStream.getRangeReader(begin, end); + + if (!rangeReader.isStreamingSupported) { + rangeReader.onProgress = this.onProgress.bind(this); } - }, { - key: "sendRequest", - value: function sendRequest(begin, end) { - var _this = this; - var rangeReader = this.pdfNetworkStream.getRangeReader(begin, end); + let chunks = [], + loaded = 0; + const promise = new Promise((resolve, reject) => { + const readChunk = chunk => { + try { + if (!chunk.done) { + const data = chunk.value; + chunks.push(data); + loaded += (0, _util.arrayByteLength)(data); - if (!rangeReader.isStreamingSupported) { - rangeReader.onProgress = this.onProgress.bind(this); - } - - var chunks = [], - loaded = 0; - var promise = new Promise(function (resolve, reject) { - var readChunk = function readChunk(chunk) { - try { - if (!chunk.done) { - var data = chunk.value; - chunks.push(data); - loaded += (0, _util.arrayByteLength)(data); - - if (rangeReader.isStreamingSupported) { - _this.onProgress({ - loaded: loaded - }); - } - - rangeReader.read().then(readChunk, reject); - return; + if (rangeReader.isStreamingSupported) { + this.onProgress({ + loaded + }); } - var chunkData = (0, _util.arraysToBytes)(chunks); - chunks = null; - resolve(chunkData); - } catch (e) { - reject(e); + rangeReader.read().then(readChunk, reject); + return; } - }; - rangeReader.read().then(readChunk, reject); - }); - promise.then(function (data) { - if (_this.aborted) { - return; + const chunkData = (0, _util.arraysToBytes)(chunks); + chunks = null; + resolve(chunkData); + } catch (e) { + reject(e); } + }; - _this.onReceiveData({ - chunk: data, - begin: begin - }); - }); - } - }, { - key: "requestAllChunks", - value: function requestAllChunks() { - var missingChunks = this.stream.getMissingChunks(); - - this._requestChunks(missingChunks); - - return this._loadedStreamCapability.promise; - } - }, { - key: "_requestChunks", - value: function _requestChunks(chunks) { - var requestId = this.currRequestId++; - var chunksNeeded = Object.create(null); - this.chunksNeededByRequest[requestId] = chunksNeeded; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = chunks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var _chunk = _step.value; - - if (!this.stream.hasChunk(_chunk)) { - chunksNeeded[_chunk] = true; - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } + rangeReader.read().then(readChunk, reject); + }); + promise.then(data => { + if (this.aborted) { + return; } - if ((0, _util.isEmptyObj)(chunksNeeded)) { - return Promise.resolve(); + this.onReceiveData({ + chunk: data, + begin + }); + }); + } + + requestAllChunks() { + const missingChunks = this.stream.getMissingChunks(); + + this._requestChunks(missingChunks); + + return this._loadedStreamCapability.promise; + } + + _requestChunks(chunks) { + const requestId = this.currRequestId++; + const chunksNeeded = new Set(); + + this._chunksNeededByRequest.set(requestId, chunksNeeded); + + for (const chunk of chunks) { + if (!this.stream.hasChunk(chunk)) { + chunksNeeded.add(chunk); + } + } + + if (chunksNeeded.size === 0) { + return Promise.resolve(); + } + + const capability = (0, _util.createPromiseCapability)(); + + this._promisesByRequest.set(requestId, capability); + + const chunksToRequest = []; + + for (const chunk of chunksNeeded) { + let requestIds = this._requestsByChunk.get(chunk); + + if (!requestIds) { + requestIds = []; + + this._requestsByChunk.set(chunk, requestIds); + + chunksToRequest.push(chunk); } - var capability = (0, _util.createPromiseCapability)(); - this.promisesByRequest[requestId] = capability; - var chunksToRequest = []; + requestIds.push(requestId); + } - for (var chunk in chunksNeeded) { - chunk = chunk | 0; + if (chunksToRequest.length > 0) { + const groupedChunksToRequest = this.groupChunks(chunksToRequest); - if (!(chunk in this.requestsByChunk)) { - this.requestsByChunk[chunk] = []; + for (const groupedChunk of groupedChunksToRequest) { + const begin = groupedChunk.beginChunk * this.chunkSize; + const end = Math.min(groupedChunk.endChunk * this.chunkSize, this.length); + this.sendRequest(begin, end); + } + } + + return capability.promise.catch(reason => { + if (this.aborted) { + return; + } + + throw reason; + }); + } + + getStream() { + return this.stream; + } + + requestRange(begin, end) { + end = Math.min(end, this.length); + const beginChunk = this.getBeginChunk(begin); + const endChunk = this.getEndChunk(end); + const chunks = []; + + for (let chunk = beginChunk; chunk < endChunk; ++chunk) { + chunks.push(chunk); + } + + return this._requestChunks(chunks); + } + + requestRanges(ranges = []) { + const chunksToRequest = []; + + for (const range of ranges) { + const beginChunk = this.getBeginChunk(range.begin); + const endChunk = this.getEndChunk(range.end); + + for (let chunk = beginChunk; chunk < endChunk; ++chunk) { + if (!chunksToRequest.includes(chunk)) { chunksToRequest.push(chunk); } + } + } - this.requestsByChunk[chunk].push(requestId); + chunksToRequest.sort(function (a, b) { + return a - b; + }); + return this._requestChunks(chunksToRequest); + } + + groupChunks(chunks) { + const groupedChunks = []; + let beginChunk = -1; + let prevChunk = -1; + + for (let i = 0, ii = chunks.length; i < ii; ++i) { + const chunk = chunks[i]; + + if (beginChunk < 0) { + beginChunk = chunk; } - if (!chunksToRequest.length) { - return capability.promise; + if (prevChunk >= 0 && prevChunk + 1 !== chunk) { + groupedChunks.push({ + beginChunk, + endChunk: prevChunk + 1 + }); + beginChunk = chunk; } - var groupedChunksToRequest = this.groupChunks(chunksToRequest); - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = groupedChunksToRequest[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var groupedChunk = _step2.value; - var begin = groupedChunk.beginChunk * this.chunkSize; - var end = Math.min(groupedChunk.endChunk * this.chunkSize, this.length); - this.sendRequest(begin, end); - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } + if (i + 1 === chunks.length) { + groupedChunks.push({ + beginChunk, + endChunk: chunk + 1 + }); } - return capability.promise; + prevChunk = chunk; } - }, { - key: "getStream", - value: function getStream() { - return this.stream; - } - }, { - key: "requestRange", - value: function 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 groupedChunks; + } + + onProgress(args) { + this.msgHandler.send("DocProgress", { + loaded: this.stream.numChunksLoaded * this.chunkSize + args.loaded, + total: this.length + }); + } + + onReceiveData(args) { + const chunk = args.chunk; + const isProgressive = args.begin === undefined; + const begin = isProgressive ? this.progressiveDataLength : args.begin; + const end = begin + chunk.byteLength; + const beginChunk = Math.floor(begin / this.chunkSize); + const 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); + } + + const loadedRequests = []; + + for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) { + const requestIds = this._requestsByChunk.get(curChunk); + + if (!requestIds) { + continue; } - return this._requestChunks(chunks); - } - }, { - key: "requestRanges", - value: function requestRanges() { - var ranges = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; - var chunksToRequest = []; - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; + this._requestsByChunk.delete(curChunk); - try { - for (var _iterator3 = ranges[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var range = _step3.value; - var beginChunk = this.getBeginChunk(range.begin); - var endChunk = this.getEndChunk(range.end); + for (const requestId of requestIds) { + const chunksNeeded = this._chunksNeededByRequest.get(requestId); - for (var chunk = beginChunk; chunk < endChunk; ++chunk) { - if (!chunksToRequest.includes(chunk)) { - chunksToRequest.push(chunk); - } - } + if (chunksNeeded.has(curChunk)) { + chunksNeeded.delete(curChunk); } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) { - _iterator3["return"](); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } + + if (chunksNeeded.size > 0) { + continue; } + + loadedRequests.push(requestId); } - - chunksToRequest.sort(function (a, b) { - return a - b; - }); - return this._requestChunks(chunksToRequest); } - }, { - key: "groupChunks", - value: function groupChunks(chunks) { - var groupedChunks = []; - var beginChunk = -1; - var prevChunk = -1; - for (var i = 0, ii = chunks.length; i < ii; ++i) { - var chunk = chunks[i]; + if (!this.disableAutoFetch && this._requestsByChunk.size === 0) { + let nextEmptyChunk; - if (beginChunk < 0) { - beginChunk = chunk; + if (this.stream.numChunksLoaded === 1) { + const lastChunk = this.stream.numChunks - 1; + + if (!this.stream.hasChunk(lastChunk)) { + nextEmptyChunk = lastChunk; } - - 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; - } - }, { - key: "onProgress", - value: function onProgress(args) { - this.msgHandler.send('DocProgress', { - loaded: this.stream.numChunksLoaded * this.chunkSize + args.loaded, - total: this.length - }); - } - }, { - key: "onReceiveData", - value: function 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); + nextEmptyChunk = this.stream.nextEmptyChunk(endChunk); } - if (this.stream.allChunksLoaded()) { - this._loadedStreamCapability.resolve(this.stream); - } - - var loadedRequests = []; - - for (var _chunk2 = beginChunk; _chunk2 < endChunk; ++_chunk2) { - var requestIds = this.requestsByChunk[_chunk2] || []; - delete this.requestsByChunk[_chunk2]; - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; - - try { - for (var _iterator4 = requestIds[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var requestId = _step4.value; - var chunksNeeded = this.chunksNeededByRequest[requestId]; - - if (_chunk2 in chunksNeeded) { - delete chunksNeeded[_chunk2]; - } - - if (!(0, _util.isEmptyObj)(chunksNeeded)) { - continue; - } - - loadedRequests.push(requestId); - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) { - _iterator4["return"](); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - } - - if (!this.disableAutoFetch && (0, _util.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 (Number.isInteger(nextEmptyChunk)) { - this._requestChunks([nextEmptyChunk]); - } - } - - for (var _i = 0, _loadedRequests = loadedRequests; _i < _loadedRequests.length; _i++) { - var _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 - }); - } - }, { - key: "onError", - value: function onError(err) { - this._loadedStreamCapability.reject(err); - } - }, { - key: "getBeginChunk", - value: function getBeginChunk(begin) { - return Math.floor(begin / this.chunkSize); - } - }, { - key: "getEndChunk", - value: function getEndChunk(end) { - return Math.floor((end - 1) / this.chunkSize) + 1; - } - }, { - key: "abort", - value: function abort() { - this.aborted = true; - - if (this.pdfNetworkStream) { - this.pdfNetworkStream.cancelAllRequests('abort'); - } - - for (var requestId in this.promisesByRequest) { - this.promisesByRequest[requestId].reject(new Error('Request was aborted')); + if (Number.isInteger(nextEmptyChunk)) { + this._requestChunks([nextEmptyChunk]); } } - }]); - return ChunkedStreamManager; -}(); + for (const requestId of loadedRequests) { + const capability = this._promisesByRequest.get(requestId); + + this._promisesByRequest.delete(requestId); + + capability.resolve(); + } + + this.msgHandler.send("DocProgress", { + loaded: this.stream.numChunksLoaded * this.chunkSize, + total: this.length + }); + } + + onError(err) { + this._loadedStreamCapability.reject(err); + } + + getBeginChunk(begin) { + return Math.floor(begin / this.chunkSize); + } + + getEndChunk(end) { + return Math.floor((end - 1) / this.chunkSize) + 1; + } + + abort(reason) { + this.aborted = true; + + if (this.pdfNetworkStream) { + this.pdfNetworkStream.cancelAllRequests(reason); + } + + for (const capability of this._promisesByRequest.values()) { + capability.reject(reason); + } + } + +} exports.ChunkedStreamManager = ChunkedStreamManager; /***/ }), -/* 154 */ +/* 8 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -12360,12 +2826,17 @@ Object.defineProperty(exports, "__esModule", { exports.getLookupTableFactory = getLookupTableFactory; exports.getInheritableProperty = getInheritableProperty; exports.toRomanNumerals = toRomanNumerals; +exports.log2 = log2; +exports.readInt8 = readInt8; +exports.readUint16 = readUint16; +exports.readUint32 = readUint32; +exports.isWhiteSpace = isWhiteSpace; exports.XRefParseException = exports.XRefEntryException = exports.MissingDataException = void 0; -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); function getLookupTableFactory(initializer) { - var lookup; + let lookup; return function () { if (initializer) { lookup = Object.create(null); @@ -12377,60 +2848,37 @@ function getLookupTableFactory(initializer) { }; } -var MissingDataException = function MissingDataExceptionClosure() { - function MissingDataException(begin, end) { +class MissingDataException extends _util.BaseException { + constructor(begin, end) { + super(`Missing data [${begin}, ${end})`); this.begin = begin; this.end = end; - this.message = "Missing data [".concat(begin, ", ").concat(end, ")"); } - MissingDataException.prototype = new Error(); - MissingDataException.prototype.name = 'MissingDataException'; - MissingDataException.constructor = MissingDataException; - return MissingDataException; -}(); +} exports.MissingDataException = MissingDataException; -var XRefEntryException = function XRefEntryExceptionClosure() { - function XRefEntryException(msg) { - this.message = msg; - } - - XRefEntryException.prototype = new Error(); - XRefEntryException.prototype.name = 'XRefEntryException'; - XRefEntryException.constructor = XRefEntryException; - return XRefEntryException; -}(); +class XRefEntryException extends _util.BaseException {} exports.XRefEntryException = XRefEntryException; -var XRefParseException = function XRefParseExceptionClosure() { - function XRefParseException(msg) { - this.message = msg; - } - - XRefParseException.prototype = new Error(); - XRefParseException.prototype.name = 'XRefParseException'; - XRefParseException.constructor = XRefParseException; - return XRefParseException; -}(); +class XRefParseException extends _util.BaseException {} exports.XRefParseException = XRefParseException; -function getInheritableProperty(_ref) { - var dict = _ref.dict, - key = _ref.key, - _ref$getArray = _ref.getArray, - getArray = _ref$getArray === void 0 ? false : _ref$getArray, - _ref$stopWhenFound = _ref.stopWhenFound, - stopWhenFound = _ref$stopWhenFound === void 0 ? true : _ref$stopWhenFound; - var LOOP_LIMIT = 100; - var loopCount = 0; - var values; +function getInheritableProperty({ + dict, + key, + getArray = false, + stopWhenFound = true +}) { + const LOOP_LIMIT = 100; + let loopCount = 0; + let values; while (dict) { - var value = getArray ? dict.getArray(key) : dict.get(key); + const value = getArray ? dict.getArray(key) : dict.get(key); if (value !== undefined) { if (stopWhenFound) { @@ -12445,27 +2893,26 @@ function getInheritableProperty(_ref) { } if (++loopCount > LOOP_LIMIT) { - (0, _util.warn)("getInheritableProperty: maximum loop count exceeded for \"".concat(key, "\"")); + (0, _util.warn)(`getInheritableProperty: maximum loop count exceeded for "${key}"`); break; } - dict = dict.get('Parent'); + dict = dict.get("Parent"); } return values; } -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']; +const 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"]; -function toRomanNumerals(number) { - var lowerCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - (0, _util.assert)(Number.isInteger(number) && number > 0, 'The number should be a positive integer.'); - var pos, - romanBuf = []; +function toRomanNumerals(number, lowerCase = false) { + (0, _util.assert)(Number.isInteger(number) && number > 0, "The number should be a positive integer."); + const romanBuf = []; + let pos; while (number >= 1000) { number -= 1000; - romanBuf.push('M'); + romanBuf.push("M"); } pos = number / 100 | 0; @@ -12475,12 +2922,36 @@ function toRomanNumerals(number) { number %= 10; romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]); romanBuf.push(ROMAN_NUMBER_MAP[20 + number]); - var romanStr = romanBuf.join(''); + const romanStr = romanBuf.join(""); return lowerCase ? romanStr.toLowerCase() : romanStr; } +function log2(x) { + if (x <= 0) { + return 0; + } + + return Math.ceil(Math.log2(x)); +} + +function readInt8(data, offset) { + return data[offset] << 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 isWhiteSpace(ch) { + return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a; +} + /***/ }), -/* 155 */ +/* 9 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -12491,64 +2962,45 @@ Object.defineProperty(exports, "__esModule", { }); exports.PDFDocument = exports.Page = void 0; -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -var _obj = __w_pdfjs_require__(156); +var _obj = __w_pdfjs_require__(10); -var _primitives = __w_pdfjs_require__(151); +var _primitives = __w_pdfjs_require__(5); -var _core_utils = __w_pdfjs_require__(154); +var _core_utils = __w_pdfjs_require__(8); -var _stream2 = __w_pdfjs_require__(158); +var _stream = __w_pdfjs_require__(12); -var _annotation = __w_pdfjs_require__(170); +var _annotation = __w_pdfjs_require__(25); -var _crypto = __w_pdfjs_require__(168); +var _crypto = __w_pdfjs_require__(22); -var _parser = __w_pdfjs_require__(157); +var _parser = __w_pdfjs_require__(11); -var _operator_list = __w_pdfjs_require__(171); +var _operator_list = __w_pdfjs_require__(26); -var _evaluator = __w_pdfjs_require__(172); +var _evaluator = __w_pdfjs_require__(28); -var _function = __w_pdfjs_require__(186); - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var DEFAULT_USER_UNIT = 1.0; -var LETTER_SIZE_MEDIABOX = [0, 0, 612, 792]; +const DEFAULT_USER_UNIT = 1.0; +const LETTER_SIZE_MEDIABOX = [0, 0, 612, 792]; function isAnnotationRenderable(annotation, intent) { - return intent === 'display' && annotation.viewable || intent === 'print' && annotation.printable; + return intent === "display" && annotation.viewable || intent === "print" && annotation.printable; } -var Page = -/*#__PURE__*/ -function () { - function Page(_ref) { - var pdfManager = _ref.pdfManager, - xref = _ref.xref, - pageIndex = _ref.pageIndex, - pageDict = _ref.pageDict, - ref = _ref.ref, - fontCache = _ref.fontCache, - builtInCMapCache = _ref.builtInCMapCache, - pdfFunctionFactory = _ref.pdfFunctionFactory; - - _classCallCheck(this, Page); - +class Page { + constructor({ + pdfManager, + xref, + pageIndex, + pageDict, + ref, + globalIdFactory, + fontCache, + builtInCMapCache, + globalImageCache + }) { this.pdfManager = pdfManager; this.pageIndex = pageIndex; this.pageDict = pageDict; @@ -12556,774 +3008,752 @@ function () { this.ref = ref; this.fontCache = fontCache; this.builtInCMapCache = builtInCMapCache; - this.pdfFunctionFactory = pdfFunctionFactory; + this.globalImageCache = globalImageCache; this.evaluatorOptions = pdfManager.evaluatorOptions; this.resourcesPromise = null; - var idCounters = { + const idCounters = { obj: 0 }; - this.idFactory = { - createObjId: function createObjId() { - return "p".concat(pageIndex, "_").concat(++idCounters.obj); - }, - getDocId: function getDocId() { - return "g_".concat(pdfManager.docId); + this._localIdFactory = class extends globalIdFactory { + static createObjId() { + return `p${pageIndex}_${++idCounters.obj}`; } + }; } - _createClass(Page, [{ - key: "_getInheritableProperty", - value: function _getInheritableProperty(key) { - var getArray = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var value = (0, _core_utils.getInheritableProperty)({ - dict: this.pageDict, - key: key, - getArray: getArray, - stopWhenFound: false - }); + _getInheritableProperty(key, getArray = false) { + const value = (0, _core_utils.getInheritableProperty)({ + dict: this.pageDict, + key, + getArray, + stopWhenFound: false + }); - if (!Array.isArray(value)) { - return value; - } - - if (value.length === 1 || !(0, _primitives.isDict)(value[0])) { - return value[0]; - } - - return _primitives.Dict.merge(this.xref, value); + if (!Array.isArray(value)) { + return value; } - }, { - key: "getContentStream", - value: function getContentStream() { - var content = this.content; - var stream; - if (Array.isArray(content)) { - var xref = this.xref; - var streams = []; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; + if (value.length === 1 || !(0, _primitives.isDict)(value[0])) { + return value[0]; + } - try { - for (var _iterator = content[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var _stream = _step.value; - streams.push(xref.fetchIfRef(_stream)); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } + return _primitives.Dict.merge({ + xref: this.xref, + dictArray: value + }); + } + + get content() { + return this.pageDict.get("Contents"); + } + + get resources() { + return (0, _util.shadow)(this, "resources", this._getInheritableProperty("Resources") || _primitives.Dict.empty); + } + + _getBoundingBox(name) { + const box = this._getInheritableProperty(name, true); + + if (Array.isArray(box) && box.length === 4) { + if (box[2] - box[0] !== 0 && box[3] - box[1] !== 0) { + return box; + } + + (0, _util.warn)(`Empty /${name} entry.`); + } + + return null; + } + + get mediaBox() { + return (0, _util.shadow)(this, "mediaBox", this._getBoundingBox("MediaBox") || LETTER_SIZE_MEDIABOX); + } + + get cropBox() { + return (0, _util.shadow)(this, "cropBox", this._getBoundingBox("CropBox") || this.mediaBox); + } + + get userUnit() { + let obj = this.pageDict.get("UserUnit"); + + if (!(0, _util.isNum)(obj) || obj <= 0) { + obj = DEFAULT_USER_UNIT; + } + + return (0, _util.shadow)(this, "userUnit", obj); + } + + get view() { + const { + cropBox, + mediaBox + } = this; + let view; + + if (cropBox === mediaBox || (0, _util.isArrayEqual)(cropBox, mediaBox)) { + view = mediaBox; + } else { + const box = _util.Util.intersect(cropBox, mediaBox); + + if (box && box[2] - box[0] !== 0 && box[3] - box[1] !== 0) { + view = box; + } else { + (0, _util.warn)("Empty /CropBox and /MediaBox intersection."); + } + } + + return (0, _util.shadow)(this, "view", view || mediaBox); + } + + get rotate() { + let rotate = this._getInheritableProperty("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 (0, _util.shadow)(this, "rotate", rotate); + } + + getContentStream() { + const content = this.content; + let stream; + + if (Array.isArray(content)) { + const xref = this.xref; + const streams = []; + + for (const subStream of content) { + streams.push(xref.fetchIfRef(subStream)); + } + + stream = new _stream.StreamsSequenceStream(streams); + } else if ((0, _primitives.isStream)(content)) { + stream = content; + } else { + stream = new _stream.NullStream(); + } + + return stream; + } + + save(handler, task, annotationStorage) { + const partialEvaluator = new _evaluator.PartialEvaluator({ + xref: this.xref, + handler, + pageIndex: this.pageIndex, + idFactory: this._localIdFactory, + fontCache: this.fontCache, + builtInCMapCache: this.builtInCMapCache, + globalImageCache: this.globalImageCache, + options: this.evaluatorOptions + }); + return this._parsedAnnotations.then(function (annotations) { + const newRefsPromises = []; + + for (const annotation of annotations) { + if (!isAnnotationRenderable(annotation, "print")) { + continue; } - stream = new _stream2.StreamsSequenceStream(streams); - } else if ((0, _primitives.isStream)(content)) { - stream = content; - } else { - stream = new _stream2.NullStream(); + newRefsPromises.push(annotation.save(partialEvaluator, task, annotationStorage).catch(function (reason) { + (0, _util.warn)("save - ignoring annotation data during " + `"${task.name}" task: "${reason}".`); + return null; + })); } - return stream; + return Promise.all(newRefsPromises); + }); + } + + loadResources(keys) { + if (!this.resourcesPromise) { + this.resourcesPromise = this.pdfManager.ensure(this, "resources"); } - }, { - key: "loadResources", - value: function loadResources(keys) { - var _this = this; - if (!this.resourcesPromise) { - this.resourcesPromise = this.pdfManager.ensure(this, 'resources'); - } + return this.resourcesPromise.then(() => { + const objectLoader = new _obj.ObjectLoader(this.resources, keys, this.xref); + return objectLoader.load(); + }); + } - return this.resourcesPromise.then(function () { - var objectLoader = new _obj.ObjectLoader(_this.resources, keys, _this.xref); - return objectLoader.load(); - }); - } - }, { - key: "getOperatorList", - value: function getOperatorList(_ref2) { - var _this2 = this; - - var handler = _ref2.handler, - task = _ref2.task, - intent = _ref2.intent, - renderInteractiveForms = _ref2.renderInteractiveForms; - var contentStreamPromise = this.pdfManager.ensure(this, 'getContentStream'); - var resourcesPromise = this.loadResources(['ExtGState', 'ColorSpace', 'Pattern', 'Shading', 'XObject', 'Font']); - var partialEvaluator = new _evaluator.PartialEvaluator({ - xref: this.xref, - handler: handler, + getOperatorList({ + handler, + sink, + task, + intent, + renderInteractiveForms, + annotationStorage + }) { + const contentStreamPromise = this.pdfManager.ensure(this, "getContentStream"); + const resourcesPromise = this.loadResources(["ExtGState", "ColorSpace", "Pattern", "Shading", "XObject", "Font"]); + const partialEvaluator = new _evaluator.PartialEvaluator({ + xref: this.xref, + handler, + pageIndex: this.pageIndex, + idFactory: this._localIdFactory, + fontCache: this.fontCache, + builtInCMapCache: this.builtInCMapCache, + globalImageCache: this.globalImageCache, + options: this.evaluatorOptions + }); + const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]); + const pageListPromise = dataPromises.then(([contentStream]) => { + const opList = new _operator_list.OperatorList(intent, sink); + handler.send("StartRenderPage", { + transparency: partialEvaluator.hasBlendModes(this.resources), pageIndex: this.pageIndex, - idFactory: this.idFactory, + intent + }); + return partialEvaluator.getOperatorList({ + stream: contentStream, + task, + resources: this.resources, + operatorList: opList + }).then(function () { + return opList; + }); + }); + return Promise.all([pageListPromise, this._parsedAnnotations]).then(function ([pageOpList, annotations]) { + if (annotations.length === 0) { + pageOpList.flush(true); + return { + length: pageOpList.totalLength + }; + } + + const opListPromises = []; + + for (const annotation of annotations) { + if (isAnnotationRenderable(annotation, intent)) { + opListPromises.push(annotation.getOperatorList(partialEvaluator, task, renderInteractiveForms, annotationStorage).catch(function (reason) { + (0, _util.warn)("getOperatorList - ignoring annotation data during " + `"${task.name}" task: "${reason}".`); + return null; + })); + } + } + + return Promise.all(opListPromises).then(function (opLists) { + pageOpList.addOp(_util.OPS.beginAnnotations, []); + + for (const opList of opLists) { + pageOpList.addOpList(opList); + } + + pageOpList.addOp(_util.OPS.endAnnotations, []); + pageOpList.flush(true); + return { + length: pageOpList.totalLength + }; + }); + }); + } + + extractTextContent({ + handler, + task, + normalizeWhitespace, + sink, + combineTextItems + }) { + const contentStreamPromise = this.pdfManager.ensure(this, "getContentStream"); + const resourcesPromise = this.loadResources(["ExtGState", "XObject", "Font"]); + const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]); + return dataPromises.then(([contentStream]) => { + const partialEvaluator = new _evaluator.PartialEvaluator({ + xref: this.xref, + handler, + pageIndex: this.pageIndex, + idFactory: this._localIdFactory, fontCache: this.fontCache, builtInCMapCache: this.builtInCMapCache, - options: this.evaluatorOptions, - pdfFunctionFactory: this.pdfFunctionFactory + globalImageCache: this.globalImageCache, + options: this.evaluatorOptions }); - var dataPromises = Promise.all([contentStreamPromise, resourcesPromise]); - var pageListPromise = dataPromises.then(function (_ref3) { - var _ref4 = _slicedToArray(_ref3, 1), - contentStream = _ref4[0]; - - var opList = new _operator_list.OperatorList(intent, handler, _this2.pageIndex); - handler.send('StartRenderPage', { - transparency: partialEvaluator.hasBlendModes(_this2.resources), - pageIndex: _this2.pageIndex, - intent: intent - }); - return partialEvaluator.getOperatorList({ - stream: contentStream, - task: task, - resources: _this2.resources, - operatorList: opList - }).then(function () { - return opList; - }); + return partialEvaluator.getTextContent({ + stream: contentStream, + task, + resources: this.resources, + normalizeWhitespace, + combineTextItems, + sink }); - return Promise.all([pageListPromise, this._parsedAnnotations]).then(function (_ref5) { - var _ref6 = _slicedToArray(_ref5, 2), - pageOpList = _ref6[0], - annotations = _ref6[1]; + }); + } - if (annotations.length === 0) { - pageOpList.flush(true); - return pageOpList; + getAnnotationsData(intent) { + return this._parsedAnnotations.then(function (annotations) { + const annotationsData = []; + + for (let i = 0, ii = annotations.length; i < ii; i++) { + if (!intent || isAnnotationRenderable(annotations[i], intent)) { + annotationsData.push(annotations[i].data); } + } - var opListPromises = []; - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; + return annotationsData; + }); + } - try { - for (var _iterator2 = annotations[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var annotation = _step2.value; + get annotations() { + return (0, _util.shadow)(this, "annotations", this._getInheritableProperty("Annots") || []); + } - if (isAnnotationRenderable(annotation, intent)) { - opListPromises.push(annotation.getOperatorList(partialEvaluator, task, renderInteractiveForms)); - } - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } + get _parsedAnnotations() { + const parsedAnnotations = this.pdfManager.ensure(this, "annotations").then(() => { + const annotationPromises = []; - return Promise.all(opListPromises).then(function (opLists) { - pageOpList.addOp(_util.OPS.beginAnnotations, []); - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; + for (const annotationRef of this.annotations) { + annotationPromises.push(_annotation.AnnotationFactory.create(this.xref, annotationRef, this.pdfManager, this._localIdFactory).catch(function (reason) { + (0, _util.warn)(`_parsedAnnotations: "${reason}".`); + return null; + })); + } - try { - for (var _iterator3 = opLists[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var opList = _step3.value; - pageOpList.addOpList(opList); - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) { - _iterator3["return"](); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - - pageOpList.addOp(_util.OPS.endAnnotations, []); - pageOpList.flush(true); - return pageOpList; - }); + return Promise.all(annotationPromises).then(function (annotations) { + return annotations.filter(annotation => !!annotation); }); - } - }, { - key: "extractTextContent", - value: function extractTextContent(_ref7) { - var _this3 = this; + }); + return (0, _util.shadow)(this, "_parsedAnnotations", parsedAnnotations); + } - var handler = _ref7.handler, - task = _ref7.task, - normalizeWhitespace = _ref7.normalizeWhitespace, - sink = _ref7.sink, - combineTextItems = _ref7.combineTextItems; - var contentStreamPromise = this.pdfManager.ensure(this, 'getContentStream'); - var resourcesPromise = this.loadResources(['ExtGState', 'XObject', 'Font']); - var dataPromises = Promise.all([contentStreamPromise, resourcesPromise]); - return dataPromises.then(function (_ref8) { - var _ref9 = _slicedToArray(_ref8, 1), - contentStream = _ref9[0]; - - var partialEvaluator = new _evaluator.PartialEvaluator({ - xref: _this3.xref, - handler: handler, - pageIndex: _this3.pageIndex, - idFactory: _this3.idFactory, - fontCache: _this3.fontCache, - builtInCMapCache: _this3.builtInCMapCache, - options: _this3.evaluatorOptions, - pdfFunctionFactory: _this3.pdfFunctionFactory - }); - return partialEvaluator.getTextContent({ - stream: contentStream, - task: task, - resources: _this3.resources, - normalizeWhitespace: normalizeWhitespace, - combineTextItems: combineTextItems, - sink: sink - }); - }); - } - }, { - key: "getAnnotationsData", - value: function getAnnotationsData(intent) { - return this._parsedAnnotations.then(function (annotations) { - var annotationsData = []; - - for (var i = 0, ii = annotations.length; i < ii; i++) { - if (!intent || isAnnotationRenderable(annotations[i], intent)) { - annotationsData.push(annotations[i].data); - } - } - - return annotationsData; - }); - } - }, { - key: "content", - get: function get() { - return this.pageDict.get('Contents'); - } - }, { - key: "resources", - get: function get() { - return (0, _util.shadow)(this, 'resources', this._getInheritableProperty('Resources') || _primitives.Dict.empty); - } - }, { - key: "mediaBox", - get: function get() { - var mediaBox = this._getInheritableProperty('MediaBox', true); - - if (!Array.isArray(mediaBox) || mediaBox.length !== 4) { - return (0, _util.shadow)(this, 'mediaBox', LETTER_SIZE_MEDIABOX); - } - - return (0, _util.shadow)(this, 'mediaBox', mediaBox); - } - }, { - key: "cropBox", - get: function get() { - var cropBox = this._getInheritableProperty('CropBox', true); - - if (!Array.isArray(cropBox) || cropBox.length !== 4) { - return (0, _util.shadow)(this, 'cropBox', this.mediaBox); - } - - return (0, _util.shadow)(this, 'cropBox', cropBox); - } - }, { - key: "userUnit", - get: function get() { - var obj = this.pageDict.get('UserUnit'); - - if (!(0, _util.isNum)(obj) || obj <= 0) { - obj = DEFAULT_USER_UNIT; - } - - return (0, _util.shadow)(this, 'userUnit', obj); - } - }, { - key: "view", - get: function get() { - var mediaBox = this.mediaBox, - cropBox = this.cropBox; - - if (mediaBox === cropBox) { - return (0, _util.shadow)(this, 'view', mediaBox); - } - - var intersection = _util.Util.intersect(cropBox, mediaBox); - - return (0, _util.shadow)(this, 'view', intersection || mediaBox); - } - }, { - key: "rotate", - get: function get() { - var rotate = this._getInheritableProperty('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 (0, _util.shadow)(this, 'rotate', rotate); - } - }, { - key: "annotations", - get: function get() { - return (0, _util.shadow)(this, 'annotations', this._getInheritableProperty('Annots') || []); - } - }, { - key: "_parsedAnnotations", - get: function get() { - var _this4 = this; - - var parsedAnnotations = this.pdfManager.ensure(this, 'annotations').then(function () { - var annotationRefs = _this4.annotations; - var annotationPromises = []; - - for (var i = 0, ii = annotationRefs.length; i < ii; i++) { - annotationPromises.push(_annotation.AnnotationFactory.create(_this4.xref, annotationRefs[i], _this4.pdfManager, _this4.idFactory)); - } - - return Promise.all(annotationPromises).then(function (annotations) { - return annotations.filter(function isDefined(annotation) { - return !!annotation; - }); - }, function (reason) { - (0, _util.warn)("_parsedAnnotations: \"".concat(reason, "\".")); - return []; - }); - }); - return (0, _util.shadow)(this, '_parsedAnnotations', parsedAnnotations); - } - }]); - - return Page; -}(); +} exports.Page = Page; -var FINGERPRINT_FIRST_BYTES = 1024; -var EMPTY_FINGERPRINT = '\x00\x00\x00\x00\x00\x00\x00' + '\x00\x00\x00\x00\x00\x00\x00\x00\x00'; +const PDF_HEADER_SIGNATURE = new Uint8Array([0x25, 0x50, 0x44, 0x46, 0x2d]); +const STARTXREF_SIGNATURE = new Uint8Array([0x73, 0x74, 0x61, 0x72, 0x74, 0x78, 0x72, 0x65, 0x66]); +const ENDOBJ_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64, 0x6f, 0x62, 0x6a]); +const FINGERPRINT_FIRST_BYTES = 1024; +const EMPTY_FINGERPRINT = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"; +const PDF_HEADER_VERSION_REGEXP = /^[1-9]\.[0-9]$/; -function find(stream, needle, limit) { - var backwards = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - (0, _util.assert)(limit > 0, 'The "limit" must be a positive integer.'); - var str = (0, _util.bytesToString)(stream.peekBytes(limit)); - var index = backwards ? str.lastIndexOf(needle) : str.indexOf(needle); +function find(stream, signature, limit = 1024, backwards = false) { + const signatureLength = signature.length; + const scanBytes = stream.peekBytes(limit); + const scanLength = scanBytes.length - signatureLength; - if (index === -1) { + if (scanLength <= 0) { return false; } - stream.pos += index; - return true; + if (backwards) { + const signatureEnd = signatureLength - 1; + let pos = scanBytes.length - 1; + + while (pos >= signatureEnd) { + let j = 0; + + while (j < signatureLength && scanBytes[pos - j] === signature[signatureEnd - j]) { + j++; + } + + if (j >= signatureLength) { + stream.pos += pos - signatureEnd; + return true; + } + + pos--; + } + } else { + let pos = 0; + + while (pos <= scanLength) { + let j = 0; + + while (j < signatureLength && scanBytes[pos + j] === signature[j]) { + j++; + } + + if (j >= signatureLength) { + stream.pos += pos; + return true; + } + + pos++; + } + } + + return false; } -var PDFDocument = -/*#__PURE__*/ -function () { - function PDFDocument(pdfManager, arg) { - _classCallCheck(this, PDFDocument); - - var stream; +class PDFDocument { + constructor(pdfManager, arg) { + let stream; if ((0, _primitives.isStream)(arg)) { stream = arg; } else if ((0, _util.isArrayBuffer)(arg)) { - stream = new _stream2.Stream(arg); + stream = new _stream.Stream(arg); } else { - throw new Error('PDFDocument: Unknown argument type'); + throw new Error("PDFDocument: Unknown argument type"); } if (stream.length <= 0) { - throw new Error('PDFDocument: Stream must have data'); + throw new _util.InvalidPDFException("The PDF file is empty, i.e. its size is zero bytes."); } this.pdfManager = pdfManager; this.stream = stream; this.xref = new _obj.XRef(stream, pdfManager); - this.pdfFunctionFactory = new _function.PDFFunctionFactory({ - xref: this.xref, - isEvalSupported: pdfManager.evaluatorOptions.isEvalSupported - }); this._pagePromises = []; + this._version = null; + const idCounters = { + font: 0 + }; + this._globalIdFactory = class { + static getDocId() { + return `g_${pdfManager.docId}`; + } + + static createFontId() { + return `f${++idCounters.font}`; + } + + static createObjId() { + (0, _util.unreachable)("Abstract method `createObjId` called."); + } + + }; } - _createClass(PDFDocument, [{ - key: "parse", - value: function parse(recoveryMode) { - this.setup(recoveryMode); - var version = this.catalog.catDict.get('Version'); + parse(recoveryMode) { + this.xref.parse(recoveryMode); + this.catalog = new _obj.Catalog(this.pdfManager, this.xref); - if ((0, _primitives.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 ((!Array.isArray(fields) || fields.length === 0) && !this.xfa) { - this.acroForm = null; - } - } - } catch (ex) { - if (ex instanceof _core_utils.MissingDataException) { - throw ex; - } - - (0, _util.info)('Cannot fetch AcroForm entry; assuming no AcroForms are present'); - this.acroForm = null; - } - - try { - var collection = this.catalog.catDict.get('Collection'); - - if ((0, _primitives.isDict)(collection) && collection.getKeys().length > 0) { - this.collection = collection; - } - } catch (ex) { - if (ex instanceof _core_utils.MissingDataException) { - throw ex; - } - - (0, _util.info)('Cannot fetch Collection dictionary.'); - } + if (this.catalog.version) { + this._version = this.catalog.version; } - }, { - key: "checkHeader", - value: function checkHeader() { - var stream = this.stream; + } + + get linearization() { + let linearization = null; + + try { + linearization = _parser.Linearization.create(this.stream); + } catch (err) { + if (err instanceof _core_utils.MissingDataException) { + throw err; + } + + (0, _util.info)(err); + } + + return (0, _util.shadow)(this, "linearization", linearization); + } + + get startXRef() { + const stream = this.stream; + let startXRef = 0; + + if (this.linearization) { stream.reset(); - if (!find(stream, '%PDF-', 1024)) { - return; + if (find(stream, ENDOBJ_SIGNATURE)) { + startXRef = stream.pos + 6 - stream.start; } + } else { + const step = 1024; + const startXRefLength = STARTXREF_SIGNATURE.length; + let found = false, + pos = stream.end; - stream.moveStart(); - var MAX_PDF_VERSION_LENGTH = 12; - var version = '', - ch; + while (!found && pos > 0) { + pos -= step - startXRefLength; - while ((ch = stream.getByte()) > 0x20) { - if (version.length >= MAX_PDF_VERSION_LENGTH) { - break; + if (pos < 0) { + pos = 0; } - version += String.fromCharCode(ch); + stream.pos = pos; + found = find(stream, STARTXREF_SIGNATURE, step, true); } - if (!this.pdfFormatVersion) { - this.pdfFormatVersion = version.substring(5); + if (found) { + stream.skip(9); + let ch; + + do { + ch = stream.getByte(); + } while ((0, _core_utils.isWhiteSpace)(ch)); + + let str = ""; + + while (ch >= 0x20 && ch <= 0x39) { + str += String.fromCharCode(ch); + ch = stream.getByte(); + } + + startXRef = parseInt(str, 10); + + if (isNaN(startXRef)) { + startXRef = 0; + } } } - }, { - key: "parseStartXRef", - value: function parseStartXRef() { - this.xref.setStartXRef(this.startXRef); - } - }, { - key: "setup", - value: function setup(recoveryMode) { - this.xref.parse(recoveryMode); - this.catalog = new _obj.Catalog(this.pdfManager, this.xref); - } - }, { - key: "_getLinearizationPage", - value: function _getLinearizationPage(pageIndex) { - var catalog = this.catalog, - linearization = this.linearization; - (0, _util.assert)(linearization && linearization.pageFirst === pageIndex); - var ref = _primitives.Ref.get(linearization.objectNumberFirst, 0); + return (0, _util.shadow)(this, "startXRef", startXRef); + } - return this.xref.fetchAsync(ref).then(function (obj) { - if ((0, _primitives.isDict)(obj, 'Page') || (0, _primitives.isDict)(obj) && !obj.has('Type') && obj.has('Contents')) { - if (ref && !catalog.pageKidsCountCache.has(ref)) { - catalog.pageKidsCountCache.put(ref, 1); + checkHeader() { + const stream = this.stream; + stream.reset(); + + if (!find(stream, PDF_HEADER_SIGNATURE)) { + return; + } + + stream.moveStart(); + const MAX_PDF_VERSION_LENGTH = 12; + let version = "", + ch; + + while ((ch = stream.getByte()) > 0x20) { + if (version.length >= MAX_PDF_VERSION_LENGTH) { + break; + } + + version += String.fromCharCode(ch); + } + + if (!this._version) { + this._version = version.substring(5); + } + } + + parseStartXRef() { + this.xref.setStartXRef(this.startXRef); + } + + get numPages() { + const linearization = this.linearization; + const num = linearization ? linearization.numPages : this.catalog.numPages; + return (0, _util.shadow)(this, "numPages", num); + } + + _hasOnlyDocumentSignatures(fields, recursionDepth = 0) { + const RECURSION_LIMIT = 10; + return fields.every(field => { + field = this.xref.fetchIfRef(field); + + if (field.has("Kids")) { + if (++recursionDepth > RECURSION_LIMIT) { + (0, _util.warn)("_hasOnlyDocumentSignatures: maximum recursion depth reached"); + return false; + } + + return this._hasOnlyDocumentSignatures(field.get("Kids"), recursionDepth); + } + + const isSignature = (0, _primitives.isName)(field.get("FT"), "Sig"); + const rectangle = field.get("Rect"); + const isInvisible = Array.isArray(rectangle) && rectangle.every(value => value === 0); + return isSignature && isInvisible; + }); + } + + get formInfo() { + const formInfo = { + hasAcroForm: false, + hasXfa: false + }; + const acroForm = this.catalog.acroForm; + + if (!acroForm) { + return (0, _util.shadow)(this, "formInfo", formInfo); + } + + try { + const xfa = acroForm.get("XFA"); + const hasXfa = Array.isArray(xfa) && xfa.length > 0 || (0, _primitives.isStream)(xfa) && !xfa.isEmpty; + formInfo.hasXfa = hasXfa; + const fields = acroForm.get("Fields"); + const hasFields = Array.isArray(fields) && fields.length > 0; + const sigFlags = acroForm.get("SigFlags"); + + const hasOnlyDocumentSignatures = !!(sigFlags & 0x1) && this._hasOnlyDocumentSignatures(fields); + + formInfo.hasAcroForm = hasFields && !hasOnlyDocumentSignatures; + } catch (ex) { + if (ex instanceof _core_utils.MissingDataException) { + throw ex; + } + + (0, _util.info)("Cannot fetch form information."); + } + + return (0, _util.shadow)(this, "formInfo", formInfo); + } + + get documentInfo() { + const DocumentInfoValidators = { + Title: _util.isString, + Author: _util.isString, + Subject: _util.isString, + Keywords: _util.isString, + Creator: _util.isString, + Producer: _util.isString, + CreationDate: _util.isString, + ModDate: _util.isString, + Trapped: _primitives.isName + }; + let version = this._version; + + if (typeof version !== "string" || !PDF_HEADER_VERSION_REGEXP.test(version)) { + (0, _util.warn)(`Invalid PDF header version number: ${version}`); + version = null; + } + + const docInfo = { + PDFFormatVersion: version, + IsLinearized: !!this.linearization, + IsAcroFormPresent: this.formInfo.hasAcroForm, + IsXFAPresent: this.formInfo.hasXfa, + IsCollectionPresent: !!this.catalog.collection + }; + let infoDict; + + try { + infoDict = this.xref.trailer.get("Info"); + } catch (err) { + if (err instanceof _core_utils.MissingDataException) { + throw err; + } + + (0, _util.info)("The document information dictionary is invalid."); + } + + if ((0, _primitives.isDict)(infoDict)) { + for (const key of infoDict.getKeys()) { + const value = infoDict.get(key); + + if (DocumentInfoValidators[key]) { + if (DocumentInfoValidators[key](value)) { + docInfo[key] = typeof value !== "string" ? value : (0, _util.stringToPDFString)(value); + } else { + (0, _util.info)(`Bad value in document info for "${key}".`); + } + } else if (typeof key === "string") { + let customValue; + + if ((0, _util.isString)(value)) { + customValue = (0, _util.stringToPDFString)(value); + } else if ((0, _primitives.isName)(value) || (0, _util.isNum)(value) || (0, _util.isBool)(value)) { + customValue = value; + } else { + (0, _util.info)(`Unsupported value in document info for (custom) "${key}".`); + continue; } - return [obj, ref]; + if (!docInfo.Custom) { + docInfo.Custom = Object.create(null); + } + + docInfo.Custom[key] = customValue; + } + } + } + + return (0, _util.shadow)(this, "documentInfo", docInfo); + } + + get fingerprint() { + let hash; + const idArray = this.xref.trailer.get("ID"); + + if (Array.isArray(idArray) && idArray[0] && (0, _util.isString)(idArray[0]) && idArray[0] !== EMPTY_FINGERPRINT) { + hash = (0, _util.stringToBytes)(idArray[0]); + } else { + hash = (0, _crypto.calculateMD5)(this.stream.getByteRange(0, FINGERPRINT_FIRST_BYTES), 0, FINGERPRINT_FIRST_BYTES); + } + + const fingerprintBuf = []; + + for (let i = 0, ii = hash.length; i < ii; i++) { + const hex = hash[i].toString(16); + fingerprintBuf.push(hex.padStart(2, "0")); + } + + return (0, _util.shadow)(this, "fingerprint", fingerprintBuf.join("")); + } + + _getLinearizationPage(pageIndex) { + const { + catalog, + linearization + } = this; + + const ref = _primitives.Ref.get(linearization.objectNumberFirst, 0); + + return this.xref.fetchAsync(ref).then(obj => { + if ((0, _primitives.isDict)(obj, "Page") || (0, _primitives.isDict)(obj) && !obj.has("Type") && obj.has("Contents")) { + if (ref && !catalog.pageKidsCountCache.has(ref)) { + catalog.pageKidsCountCache.put(ref, 1); } - throw new _util.FormatError('The Linearization dictionary doesn\'t point ' + 'to a valid Page dictionary.'); - })["catch"](function (reason) { - (0, _util.info)(reason); - return catalog.getPageDict(pageIndex); + return [obj, ref]; + } + + throw new _util.FormatError("The Linearization dictionary doesn't point " + "to a valid Page dictionary."); + }).catch(reason => { + (0, _util.info)(reason); + return catalog.getPageDict(pageIndex); + }); + } + + getPage(pageIndex) { + if (this._pagePromises[pageIndex] !== undefined) { + return this._pagePromises[pageIndex]; + } + + const { + catalog, + linearization + } = this; + const promise = linearization && linearization.pageFirst === pageIndex ? this._getLinearizationPage(pageIndex) : catalog.getPageDict(pageIndex); + return this._pagePromises[pageIndex] = promise.then(([pageDict, ref]) => { + return new Page({ + pdfManager: this.pdfManager, + xref: this.xref, + pageIndex, + pageDict, + ref, + globalIdFactory: this._globalIdFactory, + fontCache: catalog.fontCache, + builtInCMapCache: catalog.builtInCMapCache, + globalImageCache: catalog.globalImageCache }); - } - }, { - key: "getPage", - value: function getPage(pageIndex) { - var _this5 = this; + }); + } - if (this._pagePromises[pageIndex] !== undefined) { - return this._pagePromises[pageIndex]; + checkFirstPage() { + return this.getPage(0).catch(async reason => { + if (reason instanceof _core_utils.XRefEntryException) { + this._pagePromises.length = 0; + await this.cleanup(); + throw new _core_utils.XRefParseException(); } + }); + } - var catalog = this.catalog, - linearization = this.linearization; - var promise = linearization && linearization.pageFirst === pageIndex ? this._getLinearizationPage(pageIndex) : catalog.getPageDict(pageIndex); - return this._pagePromises[pageIndex] = promise.then(function (_ref10) { - var _ref11 = _slicedToArray(_ref10, 2), - pageDict = _ref11[0], - ref = _ref11[1]; + fontFallback(id, handler) { + return this.catalog.fontFallback(id, handler); + } - return new Page({ - pdfManager: _this5.pdfManager, - xref: _this5.xref, - pageIndex: pageIndex, - pageDict: pageDict, - ref: ref, - fontCache: catalog.fontCache, - builtInCMapCache: catalog.builtInCMapCache, - pdfFunctionFactory: _this5.pdfFunctionFactory - }); - }); - } - }, { - key: "checkFirstPage", - value: function checkFirstPage() { - var _this6 = this; + async cleanup(manuallyTriggered = false) { + return this.catalog ? this.catalog.cleanup(manuallyTriggered) : (0, _primitives.clearPrimitiveCaches)(); + } - return this.getPage(0)["catch"](function (reason) { - if (reason instanceof _core_utils.XRefEntryException) { - _this6._pagePromises.length = 0; - - _this6.cleanup(); - - throw new _core_utils.XRefParseException(); - } - }); - } - }, { - key: "fontFallback", - value: function fontFallback(id, handler) { - return this.catalog.fontFallback(id, handler); - } - }, { - key: "cleanup", - value: function cleanup() { - return this.catalog.cleanup(); - } - }, { - key: "linearization", - get: function get() { - var linearization = null; - - try { - linearization = _parser.Linearization.create(this.stream); - } catch (err) { - if (err instanceof _core_utils.MissingDataException) { - throw err; - } - - (0, _util.info)(err); - } - - return (0, _util.shadow)(this, 'linearization', linearization); - } - }, { - key: "startXRef", - get: function get() { - var stream = this.stream; - var startXRef = 0; - - if (this.linearization) { - stream.reset(); - - if (find(stream, 'endobj', 1024)) { - startXRef = stream.pos + 6; - } - } else { - var step = 1024; - var startXRefLength = 'startxref'.length; - var found = false, - pos = stream.end; - - while (!found && pos > 0) { - pos -= step - startXRefLength; - - 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 ((0, _util.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 (0, _util.shadow)(this, 'startXRef', startXRef); - } - }, { - key: "numPages", - get: function get() { - var linearization = this.linearization; - var num = linearization ? linearization.numPages : this.catalog.numPages; - return (0, _util.shadow)(this, 'numPages', num); - } - }, { - key: "documentInfo", - get: function get() { - var DocumentInfoValidators = { - Title: _util.isString, - Author: _util.isString, - Subject: _util.isString, - Keywords: _util.isString, - Creator: _util.isString, - Producer: _util.isString, - CreationDate: _util.isString, - ModDate: _util.isString, - Trapped: _primitives.isName - }; - var docInfo = { - PDFFormatVersion: this.pdfFormatVersion, - IsLinearized: !!this.linearization, - IsAcroFormPresent: !!this.acroForm, - IsXFAPresent: !!this.xfa, - IsCollectionPresent: !!this.collection - }; - var infoDict; - - try { - infoDict = this.xref.trailer.get('Info'); - } catch (err) { - if (err instanceof _core_utils.MissingDataException) { - throw err; - } - - (0, _util.info)('The document information dictionary is invalid.'); - } - - if ((0, _primitives.isDict)(infoDict)) { - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; - - try { - for (var _iterator4 = infoDict.getKeys()[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var key = _step4.value; - var value = infoDict.get(key); - - if (DocumentInfoValidators[key]) { - if (DocumentInfoValidators[key](value)) { - docInfo[key] = typeof value !== 'string' ? value : (0, _util.stringToPDFString)(value); - } else { - (0, _util.info)("Bad value in document info for \"".concat(key, "\".")); - } - } else if (typeof key === 'string') { - var customValue = void 0; - - if ((0, _util.isString)(value)) { - customValue = (0, _util.stringToPDFString)(value); - } else if ((0, _primitives.isName)(value) || (0, _util.isNum)(value) || (0, _util.isBool)(value)) { - customValue = value; - } else { - (0, _util.info)("Unsupported value in document info for (custom) \"".concat(key, "\".")); - continue; - } - - if (!docInfo['Custom']) { - docInfo['Custom'] = Object.create(null); - } - - docInfo['Custom'][key] = customValue; - } - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) { - _iterator4["return"](); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - } - - return (0, _util.shadow)(this, 'documentInfo', docInfo); - } - }, { - key: "fingerprint", - get: function get() { - var hash; - var idArray = this.xref.trailer.get('ID'); - - if (Array.isArray(idArray) && idArray[0] && (0, _util.isString)(idArray[0]) && idArray[0] !== EMPTY_FINGERPRINT) { - hash = (0, _util.stringToBytes)(idArray[0]); - } else { - if (this.stream.ensureRange) { - this.stream.ensureRange(0, Math.min(FINGERPRINT_FIRST_BYTES, this.stream.end)); - } - - hash = (0, _crypto.calculateMD5)(this.stream.bytes.subarray(0, FINGERPRINT_FIRST_BYTES), 0, FINGERPRINT_FIRST_BYTES); - } - - var fingerprint = ''; - - for (var i = 0, ii = hash.length; i < ii; i++) { - var hex = hash[i].toString(16); - fingerprint += hex.length === 1 ? '0' + hex : hex; - } - - return (0, _util.shadow)(this, 'fingerprint', fingerprint); - } - }]); - - return PDFDocument; -}(); +} exports.PDFDocument = PDFDocument; /***/ }), -/* 156 */ +/* 10 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -13334,1200 +3764,1322 @@ Object.defineProperty(exports, "__esModule", { }); exports.FileSpec = exports.XRef = exports.ObjectLoader = exports.Catalog = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(2)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(5); +var _primitives = __w_pdfjs_require__(5); -var _primitives = __w_pdfjs_require__(151); +var _parser = __w_pdfjs_require__(11); -var _parser = __w_pdfjs_require__(157); +var _core_utils = __w_pdfjs_require__(8); -var _core_utils = __w_pdfjs_require__(154); +var _crypto = __w_pdfjs_require__(22); -var _chunked_stream = __w_pdfjs_require__(153); +var _colorspace = __w_pdfjs_require__(23); -var _crypto = __w_pdfjs_require__(168); - -var _colorspace = __w_pdfjs_require__(169); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _image_utils = __w_pdfjs_require__(24); function fetchDestination(dest) { - return (0, _primitives.isDict)(dest) ? dest.get('D') : dest; + return (0, _primitives.isDict)(dest) ? dest.get("D") : dest; } -var Catalog = -/*#__PURE__*/ -function () { - function Catalog(pdfManager, xref) { - _classCallCheck(this, Catalog); - +class Catalog { + constructor(pdfManager, xref) { this.pdfManager = pdfManager; this.xref = xref; - this.catDict = xref.getCatalogObj(); + this._catDict = xref.getCatalogObj(); - if (!(0, _primitives.isDict)(this.catDict)) { - throw new _util.FormatError('Catalog object is not a dictionary.'); + if (!(0, _primitives.isDict)(this._catDict)) { + throw new _util.FormatError("Catalog object is not a dictionary."); } this.fontCache = new _primitives.RefSetCache(); this.builtInCMapCache = new Map(); + this.globalImageCache = new _image_utils.GlobalImageCache(); this.pageKidsCountCache = new _primitives.RefSetCache(); } - _createClass(Catalog, [{ - key: "_readDocumentOutline", - value: function _readDocumentOutline() { - var obj = this.catDict.get('Outlines'); + get version() { + const version = this._catDict.get("Version"); - if (!(0, _primitives.isDict)(obj)) { - return null; + if (!(0, _primitives.isName)(version)) { + return (0, _util.shadow)(this, "version", null); + } + + return (0, _util.shadow)(this, "version", version.name); + } + + get collection() { + let collection = null; + + try { + const obj = this._catDict.get("Collection"); + + if ((0, _primitives.isDict)(obj) && obj.size > 0) { + collection = obj; + } + } catch (ex) { + if (ex instanceof _core_utils.MissingDataException) { + throw ex; } - obj = obj.getRaw('First'); + (0, _util.info)("Cannot fetch Collection entry; assuming no collection is present."); + } - if (!(0, _primitives.isRef)(obj)) { - return null; + return (0, _util.shadow)(this, "collection", collection); + } + + get acroForm() { + let acroForm = null; + + try { + const obj = this._catDict.get("AcroForm"); + + if ((0, _primitives.isDict)(obj) && obj.size > 0) { + acroForm = obj; + } + } catch (ex) { + if (ex instanceof _core_utils.MissingDataException) { + throw ex; } - var root = { - items: [] - }; - var queue = [{ - obj: obj, - parent: root - }]; - var processed = new _primitives.RefSet(); - processed.put(obj); - var xref = this.xref, + (0, _util.info)("Cannot fetch AcroForm entry; assuming no forms are present."); + } + + return (0, _util.shadow)(this, "acroForm", acroForm); + } + + get metadata() { + const streamRef = this._catDict.getRaw("Metadata"); + + if (!(0, _primitives.isRef)(streamRef)) { + return (0, _util.shadow)(this, "metadata", null); + } + + const suppressEncryption = !(this.xref.encrypt && this.xref.encrypt.encryptMetadata); + const stream = this.xref.fetch(streamRef, suppressEncryption); + let metadata; + + if (stream && (0, _primitives.isDict)(stream.dict)) { + const type = stream.dict.get("Type"); + const subtype = stream.dict.get("Subtype"); + + if ((0, _primitives.isName)(type, "Metadata") && (0, _primitives.isName)(subtype, "XML")) { + try { + metadata = (0, _util.stringToUTF8String)((0, _util.bytesToString)(stream.getBytes())); + } catch (e) { + if (e instanceof _core_utils.MissingDataException) { + throw e; + } + + (0, _util.info)("Skipping invalid metadata."); + } + } + } + + return (0, _util.shadow)(this, "metadata", metadata); + } + + get toplevelPagesDict() { + const pagesObj = this._catDict.get("Pages"); + + if (!(0, _primitives.isDict)(pagesObj)) { + throw new _util.FormatError("Invalid top-level pages dictionary."); + } + + return (0, _util.shadow)(this, "toplevelPagesDict", pagesObj); + } + + get documentOutline() { + let obj = null; + + try { + obj = this._readDocumentOutline(); + } catch (ex) { + if (ex instanceof _core_utils.MissingDataException) { + throw ex; + } + + (0, _util.warn)("Unable to read document outline."); + } + + return (0, _util.shadow)(this, "documentOutline", obj); + } + + _readDocumentOutline() { + let obj = this._catDict.get("Outlines"); + + if (!(0, _primitives.isDict)(obj)) { + return null; + } + + obj = obj.getRaw("First"); + + if (!(0, _primitives.isRef)(obj)) { + return null; + } + + const root = { + items: [] + }; + const queue = [{ + obj, + parent: root + }]; + const processed = new _primitives.RefSet(); + processed.put(obj); + const xref = this.xref, blackColor = new Uint8ClampedArray(3); - while (queue.length > 0) { - var i = queue.shift(); - var outlineDict = xref.fetchIfRef(i.obj); + while (queue.length > 0) { + const i = queue.shift(); + const outlineDict = xref.fetchIfRef(i.obj); - if (outlineDict === null) { + if (outlineDict === null) { + continue; + } + + if (!outlineDict.has("Title")) { + throw new _util.FormatError("Invalid outline item encountered."); + } + + const data = { + url: null, + dest: null + }; + Catalog.parseDestDictionary({ + destDict: outlineDict, + resultObj: data, + docBaseUrl: this.pdfManager.docBaseUrl + }); + const title = outlineDict.get("Title"); + const flags = outlineDict.get("F") || 0; + const color = outlineDict.getArray("C"); + const count = outlineDict.get("Count"); + let rgbColor = blackColor; + + if (Array.isArray(color) && color.length === 3 && (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)) { + rgbColor = _colorspace.ColorSpace.singletons.rgb.getRgb(color, 0); + } + + const outlineItem = { + dest: data.dest, + url: data.url, + unsafeUrl: data.unsafeUrl, + newWindow: data.newWindow, + title: (0, _util.stringToPDFString)(title), + color: rgbColor, + count: Number.isInteger(count) ? count : undefined, + bold: !!(flags & 2), + italic: !!(flags & 1), + items: [] + }; + i.parent.items.push(outlineItem); + obj = outlineDict.getRaw("First"); + + if ((0, _primitives.isRef)(obj) && !processed.has(obj)) { + queue.push({ + obj, + parent: outlineItem + }); + processed.put(obj); + } + + obj = outlineDict.getRaw("Next"); + + if ((0, _primitives.isRef)(obj) && !processed.has(obj)) { + queue.push({ + obj, + parent: i.parent + }); + processed.put(obj); + } + } + + return root.items.length > 0 ? root.items : null; + } + + get permissions() { + let permissions = null; + + try { + permissions = this._readPermissions(); + } catch (ex) { + if (ex instanceof _core_utils.MissingDataException) { + throw ex; + } + + (0, _util.warn)("Unable to read permissions."); + } + + return (0, _util.shadow)(this, "permissions", permissions); + } + + _readPermissions() { + const encrypt = this.xref.trailer.get("Encrypt"); + + if (!(0, _primitives.isDict)(encrypt)) { + return null; + } + + let flags = encrypt.get("P"); + + if (!(0, _util.isNum)(flags)) { + return null; + } + + flags += 2 ** 32; + const permissions = []; + + for (const key in _util.PermissionFlag) { + const value = _util.PermissionFlag[key]; + + if (flags & value) { + permissions.push(value); + } + } + + return permissions; + } + + get optionalContentConfig() { + let config = null; + + try { + const properties = this._catDict.get("OCProperties"); + + if (!properties) { + return (0, _util.shadow)(this, "optionalContentConfig", null); + } + + const defaultConfig = properties.get("D"); + + if (!defaultConfig) { + return (0, _util.shadow)(this, "optionalContentConfig", null); + } + + const groupsData = properties.get("OCGs"); + + if (!Array.isArray(groupsData)) { + return (0, _util.shadow)(this, "optionalContentConfig", null); + } + + const groups = []; + const groupRefs = []; + + for (const groupRef of groupsData) { + if (!(0, _primitives.isRef)(groupRef)) { continue; } - if (!outlineDict.has('Title')) { - throw new _util.FormatError('Invalid outline item encountered.'); - } - - 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'); - var count = outlineDict.get('Count'); - var rgbColor = blackColor; - - if (Array.isArray(color) && color.length === 3 && (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)) { - rgbColor = _colorspace.ColorSpace.singletons.rgb.getRgb(color, 0); - } - - var outlineItem = { - dest: data.dest, - url: data.url, - unsafeUrl: data.unsafeUrl, - newWindow: data.newWindow, - title: (0, _util.stringToPDFString)(title), - color: rgbColor, - count: Number.isInteger(count) ? count : undefined, - bold: !!(flags & 2), - italic: !!(flags & 1), - items: [] - }; - i.parent.items.push(outlineItem); - obj = outlineDict.getRaw('First'); - - if ((0, _primitives.isRef)(obj) && !processed.has(obj)) { - queue.push({ - obj: obj, - parent: outlineItem - }); - processed.put(obj); - } - - obj = outlineDict.getRaw('Next'); - - if ((0, _primitives.isRef)(obj) && !processed.has(obj)) { - queue.push({ - obj: obj, - parent: i.parent - }); - processed.put(obj); - } - } - - return root.items.length > 0 ? root.items : null; - } - }, { - key: "_readPermissions", - value: function _readPermissions() { - var encrypt = this.xref.trailer.get('Encrypt'); - - if (!(0, _primitives.isDict)(encrypt)) { - return null; - } - - var flags = encrypt.get('P'); - - if (!(0, _util.isNum)(flags)) { - return null; - } - - flags += Math.pow(2, 32); - var permissions = []; - - for (var key in _util.PermissionFlag) { - var value = _util.PermissionFlag[key]; - - if (flags & value) { - permissions.push(value); - } - } - - return permissions; - } - }, { - key: "getDestination", - value: function getDestination(destinationId) { - var obj = this._readDests(); - - if (obj instanceof NameTree || obj instanceof _primitives.Dict) { - return fetchDestination(obj.get(destinationId) || null); - } - - return null; - } - }, { - key: "_readDests", - value: function _readDests() { - var obj = this.catDict.get('Names'); - - if (obj && obj.has('Dests')) { - return new NameTree(obj.getRaw('Dests'), this.xref); - } else if (this.catDict.has('Dests')) { - return this.catDict.get('Dests'); - } - - return undefined; - } - }, { - key: "_readPageLabels", - value: function _readPageLabels() { - var obj = this.catDict.getRaw('PageLabels'); - - if (!obj) { - return null; - } - - var pageLabels = new Array(this.numPages); - var style = null, - 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]; - - if (!(0, _primitives.isDict)(labelDict)) { - throw new _util.FormatError('PageLabel is not a dictionary.'); - } - - if (labelDict.has('Type') && !(0, _primitives.isName)(labelDict.get('Type'), 'PageLabel')) { - throw new _util.FormatError('Invalid type in PageLabel dictionary.'); - } - - if (labelDict.has('S')) { - var s = labelDict.get('S'); - - if (!(0, _primitives.isName)(s)) { - throw new _util.FormatError('Invalid style in PageLabel dictionary.'); - } - - style = s.name; - } else { - style = null; - } - - if (labelDict.has('P')) { - var p = labelDict.get('P'); - - if (!(0, _util.isString)(p)) { - throw new _util.FormatError('Invalid prefix in PageLabel dictionary.'); - } - - prefix = (0, _util.stringToPDFString)(p); - } else { - prefix = ''; - } - - if (labelDict.has('St')) { - var st = labelDict.get('St'); - - if (!(Number.isInteger(st) && st >= 1)) { - throw new _util.FormatError('Invalid start in PageLabel dictionary.'); - } - - currentIndex = st; - } else { - currentIndex = 1; - } - } - - switch (style) { - case 'D': - currentLabel = currentIndex; - break; - - case 'R': - case 'r': - currentLabel = (0, _core_utils.toRomanNumerals)(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: - if (style) { - throw new _util.FormatError("Invalid style \"".concat(style, "\" in PageLabel dictionary.")); - } - - currentLabel = ''; - } - - pageLabels[i] = prefix + currentLabel; - currentIndex++; - } - - return pageLabels; - } - }, { - key: "fontFallback", - value: function fontFallback(id, handler) { - var promises = []; - this.fontCache.forEach(function (promise) { - promises.push(promise); - }); - return Promise.all(promises).then(function (translatedFonts) { - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = translatedFonts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var translatedFont = _step.value; - - if (translatedFont.loadedName === id) { - translatedFont.fallback(handler); - return; - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - }); - } - }, { - key: "cleanup", - value: function cleanup() { - var _this = this; - - (0, _primitives.clearPrimitiveCaches)(); - this.pageKidsCountCache.clear(); - 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.clear(); - }); - } - }, { - key: "getPageDict", - value: function getPageDict(pageIndex) { - var capability = (0, _util.createPromiseCapability)(); - var nodesToVisit = [this.catDict.getRaw('Pages')]; - var xref = this.xref, - pageKidsCountCache = this.pageKidsCountCache; - var count, - currentPageIndex = 0; - - function next() { - var _loop = function _loop() { - var currentNode = nodesToVisit.pop(); - - if ((0, _primitives.isRef)(currentNode)) { - count = pageKidsCountCache.get(currentNode); - - if (count > 0 && currentPageIndex + count < pageIndex) { - currentPageIndex += count; - return "continue"; - } - - xref.fetchAsync(currentNode).then(function (obj) { - if ((0, _primitives.isDict)(obj, 'Page') || (0, _primitives.isDict)(obj) && !obj.has('Kids')) { - if (pageIndex === currentPageIndex) { - if (currentNode && !pageKidsCountCache.has(currentNode)) { - pageKidsCountCache.put(currentNode, 1); - } - - capability.resolve([obj, currentNode]); - } else { - currentPageIndex++; - next(); - } - - return; - } - - nodesToVisit.push(obj); - next(); - }, capability.reject); - return { - v: void 0 - }; - } - - if (!(0, _primitives.isDict)(currentNode)) { - capability.reject(new _util.FormatError('Page dictionary kid reference points to wrong type of object.')); - return { - v: void 0 - }; - } - - count = currentNode.get('Count'); - - if (Number.isInteger(count) && count >= 0) { - var objId = currentNode.objId; - - if (objId && !pageKidsCountCache.has(objId)) { - pageKidsCountCache.put(objId, count); - } - - if (currentPageIndex + count <= pageIndex) { - currentPageIndex += count; - return "continue"; - } - } - - var kids = currentNode.get('Kids'); - - if (!Array.isArray(kids)) { - if ((0, _primitives.isName)(currentNode.get('Type'), 'Page') || !currentNode.has('Type') && currentNode.has('Contents')) { - if (currentPageIndex === pageIndex) { - capability.resolve([currentNode, null]); - return { - v: void 0 - }; - } - - currentPageIndex++; - return "continue"; - } - - capability.reject(new _util.FormatError('Page dictionary kids object is not an array.')); - return { - v: void 0 - }; - } - - for (var last = kids.length - 1; last >= 0; last--) { - nodesToVisit.push(kids[last]); - } - }; - - while (nodesToVisit.length) { - var _ret = _loop(); - - switch (_ret) { - case "continue": - continue; - - default: - if (_typeof(_ret) === "object") return _ret.v; - } - } - - capability.reject(new Error("Page index ".concat(pageIndex, " not found."))); - } - - next(); - return capability.promise; - } - }, { - key: "getPageIndex", - value: function getPageIndex(pageRef) { - var xref = this.xref; - - function pagesBeforeRef(kidRef) { - var total = 0, - parentRef; - return xref.fetchAsync(kidRef).then(function (node) { - if ((0, _primitives.isRefsEqual)(kidRef, pageRef) && !(0, _primitives.isDict)(node, 'Page') && !((0, _primitives.isDict)(node) && !node.has('Type') && node.has('Contents'))) { - throw new _util.FormatError('The reference does not point to a /Page dictionary.'); - } - - if (!node) { - return null; - } - - if (!(0, _primitives.isDict)(node)) { - throw new _util.FormatError('Node must be a dictionary.'); - } - - parentRef = node.getRaw('Parent'); - return node.getAsync('Parent'); - }).then(function (parent) { - if (!parent) { - return null; - } - - if (!(0, _primitives.isDict)(parent)) { - throw new _util.FormatError('Parent must be a dictionary.'); - } - - return parent.getAsync('Kids'); - }).then(function (kids) { - if (!kids) { - return null; - } - - var kidPromises = []; - var found = false; - - for (var i = 0, ii = kids.length; i < ii; i++) { - var kid = kids[i]; - - if (!(0, _primitives.isRef)(kid)) { - throw new _util.FormatError('Kid must be a reference.'); - } - - if ((0, _primitives.isRefsEqual)(kid, kidRef)) { - found = true; - break; - } - - kidPromises.push(xref.fetchAsync(kid).then(function (kid) { - if (!(0, _primitives.isDict)(kid)) { - throw new _util.FormatError('Kid node must be a dictionary.'); - } - - if (kid.has('Count')) { - total += kid.get('Count'); - } else { - total++; - } - })); - } - - if (!found) { - throw new _util.FormatError('Kid reference not found in parent\'s kids.'); - } - - return Promise.all(kidPromises).then(function () { - return [total, parentRef]; - }); + groupRefs.push(groupRef); + const group = this.xref.fetchIfRef(groupRef); + groups.push({ + id: groupRef.toString(), + name: (0, _util.isString)(group.get("Name")) ? (0, _util.stringToPDFString)(group.get("Name")) : null, + intent: (0, _util.isString)(group.get("Intent")) ? (0, _util.stringToPDFString)(group.get("Intent")) : null }); } - var total = 0; + config = this._readOptionalContentConfig(defaultConfig, groupRefs); + config.groups = groups; + } catch (ex) { + if (ex instanceof _core_utils.MissingDataException) { + throw ex; + } - function next(ref) { - return pagesBeforeRef(ref).then(function (args) { - if (!args) { - return total; + (0, _util.warn)(`Unable to read optional content config: ${ex}`); + } + + return (0, _util.shadow)(this, "optionalContentConfig", config); + } + + _readOptionalContentConfig(config, contentGroupRefs) { + function parseOnOff(refs) { + const onParsed = []; + + if (Array.isArray(refs)) { + for (const value of refs) { + if (!(0, _primitives.isRef)(value)) { + continue; } - var _args = _slicedToArray(args, 2), - count = _args[0], - parentRef = _args[1]; + if (contentGroupRefs.includes(value)) { + onParsed.push(value.toString()); + } + } + } - total += count; - return next(parentRef); + return onParsed; + } + + function parseOrder(refs, nestedLevels = 0) { + if (!Array.isArray(refs)) { + return null; + } + + const order = []; + + for (const value of refs) { + if ((0, _primitives.isRef)(value) && contentGroupRefs.includes(value)) { + parsedOrderRefs.put(value); + order.push(value.toString()); + continue; + } + + const nestedOrder = parseNestedOrder(value, nestedLevels); + + if (nestedOrder) { + order.push(nestedOrder); + } + } + + if (nestedLevels > 0) { + return order; + } + + const hiddenGroups = []; + + for (const groupRef of contentGroupRefs) { + if (parsedOrderRefs.has(groupRef)) { + continue; + } + + hiddenGroups.push(groupRef.toString()); + } + + if (hiddenGroups.length) { + order.push({ + name: null, + order: hiddenGroups }); } - return next(pageRef); + return order; } - }, { - key: "metadata", - get: function get() { - var streamRef = this.catDict.getRaw('Metadata'); - if (!(0, _primitives.isRef)(streamRef)) { - return (0, _util.shadow)(this, 'metadata', null); + function parseNestedOrder(ref, nestedLevels) { + if (++nestedLevels > MAX_NESTED_LEVELS) { + (0, _util.warn)("parseNestedOrder - reached MAX_NESTED_LEVELS."); + return null; } - var suppressEncryption = !(this.xref.encrypt && this.xref.encrypt.encryptMetadata); - var stream = this.xref.fetch(streamRef, suppressEncryption); - var metadata; + const value = xref.fetchIfRef(ref); - if (stream && (0, _primitives.isDict)(stream.dict)) { - var type = stream.dict.get('Type'); - var subtype = stream.dict.get('Subtype'); - - if ((0, _primitives.isName)(type, 'Metadata') && (0, _primitives.isName)(subtype, 'XML')) { - try { - metadata = (0, _util.stringToUTF8String)((0, _util.bytesToString)(stream.getBytes())); - } catch (e) { - if (e instanceof _core_utils.MissingDataException) { - throw e; - } - - (0, _util.info)('Skipping invalid metadata.'); - } - } + if (!Array.isArray(value)) { + return null; } - return (0, _util.shadow)(this, 'metadata', metadata); - } - }, { - key: "toplevelPagesDict", - get: function get() { - var pagesObj = this.catDict.get('Pages'); + const nestedName = xref.fetchIfRef(value[0]); - if (!(0, _primitives.isDict)(pagesObj)) { - throw new _util.FormatError('Invalid top-level pages dictionary.'); + if (typeof nestedName !== "string") { + return null; } - return (0, _util.shadow)(this, 'toplevelPagesDict', pagesObj); - } - }, { - key: "documentOutline", - get: function get() { - var obj = null; + const nestedOrder = parseOrder(value.slice(1), nestedLevels); - try { - obj = this._readDocumentOutline(); - } catch (ex) { - if (ex instanceof _core_utils.MissingDataException) { - throw ex; - } - - (0, _util.warn)('Unable to read document outline.'); + if (!nestedOrder || !nestedOrder.length) { + return null; } - return (0, _util.shadow)(this, 'documentOutline', obj); + return { + name: (0, _util.stringToPDFString)(nestedName), + order: nestedOrder + }; } - }, { - key: "permissions", - get: function get() { - var permissions = null; - try { - permissions = this._readPermissions(); - } catch (ex) { - if (ex instanceof _core_utils.MissingDataException) { - throw ex; - } + const xref = this.xref, + parsedOrderRefs = new _primitives.RefSet(), + MAX_NESTED_LEVELS = 10; + return { + name: (0, _util.isString)(config.get("Name")) ? (0, _util.stringToPDFString)(config.get("Name")) : null, + creator: (0, _util.isString)(config.get("Creator")) ? (0, _util.stringToPDFString)(config.get("Creator")) : null, + baseState: (0, _primitives.isName)(config.get("BaseState")) ? config.get("BaseState").name : null, + on: parseOnOff(config.get("ON")), + off: parseOnOff(config.get("OFF")), + order: parseOrder(config.get("Order")), + groups: null + }; + } - (0, _util.warn)('Unable to read permissions.'); - } + get numPages() { + const obj = this.toplevelPagesDict.get("Count"); - return (0, _util.shadow)(this, 'permissions', permissions); + if (!Number.isInteger(obj)) { + throw new _util.FormatError("Page count in top-level pages dictionary is not an integer."); } - }, { - key: "numPages", - get: function get() { - var obj = this.toplevelPagesDict.get('Count'); - if (!Number.isInteger(obj)) { - throw new _util.FormatError('Page count in top-level pages dictionary is not an integer.'); - } + return (0, _util.shadow)(this, "numPages", obj); + } - return (0, _util.shadow)(this, 'numPages', obj); - } - }, { - key: "destinations", - get: function get() { - var obj = this._readDests(), + get destinations() { + const obj = this._readDests(), dests = Object.create(null); - if (obj instanceof NameTree) { - var names = obj.getAll(); + if (obj instanceof NameTree) { + const names = obj.getAll(); - for (var name in names) { - dests[name] = fetchDestination(names[name]); - } - } else if (obj instanceof _primitives.Dict) { - obj.forEach(function (key, value) { - if (value) { - dests[key] = fetchDestination(value); - } - }); + for (const name in names) { + dests[name] = fetchDestination(names[name]); } - - return (0, _util.shadow)(this, 'destinations', dests); + } else if (obj instanceof _primitives.Dict) { + obj.forEach(function (key, value) { + if (value) { + dests[key] = fetchDestination(value); + } + }); } - }, { - key: "pageLabels", - get: function get() { - var obj = null; - try { - obj = this._readPageLabels(); - } catch (ex) { - if (ex instanceof _core_utils.MissingDataException) { - throw ex; - } + return (0, _util.shadow)(this, "destinations", dests); + } - (0, _util.warn)('Unable to read page labels.'); - } + getDestination(destinationId) { + const obj = this._readDests(); - return (0, _util.shadow)(this, 'pageLabels', obj); + if (obj instanceof NameTree || obj instanceof _primitives.Dict) { + return fetchDestination(obj.get(destinationId) || null); } - }, { - key: "pageLayout", - get: function get() { - var obj = this.catDict.get('PageLayout'); - var pageLayout = ''; - if ((0, _primitives.isName)(obj)) { - switch (obj.name) { - case 'SinglePage': - case 'OneColumn': - case 'TwoColumnLeft': - case 'TwoColumnRight': - case 'TwoPageLeft': - case 'TwoPageRight': - pageLayout = obj.name; - } - } + return null; + } - return (0, _util.shadow)(this, 'pageLayout', pageLayout); + _readDests() { + const obj = this._catDict.get("Names"); + + if (obj && obj.has("Dests")) { + return new NameTree(obj.getRaw("Dests"), this.xref); + } else if (this._catDict.has("Dests")) { + return this._catDict.get("Dests"); } - }, { - key: "pageMode", - get: function get() { - var obj = this.catDict.get('PageMode'); - var pageMode = 'UseNone'; - if ((0, _primitives.isName)(obj)) { - switch (obj.name) { - case 'UseNone': - case 'UseOutlines': - case 'UseThumbs': - case 'FullScreen': - case 'UseOC': - case 'UseAttachments': - pageMode = obj.name; - } + return undefined; + } + + get pageLabels() { + let obj = null; + + try { + obj = this._readPageLabels(); + } catch (ex) { + if (ex instanceof _core_utils.MissingDataException) { + throw ex; } - return (0, _util.shadow)(this, 'pageMode', pageMode); + (0, _util.warn)("Unable to read page labels."); } - }, { - key: "viewerPreferences", - get: function get() { - var _this2 = this; - var ViewerPreferencesValidators = { - HideToolbar: _util.isBool, - HideMenubar: _util.isBool, - HideWindowUI: _util.isBool, - FitWindow: _util.isBool, - CenterWindow: _util.isBool, - DisplayDocTitle: _util.isBool, - NonFullScreenPageMode: _primitives.isName, - Direction: _primitives.isName, - ViewArea: _primitives.isName, - ViewClip: _primitives.isName, - PrintArea: _primitives.isName, - PrintClip: _primitives.isName, - PrintScaling: _primitives.isName, - Duplex: _primitives.isName, - PickTrayByPDFSize: _util.isBool, - PrintPageRange: Array.isArray, - NumCopies: Number.isInteger - }; - var obj = this.catDict.get('ViewerPreferences'); - var prefs = Object.create(null); + return (0, _util.shadow)(this, "pageLabels", obj); + } - if ((0, _primitives.isDict)(obj)) { - for (var key in ViewerPreferencesValidators) { - if (!obj.has(key)) { - continue; - } + _readPageLabels() { + const obj = this._catDict.getRaw("PageLabels"); - var value = obj.get(key); - - if (!ViewerPreferencesValidators[key](value)) { - (0, _util.info)("Bad value in ViewerPreferences for \"".concat(key, "\".")); - continue; - } - - var prefValue = void 0; - - switch (key) { - case 'NonFullScreenPageMode': - switch (value.name) { - case 'UseNone': - case 'UseOutlines': - case 'UseThumbs': - case 'UseOC': - prefValue = value.name; - break; - - default: - prefValue = 'UseNone'; - } - - break; - - case 'Direction': - switch (value.name) { - case 'L2R': - case 'R2L': - prefValue = value.name; - break; - - default: - prefValue = 'L2R'; - } - - break; - - case 'ViewArea': - case 'ViewClip': - case 'PrintArea': - case 'PrintClip': - switch (value.name) { - case 'MediaBox': - case 'CropBox': - case 'BleedBox': - case 'TrimBox': - case 'ArtBox': - prefValue = value.name; - break; - - default: - prefValue = 'CropBox'; - } - - break; - - case 'PrintScaling': - switch (value.name) { - case 'None': - case 'AppDefault': - prefValue = value.name; - break; - - default: - prefValue = 'AppDefault'; - } - - break; - - case 'Duplex': - switch (value.name) { - case 'Simplex': - case 'DuplexFlipShortEdge': - case 'DuplexFlipLongEdge': - prefValue = value.name; - break; - - default: - prefValue = 'None'; - } - - break; - - case 'PrintPageRange': - var length = value.length; - - if (length % 2 !== 0) { - break; - } - - var isValid = value.every(function (page, i, arr) { - return Number.isInteger(page) && page > 0 && (i === 0 || page >= arr[i - 1]) && page <= _this2.numPages; - }); - - if (isValid) { - prefValue = value; - } - - break; - - case 'NumCopies': - if (value > 0) { - prefValue = value; - } - - break; - - default: - (0, _util.assert)(typeof value === 'boolean'); - prefValue = value; - } - - if (prefValue !== undefined) { - prefs[key] = prefValue; - } else { - (0, _util.info)("Bad value in ViewerPreferences for \"".concat(key, "\".")); - } - } - } - - return (0, _util.shadow)(this, 'viewerPreferences', prefs); + if (!obj) { + return null; } - }, { - key: "openActionDestination", - get: function get() { - var obj = this.catDict.get('OpenAction'); - var openActionDest = null; - if ((0, _primitives.isDict)(obj)) { - var destDict = new _primitives.Dict(this.xref); - destDict.set('A', obj); - var resultObj = { - url: null, - dest: null - }; - Catalog.parseDestDictionary({ - destDict: destDict, - resultObj: resultObj - }); + const pageLabels = new Array(this.numPages); + let style = null, + prefix = ""; + const numberTree = new NumberTree(obj, this.xref); + const nums = numberTree.getAll(); + let currentLabel = "", + currentIndex = 1; - if (Array.isArray(resultObj.dest)) { - openActionDest = resultObj.dest; + for (let i = 0, ii = this.numPages; i < ii; i++) { + if (i in nums) { + const labelDict = nums[i]; + + if (!(0, _primitives.isDict)(labelDict)) { + throw new _util.FormatError("PageLabel is not a dictionary."); } - } else if (Array.isArray(obj)) { - openActionDest = obj; - } - return (0, _util.shadow)(this, 'openActionDestination', openActionDest); - } - }, { - key: "attachments", - get: function get() { - var obj = this.catDict.get('Names'); - var attachments = null; + if (labelDict.has("Type") && !(0, _primitives.isName)(labelDict.get("Type"), "PageLabel")) { + throw new _util.FormatError("Invalid type in PageLabel dictionary."); + } - if (obj && obj.has('EmbeddedFiles')) { - var nameTree = new NameTree(obj.getRaw('EmbeddedFiles'), this.xref); - var names = nameTree.getAll(); + if (labelDict.has("S")) { + const s = labelDict.get("S"); - for (var name in names) { - var fs = new FileSpec(names[name], this.xref); - - if (!attachments) { - attachments = Object.create(null); + if (!(0, _primitives.isName)(s)) { + throw new _util.FormatError("Invalid style in PageLabel dictionary."); } - attachments[(0, _util.stringToPDFString)(name)] = fs.serializable; - } - } - - return (0, _util.shadow)(this, 'attachments', attachments); - } - }, { - key: "javaScript", - get: function get() { - var obj = this.catDict.get('Names'); - var javaScript = null; - - function appendIfJavaScriptDict(jsDict) { - var type = jsDict.get('S'); - - if (!(0, _primitives.isName)(type, 'JavaScript')) { - return; - } - - var js = jsDict.get('JS'); - - if ((0, _primitives.isStream)(js)) { - js = (0, _util.bytesToString)(js.getBytes()); - } else if (!(0, _util.isString)(js)) { - return; - } - - if (!javaScript) { - javaScript = []; - } - - javaScript.push((0, _util.stringToPDFString)(js)); - } - - if (obj && obj.has('JavaScript')) { - var nameTree = new NameTree(obj.getRaw('JavaScript'), this.xref); - var names = nameTree.getAll(); - - for (var name in names) { - var jsDict = names[name]; - - if ((0, _primitives.isDict)(jsDict)) { - appendIfJavaScriptDict(jsDict); - } - } - } - - var openActionDict = this.catDict.get('OpenAction'); - - if ((0, _primitives.isDict)(openActionDict, 'Action')) { - var actionType = openActionDict.get('S'); - - if ((0, _primitives.isName)(actionType, 'Named')) { - var action = openActionDict.get('N'); - - if ((0, _primitives.isName)(action, 'Print')) { - if (!javaScript) { - javaScript = []; - } - - javaScript.push('print({});'); - } + style = s.name; } else { - appendIfJavaScriptDict(openActionDict); + style = null; + } + + if (labelDict.has("P")) { + const p = labelDict.get("P"); + + if (!(0, _util.isString)(p)) { + throw new _util.FormatError("Invalid prefix in PageLabel dictionary."); + } + + prefix = (0, _util.stringToPDFString)(p); + } else { + prefix = ""; + } + + if (labelDict.has("St")) { + const st = labelDict.get("St"); + + if (!(Number.isInteger(st) && st >= 1)) { + throw new _util.FormatError("Invalid start in PageLabel dictionary."); + } + + currentIndex = st; + } else { + currentIndex = 1; } } - return (0, _util.shadow)(this, 'javaScript', javaScript); + switch (style) { + case "D": + currentLabel = currentIndex; + break; + + case "R": + case "r": + currentLabel = (0, _core_utils.toRomanNumerals)(currentIndex, style === "r"); + break; + + case "A": + case "a": + const LIMIT = 26; + const A_UPPER_CASE = 0x41, + A_LOWER_CASE = 0x61; + const baseCharCode = style === "a" ? A_LOWER_CASE : A_UPPER_CASE; + const letterIndex = currentIndex - 1; + const character = String.fromCharCode(baseCharCode + letterIndex % LIMIT); + const charBuf = []; + + for (let j = 0, jj = letterIndex / LIMIT | 0; j <= jj; j++) { + charBuf.push(character); + } + + currentLabel = charBuf.join(""); + break; + + default: + if (style) { + throw new _util.FormatError(`Invalid style "${style}" in PageLabel dictionary.`); + } + + currentLabel = ""; + } + + pageLabels[i] = prefix + currentLabel; + currentIndex++; } - }], [{ - key: "parseDestDictionary", - value: function parseDestDictionary(params) { - function addDefaultProtocolToUrl(url) { - return url.startsWith('www.') ? "http://".concat(url) : url; + + return pageLabels; + } + + get pageLayout() { + const obj = this._catDict.get("PageLayout"); + + let pageLayout = ""; + + if ((0, _primitives.isName)(obj)) { + switch (obj.name) { + case "SinglePage": + case "OneColumn": + case "TwoColumnLeft": + case "TwoColumnRight": + case "TwoPageLeft": + case "TwoPageRight": + pageLayout = obj.name; } + } - function tryConvertUrlEncoding(url) { - try { - return (0, _util.stringToUTF8String)(url); - } catch (e) { - return url; - } + return (0, _util.shadow)(this, "pageLayout", pageLayout); + } + + get pageMode() { + const obj = this._catDict.get("PageMode"); + + let pageMode = "UseNone"; + + if ((0, _primitives.isName)(obj)) { + switch (obj.name) { + case "UseNone": + case "UseOutlines": + case "UseThumbs": + case "FullScreen": + case "UseOC": + case "UseAttachments": + pageMode = obj.name; } + } - var destDict = params.destDict; + return (0, _util.shadow)(this, "pageMode", pageMode); + } - if (!(0, _primitives.isDict)(destDict)) { - (0, _util.warn)('parseDestDictionary: `destDict` must be a dictionary.'); - return; - } + get viewerPreferences() { + const ViewerPreferencesValidators = { + HideToolbar: _util.isBool, + HideMenubar: _util.isBool, + HideWindowUI: _util.isBool, + FitWindow: _util.isBool, + CenterWindow: _util.isBool, + DisplayDocTitle: _util.isBool, + NonFullScreenPageMode: _primitives.isName, + Direction: _primitives.isName, + ViewArea: _primitives.isName, + ViewClip: _primitives.isName, + PrintArea: _primitives.isName, + PrintClip: _primitives.isName, + PrintScaling: _primitives.isName, + Duplex: _primitives.isName, + PickTrayByPDFSize: _util.isBool, + PrintPageRange: Array.isArray, + NumCopies: Number.isInteger + }; - var resultObj = params.resultObj; + const obj = this._catDict.get("ViewerPreferences"); - if (_typeof(resultObj) !== 'object') { - (0, _util.warn)('parseDestDictionary: `resultObj` must be an object.'); - return; - } + let prefs = null; - var docBaseUrl = params.docBaseUrl || null; - var action = destDict.get('A'), - url, - dest; - - if (!(0, _primitives.isDict)(action) && destDict.has('Dest')) { - action = destDict.get('Dest'); - } - - if ((0, _primitives.isDict)(action)) { - var actionType = action.get('S'); - - if (!(0, _primitives.isName)(actionType)) { - (0, _util.warn)('parseDestDictionary: Invalid type in Action dictionary.'); - return; + if ((0, _primitives.isDict)(obj)) { + for (const key in ViewerPreferencesValidators) { + if (!obj.has(key)) { + continue; } - var actionName = actionType.name; + const value = obj.get(key); - switch (actionName) { - case 'URI': - url = action.get('URI'); + if (!ViewerPreferencesValidators[key](value)) { + (0, _util.info)(`Bad value in ViewerPreferences for "${key}".`); + continue; + } - if ((0, _primitives.isName)(url)) { - url = '/' + url.name; - } else if ((0, _util.isString)(url)) { - url = addDefaultProtocolToUrl(url); - } - - break; - - case 'GoTo': - dest = action.get('D'); - break; - - case 'Launch': - case 'GoToR': - var urlDict = action.get('F'); - - if ((0, _primitives.isDict)(urlDict)) { - url = urlDict.get('F') || null; - } else if ((0, _util.isString)(urlDict)) { - url = urlDict; - } - - var remoteDest = action.get('D'); - - if (remoteDest) { - if ((0, _primitives.isName)(remoteDest)) { - remoteDest = remoteDest.name; - } - - if ((0, _util.isString)(url)) { - var baseUrl = url.split('#')[0]; - - if ((0, _util.isString)(remoteDest)) { - url = baseUrl + '#' + remoteDest; - } else if (Array.isArray(remoteDest)) { - url = baseUrl + '#' + JSON.stringify(remoteDest); - } - } - } - - var newWindow = action.get('NewWindow'); - - if ((0, _util.isBool)(newWindow)) { - resultObj.newWindow = newWindow; - } - - break; - - case 'Named': - var namedAction = action.get('N'); - - if ((0, _primitives.isName)(namedAction)) { - resultObj.action = namedAction.name; - } - - break; - - case 'JavaScript': - var jsAction = action.get('JS'); - var js; - - if ((0, _primitives.isStream)(jsAction)) { - js = (0, _util.bytesToString)(jsAction.getBytes()); - } else if ((0, _util.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((0, _util.stringToPDFString)(js)); - - if (jsUrl && jsUrl[2]) { - url = jsUrl[2]; - - if (jsUrl[3] === 'true' && jsUrl[1] === 'app.launchURL') { - resultObj.newWindow = true; - } + let prefValue; + switch (key) { + case "NonFullScreenPageMode": + switch (value.name) { + case "UseNone": + case "UseOutlines": + case "UseThumbs": + case "UseOC": + prefValue = value.name; break; - } + + default: + prefValue = "UseNone"; } + break; + + case "Direction": + switch (value.name) { + case "L2R": + case "R2L": + prefValue = value.name; + break; + + default: + prefValue = "L2R"; + } + + break; + + case "ViewArea": + case "ViewClip": + case "PrintArea": + case "PrintClip": + switch (value.name) { + case "MediaBox": + case "CropBox": + case "BleedBox": + case "TrimBox": + case "ArtBox": + prefValue = value.name; + break; + + default: + prefValue = "CropBox"; + } + + break; + + case "PrintScaling": + switch (value.name) { + case "None": + case "AppDefault": + prefValue = value.name; + break; + + default: + prefValue = "AppDefault"; + } + + break; + + case "Duplex": + switch (value.name) { + case "Simplex": + case "DuplexFlipShortEdge": + case "DuplexFlipLongEdge": + prefValue = value.name; + break; + + default: + prefValue = "None"; + } + + break; + + case "PrintPageRange": + const length = value.length; + + if (length % 2 !== 0) { + break; + } + + const isValid = value.every((page, i, arr) => { + return Number.isInteger(page) && page > 0 && (i === 0 || page >= arr[i - 1]) && page <= this.numPages; + }); + + if (isValid) { + prefValue = value; + } + + break; + + case "NumCopies": + if (value > 0) { + prefValue = value; + } + + break; + default: - (0, _util.warn)("parseDestDictionary: unsupported action type \"".concat(actionName, "\".")); - break; - } - } else if (destDict.has('Dest')) { - dest = destDict.get('Dest'); - } + if (typeof value !== "boolean") { + throw new _util.FormatError(`viewerPreferences - expected a boolean value for: ${key}`); + } - if ((0, _util.isString)(url)) { - url = tryConvertUrlEncoding(url); - var absoluteUrl = (0, _util.createValidAbsoluteUrl)(url, docBaseUrl); - - if (absoluteUrl) { - resultObj.url = absoluteUrl.href; + prefValue = value; } - resultObj.unsafeUrl = url; - } + if (prefValue !== undefined) { + if (!prefs) { + prefs = Object.create(null); + } - if (dest) { - if ((0, _primitives.isName)(dest)) { - dest = dest.name; - } - - if ((0, _util.isString)(dest) || Array.isArray(dest)) { - resultObj.dest = dest; + prefs[key] = prefValue; + } else { + (0, _util.info)(`Bad value in ViewerPreferences for "${key}".`); } } } - }]); - return Catalog; -}(); + return (0, _util.shadow)(this, "viewerPreferences", prefs); + } + + get openAction() { + const obj = this._catDict.get("OpenAction"); + + let openAction = null; + + if ((0, _primitives.isDict)(obj)) { + const destDict = new _primitives.Dict(this.xref); + destDict.set("A", obj); + const resultObj = { + url: null, + dest: null, + action: null + }; + Catalog.parseDestDictionary({ + destDict, + resultObj + }); + + if (Array.isArray(resultObj.dest)) { + if (!openAction) { + openAction = Object.create(null); + } + + openAction.dest = resultObj.dest; + } else if (resultObj.action) { + if (!openAction) { + openAction = Object.create(null); + } + + openAction.action = resultObj.action; + } + } else if (Array.isArray(obj)) { + if (!openAction) { + openAction = Object.create(null); + } + + openAction.dest = obj; + } + + return (0, _util.shadow)(this, "openAction", openAction); + } + + get attachments() { + const obj = this._catDict.get("Names"); + + let attachments = null; + + if (obj && obj.has("EmbeddedFiles")) { + const nameTree = new NameTree(obj.getRaw("EmbeddedFiles"), this.xref); + const names = nameTree.getAll(); + + for (const name in names) { + const fs = new FileSpec(names[name], this.xref); + + if (!attachments) { + attachments = Object.create(null); + } + + attachments[(0, _util.stringToPDFString)(name)] = fs.serializable; + } + } + + return (0, _util.shadow)(this, "attachments", attachments); + } + + get javaScript() { + const obj = this._catDict.get("Names"); + + let javaScript = null; + + function appendIfJavaScriptDict(jsDict) { + const type = jsDict.get("S"); + + if (!(0, _primitives.isName)(type, "JavaScript")) { + return; + } + + let js = jsDict.get("JS"); + + if ((0, _primitives.isStream)(js)) { + js = (0, _util.bytesToString)(js.getBytes()); + } else if (!(0, _util.isString)(js)) { + return; + } + + if (!javaScript) { + javaScript = []; + } + + javaScript.push((0, _util.stringToPDFString)(js)); + } + + if (obj && obj.has("JavaScript")) { + const nameTree = new NameTree(obj.getRaw("JavaScript"), this.xref); + const names = nameTree.getAll(); + + for (const name in names) { + const jsDict = names[name]; + + if ((0, _primitives.isDict)(jsDict)) { + appendIfJavaScriptDict(jsDict); + } + } + } + + const openAction = this._catDict.get("OpenAction"); + + if ((0, _primitives.isDict)(openAction) && (0, _primitives.isName)(openAction.get("S"), "JavaScript")) { + appendIfJavaScriptDict(openAction); + } + + return (0, _util.shadow)(this, "javaScript", javaScript); + } + + fontFallback(id, handler) { + const promises = []; + this.fontCache.forEach(function (promise) { + promises.push(promise); + }); + return Promise.all(promises).then(translatedFonts => { + for (const translatedFont of translatedFonts) { + if (translatedFont.loadedName === id) { + translatedFont.fallback(handler); + return; + } + } + }); + } + + cleanup(manuallyTriggered = false) { + (0, _primitives.clearPrimitiveCaches)(); + this.globalImageCache.clear(manuallyTriggered); + this.pageKidsCountCache.clear(); + const promises = []; + this.fontCache.forEach(function (promise) { + promises.push(promise); + }); + return Promise.all(promises).then(translatedFonts => { + for (const { + dict + } of translatedFonts) { + delete dict.translated; + } + + this.fontCache.clear(); + this.builtInCMapCache.clear(); + }); + } + + getPageDict(pageIndex) { + const capability = (0, _util.createPromiseCapability)(); + const nodesToVisit = [this._catDict.getRaw("Pages")]; + const visitedNodes = new _primitives.RefSet(); + const xref = this.xref, + pageKidsCountCache = this.pageKidsCountCache; + let count, + currentPageIndex = 0; + + function next() { + while (nodesToVisit.length) { + const currentNode = nodesToVisit.pop(); + + if ((0, _primitives.isRef)(currentNode)) { + count = pageKidsCountCache.get(currentNode); + + if (count > 0 && currentPageIndex + count < pageIndex) { + currentPageIndex += count; + continue; + } + + if (visitedNodes.has(currentNode)) { + capability.reject(new _util.FormatError("Pages tree contains circular reference.")); + return; + } + + visitedNodes.put(currentNode); + xref.fetchAsync(currentNode).then(function (obj) { + if ((0, _primitives.isDict)(obj, "Page") || (0, _primitives.isDict)(obj) && !obj.has("Kids")) { + if (pageIndex === currentPageIndex) { + if (currentNode && !pageKidsCountCache.has(currentNode)) { + pageKidsCountCache.put(currentNode, 1); + } + + capability.resolve([obj, currentNode]); + } else { + currentPageIndex++; + next(); + } + + return; + } + + nodesToVisit.push(obj); + next(); + }, capability.reject); + return; + } + + if (!(0, _primitives.isDict)(currentNode)) { + capability.reject(new _util.FormatError("Page dictionary kid reference points to wrong type of object.")); + return; + } + + count = currentNode.get("Count"); + + if (Number.isInteger(count) && count >= 0) { + const objId = currentNode.objId; + + if (objId && !pageKidsCountCache.has(objId)) { + pageKidsCountCache.put(objId, count); + } + + if (currentPageIndex + count <= pageIndex) { + currentPageIndex += count; + continue; + } + } + + const kids = currentNode.get("Kids"); + + if (!Array.isArray(kids)) { + if ((0, _primitives.isName)(currentNode.get("Type"), "Page") || !currentNode.has("Type") && currentNode.has("Contents")) { + if (currentPageIndex === pageIndex) { + capability.resolve([currentNode, null]); + return; + } + + currentPageIndex++; + continue; + } + + capability.reject(new _util.FormatError("Page dictionary kids object is not an array.")); + return; + } + + for (let last = kids.length - 1; last >= 0; last--) { + nodesToVisit.push(kids[last]); + } + } + + capability.reject(new Error(`Page index ${pageIndex} not found.`)); + } + + next(); + return capability.promise; + } + + getPageIndex(pageRef) { + const xref = this.xref; + + function pagesBeforeRef(kidRef) { + let total = 0, + parentRef; + return xref.fetchAsync(kidRef).then(function (node) { + if ((0, _primitives.isRefsEqual)(kidRef, pageRef) && !(0, _primitives.isDict)(node, "Page") && !((0, _primitives.isDict)(node) && !node.has("Type") && node.has("Contents"))) { + throw new _util.FormatError("The reference does not point to a /Page dictionary."); + } + + if (!node) { + return null; + } + + if (!(0, _primitives.isDict)(node)) { + throw new _util.FormatError("Node must be a dictionary."); + } + + parentRef = node.getRaw("Parent"); + return node.getAsync("Parent"); + }).then(function (parent) { + if (!parent) { + return null; + } + + if (!(0, _primitives.isDict)(parent)) { + throw new _util.FormatError("Parent must be a dictionary."); + } + + return parent.getAsync("Kids"); + }).then(function (kids) { + if (!kids) { + return null; + } + + const kidPromises = []; + let found = false; + + for (let i = 0, ii = kids.length; i < ii; i++) { + const kid = kids[i]; + + if (!(0, _primitives.isRef)(kid)) { + throw new _util.FormatError("Kid must be a reference."); + } + + if ((0, _primitives.isRefsEqual)(kid, kidRef)) { + found = true; + break; + } + + kidPromises.push(xref.fetchAsync(kid).then(function (obj) { + if (!(0, _primitives.isDict)(obj)) { + throw new _util.FormatError("Kid node must be a dictionary."); + } + + if (obj.has("Count")) { + total += obj.get("Count"); + } else { + total++; + } + })); + } + + if (!found) { + throw new _util.FormatError("Kid reference not found in parent's kids."); + } + + return Promise.all(kidPromises).then(function () { + return [total, parentRef]; + }); + }); + } + + let total = 0; + + function next(ref) { + return pagesBeforeRef(ref).then(function (args) { + if (!args) { + return total; + } + + const [count, parentRef] = args; + total += count; + return next(parentRef); + }); + } + + return next(pageRef); + } + + static parseDestDictionary(params) { + function addDefaultProtocolToUrl(url) { + return url.startsWith("www.") ? `http://${url}` : url; + } + + function tryConvertUrlEncoding(url) { + try { + return (0, _util.stringToUTF8String)(url); + } catch (e) { + return url; + } + } + + const destDict = params.destDict; + + if (!(0, _primitives.isDict)(destDict)) { + (0, _util.warn)("parseDestDictionary: `destDict` must be a dictionary."); + return; + } + + const resultObj = params.resultObj; + + if (typeof resultObj !== "object") { + (0, _util.warn)("parseDestDictionary: `resultObj` must be an object."); + return; + } + + const docBaseUrl = params.docBaseUrl || null; + let action = destDict.get("A"), + url, + dest; + + if (!(0, _primitives.isDict)(action) && destDict.has("Dest")) { + action = destDict.get("Dest"); + } + + if ((0, _primitives.isDict)(action)) { + const actionType = action.get("S"); + + if (!(0, _primitives.isName)(actionType)) { + (0, _util.warn)("parseDestDictionary: Invalid type in Action dictionary."); + return; + } + + const actionName = actionType.name; + + switch (actionName) { + case "URI": + url = action.get("URI"); + + if ((0, _primitives.isName)(url)) { + url = "/" + url.name; + } else if ((0, _util.isString)(url)) { + url = addDefaultProtocolToUrl(url); + } + + break; + + case "GoTo": + dest = action.get("D"); + break; + + case "Launch": + case "GoToR": + const urlDict = action.get("F"); + + if ((0, _primitives.isDict)(urlDict)) { + url = urlDict.get("F") || null; + } else if ((0, _util.isString)(urlDict)) { + url = urlDict; + } + + let remoteDest = action.get("D"); + + if (remoteDest) { + if ((0, _primitives.isName)(remoteDest)) { + remoteDest = remoteDest.name; + } + + if ((0, _util.isString)(url)) { + const baseUrl = url.split("#")[0]; + + if ((0, _util.isString)(remoteDest)) { + url = baseUrl + "#" + remoteDest; + } else if (Array.isArray(remoteDest)) { + url = baseUrl + "#" + JSON.stringify(remoteDest); + } + } + } + + const newWindow = action.get("NewWindow"); + + if ((0, _util.isBool)(newWindow)) { + resultObj.newWindow = newWindow; + } + + break; + + case "Named": + const namedAction = action.get("N"); + + if ((0, _primitives.isName)(namedAction)) { + resultObj.action = namedAction.name; + } + + break; + + case "JavaScript": + const jsAction = action.get("JS"); + let js; + + if ((0, _primitives.isStream)(jsAction)) { + js = (0, _util.bytesToString)(jsAction.getBytes()); + } else if ((0, _util.isString)(jsAction)) { + js = jsAction; + } + + if (js) { + const URL_OPEN_METHODS = ["app.launchURL", "window.open"]; + const regex = new RegExp("^\\s*(" + URL_OPEN_METHODS.join("|").split(".").join("\\.") + ")\\((?:'|\")([^'\"]*)(?:'|\")(?:,\\s*(\\w+)\\)|\\))", "i"); + const jsUrl = regex.exec((0, _util.stringToPDFString)(js)); + + if (jsUrl && jsUrl[2]) { + url = jsUrl[2]; + + if (jsUrl[3] === "true" && jsUrl[1] === "app.launchURL") { + resultObj.newWindow = true; + } + + break; + } + } + + default: + (0, _util.warn)(`parseDestDictionary: unsupported action type "${actionName}".`); + break; + } + } else if (destDict.has("Dest")) { + dest = destDict.get("Dest"); + } + + if ((0, _util.isString)(url)) { + url = tryConvertUrlEncoding(url); + const absoluteUrl = (0, _util.createValidAbsoluteUrl)(url, docBaseUrl); + + if (absoluteUrl) { + resultObj.url = absoluteUrl.href; + } + + resultObj.unsafeUrl = url; + } + + if (dest) { + if ((0, _primitives.isName)(dest)) { + dest = dest.name; + } + + if ((0, _util.isString)(dest) || Array.isArray(dest)) { + resultObj.dest = dest; + } + } + } + +} exports.Catalog = Catalog; @@ -14537,14 +5089,25 @@ var XRef = function XRefClosure() { this.pdfManager = pdfManager; this.entries = []; this.xrefstms = Object.create(null); - this.cache = []; + this._cacheMap = new Map(); this.stats = { - streamTypes: [], - fontTypes: [] + streamTypes: Object.create(null), + fontTypes: Object.create(null) }; + this._newRefNum = null; } XRef.prototype = { + getNewRef: function XRef_getNewRef() { + if (this._newRefNum === null) { + this._newRefNum = this.entries.length; + } + + return _primitives.Ref.get(this._newRefNum++, 0); + }, + resetNewRef: function XRef_resetNewRef() { + this._newRefNum = null; + }, setStartXRef: function XRef_setStartXRef(startXRef) { this.startXRefQueue = [startXRef]; }, @@ -14554,55 +5117,55 @@ var XRef = function XRefClosure() { if (!recoveryMode) { trailerDict = this.readXRef(); } else { - (0, _util.warn)('Indexing all PDF objects'); + (0, _util.warn)("Indexing all PDF objects"); trailerDict = this.indexObjects(); } trailerDict.assignXref(this); this.trailer = trailerDict; - var encrypt; + let encrypt; try { - encrypt = trailerDict.get('Encrypt'); + encrypt = trailerDict.get("Encrypt"); } catch (ex) { if (ex instanceof _core_utils.MissingDataException) { throw ex; } - (0, _util.warn)("XRef.parse - Invalid \"Encrypt\" reference: \"".concat(ex, "\".")); + (0, _util.warn)(`XRef.parse - Invalid "Encrypt" reference: "${ex}".`); } if ((0, _primitives.isDict)(encrypt)) { - var ids = trailerDict.get('ID'); - var fileId = ids && ids.length ? ids[0] : ''; + var ids = trailerDict.get("ID"); + var fileId = ids && ids.length ? ids[0] : ""; encrypt.suppressEncryption = true; this.encrypt = new _crypto.CipherTransformFactory(encrypt, fileId, this.pdfManager.password); } - var root; + let root; try { - root = trailerDict.get('Root'); + root = trailerDict.get("Root"); } catch (ex) { if (ex instanceof _core_utils.MissingDataException) { throw ex; } - (0, _util.warn)("XRef.parse - Invalid \"Root\" reference: \"".concat(ex, "\".")); + (0, _util.warn)(`XRef.parse - Invalid "Root" reference: "${ex}".`); } - if ((0, _primitives.isDict)(root) && root.has('Pages')) { + if ((0, _primitives.isDict)(root) && root.has("Pages")) { this.root = root; } else { if (!recoveryMode) { throw new _core_utils.XRefParseException(); } - throw new _util.FormatError('Invalid root reference'); + throw new _util.FormatError("Invalid root reference"); } }, processXRefTable: function XRef_processXRefTable(parser) { - if (!('tableState' in this)) { + if (!("tableState" in this)) { this.tableState = { entryNum: 0, streamPos: parser.lexer.stream.pos, @@ -14613,8 +5176,8 @@ var XRef = function XRefClosure() { var obj = this.readXRefTable(parser); - if (!(0, _primitives.isCmd)(obj, 'trailer')) { - throw new _util.FormatError('Invalid XRef table: could not find trailer dictionary'); + if (!(0, _primitives.isCmd)(obj, "trailer")) { + throw new _util.FormatError("Invalid XRef table: could not find trailer dictionary"); } var dict = parser.getObj(); @@ -14624,7 +5187,7 @@ var XRef = function XRefClosure() { } if (!(0, _primitives.isDict)(dict)) { - throw new _util.FormatError('Invalid XRef table: could not parse trailer dictionary'); + throw new _util.FormatError("Invalid XRef table: could not parse trailer dictionary"); } delete this.tableState; @@ -14639,8 +5202,8 @@ var XRef = function XRefClosure() { var obj; while (true) { - if (!('firstEntryNum' in tableState) || !('entryCount' in tableState)) { - if ((0, _primitives.isCmd)(obj = parser.getObj(), 'trailer')) { + if (!("firstEntryNum" in tableState) || !("entryCount" in tableState)) { + if ((0, _primitives.isCmd)(obj = parser.getObj(), "trailer")) { break; } @@ -14652,7 +5215,7 @@ var XRef = function XRefClosure() { var count = tableState.entryCount; if (!Number.isInteger(first) || !Number.isInteger(count)) { - throw new _util.FormatError('Invalid XRef table: wrong types in subsection header'); + throw new _util.FormatError("Invalid XRef table: wrong types in subsection header"); } for (var i = tableState.entryNum; i < count; i++) { @@ -14667,18 +5230,18 @@ var XRef = function XRefClosure() { if (type instanceof _primitives.Cmd) { switch (type.cmd) { - case 'f': + case "f": entry.free = true; break; - case 'n': + case "n": entry.uncompressed = true; break; } } if (!Number.isInteger(entry.offset) || !Number.isInteger(entry.gen) || !(entry.free || entry.uncompressed)) { - throw new _util.FormatError("Invalid entry in XRef subsection: ".concat(first, ", ").concat(count)); + throw new _util.FormatError(`Invalid entry in XRef subsection: ${first}, ${count}`); } if (i === 0 && entry.free && first === 1) { @@ -14699,24 +5262,24 @@ var XRef = function XRefClosure() { } if (this.entries[0] && !this.entries[0].free) { - throw new _util.FormatError('Invalid XRef table: unexpected first object'); + throw new _util.FormatError("Invalid XRef table: unexpected first object"); } return obj; }, processXRefStream: function XRef_processXRefStream(stream) { - if (!('streamState' in this)) { + if (!("streamState" in this)) { var streamParameters = stream.dict; - var byteWidths = streamParameters.get('W'); - var range = streamParameters.get('Index'); + var byteWidths = streamParameters.get("W"); + var range = streamParameters.get("Index"); if (!range) { - range = [0, streamParameters.get('Size')]; + range = [0, streamParameters.get("Size")]; } this.streamState = { entryRanges: range, - byteWidths: byteWidths, + byteWidths, entryNum: 0, streamPos: stream.pos }; @@ -14741,11 +5304,11 @@ var XRef = function XRefClosure() { var n = entryRanges[1]; if (!Number.isInteger(first) || !Number.isInteger(n)) { - throw new _util.FormatError("Invalid XRef range fields: ".concat(first, ", ").concat(n)); + throw new _util.FormatError(`Invalid XRef range fields: ${first}, ${n}`); } if (!Number.isInteger(typeFieldWidth) || !Number.isInteger(offsetFieldWidth) || !Number.isInteger(generationFieldWidth)) { - throw new _util.FormatError("Invalid XRef entry fields length: ".concat(first, ", ").concat(n)); + throw new _util.FormatError(`Invalid XRef entry fields length: ${first}, ${n}`); } for (i = streamState.entryNum; i < n; ++i) { @@ -14788,7 +5351,7 @@ var XRef = function XRefClosure() { break; default: - throw new _util.FormatError("Invalid XRef entry type: ".concat(type)); + throw new _util.FormatError(`Invalid XRef entry type: ${type}`); } if (!this.entries[first + i]) { @@ -14803,14 +5366,14 @@ var XRef = function XRefClosure() { }, indexObjects: function XRef_indexObjects() { var TAB = 0x9, - LF = 0xA, - CR = 0xD, + LF = 0xa, + CR = 0xd, SPACE = 0x20; var PERCENT = 0x25, - LT = 0x3C; + LT = 0x3c; function readToken(data, offset) { - var token = '', + var token = "", ch = data[offset]; while (ch !== LF && ch !== CR && ch !== LT) { @@ -14849,12 +5412,12 @@ var XRef = function XRefClosure() { } var objRegExp = /^(\d+)\s+(\d+)\s+obj\b/; - var endobjRegExp = /\bendobj[\b\s]$/; - var nestedObjRegExp = /\s+(\d+\s+\d+\s+obj[\b\s<])$/; - var CHECK_CONTENT_LENGTH = 25; + const endobjRegExp = /\bendobj[\b\s]$/; + const nestedObjRegExp = /\s+(\d+\s+\d+\s+obj[\b\s<])$/; + const CHECK_CONTENT_LENGTH = 25; 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 objBytes = new Uint8Array([111, 98, 106]); + const objBytes = new Uint8Array([111, 98, 106]); var xrefBytes = new Uint8Array([47, 88, 82, 101, 102]); this.entries.length = 0; var stream = this.stream; @@ -14890,35 +5453,35 @@ var XRef = function XRefClosure() { var token = readToken(buffer, position); var m; - if (token.startsWith('xref') && (token.length === 4 || /\s/.test(token[4]))) { + if (token.startsWith("xref") && (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)) { - var num = m[1] | 0, - gen = m[2] | 0; + const num = m[1] | 0, + gen = m[2] | 0; - if (typeof this.entries[num] === 'undefined') { + if (!this.entries[num] || this.entries[num].gen === gen) { this.entries[num] = { offset: position - stream.start, - gen: gen, + gen, uncompressed: true }; } - var contentLength = void 0, + let contentLength, startPos = position + token.length; while (startPos < buffer.length) { - var endPos = startPos + skipUntil(buffer, startPos, objBytes) + 4; + const endPos = startPos + skipUntil(buffer, startPos, objBytes) + 4; contentLength = endPos - position; - var checkPos = Math.max(endPos - CHECK_CONTENT_LENGTH, startPos); - var tokenStr = (0, _util.bytesToString)(buffer.subarray(checkPos, endPos)); + const checkPos = Math.max(endPos - CHECK_CONTENT_LENGTH, startPos); + const tokenStr = (0, _util.bytesToString)(buffer.subarray(checkPos, endPos)); if (endobjRegExp.test(tokenStr)) { break; } else { - var objToken = nestedObjRegExp.exec(tokenStr); + const objToken = nestedObjRegExp.exec(tokenStr); if (objToken && objToken[1]) { (0, _util.warn)('indexObjects: Found new "obj" inside of another "obj", ' + 'caused by missing "endobj" -- trying to recover.'); @@ -14930,7 +5493,7 @@ var XRef = function XRefClosure() { startPos = endPos; } - var content = buffer.subarray(position, position + contentLength); + const content = buffer.subarray(position, position + contentLength); var xrefTagOffset = skipUntil(content, 0, xrefBytes); if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) { @@ -14939,7 +5502,7 @@ var XRef = function XRefClosure() { } position += contentLength; - } else if (token.startsWith('trailer') && (token.length === 7 || /\s/.test(token[7]))) { + } else if (token.startsWith("trailer") && (token.length === 7 || /\s/.test(token[7]))) { trailers.push(position); position += skipUntil(buffer, position, startxrefBytes); } else { @@ -14954,11 +5517,11 @@ var XRef = function XRefClosure() { this.readXRef(true); } - var trailerDict; + let trailerDict; for (i = 0, ii = trailers.length; i < ii; ++i) { stream.pos = trailers[i]; - var parser = new _parser.Parser({ + const parser = new _parser.Parser({ lexer: new _parser.Lexer(stream), xref: this, allowStreams: true, @@ -14966,20 +5529,20 @@ var XRef = function XRefClosure() { }); var obj = parser.getObj(); - if (!(0, _primitives.isCmd)(obj, 'trailer')) { + if (!(0, _primitives.isCmd)(obj, "trailer")) { continue; } - var dict = parser.getObj(); + const dict = parser.getObj(); if (!(0, _primitives.isDict)(dict)) { continue; } - var rootDict = void 0; + let rootDict; try { - rootDict = dict.get('Root'); + rootDict = dict.get("Root"); } catch (ex) { if (ex instanceof _core_utils.MissingDataException) { throw ex; @@ -14988,11 +5551,11 @@ var XRef = function XRefClosure() { continue; } - if (!(0, _primitives.isDict)(rootDict) || !rootDict.has('Pages')) { + if (!(0, _primitives.isDict)(rootDict) || !rootDict.has("Pages")) { continue; } - if (dict.has('ID')) { + if (dict.has("ID")) { return dict; } @@ -15003,25 +5566,25 @@ var XRef = function XRefClosure() { return trailerDict; } - throw new _util.InvalidPDFException('Invalid PDF structure'); + throw new _util.InvalidPDFException("Invalid PDF structure."); }, readXRef: function XRef_readXRef(recoveryMode) { var stream = this.stream; - var startXRefParsedCache = Object.create(null); + const startXRefParsedCache = Object.create(null); try { while (this.startXRefQueue.length) { var startXRef = this.startXRefQueue[0]; if (startXRefParsedCache[startXRef]) { - (0, _util.warn)('readXRef - skipping XRef table since it was already parsed.'); + (0, _util.warn)("readXRef - skipping XRef table since it was already parsed."); this.startXRefQueue.shift(); continue; } startXRefParsedCache[startXRef] = true; stream.pos = startXRef + stream.start; - var parser = new _parser.Parser({ + const parser = new _parser.Parser({ lexer: new _parser.Lexer(stream), xref: this, allowStreams: true @@ -15029,14 +5592,14 @@ var XRef = function XRefClosure() { var obj = parser.getObj(); var dict; - if ((0, _primitives.isCmd)(obj, 'xref')) { + if ((0, _primitives.isCmd)(obj, "xref")) { dict = this.processXRefTable(parser); if (!this.topDict) { this.topDict = dict; } - obj = dict.get('XRefStm'); + obj = dict.get("XRefStm"); if (Number.isInteger(obj)) { var pos = obj; @@ -15047,8 +5610,8 @@ var XRef = function XRefClosure() { } } } else if (Number.isInteger(obj)) { - if (!Number.isInteger(parser.getObj()) || !(0, _primitives.isCmd)(parser.getObj(), 'obj') || !(0, _primitives.isStream)(obj = parser.getObj())) { - throw new _util.FormatError('Invalid XRef stream'); + if (!Number.isInteger(parser.getObj()) || !(0, _primitives.isCmd)(parser.getObj(), "obj") || !(0, _primitives.isStream)(obj = parser.getObj())) { + throw new _util.FormatError("Invalid XRef stream"); } dict = this.processXRefStream(obj); @@ -15058,13 +5621,13 @@ var XRef = function XRefClosure() { } if (!dict) { - throw new _util.FormatError('Failed to read XRef stream'); + throw new _util.FormatError("Failed to read XRef stream"); } } else { - throw new _util.FormatError('Invalid XRef stream header'); + throw new _util.FormatError("Invalid XRef stream header"); } - obj = dict.get('Prev'); + obj = dict.get("Prev"); if (Number.isInteger(obj)) { this.startXRefQueue.push(obj); @@ -15081,7 +5644,7 @@ var XRef = function XRefClosure() { throw e; } - (0, _util.info)('(while reading XRef): ' + e); + (0, _util.info)("(while reading XRef): " + e); } if (recoveryMode) { @@ -15100,22 +5663,22 @@ var XRef = function XRefClosure() { return null; }, fetchIfRef: function XRef_fetchIfRef(obj, suppressEncryption) { - if (!(0, _primitives.isRef)(obj)) { - return obj; + if (obj instanceof _primitives.Ref) { + return this.fetch(obj, suppressEncryption); } - return this.fetch(obj, suppressEncryption); + return obj; }, fetch: function XRef_fetch(ref, suppressEncryption) { - if (!(0, _primitives.isRef)(ref)) { - throw new Error('ref object is not a reference'); + if (!(ref instanceof _primitives.Ref)) { + throw new Error("ref object is not a reference"); } - var num = ref.num; + const num = ref.num; - if (num in this.cache) { - var cacheEntry = this.cache[num]; + const cacheEntry = this._cacheMap.get(num); + if (cacheEntry !== undefined) { if (cacheEntry instanceof _primitives.Dict && !cacheEntry.objId) { cacheEntry.objId = ref.toString(); } @@ -15123,10 +5686,12 @@ var XRef = function XRefClosure() { return cacheEntry; } - var xrefEntry = this.getEntry(num); + let xrefEntry = this.getEntry(num); if (xrefEntry === null) { - return this.cache[num] = null; + this._cacheMap.set(num, xrefEntry); + + return xrefEntry; } if (xrefEntry.uncompressed) { @@ -15143,17 +5708,17 @@ var XRef = function XRefClosure() { return xrefEntry; }, - fetchUncompressed: function fetchUncompressed(ref, xrefEntry) { - var suppressEncryption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + fetchUncompressed(ref, xrefEntry, suppressEncryption = false) { var gen = ref.gen; var num = ref.num; if (xrefEntry.gen !== gen) { - throw new _core_utils.XRefEntryException("Inconsistent generation in XRef: ".concat(ref)); + throw new _core_utils.XRefEntryException(`Inconsistent generation in XRef: ${ref}`); } var stream = this.stream.makeSubStream(xrefEntry.offset + this.stream.start); - var parser = new _parser.Parser({ + const parser = new _parser.Parser({ lexer: new _parser.Lexer(stream), xref: this, allowStreams: true @@ -15162,20 +5727,12 @@ var XRef = function XRefClosure() { var obj2 = parser.getObj(); var obj3 = parser.getObj(); - if (!Number.isInteger(obj1)) { - obj1 = parseInt(obj1, 10); - } - - if (!Number.isInteger(obj2)) { - obj2 = parseInt(obj2, 10); - } - if (obj1 !== num || obj2 !== gen || !(obj3 instanceof _primitives.Cmd)) { - throw new _core_utils.XRefEntryException("Bad (uncompressed) XRef entry: ".concat(ref)); + throw new _core_utils.XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`); } - if (obj3.cmd !== 'obj') { - if (obj3.cmd.startsWith('obj')) { + if (obj3.cmd !== "obj") { + if (obj3.cmd.startsWith("obj")) { num = parseInt(obj3.cmd.substring(3), 10); if (!Number.isNaN(num)) { @@ -15183,7 +5740,7 @@ var XRef = function XRefClosure() { } } - throw new _core_utils.XRefEntryException("Bad (uncompressed) XRef entry: ".concat(ref)); + throw new _core_utils.XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`); } if (this.encrypt && !suppressEncryption) { @@ -15193,150 +5750,102 @@ var XRef = function XRefClosure() { } if (!(0, _primitives.isStream)(xrefEntry)) { - this.cache[num] = xrefEntry; + this._cacheMap.set(num, xrefEntry); } return xrefEntry; }, - fetchCompressed: function fetchCompressed(ref, xrefEntry) { - var suppressEncryption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - var tableOffset = xrefEntry.offset; - var stream = this.fetch(_primitives.Ref.get(tableOffset, 0)); + + fetchCompressed(ref, xrefEntry, suppressEncryption = false) { + const tableOffset = xrefEntry.offset; + const stream = this.fetch(_primitives.Ref.get(tableOffset, 0)); if (!(0, _primitives.isStream)(stream)) { - throw new _util.FormatError('bad ObjStm stream'); + throw new _util.FormatError("bad ObjStm stream"); } - var first = stream.dict.get('First'); - var n = stream.dict.get('N'); + const first = stream.dict.get("First"); + const n = stream.dict.get("N"); if (!Number.isInteger(first) || !Number.isInteger(n)) { - throw new _util.FormatError('invalid first and n parameters for ObjStm stream'); + throw new _util.FormatError("invalid first and n parameters for ObjStm stream"); } - var parser = new _parser.Parser({ + const parser = new _parser.Parser({ lexer: new _parser.Lexer(stream), xref: this, allowStreams: true }); - var i, - entries = [], - num, - nums = []; + const nums = new Array(n); - for (i = 0; i < n; ++i) { - num = parser.getObj(); + for (let i = 0; i < n; ++i) { + const num = parser.getObj(); if (!Number.isInteger(num)) { - throw new _util.FormatError("invalid object number in the ObjStm stream: ".concat(num)); + throw new _util.FormatError(`invalid object number in the ObjStm stream: ${num}`); } - nums.push(num); - var offset = parser.getObj(); + const offset = parser.getObj(); if (!Number.isInteger(offset)) { - throw new _util.FormatError("invalid object offset in the ObjStm stream: ".concat(offset)); + throw new _util.FormatError(`invalid object offset in the ObjStm stream: ${offset}`); } + + nums[i] = num; } - for (i = 0; i < n; ++i) { - entries.push(parser.getObj()); + const entries = new Array(n); - if ((0, _primitives.isCmd)(parser.buf1, 'endobj')) { + for (let i = 0; i < n; ++i) { + const obj = parser.getObj(); + entries[i] = obj; + + if (parser.buf1 instanceof _primitives.Cmd && parser.buf1.cmd === "endobj") { parser.shift(); } - num = nums[i]; - var entry = this.entries[num]; + if ((0, _primitives.isStream)(obj)) { + continue; + } + + const num = nums[i], + entry = this.entries[num]; if (entry && entry.offset === tableOffset && entry.gen === i) { - this.cache[num] = entries[i]; + this._cacheMap.set(num, obj); } } xrefEntry = entries[xrefEntry.gen]; if (xrefEntry === undefined) { - throw new _core_utils.XRefEntryException("Bad (compressed) XRef entry: ".concat(ref)); + throw new _core_utils.XRefEntryException(`Bad (compressed) XRef entry: ${ref}`); } return xrefEntry; }, - fetchIfRefAsync: function () { - var _fetchIfRefAsync = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(obj, suppressEncryption) { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if ((0, _primitives.isRef)(obj)) { - _context.next = 2; - break; - } - return _context.abrupt("return", obj); - - case 2: - return _context.abrupt("return", this.fetchAsync(obj, suppressEncryption)); - - case 3: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function fetchIfRefAsync(_x, _x2) { - return _fetchIfRefAsync.apply(this, arguments); + async fetchIfRefAsync(obj, suppressEncryption) { + if (obj instanceof _primitives.Ref) { + return this.fetchAsync(obj, suppressEncryption); } - return fetchIfRefAsync; - }(), - fetchAsync: function () { - var _fetchAsync = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2(ref, suppressEncryption) { - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _context2.prev = 0; - return _context2.abrupt("return", this.fetch(ref, suppressEncryption)); + return obj; + }, - case 4: - _context2.prev = 4; - _context2.t0 = _context2["catch"](0); + async fetchAsync(ref, suppressEncryption) { + try { + return this.fetch(ref, suppressEncryption); + } catch (ex) { + if (!(ex instanceof _core_utils.MissingDataException)) { + throw ex; + } - if (_context2.t0 instanceof _core_utils.MissingDataException) { - _context2.next = 8; - break; - } - - throw _context2.t0; - - case 8: - _context2.next = 10; - return this.pdfManager.requestRange(_context2.t0.begin, _context2.t0.end); - - case 10: - return _context2.abrupt("return", this.fetchAsync(ref, suppressEncryption)); - - case 11: - case "end": - return _context2.stop(); - } - } - }, _callee2, this, [[0, 4]]); - })); - - function fetchAsync(_x3, _x4) { - return _fetchAsync.apply(this, arguments); + await this.pdfManager.requestRange(ex.begin, ex.end); + return this.fetchAsync(ref, suppressEncryption); } + }, - return fetchAsync; - }(), getCatalogObj: function XRef_getCatalogObj() { return this.root; } @@ -15346,14 +5855,10 @@ var XRef = function XRefClosure() { exports.XRef = XRef; -var NameOrNumberTree = -/*#__PURE__*/ -function () { - function NameOrNumberTree(root, xref, type) { - _classCallCheck(this, NameOrNumberTree); - +class NameOrNumberTree { + constructor(root, xref, type) { if (this.constructor === NameOrNumberTree) { - (0, _util.unreachable)('Cannot initialize NameOrNumberTree.'); + (0, _util.unreachable)("Cannot initialize NameOrNumberTree."); } this.root = root; @@ -15361,169 +5866,149 @@ function () { this._type = type; } - _createClass(NameOrNumberTree, [{ - key: "getAll", - value: function getAll() { - var dict = Object.create(null); - - if (!this.root) { - return dict; - } - - var xref = this.xref; - var processed = new _primitives.RefSet(); - processed.put(this.root); - var queue = [this.root]; - - while (queue.length > 0) { - var obj = xref.fetchIfRef(queue.shift()); - - if (!(0, _primitives.isDict)(obj)) { - continue; - } - - if (obj.has('Kids')) { - var kids = obj.get('Kids'); - - for (var i = 0, ii = kids.length; i < ii; i++) { - var kid = kids[i]; - - if (processed.has(kid)) { - throw new _util.FormatError("Duplicate entry in \"".concat(this._type, "\" tree.")); - } - - queue.push(kid); - processed.put(kid); - } - - continue; - } - - var entries = obj.get(this._type); - - if (Array.isArray(entries)) { - for (var _i2 = 0, _ii = entries.length; _i2 < _ii; _i2 += 2) { - dict[xref.fetchIfRef(entries[_i2])] = xref.fetchIfRef(entries[_i2 + 1]); - } - } - } + getAll() { + const dict = Object.create(null); + if (!this.root) { return dict; } - }, { - key: "get", - value: function get(key) { - if (!this.root) { + + const xref = this.xref; + const processed = new _primitives.RefSet(); + processed.put(this.root); + const queue = [this.root]; + + while (queue.length > 0) { + const obj = xref.fetchIfRef(queue.shift()); + + if (!(0, _primitives.isDict)(obj)) { + continue; + } + + if (obj.has("Kids")) { + const kids = obj.get("Kids"); + + for (let i = 0, ii = kids.length; i < ii; i++) { + const kid = kids[i]; + + if (processed.has(kid)) { + throw new _util.FormatError(`Duplicate entry in "${this._type}" tree.`); + } + + queue.push(kid); + processed.put(kid); + } + + continue; + } + + const entries = obj.get(this._type); + + if (Array.isArray(entries)) { + for (let i = 0, ii = entries.length; i < ii; i += 2) { + dict[xref.fetchIfRef(entries[i])] = xref.fetchIfRef(entries[i + 1]); + } + } + } + + return dict; + } + + get(key) { + if (!this.root) { + return null; + } + + const xref = this.xref; + let kidsOrEntries = xref.fetchIfRef(this.root); + let loopCount = 0; + const MAX_LEVELS = 10; + + while (kidsOrEntries.has("Kids")) { + if (++loopCount > MAX_LEVELS) { + (0, _util.warn)(`Search depth limit reached for "${this._type}" tree.`); return null; } - var xref = this.xref; - var kidsOrEntries = xref.fetchIfRef(this.root); - var loopCount = 0; - var MAX_LEVELS = 10; + const kids = kidsOrEntries.get("Kids"); - while (kidsOrEntries.has('Kids')) { - if (++loopCount > MAX_LEVELS) { - (0, _util.warn)("Search depth limit reached for \"".concat(this._type, "\" tree.")); - return null; - } + if (!Array.isArray(kids)) { + return null; + } - var kids = kidsOrEntries.get('Kids'); + let l = 0, + r = kids.length - 1; - if (!Array.isArray(kids)) { - return null; - } + while (l <= r) { + const m = l + r >> 1; + const kid = xref.fetchIfRef(kids[m]); + const limits = kid.get("Limits"); - var l = 0, - r = kids.length - 1; - - while (l <= r) { - var 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; + 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; } } - var entries = kidsOrEntries.get(this._type); - - if (Array.isArray(entries)) { - var _l = 0, - _r = entries.length - 2; - - while (_l <= _r) { - var tmp = _l + _r >> 1, - _m = tmp + (tmp & 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]); - } - } - - (0, _util.info)("Falling back to an exhaustive search, for key \"".concat(key, "\", ") + "in \"".concat(this._type, "\" tree.")); - - for (var _m2 = 0, mm = entries.length; _m2 < mm; _m2 += 2) { - var _currentKey = xref.fetchIfRef(entries[_m2]); - - if (_currentKey === key) { - (0, _util.warn)("The \"".concat(key, "\" key was found at an incorrect, ") + "i.e. out-of-order, position in \"".concat(this._type, "\" tree.")); - return xref.fetchIfRef(entries[_m2 + 1]); - } - } + if (l > r) { + return null; } - - return null; } - }]); - return NameOrNumberTree; -}(); + const entries = kidsOrEntries.get(this._type); -var NameTree = -/*#__PURE__*/ -function (_NameOrNumberTree) { - _inherits(NameTree, _NameOrNumberTree); + if (Array.isArray(entries)) { + let l = 0, + r = entries.length - 2; - function NameTree(root, xref) { - _classCallCheck(this, NameTree); + while (l <= r) { + const tmp = l + r >> 1, + m = tmp + (tmp & 1); + const currentKey = xref.fetchIfRef(entries[m]); - return _possibleConstructorReturn(this, _getPrototypeOf(NameTree).call(this, root, xref, 'Names')); + if (key < currentKey) { + r = m - 2; + } else if (key > currentKey) { + l = m + 2; + } else { + return xref.fetchIfRef(entries[m + 1]); + } + } + + (0, _util.info)(`Falling back to an exhaustive search, for key "${key}", ` + `in "${this._type}" tree.`); + + for (let m = 0, mm = entries.length; m < mm; m += 2) { + const currentKey = xref.fetchIfRef(entries[m]); + + if (currentKey === key) { + (0, _util.warn)(`The "${key}" key was found at an incorrect, ` + `i.e. out-of-order, position in "${this._type}" tree.`); + return xref.fetchIfRef(entries[m + 1]); + } + } + } + + return null; } - return NameTree; -}(NameOrNumberTree); +} -var NumberTree = -/*#__PURE__*/ -function (_NameOrNumberTree2) { - _inherits(NumberTree, _NameOrNumberTree2); - - function NumberTree(root, xref) { - _classCallCheck(this, NumberTree); - - return _possibleConstructorReturn(this, _getPrototypeOf(NumberTree).call(this, root, xref, 'Nums')); +class NameTree extends NameOrNumberTree { + constructor(root, xref) { + super(root, xref, "Names"); } - return NumberTree; -}(NameOrNumberTree); +} + +class NumberTree extends NameOrNumberTree { + constructor(root, xref) { + super(root, xref, "Nums"); + } + +} var FileSpec = function FileSpecClosure() { function FileSpec(root, xref) { @@ -15534,35 +6019,35 @@ var FileSpec = function FileSpecClosure() { this.xref = xref; this.root = root; - if (root.has('FS')) { - this.fs = root.get('FS'); + if (root.has("FS")) { + this.fs = root.get("FS"); } - this.description = root.has('Desc') ? (0, _util.stringToPDFString)(root.get('Desc')) : ''; + this.description = root.has("Desc") ? (0, _util.stringToPDFString)(root.get("Desc")) : ""; - if (root.has('RF')) { - (0, _util.warn)('Related file specifications are not supported'); + if (root.has("RF")) { + (0, _util.warn)("Related file specifications are not supported"); } this.contentAvailable = true; - if (!root.has('EF')) { + if (!root.has("EF")) { this.contentAvailable = false; - (0, _util.warn)('Non-embedded file specifications are not supported'); + (0, _util.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'); + 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; @@ -15571,8 +6056,8 @@ var FileSpec = function FileSpecClosure() { FileSpec.prototype = { get filename() { if (!this._filename && this.root) { - var filename = pickPlatformItem(this.root) || 'unnamed'; - this._filename = (0, _util.stringToPDFString)(filename).replace(/\\\\/g, '\\').replace(/\\\//g, '/').replace(/\\/g, '/'); + var filename = pickPlatformItem(this.root) || "unnamed"; + this._filename = (0, _util.stringToPDFString)(filename).replace(/\\\\/g, "\\").replace(/\\\//g, "/").replace(/\\/g, "/"); } return this._filename; @@ -15584,7 +6069,7 @@ var FileSpec = function FileSpecClosure() { } if (!this.contentRef && this.root) { - this.contentRef = pickPlatformItem(this.root.get('EF')); + this.contentRef = pickPlatformItem(this.root.get("EF")); } var content = null; @@ -15596,10 +6081,10 @@ var FileSpec = function FileSpecClosure() { if (fileObj && (0, _primitives.isStream)(fileObj)) { content = fileObj.getBytes(); } else { - (0, _util.warn)('Embedded file specification points to non-existing/invalid ' + 'content'); + (0, _util.warn)("Embedded file specification points to non-existing/invalid " + "content"); } } else { - (0, _util.warn)('Embedded file specification does not have a content'); + (0, _util.warn)("Embedded file specification does not have a content"); } return content; @@ -15618,30 +6103,23 @@ var FileSpec = function FileSpecClosure() { exports.FileSpec = FileSpec; -var ObjectLoader = function () { +const ObjectLoader = function () { function mayHaveChildren(value) { - return (0, _primitives.isRef)(value) || (0, _primitives.isDict)(value) || Array.isArray(value) || (0, _primitives.isStream)(value); + return value instanceof _primitives.Ref || value instanceof _primitives.Dict || Array.isArray(value) || (0, _primitives.isStream)(value); } function addChildren(node, nodesToVisit) { - if ((0, _primitives.isDict)(node) || (0, _primitives.isStream)(node)) { - var dict = (0, _primitives.isDict)(node) ? node : node.dict; - var dictKeys = dict.getKeys(); + if (node instanceof _primitives.Dict) { + node = node.getRawValues(); + } else if ((0, _primitives.isStream)(node)) { + node = node.dict.getRawValues(); + } else if (!Array.isArray(node)) { + return; + } - for (var i = 0, ii = dictKeys.length; i < ii; i++) { - var rawValue = dict.getRaw(dictKeys[i]); - - if (mayHaveChildren(rawValue)) { - nodesToVisit.push(rawValue); - } - } - } else if (Array.isArray(node)) { - for (var _i3 = 0, _ii2 = node.length; _i3 < _ii2; _i3++) { - var value = node[_i3]; - - if (mayHaveChildren(value)) { - nodesToVisit.push(value); - } + for (const rawValue of node) { + if (mayHaveChildren(rawValue)) { + nodesToVisit.push(rawValue); } } } @@ -15651,45 +6129,40 @@ var ObjectLoader = function () { this.keys = keys; this.xref = xref; this.refSet = null; - this.capability = null; } ObjectLoader.prototype = { - load: function load() { - this.capability = (0, _util.createPromiseCapability)(); - - if (!(this.xref.stream instanceof _chunked_stream.ChunkedStream) || this.xref.stream.getMissingChunks().length === 0) { - this.capability.resolve(); - return this.capability.promise; + async load() { + if (!this.xref.stream.allChunksLoaded || this.xref.stream.allChunksLoaded()) { + return undefined; } - var keys = this.keys, - dict = this.dict; + const { + keys, + dict + } = this; this.refSet = new _primitives.RefSet(); - var nodesToVisit = []; + const nodesToVisit = []; - for (var i = 0, ii = keys.length; i < ii; i++) { - var rawValue = dict.getRaw(keys[i]); + for (let i = 0, ii = keys.length; i < ii; i++) { + const rawValue = dict.getRaw(keys[i]); if (rawValue !== undefined) { nodesToVisit.push(rawValue); } } - this._walk(nodesToVisit); - - return this.capability.promise; + return this._walk(nodesToVisit); }, - _walk: function _walk(nodesToVisit) { - var _this3 = this; - var nodesToRevisit = []; - var pendingRequests = []; + async _walk(nodesToVisit) { + const nodesToRevisit = []; + const pendingRequests = []; while (nodesToVisit.length) { - var currentNode = nodesToVisit.pop(); + let currentNode = nodesToVisit.pop(); - if ((0, _primitives.isRef)(currentNode)) { + if (currentNode instanceof _primitives.Ref) { if (this.refSet.has(currentNode)) { continue; } @@ -15711,13 +6184,13 @@ var ObjectLoader = function () { } if (currentNode && currentNode.getBaseStreams) { - var baseStreams = currentNode.getBaseStreams(); - var foundMissingData = false; + const baseStreams = currentNode.getBaseStreams(); + let foundMissingData = false; - for (var i = 0, ii = baseStreams.length; i < ii; i++) { - var stream = baseStreams[i]; + for (let i = 0, ii = baseStreams.length; i < ii; i++) { + const stream = baseStreams[i]; - if (stream.getMissingChunks && stream.getMissingChunks().length) { + if (stream.allChunksLoaded && !stream.allChunksLoaded()) { foundMissingData = true; pendingRequests.push({ begin: stream.start, @@ -15735,23 +6208,23 @@ var ObjectLoader = function () { } if (pendingRequests.length) { - this.xref.stream.manager.requestRanges(pendingRequests).then(function () { - for (var _i4 = 0, _ii3 = nodesToRevisit.length; _i4 < _ii3; _i4++) { - var node = nodesToRevisit[_i4]; + await this.xref.stream.manager.requestRanges(pendingRequests); - if ((0, _primitives.isRef)(node)) { - _this3.refSet.remove(node); - } + for (let i = 0, ii = nodesToRevisit.length; i < ii; i++) { + const node = nodesToRevisit[i]; + + if (node instanceof _primitives.Ref) { + this.refSet.remove(node); } + } - _this3._walk(nodesToRevisit); - }, this.capability.reject); - return; + return this._walk(nodesToRevisit); } this.refSet = null; - this.capability.resolve(); + return undefined; } + }; return ObjectLoader; }(); @@ -15759,7 +6232,7 @@ var ObjectLoader = function () { exports.ObjectLoader = ObjectLoader; /***/ }), -/* 157 */ +/* 11 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -15770,57 +6243,45 @@ Object.defineProperty(exports, "__esModule", { }); exports.Parser = exports.Linearization = exports.Lexer = void 0; -var _stream = __w_pdfjs_require__(158); +var _stream = __w_pdfjs_require__(12); -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -var _primitives = __w_pdfjs_require__(151); +var _primitives = __w_pdfjs_require__(5); -var _ccitt_stream = __w_pdfjs_require__(159); +var _core_utils = __w_pdfjs_require__(8); -var _jbig2_stream = __w_pdfjs_require__(161); +var _ccitt_stream = __w_pdfjs_require__(13); -var _jpeg_stream = __w_pdfjs_require__(164); +var _jbig2_stream = __w_pdfjs_require__(15); -var _jpx_stream = __w_pdfjs_require__(166); +var _jpeg_stream = __w_pdfjs_require__(18); -var _core_utils = __w_pdfjs_require__(154); +var _jpx_stream = __w_pdfjs_require__(20); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var MAX_LENGTH_TO_CACHE = 1000; -var MAX_ADLER32_LENGTH = 5552; +const MAX_LENGTH_TO_CACHE = 1000; +const MAX_ADLER32_LENGTH = 5552; function computeAdler32(bytes) { - var bytesLength = bytes.length; - var a = 1, + const bytesLength = bytes.length; + let a = 1, b = 0; - for (var i = 0; i < bytesLength; ++i) { - a += bytes[i] & 0xFF; + for (let i = 0; i < bytesLength; ++i) { + a += bytes[i] & 0xff; b += a; } return b % 65521 << 16 | a % 65521; } -var Parser = -/*#__PURE__*/ -function () { - function Parser(_ref) { - var lexer = _ref.lexer, - xref = _ref.xref, - _ref$allowStreams = _ref.allowStreams, - allowStreams = _ref$allowStreams === void 0 ? false : _ref$allowStreams, - _ref$recoveryMode = _ref.recoveryMode, - recoveryMode = _ref$recoveryMode === void 0 ? false : _ref$recoveryMode; - - _classCallCheck(this, Parser); - +class Parser { + constructor({ + lexer, + xref, + allowStreams = false, + recoveryMode = false + }) { this.lexer = lexer; this.xref = xref; this.allowStreams = allowStreams; @@ -15829,1278 +6290,1293 @@ function () { this.refill(); } - _createClass(Parser, [{ - key: "refill", - value: function refill() { - this.buf1 = this.lexer.getObj(); + refill() { + this.buf1 = this.lexer.getObj(); + this.buf2 = this.lexer.getObj(); + } + + shift() { + if (this.buf2 instanceof _primitives.Cmd && this.buf2.cmd === "ID") { + this.buf1 = this.buf2; + this.buf2 = null; + } else { + this.buf1 = this.buf2; this.buf2 = this.lexer.getObj(); } - }, { - key: "shift", - value: function shift() { - if ((0, _primitives.isCmd)(this.buf2, 'ID')) { - this.buf1 = this.buf2; - this.buf2 = null; - } else { - this.buf1 = this.buf2; - this.buf2 = this.lexer.getObj(); - } - } - }, { - key: "tryShift", - value: function tryShift() { - try { - this.shift(); - return true; - } catch (e) { - if (e instanceof _core_utils.MissingDataException) { - throw e; - } + } - return false; - } - } - }, { - key: "getObj", - value: function getObj(cipherTransform) { - var buf1 = this.buf1; + tryShift() { + try { this.shift(); + return true; + } catch (e) { + if (e instanceof _core_utils.MissingDataException) { + throw e; + } - if (buf1 instanceof _primitives.Cmd) { - switch (buf1.cmd) { - case 'BI': - return this.makeInlineImage(cipherTransform); + return false; + } + } - case '[': - var array = []; + getObj(cipherTransform = null) { + const buf1 = this.buf1; + this.shift(); - while (!(0, _primitives.isCmd)(this.buf1, ']') && !(0, _primitives.isEOF)(this.buf1)) { - array.push(this.getObj(cipherTransform)); + if (buf1 instanceof _primitives.Cmd) { + switch (buf1.cmd) { + case "BI": + return this.makeInlineImage(cipherTransform); + + case "[": + const array = []; + + while (!(0, _primitives.isCmd)(this.buf1, "]") && !(0, _primitives.isEOF)(this.buf1)) { + array.push(this.getObj(cipherTransform)); + } + + if ((0, _primitives.isEOF)(this.buf1)) { + if (!this.recoveryMode) { + throw new _util.FormatError("End of file inside array"); } - if ((0, _primitives.isEOF)(this.buf1)) { - if (!this.recoveryMode) { - throw new _util.FormatError('End of file inside array'); - } - - return array; - } - - this.shift(); return array; + } - case '<<': - var dict = new _primitives.Dict(this.xref); + this.shift(); + return array; - while (!(0, _primitives.isCmd)(this.buf1, '>>') && !(0, _primitives.isEOF)(this.buf1)) { - if (!(0, _primitives.isName)(this.buf1)) { - (0, _util.info)('Malformed dictionary: key must be a name object'); - this.shift(); - continue; - } + case "<<": + const dict = new _primitives.Dict(this.xref); - var key = this.buf1.name; + while (!(0, _primitives.isCmd)(this.buf1, ">>") && !(0, _primitives.isEOF)(this.buf1)) { + if (!(0, _primitives.isName)(this.buf1)) { + (0, _util.info)("Malformed dictionary: key must be a name object"); this.shift(); - - if ((0, _primitives.isEOF)(this.buf1)) { - break; - } - - dict.set(key, this.getObj(cipherTransform)); + continue; } + const key = this.buf1.name; + this.shift(); + if ((0, _primitives.isEOF)(this.buf1)) { - if (!this.recoveryMode) { - throw new _util.FormatError('End of file inside dictionary'); - } - - return dict; + break; } - if ((0, _primitives.isCmd)(this.buf2, 'stream')) { - return this.allowStreams ? this.makeStream(dict, cipherTransform) : dict; + dict.set(key, this.getObj(cipherTransform)); + } + + if ((0, _primitives.isEOF)(this.buf1)) { + if (!this.recoveryMode) { + throw new _util.FormatError("End of file inside dictionary"); } - this.shift(); return dict; + } - default: - return buf1; - } - } - - if (Number.isInteger(buf1)) { - var num = buf1; - - if (Number.isInteger(this.buf1) && (0, _primitives.isCmd)(this.buf2, 'R')) { - var ref = _primitives.Ref.get(num, this.buf1); + if ((0, _primitives.isCmd)(this.buf2, "stream")) { + return this.allowStreams ? this.makeStream(dict, cipherTransform) : dict; + } this.shift(); - this.shift(); - return ref; - } + return dict; - return num; + default: + return buf1; } + } - if ((0, _util.isString)(buf1)) { - var str = buf1; + if (Number.isInteger(buf1)) { + if (Number.isInteger(this.buf1) && (0, _primitives.isCmd)(this.buf2, "R")) { + const ref = _primitives.Ref.get(buf1, this.buf1); - if (cipherTransform) { - str = cipherTransform.decryptString(str); - } - - return str; + this.shift(); + this.shift(); + return ref; } return buf1; } - }, { - key: "findDefaultInlineStreamEnd", - value: function findDefaultInlineStreamEnd(stream) { - var E = 0x45, + + if (typeof buf1 === "string") { + if (cipherTransform) { + return cipherTransform.decryptString(buf1); + } + + return buf1; + } + + return buf1; + } + + findDefaultInlineStreamEnd(stream) { + const E = 0x45, I = 0x49, SPACE = 0x20, - LF = 0xA, - CR = 0xD; - var n = 10, + LF = 0xa, + CR = 0xd, NUL = 0x0; - var startPos = stream.pos, - state = 0, - ch, - maybeEIPos; + const lexer = this.lexer, + startPos = stream.pos, + n = 10; + let state = 0, + ch, + maybeEIPos; - while ((ch = stream.getByte()) !== -1) { - if (state === 0) { - state = ch === E ? 1 : 0; - } else if (state === 1) { - state = ch === I ? 2 : 0; - } else { - (0, _util.assert)(state === 2); + while ((ch = stream.getByte()) !== -1) { + if (state === 0) { + state = ch === E ? 1 : 0; + } else if (state === 1) { + state = ch === I ? 2 : 0; + } else { + (0, _util.assert)(state === 2, "findDefaultInlineStreamEnd - invalid state."); - if (ch === SPACE || ch === LF || ch === CR) { - maybeEIPos = stream.pos; - var followingBytes = stream.peekBytes(n); + if (ch === SPACE || ch === LF || ch === CR) { + maybeEIPos = stream.pos; + const followingBytes = stream.peekBytes(n); - for (var i = 0, ii = followingBytes.length; i < ii; i++) { - ch = followingBytes[i]; + for (let i = 0, ii = followingBytes.length; i < ii; i++) { + ch = followingBytes[i]; - if (ch === NUL && followingBytes[i + 1] !== NUL) { - continue; - } - - if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7F)) { - state = 0; - break; - } + if (ch === NUL && followingBytes[i + 1] !== NUL) { + continue; } - if (state === 2) { + if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7f)) { + state = 0; break; } + } + + if (state !== 2) { + continue; + } + + if (lexer.knownCommands) { + const nextObj = lexer.peekObj(); + + if (nextObj instanceof _primitives.Cmd && !lexer.knownCommands[nextObj.cmd]) { + state = 0; + } } else { - state = 0; + (0, _util.warn)("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined."); } + + if (state === 2) { + break; + } + } else { + state = 0; } } - - if (ch === -1) { - (0, _util.warn)('findDefaultInlineStreamEnd: ' + 'Reached the end of the stream without finding a valid EI marker'); - - if (maybeEIPos) { - (0, _util.warn)('... trying to recover by using the last "EI" occurrence.'); - stream.skip(-(stream.pos - maybeEIPos)); - } - } - - var endOffset = 4; - stream.skip(-endOffset); - ch = stream.peekByte(); - stream.skip(endOffset); - - if (!(0, _util.isSpace)(ch)) { - endOffset--; - } - - return stream.pos - endOffset - startPos; } - }, { - key: "findDCTDecodeInlineStreamEnd", - value: function findDCTDecodeInlineStreamEnd(stream) { - var startPos = stream.pos, - foundEOI = false, - b, - markerLength, - length; - while ((b = stream.getByte()) !== -1) { - if (b !== 0xFF) { - continue; - } + if (ch === -1) { + (0, _util.warn)("findDefaultInlineStreamEnd: " + "Reached the end of the stream without finding a valid EI marker"); - switch (stream.getByte()) { - case 0x00: - break; + if (maybeEIPos) { + (0, _util.warn)('... trying to recover by using the last "EI" occurrence.'); + stream.skip(-(stream.pos - maybeEIPos)); + } + } - case 0xFF: - stream.skip(-1); - break; + let endOffset = 4; + stream.skip(-endOffset); + ch = stream.peekByte(); + stream.skip(endOffset); - case 0xD9: - foundEOI = true; - break; + if (!(0, _core_utils.isWhiteSpace)(ch)) { + endOffset--; + } - 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(); + return stream.pos - endOffset - startPos; + } - if (markerLength > 2) { - stream.skip(markerLength - 2); - } else { - stream.skip(-2); - } + findDCTDecodeInlineStreamEnd(stream) { + const startPos = stream.pos; + let foundEOI = false, + b, + markerLength; - break; - } + 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); + } - if (foundEOI) { break; - } } - length = stream.pos - startPos; - - if (b === -1) { - (0, _util.warn)('Inline DCTDecode image stream: ' + 'EOI marker not found, searching for /EI/ instead.'); - stream.skip(-length); - return this.findDefaultInlineStreamEnd(stream); + if (foundEOI) { + break; } - - this.inlineStreamSkipEI(stream); - return length; } - }, { - key: "findASCII85DecodeInlineStreamEnd", - value: function findASCII85DecodeInlineStreamEnd(stream) { - var TILDE = 0x7E, - GT = 0x3E; - var startPos = stream.pos, - ch, - length; - while ((ch = stream.getByte()) !== -1) { - if (ch === TILDE) { + const length = stream.pos - startPos; + + if (b === -1) { + (0, _util.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(stream) { + const TILDE = 0x7e, + GT = 0x3e; + const startPos = stream.pos; + let ch; + + while ((ch = stream.getByte()) !== -1) { + if (ch === TILDE) { + const tildePos = stream.pos; + ch = stream.peekByte(); + + while ((0, _core_utils.isWhiteSpace)(ch)) { + stream.skip(); ch = stream.peekByte(); + } - while ((0, _util.isSpace)(ch)) { - stream.skip(); - ch = stream.peekByte(); - } + if (ch === GT) { + stream.skip(); + break; + } - if (ch === GT) { - stream.skip(); + if (stream.pos > tildePos) { + const maybeEI = stream.peekBytes(2); + + if (maybeEI[0] === 0x45 && maybeEI[1] === 0x49) { break; } } } - - length = stream.pos - startPos; - - if (ch === -1) { - (0, _util.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; } - }, { - key: "findASCIIHexDecodeInlineStreamEnd", - value: function findASCIIHexDecodeInlineStreamEnd(stream) { - var GT = 0x3E; - var startPos = stream.pos, - ch, - length; - while ((ch = stream.getByte()) !== -1) { - if (ch === GT) { - break; - } - } + const length = stream.pos - startPos; - length = stream.pos - startPos; - - if (ch === -1) { - (0, _util.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; + if (ch === -1) { + (0, _util.warn)("Inline ASCII85Decode image stream: " + "EOD marker not found, searching for /EI/ instead."); + stream.skip(-length); + return this.findDefaultInlineStreamEnd(stream); } - }, { - key: "inlineStreamSkipEI", - value: function inlineStreamSkipEI(stream) { - var E = 0x45, + + this.inlineStreamSkipEI(stream); + return length; + } + + findASCIIHexDecodeInlineStreamEnd(stream) { + const GT = 0x3e; + const startPos = stream.pos; + let ch; + + while ((ch = stream.getByte()) !== -1) { + if (ch === GT) { + break; + } + } + + const length = stream.pos - startPos; + + if (ch === -1) { + (0, _util.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(stream) { + const E = 0x45, I = 0x49; - var state = 0, - ch; + let 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; - } + 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; } } - }, { - key: "makeInlineImage", - value: function makeInlineImage(cipherTransform) { - var lexer = this.lexer; - var stream = lexer.stream; - var dict = new _primitives.Dict(this.xref); - var dictLength; + } - while (!(0, _primitives.isCmd)(this.buf1, 'ID') && !(0, _primitives.isEOF)(this.buf1)) { - if (!(0, _primitives.isName)(this.buf1)) { - throw new _util.FormatError('Dictionary key must be a name object'); - } + makeInlineImage(cipherTransform) { + const lexer = this.lexer; + const stream = lexer.stream; + const dict = new _primitives.Dict(this.xref); + let dictLength; - var key = this.buf1.name; - this.shift(); - - if ((0, _primitives.isEOF)(this.buf1)) { - break; - } - - dict.set(key, this.getObj(cipherTransform)); + while (!(0, _primitives.isCmd)(this.buf1, "ID") && !(0, _primitives.isEOF)(this.buf1)) { + if (!(0, _primitives.isName)(this.buf1)) { + throw new _util.FormatError("Dictionary key must be a name object"); } - if (lexer.beginInlineImagePos !== -1) { - dictLength = stream.pos - lexer.beginInlineImagePos; - } - - var filter = dict.get('Filter', 'F'); - var filterName; - - if ((0, _primitives.isName)(filter)) { - filterName = filter.name; - } else if (Array.isArray(filter)) { - var filterZero = this.xref.fetchIfRef(filter[0]); - - if ((0, _primitives.isName)(filterZero)) { - filterName = filterZero.name; - } - } - - var startPos = stream.pos; - var length; - - if (filterName === 'DCTDecode' || filterName === 'DCT') { - length = this.findDCTDecodeInlineStreamEnd(stream); - } else if (filterName === 'ASCII85Decode' || 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 cacheKey; - - if (length < MAX_LENGTH_TO_CACHE && dictLength < MAX_ADLER32_LENGTH) { - var imageBytes = imageStream.getBytes(); - imageStream.reset(); - var initialStreamPos = stream.pos; - stream.pos = lexer.beginInlineImagePos; - var dictBytes = stream.getBytes(dictLength); - stream.pos = initialStreamPos; - cacheKey = computeAdler32(imageBytes) + '_' + computeAdler32(dictBytes); - var cacheEntry = this.imageCache[cacheKey]; - - if (cacheEntry !== undefined) { - this.buf2 = _primitives.Cmd.get('EI'); - this.shift(); - cacheEntry.reset(); - return cacheEntry; - } - } - - if (cipherTransform) { - imageStream = cipherTransform.createStream(imageStream, length); - } - - imageStream = this.filter(imageStream, dict, length); - imageStream.dict = dict; - - if (cacheKey !== undefined) { - imageStream.cacheKey = "inline_".concat(length, "_").concat(cacheKey); - this.imageCache[cacheKey] = imageStream; - } - - this.buf2 = _primitives.Cmd.get('EI'); + const key = this.buf1.name; this.shift(); - return imageStream; - } - }, { - key: "_findStreamLength", - value: function _findStreamLength(startPos, signature) { - var stream = this.lexer.stream; - stream.pos = startPos; - var SCAN_BLOCK_LENGTH = 2048; - var signatureLength = signature.length; - while (stream.pos < stream.end) { - var scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH); - var scanLength = scanBytes.length - signatureLength; - - if (scanLength <= 0) { - break; - } - - var pos = 0; - - while (pos < scanLength) { - var j = 0; - - while (j < signatureLength && scanBytes[pos + j] === signature[j]) { - j++; - } - - if (j >= signatureLength) { - stream.pos += pos; - return stream.pos - startPos; - } - - pos++; - } - - stream.pos += scanLength; + if ((0, _primitives.isEOF)(this.buf1)) { + break; } - return -1; + dict.set(key, this.getObj(cipherTransform)); } - }, { - key: "makeStream", - value: function makeStream(dict, cipherTransform) { - var lexer = this.lexer; - var stream = lexer.stream; - lexer.skipToNextLine(); - var startPos = stream.pos - 1; - var length = dict.get('Length'); - if (!Number.isInteger(length)) { - (0, _util.info)("Bad length \"".concat(length, "\" in stream")); - length = 0; + if (lexer.beginInlineImagePos !== -1) { + dictLength = stream.pos - lexer.beginInlineImagePos; + } + + const filter = dict.get("Filter", "F"); + let filterName; + + if ((0, _primitives.isName)(filter)) { + filterName = filter.name; + } else if (Array.isArray(filter)) { + const filterZero = this.xref.fetchIfRef(filter[0]); + + if ((0, _primitives.isName)(filterZero)) { + filterName = filterZero.name; } + } - stream.pos = startPos + length; - lexer.nextChar(); + const startPos = stream.pos; + let length; - if (this.tryShift() && (0, _primitives.isCmd)(this.buf2, 'endstream')) { + if (filterName === "DCTDecode" || filterName === "DCT") { + length = this.findDCTDecodeInlineStreamEnd(stream); + } else if (filterName === "ASCII85Decode" || filterName === "A85") { + length = this.findASCII85DecodeInlineStreamEnd(stream); + } else if (filterName === "ASCIIHexDecode" || filterName === "AHx") { + length = this.findASCIIHexDecodeInlineStreamEnd(stream); + } else { + length = this.findDefaultInlineStreamEnd(stream); + } + + let imageStream = stream.makeSubStream(startPos, length, dict); + let cacheKey; + + if (length < MAX_LENGTH_TO_CACHE && dictLength < MAX_ADLER32_LENGTH) { + const imageBytes = imageStream.getBytes(); + imageStream.reset(); + const initialStreamPos = stream.pos; + stream.pos = lexer.beginInlineImagePos; + const dictBytes = stream.getBytes(dictLength); + stream.pos = initialStreamPos; + cacheKey = computeAdler32(imageBytes) + "_" + computeAdler32(dictBytes); + const cacheEntry = this.imageCache[cacheKey]; + + if (cacheEntry !== undefined) { + this.buf2 = _primitives.Cmd.get("EI"); this.shift(); - } else { - var ENDSTREAM_SIGNATURE = new Uint8Array([0x65, 0x6E, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6D]); + cacheEntry.reset(); + return cacheEntry; + } + } - var actualLength = this._findStreamLength(startPos, ENDSTREAM_SIGNATURE); + if (cipherTransform) { + imageStream = cipherTransform.createStream(imageStream, length); + } - if (actualLength < 0) { - var MAX_TRUNCATION = 1; + imageStream = this.filter(imageStream, dict, length); + imageStream.dict = dict; - for (var i = 1; i <= MAX_TRUNCATION; i++) { - var end = ENDSTREAM_SIGNATURE.length - i; - var TRUNCATED_SIGNATURE = ENDSTREAM_SIGNATURE.slice(0, end); + if (cacheKey !== undefined) { + imageStream.cacheKey = `inline_${length}_${cacheKey}`; + this.imageCache[cacheKey] = imageStream; + } - var maybeLength = this._findStreamLength(startPos, TRUNCATED_SIGNATURE); + this.buf2 = _primitives.Cmd.get("EI"); + this.shift(); + return imageStream; + } - if (maybeLength >= 0) { - var lastByte = stream.peekBytes(end + 1)[end]; + _findStreamLength(startPos, signature) { + const { + stream + } = this.lexer; + stream.pos = startPos; + const SCAN_BLOCK_LENGTH = 2048; + const signatureLength = signature.length; - if (!(0, _util.isSpace)(lastByte)) { - break; - } + while (stream.pos < stream.end) { + const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH); + const scanLength = scanBytes.length - signatureLength; - (0, _util.info)("Found \"".concat((0, _util.bytesToString)(TRUNCATED_SIGNATURE), "\" when ") + 'searching for endstream command.'); - actualLength = maybeLength; + if (scanLength <= 0) { + break; + } + + let pos = 0; + + while (pos < scanLength) { + let j = 0; + + while (j < signatureLength && scanBytes[pos + j] === signature[j]) { + j++; + } + + if (j >= signatureLength) { + stream.pos += pos; + return stream.pos - startPos; + } + + pos++; + } + + stream.pos += scanLength; + } + + return -1; + } + + makeStream(dict, cipherTransform) { + const lexer = this.lexer; + let stream = lexer.stream; + lexer.skipToNextLine(); + const startPos = stream.pos - 1; + let length = dict.get("Length"); + + if (!Number.isInteger(length)) { + (0, _util.info)(`Bad length "${length}" in stream`); + length = 0; + } + + stream.pos = startPos + length; + lexer.nextChar(); + + if (this.tryShift() && (0, _primitives.isCmd)(this.buf2, "endstream")) { + this.shift(); + } else { + const ENDSTREAM_SIGNATURE = new Uint8Array([0x65, 0x6E, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6D]); + + let actualLength = this._findStreamLength(startPos, ENDSTREAM_SIGNATURE); + + if (actualLength < 0) { + const MAX_TRUNCATION = 1; + + for (let i = 1; i <= MAX_TRUNCATION; i++) { + const end = ENDSTREAM_SIGNATURE.length - i; + const TRUNCATED_SIGNATURE = ENDSTREAM_SIGNATURE.slice(0, end); + + const maybeLength = this._findStreamLength(startPos, TRUNCATED_SIGNATURE); + + if (maybeLength >= 0) { + const lastByte = stream.peekBytes(end + 1)[end]; + + if (!(0, _core_utils.isWhiteSpace)(lastByte)) { break; } - } - if (actualLength < 0) { - throw new _util.FormatError('Missing endstream command.'); + (0, _util.info)(`Found "${(0, _util.bytesToString)(TRUNCATED_SIGNATURE)}" when ` + "searching for endstream command."); + actualLength = maybeLength; + break; } } - length = actualLength; - lexer.nextChar(); - this.shift(); - this.shift(); + if (actualLength < 0) { + throw new _util.FormatError("Missing endstream command."); + } } + length = actualLength; + lexer.nextChar(); this.shift(); - stream = stream.makeSubStream(startPos, length, dict); + this.shift(); + } - if (cipherTransform) { - stream = cipherTransform.createStream(stream, length); + this.shift(); + stream = stream.makeSubStream(startPos, length, dict); + + if (cipherTransform) { + stream = cipherTransform.createStream(stream, length); + } + + stream = this.filter(stream, dict, length); + stream.dict = dict; + return stream; + } + + filter(stream, dict, length) { + let filter = dict.get("Filter", "F"); + let params = dict.get("DecodeParms", "DP"); + + if ((0, _primitives.isName)(filter)) { + if (Array.isArray(params)) { + (0, _util.warn)("/DecodeParms should not contain an Array, " + "when /Filter contains a Name."); } - stream = this.filter(stream, dict, length); - stream.dict = dict; + return this.makeFilter(stream, filter.name, length, params); + } + + let maybeLength = length; + + if (Array.isArray(filter)) { + const filterArray = filter; + const paramsArray = params; + + for (let i = 0, ii = filterArray.length; i < ii; ++i) { + filter = this.xref.fetchIfRef(filterArray[i]); + + if (!(0, _primitives.isName)(filter)) { + throw new _util.FormatError(`Bad filter name "${filter}"`); + } + + params = null; + + if (Array.isArray(paramsArray) && i in paramsArray) { + params = this.xref.fetchIfRef(paramsArray[i]); + } + + stream = this.makeFilter(stream, filter.name, maybeLength, params); + maybeLength = null; + } + } + + return stream; + } + + makeFilter(stream, name, maybeLength, params) { + if (maybeLength === 0) { + (0, _util.warn)(`Empty "${name}" stream.`); + return new _stream.NullStream(); + } + + try { + const xrefStreamStats = this.xref.stats.streamTypes; + + if (name === "FlateDecode" || name === "Fl") { + xrefStreamStats[_util.StreamType.FLATE] = true; + + if (params) { + return new _stream.PredictorStream(new _stream.FlateStream(stream, maybeLength), maybeLength, params); + } + + return new _stream.FlateStream(stream, maybeLength); + } + + if (name === "LZWDecode" || name === "LZW") { + xrefStreamStats[_util.StreamType.LZW] = true; + let earlyChange = 1; + + if (params) { + if (params.has("EarlyChange")) { + earlyChange = params.get("EarlyChange"); + } + + return new _stream.PredictorStream(new _stream.LZWStream(stream, maybeLength, earlyChange), maybeLength, params); + } + + return new _stream.LZWStream(stream, maybeLength, earlyChange); + } + + if (name === "DCTDecode" || name === "DCT") { + xrefStreamStats[_util.StreamType.DCT] = true; + return new _jpeg_stream.JpegStream(stream, maybeLength, stream.dict, params); + } + + if (name === "JPXDecode" || name === "JPX") { + xrefStreamStats[_util.StreamType.JPX] = true; + return new _jpx_stream.JpxStream(stream, maybeLength, stream.dict, params); + } + + if (name === "ASCII85Decode" || name === "A85") { + xrefStreamStats[_util.StreamType.A85] = true; + return new _stream.Ascii85Stream(stream, maybeLength); + } + + if (name === "ASCIIHexDecode" || name === "AHx") { + xrefStreamStats[_util.StreamType.AHX] = true; + return new _stream.AsciiHexStream(stream, maybeLength); + } + + if (name === "CCITTFaxDecode" || name === "CCF") { + xrefStreamStats[_util.StreamType.CCF] = true; + return new _ccitt_stream.CCITTFaxStream(stream, maybeLength, params); + } + + if (name === "RunLengthDecode" || name === "RL") { + xrefStreamStats[_util.StreamType.RLX] = true; + return new _stream.RunLengthStream(stream, maybeLength); + } + + if (name === "JBIG2Decode") { + xrefStreamStats[_util.StreamType.JBIG] = true; + return new _jbig2_stream.Jbig2Stream(stream, maybeLength, stream.dict, params); + } + + (0, _util.warn)(`Filter "${name}" is not supported.`); return stream; + } catch (ex) { + if (ex instanceof _core_utils.MissingDataException) { + throw ex; + } + + (0, _util.warn)(`Invalid stream: "${ex}"`); + return new _stream.NullStream(); } - }, { - key: "filter", - value: function filter(stream, dict, length) { - var filter = dict.get('Filter', 'F'); - var params = dict.get('DecodeParms', 'DP'); + } - if ((0, _primitives.isName)(filter)) { - if (Array.isArray(params)) { - (0, _util.warn)('/DecodeParms should not contain an Array, ' + 'when /Filter contains a Name.'); - } - - return this.makeFilter(stream, filter.name, length, params); - } - - var maybeLength = length; - - if (Array.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 (!(0, _primitives.isName)(filter)) { - throw new _util.FormatError("Bad filter name \"".concat(filter, "\"")); - } - - params = null; - - if (Array.isArray(paramsArray) && i in paramsArray) { - params = this.xref.fetchIfRef(paramsArray[i]); - } - - stream = this.makeFilter(stream, filter.name, maybeLength, params); - maybeLength = null; - } - } - - return stream; - } - }, { - key: "makeFilter", - value: function makeFilter(stream, name, maybeLength, params) { - if (maybeLength === 0) { - (0, _util.warn)("Empty \"".concat(name, "\" stream.")); - return new _stream.NullStream(); - } - - try { - var xrefStreamStats = this.xref.stats.streamTypes; - - if (name === 'FlateDecode' || name === 'Fl') { - xrefStreamStats[_util.StreamType.FLATE] = true; - - if (params) { - return new _stream.PredictorStream(new _stream.FlateStream(stream, maybeLength), maybeLength, params); - } - - return new _stream.FlateStream(stream, maybeLength); - } - - if (name === 'LZWDecode' || name === 'LZW') { - xrefStreamStats[_util.StreamType.LZW] = true; - var earlyChange = 1; - - if (params) { - if (params.has('EarlyChange')) { - earlyChange = params.get('EarlyChange'); - } - - return new _stream.PredictorStream(new _stream.LZWStream(stream, maybeLength, earlyChange), maybeLength, params); - } - - return new _stream.LZWStream(stream, maybeLength, earlyChange); - } - - if (name === 'DCTDecode' || name === 'DCT') { - xrefStreamStats[_util.StreamType.DCT] = true; - return new _jpeg_stream.JpegStream(stream, maybeLength, stream.dict, params); - } - - if (name === 'JPXDecode' || name === 'JPX') { - xrefStreamStats[_util.StreamType.JPX] = true; - return new _jpx_stream.JpxStream(stream, maybeLength, stream.dict, params); - } - - if (name === 'ASCII85Decode' || name === 'A85') { - xrefStreamStats[_util.StreamType.A85] = true; - return new _stream.Ascii85Stream(stream, maybeLength); - } - - if (name === 'ASCIIHexDecode' || name === 'AHx') { - xrefStreamStats[_util.StreamType.AHX] = true; - return new _stream.AsciiHexStream(stream, maybeLength); - } - - if (name === 'CCITTFaxDecode' || name === 'CCF') { - xrefStreamStats[_util.StreamType.CCF] = true; - return new _ccitt_stream.CCITTFaxStream(stream, maybeLength, params); - } - - if (name === 'RunLengthDecode' || name === 'RL') { - xrefStreamStats[_util.StreamType.RL] = true; - return new _stream.RunLengthStream(stream, maybeLength); - } - - if (name === 'JBIG2Decode') { - xrefStreamStats[_util.StreamType.JBIG] = true; - return new _jbig2_stream.Jbig2Stream(stream, maybeLength, stream.dict, params); - } - - (0, _util.warn)("Filter \"".concat(name, "\" is not supported.")); - return stream; - } catch (ex) { - if (ex instanceof _core_utils.MissingDataException) { - throw ex; - } - - (0, _util.warn)("Invalid stream: \"".concat(ex, "\"")); - return new _stream.NullStream(); - } - } - }]); - - return Parser; -}(); +} exports.Parser = Parser; -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]; +const 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; + return ch & 0x0f; } if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) { - return (ch & 0x0F) + 9; + return (ch & 0x0f) + 9; } return -1; } -var Lexer = -/*#__PURE__*/ -function () { - function Lexer(stream) { - var knownCommands = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - - _classCallCheck(this, Lexer); - +class Lexer { + constructor(stream, knownCommands = null) { this.stream = stream; this.nextChar(); this.strBuf = []; this.knownCommands = knownCommands; + this._hexStringNumWarn = 0; this.beginInlineImagePos = -1; } - _createClass(Lexer, [{ - key: "nextChar", - value: function nextChar() { - return this.currentChar = this.stream.getByte(); + nextChar() { + return this.currentChar = this.stream.getByte(); + } + + peekChar() { + return this.stream.peekByte(); + } + + getNumber() { + let ch = this.currentChar; + let eNotation = false; + let divideBy = 0; + let sign = 0; + + if (ch === 0x2d) { + sign = -1; + ch = this.nextChar(); + + if (ch === 0x2d) { + ch = this.nextChar(); + } + } else if (ch === 0x2b) { + sign = 1; + ch = this.nextChar(); } - }, { - key: "peekChar", - value: function peekChar() { - return this.stream.peekByte(); + + if (ch === 0x0a || ch === 0x0d) { + do { + ch = this.nextChar(); + } while (ch === 0x0a || ch === 0x0d); } - }, { - key: "getNumber", - value: function getNumber() { - var ch = this.currentChar; - var eNotation = false; - var divideBy = 0; - var sign = 0; - if (ch === 0x2D) { - sign = -1; - ch = this.nextChar(); + if (ch === 0x2e) { + divideBy = 10; + ch = this.nextChar(); + } - if (ch === 0x2D) { - ch = this.nextChar(); + if (ch < 0x30 || ch > 0x39) { + if (divideBy === 10 && sign === 0 && ((0, _core_utils.isWhiteSpace)(ch) || ch === -1)) { + (0, _util.warn)("Lexer.getNumber - treating a single decimal point as zero."); + return 0; + } + + throw new _util.FormatError(`Invalid number: ${String.fromCharCode(ch)} (charCode ${ch})`); + } + + sign = sign || 1; + let baseValue = ch - 0x30; + let powerValue = 0; + let powerValueSign = 1; + + while ((ch = this.nextChar()) >= 0) { + if (ch >= 0x30 && ch <= 0x39) { + const currentDigit = ch - 0x30; + + if (eNotation) { + powerValue = powerValue * 10 + currentDigit; + } else { + if (divideBy !== 0) { + divideBy *= 10; + } + + baseValue = baseValue * 10 + currentDigit; } - } else if (ch === 0x2B) { - sign = 1; - ch = this.nextChar(); - } - - if (ch === 0x0A || ch === 0x0D) { - do { - ch = this.nextChar(); - } while (ch === 0x0A || ch === 0x0D); - } - - if (ch === 0x2E) { - divideBy = 10; - ch = this.nextChar(); - } - - if (ch < 0x30 || ch > 0x39) { - if (divideBy === 10 && sign === 0 && ((0, _util.isSpace)(ch) || ch === -1)) { - (0, _util.warn)('Lexer.getNumber - treating a single decimal point as zero.'); - return 0; - } - - throw new _util.FormatError("Invalid number: ".concat(String.fromCharCode(ch), " (charCode ").concat(ch, ")")); - } - - sign = sign || 1; - 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) { - (0, _util.warn)('Badly formatted number: minus sign in the middle'); - } 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 if (ch === 0x2e) { + if (divideBy === 0) { + divideBy = 1; } else { break; } - } + } else if (ch === 0x2d) { + (0, _util.warn)("Badly formatted number: minus sign in the middle"); + } else if (ch === 0x45 || ch === 0x65) { + ch = this.peekChar(); - if (divideBy !== 0) { - baseValue /= divideBy; - } - - if (eNotation) { - baseValue *= Math.pow(10, powerValueSign * powerValue); - } - - return sign * baseValue; - } - }, { - key: "getString", - value: function 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: - (0, _util.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: - (0, _util.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(''); - } - }, { - key: "getName", - value: function 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]) { - (0, _util.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) { - (0, _util.warn)("Lexer_getName: Illegal digit (".concat(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) { - (0, _util.warn)("Name token is longer than allowed by the spec: ".concat(strBuf.length)); - } - - return _primitives.Name.get(strBuf.join('')); - } - }, { - key: "getHexString", - value: function getHexString() { - var strBuf = this.strBuf; - strBuf.length = 0; - var ch = this.currentChar; - var isFirstHex = true; - var firstDigit, secondDigit; - - while (true) { - if (ch < 0) { - (0, _util.warn)('Unterminated hex string'); - break; - } else if (ch === 0x3E) { + if (ch === 0x2b || ch === 0x2d) { + powerValueSign = ch === 0x2d ? -1 : 1; this.nextChar(); + } else if (ch < 0x30 || ch > 0x39) { break; - } else if (specialChars[ch] === 1) { - ch = this.nextChar(); - continue; - } else { - if (isFirstHex) { - firstDigit = toHexDigit(ch); - - if (firstDigit === -1) { - (0, _util.warn)("Ignoring invalid character \"".concat(ch, "\" in hex string")); - ch = this.nextChar(); - continue; - } - } else { - secondDigit = toHexDigit(ch); - - if (secondDigit === -1) { - (0, _util.warn)("Ignoring invalid character \"".concat(ch, "\" in hex string")); - ch = this.nextChar(); - continue; - } - - strBuf.push(String.fromCharCode(firstDigit << 4 | secondDigit)); - } - - isFirstHex = !isFirstHex; - ch = this.nextChar(); } - } - return strBuf.join(''); + eNotation = true; + } else { + break; + } } - }, { - key: "getObj", - value: function getObj() { - var comment = false; - var ch = this.currentChar; - while (true) { - if (ch < 0) { - return _primitives.EOF; - } + if (divideBy !== 0) { + baseValue /= divideBy; + } - if (comment) { - if (ch === 0x0A || ch === 0x0D) { - comment = false; - } - } else if (ch === 0x25) { - comment = true; - } else if (specialChars[ch] !== 1) { - break; - } + if (eNotation) { + baseValue *= 10 ** (powerValueSign * powerValue); + } - ch = this.nextChar(); - } + return sign * baseValue; + } + + getString() { + let numParen = 1; + let done = false; + const strBuf = this.strBuf; + strBuf.length = 0; + let ch = this.nextChar(); + + while (true) { + let charBuffered = false; 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 -1: + (0, _util.warn)("Unterminated string"); + done = true; + break; case 0x28: - return this.getString(); - - case 0x2F: - return this.getName(); - - case 0x5B: - this.nextChar(); - return _primitives.Cmd.get('['); - - case 0x5D: - this.nextChar(); - return _primitives.Cmd.get(']'); - - case 0x3C: - ch = this.nextChar(); - - if (ch === 0x3C) { - this.nextChar(); - return _primitives.Cmd.get('<<'); - } - - return this.getHexString(); - - case 0x3E: - ch = this.nextChar(); - - if (ch === 0x3E) { - this.nextChar(); - return _primitives.Cmd.get('>>'); - } - - return _primitives.Cmd.get('>'); - - case 0x7B: - this.nextChar(); - return _primitives.Cmd.get('{'); - - case 0x7D: - this.nextChar(); - return _primitives.Cmd.get('}'); + ++numParen; + strBuf.push("("); + break; case 0x29: - this.nextChar(); - throw new _util.FormatError("Illegal character: ".concat(ch)); - } - - 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) { - throw new _util.FormatError("Command token too long: ".concat(str.length)); - } - - str = possibleCommand; - knownCommandFound = knownCommands && knownCommands[str] !== undefined; - } - - if (str === 'true') { - return true; - } - - if (str === 'false') { - return false; - } - - if (str === 'null') { - return null; - } - - if (str === 'BI') { - this.beginInlineImagePos = this.stream.pos; - } - - return _primitives.Cmd.get(str); - } - }, { - key: "skipToNextLine", - value: function skipToNextLine() { - var ch = this.currentChar; - - while (ch >= 0) { - if (ch === 0x0D) { - ch = this.nextChar(); - - if (ch === 0x0A) { + if (--numParen === 0) { this.nextChar(); + done = true; + } else { + strBuf.push(")"); } break; - } else if (ch === 0x0A) { - this.nextChar(); - break; - } + case 0x5c: + ch = this.nextChar(); + + switch (ch) { + case -1: + (0, _util.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: + let 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 Lexer; -}(); + return strBuf.join(""); + } + + getName() { + let ch, previousCh; + const strBuf = this.strBuf; + strBuf.length = 0; + + while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) { + if (ch === 0x23) { + ch = this.nextChar(); + + if (specialChars[ch]) { + (0, _util.warn)("Lexer_getName: " + "NUMBER SIGN (#) should be followed by a hexadecimal number."); + strBuf.push("#"); + break; + } + + const x = toHexDigit(ch); + + if (x !== -1) { + previousCh = ch; + ch = this.nextChar(); + const x2 = toHexDigit(ch); + + if (x2 === -1) { + (0, _util.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) { + (0, _util.warn)(`Name token is longer than allowed by the spec: ${strBuf.length}`); + } + + return _primitives.Name.get(strBuf.join("")); + } + + _hexStringWarn(ch) { + const MAX_HEX_STRING_NUM_WARN = 5; + + if (this._hexStringNumWarn++ === MAX_HEX_STRING_NUM_WARN) { + (0, _util.warn)("getHexString - ignoring additional invalid characters."); + return; + } + + if (this._hexStringNumWarn > MAX_HEX_STRING_NUM_WARN) { + return; + } + + (0, _util.warn)(`getHexString - ignoring invalid character: ${ch}`); + } + + getHexString() { + const strBuf = this.strBuf; + strBuf.length = 0; + let ch = this.currentChar; + let isFirstHex = true; + let firstDigit, secondDigit; + this._hexStringNumWarn = 0; + + while (true) { + if (ch < 0) { + (0, _util.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) { + this._hexStringWarn(ch); + + ch = this.nextChar(); + continue; + } + } else { + secondDigit = toHexDigit(ch); + + if (secondDigit === -1) { + this._hexStringWarn(ch); + + ch = this.nextChar(); + continue; + } + + strBuf.push(String.fromCharCode(firstDigit << 4 | secondDigit)); + } + + isFirstHex = !isFirstHex; + ch = this.nextChar(); + } + } + + return strBuf.join(""); + } + + getObj() { + let comment = false; + let ch = this.currentChar; + + while (true) { + if (ch < 0) { + return _primitives.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 _primitives.Cmd.get("["); + + case 0x5d: + this.nextChar(); + return _primitives.Cmd.get("]"); + + case 0x3c: + ch = this.nextChar(); + + if (ch === 0x3c) { + this.nextChar(); + return _primitives.Cmd.get("<<"); + } + + return this.getHexString(); + + case 0x3e: + ch = this.nextChar(); + + if (ch === 0x3e) { + this.nextChar(); + return _primitives.Cmd.get(">>"); + } + + return _primitives.Cmd.get(">"); + + case 0x7b: + this.nextChar(); + return _primitives.Cmd.get("{"); + + case 0x7d: + this.nextChar(); + return _primitives.Cmd.get("}"); + + case 0x29: + this.nextChar(); + throw new _util.FormatError(`Illegal character: ${ch}`); + } + + let str = String.fromCharCode(ch); + const knownCommands = this.knownCommands; + let knownCommandFound = knownCommands && knownCommands[str] !== undefined; + + while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) { + const possibleCommand = str + String.fromCharCode(ch); + + if (knownCommandFound && knownCommands[possibleCommand] === undefined) { + break; + } + + if (str.length === 128) { + throw new _util.FormatError(`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; + } + + if (str === "BI") { + this.beginInlineImagePos = this.stream.pos; + } + + return _primitives.Cmd.get(str); + } + + peekObj() { + const streamPos = this.stream.pos, + currentChar = this.currentChar, + beginInlineImagePos = this.beginInlineImagePos; + let nextObj; + + try { + nextObj = this.getObj(); + } catch (ex) { + if (ex instanceof _core_utils.MissingDataException) { + throw ex; + } + + (0, _util.warn)(`peekObj: ${ex}`); + } + + this.stream.pos = streamPos; + this.currentChar = currentChar; + this.beginInlineImagePos = beginInlineImagePos; + return nextObj; + } + + skipToNextLine() { + let 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(); + } + } + +} exports.Lexer = Lexer; -var Linearization = -/*#__PURE__*/ -function () { - function Linearization() { - _classCallCheck(this, Linearization); +class Linearization { + static create(stream) { + function getInt(linDict, name, allowZeroValue = false) { + const obj = linDict.get(name); + + if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) { + return obj; + } + + throw new Error(`The "${name}" parameter in the linearization ` + "dictionary is invalid."); + } + + function getHints(linDict) { + const hints = linDict.get("H"); + let hintsLength; + + if (Array.isArray(hints) && ((hintsLength = hints.length) === 2 || hintsLength === 4)) { + for (let index = 0; index < hintsLength; index++) { + const hint = hints[index]; + + if (!(Number.isInteger(hint) && hint > 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."); + } + + const parser = new Parser({ + lexer: new Lexer(stream), + xref: null + }); + const obj1 = parser.getObj(); + const obj2 = parser.getObj(); + const obj3 = parser.getObj(); + const linDict = parser.getObj(); + let obj, length; + + if (!(Number.isInteger(obj1) && Number.isInteger(obj2) && (0, _primitives.isCmd)(obj3, "obj") && (0, _primitives.isDict)(linDict) && (0, _util.isNum)(obj = linDict.get("Linearized")) && obj > 0)) { + return null; + } else if ((length = getInt(linDict, "L")) !== stream.length) { + throw new Error('The "L" parameter in the linearization dictionary ' + "does not equal the stream length."); + } + + return { + length, + hints: getHints(linDict), + objectNumberFirst: getInt(linDict, "O"), + endFirst: getInt(linDict, "E"), + numPages: getInt(linDict, "N"), + mainXRefEntriesOffset: getInt(linDict, "T"), + pageFirst: linDict.has("P") ? getInt(linDict, "P", true) : 0 + }; } - _createClass(Linearization, null, [{ - key: "create", - value: function create(stream) { - function getInt(linDict, name) { - var allowZeroValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - var obj = linDict.get(name); - - if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) { - return obj; - } - - throw new Error("The \"".concat(name, "\" parameter in the linearization ") + 'dictionary is invalid.'); - } - - function getHints(linDict) { - var hints = linDict.get('H'); - var hintsLength; - - if (Array.isArray(hints) && ((hintsLength = hints.length) === 2 || hintsLength === 4)) { - for (var index = 0; index < hintsLength; index++) { - var hint = hints[index]; - - if (!(Number.isInteger(hint) && hint > 0)) { - throw new Error("Hint (".concat(index, ") in the linearization dictionary ") + 'is invalid.'); - } - } - - return hints; - } - - throw new Error('Hint array in the linearization dictionary is invalid.'); - } - - var parser = new Parser({ - lexer: new Lexer(stream), - xref: null - }); - var obj1 = parser.getObj(); - var obj2 = parser.getObj(); - var obj3 = parser.getObj(); - var linDict = parser.getObj(); - var obj, length; - - if (!(Number.isInteger(obj1) && Number.isInteger(obj2) && (0, _primitives.isCmd)(obj3, 'obj') && (0, _primitives.isDict)(linDict) && (0, _util.isNum)(obj = linDict.get('Linearized')) && obj > 0)) { - return null; - } else if ((length = getInt(linDict, 'L')) !== stream.length) { - throw new Error('The "L" parameter in the linearization dictionary ' + 'does not equal the stream length.'); - } - - return { - length: length, - hints: getHints(linDict), - objectNumberFirst: getInt(linDict, 'O'), - endFirst: getInt(linDict, 'E'), - numPages: getInt(linDict, 'N'), - mainXRefEntriesOffset: getInt(linDict, 'T'), - pageFirst: linDict.has('P') ? getInt(linDict, 'P', true) : 0 - }; - } - }]); - - return Linearization; -}(); +} exports.Linearization = Linearization; /***/ }), -/* 158 */ +/* 12 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -17111,17 +7587,11 @@ Object.defineProperty(exports, "__esModule", { }); exports.LZWStream = exports.StringStream = exports.StreamsSequenceStream = exports.Stream = exports.RunLengthStream = exports.PredictorStream = exports.NullStream = exports.FlateStream = exports.DecodeStream = exports.DecryptStream = exports.AsciiHexStream = exports.Ascii85Stream = void 0; -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -var _primitives = __w_pdfjs_require__(151); +var _primitives = __w_pdfjs_require__(5); -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } - -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } - -function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } - -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } +var _core_utils = __w_pdfjs_require__(8); var Stream = function StreamClosure() { function Stream(arrayBuffer, start, length, dict) { @@ -17165,16 +7635,15 @@ var Stream = function StreamClosure() { var b3 = this.getByte(); return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3; }, - getBytes: function getBytes(length) { - var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + getBytes(length, forceClamped = false) { var bytes = this.bytes; var pos = this.pos; var strEnd = this.end; if (!length) { - var _subarray = bytes.subarray(pos, strEnd); - - return forceClamped ? new Uint8ClampedArray(_subarray) : _subarray; + const subarray = bytes.subarray(pos, strEnd); + return forceClamped ? new Uint8ClampedArray(subarray) : subarray; } var end = pos + length; @@ -17184,20 +7653,38 @@ var Stream = function StreamClosure() { } this.pos = end; - var subarray = bytes.subarray(pos, end); + const subarray = bytes.subarray(pos, end); return forceClamped ? new Uint8ClampedArray(subarray) : subarray; }, + peekByte: function Stream_peekByte() { var peekedByte = this.getByte(); - this.pos--; + + if (peekedByte !== -1) { + this.pos--; + } + return peekedByte; }, - peekBytes: function peekBytes(length) { - var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + peekBytes(length, forceClamped = false) { var bytes = this.getBytes(length, forceClamped); this.pos -= bytes.length; return bytes; }, + + getByteRange(begin, end) { + if (begin < 0) { + begin = 0; + } + + if (end > this.end) { + end = this.end; + } + + return this.bytes.subarray(begin, end); + }, + skip: function Stream_skip(n) { if (!n) { n = 1; @@ -17222,7 +7709,7 @@ exports.Stream = Stream; var StringStream = function StringStreamClosure() { function StringStream(str) { - var bytes = (0, _util.stringToBytes)(str); + const bytes = (0, _util.stringToBytes)(str); Stream.call(this, bytes); } @@ -17306,8 +7793,8 @@ var DecodeStream = function DecodeStreamClosure() { var b3 = this.getByte(); return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3; }, - getBytes: function getBytes(length) { - var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + getBytes(length, forceClamped = false) { var end, pos = this.pos; @@ -17333,20 +7820,26 @@ var DecodeStream = function DecodeStreamClosure() { } this.pos = end; - var subarray = this.buffer.subarray(pos, end); + const subarray = this.buffer.subarray(pos, end); return forceClamped && !(subarray instanceof Uint8ClampedArray) ? new Uint8ClampedArray(subarray) : subarray; }, + peekByte: function DecodeStream_peekByte() { var peekedByte = this.getByte(); - this.pos--; + + if (peekedByte !== -1) { + this.pos--; + } + return peekedByte; }, - peekBytes: function peekBytes(length) { - var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + peekBytes(length, forceClamped = false) { var bytes = this.getBytes(length, forceClamped); this.pos -= bytes.length; return bytes; }, + makeSubStream: function DecodeStream_makeSubStream(start, length, dict) { var end = start + length; @@ -17356,6 +7849,11 @@ var DecodeStream = function DecodeStreamClosure() { return new Stream(this.buffer, start, length, dict); }, + + getByteRange(begin, end) { + (0, _util.unreachable)("Should not call DecodeStream.getByteRange"); + }, + skip: function DecodeStream_skip(n) { if (!n) { n = 1; @@ -17382,10 +7880,10 @@ exports.DecodeStream = DecodeStream; var StreamsSequenceStream = function StreamsSequenceStreamClosure() { function StreamsSequenceStream(streams) { this.streams = streams; - var maybeLength = 0; + let maybeLength = 0; - for (var i = 0, ii = streams.length; i < ii; i++) { - var stream = streams[i]; + for (let i = 0, ii = streams.length; i < ii; i++) { + const stream = streams[i]; if (stream instanceof DecodeStream) { maybeLength += stream._rawMinBufferLength; @@ -17423,7 +7921,7 @@ var StreamsSequenceStream = function StreamsSequenceStreamClosure() { var stream = this.streams[i]; if (stream.getBaseStreams) { - baseStreams.push.apply(baseStreams, _toConsumableArray(stream.getBaseStreams())); + baseStreams.push(...stream.getBaseStreams()); } } @@ -17449,19 +7947,19 @@ var FlateStream = function FlateStreamClosure() { var flg = str.getByte(); if (cmf === -1 || flg === -1) { - throw new _util.FormatError("Invalid header in flate stream: ".concat(cmf, ", ").concat(flg)); + throw new _util.FormatError(`Invalid header in flate stream: ${cmf}, ${flg}`); } if ((cmf & 0x0f) !== 0x08) { - throw new _util.FormatError("Unknown compression method in flate stream: ".concat(cmf, ", ").concat(flg)); + throw new _util.FormatError(`Unknown compression method in flate stream: ${cmf}, ${flg}`); } if (((cmf << 8) + flg) % 31 !== 0) { - throw new _util.FormatError("Bad FCHECK in flate stream: ".concat(cmf, ", ").concat(flg)); + throw new _util.FormatError(`Bad FCHECK in flate stream: ${cmf}, ${flg}`); } if (flg & 0x20) { - throw new _util.FormatError("FDICT bit set in flate stream: ".concat(cmf, ", ").concat(flg)); + throw new _util.FormatError(`FDICT bit set in flate stream: ${cmf}, ${flg}`); } this.codeSize = 0; @@ -17479,7 +7977,7 @@ var FlateStream = function FlateStreamClosure() { while (codeSize < bits) { if ((b = str.getByte()) === -1) { - throw new _util.FormatError('Bad encoding in flate stream'); + throw new _util.FormatError("Bad encoding in flate stream"); } codeBuf |= b << codeSize; @@ -17514,7 +8012,7 @@ var FlateStream = function FlateStreamClosure() { var codeVal = code & 0xffff; if (codeLen < 1 || codeSize < codeLen) { - throw new _util.FormatError('Bad encoding in flate stream'); + throw new _util.FormatError("Bad encoding in flate stream"); } this.codeBuf = codeBuf >> codeLen; @@ -17574,38 +8072,38 @@ var FlateStream = function FlateStreamClosure() { var b; if ((b = str.getByte()) === -1) { - throw new _util.FormatError('Bad block header in flate stream'); + throw new _util.FormatError("Bad block header in flate stream"); } var blockLen = b; if ((b = str.getByte()) === -1) { - throw new _util.FormatError('Bad block header in flate stream'); + throw new _util.FormatError("Bad block header in flate stream"); } blockLen |= b << 8; if ((b = str.getByte()) === -1) { - throw new _util.FormatError('Bad block header in flate stream'); + throw new _util.FormatError("Bad block header in flate stream"); } var check = b; if ((b = str.getByte()) === -1) { - throw new _util.FormatError('Bad block header in flate stream'); + throw new _util.FormatError("Bad block header in flate stream"); } check |= b << 8; if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) { - throw new _util.FormatError('Bad uncompressed block length in flate stream'); + throw new _util.FormatError("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; + const bufferLength = this.bufferLength, + end = bufferLength + blockLen; + buffer = this.ensureBuffer(end); this.bufferLength = end; if (blockLen === 0) { @@ -17613,13 +8111,11 @@ var FlateStream = function FlateStreamClosure() { this.eof = true; } } else { - for (var n = bufferLength; n < end; ++n) { - if ((b = str.getByte()) === -1) { - this.eof = true; - break; - } + const block = str.getBytes(blockLen); + buffer.set(block, bufferLength); - buffer[n] = b; + if (block.length < blockLen) { + this.eof = true; } } @@ -17680,7 +8176,7 @@ var FlateStream = function FlateStreamClosure() { litCodeTable = this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes)); distCodeTable = this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes)); } else { - throw new _util.FormatError('Unknown block type in flate stream'); + throw new _util.FormatError("Unknown block type in flate stream"); } buffer = this.buffer; @@ -17746,14 +8242,14 @@ var PredictorStream = function PredictorStreamClosure() { return str; } - var predictor = this.predictor = params.get('Predictor') || 1; + var predictor = this.predictor = params.get("Predictor") || 1; if (predictor <= 1) { return str; } if (predictor !== 2 && (predictor < 10 || predictor > 15)) { - throw new _util.FormatError("Unsupported predictor: ".concat(predictor)); + throw new _util.FormatError(`Unsupported predictor: ${predictor}`); } if (predictor === 2) { @@ -17764,9 +8260,9 @@ var PredictorStream = function PredictorStreamClosure() { 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; + 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); @@ -17821,9 +8317,9 @@ var PredictorStream = function PredictorStreamClosure() { } for (; i < rowBytes; i += 2) { - var sum = ((rawBytes[i] & 0xFF) << 8) + (rawBytes[i + 1] & 0xFF) + ((buffer[pos - bytesPerPixel] & 0xFF) << 8) + (buffer[pos - bytesPerPixel + 1] & 0xFF); - buffer[pos++] = sum >> 8 & 0xFF; - buffer[pos++] = sum & 0xFF; + var sum = ((rawBytes[i] & 0xff) << 8) + (rawBytes[i + 1] & 0xff) + ((buffer[pos - bytesPerPixel] & 0xff) << 8) + (buffer[pos - bytesPerPixel + 1] & 0xff); + buffer[pos++] = sum >> 8 & 0xff; + buffer[pos++] = sum & 0xff; } } else { var compArray = new Uint8Array(colors + 1); @@ -17835,7 +8331,7 @@ var PredictorStream = function PredictorStreamClosure() { for (i = 0; i < columns; ++i) { for (var kk = 0; kk < colors; ++kk) { if (inbits < bits) { - inbuf = inbuf << 8 | rawBytes[j++] & 0xFF; + inbuf = inbuf << 8 | rawBytes[j++] & 0xff; inbits += 8; } @@ -17845,7 +8341,7 @@ var PredictorStream = function PredictorStreamClosure() { outbits += bits; if (outbits >= 8) { - buffer[k++] = outbuf >> outbits - 8 & 0xFF; + buffer[k++] = outbuf >> outbits - 8 & 0xff; outbits -= 8; } } @@ -17897,7 +8393,7 @@ var PredictorStream = function PredictorStreamClosure() { } for (; i < rowBytes; ++i) { - buffer[j] = buffer[j - pixBytes] + rawBytes[i] & 0xFF; + buffer[j] = buffer[j - pixBytes] + rawBytes[i] & 0xff; j++; } @@ -17905,7 +8401,7 @@ var PredictorStream = function PredictorStreamClosure() { case 2: for (i = 0; i < rowBytes; ++i) { - buffer[j++] = prevRow[i] + rawBytes[i] & 0xFF; + buffer[j++] = prevRow[i] + rawBytes[i] & 0xff; } break; @@ -17916,7 +8412,7 @@ var PredictorStream = function PredictorStreamClosure() { } for (; i < rowBytes; ++i) { - buffer[j] = (prevRow[i] + buffer[j - pixBytes] >> 1) + rawBytes[i] & 0xFF; + buffer[j] = (prevRow[i] + buffer[j - pixBytes] >> 1) + rawBytes[i] & 0xff; j++; } @@ -17966,7 +8462,7 @@ var PredictorStream = function PredictorStreamClosure() { break; default: - throw new _util.FormatError("Unsupported predictor: ".concat(predictor)); + throw new _util.FormatError(`Unsupported predictor: ${predictor}`); } this.bufferLength += rowBytes; @@ -18042,13 +8538,13 @@ var Ascii85Stream = function Ascii85StreamClosure() { Ascii85Stream.prototype = Object.create(DecodeStream.prototype); Ascii85Stream.prototype.readBlock = function Ascii85Stream_readBlock() { - var TILDA_CHAR = 0x7E; - var Z_LOWER_CHAR = 0x7A; + var TILDA_CHAR = 0x7e; + var Z_LOWER_CHAR = 0x7a; var EOF = -1; var str = this.str; var c = str.getByte(); - while ((0, _util.isSpace)(c)) { + while ((0, _core_utils.isWhiteSpace)(c)) { c = str.getByte(); } @@ -18076,7 +8572,7 @@ var Ascii85Stream = function Ascii85StreamClosure() { for (i = 1; i < 5; ++i) { c = str.getByte(); - while ((0, _util.isSpace)(c)) { + while ((0, _core_utils.isWhiteSpace)(c)) { c = str.getByte(); } @@ -18105,7 +8601,7 @@ var Ascii85Stream = function Ascii85StreamClosure() { } for (i = 3; i >= 0; --i) { - buffer[bufferLength + i] = t & 0xFF; + buffer[bufferLength + i] = t & 0xff; t >>= 8; } } @@ -18150,10 +8646,10 @@ var AsciiHexStream = function AsciiHexStreamClosure() { digit; if (ch >= 0x30 && ch <= 0x39) { - digit = ch & 0x0F; + digit = ch & 0x0f; } else if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) { - digit = (ch & 0x0F) + 9; - } else if (ch === 0x3E) { + digit = (ch & 0x0f) + 9; + } else if (ch === 0x3e) { this.eof = true; break; } else { @@ -18238,7 +8734,7 @@ var LZWStream = function LZWStreamClosure() { this.bitsCached = 0; var maxLzwDictionarySize = 4096; var lzwState = { - earlyChange: earlyChange, + earlyChange, codeLength: 9, nextCode: 258, dictionaryValues: new Uint8Array(maxLzwDictionarySize), @@ -18382,7 +8878,7 @@ var NullStream = function NullStreamClosure() { exports.NullStream = NullStream; /***/ }), -/* 159 */ +/* 13 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -18393,11 +8889,11 @@ Object.defineProperty(exports, "__esModule", { }); exports.CCITTFaxStream = void 0; -var _primitives = __w_pdfjs_require__(151); +var _primitives = __w_pdfjs_require__(5); -var _ccitt = __w_pdfjs_require__(160); +var _ccitt = __w_pdfjs_require__(14); -var _stream = __w_pdfjs_require__(158); +var _stream = __w_pdfjs_require__(12); var CCITTFaxStream = function CCITTFaxStreamClosure() { function CCITTFaxStream(str, maybeLength, params) { @@ -18408,19 +8904,20 @@ var CCITTFaxStream = function CCITTFaxStreamClosure() { params = _primitives.Dict.empty; } - var source = { - next: function next() { + const source = { + next() { return str.getByte(); } + }; this.ccittFaxDecoder = new _ccitt.CCITTFaxDecoder(source, { - K: params.get('K'), - EndOfLine: params.get('EndOfLine'), - EncodedByteAlign: params.get('EncodedByteAlign'), - Columns: params.get('Columns'), - Rows: params.get('Rows'), - EndOfBlock: params.get('EndOfBlock'), - BlackIs1: params.get('BlackIs1') + K: params.get("K"), + EndOfLine: params.get("EndOfLine"), + EncodedByteAlign: params.get("EncodedByteAlign"), + Columns: params.get("Columns"), + Rows: params.get("Rows"), + EndOfBlock: params.get("EndOfBlock"), + BlackIs1: params.get("BlackIs1") }); _stream.DecodeStream.call(this, maybeLength); @@ -18430,7 +8927,7 @@ var CCITTFaxStream = function CCITTFaxStreamClosure() { CCITTFaxStream.prototype.readBlock = function () { while (!this.eof) { - var c = this.ccittFaxDecoder.readNextChar(); + const c = this.ccittFaxDecoder.readNextChar(); if (c === -1) { this.eof = true; @@ -18448,7 +8945,7 @@ var CCITTFaxStream = function CCITTFaxStreamClosure() { exports.CCITTFaxStream = CCITTFaxStream; /***/ }), -/* 160 */ +/* 14 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -18459,49 +8956,47 @@ Object.defineProperty(exports, "__esModule", { }); exports.CCITTFaxDecoder = void 0; -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -var CCITTFaxDecoder = function CCITTFaxDecoder() { - 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]]; +const CCITTFaxDecoder = function CCITTFaxDecoder() { + const ccittEOL = -2; + const ccittEOF = -1; + const twoDimPass = 0; + const twoDimHoriz = 1; + const twoDimVert0 = 2; + const twoDimVertR1 = 3; + const twoDimVertL1 = 4; + const twoDimVertR2 = 5; + const twoDimVertL2 = 6; + const twoDimVertR3 = 7; + const twoDimVertL3 = 8; + const 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]]; + const 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]]; + const 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]]; + const 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]]; + const 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]]; + const 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 CCITTFaxDecoder(source) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - if (!source || typeof source.next !== 'function') { + function CCITTFaxDecoder(source, options = {}) { + if (!source || typeof source.next !== "function") { throw new Error('CCITTFaxDecoder - invalid "source" parameter.'); } this.source = source; this.eof = false; - this.encoding = options['K'] || 0; - this.eoline = options['EndOfLine'] || false; - this.byteAlign = options['EncodedByteAlign'] || false; - this.columns = options['Columns'] || 1728; - this.rows = options['Rows'] || 0; - var eoblock = options['EndOfBlock']; + this.encoding = options.K || 0; + this.eoline = options.EndOfLine || false; + this.byteAlign = options.EncodedByteAlign || false; + this.columns = options.Columns || 1728; + this.rows = options.Rows || 0; + let eoblock = options.EndOfBlock; if (eoblock === null || eoblock === undefined) { eoblock = true; } this.eoblock = eoblock; - this.black = options['BlackIs1'] || false; + this.black = options.BlackIs1 || false; this.codingLine = new Uint32Array(this.columns + 1); this.refLine = new Uint32Array(this.columns + 2); this.codingLine[0] = this.columns; @@ -18512,7 +9007,7 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { this.inputBuf = 0; this.outputBits = 0; this.rowsDone = false; - var code1; + let code1; while ((code1 = this._lookBits(12)) === 0) { this._eatBits(1); @@ -18530,15 +9025,15 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { } CCITTFaxDecoder.prototype = { - readNextChar: function readNextChar() { + readNextChar() { if (this.eof) { return -1; } - var refLine = this.refLine; - var codingLine = this.codingLine; - var columns = this.columns; - var refPos, blackPixels, bits, i; + const refLine = this.refLine; + const codingLine = this.codingLine; + const columns = this.columns; + let refPos, blackPixels, bits, i; if (this.outputBits === 0) { if (this.rowsDone) { @@ -18550,7 +9045,7 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { } this.err = false; - var code1, code2, code3; + let code1, code2, code3; if (this.nextLine2D) { for (i = 0; codingLine[i] < columns; ++i) { @@ -18734,7 +9229,7 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { break; default: - (0, _util.info)('bad 2d code'); + (0, _util.info)("bad 2d code"); this._addPixels(columns, 0); @@ -18765,7 +9260,7 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { } } - var gotEOL = false; + let gotEOL = false; if (this.byteAlign) { this.inputBits &= ~7; @@ -18822,7 +9317,7 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { code1 = this._lookBits(12); if (code1 !== 1) { - (0, _util.info)('bad rtc code: ' + code1); + (0, _util.info)("bad rtc code: " + code1); } this._eatBits(12); @@ -18871,10 +9366,10 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { this.row++; } - var c; + let c; if (this.outputBits >= 8) { - c = this.codingPos & 1 ? 0 : 0xFF; + c = this.codingPos & 1 ? 0 : 0xff; this.outputBits -= 8; if (this.outputBits === 0 && codingLine[this.codingPos] < columns) { @@ -18890,7 +9385,7 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { c <<= bits; if (!(this.codingPos & 1)) { - c |= 0xFF >> 8 - bits; + c |= 0xff >> 8 - bits; } this.outputBits -= bits; @@ -18899,7 +9394,7 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { c <<= this.outputBits; if (!(this.codingPos & 1)) { - c |= 0xFF >> 8 - this.outputBits; + c |= 0xff >> 8 - this.outputBits; } bits -= this.outputBits; @@ -18917,18 +9412,19 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { } if (this.black) { - c ^= 0xFF; + c ^= 0xff; } return c; }, - _addPixels: function _addPixels(a1, blackPixels) { - var codingLine = this.codingLine; - var codingPos = this.codingPos; + + _addPixels(a1, blackPixels) { + const codingLine = this.codingLine; + let codingPos = this.codingPos; if (a1 > codingLine[codingPos]) { if (a1 > this.columns) { - (0, _util.info)('row is wrong length'); + (0, _util.info)("row is wrong length"); this.err = true; a1 = this.columns; } @@ -18942,13 +9438,14 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { this.codingPos = codingPos; }, - _addPixelsNeg: function _addPixelsNeg(a1, blackPixels) { - var codingLine = this.codingLine; - var codingPos = this.codingPos; + + _addPixelsNeg(a1, blackPixels) { + const codingLine = this.codingLine; + let codingPos = this.codingPos; if (a1 > codingLine[codingPos]) { if (a1 > this.columns) { - (0, _util.info)('row is wrong length'); + (0, _util.info)("row is wrong length"); this.err = true; a1 = this.columns; } @@ -18960,7 +9457,7 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { codingLine[codingPos] = a1; } else if (a1 < codingLine[codingPos]) { if (a1 < 0) { - (0, _util.info)('invalid code'); + (0, _util.info)("invalid code"); this.err = true; a1 = 0; } @@ -18974,11 +9471,12 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { this.codingPos = codingPos; }, - _findTableCode: function _findTableCode(start, end, table, limit) { - var limitValue = limit || 0; - for (var i = start; i <= end; ++i) { - var code = this._lookBits(i); + _findTableCode(start, end, table, limit) { + const limitValue = limit || 0; + + for (let i = start; i <= end; ++i) { + let code = this._lookBits(i); if (code === ccittEOF) { return [true, 1, false]; @@ -18989,7 +9487,7 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { } if (!limitValue || code >= limitValue) { - var p = table[code - limitValue]; + const p = table[code - limitValue]; if (p[0] === i) { this._eatBits(i); @@ -19001,9 +9499,10 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { return [false, 0, false]; }, - _getTwoDimCode: function _getTwoDimCode() { - var code = 0; - var p; + + _getTwoDimCode() { + let code = 0; + let p; if (this.eoblock) { code = this._lookBits(7); @@ -19015,19 +9514,20 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { return p[1]; } } else { - var result = this._findTableCode(1, 7, twoDimTable); + const result = this._findTableCode(1, 7, twoDimTable); if (result[0] && result[2]) { return result[1]; } } - (0, _util.info)('Bad two dim code'); + (0, _util.info)("Bad two dim code"); return ccittEOF; }, - _getWhiteCode: function _getWhiteCode() { - var code = 0; - var p; + + _getWhiteCode() { + let code = 0; + let p; if (this.eoblock) { code = this._lookBits(12); @@ -19048,7 +9548,7 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { return p[1]; } } else { - var result = this._findTableCode(1, 9, whiteTable2); + let result = this._findTableCode(1, 9, whiteTable2); if (result[0]) { return result[1]; @@ -19061,14 +9561,15 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { } } - (0, _util.info)('bad white code'); + (0, _util.info)("bad white code"); this._eatBits(1); return 1; }, - _getBlackCode: function _getBlackCode() { - var code, p; + + _getBlackCode() { + let code, p; if (this.eoblock) { code = this._lookBits(13); @@ -19091,7 +9592,7 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { return p[1]; } } else { - var result = this._findTableCode(2, 6, blackTable3); + let result = this._findTableCode(2, 6, blackTable3); if (result[0]) { return result[1]; @@ -19110,14 +9611,15 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { } } - (0, _util.info)('bad black code'); + (0, _util.info)("bad black code"); this._eatBits(1); return 1; }, - _lookBits: function _lookBits(n) { - var c; + + _lookBits(n) { + let c; while (this.inputBits < n) { if ((c = this.source.next()) === -1) { @@ -19125,20 +9627,22 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { return ccittEOF; } - return this.inputBuf << n - this.inputBits & 0xFFFF >> 16 - n; + 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; + return this.inputBuf >> this.inputBits - n & 0xffff >> 16 - n; }, - _eatBits: function _eatBits(n) { + + _eatBits(n) { if ((this.inputBits -= n) < 0) { this.inputBits = 0; } } + }; return CCITTFaxDecoder; }(); @@ -19146,7 +9650,7 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() { exports.CCITTFaxDecoder = CCITTFaxDecoder; /***/ }), -/* 161 */ +/* 15 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -19157,15 +9661,15 @@ Object.defineProperty(exports, "__esModule", { }); exports.Jbig2Stream = void 0; -var _primitives = __w_pdfjs_require__(151); +var _primitives = __w_pdfjs_require__(5); -var _stream = __w_pdfjs_require__(158); +var _stream = __w_pdfjs_require__(12); -var _jbig = __w_pdfjs_require__(162); +var _jbig = __w_pdfjs_require__(16); -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -var Jbig2Stream = function Jbig2StreamClosure() { +const Jbig2Stream = function Jbig2StreamClosure() { function Jbig2Stream(stream, maybeLength, dict, params) { this.stream = stream; this.maybeLength = maybeLength; @@ -19176,10 +9680,11 @@ var Jbig2Stream = function Jbig2StreamClosure() { } Jbig2Stream.prototype = Object.create(_stream.DecodeStream.prototype); - Object.defineProperty(Jbig2Stream.prototype, 'bytes', { - get: function get() { - return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength)); + Object.defineProperty(Jbig2Stream.prototype, "bytes", { + get() { + return (0, _util.shadow)(this, "bytes", this.stream.getBytes(this.maybeLength)); }, + configurable: true }); @@ -19190,14 +9695,14 @@ var Jbig2Stream = function Jbig2StreamClosure() { return; } - var jbig2Image = new _jbig.Jbig2Image(); - var chunks = []; + const jbig2Image = new _jbig.Jbig2Image(); + const chunks = []; if ((0, _primitives.isDict)(this.params)) { - var globalsStream = this.params.get('JBIG2Globals'); + const globalsStream = this.params.get("JBIG2Globals"); if ((0, _primitives.isStream)(globalsStream)) { - var globals = globalsStream.getBytes(); + const globals = globalsStream.getBytes(); chunks.push({ data: globals, start: 0, @@ -19211,11 +9716,11 @@ var Jbig2Stream = function Jbig2StreamClosure() { start: 0, end: this.bytes.length }); - var data = jbig2Image.parseChunks(chunks); - var dataLength = data.length; + const data = jbig2Image.parseChunks(chunks); + const dataLength = data.length; - for (var i = 0; i < dataLength; i++) { - data[i] ^= 0xFF; + for (let i = 0; i < dataLength; i++) { + data[i] ^= 0xff; } this.buffer = data; @@ -19229,7 +9734,7 @@ var Jbig2Stream = function Jbig2StreamClosure() { exports.Jbig2Stream = Jbig2Stream; /***/ }), -/* 162 */ +/* 16 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -19240,34 +9745,33 @@ Object.defineProperty(exports, "__esModule", { }); exports.Jbig2Image = void 0; -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -var _arithmetic_decoder = __w_pdfjs_require__(163); +var _core_utils = __w_pdfjs_require__(8); -var _ccitt = __w_pdfjs_require__(160); +var _arithmetic_decoder = __w_pdfjs_require__(17); -var Jbig2Error = function Jbig2ErrorClosure() { - function Jbig2Error(msg) { - this.message = 'JBIG2 error: ' + msg; +var _ccitt = __w_pdfjs_require__(14); + +class Jbig2Error extends _util.BaseException { + constructor(msg) { + super(`JBIG2 error: ${msg}`); } - Jbig2Error.prototype = new Error(); - Jbig2Error.prototype.name = 'Jbig2Error'; - Jbig2Error.constructor = Jbig2Error; - return Jbig2Error; -}(); +} var Jbig2Image = function Jbig2ImageClosure() { function ContextCache() {} ContextCache.prototype = { - getContexts: function getContexts(id) { + getContexts(id) { if (id in this) { return this[id]; } return this[id] = new Int8Array(1 << 16); } + }; function DecodingContext(data, start, end) { @@ -19279,12 +9783,12 @@ var Jbig2Image = function Jbig2ImageClosure() { DecodingContext.prototype = { get decoder() { var decoder = new _arithmetic_decoder.ArithmeticDecoder(this.data, this.start, this.end); - return (0, _util.shadow)(this, 'decoder', decoder); + return (0, _util.shadow)(this, "decoder", decoder); }, get contextCache() { var cache = new ContextCache(); - return (0, _util.shadow)(this, 'contextCache', cache); + return (0, _util.shadow)(this, "contextCache", cache); } }; @@ -19307,11 +9811,18 @@ var Jbig2Image = function Jbig2ImageClosure() { 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; + + if (sign === 0) { + return value; + } else if (value > 0) { + return -value; + } + + return null; } function decodeIAID(contextCache, decoder, codeLength) { - var contexts = contextCache.getContexts('IAID'); + var contexts = contextCache.getContexts("IAID"); var prev = 1; for (var i = 0; i < codeLength; i++) { @@ -19323,10 +9834,10 @@ var Jbig2Image = function Jbig2ImageClosure() { return prev & (1 << codeLength) - 1; } - return prev & 0x7FFFFFFF; + 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 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 @@ -19524,12 +10035,12 @@ var Jbig2Image = function Jbig2ImageClosure() { y: 1 }] }]; - var ReusedContexts = [0x9B25, 0x0795, 0x00E5, 0x0195]; + 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 contexts = decodingContext.contextCache.getContexts("GB"); var contextLabel, i, j, @@ -19538,7 +10049,7 @@ var Jbig2Image = function Jbig2ImageClosure() { row1, row2, bitmap = []; - var OLD_PIXEL_MASK = 0x7BF7; + var OLD_PIXEL_MASK = 0x7bf7; for (i = 0; i < height; i++) { row = bitmap[i] = new Uint8Array(width); @@ -19557,7 +10068,7 @@ var Jbig2Image = function Jbig2ImageClosure() { function decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at, decodingContext) { if (mmr) { - var input = new Reader(decodingContext.data, decodingContext.start, decodingContext.end); + const input = new Reader(decodingContext.data, decodingContext.start, decodingContext.end); return decodeMMRBitmap(input, width, height, false); } @@ -19613,7 +10124,7 @@ var Jbig2Image = function Jbig2ImageClosure() { var row = new Uint8Array(width); var bitmap = []; var decoder = decodingContext.decoder; - var contexts = decodingContext.contextCache.getContexts('GB'); + var contexts = decodingContext.contextCache.getContexts("GB"); var ltp = 0, j, i0, @@ -19721,7 +10232,7 @@ var Jbig2Image = function Jbig2ImageClosure() { var pseudoPixelContext = RefinementReusedContexts[templateIndex]; var bitmap = []; var decoder = decodingContext.decoder; - var contexts = decodingContext.contextCache.getContexts('GR'); + var contexts = decodingContext.contextCache.getContexts("GR"); var ltp = 0; for (var i = 0; i < height; i++) { @@ -19730,7 +10241,7 @@ var Jbig2Image = function Jbig2ImageClosure() { ltp ^= sltp; if (ltp) { - throw new Jbig2Error('prediction is not supported'); + throw new Jbig2Error("prediction is not supported"); } } @@ -19773,15 +10284,15 @@ var Jbig2Image = function Jbig2ImageClosure() { function decodeSymbolDictionary(huffman, refinement, symbols, numberOfNewSymbols, numberOfExportedSymbols, huffmanTables, templateIndex, at, refinementTemplateIndex, refinementAt, decodingContext, huffmanInput) { if (huffman && refinement) { - throw new Jbig2Error('symbol refinement with Huffman is not supported'); + throw new Jbig2Error("symbol refinement with Huffman is not supported"); } var newSymbols = []; var currentHeight = 0; - var symbolCodeLength = (0, _util.log2)(symbols.length + numberOfNewSymbols); + var symbolCodeLength = (0, _core_utils.log2)(symbols.length + numberOfNewSymbols); var decoder = decodingContext.decoder; var contextCache = decodingContext.contextCache; - var tableB1, symbolWidths; + let tableB1, symbolWidths; if (huffman) { tableB1 = getStandardTable(1); @@ -19790,14 +10301,14 @@ var Jbig2Image = function Jbig2ImageClosure() { } while (newSymbols.length < numberOfNewSymbols) { - var deltaHeight = huffman ? huffmanTables.tableDeltaHeight.decode(huffmanInput) : decodeInteger(contextCache, 'IADH', decoder); + var deltaHeight = huffman ? huffmanTables.tableDeltaHeight.decode(huffmanInput) : decodeInteger(contextCache, "IADH", decoder); currentHeight += deltaHeight; - var currentWidth = 0, + let currentWidth = 0, totalWidth = 0; - var firstSymbol = huffman ? symbolWidths.length : 0; + const firstSymbol = huffman ? symbolWidths.length : 0; while (true) { - var deltaWidth = huffman ? huffmanTables.tableDeltaWidth.decode(huffmanInput) : decodeInteger(contextCache, 'IADW', decoder); + var deltaWidth = huffman ? huffmanTables.tableDeltaWidth.decode(huffmanInput) : decodeInteger(contextCache, "IADW", decoder); if (deltaWidth === null) { break; @@ -19808,14 +10319,14 @@ var Jbig2Image = function Jbig2ImageClosure() { var bitmap; if (refinement) { - var numberOfInstances = decodeInteger(contextCache, 'IAAI', decoder); + 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, 0, huffmanInput); } else { var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength); - var rdx = decodeInteger(contextCache, 'IARDX', decoder); - var rdy = decodeInteger(contextCache, 'IARDY', decoder); + 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); } @@ -19830,35 +10341,35 @@ var Jbig2Image = function Jbig2ImageClosure() { } if (huffman && !refinement) { - var bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput); + const bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput); huffmanInput.byteAlign(); - var collectiveBitmap = void 0; + let collectiveBitmap; if (bitmapSize === 0) { collectiveBitmap = readUncompressedBitmap(huffmanInput, totalWidth, currentHeight); } else { - var originalEnd = huffmanInput.end; - var bitmapEnd = huffmanInput.position + bitmapSize; + const originalEnd = huffmanInput.end; + const bitmapEnd = huffmanInput.position + bitmapSize; huffmanInput.end = bitmapEnd; collectiveBitmap = decodeMMRBitmap(huffmanInput, totalWidth, currentHeight, false); huffmanInput.end = originalEnd; huffmanInput.position = bitmapEnd; } - var numberOfSymbolsDecoded = symbolWidths.length; + const numberOfSymbolsDecoded = symbolWidths.length; if (firstSymbol === numberOfSymbolsDecoded - 1) { newSymbols.push(collectiveBitmap); } else { - var _i = void 0, - y = void 0, + let i, + y, xMin = 0, - xMax = void 0, - bitmapWidth = void 0, - symbolBitmap = void 0; + xMax, + bitmapWidth, + symbolBitmap; - for (_i = firstSymbol; _i < numberOfSymbolsDecoded; _i++) { - bitmapWidth = symbolWidths[_i]; + for (i = firstSymbol; i < numberOfSymbolsDecoded; i++) { + bitmapWidth = symbolWidths[i]; xMax = xMin + bitmapWidth; symbolBitmap = []; @@ -19879,7 +10390,7 @@ var Jbig2Image = function Jbig2ImageClosure() { var totalSymbolsLength = symbols.length + numberOfNewSymbols; while (flags.length < totalSymbolsLength) { - var runLength = huffman ? tableB1.decode(huffmanInput) : decodeInteger(contextCache, 'IAEX', decoder); + var runLength = huffman ? tableB1.decode(huffmanInput) : decodeInteger(contextCache, "IAEX", decoder); while (runLength--) { flags.push(currentFlag); @@ -19905,7 +10416,7 @@ var Jbig2Image = function Jbig2ImageClosure() { function decodeTextRegion(huffman, refinement, width, height, defaultPixelValue, numberOfSymbolInstances, stripSize, inputSymbols, symbolCodeLength, transposed, dsOffset, referenceCorner, combinationOperator, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, logStripSize, huffmanInput) { if (huffman && refinement) { - throw new Jbig2Error('refinement with Huffman is not supported'); + throw new Jbig2Error("refinement with Huffman is not supported"); } var bitmap = []; @@ -19925,36 +10436,36 @@ var Jbig2Image = function Jbig2ImageClosure() { var decoder = decodingContext.decoder; var contextCache = decodingContext.contextCache; - var stripT = huffman ? -huffmanTables.tableDeltaT.decode(huffmanInput) : -decodeInteger(contextCache, 'IADT', decoder); + var stripT = huffman ? -huffmanTables.tableDeltaT.decode(huffmanInput) : -decodeInteger(contextCache, "IADT", decoder); var firstS = 0; i = 0; while (i < numberOfSymbolInstances) { - var deltaT = huffman ? huffmanTables.tableDeltaT.decode(huffmanInput) : decodeInteger(contextCache, 'IADT', decoder); + var deltaT = huffman ? huffmanTables.tableDeltaT.decode(huffmanInput) : decodeInteger(contextCache, "IADT", decoder); stripT += deltaT; - var deltaFirstS = huffman ? huffmanTables.tableFirstS.decode(huffmanInput) : decodeInteger(contextCache, 'IAFS', decoder); + var deltaFirstS = huffman ? huffmanTables.tableFirstS.decode(huffmanInput) : decodeInteger(contextCache, "IAFS", decoder); firstS += deltaFirstS; var currentS = firstS; do { - var currentT = 0; + let currentT = 0; if (stripSize > 1) { - currentT = huffman ? huffmanInput.readBits(logStripSize) : decodeInteger(contextCache, 'IAIT', decoder); + currentT = huffman ? huffmanInput.readBits(logStripSize) : decodeInteger(contextCache, "IAIT", decoder); } var t = stripSize * stripT + currentT; var symbolId = huffman ? huffmanTables.symbolIDTable.decode(huffmanInput) : decodeIAID(contextCache, decoder, symbolCodeLength); - var applyRefinement = refinement && (huffman ? huffmanInput.readBit() : decodeInteger(contextCache, 'IARI', decoder)); + var applyRefinement = refinement && (huffman ? huffmanInput.readBit() : 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); + 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); @@ -19991,7 +10502,7 @@ var Jbig2Image = function Jbig2ImageClosure() { break; default: - throw new Jbig2Error("operator ".concat(combinationOperator, " is not supported")); + throw new Jbig2Error(`operator ${combinationOperator} is not supported`); } } @@ -20022,7 +10533,7 @@ var Jbig2Image = function Jbig2ImageClosure() { break; default: - throw new Jbig2Error("operator ".concat(combinationOperator, " is not supported")); + throw new Jbig2Error(`operator ${combinationOperator} is not supported`); } } @@ -20030,7 +10541,7 @@ var Jbig2Image = function Jbig2ImageClosure() { } i++; - var deltaS = huffman ? huffmanTables.tableDeltaS.decode(huffmanInput) : decodeInteger(contextCache, 'IADS', decoder); + var deltaS = huffman ? huffmanTables.tableDeltaS.decode(huffmanInput) : decodeInteger(contextCache, "IADS", decoder); if (deltaS === null) { break; @@ -20044,7 +10555,7 @@ var Jbig2Image = function Jbig2ImageClosure() { } function decodePatternDictionary(mmr, patternWidth, patternHeight, maxPatternIndex, template, decodingContext) { - var at = []; + const at = []; if (!mmr) { at.push({ @@ -20068,44 +10579,38 @@ var Jbig2Image = function Jbig2ImageClosure() { } } - var collectiveWidth = (maxPatternIndex + 1) * patternWidth; - var collectiveBitmap = decodeBitmap(mmr, collectiveWidth, patternHeight, template, false, null, at, decodingContext); - var patterns = [], - i = 0, - patternBitmap, - xMin, - xMax, - y; + const collectiveWidth = (maxPatternIndex + 1) * patternWidth; + const collectiveBitmap = decodeBitmap(mmr, collectiveWidth, patternHeight, template, false, null, at, decodingContext); + const patterns = []; - while (i <= maxPatternIndex) { - patternBitmap = []; - xMin = patternWidth * i; - xMax = xMin + patternWidth; + for (let i = 0; i <= maxPatternIndex; i++) { + const patternBitmap = []; + const xMin = patternWidth * i; + const xMax = xMin + patternWidth; - for (y = 0; y < patternHeight; y++) { + for (let y = 0; y < patternHeight; y++) { patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax)); } patterns.push(patternBitmap); - i++; } return patterns; } function decodeHalftoneRegion(mmr, patterns, template, regionWidth, regionHeight, defaultPixelValue, enableSkip, combinationOperator, gridWidth, gridHeight, gridOffsetX, gridOffsetY, gridVectorX, gridVectorY, decodingContext) { - var skip = null; + const skip = null; if (enableSkip) { - throw new Jbig2Error('skip is not supported'); + throw new Jbig2Error("skip is not supported"); } if (combinationOperator !== 0) { - throw new Jbig2Error('operator ' + combinationOperator + ' is not supported in halftone region'); + throw new Jbig2Error("operator " + combinationOperator + " is not supported in halftone region"); } - var regionBitmap = []; - var i, j, row; + const regionBitmap = []; + let i, j, row; for (i = 0; i < regionHeight; i++) { row = new Uint8Array(regionWidth); @@ -20119,12 +10624,12 @@ var Jbig2Image = function Jbig2ImageClosure() { regionBitmap.push(row); } - var numberOfPatterns = patterns.length; - var pattern0 = patterns[0]; - var patternWidth = pattern0[0].length, - patternHeight = pattern0.length; - var bitsPerValue = (0, _util.log2)(numberOfPatterns); - var at = []; + const numberOfPatterns = patterns.length; + const pattern0 = patterns[0]; + const patternWidth = pattern0[0].length, + patternHeight = pattern0.length; + const bitsPerValue = (0, _core_utils.log2)(numberOfPatterns); + const at = []; if (!mmr) { at.push({ @@ -20148,9 +10653,8 @@ var Jbig2Image = function Jbig2ImageClosure() { } } - var grayScaleBitPlanes = [], - mmrInput, - bitmap; + const grayScaleBitPlanes = []; + let mmrInput, bitmap; if (mmr) { mmrInput = new Reader(decodingContext.data, decodingContext.start, decodingContext.end); @@ -20166,7 +10670,7 @@ var Jbig2Image = function Jbig2ImageClosure() { grayScaleBitPlanes[i] = bitmap; } - var mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow; + let mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow; for (mg = 0; mg < gridHeight; mg++) { for (ng = 0; ng < gridWidth; ng++) { @@ -20192,8 +10696,7 @@ var Jbig2Image = function Jbig2ImageClosure() { } } } else { - var regionX = void 0, - regionY = void 0; + let regionX, regionY; for (i = 0; i < patternHeight; i++) { regionY = y + i; @@ -20222,12 +10725,12 @@ var Jbig2Image = function Jbig2ImageClosure() { function readSegmentHeader(data, start) { var segmentHeader = {}; - segmentHeader.number = (0, _util.readUint32)(data, start); + segmentHeader.number = (0, _core_utils.readUint32)(data, start); var flags = data[start + 4]; - var segmentType = flags & 0x3F; + var segmentType = flags & 0x3f; if (!SegmentTypes[segmentType]) { - throw new Jbig2Error('invalid segment type: ' + segmentType); + throw new Jbig2Error("invalid segment type: " + segmentType); } segmentHeader.type = segmentType; @@ -20240,7 +10743,7 @@ var Jbig2Image = function Jbig2ImageClosure() { var position = start + 6; if (referredFlags === 7) { - referredToCount = (0, _util.readUint32)(data, position - 1) & 0x1FFFFFFF; + referredToCount = (0, _core_utils.readUint32)(data, position - 1) & 0x1fffffff; position += 3; var bytes = referredToCount + 7 >> 3; retainBits[0] = data[position++]; @@ -20249,16 +10752,32 @@ var Jbig2Image = function Jbig2ImageClosure() { retainBits.push(data[position++]); } } else if (referredFlags === 5 || referredFlags === 6) { - throw new Jbig2Error('invalid referred-to flags'); + throw new Jbig2Error("invalid referred-to flags"); } segmentHeader.retainBits = retainBits; - var referredToSegmentNumberSize = segmentHeader.number <= 256 ? 1 : segmentHeader.number <= 65536 ? 2 : 4; + let referredToSegmentNumberSize = 4; + + if (segmentHeader.number <= 256) { + referredToSegmentNumberSize = 1; + } else if (segmentHeader.number <= 65536) { + referredToSegmentNumberSize = 2; + } + var referredTo = []; var i, ii; for (i = 0; i < referredToCount; i++) { - var number = referredToSegmentNumberSize === 1 ? data[position] : referredToSegmentNumberSize === 2 ? (0, _util.readUint16)(data, position) : (0, _util.readUint32)(data, position); + let number; + + if (referredToSegmentNumberSize === 1) { + number = data[position]; + } else if (referredToSegmentNumberSize === 2) { + number = (0, _core_utils.readUint16)(data, position); + } else { + number = (0, _core_utils.readUint32)(data, position); + } + referredTo.push(number); position += referredToSegmentNumberSize; } @@ -20268,14 +10787,14 @@ var Jbig2Image = function Jbig2ImageClosure() { if (!pageAssociationFieldSize) { segmentHeader.pageAssociation = data[position++]; } else { - segmentHeader.pageAssociation = (0, _util.readUint32)(data, position); + segmentHeader.pageAssociation = (0, _core_utils.readUint32)(data, position); position += 4; } - segmentHeader.length = (0, _util.readUint32)(data, position); + segmentHeader.length = (0, _core_utils.readUint32)(data, position); position += 4; - if (segmentHeader.length === 0xFFFFFFFF) { + if (segmentHeader.length === 0xffffffff) { if (segmentType === 38) { var genericRegionInfo = readRegionSegmentInformation(data, position); var genericRegionSegmentFlags = data[position + RegionSegmentInformationFieldLength]; @@ -20284,14 +10803,14 @@ var Jbig2Image = function Jbig2ImageClosure() { var searchPattern = new Uint8Array(searchPatternLength); if (!genericRegionMmr) { - searchPattern[0] = 0xFF; - searchPattern[1] = 0xAC; + 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; + 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; @@ -20306,11 +10825,11 @@ var Jbig2Image = function Jbig2ImageClosure() { } } - if (segmentHeader.length === 0xFFFFFFFF) { - throw new Jbig2Error('segment end was not found'); + if (segmentHeader.length === 0xffffffff) { + throw new Jbig2Error("segment end was not found"); } } else { - throw new Jbig2Error('invalid unknown segment length'); + throw new Jbig2Error("invalid unknown segment length"); } } @@ -20327,7 +10846,7 @@ var Jbig2Image = function Jbig2ImageClosure() { position = segmentHeader.headerEnd; var segment = { header: segmentHeader, - data: data + data }; if (!header.randomAccess) { @@ -20356,10 +10875,10 @@ var Jbig2Image = function Jbig2ImageClosure() { function readRegionSegmentInformation(data, start) { return { - width: (0, _util.readUint32)(data, start), - height: (0, _util.readUint32)(data, start + 4), - x: (0, _util.readUint32)(data, start + 8), - y: (0, _util.readUint32)(data, start + 12), + width: (0, _core_utils.readUint32)(data, start), + height: (0, _core_utils.readUint32)(data, start + 4), + x: (0, _core_utils.readUint32)(data, start + 8), + y: (0, _core_utils.readUint32)(data, start + 12), combinationOperator: data[start + 16] & 7 }; } @@ -20376,7 +10895,7 @@ var Jbig2Image = function Jbig2ImageClosure() { switch (header.type) { case 0: var dictionary = {}; - var dictionaryFlags = (0, _util.readUint16)(data, position); + var dictionaryFlags = (0, _core_utils.readUint16)(data, position); dictionary.huffman = !!(dictionaryFlags & 1); dictionary.refinement = !!(dictionaryFlags & 2); dictionary.huffmanDHSelector = dictionaryFlags >> 2 & 3; @@ -20395,8 +10914,8 @@ var Jbig2Image = function Jbig2ImageClosure() { for (i = 0; i < atLength; i++) { at.push({ - x: (0, _util.readInt8)(data, position), - y: (0, _util.readInt8)(data, position + 1) + x: (0, _core_utils.readInt8)(data, position), + y: (0, _core_utils.readInt8)(data, position + 1) }); position += 2; } @@ -20409,8 +10928,8 @@ var Jbig2Image = function Jbig2ImageClosure() { for (i = 0; i < 2; i++) { at.push({ - x: (0, _util.readInt8)(data, position), - y: (0, _util.readInt8)(data, position + 1) + x: (0, _core_utils.readInt8)(data, position), + y: (0, _core_utils.readInt8)(data, position + 1) }); position += 2; } @@ -20418,9 +10937,9 @@ var Jbig2Image = function Jbig2ImageClosure() { dictionary.refinementAt = at; } - dictionary.numberOfExportedSymbols = (0, _util.readUint32)(data, position); + dictionary.numberOfExportedSymbols = (0, _core_utils.readUint32)(data, position); position += 4; - dictionary.numberOfNewSymbols = (0, _util.readUint32)(data, position); + dictionary.numberOfNewSymbols = (0, _core_utils.readUint32)(data, position); position += 4; args = [dictionary, header.number, header.referredTo, data, position, end]; break; @@ -20430,7 +10949,7 @@ var Jbig2Image = function Jbig2ImageClosure() { var textRegion = {}; textRegion.info = readRegionSegmentInformation(data, position); position += RegionSegmentInformationFieldLength; - var textRegionSegmentFlags = (0, _util.readUint16)(data, position); + var textRegionSegmentFlags = (0, _core_utils.readUint16)(data, position); position += 2; textRegion.huffman = !!(textRegionSegmentFlags & 1); textRegion.refinement = !!(textRegionSegmentFlags & 2); @@ -20444,7 +10963,7 @@ var Jbig2Image = function Jbig2ImageClosure() { textRegion.refinementTemplate = textRegionSegmentFlags >> 15 & 1; if (textRegion.huffman) { - var textRegionHuffmanFlags = (0, _util.readUint16)(data, position); + var textRegionHuffmanFlags = (0, _core_utils.readUint16)(data, position); position += 2; textRegion.huffmanFS = textRegionHuffmanFlags & 3; textRegion.huffmanDS = textRegionHuffmanFlags >> 2 & 3; @@ -20461,8 +10980,8 @@ var Jbig2Image = function Jbig2ImageClosure() { for (i = 0; i < 2; i++) { at.push({ - x: (0, _util.readInt8)(data, position), - y: (0, _util.readInt8)(data, position + 1) + x: (0, _core_utils.readInt8)(data, position), + y: (0, _core_utils.readInt8)(data, position + 1) }); position += 2; } @@ -20470,45 +10989,45 @@ var Jbig2Image = function Jbig2ImageClosure() { textRegion.refinementAt = at; } - textRegion.numberOfSymbolInstances = (0, _util.readUint32)(data, position); + textRegion.numberOfSymbolInstances = (0, _core_utils.readUint32)(data, position); position += 4; args = [textRegion, header.referredTo, data, position, end]; break; case 16: - var patternDictionary = {}; - var patternDictionaryFlags = data[position++]; + const patternDictionary = {}; + const patternDictionaryFlags = data[position++]; patternDictionary.mmr = !!(patternDictionaryFlags & 1); patternDictionary.template = patternDictionaryFlags >> 1 & 3; patternDictionary.patternWidth = data[position++]; patternDictionary.patternHeight = data[position++]; - patternDictionary.maxPatternIndex = (0, _util.readUint32)(data, position); + patternDictionary.maxPatternIndex = (0, _core_utils.readUint32)(data, position); position += 4; args = [patternDictionary, header.number, data, position, end]; break; case 22: case 23: - var halftoneRegion = {}; + const halftoneRegion = {}; halftoneRegion.info = readRegionSegmentInformation(data, position); position += RegionSegmentInformationFieldLength; - var halftoneRegionFlags = data[position++]; + const halftoneRegionFlags = data[position++]; halftoneRegion.mmr = !!(halftoneRegionFlags & 1); halftoneRegion.template = halftoneRegionFlags >> 1 & 3; halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8); halftoneRegion.combinationOperator = halftoneRegionFlags >> 4 & 7; halftoneRegion.defaultPixelValue = halftoneRegionFlags >> 7 & 1; - halftoneRegion.gridWidth = (0, _util.readUint32)(data, position); + halftoneRegion.gridWidth = (0, _core_utils.readUint32)(data, position); position += 4; - halftoneRegion.gridHeight = (0, _util.readUint32)(data, position); + halftoneRegion.gridHeight = (0, _core_utils.readUint32)(data, position); position += 4; - halftoneRegion.gridOffsetX = (0, _util.readUint32)(data, position) & 0xFFFFFFFF; + halftoneRegion.gridOffsetX = (0, _core_utils.readUint32)(data, position) & 0xffffffff; position += 4; - halftoneRegion.gridOffsetY = (0, _util.readUint32)(data, position) & 0xFFFFFFFF; + halftoneRegion.gridOffsetY = (0, _core_utils.readUint32)(data, position) & 0xffffffff; position += 4; - halftoneRegion.gridVectorX = (0, _util.readUint16)(data, position); + halftoneRegion.gridVectorX = (0, _core_utils.readUint16)(data, position); position += 2; - halftoneRegion.gridVectorY = (0, _util.readUint16)(data, position); + halftoneRegion.gridVectorY = (0, _core_utils.readUint16)(data, position); position += 2; args = [halftoneRegion, header.referredTo, data, position, end]; break; @@ -20529,8 +11048,8 @@ var Jbig2Image = function Jbig2ImageClosure() { for (i = 0; i < atLength; i++) { at.push({ - x: (0, _util.readInt8)(data, position), - y: (0, _util.readInt8)(data, position + 1) + x: (0, _core_utils.readInt8)(data, position), + y: (0, _core_utils.readInt8)(data, position + 1) }); position += 2; } @@ -20543,18 +11062,18 @@ var Jbig2Image = function Jbig2ImageClosure() { case 48: var pageInfo = { - width: (0, _util.readUint32)(data, position), - height: (0, _util.readUint32)(data, position + 4), - resolutionX: (0, _util.readUint32)(data, position + 8), - resolutionY: (0, _util.readUint32)(data, position + 12) + width: (0, _core_utils.readUint32)(data, position), + height: (0, _core_utils.readUint32)(data, position + 4), + resolutionX: (0, _core_utils.readUint32)(data, position + 8), + resolutionY: (0, _core_utils.readUint32)(data, position + 12) }; - if (pageInfo.height === 0xFFFFFFFF) { + if (pageInfo.height === 0xffffffff) { delete pageInfo.height; } var pageSegmentFlags = data[position + 16]; - (0, _util.readUint16)(data, position + 17); + (0, _core_utils.readUint16)(data, position + 17); pageInfo.lossless = !!(pageSegmentFlags & 1); pageInfo.refinement = !!(pageSegmentFlags & 2); pageInfo.defaultPixelValue = pageSegmentFlags >> 2 & 1; @@ -20581,10 +11100,10 @@ var Jbig2Image = function Jbig2ImageClosure() { break; default: - throw new Jbig2Error("segment type ".concat(header.typeName, "(").concat(header.type, ")") + ' is not implemented'); + throw new Jbig2Error(`segment type ${header.typeName}(${header.type})` + " is not implemented"); } - var callbackName = 'on' + header.typeName; + var callbackName = "on" + header.typeName; if (callbackName in visitor) { visitor[callbackName].apply(visitor, args); @@ -20610,39 +11129,40 @@ var Jbig2Image = function Jbig2ImageClosure() { } function parseJbig2(data) { - var position = 0, - end = data.length; + const end = data.length; + let position = 0; - 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) { - throw new Jbig2Error('parseJbig2 - invalid header.'); + 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) { + throw new Jbig2Error("parseJbig2 - invalid header."); } - var header = Object.create(null); + const header = Object.create(null); position += 8; - var flags = data[position++]; + const flags = data[position++]; header.randomAccess = !(flags & 1); if (!(flags & 2)) { - header.numberOfPages = (0, _util.readUint32)(data, position); + header.numberOfPages = (0, _core_utils.readUint32)(data, position); position += 4; } - var segments = readSegments(header, data, position, end); - var visitor = new SimpleSegmentVisitor(); + const segments = readSegments(header, data, position, end); + const visitor = new SimpleSegmentVisitor(); processSegments(segments, visitor); - var _visitor$currentPageI = visitor.currentPageInfo, - width = _visitor$currentPageI.width, - height = _visitor$currentPageI.height; - var bitPacked = visitor.buffer; - var imgData = new Uint8ClampedArray(width * height); - var q = 0, + const { + width, + height + } = visitor.currentPageInfo; + const bitPacked = visitor.buffer; + const imgData = new Uint8ClampedArray(width * height); + let q = 0, k = 0; - for (var i = 0; i < height; i++) { - var mask = 0, - buffer = void 0; + for (let i = 0; i < height; i++) { + let mask = 0, + buffer; - for (var j = 0; j < width; j++) { + for (let j = 0; j < width; j++) { if (!mask) { mask = 128; buffer = bitPacked[k++]; @@ -20654,9 +11174,9 @@ var Jbig2Image = function Jbig2ImageClosure() { } return { - imgData: imgData, - width: width, - height: height + imgData, + width, + height }; } @@ -20670,7 +11190,7 @@ var Jbig2Image = function Jbig2ImageClosure() { if (info.defaultPixelValue) { for (var i = 0, ii = buffer.length; i < ii; i++) { - buffer[i] = 0xFF; + buffer[i] = 0xff; } } @@ -20735,7 +11255,7 @@ var Jbig2Image = function Jbig2ImageClosure() { break; default: - throw new Jbig2Error("operator ".concat(combinationOperator, " is not supported")); + throw new Jbig2Error(`operator ${combinationOperator} is not supported`); } }, onImmediateGenericRegion: function SimpleSegmentVisitor_onImmediateGenericRegion(region, data, start, end) { @@ -20748,7 +11268,7 @@ var Jbig2Image = function Jbig2ImageClosure() { this.onImmediateGenericRegion.apply(this, arguments); }, onSymbolDictionary: function SimpleSegmentVisitor_onSymbolDictionary(dictionary, currentSegment, referredSegments, data, start, end) { - var huffmanTables, huffmanInput; + let huffmanTables, huffmanInput; if (dictionary.huffman) { huffmanTables = getSymbolDictionaryHuffmanTables(dictionary, referredSegments, this.customTables); @@ -20764,7 +11284,7 @@ var Jbig2Image = function Jbig2ImageClosure() { var inputSymbols = []; for (var i = 0, ii = referredSegments.length; i < ii; i++) { - var referredSymbols = symbols[referredSegments[i]]; + const referredSymbols = symbols[referredSegments[i]]; if (referredSymbols) { inputSymbols = inputSymbols.concat(referredSymbols); @@ -20776,19 +11296,19 @@ var Jbig2Image = function Jbig2ImageClosure() { }, onImmediateTextRegion: function SimpleSegmentVisitor_onImmediateTextRegion(region, referredSegments, data, start, end) { var regionInfo = region.info; - var huffmanTables, huffmanInput; + let huffmanTables, huffmanInput; var symbols = this.symbols; var inputSymbols = []; for (var i = 0, ii = referredSegments.length; i < ii; i++) { - var referredSymbols = symbols[referredSegments[i]]; + const referredSymbols = symbols[referredSegments[i]]; if (referredSymbols) { inputSymbols = inputSymbols.concat(referredSymbols); } } - var symbolCodeLength = (0, _util.log2)(inputSymbols.length); + var symbolCodeLength = (0, _core_utils.log2)(inputSymbols.length); if (region.huffman) { huffmanInput = new Reader(data, start, end); @@ -20802,28 +11322,32 @@ var Jbig2Image = function Jbig2ImageClosure() { onImmediateLosslessTextRegion: function SimpleSegmentVisitor_onImmediateLosslessTextRegion() { this.onImmediateTextRegion.apply(this, arguments); }, - onPatternDictionary: function onPatternDictionary(dictionary, currentSegment, data, start, end) { - var patterns = this.patterns; + + onPatternDictionary(dictionary, currentSegment, data, start, end) { + let patterns = this.patterns; if (!patterns) { this.patterns = patterns = {}; } - var decodingContext = new DecodingContext(data, start, end); + const decodingContext = new DecodingContext(data, start, end); patterns[currentSegment] = decodePatternDictionary(dictionary.mmr, dictionary.patternWidth, dictionary.patternHeight, dictionary.maxPatternIndex, dictionary.template, decodingContext); }, - onImmediateHalftoneRegion: function onImmediateHalftoneRegion(region, referredSegments, data, start, end) { - var patterns = this.patterns[referredSegments[0]]; - var regionInfo = region.info; - var decodingContext = new DecodingContext(data, start, end); - var bitmap = decodeHalftoneRegion(region.mmr, patterns, region.template, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.enableSkip, region.combinationOperator, region.gridWidth, region.gridHeight, region.gridOffsetX, region.gridOffsetY, region.gridVectorX, region.gridVectorY, decodingContext); + + onImmediateHalftoneRegion(region, referredSegments, data, start, end) { + const patterns = this.patterns[referredSegments[0]]; + const regionInfo = region.info; + const decodingContext = new DecodingContext(data, start, end); + const bitmap = decodeHalftoneRegion(region.mmr, patterns, region.template, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.enableSkip, region.combinationOperator, region.gridWidth, region.gridHeight, region.gridOffsetX, region.gridOffsetY, region.gridVectorX, region.gridVectorY, decodingContext); this.drawBitmap(regionInfo, bitmap); }, - onImmediateLosslessHalftoneRegion: function onImmediateLosslessHalftoneRegion() { + + onImmediateLosslessHalftoneRegion() { this.onImmediateHalftoneRegion.apply(this, arguments); }, - onTables: function onTables(currentSegment, data, start, end) { - var customTables = this.customTables; + + onTables(currentSegment, data, start, end) { + let customTables = this.customTables; if (!customTables) { this.customTables = customTables = {}; @@ -20831,6 +11355,7 @@ var Jbig2Image = function Jbig2ImageClosure() { customTables[currentSegment] = decodeTablesSegment(data, start, end); } + }; function HuffmanLine(lineData) { @@ -20847,7 +11372,7 @@ var Jbig2Image = function Jbig2ImageClosure() { this.prefixLength = lineData[1]; this.rangeLength = lineData[2]; this.prefixCode = lineData[3]; - this.isLowerRange = lineData[4] === 'lower'; + this.isLowerRange = lineData[4] === "lower"; } } @@ -20866,13 +11391,13 @@ var Jbig2Image = function Jbig2ImageClosure() { } HuffmanTreeNode.prototype = { - buildTree: function buildTree(line, shift) { - var bit = line.prefixCode >> shift & 1; + buildTree(line, shift) { + const bit = line.prefixCode >> shift & 1; if (shift <= 0) { this.children[bit] = new HuffmanTreeNode(line); } else { - var node = this.children[bit]; + let node = this.children[bit]; if (!node) { this.children[bit] = node = new HuffmanTreeNode(null); @@ -20881,24 +11406,26 @@ var Jbig2Image = function Jbig2ImageClosure() { node.buildTree(line, shift - 1); } }, - decodeNode: function decodeNode(reader) { + + decodeNode(reader) { if (this.isLeaf) { if (this.isOOB) { return null; } - var htOffset = reader.readBits(this.rangeLength); + const htOffset = reader.readBits(this.rangeLength); return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset); } - var node = this.children[reader.readBit()]; + const node = this.children[reader.readBit()]; if (!node) { - throw new Jbig2Error('invalid Huffman data'); + throw new Jbig2Error("invalid Huffman data"); } return node.decodeNode(reader); } + }; function HuffmanTable(lines, prefixCodesDone) { @@ -20907,12 +11434,9 @@ var Jbig2Image = function Jbig2ImageClosure() { } this.rootNode = new HuffmanTreeNode(null); - var i, - ii = lines.length, - line; - for (i = 0; i < ii; i++) { - line = lines[i]; + for (let i = 0, ii = lines.length; i < ii; i++) { + const line = lines[i]; if (line.prefixLength > 0) { this.rootNode.buildTree(line, line.prefixLength - 1); @@ -20921,25 +11445,25 @@ var Jbig2Image = function Jbig2ImageClosure() { } HuffmanTable.prototype = { - decode: function decode(reader) { + decode(reader) { return this.rootNode.decodeNode(reader); }, - assignPrefixCodes: function assignPrefixCodes(lines) { - var linesLength = lines.length, - prefixLengthMax = 0, - i; - for (i = 0; i < linesLength; i++) { + assignPrefixCodes(lines) { + const linesLength = lines.length; + let prefixLengthMax = 0; + + for (let i = 0; i < linesLength; i++) { prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength); } - var histogram = new Uint32Array(prefixLengthMax + 1); + const histogram = new Uint32Array(prefixLengthMax + 1); - for (i = 0; i < linesLength; i++) { + for (let i = 0; i < linesLength; i++) { histogram[lines[i].prefixLength]++; } - var currentLength = 1, + let currentLength = 1, firstCode = 0, currentCode, currentTemp, @@ -20965,17 +11489,18 @@ var Jbig2Image = function Jbig2ImageClosure() { currentLength++; } } + }; function decodeTablesSegment(data, start, end) { - var flags = data[start]; - var lowestValue = (0, _util.readUint32)(data, start + 1) & 0xFFFFFFFF; - var highestValue = (0, _util.readUint32)(data, start + 5) & 0xFFFFFFFF; - var reader = new Reader(data, start + 9, end); - var prefixSizeBits = (flags >> 1 & 7) + 1; - var rangeSizeBits = (flags >> 4 & 7) + 1; - var lines = []; - var prefixLength, + const flags = data[start]; + const lowestValue = (0, _core_utils.readUint32)(data, start + 1) & 0xffffffff; + const highestValue = (0, _core_utils.readUint32)(data, start + 5) & 0xffffffff; + const reader = new Reader(data, start + 9, end); + const prefixSizeBits = (flags >> 1 & 7) + 1; + const rangeSizeBits = (flags >> 4 & 7) + 1; + const lines = []; + let prefixLength, rangeLength, currentRangeLow = lowestValue; @@ -20987,7 +11512,7 @@ var Jbig2Image = function Jbig2ImageClosure() { } while (currentRangeLow < highestValue); prefixLength = reader.readBits(prefixSizeBits); - lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, 'lower'])); + lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, "lower"])); prefixLength = reader.readBits(prefixSizeBits); lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0])); @@ -20999,16 +11524,16 @@ var Jbig2Image = function Jbig2ImageClosure() { return new HuffmanTable(lines, false); } - var standardTablesCache = {}; + const standardTablesCache = {}; function getStandardTable(number) { - var table = standardTablesCache[number]; + let table = standardTablesCache[number]; if (table) { return table; } - var lines; + let lines; switch (number) { case 1: @@ -21016,51 +11541,51 @@ var Jbig2Image = function Jbig2ImageClosure() { break; case 2: - lines = [[0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xE], [11, 5, 6, 0x1E], [75, 6, 32, 0x3E], [6, 0x3F]]; + lines = [[0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xe], [11, 5, 6, 0x1e], [75, 6, 32, 0x3e], [6, 0x3f]]; break; case 3: - lines = [[-256, 8, 8, 0xFE], [0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xE], [11, 5, 6, 0x1E], [-257, 8, 32, 0xFF, 'lower'], [75, 7, 32, 0x7E], [6, 0x3E]]; + lines = [[-256, 8, 8, 0xfe], [0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xe], [11, 5, 6, 0x1e], [-257, 8, 32, 0xff, "lower"], [75, 7, 32, 0x7e], [6, 0x3e]]; break; case 4: - lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xE], [12, 5, 6, 0x1E], [76, 5, 32, 0x1F]]; + lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xe], [12, 5, 6, 0x1e], [76, 5, 32, 0x1f]]; break; case 5: - lines = [[-255, 7, 8, 0x7E], [1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xE], [12, 5, 6, 0x1E], [-256, 7, 32, 0x7F, 'lower'], [76, 6, 32, 0x3E]]; + lines = [[-255, 7, 8, 0x7e], [1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xe], [12, 5, 6, 0x1e], [-256, 7, 32, 0x7f, "lower"], [76, 6, 32, 0x3e]]; break; case 6: - lines = [[-2048, 5, 10, 0x1C], [-1024, 4, 9, 0x8], [-512, 4, 8, 0x9], [-256, 4, 7, 0xA], [-128, 5, 6, 0x1D], [-64, 5, 5, 0x1E], [-32, 4, 5, 0xB], [0, 2, 7, 0x0], [128, 3, 7, 0x2], [256, 3, 8, 0x3], [512, 4, 9, 0xC], [1024, 4, 10, 0xD], [-2049, 6, 32, 0x3E, 'lower'], [2048, 6, 32, 0x3F]]; + lines = [[-2048, 5, 10, 0x1c], [-1024, 4, 9, 0x8], [-512, 4, 8, 0x9], [-256, 4, 7, 0xa], [-128, 5, 6, 0x1d], [-64, 5, 5, 0x1e], [-32, 4, 5, 0xb], [0, 2, 7, 0x0], [128, 3, 7, 0x2], [256, 3, 8, 0x3], [512, 4, 9, 0xc], [1024, 4, 10, 0xd], [-2049, 6, 32, 0x3e, "lower"], [2048, 6, 32, 0x3f]]; break; case 7: - lines = [[-1024, 4, 9, 0x8], [-512, 3, 8, 0x0], [-256, 4, 7, 0x9], [-128, 5, 6, 0x1A], [-64, 5, 5, 0x1B], [-32, 4, 5, 0xA], [0, 4, 5, 0xB], [32, 5, 5, 0x1C], [64, 5, 6, 0x1D], [128, 4, 7, 0xC], [256, 3, 8, 0x1], [512, 3, 9, 0x2], [1024, 3, 10, 0x3], [-1025, 5, 32, 0x1E, 'lower'], [2048, 5, 32, 0x1F]]; + lines = [[-1024, 4, 9, 0x8], [-512, 3, 8, 0x0], [-256, 4, 7, 0x9], [-128, 5, 6, 0x1a], [-64, 5, 5, 0x1b], [-32, 4, 5, 0xa], [0, 4, 5, 0xb], [32, 5, 5, 0x1c], [64, 5, 6, 0x1d], [128, 4, 7, 0xc], [256, 3, 8, 0x1], [512, 3, 9, 0x2], [1024, 3, 10, 0x3], [-1025, 5, 32, 0x1e, "lower"], [2048, 5, 32, 0x1f]]; break; case 8: - lines = [[-15, 8, 3, 0xFC], [-7, 9, 1, 0x1FC], [-5, 8, 1, 0xFD], [-3, 9, 0, 0x1FD], [-2, 7, 0, 0x7C], [-1, 4, 0, 0xA], [0, 2, 1, 0x0], [2, 5, 0, 0x1A], [3, 6, 0, 0x3A], [4, 3, 4, 0x4], [20, 6, 1, 0x3B], [22, 4, 4, 0xB], [38, 4, 5, 0xC], [70, 5, 6, 0x1B], [134, 5, 7, 0x1C], [262, 6, 7, 0x3C], [390, 7, 8, 0x7D], [646, 6, 10, 0x3D], [-16, 9, 32, 0x1FE, 'lower'], [1670, 9, 32, 0x1FF], [2, 0x1]]; + lines = [[-15, 8, 3, 0xfc], [-7, 9, 1, 0x1fc], [-5, 8, 1, 0xfd], [-3, 9, 0, 0x1fd], [-2, 7, 0, 0x7c], [-1, 4, 0, 0xa], [0, 2, 1, 0x0], [2, 5, 0, 0x1a], [3, 6, 0, 0x3a], [4, 3, 4, 0x4], [20, 6, 1, 0x3b], [22, 4, 4, 0xb], [38, 4, 5, 0xc], [70, 5, 6, 0x1b], [134, 5, 7, 0x1c], [262, 6, 7, 0x3c], [390, 7, 8, 0x7d], [646, 6, 10, 0x3d], [-16, 9, 32, 0x1fe, "lower"], [1670, 9, 32, 0x1ff], [2, 0x1]]; break; case 9: - lines = [[-31, 8, 4, 0xFC], [-15, 9, 2, 0x1FC], [-11, 8, 2, 0xFD], [-7, 9, 1, 0x1FD], [-5, 7, 1, 0x7C], [-3, 4, 1, 0xA], [-1, 3, 1, 0x2], [1, 3, 1, 0x3], [3, 5, 1, 0x1A], [5, 6, 1, 0x3A], [7, 3, 5, 0x4], [39, 6, 2, 0x3B], [43, 4, 5, 0xB], [75, 4, 6, 0xC], [139, 5, 7, 0x1B], [267, 5, 8, 0x1C], [523, 6, 8, 0x3C], [779, 7, 9, 0x7D], [1291, 6, 11, 0x3D], [-32, 9, 32, 0x1FE, 'lower'], [3339, 9, 32, 0x1FF], [2, 0x0]]; + lines = [[-31, 8, 4, 0xfc], [-15, 9, 2, 0x1fc], [-11, 8, 2, 0xfd], [-7, 9, 1, 0x1fd], [-5, 7, 1, 0x7c], [-3, 4, 1, 0xa], [-1, 3, 1, 0x2], [1, 3, 1, 0x3], [3, 5, 1, 0x1a], [5, 6, 1, 0x3a], [7, 3, 5, 0x4], [39, 6, 2, 0x3b], [43, 4, 5, 0xb], [75, 4, 6, 0xc], [139, 5, 7, 0x1b], [267, 5, 8, 0x1c], [523, 6, 8, 0x3c], [779, 7, 9, 0x7d], [1291, 6, 11, 0x3d], [-32, 9, 32, 0x1fe, "lower"], [3339, 9, 32, 0x1ff], [2, 0x0]]; break; case 10: - lines = [[-21, 7, 4, 0x7A], [-5, 8, 0, 0xFC], [-4, 7, 0, 0x7B], [-3, 5, 0, 0x18], [-2, 2, 2, 0x0], [2, 5, 0, 0x19], [3, 6, 0, 0x36], [4, 7, 0, 0x7C], [5, 8, 0, 0xFD], [6, 2, 6, 0x1], [70, 5, 5, 0x1A], [102, 6, 5, 0x37], [134, 6, 6, 0x38], [198, 6, 7, 0x39], [326, 6, 8, 0x3A], [582, 6, 9, 0x3B], [1094, 6, 10, 0x3C], [2118, 7, 11, 0x7D], [-22, 8, 32, 0xFE, 'lower'], [4166, 8, 32, 0xFF], [2, 0x2]]; + lines = [[-21, 7, 4, 0x7a], [-5, 8, 0, 0xfc], [-4, 7, 0, 0x7b], [-3, 5, 0, 0x18], [-2, 2, 2, 0x0], [2, 5, 0, 0x19], [3, 6, 0, 0x36], [4, 7, 0, 0x7c], [5, 8, 0, 0xfd], [6, 2, 6, 0x1], [70, 5, 5, 0x1a], [102, 6, 5, 0x37], [134, 6, 6, 0x38], [198, 6, 7, 0x39], [326, 6, 8, 0x3a], [582, 6, 9, 0x3b], [1094, 6, 10, 0x3c], [2118, 7, 11, 0x7d], [-22, 8, 32, 0xfe, "lower"], [4166, 8, 32, 0xff], [2, 0x2]]; break; case 11: - lines = [[1, 1, 0, 0x0], [2, 2, 1, 0x2], [4, 4, 0, 0xC], [5, 4, 1, 0xD], [7, 5, 1, 0x1C], [9, 5, 2, 0x1D], [13, 6, 2, 0x3C], [17, 7, 2, 0x7A], [21, 7, 3, 0x7B], [29, 7, 4, 0x7C], [45, 7, 5, 0x7D], [77, 7, 6, 0x7E], [141, 7, 32, 0x7F]]; + lines = [[1, 1, 0, 0x0], [2, 2, 1, 0x2], [4, 4, 0, 0xc], [5, 4, 1, 0xd], [7, 5, 1, 0x1c], [9, 5, 2, 0x1d], [13, 6, 2, 0x3c], [17, 7, 2, 0x7a], [21, 7, 3, 0x7b], [29, 7, 4, 0x7c], [45, 7, 5, 0x7d], [77, 7, 6, 0x7e], [141, 7, 32, 0x7f]]; break; case 12: - lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 1, 0x6], [5, 5, 0, 0x1C], [6, 5, 1, 0x1D], [8, 6, 1, 0x3C], [10, 7, 0, 0x7A], [11, 7, 1, 0x7B], [13, 7, 2, 0x7C], [17, 7, 3, 0x7D], [25, 7, 4, 0x7E], [41, 8, 5, 0xFE], [73, 8, 32, 0xFF]]; + lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 1, 0x6], [5, 5, 0, 0x1c], [6, 5, 1, 0x1d], [8, 6, 1, 0x3c], [10, 7, 0, 0x7a], [11, 7, 1, 0x7b], [13, 7, 2, 0x7c], [17, 7, 3, 0x7d], [25, 7, 4, 0x7e], [41, 8, 5, 0xfe], [73, 8, 32, 0xff]]; break; case 13: - lines = [[1, 1, 0, 0x0], [2, 3, 0, 0x4], [3, 4, 0, 0xC], [4, 5, 0, 0x1C], [5, 4, 1, 0xD], [7, 3, 3, 0x5], [15, 6, 1, 0x3A], [17, 6, 2, 0x3B], [21, 6, 3, 0x3C], [29, 6, 4, 0x3D], [45, 6, 5, 0x3E], [77, 7, 6, 0x7E], [141, 7, 32, 0x7F]]; + lines = [[1, 1, 0, 0x0], [2, 3, 0, 0x4], [3, 4, 0, 0xc], [4, 5, 0, 0x1c], [5, 4, 1, 0xd], [7, 3, 3, 0x5], [15, 6, 1, 0x3a], [17, 6, 2, 0x3b], [21, 6, 3, 0x3c], [29, 6, 4, 0x3d], [45, 6, 5, 0x3e], [77, 7, 6, 0x7e], [141, 7, 32, 0x7f]]; break; case 14: @@ -21068,17 +11593,14 @@ var Jbig2Image = function Jbig2ImageClosure() { break; case 15: - lines = [[-24, 7, 4, 0x7C], [-8, 6, 2, 0x3C], [-4, 5, 1, 0x1C], [-2, 4, 0, 0xC], [-1, 3, 0, 0x4], [0, 1, 0, 0x0], [1, 3, 0, 0x5], [2, 4, 0, 0xD], [3, 5, 1, 0x1D], [5, 6, 2, 0x3D], [9, 7, 4, 0x7D], [-25, 7, 32, 0x7E, 'lower'], [25, 7, 32, 0x7F]]; + lines = [[-24, 7, 4, 0x7c], [-8, 6, 2, 0x3c], [-4, 5, 1, 0x1c], [-2, 4, 0, 0xc], [-1, 3, 0, 0x4], [0, 1, 0, 0x0], [1, 3, 0, 0x5], [2, 4, 0, 0xd], [3, 5, 1, 0x1d], [5, 6, 2, 0x3d], [9, 7, 4, 0x7d], [-25, 7, 32, 0x7e, "lower"], [25, 7, 32, 0x7f]]; break; default: - throw new Jbig2Error("standard table B.".concat(number, " does not exist")); + throw new Jbig2Error(`standard table B.${number} does not exist`); } - var length = lines.length, - i; - - for (i = 0; i < length; i++) { + for (let i = 0, ii = lines.length; i < ii; i++) { lines[i] = new HuffmanLine(lines[i]); } @@ -21097,22 +11619,23 @@ var Jbig2Image = function Jbig2ImageClosure() { } Reader.prototype = { - readBit: function readBit() { + readBit() { if (this.shift < 0) { if (this.position >= this.end) { - throw new Jbig2Error('end of data while reading bit'); + throw new Jbig2Error("end of data while reading bit"); } this.currentByte = this.data[this.position++]; this.shift = 7; } - var bit = this.currentByte >> this.shift & 1; + const bit = this.currentByte >> this.shift & 1; this.shift--; return bit; }, - readBits: function readBits(numBits) { - var result = 0, + + readBits(numBits) { + let result = 0, i; for (i = numBits - 1; i >= 0; i--) { @@ -21121,26 +11644,26 @@ var Jbig2Image = function Jbig2ImageClosure() { return result; }, - byteAlign: function byteAlign() { + + byteAlign() { this.shift = -1; }, - next: function next() { + + next() { if (this.position >= this.end) { return -1; } return this.data[this.position++]; } + }; function getCustomHuffmanTable(index, referredTo, customTables) { - var currentIndex = 0, - i, - ii = referredTo.length, - table; + let currentIndex = 0; - for (i = 0; i < ii; i++) { - table = customTables[referredTo[i]]; + for (let i = 0, ii = referredTo.length; i < ii; i++) { + const table = customTables[referredTo[i]]; if (table) { if (index === currentIndex) { @@ -21151,34 +11674,30 @@ var Jbig2Image = function Jbig2ImageClosure() { } } - throw new Jbig2Error('can\'t find custom Huffman table'); + throw new Jbig2Error("can't find custom Huffman table"); } function getTextRegionHuffmanTables(textRegion, referredTo, customTables, numberOfSymbols, reader) { - var codes = [], - i, - codeLength; + const codes = []; - for (i = 0; i <= 34; i++) { - codeLength = reader.readBits(4); + for (let i = 0; i <= 34; i++) { + const codeLength = reader.readBits(4); codes.push(new HuffmanLine([i, codeLength, 0, 0])); } - var runCodesTable = new HuffmanTable(codes, false); + const runCodesTable = new HuffmanTable(codes, false); codes.length = 0; - for (i = 0; i < numberOfSymbols;) { - codeLength = runCodesTable.decode(reader); + for (let i = 0; i < numberOfSymbols;) { + const codeLength = runCodesTable.decode(reader); if (codeLength >= 32) { - var repeatedLength = void 0, - numberOfRepeats = void 0, - j = void 0; + let repeatedLength, numberOfRepeats, j; switch (codeLength) { case 32: if (i === 0) { - throw new Jbig2Error('no previous value in symbol ID table'); + throw new Jbig2Error("no previous value in symbol ID table"); } numberOfRepeats = reader.readBits(2) + 3; @@ -21196,7 +11715,7 @@ var Jbig2Image = function Jbig2ImageClosure() { break; default: - throw new Jbig2Error('invalid code length in symbol ID table'); + throw new Jbig2Error("invalid code length in symbol ID table"); } for (j = 0; j < numberOfRepeats; j++) { @@ -21210,8 +11729,8 @@ var Jbig2Image = function Jbig2ImageClosure() { } reader.byteAlign(); - var symbolIDTable = new HuffmanTable(codes, false); - var customIndex = 0, + const symbolIDTable = new HuffmanTable(codes, false); + let customIndex = 0, tableFirstS, tableDeltaS, tableDeltaT; @@ -21228,7 +11747,7 @@ var Jbig2Image = function Jbig2ImageClosure() { break; default: - throw new Jbig2Error('invalid Huffman FS selector'); + throw new Jbig2Error("invalid Huffman FS selector"); } switch (textRegion.huffmanDS) { @@ -21244,7 +11763,7 @@ var Jbig2Image = function Jbig2ImageClosure() { break; default: - throw new Jbig2Error('invalid Huffman DS selector'); + throw new Jbig2Error("invalid Huffman DS selector"); } switch (textRegion.huffmanDT) { @@ -21260,23 +11779,23 @@ var Jbig2Image = function Jbig2ImageClosure() { break; default: - throw new Jbig2Error('invalid Huffman DT selector'); + throw new Jbig2Error("invalid Huffman DT selector"); } if (textRegion.refinement) { - throw new Jbig2Error('refinement with Huffman is not supported'); + throw new Jbig2Error("refinement with Huffman is not supported"); } return { - symbolIDTable: symbolIDTable, - tableFirstS: tableFirstS, - tableDeltaS: tableDeltaS, - tableDeltaT: tableDeltaT + symbolIDTable, + tableFirstS, + tableDeltaS, + tableDeltaT }; } function getSymbolDictionaryHuffmanTables(dictionary, referredTo, customTables) { - var customIndex = 0, + let customIndex = 0, tableDeltaHeight, tableDeltaWidth; @@ -21292,7 +11811,7 @@ var Jbig2Image = function Jbig2ImageClosure() { break; default: - throw new Jbig2Error('invalid Huffman DH selector'); + throw new Jbig2Error("invalid Huffman DH selector"); } switch (dictionary.huffmanDWSelector) { @@ -21307,10 +11826,10 @@ var Jbig2Image = function Jbig2ImageClosure() { break; default: - throw new Jbig2Error('invalid Huffman DW selector'); + throw new Jbig2Error("invalid Huffman DW selector"); } - var tableBitmapSize, tableAggregateInstances; + let tableBitmapSize, tableAggregateInstances; if (dictionary.bitmapSizeSelector) { tableBitmapSize = getCustomHuffmanTable(customIndex, referredTo, customTables); @@ -21326,24 +11845,21 @@ var Jbig2Image = function Jbig2ImageClosure() { } return { - tableDeltaHeight: tableDeltaHeight, - tableDeltaWidth: tableDeltaWidth, - tableBitmapSize: tableBitmapSize, - tableAggregateInstances: tableAggregateInstances + tableDeltaHeight, + tableDeltaWidth, + tableBitmapSize, + tableAggregateInstances }; } function readUncompressedBitmap(reader, width, height) { - var bitmap = [], - x, - y, - row; + const bitmap = []; - for (y = 0; y < height; y++) { - row = new Uint8Array(width); + for (let y = 0; y < height; y++) { + const row = new Uint8Array(width); bitmap.push(row); - for (x = 0; x < width; x++) { + for (let x = 0; x < width; x++) { row[x] = reader.readBit(); } @@ -21354,28 +11870,24 @@ var Jbig2Image = function Jbig2ImageClosure() { } function decodeMMRBitmap(input, width, height, endOfBlock) { - var params = { + const params = { K: -1, Columns: width, Rows: height, BlackIs1: true, EndOfBlock: endOfBlock }; - var decoder = new _ccitt.CCITTFaxDecoder(input, params); - var bitmap = [], - x, - y, - row, - currentByte, - shift, + const decoder = new _ccitt.CCITTFaxDecoder(input, params); + const bitmap = []; + let currentByte, eof = false; - for (y = 0; y < height; y++) { - row = new Uint8Array(width); + for (let y = 0; y < height; y++) { + const row = new Uint8Array(width); bitmap.push(row); - shift = -1; + let shift = -1; - for (x = 0; x < width; x++) { + for (let x = 0; x < width; x++) { if (shift < 0) { currentByte = decoder.readNextChar(); @@ -21393,9 +11905,9 @@ var Jbig2Image = function Jbig2ImageClosure() { } if (endOfBlock && !eof) { - var lookForEOFLimit = 5; + const lookForEOFLimit = 5; - for (var i = 0; i < lookForEOFLimit; i++) { + for (let i = 0; i < lookForEOFLimit; i++) { if (decoder.readNextChar() === -1) { break; } @@ -21408,19 +11920,21 @@ var Jbig2Image = function Jbig2ImageClosure() { function Jbig2Image() {} Jbig2Image.prototype = { - parseChunks: function parseChunks(chunks) { + parseChunks(chunks) { return parseJbig2Chunks(chunks); }, - parse: function parse(data) { - var _parseJbig = parseJbig2(data), - imgData = _parseJbig.imgData, - width = _parseJbig.width, - height = _parseJbig.height; + parse(data) { + const { + imgData, + width, + height + } = parseJbig2(data); this.width = width; this.height = height; return imgData; } + }; return Jbig2Image; }(); @@ -21428,7 +11942,7 @@ var Jbig2Image = function Jbig2ImageClosure() { exports.Jbig2Image = Jbig2Image; /***/ }), -/* 163 */ +/* 17 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -21438,14 +11952,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.ArithmeticDecoder = void 0; - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var QeTable = [{ +const QeTable = [{ qe: 0x5601, nmps: 1, nlps: 1, @@ -21461,7 +11968,7 @@ var QeTable = [{ nlps: 9, switchFlag: 0 }, { - qe: 0x0AC1, + qe: 0x0ac1, nmps: 4, nlps: 12, switchFlag: 0 @@ -21506,7 +12013,7 @@ var QeTable = [{ nlps: 18, switchFlag: 0 }, { - qe: 0x1C01, + qe: 0x1c01, nmps: 13, nlps: 20, switchFlag: 0 @@ -21566,7 +12073,7 @@ var QeTable = [{ nlps: 21, switchFlag: 0 }, { - qe: 0x1C01, + qe: 0x1c01, nmps: 25, nlps: 22, switchFlag: 0 @@ -21596,17 +12103,17 @@ var QeTable = [{ nlps: 27, switchFlag: 0 }, { - qe: 0x0AC1, + qe: 0x0ac1, nmps: 31, nlps: 28, switchFlag: 0 }, { - qe: 0x09C1, + qe: 0x09c1, nmps: 32, nlps: 29, switchFlag: 0 }, { - qe: 0x08A1, + qe: 0x08a1, nmps: 33, nlps: 30, switchFlag: 0 @@ -21621,7 +12128,7 @@ var QeTable = [{ nlps: 32, switchFlag: 0 }, { - qe: 0x02A1, + qe: 0x02a1, nmps: 36, nlps: 33, switchFlag: 0 @@ -21682,123 +12189,114 @@ var QeTable = [{ switchFlag: 0 }]; -var ArithmeticDecoder = -/*#__PURE__*/ -function () { - function ArithmeticDecoder(data, start, end) { - _classCallCheck(this, ArithmeticDecoder); - +class ArithmeticDecoder { + constructor(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.chigh = this.chigh << 7 & 0xffff | this.clow >> 9 & 0x7f; + this.clow = this.clow << 7 & 0xffff; this.ct -= 7; this.a = 0x8000; } - _createClass(ArithmeticDecoder, [{ - key: "byteIn", - value: function byteIn() { - var data = this.data; - var bp = this.bp; + byteIn() { + const data = this.data; + let bp = this.bp; - if (data[bp] === 0xFF) { - if (data[bp + 1] > 0x8F) { - this.clow += 0xFF00; - this.ct = 8; - } else { - bp++; - this.clow += data[bp] << 9; - this.ct = 7; - this.bp = bp; - } + if (data[bp] === 0xff) { + if (data[bp + 1] > 0x8f) { + this.clow += 0xff00; + this.ct = 8; } else { bp++; - this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xFF00; - this.ct = 8; + this.clow += data[bp] << 9; + this.ct = 7; this.bp = bp; } - - if (this.clow > 0xFFFF) { - this.chigh += this.clow >> 16; - this.clow &= 0xFFFF; - } + } else { + bp++; + this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xff00; + this.ct = 8; + this.bp = bp; } - }, { - key: "readBit", - value: function 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 (this.clow > 0xffff) { + this.chigh += this.clow >> 16; + this.clow &= 0xffff; + } + } - if (qeTableIcx.switchFlag === 1) { - cx_mps = d; - } + readBit(contexts, pos) { + let cx_index = contexts[pos] >> 1, + cx_mps = contexts[pos] & 1; + const qeTableIcx = QeTable[cx_index]; + const qeIcx = qeTableIcx.qe; + let d; + let a = this.a - qeIcx; - cx_index = qeTableIcx.nlps; - } + if (this.chigh < qeIcx) { + if (a < qeIcx) { + a = qeIcx; + d = cx_mps; + cx_index = qeTableIcx.nmps; } else { - this.chigh -= qeIcx; + a = qeIcx; + d = 1 ^ cx_mps; - if ((a & 0x8000) !== 0) { - this.a = a; - return cx_mps; + if (qeTableIcx.switchFlag === 1) { + cx_mps = d; } - if (a < qeIcx) { - d = 1 ^ cx_mps; + cx_index = qeTableIcx.nlps; + } + } else { + this.chigh -= qeIcx; - if (qeTableIcx.switchFlag === 1) { - cx_mps = d; - } - - cx_index = qeTableIcx.nlps; - } else { - d = cx_mps; - cx_index = qeTableIcx.nmps; - } + if ((a & 0x8000) !== 0) { + this.a = a; + return cx_mps; } - do { - if (this.ct === 0) { - this.byteIn(); + if (a < qeIcx) { + d = 1 ^ cx_mps; + + if (qeTableIcx.switchFlag === 1) { + cx_mps = d; } - 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; + cx_index = qeTableIcx.nlps; + } else { + d = cx_mps; + cx_index = qeTableIcx.nmps; + } } - }]); - return ArithmeticDecoder; -}(); + 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; + } + +} exports.ArithmeticDecoder = ArithmeticDecoder; /***/ }), -/* 164 */ +/* 18 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -21809,20 +12307,20 @@ Object.defineProperty(exports, "__esModule", { }); exports.JpegStream = void 0; -var _util = __w_pdfjs_require__(5); +var _stream = __w_pdfjs_require__(12); -var _stream = __w_pdfjs_require__(158); +var _primitives = __w_pdfjs_require__(5); -var _primitives = __w_pdfjs_require__(151); +var _jpg = __w_pdfjs_require__(19); -var _jpg = __w_pdfjs_require__(165); +var _util = __w_pdfjs_require__(2); -var JpegStream = function JpegStreamClosure() { +const JpegStream = function JpegStreamClosure() { function JpegStream(stream, maybeLength, dict, params) { - var ch; + let ch; while ((ch = stream.getByte()) !== -1) { - if (ch === 0xFF) { + if (ch === 0xff) { stream.skip(-1); break; } @@ -21837,9 +12335,9 @@ var JpegStream = function JpegStreamClosure() { } JpegStream.prototype = Object.create(_stream.DecodeStream.prototype); - Object.defineProperty(JpegStream.prototype, 'bytes', { + Object.defineProperty(JpegStream.prototype, "bytes", { get: function JpegStream_bytes() { - return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength)); + return (0, _util.shadow)(this, "bytes", this.stream.getBytes(this.maybeLength)); }, configurable: true }); @@ -21851,20 +12349,20 @@ var JpegStream = function JpegStreamClosure() { return; } - var jpegOptions = { + const jpegOptions = { decodeTransform: undefined, colorTransform: undefined }; - var decodeArr = this.dict.getArray('Decode', 'D'); + const decodeArr = this.dict.getArray("Decode", "D"); if (this.forceRGB && Array.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; + const bitsPerComponent = this.dict.get("BitsPerComponent") || 8; + const decodeArrLength = decodeArr.length; + const transform = new Int32Array(decodeArrLength); + let transformNeeded = false; + const maxValue = (1 << bitsPerComponent) - 1; - for (var i = 0; i < decodeArrLength; i += 2) { + for (let i = 0; i < decodeArrLength; i += 2) { transform[i] = (decodeArr[i + 1] - decodeArr[i]) * 256 | 0; transform[i + 1] = decodeArr[i] * maxValue | 0; @@ -21879,16 +12377,16 @@ var JpegStream = function JpegStreamClosure() { } if ((0, _primitives.isDict)(this.params)) { - var colorTransform = this.params.get('ColorTransform'); + const colorTransform = this.params.get("ColorTransform"); if (Number.isInteger(colorTransform)) { jpegOptions.colorTransform = colorTransform; } } - var jpegImage = new _jpg.JpegImage(jpegOptions); + const jpegImage = new _jpg.JpegImage(jpegOptions); jpegImage.parse(this.bytes); - var data = jpegImage.getData({ + const data = jpegImage.getData({ width: this.drawWidth, height: this.drawHeight, forceRGB: this.forceRGB, @@ -21899,18 +12397,13 @@ var JpegStream = function JpegStreamClosure() { this.eof = true; }; - JpegStream.prototype.getIR = function () { - var forceDataSchema = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - return (0, _util.createObjectURL)(this.bytes, 'image/jpeg', forceDataSchema); - }; - return JpegStream; }(); exports.JpegStream = JpegStream; /***/ }), -/* 165 */ +/* 19 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -21921,43 +12414,26 @@ Object.defineProperty(exports, "__esModule", { }); exports.JpegImage = void 0; -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +var _core_utils = __w_pdfjs_require__(8); -var JpegError = function JpegErrorClosure() { - function JpegError(msg) { - this.message = 'JPEG error: ' + msg; +class JpegError extends _util.BaseException { + constructor(msg) { + super(`JPEG error: ${msg}`); } - JpegError.prototype = new Error(); - JpegError.prototype.name = 'JpegError'; - JpegError.constructor = JpegError; - return JpegError; -}(); +} -var DNLMarkerError = function DNLMarkerErrorClosure() { - function DNLMarkerError(message, scanLines) { - this.message = message; +class DNLMarkerError extends _util.BaseException { + constructor(message, scanLines) { + super(message); this.scanLines = scanLines; } - DNLMarkerError.prototype = new Error(); - DNLMarkerError.prototype.name = 'DNLMarkerError'; - DNLMarkerError.constructor = DNLMarkerError; - return DNLMarkerError; -}(); +} -var EOIMarkerError = function EOIMarkerErrorClosure() { - function EOIMarkerError(message) { - this.message = message; - } - - EOIMarkerError.prototype = new Error(); - EOIMarkerError.prototype.name = 'EOIMarkerError'; - EOIMarkerError.constructor = EOIMarkerError; - return EOIMarkerError; -}(); +class EOIMarkerError extends _util.BaseException {} 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]); @@ -21970,13 +12446,10 @@ var JpegImage = function JpegImageClosure() { var dctSqrt2 = 5793; var dctSqrt1d2 = 2896; - function JpegImage() { - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref$decodeTransform = _ref.decodeTransform, - decodeTransform = _ref$decodeTransform === void 0 ? null : _ref$decodeTransform, - _ref$colorTransform = _ref.colorTransform, - colorTransform = _ref$colorTransform === void 0 ? -1 : _ref$colorTransform; - + function JpegImage({ + decodeTransform = null, + colorTransform = -1 + } = {}) { this._decodeTransform = decodeTransform; this._colorTransform = colorTransform; } @@ -22040,12 +12513,11 @@ var JpegImage = function JpegImageClosure() { return 64 * ((component.blocksPerLine + 1) * row + col); } - function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive) { - var parseDNLMarker = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : false; + function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, parseDNLMarker = false) { var mcusPerLine = frame.mcusPerLine; var progressive = frame.progressive; - var startOffset = offset, - bitsData = 0, + const startOffset = offset; + let bitsData = 0, bitsCount = 0; function readBit() { @@ -22056,22 +12528,31 @@ var JpegImage = function JpegImageClosure() { bitsData = data[offset++]; - if (bitsData === 0xFF) { + if (bitsData === 0xff) { var nextByte = data[offset++]; if (nextByte) { - if (nextByte === 0xDC && parseDNLMarker) { + if (nextByte === 0xdc && parseDNLMarker) { + offset += 2; + const scanLines = (0, _core_utils.readUint16)(data, offset); offset += 2; - var scanLines = data[offset++] << 8 | data[offset++]; if (scanLines > 0 && scanLines !== frame.scanLines) { - throw new DNLMarkerError('Found DNL marker (0xFFDC) while parsing scan data', scanLines); + throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data", scanLines); } - } else if (nextByte === 0xD9) { - throw new EOIMarkerError('Found EOI marker (0xFFD9) while parsing scan data'); + } else if (nextByte === 0xd9) { + if (parseDNLMarker) { + const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0); + + if (maybeScanLines > 0 && Math.round(frame.scanLines / maybeScanLines) >= 10) { + throw new DNLMarkerError("Found EOI marker (0xFFD9) while parsing scan data, " + "possibly caused by incorrect `scanLines` parameter", maybeScanLines); + } + } + + throw new EOIMarkerError("Found EOI marker (0xFFD9) while parsing scan data"); } - throw new JpegError("unexpected marker ".concat((bitsData << 8 | nextByte).toString(16))); + throw new JpegError(`unexpected marker ${(bitsData << 8 | nextByte).toString(16)}`); } } @@ -22085,13 +12566,15 @@ var JpegImage = function JpegImageClosure() { while (true) { node = node[readBit()]; - if (typeof node === 'number') { - return node; + switch (typeof node) { + case "number": + return node; + + case "object": + continue; } - if (_typeof(node) !== 'object') { - throw new JpegError('invalid huffman sequence'); - } + throw new JpegError("invalid huffman sequence"); } } @@ -22120,10 +12603,10 @@ var JpegImage = function JpegImageClosure() { return n + (-1 << length) + 1; } - function decodeBaseline(component, offset) { + function decodeBaseline(component, blockOffset) { var t = decodeHuffman(component.huffmanTableDC); var diff = t === 0 ? 0 : receiveAndExtend(t); - component.blockData[offset] = component.pred += diff; + component.blockData[blockOffset] = component.pred += diff; var k = 1; while (k < 64) { @@ -22142,24 +12625,24 @@ var JpegImage = function JpegImageClosure() { k += r; var z = dctZigZag[k]; - component.blockData[offset + z] = receiveAndExtend(s); + component.blockData[blockOffset + z] = receiveAndExtend(s); k++; } } - function decodeDCFirst(component, offset) { + function decodeDCFirst(component, blockOffset) { var t = decodeHuffman(component.huffmanTableDC); var diff = t === 0 ? 0 : receiveAndExtend(t) << successive; - component.blockData[offset] = component.pred += diff; + component.blockData[blockOffset] = component.pred += diff; } - function decodeDCSuccessive(component, offset) { - component.blockData[offset] |= readBit() << successive; + function decodeDCSuccessive(component, blockOffset) { + component.blockData[blockOffset] |= readBit() << successive; } var eobrun = 0; - function decodeACFirst(component, offset) { + function decodeACFirst(component, blockOffset) { if (eobrun > 0) { eobrun--; return; @@ -22185,7 +12668,7 @@ var JpegImage = function JpegImageClosure() { k += r; var z = dctZigZag[k]; - component.blockData[offset + z] = receiveAndExtend(s) * (1 << successive); + component.blockData[blockOffset + z] = receiveAndExtend(s) * (1 << successive); k++; } } @@ -22193,7 +12676,7 @@ var JpegImage = function JpegImageClosure() { var successiveACState = 0, successiveACNextValue; - function decodeACSuccessive(component, offset) { + function decodeACSuccessive(component, blockOffset) { var k = spectralStart; var e = spectralEnd; var r = 0; @@ -22201,8 +12684,8 @@ var JpegImage = function JpegImageClosure() { var rs; while (k <= e) { - var offsetZ = offset + dctZigZag[k]; - var sign = component.blockData[offsetZ] < 0 ? -1 : 1; + const offsetZ = blockOffset + dctZigZag[k]; + const sign = component.blockData[offsetZ] < 0 ? -1 : 1; switch (successiveACState) { case 0: @@ -22220,7 +12703,7 @@ var JpegImage = function JpegImageClosure() { } } else { if (s !== 1) { - throw new JpegError('invalid ACn encoding'); + throw new JpegError("invalid ACn encoding"); } successiveACNextValue = receiveAndExtend(s); @@ -22273,20 +12756,22 @@ var JpegImage = function JpegImageClosure() { } } + let blockRow = 0; + function decodeMcu(component, decode, mcu, row, col) { var mcuRow = mcu / mcusPerLine | 0; var mcuCol = mcu % mcusPerLine; - var blockRow = mcuRow * component.v + row; + blockRow = mcuRow * component.v + row; var blockCol = mcuCol * component.h + col; - var offset = getBlockBufferOffset(component, blockRow, blockCol); - decode(component, offset); + const blockOffset = getBlockBufferOffset(component, blockRow, blockCol); + decode(component, blockOffset); } function decodeBlock(component, decode, mcu) { - var blockRow = mcu / component.blocksPerLine | 0; + blockRow = mcu / component.blocksPerLine | 0; var blockCol = mcu % component.blocksPerLine; - var offset = getBlockBufferOffset(component, blockRow, blockCol); - decode(component, offset); + const blockOffset = getBlockBufferOffset(component, blockRow, blockCol); + decode(component, blockOffset); } var componentsLength = components.length; @@ -22315,68 +12800,62 @@ var JpegImage = function JpegImageClosure() { var h, v; - while (mcu < mcuExpected) { + while (mcu <= mcuExpected) { var mcuToRead = resetInterval ? Math.min(mcuExpected - mcu, resetInterval) : mcuExpected; - for (i = 0; i < componentsLength; i++) { - components[i].pred = 0; - } - - eobrun = 0; - - if (componentsLength === 1) { - component = components[0]; - - for (n = 0; n < mcuToRead; n++) { - decodeBlock(component, decodeFn, mcu); - mcu++; + if (mcuToRead > 0) { + for (i = 0; i < componentsLength; i++) { + components[i].pred = 0; } - } else { - for (n = 0; n < mcuToRead; 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); + eobrun = 0; + + if (componentsLength === 1) { + component = components[0]; + + for (n = 0; n < mcuToRead; n++) { + decodeBlock(component, decodeFn, mcu); + mcu++; + } + } else { + for (n = 0; n < mcuToRead; 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++; + mcu++; + } } } bitsCount = 0; fileMarker = findNextFileMarker(data, offset); - if (fileMarker && fileMarker.invalid) { - (0, _util.warn)('decodeScan - unexpected MCU data, current marker is: ' + fileMarker.invalid); + if (!fileMarker) { + break; + } + + if (fileMarker.invalid) { + const partialMsg = mcuToRead > 0 ? "unexpected" : "excessive"; + (0, _util.warn)(`decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`); offset = fileMarker.offset; } - var marker = fileMarker && fileMarker.marker; - - if (!marker || marker <= 0xFF00) { - throw new JpegError('marker was not found'); - } - - if (marker >= 0xFFD0 && marker <= 0xFFD7) { + if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) { offset += 2; } else { break; } } - fileMarker = findNextFileMarker(data, offset); - - if (fileMarker && fileMarker.invalid) { - (0, _util.warn)('decodeScan - unexpected Scan data, current marker is: ' + fileMarker.invalid); - offset = fileMarker.offset; - } - return offset - startOffset; } @@ -22388,7 +12867,7 @@ var JpegImage = function JpegImageClosure() { var t; if (!qt) { - throw new JpegError('missing required Quantization Table.'); + throw new JpegError("missing required Quantization Table."); } for (var row = 0; row < 64; row += 8) { @@ -22471,7 +12950,15 @@ var JpegImage = function JpegImageClosure() { if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) { t = dctSqrt2 * p0 + 8192 >> 14; - t = t < -2040 ? 0 : t >= 2024 ? 255 : t + 2056 >> 4; + + if (t < -2040) { + t = 0; + } else if (t >= 2024) { + t = 255; + } else { + t = t + 2056 >> 4; + } + blockData[blockBufferOffset + col] = t; blockData[blockBufferOffset + col + 8] = t; blockData[blockBufferOffset + col + 16] = t; @@ -22518,14 +13005,71 @@ var JpegImage = function JpegImageClosure() { 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; + + if (p0 < 16) { + p0 = 0; + } else if (p0 >= 4080) { + p0 = 255; + } else { + p0 >>= 4; + } + + if (p1 < 16) { + p1 = 0; + } else if (p1 >= 4080) { + p1 = 255; + } else { + p1 >>= 4; + } + + if (p2 < 16) { + p2 = 0; + } else if (p2 >= 4080) { + p2 = 255; + } else { + p2 >>= 4; + } + + if (p3 < 16) { + p3 = 0; + } else if (p3 >= 4080) { + p3 = 255; + } else { + p3 >>= 4; + } + + if (p4 < 16) { + p4 = 0; + } else if (p4 >= 4080) { + p4 = 255; + } else { + p4 >>= 4; + } + + if (p5 < 16) { + p5 = 0; + } else if (p5 >= 4080) { + p5 = 255; + } else { + p5 >>= 4; + } + + if (p6 < 16) { + p6 = 0; + } else if (p6 >= 4080) { + p6 = 255; + } else { + p6 >>= 4; + } + + if (p7 < 16) { + p7 = 0; + } else if (p7 >= 4080) { + p7 = 255; + } else { + p7 >>= 4; + } + blockData[blockBufferOffset + col] = p0; blockData[blockBufferOffset + col + 8] = p1; blockData[blockBufferOffset + col + 16] = p2; @@ -22552,23 +13096,17 @@ var JpegImage = function JpegImageClosure() { return component.blockData; } - function findNextFileMarker(data, currentPos) { - var startPos = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : currentPos; - - function peekUint16(pos) { - return data[pos] << 8 | data[pos + 1]; - } - - var maxPos = data.length - 1; + function findNextFileMarker(data, currentPos, startPos = currentPos) { + const maxPos = data.length - 1; var newPos = startPos < currentPos ? startPos : currentPos; if (currentPos >= maxPos) { return null; } - var currentMarker = peekUint16(currentPos); + var currentMarker = (0, _core_utils.readUint16)(data, currentPos); - if (currentMarker >= 0xFFC0 && currentMarker <= 0xFFFE) { + if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) { return { invalid: null, marker: currentMarker, @@ -22576,14 +13114,14 @@ var JpegImage = function JpegImageClosure() { }; } - var newMarker = peekUint16(newPos); + var newMarker = (0, _core_utils.readUint16)(data, newPos); - while (!(newMarker >= 0xFFC0 && newMarker <= 0xFFFE)) { + while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) { if (++newPos >= maxPos) { return null; } - newMarker = peekUint16(newPos); + newMarker = (0, _core_utils.readUint16)(data, newPos); } return { @@ -22594,24 +13132,17 @@ var JpegImage = function JpegImageClosure() { } JpegImage.prototype = { - parse: function parse(data) { - var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - _ref2$dnlScanLines = _ref2.dnlScanLines, - dnlScanLines = _ref2$dnlScanLines === void 0 ? null : _ref2$dnlScanLines; - - function readUint16() { - var value = data[offset] << 8 | data[offset + 1]; - offset += 2; - return value; - } - + parse(data, { + dnlScanLines = null + } = {}) { function readDataBlock() { - var length = readUint16(); - var endOffset = offset + length - 2; + const length = (0, _core_utils.readUint16)(data, offset); + offset += 2; + let endOffset = offset + length - 2; var fileMarker = findNextFileMarker(data, endOffset, offset); if (fileMarker && fileMarker.invalid) { - (0, _util.warn)('readDataBlock - incorrect length, current marker is: ' + fileMarker.invalid); + (0, _util.warn)("readDataBlock - incorrect length, current marker is: " + fileMarker.invalid); endOffset = fileMarker.offset; } @@ -22644,43 +13175,45 @@ var JpegImage = function JpegImageClosure() { var jfif = null; var adobe = null; var frame, resetInterval; - var numSOSMarkers = 0; + let numSOSMarkers = 0; var quantizationTables = []; var huffmanTablesAC = [], huffmanTablesDC = []; - var fileMarker = readUint16(); + let fileMarker = (0, _core_utils.readUint16)(data, offset); + offset += 2; - if (fileMarker !== 0xFFD8) { - throw new JpegError('SOI not found'); + if (fileMarker !== 0xffd8) { + throw new JpegError("SOI not found"); } - fileMarker = readUint16(); + fileMarker = (0, _core_utils.readUint16)(data, offset); + offset += 2; - markerLoop: while (fileMarker !== 0xFFD9) { + markerLoop: 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: + 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) { + if (fileMarker === 0xffe0) { + if (appData[0] === 0x4a && appData[1] === 0x46 && appData[2] === 0x49 && appData[3] === 0x46 && appData[4] === 0) { jfif = { version: { major: appData[5], @@ -22696,8 +13229,8 @@ var JpegImage = function JpegImageClosure() { } } - if (fileMarker === 0xFFEE) { - if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6F && appData[3] === 0x62 && appData[4] === 0x65) { + 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], @@ -22709,8 +13242,9 @@ var JpegImage = function JpegImageClosure() { break; - case 0xFFDB: - var quantizationTablesLength = readUint16(); + case 0xffdb: + const quantizationTablesLength = (0, _core_utils.readUint16)(data, offset); + offset += 2; var quantizationTablesEnd = quantizationTablesLength + offset - 2; var z; @@ -22726,10 +13260,11 @@ var JpegImage = function JpegImageClosure() { } else if (quantizationTableSpec >> 4 === 1) { for (j = 0; j < 64; j++) { z = dctZigZag[j]; - tableData[z] = readUint16(); + tableData[z] = (0, _core_utils.readUint16)(data, offset); + offset += 2; } } else { - throw new JpegError('DQT - invalid table spec'); + throw new JpegError("DQT - invalid table spec"); } quantizationTables[quantizationTableSpec & 15] = tableData; @@ -22737,21 +13272,23 @@ var JpegImage = function JpegImageClosure() { break; - case 0xFFC0: - case 0xFFC1: - case 0xFFC2: + case 0xffc0: + case 0xffc1: + case 0xffc2: if (frame) { - throw new JpegError('Only single frame JPEGs supported'); + throw new JpegError("Only single frame JPEGs supported"); } - readUint16(); + offset += 2; frame = {}; - frame.extended = fileMarker === 0xFFC1; - frame.progressive = fileMarker === 0xFFC2; + frame.extended = fileMarker === 0xffc1; + frame.progressive = fileMarker === 0xffc2; frame.precision = data[offset++]; - var sofScanLines = readUint16(); + const sofScanLines = (0, _core_utils.readUint16)(data, offset); + offset += 2; frame.scanLines = dnlScanLines || sofScanLines; - frame.samplesPerLine = readUint16(); + frame.samplesPerLine = (0, _core_utils.readUint16)(data, offset); + offset += 2; frame.components = []; frame.componentIds = {}; var componentsCount = data[offset++], @@ -22774,8 +13311,8 @@ var JpegImage = function JpegImageClosure() { var qId = data[offset + 2]; l = frame.components.push({ - h: h, - v: v, + h, + v, quantizationId: qId, quantizationTable: null }); @@ -22788,8 +13325,9 @@ var JpegImage = function JpegImageClosure() { prepareComponents(frame); break; - case 0xFFC4: - var huffmanLength = readUint16(); + case 0xffc4: + const huffmanLength = (0, _core_utils.readUint16)(data, offset); + offset += 2; for (i = 2; i < huffmanLength;) { var huffmanTableSpec = data[offset++]; @@ -22812,21 +13350,24 @@ var JpegImage = function JpegImageClosure() { break; - case 0xFFDD: - readUint16(); - resetInterval = readUint16(); + case 0xffdd: + offset += 2; + resetInterval = (0, _core_utils.readUint16)(data, offset); + offset += 2; break; - case 0xFFDA: - var parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines; - readUint16(); + case 0xffda: + const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines; + offset += 2; var selectorsCount = data[offset++]; var components = [], component; for (i = 0; i < selectorsCount; i++) { - var componentIndex = frame.componentIds[data[offset++]]; + const index = data[offset++]; + var componentIndex = frame.componentIds[index]; component = frame.components[componentIndex]; + component.index = index; var tableSpec = data[offset++]; component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4]; component.huffmanTableAC = huffmanTablesAC[tableSpec & 15]; @@ -22842,12 +13383,12 @@ var JpegImage = function JpegImageClosure() { offset += processed; } catch (ex) { if (ex instanceof DNLMarkerError) { - (0, _util.warn)("".concat(ex.message, " -- attempting to re-parse the JPEG image.")); + (0, _util.warn)(`${ex.message} -- attempting to re-parse the JPEG image.`); return this.parse(data, { dnlScanLines: ex.scanLines }); } else if (ex instanceof EOIMarkerError) { - (0, _util.warn)("".concat(ex.message, " -- ignoring the rest of the image data.")); + (0, _util.warn)(`${ex.message} -- ignoring the rest of the image data.`); break markerLoop; } @@ -22856,35 +13397,36 @@ var JpegImage = function JpegImageClosure() { break; - case 0xFFDC: + case 0xffdc: offset += 4; break; - case 0xFFFF: - if (data[offset] !== 0xFF) { + 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; - } - - var nextFileMarker = findNextFileMarker(data, offset - 2); + const nextFileMarker = findNextFileMarker(data, offset - 2, offset - 3); if (nextFileMarker && nextFileMarker.invalid) { - (0, _util.warn)('JpegImage.parse - unexpected data, current marker is: ' + nextFileMarker.invalid); + (0, _util.warn)("JpegImage.parse - unexpected data, current marker is: " + nextFileMarker.invalid); offset = nextFileMarker.offset; break; } - throw new JpegError('unknown marker ' + fileMarker.toString(16)); + if (offset >= data.length - 1) { + (0, _util.warn)("JpegImage.parse - reached the end of the image data " + "without finding an EOI marker (0xFFD9)."); + break markerLoop; + } + + throw new JpegError("JpegImage.parse - unknown marker: " + fileMarker.toString(16)); } - fileMarker = readUint16(); + fileMarker = (0, _core_utils.readUint16)(data, offset); + offset += 2; } this.width = frame.samplesPerLine; @@ -22902,6 +13444,7 @@ var JpegImage = function JpegImageClosure() { } this.components.push({ + index: component.index, output: buildComponentData(frame, component), scaleX: component.h / frame.maxH, scaleY: component.v / frame.maxV, @@ -22913,8 +13456,8 @@ var JpegImage = function JpegImageClosure() { this.numComponents = this.components.length; return undefined; }, - _getLinearizedBlockData: function _getLinearizedBlockData(width, height) { - var isSourcePDF = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + _getLinearizedBlockData(width, height, isSourcePDF = false) { var scaleX = this.width / width, scaleY = this.height / height; var component, componentScaleX, componentScaleY, blocksPerScanline; @@ -22927,6 +13470,7 @@ var JpegImage = function JpegImageClosure() { var data = new Uint8ClampedArray(dataLength); var xScaleBlockOffset = new Uint32Array(width); var mask3LSB = 0xfffffff8; + let lastComponentScaleX; for (i = 0; i < numComponents; i++) { component = this.components[i]; @@ -22936,9 +13480,13 @@ var JpegImage = function JpegImageClosure() { 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; + if (componentScaleX !== lastComponentScaleX) { + for (x = 0; x < width; x++) { + j = 0 | x * componentScaleX; + xScaleBlockOffset[x] = (j & mask3LSB) << 3 | j & 7; + } + + lastComponentScaleX = componentScaleX; } for (y = 0; y < height; y++) { @@ -22952,7 +13500,7 @@ var JpegImage = function JpegImageClosure() { } } - var transform = this._decodeTransform; + let transform = this._decodeTransform; if (!isSourcePDF && numComponents === 4 && !transform) { transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]); @@ -22977,6 +13525,8 @@ var JpegImage = function JpegImageClosure() { if (this.numComponents === 3) { if (this._colorTransform === 0) { return false; + } else if (this.components[0].index === 0x52 && this.components[1].index === 0x47 && this.components[2].index === 0x42) { + return false; } return true; @@ -23036,30 +13586,28 @@ var JpegImage = function JpegImageClosure() { _convertCmykToRgb: function convertCmykToRgb(data) { var c, m, y, k; var offset = 0; - var scale = 1 / 255; for (var i = 0, length = data.length; i < length; i += 4) { - c = data[i] * scale; - m = data[i + 1] * scale; - y = data[i + 2] * scale; - k = data[i + 3] * scale; - data[offset++] = 255 + 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); - data[offset++] = 255 + 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); - data[offset++] = 255 + 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); + c = data[i]; + m = data[i + 1]; + y = data[i + 2]; + k = data[i + 3]; + data[offset++] = 255 + c * (-0.00006747147073602441 * c + 0.0008379262121013727 * m + 0.0002894718188643294 * y + 0.003264231057537806 * k - 1.1185611867203937) + m * (0.000026374107616089405 * m - 0.00008626949158638572 * y - 0.0002748769067499491 * k - 0.02155688794978967) + y * (-0.00003878099212869363 * y - 0.0003267808279485286 * k + 0.0686742238595345) - k * (0.0003361971776183937 * k + 0.7430659151342254); + data[offset++] = 255 + c * (0.00013596372813588848 * c + 0.000924537132573585 * m + 0.00010567359618683593 * y + 0.0004791864687436512 * k - 0.3109689587515875) + m * (-0.00023545346108370344 * m + 0.0002702845253534714 * y + 0.0020200308977307156 * k - 0.7488052167015494) + y * (0.00006834815998235662 * y + 0.00015168452363460973 * k - 0.09751927774728933) - k * (0.00031891311758832814 * k + 0.7364883807733168); + data[offset++] = 255 + c * (0.000013598650411385307 * c + 0.00012423956175490851 * m + 0.0004751985097583589 * y - 0.0000036729317476630422 * k - 0.05562186980264034) + m * (0.00016141380598724676 * m + 0.0009692239130725186 * y + 0.0007782692450036253 * k - 0.44015232367526463) + y * (5.068882914068769e-7 * y + 0.0017778369011375071 * k - 0.7591454649749609) - k * (0.0003435319965105553 * k + 0.7063770186160144); } return data.subarray(0, offset); }, - getData: function getData(_ref3) { - var width = _ref3.width, - height = _ref3.height, - _ref3$forceRGB = _ref3.forceRGB, - forceRGB = _ref3$forceRGB === void 0 ? false : _ref3$forceRGB, - _ref3$isSourcePDF = _ref3.isSourcePDF, - isSourcePDF = _ref3$isSourcePDF === void 0 ? false : _ref3$isSourcePDF; + getData({ + width, + height, + forceRGB = false, + isSourcePDF = false + }) { if (this.numComponents > 4) { - throw new JpegError('Unsupported color mode'); + throw new JpegError("Unsupported color mode"); } var data = this._getLinearizedBlockData(width, height, isSourcePDF); @@ -23093,6 +13641,7 @@ var JpegImage = function JpegImageClosure() { return data; } + }; return JpegImage; }(); @@ -23100,7 +13649,7 @@ var JpegImage = function JpegImageClosure() { exports.JpegImage = JpegImage; /***/ }), -/* 166 */ +/* 20 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -23111,13 +13660,13 @@ Object.defineProperty(exports, "__esModule", { }); exports.JpxStream = void 0; -var _stream = __w_pdfjs_require__(158); +var _stream = __w_pdfjs_require__(12); -var _jpx = __w_pdfjs_require__(167); +var _jpx = __w_pdfjs_require__(21); -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -var JpxStream = function JpxStreamClosure() { +const JpxStream = function JpxStreamClosure() { function JpxStream(stream, maybeLength, dict, params) { this.stream = stream; this.maybeLength = maybeLength; @@ -23128,9 +13677,9 @@ var JpxStream = function JpxStreamClosure() { } JpxStream.prototype = Object.create(_stream.DecodeStream.prototype); - Object.defineProperty(JpxStream.prototype, 'bytes', { + Object.defineProperty(JpxStream.prototype, "bytes", { get: function JpxStream_bytes() { - return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength)); + return (0, _util.shadow)(this, "bytes", this.stream.getBytes(this.maybeLength)); }, configurable: true }); @@ -23142,32 +13691,32 @@ var JpxStream = function JpxStreamClosure() { return; } - var jpxImage = new _jpx.JpxImage(); + const jpxImage = new _jpx.JpxImage(); jpxImage.parse(this.bytes); - var width = jpxImage.width; - var height = jpxImage.height; - var componentsCount = jpxImage.componentsCount; - var tileCount = jpxImage.tiles.length; + const width = jpxImage.width; + const height = jpxImage.height; + const componentsCount = jpxImage.componentsCount; + const tileCount = jpxImage.tiles.length; if (tileCount === 1) { this.buffer = jpxImage.tiles[0].items; } else { - var data = new Uint8ClampedArray(width * height * componentsCount); + const data = new Uint8ClampedArray(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 (let k = 0; k < tileCount; k++) { + const tileComponents = jpxImage.tiles[k]; + const tileWidth = tileComponents.width; + const tileHeight = tileComponents.height; + const tileLeft = tileComponents.left; + const tileTop = tileComponents.top; + const src = tileComponents.items; + let srcPosition = 0; + let dataPosition = (width * tileTop + tileLeft) * componentsCount; + const imgRowSize = width * componentsCount; + const tileRowSize = tileWidth * componentsCount; - for (var j = 0; j < tileHeight; j++) { - var rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize); + for (let j = 0; j < tileHeight; j++) { + const rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize); data.set(rowBytes, dataPosition); srcPosition += tileRowSize; dataPosition += imgRowSize; @@ -23187,7 +13736,7 @@ var JpxStream = function JpxStreamClosure() { exports.JpxStream = JpxStream; /***/ }), -/* 167 */ +/* 21 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -23198,27 +13747,25 @@ Object.defineProperty(exports, "__esModule", { }); exports.JpxImage = void 0; -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -var _arithmetic_decoder = __w_pdfjs_require__(163); +var _core_utils = __w_pdfjs_require__(8); -var JpxError = function JpxErrorClosure() { - function JpxError(msg) { - this.message = 'JPX error: ' + msg; +var _arithmetic_decoder = __w_pdfjs_require__(17); + +class JpxError extends _util.BaseException { + constructor(msg) { + super(`JPX error: ${msg}`); } - JpxError.prototype = new Error(); - JpxError.prototype.name = 'JpxError'; - JpxError.constructor = JpxError; - return JpxError; -}(); +} var JpxImage = function JpxImageClosure() { var SubbandsGainLog2 = { - 'LL': 0, - 'LH': 1, - 'HL': 1, - 'HH': 2 + LL: 0, + LH: 1, + HL: 1, + HH: 2 }; function JpxImage() { @@ -23227,9 +13774,9 @@ var JpxImage = function JpxImageClosure() { JpxImage.prototype = { parse: function JpxImage_parse(data) { - var head = (0, _util.readUint16)(data, 0); + var head = (0, _core_utils.readUint16)(data, 0); - if (head === 0xFF4F) { + if (head === 0xff4f) { this.parseCodestream(data, 0, data.length); return; } @@ -23239,12 +13786,12 @@ var JpxImage = function JpxImageClosure() { while (position < length) { var headerSize = 8; - var lbox = (0, _util.readUint32)(data, position); - var tbox = (0, _util.readUint32)(data, position + 4); + var lbox = (0, _core_utils.readUint32)(data, position); + var tbox = (0, _core_utils.readUint32)(data, position + 4); position += headerSize; if (lbox === 1) { - lbox = (0, _util.readUint32)(data, position) * 4294967296 + (0, _util.readUint32)(data, position + 4); + lbox = (0, _core_utils.readUint32)(data, position) * 4294967296 + (0, _core_utils.readUint32)(data, position + 4); position += 8; headerSize += 8; } @@ -23254,22 +13801,22 @@ var JpxImage = function JpxImageClosure() { } if (lbox < headerSize) { - throw new JpxError('Invalid box field size'); + throw new JpxError("Invalid box field size"); } var dataLength = lbox - headerSize; var jumpDataLength = true; switch (tbox) { - case 0x6A703268: + case 0x6a703268: jumpDataLength = false; break; - case 0x636F6C72: + case 0x636f6c72: var method = data[position]; if (method === 1) { - var colorspace = (0, _util.readUint32)(data, position + 3); + var colorspace = (0, _core_utils.readUint32)(data, position + 3); switch (colorspace) { case 16: @@ -23278,27 +13825,27 @@ var JpxImage = function JpxImageClosure() { break; default: - (0, _util.warn)('Unknown colorspace ' + colorspace); + (0, _util.warn)("Unknown colorspace " + colorspace); break; } } else if (method === 2) { - (0, _util.info)('ICC profile not supported'); + (0, _util.info)("ICC profile not supported"); } break; - case 0x6A703263: + case 0x6a703263: this.parseCodestream(data, position, position + dataLength); break; - case 0x6A502020: - if ((0, _util.readUint32)(data, position) !== 0x0d0a870a) { - (0, _util.warn)('Invalid JP2 signature'); + case 0x6a502020: + if ((0, _core_utils.readUint32)(data, position) !== 0x0d0a870a) { + (0, _util.warn)("Invalid JP2 signature"); } break; - case 0x6A501A1A: + case 0x6a501a1a: case 0x66747970: case 0x72726571: case 0x72657320: @@ -23306,8 +13853,8 @@ var JpxImage = function JpxImageClosure() { break; default: - var headerType = String.fromCharCode(tbox >> 24 & 0xFF, tbox >> 16 & 0xFF, tbox >> 8 & 0xFF, tbox & 0xFF); - (0, _util.warn)('Unsupported header type ' + tbox + ' (' + headerType + ')'); + var headerType = String.fromCharCode(tbox >> 24 & 0xff, tbox >> 16 & 0xff, tbox >> 8 & 0xff, tbox & 0xff); + (0, _util.warn)("Unsupported header type " + tbox + " (" + headerType + ")"); break; } @@ -23324,7 +13871,7 @@ var JpxImage = function JpxImageClosure() { newByte = stream.getByte(); var code = oldByte << 8 | newByte; - if (code === 0xFF51) { + if (code === 0xff51) { stream.skip(4); var Xsiz = stream.getInt32() >>> 0; var Ysiz = stream.getInt32() >>> 0; @@ -23340,7 +13887,7 @@ var JpxImage = function JpxImageClosure() { } } - throw new JpxError('No size marker found in JPX stream'); + throw new JpxError("No size marker found in JPX stream"); }, parseCodestream: function JpxImage_parseCodestream(data, start, end) { var context = {}; @@ -23350,7 +13897,7 @@ var JpxImage = function JpxImageClosure() { var position = start; while (position + 1 < end) { - var code = (0, _util.readUint16)(data, position); + var code = (0, _core_utils.readUint16)(data, position); position += 2; var length = 0, j, @@ -23361,32 +13908,32 @@ var JpxImage = function JpxImageClosure() { tile; switch (code) { - case 0xFF4F: + case 0xff4f: context.mainHeader = true; break; - case 0xFFD9: + case 0xffd9: break; - case 0xFF51: - length = (0, _util.readUint16)(data, position); + case 0xff51: + length = (0, _core_utils.readUint16)(data, position); var siz = {}; - siz.Xsiz = (0, _util.readUint32)(data, position + 4); - siz.Ysiz = (0, _util.readUint32)(data, position + 8); - siz.XOsiz = (0, _util.readUint32)(data, position + 12); - siz.YOsiz = (0, _util.readUint32)(data, position + 16); - siz.XTsiz = (0, _util.readUint32)(data, position + 20); - siz.YTsiz = (0, _util.readUint32)(data, position + 24); - siz.XTOsiz = (0, _util.readUint32)(data, position + 28); - siz.YTOsiz = (0, _util.readUint32)(data, position + 32); - var componentsCount = (0, _util.readUint16)(data, position + 36); + siz.Xsiz = (0, _core_utils.readUint32)(data, position + 4); + siz.Ysiz = (0, _core_utils.readUint32)(data, position + 8); + siz.XOsiz = (0, _core_utils.readUint32)(data, position + 12); + siz.YOsiz = (0, _core_utils.readUint32)(data, position + 16); + siz.XTsiz = (0, _core_utils.readUint32)(data, position + 20); + siz.YTsiz = (0, _core_utils.readUint32)(data, position + 24); + siz.XTOsiz = (0, _core_utils.readUint32)(data, position + 28); + siz.YTOsiz = (0, _core_utils.readUint32)(data, position + 32); + var componentsCount = (0, _core_utils.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, + precision: (data[j] & 0x7f) + 1, isSigned: !!(data[j] & 0x80), XRsiz: data[j + 1], YRsiz: data[j + 2] @@ -23403,13 +13950,13 @@ var JpxImage = function JpxImageClosure() { context.COC = []; break; - case 0xFF5C: - length = (0, _util.readUint16)(data, position); + case 0xff5c: + length = (0, _core_utils.readUint16)(data, position); var qcd = {}; j = position + 2; sqcd = data[j++]; - switch (sqcd & 0x1F) { + switch (sqcd & 0x1f) { case 0: spqcdSize = 8; scalarExpounded = true; @@ -23426,7 +13973,7 @@ var JpxImage = function JpxImageClosure() { break; default: - throw new Error('Invalid SQcd value ' + sqcd); + throw new Error("Invalid SQcd value " + sqcd); } qcd.noQuantization = spqcdSize === 8; @@ -23460,8 +14007,8 @@ var JpxImage = function JpxImageClosure() { break; - case 0xFF5D: - length = (0, _util.readUint16)(data, position); + case 0xff5d: + length = (0, _core_utils.readUint16)(data, position); var qcc = {}; j = position + 2; var cqcc; @@ -23469,13 +14016,13 @@ var JpxImage = function JpxImageClosure() { if (context.SIZ.Csiz < 257) { cqcc = data[j++]; } else { - cqcc = (0, _util.readUint16)(data, j); + cqcc = (0, _core_utils.readUint16)(data, j); j += 2; } sqcd = data[j++]; - switch (sqcd & 0x1F) { + switch (sqcd & 0x1f) { case 0: spqcdSize = 8; scalarExpounded = true; @@ -23492,7 +14039,7 @@ var JpxImage = function JpxImageClosure() { break; default: - throw new Error('Invalid SQcd value ' + sqcd); + throw new Error("Invalid SQcd value " + sqcd); } qcc.noQuantization = spqcdSize === 8; @@ -23525,8 +14072,8 @@ var JpxImage = function JpxImageClosure() { break; - case 0xFF52: - length = (0, _util.readUint16)(data, position); + case 0xff52: + length = (0, _core_utils.readUint16)(data, position); var cod = {}; j = position + 2; var scod = data[j++]; @@ -23534,12 +14081,12 @@ var JpxImage = function JpxImageClosure() { cod.sopMarkerUsed = !!(scod & 2); cod.ephMarkerUsed = !!(scod & 4); cod.progressionOrder = data[j++]; - cod.layersCount = (0, _util.readUint16)(data, j); + cod.layersCount = (0, _core_utils.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; + cod.xcb = (data[j++] & 0xf) + 2; + cod.ycb = (data[j++] & 0xf) + 2; var blockStyle = data[j++]; cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1); cod.resetContextProbabilities = !!(blockStyle & 2); @@ -23555,7 +14102,7 @@ var JpxImage = function JpxImageClosure() { while (j < length + position) { var precinctsSize = data[j++]; precinctsSizes.push({ - PPx: precinctsSize & 0xF, + PPx: precinctsSize & 0xf, PPy: precinctsSize >> 4 }); } @@ -23566,28 +14113,28 @@ var JpxImage = function JpxImageClosure() { var unsupported = []; if (cod.selectiveArithmeticCodingBypass) { - unsupported.push('selectiveArithmeticCodingBypass'); + unsupported.push("selectiveArithmeticCodingBypass"); } if (cod.resetContextProbabilities) { - unsupported.push('resetContextProbabilities'); + unsupported.push("resetContextProbabilities"); } if (cod.terminationOnEachCodingPass) { - unsupported.push('terminationOnEachCodingPass'); + unsupported.push("terminationOnEachCodingPass"); } if (cod.verticallyStripe) { - unsupported.push('verticallyStripe'); + unsupported.push("verticallyStripe"); } if (cod.predictableTermination) { - unsupported.push('predictableTermination'); + unsupported.push("predictableTermination"); } if (unsupported.length > 0) { doNotRecover = true; - throw new Error('Unsupported COD options (' + unsupported.join(', ') + ')'); + throw new Error("Unsupported COD options (" + unsupported.join(", ") + ")"); } if (context.mainHeader) { @@ -23599,11 +14146,11 @@ var JpxImage = function JpxImageClosure() { break; - case 0xFF90: - length = (0, _util.readUint16)(data, position); + case 0xff90: + length = (0, _core_utils.readUint16)(data, position); tile = {}; - tile.index = (0, _util.readUint16)(data, position + 2); - tile.length = (0, _util.readUint32)(data, position + 4); + tile.index = (0, _core_utils.readUint16)(data, position + 2); + tile.length = (0, _core_utils.readUint32)(data, position + 4); tile.dataEnd = tile.length + position - 2; tile.partIndex = data[position + 8]; tile.partsCount = data[position + 9]; @@ -23619,7 +14166,7 @@ var JpxImage = function JpxImageClosure() { context.currentTile = tile; break; - case 0xFF93: + case 0xff93: tile = context.currentTile; if (tile.partIndex === 0) { @@ -23631,18 +14178,18 @@ var JpxImage = function JpxImageClosure() { parseTilePackets(context, data, position, length); break; - case 0xFF55: - case 0xFF57: - case 0xFF58: - case 0xFF64: - length = (0, _util.readUint16)(data, position); + case 0xff55: + case 0xff57: + case 0xff58: + case 0xff64: + length = (0, _core_utils.readUint16)(data, position); break; - case 0xFF53: - throw new Error('Codestream code 0xFF53 (COC) is ' + 'not implemented'); + case 0xff53: + throw new Error("Codestream code 0xFF53 (COC) is not implemented"); default: - throw new Error('Unknown codestream code: ' + code.toString(16)); + throw new Error("Unknown codestream code: " + code.toString(16)); } position += length; @@ -23651,7 +14198,7 @@ var JpxImage = function JpxImageClosure() { if (doNotRecover || this.failOnCorruptedImage) { throw new JpxError(e.message); } else { - (0, _util.warn)('JPX: Trying to recover from: ' + e.message); + (0, _util.warn)("JPX: Trying to recover from: " + e.message); } } @@ -23739,13 +14286,13 @@ var JpxImage = function JpxImageClosure() { 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 + precinctWidth, + precinctHeight, + numprecinctswide, + numprecinctshigh, + numprecincts, + precinctWidthInSubband, + precinctHeightInSubband }; } @@ -23846,7 +14393,7 @@ var JpxImage = function JpxImageClosure() { } return { - layerNumber: layerNumber, + layerNumber, codeblocks: precinctCodeblocks }; } @@ -23896,7 +14443,7 @@ var JpxImage = function JpxImageClosure() { r = 0; } - throw new JpxError('Out of packets'); + throw new JpxError("Out of packets"); }; } @@ -23945,7 +14492,7 @@ var JpxImage = function JpxImageClosure() { l = 0; } - throw new JpxError('Out of packets'); + throw new JpxError("Out of packets"); }; } @@ -23959,7 +14506,7 @@ var JpxImage = function JpxImageClosure() { var maxDecompositionLevelsCount = 0; for (c = 0; c < componentsCount; c++) { - var component = tile.components[c]; + const component = tile.components[c]; maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, component.codingStyleParameters.decompositionLevelsCount); } @@ -23988,7 +14535,7 @@ var JpxImage = function JpxImageClosure() { for (; r <= maxDecompositionLevelsCount; r++) { for (; p < maxNumPrecinctsInLevel[r]; p++) { for (; c < componentsCount; c++) { - var component = tile.components[c]; + const component = tile.components[c]; if (r > component.codingStyleParameters.decompositionLevelsCount) { continue; @@ -24016,7 +14563,7 @@ var JpxImage = function JpxImageClosure() { p = 0; } - throw new JpxError('Out of packets'); + throw new JpxError("Out of packets"); }; } @@ -24068,7 +14615,7 @@ var JpxImage = function JpxImageClosure() { px = 0; } - throw new JpxError('Out of packets'); + throw new JpxError("Out of packets"); }; } @@ -24120,7 +14667,7 @@ var JpxImage = function JpxImageClosure() { py = 0; } - throw new JpxError('Out of packets'); + throw new JpxError("Out of packets"); }; } @@ -24184,10 +14731,10 @@ var JpxImage = function JpxImageClosure() { return { components: sizePerComponent, - minWidth: minWidth, - minHeight: minHeight, - maxNumWide: maxNumWide, - maxNumHigh: maxNumHigh + minWidth, + minHeight, + maxNumWide, + maxNumHigh }; } @@ -24218,7 +14765,7 @@ var JpxImage = function JpxImageClosure() { if (r === 0) { subband = {}; - subband.type = 'LL'; + subband.type = "LL"; subband.tbx0 = Math.ceil(component.tcx0 / scale); subband.tby0 = Math.ceil(component.tcy0 / scale); subband.tbx1 = Math.ceil(component.tcx1 / scale); @@ -24231,7 +14778,7 @@ var JpxImage = function JpxImageClosure() { var bscale = 1 << decompositionLevelsCount - r + 1; var resolutionSubbands = []; subband = {}; - subband.type = 'HL'; + 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); @@ -24241,7 +14788,7 @@ var JpxImage = function JpxImageClosure() { subbands.push(subband); resolutionSubbands.push(subband); subband = {}; - subband.type = 'LH'; + 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); @@ -24251,7 +14798,7 @@ var JpxImage = function JpxImageClosure() { subbands.push(subband); resolutionSubbands.push(subband); subband = {}; - subband.type = 'HH'; + 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); @@ -24292,7 +14839,7 @@ var JpxImage = function JpxImageClosure() { break; default: - throw new JpxError("Unsupported progression order ".concat(progressionOrder)); + throw new JpxError(`Unsupported progression order ${progressionOrder}`); } } @@ -24316,7 +14863,7 @@ var JpxImage = function JpxImageClosure() { bufferSize += 8; } - if (b === 0xFF) { + if (b === 0xff) { skipNextBit = true; } } @@ -24326,10 +14873,10 @@ var JpxImage = function JpxImageClosure() { } function skipMarkerIfEqual(value) { - if (data[offset + position - 1] === 0xFF && data[offset + position] === 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) { + } else if (data[offset + position] === 0xff && data[offset + position + 1] === value) { skipBytes(2); return true; } @@ -24407,13 +14954,13 @@ var JpxImage = function JpxImageClosure() { var firstTimeInclusion = false; var valueReady; - if (codeblock['included'] !== undefined) { + if (codeblock.included !== undefined) { codeblockIncluded = !!readBits(1); } else { precinct = codeblock.precinct; var inclusionTree, zeroBitPlanesTree; - if (precinct['inclusionTree'] !== undefined) { + if (precinct.inclusionTree !== undefined) { inclusionTree = precinct.inclusionTree; } else { var width = precinct.cbxMax - precinct.cbxMin + 1; @@ -24471,12 +15018,12 @@ var JpxImage = function JpxImageClosure() { codeblock.Lblock++; } - var codingpassesLog2 = (0, _util.log2)(codingpasses); + var codingpassesLog2 = (0, _core_utils.log2)(codingpasses); var bits = (codingpasses < 1 << codingpassesLog2 ? codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock; var codedDataLength = readBits(bits); queue.push({ - codeblock: codeblock, - codingpasses: codingpasses, + codeblock, + codingpasses, dataLength: codedDataLength }); } @@ -24491,12 +15038,12 @@ var JpxImage = function JpxImageClosure() { var packetItem = queue.shift(); codeblock = packetItem.codeblock; - if (codeblock['data'] === undefined) { + if (codeblock.data === undefined) { codeblock.data = []; } codeblock.data.push({ - data: data, + data, start: offset + position, end: offset + position + packetItem.dataLength, codingpasses: packetItem.codingpasses @@ -24513,8 +15060,8 @@ var JpxImage = function JpxImageClosure() { 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; + 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]; @@ -24525,7 +15072,7 @@ var JpxImage = function JpxImageClosure() { continue; } - if (codeblock['data'] === undefined) { + if (codeblock.data === undefined) { continue; } @@ -24586,7 +15133,7 @@ var JpxImage = function JpxImageClosure() { var magnitudeCorrection = reversible ? 0 : 0.5; var k, n, nb; position = 0; - var interleave = subband.type !== 'LL'; + var interleave = subband.type !== "LL"; for (j = 0; j < blockHeight; j++) { var row = offset / width | 0; @@ -24656,14 +15203,14 @@ var JpxImage = function JpxImageClosure() { var subband = resolution.subbands[j]; var gainLog2 = SubbandsGainLog2[subband.type]; - var delta = reversible ? 1 : Math.pow(2, precision + gainLog2 - epsilon) * (1 + mu / 2048); + var delta = reversible ? 1 : 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, + width, + height, items: coefficients }); } @@ -24736,7 +15283,7 @@ var JpxImage = function JpxImageClosure() { y0 = y0items[j] + offset; y1 = y1items[j]; y2 = y2items[j]; - var g = y0 - (y2 + y1 >> 2); + const g = y0 - (y2 + y1 >> 2); out[pos++] = g + y2 >> shift; out[pos++] = g >> shift; out[pos++] = g + y1 >> shift; @@ -24785,13 +15332,13 @@ var JpxImage = function JpxImageClosure() { var TagTree = function TagTreeClosure() { function TagTree(width, height) { - var levelsLength = (0, _util.log2)(Math.max(width, height)) + 1; + var levelsLength = (0, _core_utils.log2)(Math.max(width, height)) + 1; this.levels = []; for (var i = 0; i < levelsLength; i++) { var level = { - width: width, - height: height, + width, + height, items: [] }; this.levels.push(level); @@ -24853,7 +15400,7 @@ var JpxImage = function JpxImageClosure() { var InclusionTree = function InclusionTreeClosure() { function InclusionTree(width, height, defaultValue) { - var levelsLength = (0, _util.log2)(Math.max(width, height)) + 1; + var levelsLength = (0, _core_utils.log2)(Math.max(width, height)) + 1; this.levels = []; for (var i = 0; i < levelsLength; i++) { @@ -24864,9 +15411,9 @@ var JpxImage = function JpxImageClosure() { } var level = { - width: width, - height: height, - items: items + width, + height, + items }; this.levels.push(level); width = Math.ceil(width / 2); @@ -24884,7 +15431,7 @@ var JpxImage = function JpxImageClosure() { level.index = index; var value = level.items[index]; - if (value === 0xFF) { + if (value === 0xff) { break; } @@ -24921,7 +15468,7 @@ var JpxImage = function JpxImageClosure() { var currentLevel = this.currentLevel; var level = this.levels[currentLevel]; var value = level.items[level.index]; - level.items[level.index] = 0xFF; + level.items[level.index] = 0xff; currentLevel--; if (currentLevel < 0) { @@ -24947,11 +15494,31 @@ var JpxImage = function JpxImageClosure() { function BitModel(width, height, subband, zeroBitPlanes, mb) { this.width = width; this.height = height; - this.contextLabelTable = subband === 'HH' ? HHContextLabel : subband === 'HL' ? HLContextLabel : LLAndLHContextsLabel; + let contextLabelTable; + + if (subband === "HH") { + contextLabelTable = HHContextLabel; + } else if (subband === "HL") { + contextLabelTable = HLContextLabel; + } else { + contextLabelTable = LLAndLHContextsLabel; + } + + this.contextLabelTable = contextLabelTable; 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); + let coefficentsMagnitude; + + if (mb > 14) { + coefficentsMagnitude = new Uint32Array(coefficientCount); + } else if (mb > 6) { + coefficentsMagnitude = new Uint16Array(coefficientCount); + } else { + coefficentsMagnitude = new Uint8Array(coefficientCount); + } + + this.coefficentsMagnitude = coefficentsMagnitude; this.processingFlags = new Uint8Array(coefficientCount); var bitsDecoded = new Uint8Array(coefficientCount); @@ -25252,8 +15819,8 @@ var JpxImage = function JpxImageClosure() { 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) { - throw new JpxError('Invalid segmentation symbol'); + if (symbol !== 0xa) { + throw new JpxError("Invalid segmentation symbol"); } } }; @@ -25373,9 +15940,9 @@ var JpxImage = function JpxImageClosure() { } return { - width: width, - height: height, - items: items + width, + height, + items }; }; @@ -25505,7 +16072,7 @@ var JpxImage = function JpxImageClosure() { exports.JpxImage = JpxImage; /***/ }), -/* 168 */ +/* 22 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -25516,29 +16083,11 @@ Object.defineProperty(exports, "__esModule", { }); exports.calculateSHA512 = exports.calculateSHA384 = exports.calculateSHA256 = exports.calculateMD5 = exports.PDF20 = exports.PDF17 = exports.CipherTransformFactory = exports.ARCFourCipher = exports.AES256Cipher = exports.AES128Cipher = void 0; -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -var _primitives = __w_pdfjs_require__(151); +var _primitives = __w_pdfjs_require__(5); -var _stream = __w_pdfjs_require__(158); - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _stream = __w_pdfjs_require__(12); var ARCFourCipher = function ARCFourCipherClosure() { function ARCFourCipher(key) { @@ -25556,7 +16105,7 @@ var ARCFourCipher = function ARCFourCipherClosure() { for (i = 0; i < 256; ++i) { tmp = s[i]; - j = j + tmp + key[i % keyLength] & 0xFF; + j = j + tmp + key[i % keyLength] & 0xff; s[i] = s[j]; s[j] = tmp; } @@ -25576,13 +16125,13 @@ var ARCFourCipher = function ARCFourCipherClosure() { var output = new Uint8Array(n); for (i = 0; i < n; ++i) { - a = a + 1 & 0xFF; + a = a + 1 & 0xff; tmp = s[a]; - b = b + tmp & 0xFF; + b = b + tmp & 0xff; tmp2 = s[b]; s[a] = tmp2; s[b] = tmp; - output[i] = data[i] ^ s[tmp + tmp2 & 0xFF]; + output[i] = data[i] ^ s[tmp + tmp2 & 0xff]; } this.a = a; @@ -25591,6 +16140,7 @@ var ARCFourCipher = function ARCFourCipherClosure() { } }; ARCFourCipher.prototype.decryptBlock = ARCFourCipher.prototype.encryptBlock; + ARCFourCipher.prototype.encrypt = ARCFourCipher.prototype.encryptBlock; return ARCFourCipher; }(); @@ -25620,11 +16170,11 @@ var calculateMD5 = function calculateMD5Closure() { 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++] = 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; @@ -25740,7 +16290,7 @@ var Word64 = function Word64Closure() { var lowAdd = (this.low >>> 0) + (word.low >>> 0); var highAdd = (this.high >>> 0) + (word.high >>> 0); - if (lowAdd > 0xFFFFFFFF) { + if (lowAdd > 0xffffffff) { highAdd += 1; } @@ -25748,14 +16298,14 @@ var Word64 = function Word64Closure() { 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; + 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; @@ -25823,11 +16373,11 @@ var calculateSHA256 = function calculateSHA256Closure() { 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; + 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;) { @@ -25999,11 +16549,11 @@ var calculateSHA512 = function calculateSHA512Closure() { 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; + 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++) { @@ -26130,19 +16680,18 @@ var NullCipher = function NullCipherClosure() { NullCipher.prototype = { decryptBlock: function NullCipher_decryptBlock(data) { return data; + }, + encrypt: function NullCipher_encrypt(data) { + return data; } }; return NullCipher; }(); -var AESBaseCipher = -/*#__PURE__*/ -function () { - function AESBaseCipher() { - _classCallCheck(this, AESBaseCipher); - +class AESBaseCipher { + constructor() { if (this.constructor === AESBaseCipher) { - (0, _util.unreachable)('Cannot initialize AESBaseCipher.'); + (0, _util.unreachable)("Cannot initialize AESBaseCipher."); } this._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]); @@ -26150,7 +16699,7 @@ function () { this._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]); this._mixCol = new Uint8Array(256); - for (var i = 0; i < 256; i++) { + for (let i = 0; i < 256; i++) { if (i < 128) { this._mixCol[i] = i << 1; } else { @@ -26162,63 +16711,20 @@ function () { this.bufferPosition = 0; } - _createClass(AESBaseCipher, [{ - key: "_expandKey", - value: function _expandKey(cipherKey) { - (0, _util.unreachable)('Cannot call `_expandKey` on the base class'); + _expandKey(cipherKey) { + (0, _util.unreachable)("Cannot call `_expandKey` on the base class"); + } + + _decrypt(input, key) { + let t, u, v; + const state = new Uint8Array(16); + state.set(input); + + for (let j = 0, k = this._keySize; j < 16; ++j, ++k) { + state[j] ^= key[k]; } - }, { - key: "_decrypt", - value: function _decrypt(input, key) { - var t, u, v; - var state = new Uint8Array(16); - state.set(input); - - for (var j = 0, k = this._keySize; j < 16; ++j, ++k) { - state[j] ^= key[k]; - } - - for (var i = this._cyclesOfRepetition - 1; 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 (var _j = 0; _j < 16; ++_j) { - state[_j] = this._inv_s[state[_j]]; - } - - for (var _j2 = 0, _k = i * 16; _j2 < 16; ++_j2, ++_k) { - state[_j2] ^= key[_k]; - } - - for (var _j3 = 0; _j3 < 16; _j3 += 4) { - var s0 = this._mix[state[_j3]]; - var s1 = this._mix[state[_j3 + 1]]; - var s2 = this._mix[state[_j3 + 2]]; - var s3 = this._mix[state[_j3 + 3]]; - t = s0 ^ s1 >>> 8 ^ s1 << 24 ^ s2 >>> 16 ^ s2 << 16 ^ s3 >>> 24 ^ s3 << 8; - state[_j3] = t >>> 24 & 0xFF; - state[_j3 + 1] = t >> 16 & 0xFF; - state[_j3 + 2] = t >> 8 & 0xFF; - state[_j3 + 3] = t & 0xFF; - } - } + for (let i = this._cyclesOfRepetition - 1; i >= 1; --i) { t = state[13]; state[13] = state[9]; state[9] = state[5]; @@ -26238,68 +16744,67 @@ function () { state[7] = u; state[3] = v; - for (var _j4 = 0; _j4 < 16; ++_j4) { - state[_j4] = this._inv_s[state[_j4]]; - state[_j4] ^= key[_j4]; + for (let j = 0; j < 16; ++j) { + state[j] = this._inv_s[state[j]]; } - return state; + for (let j = 0, k = i * 16; j < 16; ++j, ++k) { + state[j] ^= key[k]; + } + + for (let j = 0; j < 16; j += 4) { + const s0 = this._mix[state[j]]; + const s1 = this._mix[state[j + 1]]; + const s2 = this._mix[state[j + 2]]; + const s3 = this._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; + } } - }, { - key: "_encrypt", - value: function _encrypt(input, key) { - var s = this._s; - var t, u, v; - var state = new Uint8Array(16); - state.set(input); - for (var j = 0; j < 16; ++j) { - state[j] ^= key[j]; - } + 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 (var i = 1; i < this._cyclesOfRepetition; i++) { - for (var _j5 = 0; _j5 < 16; ++_j5) { - state[_j5] = s[state[_j5]]; - } + for (let j = 0; j < 16; ++j) { + state[j] = this._inv_s[state[j]]; + state[j] ^= key[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; + return state; + } - for (var _j6 = 0; _j6 < 16; _j6 += 4) { - var s0 = state[_j6 + 0]; - var s1 = state[_j6 + 1]; - var s2 = state[_j6 + 2]; - var s3 = state[_j6 + 3]; - t = s0 ^ s1 ^ s2 ^ s3; - state[_j6 + 0] ^= t ^ this._mixCol[s0 ^ s1]; - state[_j6 + 1] ^= t ^ this._mixCol[s1 ^ s2]; - state[_j6 + 2] ^= t ^ this._mixCol[s2 ^ s3]; - state[_j6 + 3] ^= t ^ this._mixCol[s3 ^ s0]; - } + _encrypt(input, key) { + const s = this._s; + let t, u, v; + const state = new Uint8Array(16); + state.set(input); - for (var _j7 = 0, k = i * 16; _j7 < 16; ++_j7, ++k) { - state[_j7] ^= key[k]; - } - } + for (let j = 0; j < 16; ++j) { + state[j] ^= key[j]; + } - for (var _j8 = 0; _j8 < 16; ++_j8) { - state[_j8] = s[state[_j8]]; + for (let i = 1; i < this._cyclesOfRepetition; i++) { + for (let j = 0; j < 16; ++j) { + state[j] = s[state[j]]; } v = state[1]; @@ -26321,285 +16826,293 @@ function () { state[11] = u; state[15] = t; - for (var _j9 = 0, _k2 = this._keySize; _j9 < 16; ++_j9, ++_k2) { - state[_j9] ^= key[_k2]; + for (let j = 0; j < 16; j += 4) { + const s0 = state[j + 0]; + const s1 = state[j + 1]; + const s2 = state[j + 2]; + const s3 = state[j + 3]; + t = s0 ^ s1 ^ s2 ^ s3; + state[j + 0] ^= t ^ this._mixCol[s0 ^ s1]; + state[j + 1] ^= t ^ this._mixCol[s1 ^ s2]; + state[j + 2] ^= t ^ this._mixCol[s2 ^ s3]; + state[j + 3] ^= t ^ this._mixCol[s3 ^ s0]; } - return state; + for (let j = 0, k = i * 16; j < 16; ++j, ++k) { + state[j] ^= key[k]; + } } - }, { - key: "_decryptBlock2", - value: function _decryptBlock2(data, finalize) { - var sourceLength = data.length; - var buffer = this.buffer, - bufferLength = this.bufferPosition; - var result = [], - iv = this.iv; - for (var i = 0; i < sourceLength; ++i) { - buffer[bufferLength] = data[i]; - ++bufferLength; - - if (bufferLength < 16) { - continue; - } - - var plain = this._decrypt(buffer, this._key); - - for (var 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(0); - } - - var outputLength = 16 * result.length; - - if (finalize) { - var lastBlock = result[result.length - 1]; - var psLen = lastBlock[15]; - - if (psLen <= 16) { - for (var _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 (var _i2 = 0, _j10 = 0, _ii = result.length; _i2 < _ii; ++_i2, _j10 += 16) { - output.set(result[_i2], _j10); - } - - return output; + for (let j = 0; j < 16; ++j) { + state[j] = s[state[j]]; } - }, { - key: "decryptBlock", - value: function decryptBlock(data, finalize) { - var iv = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; - var sourceLength = data.length; - var buffer = this.buffer, - bufferLength = this.bufferPosition; - if (iv) { - this.iv = iv; - } else { - for (var i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) { - buffer[bufferLength] = data[i]; - } + 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; - if (bufferLength < 16) { - this.bufferLength = bufferLength; - return new Uint8Array(0); - } - - this.iv = buffer; - data = data.subarray(16); - } - - this.buffer = new Uint8Array(16); - this.bufferLength = 0; - this.decryptBlock = this._decryptBlock2; - return this.decryptBlock(data, finalize); + for (let j = 0, k = this._keySize; j < 16; ++j, ++k) { + state[j] ^= key[k]; } - }, { - key: "encrypt", - value: function encrypt(data, iv) { - var sourceLength = data.length; - var buffer = this.buffer, - bufferLength = this.bufferPosition; - var result = []; - if (!iv) { - iv = new Uint8Array(16); - } - - for (var i = 0; i < sourceLength; ++i) { - buffer[bufferLength] = data[i]; - ++bufferLength; - - if (bufferLength < 16) { - continue; - } - - for (var j = 0; j < 16; ++j) { - buffer[j] ^= iv[j]; - } - - var cipher = this._encrypt(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(0); - } - - var outputLength = 16 * result.length; - var output = new Uint8Array(outputLength); - - for (var _i3 = 0, _j11 = 0, ii = result.length; _i3 < ii; ++_i3, _j11 += 16) { - output.set(result[_i3], _j11); - } - - return output; - } - }]); - - return AESBaseCipher; -}(); - -var AES128Cipher = -/*#__PURE__*/ -function (_AESBaseCipher) { - _inherits(AES128Cipher, _AESBaseCipher); - - function AES128Cipher(key) { - var _this; - - _classCallCheck(this, AES128Cipher); - - _this = _possibleConstructorReturn(this, _getPrototypeOf(AES128Cipher).call(this)); - _this._cyclesOfRepetition = 10; - _this._keySize = 160; - _this._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]); - _this._key = _this._expandKey(key); - return _this; + return state; } - _createClass(AES128Cipher, [{ - key: "_expandKey", - value: function _expandKey(cipherKey) { - var b = 176; - var s = this._s; - var rcon = this._rcon; - var result = new Uint8Array(b); - result.set(cipherKey); + _decryptBlock2(data, finalize) { + const sourceLength = data.length; + let buffer = this.buffer, + bufferLength = this.bufferPosition; + const result = []; + let iv = this.iv; - for (var j = 16, i = 1; j < b; ++i) { - var t1 = result[j - 3]; - var t2 = result[j - 2]; - var t3 = result[j - 1]; - var t4 = result[j - 4]; + for (let i = 0; i < sourceLength; ++i) { + buffer[bufferLength] = data[i]; + ++bufferLength; + + if (bufferLength < 16) { + continue; + } + + const plain = this._decrypt(buffer, this._key); + + for (let 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(0); + } + + let outputLength = 16 * result.length; + + if (finalize) { + const lastBlock = result[result.length - 1]; + let psLen = lastBlock[15]; + + if (psLen <= 16) { + for (let 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); + } + } + + const output = new Uint8Array(outputLength); + + for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) { + output.set(result[i], j); + } + + return output; + } + + decryptBlock(data, finalize, iv = null) { + const sourceLength = data.length; + const buffer = this.buffer; + let bufferLength = this.bufferPosition; + + if (iv) { + this.iv = iv; + } else { + for (let i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) { + buffer[bufferLength] = data[i]; + } + + if (bufferLength < 16) { + this.bufferLength = bufferLength; + return new Uint8Array(0); + } + + this.iv = buffer; + data = data.subarray(16); + } + + this.buffer = new Uint8Array(16); + this.bufferLength = 0; + this.decryptBlock = this._decryptBlock2; + return this.decryptBlock(data, finalize); + } + + encrypt(data, iv) { + const sourceLength = data.length; + let buffer = this.buffer, + bufferLength = this.bufferPosition; + const result = []; + + if (!iv) { + iv = new Uint8Array(16); + } + + for (let i = 0; i < sourceLength; ++i) { + buffer[bufferLength] = data[i]; + ++bufferLength; + + if (bufferLength < 16) { + continue; + } + + for (let j = 0; j < 16; ++j) { + buffer[j] ^= iv[j]; + } + + const cipher = this._encrypt(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(0); + } + + const outputLength = 16 * result.length; + const output = new Uint8Array(outputLength); + + for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) { + output.set(result[i], j); + } + + return output; + } + +} + +class AES128Cipher extends AESBaseCipher { + constructor(key) { + super(); + this._cyclesOfRepetition = 10; + this._keySize = 160; + this._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]); + this._key = this._expandKey(key); + } + + _expandKey(cipherKey) { + const b = 176; + const s = this._s; + const rcon = this._rcon; + const result = new Uint8Array(b); + result.set(cipherKey); + + for (let j = 16, i = 1; j < b; ++i) { + let t1 = result[j - 3]; + let t2 = result[j - 2]; + let t3 = result[j - 1]; + let t4 = result[j - 4]; + t1 = s[t1]; + t2 = s[t2]; + t3 = s[t3]; + t4 = s[t4]; + t1 = t1 ^ rcon[i]; + + for (let 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; + } + +} + +exports.AES128Cipher = AES128Cipher; + +class AES256Cipher extends AESBaseCipher { + constructor(key) { + super(); + this._cyclesOfRepetition = 14; + this._keySize = 224; + this._key = this._expandKey(key); + } + + _expandKey(cipherKey) { + const b = 240; + const s = this._s; + const result = new Uint8Array(b); + result.set(cipherKey); + let r = 1; + let t1, t2, t3, t4; + + for (let j = 32, i = 1; j < b; ++i) { + if (j % 32 === 16) { t1 = s[t1]; t2 = s[t2]; t3 = s[t3]; t4 = s[t4]; - t1 = t1 ^ rcon[i]; + } else if (j % 32 === 0) { + 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; - 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++; + if ((r <<= 1) >= 256) { + r = (r ^ 0x1b) & 0xff; } } - return result; + for (let 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 AES128Cipher; -}(AESBaseCipher); - -exports.AES128Cipher = AES128Cipher; - -var AES256Cipher = -/*#__PURE__*/ -function (_AESBaseCipher2) { - _inherits(AES256Cipher, _AESBaseCipher2); - - function AES256Cipher(key) { - var _this2; - - _classCallCheck(this, AES256Cipher); - - _this2 = _possibleConstructorReturn(this, _getPrototypeOf(AES256Cipher).call(this)); - _this2._cyclesOfRepetition = 14; - _this2._keySize = 224; - _this2._key = _this2._expandKey(key); - return _this2; + return result; } - _createClass(AES256Cipher, [{ - key: "_expandKey", - value: function _expandKey(cipherKey) { - var b = 240; - var s = this._s; - var result = new Uint8Array(b); - result.set(cipherKey); - var r = 1; - var t1, t2, t3, t4; - - 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) { - 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; - } - }]); - - return AES256Cipher; -}(AESBaseCipher); +} exports.AES256Cipher = AES256Cipher; @@ -26783,6 +17296,39 @@ var CipherTransform = function CipherTransformClosure() { var data = (0, _util.stringToBytes)(s); data = cipher.decryptBlock(data, true); return (0, _util.bytesToString)(data); + }, + encryptString: function CipherTransform_encryptString(s) { + const cipher = new this.StringCipherConstructor(); + + if (cipher instanceof AESBaseCipher) { + const strLen = s.length; + const pad = 16 - strLen % 16; + + if (pad !== 16) { + s = s.padEnd(16 * Math.ceil(strLen / 16), String.fromCharCode(pad)); + } + + const iv = new Uint8Array(16); + + if (typeof crypto !== "undefined") { + crypto.getRandomValues(iv); + } else { + for (let i = 0; i < 16; i++) { + iv[i] = Math.floor(256 * Math.random()); + } + } + + let data = (0, _util.stringToBytes)(s); + data = cipher.encrypt(data, iv); + const buf = new Uint8Array(16 + data.length); + buf.set(iv); + buf.set(data, 16); + return (0, _util.bytesToString)(buf); + } + + let data = (0, _util.stringToBytes)(s); + data = cipher.encrypt(data); + return (0, _util.bytesToString)(data); } }; return CipherTransform; @@ -26841,20 +17387,20 @@ var CipherTransformFactory = function CipherTransformFactoryClosure() { hashData[i++] = ownerPassword[j]; } - hashData[i++] = flags & 0xFF; - hashData[i++] = flags >> 8 & 0xFF; - hashData[i++] = flags >> 16 & 0xFF; - hashData[i++] = flags >>> 24 & 0xFF; + 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; + hashData[i++] = 0xff; + hashData[i++] = 0xff; + hashData[i++] = 0xff; + hashData[i++] = 0xff; } var hash = calculateMD5(hashData, 0, i); @@ -26961,36 +17507,36 @@ var CipherTransformFactory = function CipherTransformFactoryClosure() { return userPassword; } - var identityName = _primitives.Name.get('Identity'); + var identityName = _primitives.Name.get("Identity"); function CipherTransformFactory(dict, fileId, password) { - var filter = dict.get('Filter'); + var filter = dict.get("Filter"); - if (!(0, _primitives.isName)(filter, 'Standard')) { - throw new _util.FormatError('unknown encryption method'); + if (!(0, _primitives.isName)(filter, "Standard")) { + throw new _util.FormatError("unknown encryption method"); } this.dict = dict; - var algorithm = dict.get('V'); + var algorithm = dict.get("V"); if (!Number.isInteger(algorithm) || algorithm !== 1 && algorithm !== 2 && algorithm !== 4 && algorithm !== 5) { - throw new _util.FormatError('unsupported encryption algorithm'); + throw new _util.FormatError("unsupported encryption algorithm"); } this.algorithm = algorithm; - var keyLength = dict.get('Length'); + var keyLength = dict.get("Length"); if (!keyLength) { if (algorithm <= 3) { keyLength = 40; } else { - var cfDict = dict.get('CF'); - var streamCryptoName = dict.get('StmF'); + var cfDict = dict.get("CF"); + var streamCryptoName = dict.get("StmF"); if ((0, _primitives.isDict)(cfDict) && (0, _primitives.isName)(streamCryptoName)) { cfDict.suppressEncryption = true; var handlerDict = cfDict.get(streamCryptoName.name); - keyLength = handlerDict && handlerDict.get('Length') || 128; + keyLength = handlerDict && handlerDict.get("Length") || 128; if (keyLength < 40) { keyLength <<= 3; @@ -27000,14 +17546,14 @@ var CipherTransformFactory = function CipherTransformFactoryClosure() { } if (!Number.isInteger(keyLength) || keyLength < 40 || keyLength % 8 !== 0) { - throw new _util.FormatError('invalid key length'); + throw new _util.FormatError("invalid key length"); } - var ownerPassword = (0, _util.stringToBytes)(dict.get('O')).subarray(0, 32); - var userPassword = (0, _util.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; + var ownerPassword = (0, _util.stringToBytes)(dict.get("O")).subarray(0, 32); + var userPassword = (0, _util.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 = (0, _util.stringToBytes)(fileId); var passwordBytes; @@ -27017,7 +17563,7 @@ var CipherTransformFactory = function CipherTransformFactoryClosure() { try { password = (0, _util.utf8StringToString)(password); } catch (ex) { - (0, _util.warn)('CipherTransformFactory: ' + 'Unable to convert UTF8 encoded password.'); + (0, _util.warn)("CipherTransformFactory: " + "Unable to convert UTF8 encoded password."); } } @@ -27029,41 +17575,41 @@ var CipherTransformFactory = function CipherTransformFactoryClosure() { if (algorithm !== 5) { encryptionKey = prepareKeyData(fileIdBytes, passwordBytes, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata); } else { - var ownerValidationSalt = (0, _util.stringToBytes)(dict.get('O')).subarray(32, 40); - var ownerKeySalt = (0, _util.stringToBytes)(dict.get('O')).subarray(40, 48); - var uBytes = (0, _util.stringToBytes)(dict.get('U')).subarray(0, 48); - var userValidationSalt = (0, _util.stringToBytes)(dict.get('U')).subarray(32, 40); - var userKeySalt = (0, _util.stringToBytes)(dict.get('U')).subarray(40, 48); - var ownerEncryption = (0, _util.stringToBytes)(dict.get('OE')); - var userEncryption = (0, _util.stringToBytes)(dict.get('UE')); - var perms = (0, _util.stringToBytes)(dict.get('Perms')); + var ownerValidationSalt = (0, _util.stringToBytes)(dict.get("O")).subarray(32, 40); + var ownerKeySalt = (0, _util.stringToBytes)(dict.get("O")).subarray(40, 48); + var uBytes = (0, _util.stringToBytes)(dict.get("U")).subarray(0, 48); + var userValidationSalt = (0, _util.stringToBytes)(dict.get("U")).subarray(32, 40); + var userKeySalt = (0, _util.stringToBytes)(dict.get("U")).subarray(40, 48); + var ownerEncryption = (0, _util.stringToBytes)(dict.get("OE")); + var userEncryption = (0, _util.stringToBytes)(dict.get("UE")); + var perms = (0, _util.stringToBytes)(dict.get("Perms")); encryptionKey = createEncryptionKey20(revision, passwordBytes, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms); } if (!encryptionKey && !password) { - throw new _util.PasswordException('No password given', _util.PasswordResponses.NEED_PASSWORD); + throw new _util.PasswordException("No password given", _util.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 _util.PasswordException('Incorrect Password', _util.PasswordResponses.INCORRECT_PASSWORD); + throw new _util.PasswordException("Incorrect Password", _util.PasswordResponses.INCORRECT_PASSWORD); } this.encryptionKey = encryptionKey; if (algorithm >= 4) { - var cf = dict.get('CF'); + var cf = dict.get("CF"); if ((0, _primitives.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; + this.stmf = dict.get("StmF") || identityName; + this.strf = dict.get("StrF") || identityName; + this.eff = dict.get("EFF") || this.stmf; } } @@ -27076,16 +17622,16 @@ var CipherTransformFactory = function CipherTransformFactoryClosure() { 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; + 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++] = 0x6c; key[i++] = 0x54; } @@ -27095,41 +17641,41 @@ var CipherTransformFactory = function CipherTransformFactoryClosure() { function buildCipherConstructor(cf, name, num, gen, key) { if (!(0, _primitives.isName)(name)) { - throw new _util.FormatError('Invalid crypt filter name.'); + throw new _util.FormatError("Invalid crypt filter name."); } var cryptFilter = cf.get(name.name); var cfm; if (cryptFilter !== null && cryptFilter !== undefined) { - cfm = cryptFilter.get('CFM'); + cfm = cryptFilter.get("CFM"); } - if (!cfm || cfm.name === 'None') { + if (!cfm || cfm.name === "None") { return function cipherTransformFactoryBuildCipherConstructorNone() { return new NullCipher(); }; } - if (cfm.name === 'V2') { + if (cfm.name === "V2") { return function cipherTransformFactoryBuildCipherConstructorV2() { return new ARCFourCipher(buildObjectKey(num, gen, key, false)); }; } - if (cfm.name === 'AESV2') { + if (cfm.name === "AESV2") { return function cipherTransformFactoryBuildCipherConstructorAESV2() { return new AES128Cipher(buildObjectKey(num, gen, key, true)); }; } - if (cfm.name === 'AESV3') { + if (cfm.name === "AESV3") { return function cipherTransformFactoryBuildCipherConstructorAESV3() { return new AES256Cipher(key); }; } - throw new _util.FormatError('Unknown crypto method'); + throw new _util.FormatError("Unknown crypto method"); } CipherTransformFactory.prototype = { @@ -27153,7 +17699,7 @@ var CipherTransformFactory = function CipherTransformFactoryClosure() { exports.CipherTransformFactory = CipherTransformFactory; /***/ }), -/* 169 */ +/* 23 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -27164,46 +17710,30 @@ Object.defineProperty(exports, "__esModule", { }); exports.ColorSpace = void 0; -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -var _primitives = __w_pdfjs_require__(151); +var _primitives = __w_pdfjs_require__(5); -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _core_utils = __w_pdfjs_require__(8); function resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) { - var COMPONENTS = 3; + const COMPONENTS = 3; alpha01 = alpha01 !== 1 ? 0 : alpha01; - var xRatio = w1 / w2; - var yRatio = h1 / h2; - var newIndex = 0, + const xRatio = w1 / w2; + const yRatio = h1 / h2; + let newIndex = 0, oldIndex; - var xScaled = new Uint16Array(w2); - var w1Scanline = w1 * COMPONENTS; + const xScaled = new Uint16Array(w2); + const w1Scanline = w1 * COMPONENTS; - for (var i = 0; i < w2; i++) { + for (let i = 0; i < w2; i++) { xScaled[i] = Math.floor(i * xRatio) * COMPONENTS; } - for (var _i = 0; _i < h2; _i++) { - var py = Math.floor(_i * yRatio) * w1Scanline; + for (let i = 0; i < h2; i++) { + const py = Math.floor(i * yRatio) * w1Scanline; - for (var j = 0; j < w2; j++) { + for (let j = 0; j < w2; j++) { oldIndex = py + xScaled[j]; dest[newIndex++] = src[oldIndex++]; dest[newIndex++] = src[oldIndex++]; @@ -27213,806 +17743,700 @@ function resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) { } } -var ColorSpace = -/*#__PURE__*/ -function () { - function ColorSpace(name, numComps) { - _classCallCheck(this, ColorSpace); - +class ColorSpace { + constructor(name, numComps) { if (this.constructor === ColorSpace) { - (0, _util.unreachable)('Cannot initialize ColorSpace.'); + (0, _util.unreachable)("Cannot initialize ColorSpace."); } this.name = name; this.numComps = numComps; } - _createClass(ColorSpace, [{ - key: "getRgb", - value: function getRgb(src, srcOffset) { - var rgb = new Uint8ClampedArray(3); - this.getRgbItem(src, srcOffset, rgb, 0); - return rgb; - } - }, { - key: "getRgbItem", - value: function getRgbItem(src, srcOffset, dest, destOffset) { - (0, _util.unreachable)('Should not call ColorSpace.getRgbItem'); - } - }, { - key: "getRgbBuffer", - value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { - (0, _util.unreachable)('Should not call ColorSpace.getRgbBuffer'); - } - }, { - key: "getOutputLength", - value: function getOutputLength(inputLength, alpha01) { - (0, _util.unreachable)('Should not call ColorSpace.getOutputLength'); - } - }, { - key: "isPassthrough", - value: function isPassthrough(bits) { - return false; - } - }, { - key: "isDefaultDecode", - value: function isDefaultDecode(decodeMap, bpc) { - return ColorSpace.isDefaultDecode(decodeMap, this.numComps); - } - }, { - key: "fillRgb", - value: function 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; + getRgb(src, srcOffset) { + const rgb = new Uint8ClampedArray(3); + this.getRgbItem(src, srcOffset, rgb, 0); + return rgb; + } - 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); + getRgbItem(src, srcOffset, dest, destOffset) { + (0, _util.unreachable)("Should not call ColorSpace.getRgbItem"); + } - for (var i = 0; i < numComponentColors; i++) { - allColors[i] = i; - } + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + (0, _util.unreachable)("Should not call ColorSpace.getRgbBuffer"); + } - var colorMap = new Uint8ClampedArray(numComponentColors * 3); - this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bpc, 0); + getOutputLength(inputLength, alpha01) { + (0, _util.unreachable)("Should not call ColorSpace.getOutputLength"); + } - if (!needsResizing) { - var destPos = 0; + isPassthrough(bits) { + return false; + } - for (var _i2 = 0; _i2 < count; ++_i2) { - var key = comps[_i2] * 3; - dest[destPos++] = colorMap[key]; - dest[destPos++] = colorMap[key + 1]; - dest[destPos++] = colorMap[key + 2]; - destPos += alpha01; - } - } else { - rgbBuf = new Uint8Array(count * 3); - var rgbPos = 0; + isDefaultDecode(decodeMap, bpc) { + return ColorSpace.isDefaultDecode(decodeMap, this.numComps); + } - for (var _i3 = 0; _i3 < count; ++_i3) { - var _key = comps[_i3] * 3; + fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) { + const count = originalWidth * originalHeight; + let rgbBuf = null; + const numComponentColors = 1 << bpc; + const needsResizing = originalHeight !== height || originalWidth !== width; - rgbBuf[rgbPos++] = colorMap[_key]; - rgbBuf[rgbPos++] = colorMap[_key + 1]; - rgbBuf[rgbPos++] = colorMap[_key + 2]; - } + if (this.isPassthrough(bpc)) { + rgbBuf = comps; + } else if (this.numComps === 1 && count > numComponentColors && this.name !== "DeviceGray" && this.name !== "DeviceRGB") { + const allColors = bpc <= 8 ? new Uint8Array(numComponentColors) : new Uint16Array(numComponentColors); + + for (let i = 0; i < numComponentColors; i++) { + allColors[i] = i; + } + + const colorMap = new Uint8ClampedArray(numComponentColors * 3); + this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bpc, 0); + + if (!needsResizing) { + let destPos = 0; + + for (let i = 0; i < count; ++i) { + const key = comps[i] * 3; + dest[destPos++] = colorMap[key]; + dest[destPos++] = colorMap[key + 1]; + dest[destPos++] = colorMap[key + 2]; + destPos += alpha01; } } else { - if (!needsResizing) { - this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01); - } else { - rgbBuf = new Uint8ClampedArray(count * 3); - this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, 0); + rgbBuf = new Uint8Array(count * 3); + let rgbPos = 0; + + for (let i = 0; i < count; ++i) { + const 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 Uint8ClampedArray(count * 3); + this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, 0); + } + } - if (rgbBuf) { - if (needsResizing) { - resizeRgbImage(rgbBuf, dest, originalWidth, originalHeight, width, height, alpha01); - } else { - var _destPos = 0, - _rgbPos = 0; + if (rgbBuf) { + if (needsResizing) { + resizeRgbImage(rgbBuf, dest, originalWidth, originalHeight, width, height, alpha01); + } else { + let destPos = 0, + rgbPos = 0; - for (var _i4 = 0, ii = width * actualHeight; _i4 < ii; _i4++) { - dest[_destPos++] = rgbBuf[_rgbPos++]; - dest[_destPos++] = rgbBuf[_rgbPos++]; - dest[_destPos++] = rgbBuf[_rgbPos++]; - _destPos += alpha01; - } + for (let i = 0, ii = width * actualHeight; i < ii; i++) { + dest[destPos++] = rgbBuf[rgbPos++]; + dest[destPos++] = rgbBuf[rgbPos++]; + dest[destPos++] = rgbBuf[rgbPos++]; + destPos += alpha01; } } } - }, { - key: "usesZeroToOneRange", - get: function get() { - return (0, _util.shadow)(this, 'usesZeroToOneRange', true); - } - }], [{ - key: "parse", - value: function parse(cs, xref, res, pdfFunctionFactory) { - var IR = this.parseToIR(cs, xref, res, pdfFunctionFactory); - return this.fromIR(IR); - } - }, { - key: "fromIR", - value: function fromIR(IR) { - var name = Array.isArray(IR) ? IR[0] : IR; - var whitePoint, blackPoint, gamma; + } - switch (name) { - case 'DeviceGrayCS': + get usesZeroToOneRange() { + return (0, _util.shadow)(this, "usesZeroToOneRange", true); + } + + static _cache(cacheKey, xref, localColorSpaceCache, parsedColorSpace) { + if (!localColorSpaceCache) { + throw new Error('ColorSpace._cache - expected "localColorSpaceCache" argument.'); + } + + if (!parsedColorSpace) { + throw new Error('ColorSpace._cache - expected "parsedColorSpace" argument.'); + } + + let csName, csRef; + + if (cacheKey instanceof _primitives.Ref) { + csRef = cacheKey; + cacheKey = xref.fetch(cacheKey); + } + + if (cacheKey instanceof _primitives.Name) { + csName = cacheKey.name; + } + + if (csName || csRef) { + localColorSpaceCache.set(csName, csRef, parsedColorSpace); + } + } + + static getCached(cacheKey, xref, localColorSpaceCache) { + if (!localColorSpaceCache) { + throw new Error('ColorSpace.getCached - expected "localColorSpaceCache" argument.'); + } + + if (cacheKey instanceof _primitives.Ref) { + const localColorSpace = localColorSpaceCache.getByRef(cacheKey); + + if (localColorSpace) { + return localColorSpace; + } + + try { + cacheKey = xref.fetch(cacheKey); + } catch (ex) { + if (ex instanceof _core_utils.MissingDataException) { + throw ex; + } + } + } + + if (cacheKey instanceof _primitives.Name) { + const localColorSpace = localColorSpaceCache.getByName(cacheKey.name); + + if (localColorSpace) { + return localColorSpace; + } + } + + return null; + } + + static async parseAsync({ + cs, + xref, + resources = null, + pdfFunctionFactory, + localColorSpaceCache + }) { + const parsedColorSpace = this._parse(cs, xref, resources, pdfFunctionFactory); + + this._cache(cs, xref, localColorSpaceCache, parsedColorSpace); + + return parsedColorSpace; + } + + static parse({ + cs, + xref, + resources = null, + pdfFunctionFactory, + localColorSpaceCache + }) { + const cachedColorSpace = this.getCached(cs, xref, localColorSpaceCache); + + if (cachedColorSpace) { + return cachedColorSpace; + } + + const parsedColorSpace = this._parse(cs, xref, resources, pdfFunctionFactory); + + this._cache(cs, xref, localColorSpaceCache, parsedColorSpace); + + return parsedColorSpace; + } + + static _parse(cs, xref, resources = null, pdfFunctionFactory) { + cs = xref.fetchIfRef(cs); + + if ((0, _primitives.isName)(cs)) { + switch (cs.name) { + case "DeviceGray": + case "G": return this.singletons.gray; - case 'DeviceRgbCS': + case "DeviceRGB": + case "RGB": return this.singletons.rgb; - case 'DeviceCmykCS': + case "DeviceCMYK": + case "CMYK": return this.singletons.cmyk; - case 'CalGrayCS': - whitePoint = IR[1]; - blackPoint = IR[2]; - gamma = IR[3]; - return new CalGrayCS(whitePoint, blackPoint, gamma); + case "Pattern": + return new PatternCS(null); - case 'CalRGBCS': - whitePoint = IR[1]; - blackPoint = IR[2]; - gamma = IR[3]; - var matrix = IR[4]; - return new CalRGBCS(whitePoint, blackPoint, gamma, matrix); + default: + if ((0, _primitives.isDict)(resources)) { + const colorSpaces = resources.get("ColorSpace"); - case 'PatternCS': - var basePatternCS = IR[1]; + if ((0, _primitives.isDict)(colorSpaces)) { + const resourcesCS = colorSpaces.get(cs.name); - if (basePatternCS) { - basePatternCS = this.fromIR(basePatternCS); + if (resourcesCS) { + if ((0, _primitives.isName)(resourcesCS)) { + return this._parse(resourcesCS, xref, resources, pdfFunctionFactory); + } + + cs = resourcesCS; + break; + } + } } - return new PatternCS(basePatternCS); + throw new _util.FormatError(`Unrecognized ColorSpace: ${cs.name}`); + } + } - case 'IndexedCS': - var baseIndexedCS = IR[1]; - var hiVal = IR[2]; - var lookup = IR[3]; - return new IndexedCS(this.fromIR(baseIndexedCS), hiVal, lookup); + if (Array.isArray(cs)) { + const mode = xref.fetchIfRef(cs[0]).name; + let params, numComps, baseCS, whitePoint, blackPoint, gamma; - case 'AlternateCS': - var numComps = IR[1]; - var alt = IR[2]; - var tintFn = IR[3]; - return new AlternateCS(numComps, this.fromIR(alt), tintFn); + switch (mode) { + case "DeviceGray": + case "G": + return this.singletons.gray; - case 'LabCS': - whitePoint = IR[1]; - blackPoint = IR[2]; - var range = IR[3]; + case "DeviceRGB": + case "RGB": + return this.singletons.rgb; + + case "DeviceCMYK": + case "CMYK": + return this.singletons.cmyk; + + case "CalGray": + params = xref.fetchIfRef(cs[1]); + whitePoint = params.getArray("WhitePoint"); + blackPoint = params.getArray("BlackPoint"); + gamma = params.get("Gamma"); + return new CalGrayCS(whitePoint, blackPoint, gamma); + + case "CalRGB": + params = xref.fetchIfRef(cs[1]); + whitePoint = params.getArray("WhitePoint"); + blackPoint = params.getArray("BlackPoint"); + gamma = params.getArray("Gamma"); + const matrix = params.getArray("Matrix"); + return new CalRGBCS(whitePoint, blackPoint, gamma, matrix); + + case "ICCBased": + const stream = xref.fetchIfRef(cs[1]); + const dict = stream.dict; + numComps = dict.get("N"); + const alt = dict.get("Alternate"); + + if (alt) { + const altCS = this._parse(alt, xref, resources, pdfFunctionFactory); + + if (altCS.numComps === numComps) { + return altCS; + } + + (0, _util.warn)("ICCBased color space: Ignoring incorrect /Alternate entry."); + } + + if (numComps === 1) { + return this.singletons.gray; + } else if (numComps === 3) { + return this.singletons.rgb; + } else if (numComps === 4) { + return this.singletons.cmyk; + } + + break; + + case "Pattern": + baseCS = cs[1] || null; + + if (baseCS) { + baseCS = this._parse(baseCS, xref, resources, pdfFunctionFactory); + } + + return new PatternCS(baseCS); + + case "Indexed": + case "I": + baseCS = this._parse(cs[1], xref, resources, pdfFunctionFactory); + const hiVal = xref.fetchIfRef(cs[2]) + 1; + const lookup = xref.fetchIfRef(cs[3]); + return new IndexedCS(baseCS, hiVal, lookup); + + case "Separation": + case "DeviceN": + const name = xref.fetchIfRef(cs[1]); + numComps = Array.isArray(name) ? name.length : 1; + baseCS = this._parse(cs[2], xref, resources, pdfFunctionFactory); + const tintFn = pdfFunctionFactory.create(cs[3]); + return new AlternateCS(numComps, baseCS, tintFn); + + case "Lab": + params = xref.fetchIfRef(cs[1]); + whitePoint = params.getArray("WhitePoint"); + blackPoint = params.getArray("BlackPoint"); + const range = params.getArray("Range"); return new LabCS(whitePoint, blackPoint, range); default: - throw new _util.FormatError("Unknown colorspace name: ".concat(name)); + throw new _util.FormatError(`Unimplemented ColorSpace object: ${mode}`); } } - }, { - key: "parseToIR", - value: function parseToIR(cs, xref) { - var res = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; - var pdfFunctionFactory = arguments.length > 3 ? arguments[3] : undefined; - cs = xref.fetchIfRef(cs); - if ((0, _primitives.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: - if ((0, _primitives.isDict)(res)) { - var colorSpaces = res.get('ColorSpace'); - - if ((0, _primitives.isDict)(colorSpaces)) { - var resCS = colorSpaces.get(cs.name); - - if (resCS) { - if ((0, _primitives.isName)(resCS)) { - return this.parseToIR(resCS, xref, res, pdfFunctionFactory); - } - - cs = resCS; - break; - } - } - } - - throw new _util.FormatError("unrecognized colorspace ".concat(cs.name)); - } - } - - if (Array.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 = this.parseToIR(alt, xref, res, pdfFunctionFactory); - var altCS = this.fromIR(altIR, pdfFunctionFactory); - - if (altCS.numComps === numComps) { - return altIR; - } - - (0, _util.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 = this.parseToIR(basePatternCS, xref, res, pdfFunctionFactory); - } - - return ['PatternCS', basePatternCS]; - - case 'Indexed': - case 'I': - var baseIndexedCS = this.parseToIR(cs[1], xref, res, pdfFunctionFactory); - var hiVal = xref.fetchIfRef(cs[2]) + 1; - var lookup = xref.fetchIfRef(cs[3]); - - if ((0, _primitives.isStream)(lookup)) { - lookup = lookup.getBytes(); - } - - return ['IndexedCS', baseIndexedCS, hiVal, lookup]; - - case 'Separation': - case 'DeviceN': - var name = xref.fetchIfRef(cs[1]); - numComps = Array.isArray(name) ? name.length : 1; - alt = this.parseToIR(cs[2], xref, res, pdfFunctionFactory); - var tintFn = pdfFunctionFactory.create(xref.fetchIfRef(cs[3])); - return ['AlternateCS', numComps, alt, tintFn]; - - 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: - throw new _util.FormatError("unimplemented color space object \"".concat(mode, "\"")); - } - } - - throw new _util.FormatError("unrecognized color space object: \"".concat(cs, "\"")); - } - }, { - key: "isDefaultDecode", - value: function isDefaultDecode(decode, numComps) { - if (!Array.isArray(decode)) { - return true; - } - - if (numComps * 2 !== decode.length) { - (0, _util.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; - } - } + throw new _util.FormatError(`Unrecognized ColorSpace object: ${cs}`); + } + static isDefaultDecode(decode, numComps) { + if (!Array.isArray(decode)) { return true; } - }, { - key: "singletons", - get: function get() { - return (0, _util.shadow)(this, 'singletons', { - get gray() { - return (0, _util.shadow)(this, 'gray', new DeviceGrayCS()); - }, - get rgb() { - return (0, _util.shadow)(this, 'rgb', new DeviceRgbCS()); - }, - - get cmyk() { - return (0, _util.shadow)(this, 'cmyk', new DeviceCmykCS()); - } - - }); + if (numComps * 2 !== decode.length) { + (0, _util.warn)("The decode map is not the correct length"); + return true; } - }]); - return ColorSpace; -}(); + for (let i = 0, ii = decode.length; i < ii; i += 2) { + if (decode[i] !== 0 || decode[i + 1] !== 1) { + return false; + } + } + + return true; + } + + static get singletons() { + return (0, _util.shadow)(this, "singletons", { + get gray() { + return (0, _util.shadow)(this, "gray", new DeviceGrayCS()); + }, + + get rgb() { + return (0, _util.shadow)(this, "rgb", new DeviceRgbCS()); + }, + + get cmyk() { + return (0, _util.shadow)(this, "cmyk", new DeviceCmykCS()); + } + + }); + } + +} exports.ColorSpace = ColorSpace; -var AlternateCS = -/*#__PURE__*/ -function (_ColorSpace) { - _inherits(AlternateCS, _ColorSpace); - - function AlternateCS(numComps, base, tintFn) { - var _this; - - _classCallCheck(this, AlternateCS); - - _this = _possibleConstructorReturn(this, _getPrototypeOf(AlternateCS).call(this, 'Alternate', numComps)); - _this.base = base; - _this.tintFn = tintFn; - _this.tmpBuf = new Float32Array(base.numComps); - return _this; +class AlternateCS extends ColorSpace { + constructor(numComps, base, tintFn) { + super("Alternate", numComps); + this.base = base; + this.tintFn = tintFn; + this.tmpBuf = new Float32Array(base.numComps); } - _createClass(AlternateCS, [{ - key: "getRgbItem", - value: function getRgbItem(src, srcOffset, dest, destOffset) { - var tmpBuf = this.tmpBuf; - this.tintFn(src, srcOffset, tmpBuf, 0); - this.base.getRgbItem(tmpBuf, 0, dest, destOffset); - } - }, { - key: "getRgbBuffer", - value: function 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 Uint8ClampedArray(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); - } - } - }, { - key: "getOutputLength", - value: function getOutputLength(inputLength, alpha01) { - return this.base.getOutputLength(inputLength * this.base.numComps / this.numComps, alpha01); - } - }]); - - return AlternateCS; -}(ColorSpace); - -var PatternCS = -/*#__PURE__*/ -function (_ColorSpace2) { - _inherits(PatternCS, _ColorSpace2); - - function PatternCS(baseCS) { - var _this2; - - _classCallCheck(this, PatternCS); - - _this2 = _possibleConstructorReturn(this, _getPrototypeOf(PatternCS).call(this, 'Pattern', null)); - _this2.base = baseCS; - return _this2; + getRgbItem(src, srcOffset, dest, destOffset) { + const tmpBuf = this.tmpBuf; + this.tintFn(src, srcOffset, tmpBuf, 0); + this.base.getRgbItem(tmpBuf, 0, dest, destOffset); } - _createClass(PatternCS, [{ - key: "isDefaultDecode", - value: function isDefaultDecode(decodeMap, bpc) { - (0, _util.unreachable)('Should not call PatternCS.isDefaultDecode'); + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const tintFn = this.tintFn; + const base = this.base; + const scale = 1 / ((1 << bits) - 1); + const baseNumComps = base.numComps; + const usesZeroToOneRange = base.usesZeroToOneRange; + const isPassthrough = (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0; + let pos = isPassthrough ? destOffset : 0; + const baseBuf = isPassthrough ? dest : new Uint8ClampedArray(baseNumComps * count); + const numComps = this.numComps; + const scaled = new Float32Array(numComps); + const tinted = new Float32Array(baseNumComps); + let 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; + } } - }]); - return PatternCS; -}(ColorSpace); + if (!isPassthrough) { + base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01); + } + } -var IndexedCS = -/*#__PURE__*/ -function (_ColorSpace3) { - _inherits(IndexedCS, _ColorSpace3); + getOutputLength(inputLength, alpha01) { + return this.base.getOutputLength(inputLength * this.base.numComps / this.numComps, alpha01); + } - function IndexedCS(base, highVal, lookup) { - var _this3; +} - _classCallCheck(this, IndexedCS); +class PatternCS extends ColorSpace { + constructor(baseCS) { + super("Pattern", null); + this.base = baseCS; + } - _this3 = _possibleConstructorReturn(this, _getPrototypeOf(IndexedCS).call(this, 'Indexed', 1)); - _this3.base = base; - _this3.highVal = highVal; - var baseNumComps = base.numComps; - var length = baseNumComps * highVal; + isDefaultDecode(decodeMap, bpc) { + (0, _util.unreachable)("Should not call PatternCS.isDefaultDecode"); + } + +} + +class IndexedCS extends ColorSpace { + constructor(base, highVal, lookup) { + super("Indexed", 1); + this.base = base; + this.highVal = highVal; + const length = base.numComps * highVal; + this.lookup = new Uint8Array(length); if ((0, _primitives.isStream)(lookup)) { - _this3.lookup = new Uint8Array(length); - var bytes = lookup.getBytes(length); - - _this3.lookup.set(bytes); - } else if ((0, _util.isString)(lookup)) { - _this3.lookup = new Uint8Array(length); - - for (var i = 0; i < length; ++i) { - _this3.lookup[i] = lookup.charCodeAt(i); + const bytes = lookup.getBytes(length); + this.lookup.set(bytes); + } else if (typeof lookup === "string") { + for (let i = 0; i < length; ++i) { + this.lookup[i] = lookup.charCodeAt(i) & 0xff; } - } else if (lookup instanceof Uint8Array) { - _this3.lookup = lookup; } else { - throw new _util.FormatError("Unrecognized lookup table: ".concat(lookup)); + throw new _util.FormatError(`IndexedCS - unrecognized lookup table: ${lookup}`); } - - return _this3; } - _createClass(IndexedCS, [{ - key: "getRgbItem", - value: function getRgbItem(src, srcOffset, dest, destOffset) { - var numComps = this.base.numComps; - var start = src[srcOffset] * numComps; - this.base.getRgbBuffer(this.lookup, start, 1, dest, destOffset, 8, 0); - } - }, { - key: "getRgbBuffer", - value: function 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; - } - } - }, { - key: "getOutputLength", - value: function getOutputLength(inputLength, alpha01) { - return this.base.getOutputLength(inputLength * this.base.numComps, alpha01); - } - }, { - key: "isDefaultDecode", - value: function isDefaultDecode(decodeMap, bpc) { - if (!Array.isArray(decodeMap)) { - return true; - } - - if (decodeMap.length !== 2) { - (0, _util.warn)('Decode map length is not correct'); - return true; - } - - if (!Number.isInteger(bpc) || bpc < 1) { - (0, _util.warn)('Bits per component is not correct'); - return true; - } - - return decodeMap[0] === 0 && decodeMap[1] === (1 << bpc) - 1; - } - }]); - - return IndexedCS; -}(ColorSpace); - -var DeviceGrayCS = -/*#__PURE__*/ -function (_ColorSpace4) { - _inherits(DeviceGrayCS, _ColorSpace4); - - function DeviceGrayCS() { - _classCallCheck(this, DeviceGrayCS); - - return _possibleConstructorReturn(this, _getPrototypeOf(DeviceGrayCS).call(this, 'DeviceGray', 1)); + getRgbItem(src, srcOffset, dest, destOffset) { + const numComps = this.base.numComps; + const start = src[srcOffset] * numComps; + this.base.getRgbBuffer(this.lookup, start, 1, dest, destOffset, 8, 0); } - _createClass(DeviceGrayCS, [{ - key: "getRgbItem", - value: function getRgbItem(src, srcOffset, dest, destOffset) { - var c = src[srcOffset] * 255; - dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c; + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const base = this.base; + const numComps = base.numComps; + const outputDelta = base.getOutputLength(numComps, alpha01); + const lookup = this.lookup; + + for (let i = 0; i < count; ++i) { + const lookupPos = src[srcOffset++] * numComps; + base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01); + destOffset += outputDelta; } - }, { - key: "getRgbBuffer", - value: function 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++]; - dest[q++] = c; - dest[q++] = c; - dest[q++] = c; - q += alpha01; - } - } - }, { - key: "getOutputLength", - value: function getOutputLength(inputLength, alpha01) { - return inputLength * (3 + alpha01); - } - }]); - - return DeviceGrayCS; -}(ColorSpace); - -var DeviceRgbCS = -/*#__PURE__*/ -function (_ColorSpace5) { - _inherits(DeviceRgbCS, _ColorSpace5); - - function DeviceRgbCS() { - _classCallCheck(this, DeviceRgbCS); - - return _possibleConstructorReturn(this, _getPrototypeOf(DeviceRgbCS).call(this, 'DeviceRGB', 3)); } - _createClass(DeviceRgbCS, [{ - key: "getRgbItem", - value: function getRgbItem(src, srcOffset, dest, destOffset) { - dest[destOffset] = src[srcOffset] * 255; - dest[destOffset + 1] = src[srcOffset + 1] * 255; - dest[destOffset + 2] = src[srcOffset + 2] * 255; - } - }, { - key: "getRgbBuffer", - value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { - if (bits === 8 && alpha01 === 0) { - dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset); - return; - } + getOutputLength(inputLength, alpha01) { + return this.base.getOutputLength(inputLength * this.base.numComps, alpha01); + } - var scale = 255 / ((1 << bits) - 1); - var j = srcOffset, - q = destOffset; - - for (var i = 0; i < count; ++i) { - dest[q++] = scale * src[j++]; - dest[q++] = scale * src[j++]; - dest[q++] = scale * src[j++]; - q += alpha01; - } + isDefaultDecode(decodeMap, bpc) { + if (!Array.isArray(decodeMap)) { + return true; } - }, { - key: "getOutputLength", - value: function getOutputLength(inputLength, alpha01) { - return inputLength * (3 + alpha01) / 3 | 0; - } - }, { - key: "isPassthrough", - value: function isPassthrough(bits) { - return bits === 8; - } - }]); - return DeviceRgbCS; -}(ColorSpace); + if (decodeMap.length !== 2) { + (0, _util.warn)("Decode map length is not correct"); + return true; + } -var DeviceCmykCS = function DeviceCmykCSClosure() { + if (!Number.isInteger(bpc) || bpc < 1) { + (0, _util.warn)("Bits per component is not correct"); + return true; + } + + return decodeMap[0] === 0 && decodeMap[1] === (1 << bpc) - 1; + } + +} + +class DeviceGrayCS extends ColorSpace { + constructor() { + super("DeviceGray", 1); + } + + getRgbItem(src, srcOffset, dest, destOffset) { + const c = src[srcOffset] * 255; + dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c; + } + + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const scale = 255 / ((1 << bits) - 1); + let j = srcOffset, + q = destOffset; + + for (let i = 0; i < count; ++i) { + const c = scale * src[j++]; + dest[q++] = c; + dest[q++] = c; + dest[q++] = c; + q += alpha01; + } + } + + getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01); + } + +} + +class DeviceRgbCS extends ColorSpace { + constructor() { + super("DeviceRGB", 3); + } + + getRgbItem(src, srcOffset, dest, destOffset) { + dest[destOffset] = src[srcOffset] * 255; + dest[destOffset + 1] = src[srcOffset + 1] * 255; + dest[destOffset + 2] = src[srcOffset + 2] * 255; + } + + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + if (bits === 8 && alpha01 === 0) { + dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset); + return; + } + + const scale = 255 / ((1 << bits) - 1); + let j = srcOffset, + q = destOffset; + + for (let i = 0; i < count; ++i) { + dest[q++] = scale * src[j++]; + dest[q++] = scale * src[j++]; + dest[q++] = scale * src[j++]; + q += alpha01; + } + } + + getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01) / 3 | 0; + } + + isPassthrough(bits) { + return bits === 8; + } + +} + +const DeviceCmykCS = function DeviceCmykCSClosure() { function convertToRgb(src, srcOffset, srcScale, dest, destOffset) { - var c = src[srcOffset] * srcScale; - var m = src[srcOffset + 1] * srcScale; - var y = src[srcOffset + 2] * srcScale; - var k = src[srcOffset + 3] * srcScale; + const c = src[srcOffset] * srcScale; + const m = src[srcOffset + 1] * srcScale; + const y = src[srcOffset + 2] * srcScale; + const k = src[srcOffset + 3] * srcScale; dest[destOffset] = 255 + 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); dest[destOffset + 1] = 255 + 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); dest[destOffset + 2] = 255 + 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); } - var DeviceCmykCS = - /*#__PURE__*/ - function (_ColorSpace6) { - _inherits(DeviceCmykCS, _ColorSpace6); - - function DeviceCmykCS() { - _classCallCheck(this, DeviceCmykCS); - - return _possibleConstructorReturn(this, _getPrototypeOf(DeviceCmykCS).call(this, 'DeviceCMYK', 4)); + class DeviceCmykCS extends ColorSpace { + constructor() { + super("DeviceCMYK", 4); } - _createClass(DeviceCmykCS, [{ - key: "getRgbItem", - value: function getRgbItem(src, srcOffset, dest, destOffset) { - convertToRgb(src, srcOffset, 1, dest, destOffset); - } - }, { - key: "getRgbBuffer", - value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { - var scale = 1 / ((1 << bits) - 1); + getRgbItem(src, srcOffset, dest, destOffset) { + convertToRgb(src, srcOffset, 1, dest, destOffset); + } - for (var i = 0; i < count; i++) { - convertToRgb(src, srcOffset, scale, dest, destOffset); - srcOffset += 4; - destOffset += 3 + alpha01; - } - } - }, { - key: "getOutputLength", - value: function getOutputLength(inputLength, alpha01) { - return inputLength / 4 * (3 + alpha01) | 0; - } - }]); + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const scale = 1 / ((1 << bits) - 1); - return DeviceCmykCS; - }(ColorSpace); + for (let i = 0; i < count; i++) { + convertToRgb(src, srcOffset, scale, dest, destOffset); + srcOffset += 4; + destOffset += 3 + alpha01; + } + } + + getOutputLength(inputLength, alpha01) { + return inputLength / 4 * (3 + alpha01) | 0; + } + + } return DeviceCmykCS; }(); -var CalGrayCS = function CalGrayCSClosure() { +const CalGrayCS = function CalGrayCSClosure() { 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); + const A = src[srcOffset] * scale; + const AG = A ** cs.G; + const L = cs.YW * AG; + const val = Math.max(295.8 * L ** 0.333333333333333333 - 40.8, 0); dest[destOffset] = val; dest[destOffset + 1] = val; dest[destOffset + 2] = val; } - var CalGrayCS = - /*#__PURE__*/ - function (_ColorSpace7) { - _inherits(CalGrayCS, _ColorSpace7); - - function CalGrayCS(whitePoint, blackPoint, gamma) { - var _this4; - - _classCallCheck(this, CalGrayCS); - - _this4 = _possibleConstructorReturn(this, _getPrototypeOf(CalGrayCS).call(this, 'CalGray', 1)); + class CalGrayCS extends ColorSpace { + constructor(whitePoint, blackPoint, gamma) { + super("CalGray", 1); if (!whitePoint) { - throw new _util.FormatError('WhitePoint missing - required for color space CalGray'); + throw new _util.FormatError("WhitePoint missing - required for color space CalGray"); } blackPoint = blackPoint || [0, 0, 0]; gamma = gamma || 1; - _this4.XW = whitePoint[0]; - _this4.YW = whitePoint[1]; - _this4.ZW = whitePoint[2]; - _this4.XB = blackPoint[0]; - _this4.YB = blackPoint[1]; - _this4.ZB = blackPoint[2]; - _this4.G = gamma; + 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 (_this4.XW < 0 || _this4.ZW < 0 || _this4.YW !== 1) { - throw new _util.FormatError("Invalid WhitePoint components for ".concat(_this4.name) + ', no fallback available'); + if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) { + throw new _util.FormatError(`Invalid WhitePoint components for ${this.name}` + ", no fallback available"); } - if (_this4.XB < 0 || _this4.YB < 0 || _this4.ZB < 0) { - (0, _util.info)("Invalid BlackPoint for ".concat(_this4.name, ", falling back to default.")); - _this4.XB = _this4.YB = _this4.ZB = 0; + if (this.XB < 0 || this.YB < 0 || this.ZB < 0) { + (0, _util.info)(`Invalid BlackPoint for ${this.name}, falling back to default.`); + this.XB = this.YB = this.ZB = 0; } - if (_this4.XB !== 0 || _this4.YB !== 0 || _this4.ZB !== 0) { - (0, _util.warn)("".concat(_this4.name, ", BlackPoint: XB: ").concat(_this4.XB, ", YB: ").concat(_this4.YB, ", ") + "ZB: ".concat(_this4.ZB, ", only default values are supported.")); + if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) { + (0, _util.warn)(`${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` + `ZB: ${this.ZB}, only default values are supported.`); } - if (_this4.G < 1) { - (0, _util.info)("Invalid Gamma: ".concat(_this4.G, " for ").concat(_this4.name, ", ") + 'falling back to default.'); - _this4.G = 1; + if (this.G < 1) { + (0, _util.info)(`Invalid Gamma: ${this.G} for ${this.name}, ` + "falling back to default."); + this.G = 1; } - - return _this4; } - _createClass(CalGrayCS, [{ - key: "getRgbItem", - value: function getRgbItem(src, srcOffset, dest, destOffset) { - convertToRgb(this, src, srcOffset, dest, destOffset, 1); - } - }, { - key: "getRgbBuffer", - value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { - var scale = 1 / ((1 << bits) - 1); + getRgbItem(src, srcOffset, dest, destOffset) { + convertToRgb(this, src, srcOffset, dest, destOffset, 1); + } - for (var i = 0; i < count; ++i) { - convertToRgb(this, src, srcOffset, dest, destOffset, scale); - srcOffset += 1; - destOffset += 3 + alpha01; - } - } - }, { - key: "getOutputLength", - value: function getOutputLength(inputLength, alpha01) { - return inputLength * (3 + alpha01); - } - }]); + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const scale = 1 / ((1 << bits) - 1); - return CalGrayCS; - }(ColorSpace); + for (let i = 0; i < count; ++i) { + convertToRgb(this, src, srcOffset, dest, destOffset, scale); + srcOffset += 1; + destOffset += 3 + alpha01; + } + } + + getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01); + } + + } 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; +const CalRGBCS = function CalRGBCSClosure() { + const BRADFORD_SCALE_MATRIX = new Float32Array([0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296]); + const BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912, -0.0085287, 0.0400428, 0.9684867]); + const 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]); + const FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]); + const tempNormalizeMatrix = new Float32Array(3); + const tempConvertMatrix1 = new Float32Array(3); + const tempConvertMatrix2 = new Float32Array(3); + const DECODE_L_CONSTANT = ((8 + 16) / 116) ** 3 / 8.0; function matrixProduct(a, b, result) { result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; @@ -28027,9 +18451,9 @@ var CalRGBCS = function CalRGBCSClosure() { } function convertToD65(sourceWhitePoint, LMS, result) { - var D65X = 0.95047; - var D65Y = 1; - var D65Z = 1.08883; + const D65X = 0.95047; + const D65Y = 1; + const D65Z = 1.08883; result[0] = LMS[0] * D65X / sourceWhitePoint[0]; result[1] = LMS[1] * D65Y / sourceWhitePoint[1]; result[2] = LMS[2] * D65Z / sourceWhitePoint[2]; @@ -28040,7 +18464,11 @@ var CalRGBCS = function CalRGBCSClosure() { return adjustToRange(0, 1, 12.92 * color); } - return adjustToRange(0, 1, (1 + 0.055) * Math.pow(color, 1 / 2.4) - 0.055); + if (color >= 0.99554525) { + return 1; + } + + return adjustToRange(0, 1, (1 + 0.055) * color ** (1 / 2.4) - 0.055); } function adjustToRange(min, max, value) { @@ -28053,7 +18481,7 @@ var CalRGBCS = function CalRGBCSClosure() { } if (L > 8.0) { - return Math.pow((L + 16) / 116, 3); + return ((L + 16) / 116) ** 3; } return L * DECODE_L_CONSTANT; @@ -28067,19 +18495,19 @@ var CalRGBCS = function CalRGBCSClosure() { 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; + const zeroDecodeL = decodeL(0); + const X_DST = zeroDecodeL; + const X_SRC = decodeL(sourceBlackPoint[0]); + const Y_DST = zeroDecodeL; + const Y_SRC = decodeL(sourceBlackPoint[1]); + const Z_DST = zeroDecodeL; + const Z_SRC = decodeL(sourceBlackPoint[2]); + const X_Scale = (1 - X_DST) / (1 - X_SRC); + const X_Offset = 1 - X_Scale; + const Y_Scale = (1 - Y_DST) / (1 - Y_SRC); + const Y_Offset = 1 - Y_Scale; + const Z_Scale = (1 - Z_DST) / (1 - Z_SRC); + const 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; @@ -28093,137 +18521,121 @@ var CalRGBCS = function CalRGBCSClosure() { return; } - var LMS = result; + const LMS = result; matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS); - var LMS_Flat = tempNormalizeMatrix; + const 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; + const LMS = result; matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS); - var LMS_D65 = tempNormalizeMatrix; + const 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; + const A = adjustToRange(0, 1, src[srcOffset] * scale); + const B = adjustToRange(0, 1, src[srcOffset + 1] * scale); + const C = adjustToRange(0, 1, src[srcOffset + 2] * scale); + const AGR = A === 1 ? 1 : A ** cs.GR; + const BGG = B === 1 ? 1 : B ** cs.GG; + const CGB = C === 1 ? 1 : C ** cs.GB; + const X = cs.MXA * AGR + cs.MXB * BGG + cs.MXC * CGB; + const Y = cs.MYA * AGR + cs.MYB * BGG + cs.MYC * CGB; + const Z = cs.MZA * AGR + cs.MZB * BGG + cs.MZC * CGB; + const XYZ = tempConvertMatrix1; XYZ[0] = X; XYZ[1] = Y; XYZ[2] = Z; - var XYZ_Flat = tempConvertMatrix2; + const XYZ_Flat = tempConvertMatrix2; normalizeWhitePointToFlat(cs.whitePoint, XYZ, XYZ_Flat); - var XYZ_Black = tempConvertMatrix1; + const XYZ_Black = tempConvertMatrix1; compensateBlackPoint(cs.blackPoint, XYZ_Flat, XYZ_Black); - var XYZ_D65 = tempConvertMatrix2; + const XYZ_D65 = tempConvertMatrix2; normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65); - var SRGB = tempConvertMatrix1; + const SRGB = tempConvertMatrix1; matrixProduct(SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB); dest[destOffset] = sRGBTransferFunction(SRGB[0]) * 255; dest[destOffset + 1] = sRGBTransferFunction(SRGB[1]) * 255; dest[destOffset + 2] = sRGBTransferFunction(SRGB[2]) * 255; } - var CalRGBCS = - /*#__PURE__*/ - function (_ColorSpace8) { - _inherits(CalRGBCS, _ColorSpace8); - - function CalRGBCS(whitePoint, blackPoint, gamma, matrix) { - var _this5; - - _classCallCheck(this, CalRGBCS); - - _this5 = _possibleConstructorReturn(this, _getPrototypeOf(CalRGBCS).call(this, 'CalRGB', 3)); + class CalRGBCS extends ColorSpace { + constructor(whitePoint, blackPoint, gamma, matrix) { + super("CalRGB", 3); if (!whitePoint) { - throw new _util.FormatError('WhitePoint missing - required for color space CalRGB'); + throw new _util.FormatError("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]; - _this5.whitePoint = whitePoint; - var XB = blackPoint[0]; - var YB = blackPoint[1]; - var ZB = blackPoint[2]; - _this5.blackPoint = blackPoint; - _this5.GR = gamma[0]; - _this5.GG = gamma[1]; - _this5.GB = gamma[2]; - _this5.MXA = matrix[0]; - _this5.MYA = matrix[1]; - _this5.MZA = matrix[2]; - _this5.MXB = matrix[3]; - _this5.MYB = matrix[4]; - _this5.MZB = matrix[5]; - _this5.MXC = matrix[6]; - _this5.MYC = matrix[7]; - _this5.MZC = matrix[8]; + const XW = whitePoint[0]; + const YW = whitePoint[1]; + const ZW = whitePoint[2]; + this.whitePoint = whitePoint; + const XB = blackPoint[0]; + const YB = blackPoint[1]; + const 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) { - throw new _util.FormatError("Invalid WhitePoint components for ".concat(_this5.name) + ', no fallback available'); + throw new _util.FormatError(`Invalid WhitePoint components for ${this.name}` + ", no fallback available"); } if (XB < 0 || YB < 0 || ZB < 0) { - (0, _util.info)("Invalid BlackPoint for ".concat(_this5.name, " [").concat(XB, ", ").concat(YB, ", ").concat(ZB, "], ") + 'falling back to default.'); - _this5.blackPoint = new Float32Array(3); + (0, _util.info)(`Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` + "falling back to default."); + this.blackPoint = new Float32Array(3); } - if (_this5.GR < 0 || _this5.GG < 0 || _this5.GB < 0) { - (0, _util.info)("Invalid Gamma [".concat(_this5.GR, ", ").concat(_this5.GG, ", ").concat(_this5.GB, "] for ") + "".concat(_this5.name, ", falling back to default.")); - _this5.GR = _this5.GG = _this5.GB = 1; + if (this.GR < 0 || this.GG < 0 || this.GB < 0) { + (0, _util.info)(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` + `${this.name}, falling back to default.`); + this.GR = this.GG = this.GB = 1; } - - return _this5; } - _createClass(CalRGBCS, [{ - key: "getRgbItem", - value: function getRgbItem(src, srcOffset, dest, destOffset) { - convertToRgb(this, src, srcOffset, dest, destOffset, 1); - } - }, { - key: "getRgbBuffer", - value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { - var scale = 1 / ((1 << bits) - 1); + getRgbItem(src, srcOffset, dest, destOffset) { + convertToRgb(this, src, srcOffset, dest, destOffset, 1); + } - for (var i = 0; i < count; ++i) { - convertToRgb(this, src, srcOffset, dest, destOffset, scale); - srcOffset += 3; - destOffset += 3 + alpha01; - } - } - }, { - key: "getOutputLength", - value: function getOutputLength(inputLength, alpha01) { - return inputLength * (3 + alpha01) / 3 | 0; - } - }]); + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const scale = 1 / ((1 << bits) - 1); - return CalRGBCS; - }(ColorSpace); + for (let i = 0; i < count; ++i) { + convertToRgb(this, src, srcOffset, dest, destOffset, scale); + srcOffset += 3; + destOffset += 3 + alpha01; + } + } + + getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01) / 3 | 0; + } + + } return CalRGBCS; }(); -var LabCS = function LabCSClosure() { +const LabCS = function LabCSClosure() { function fn_g(x) { - var result; + let result; if (x >= 6 / 29) { result = x * x * x; @@ -28239,9 +18651,9 @@ var LabCS = function LabCSClosure() { } function convertToRgb(cs, src, srcOffset, maxVal, dest, destOffset) { - var Ls = src[srcOffset]; - var as = src[srcOffset + 1]; - var bs = src[srcOffset + 2]; + let Ls = src[srcOffset]; + let as = src[srcOffset + 1]; + let bs = src[srcOffset + 2]; if (maxVal !== false) { Ls = decode(Ls, maxVal, 0, 100); @@ -28249,24 +18661,34 @@ var LabCS = function LabCSClosure() { 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 (as > cs.amax) { + as = cs.amax; + } else if (as < cs.amin) { + as = cs.amin; + } + + if (bs > cs.bmax) { + bs = cs.bmax; + } else if (bs < cs.bmin) { + bs = cs.bmin; + } + + const M = (Ls + 16) / 116; + const L = M + as / 500; + const N = M - bs / 200; + const X = cs.XW * fn_g(L); + const Y = cs.YW * fn_g(M); + const Z = cs.ZW * fn_g(N); + let 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; + r = X * 3.1339 + Y * -1.617 + Z * -0.4906; + g = X * -0.9785 + Y * 1.916 + Z * 0.0333; + b = X * 0.072 + Y * -0.229 + 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; + b = X * 0.0557 + Y * -0.204 + Z * 1.057; } dest[destOffset] = Math.sqrt(r) * 255; @@ -28274,96 +18696,78 @@ var LabCS = function LabCSClosure() { dest[destOffset + 2] = Math.sqrt(b) * 255; } - var LabCS = - /*#__PURE__*/ - function (_ColorSpace9) { - _inherits(LabCS, _ColorSpace9); - - function LabCS(whitePoint, blackPoint, range) { - var _this6; - - _classCallCheck(this, LabCS); - - _this6 = _possibleConstructorReturn(this, _getPrototypeOf(LabCS).call(this, 'Lab', 3)); + class LabCS extends ColorSpace { + constructor(whitePoint, blackPoint, range) { + super("Lab", 3); if (!whitePoint) { - throw new _util.FormatError('WhitePoint missing - required for color space Lab'); + throw new _util.FormatError("WhitePoint missing - required for color space Lab"); } blackPoint = blackPoint || [0, 0, 0]; range = range || [-100, 100, -100, 100]; - _this6.XW = whitePoint[0]; - _this6.YW = whitePoint[1]; - _this6.ZW = whitePoint[2]; - _this6.amin = range[0]; - _this6.amax = range[1]; - _this6.bmin = range[2]; - _this6.bmax = range[3]; - _this6.XB = blackPoint[0]; - _this6.YB = blackPoint[1]; - _this6.ZB = blackPoint[2]; + 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 (_this6.XW < 0 || _this6.ZW < 0 || _this6.YW !== 1) { - throw new _util.FormatError('Invalid WhitePoint components, no fallback available'); + if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) { + throw new _util.FormatError("Invalid WhitePoint components, no fallback available"); } - if (_this6.XB < 0 || _this6.YB < 0 || _this6.ZB < 0) { - (0, _util.info)('Invalid BlackPoint, falling back to default'); - _this6.XB = _this6.YB = _this6.ZB = 0; + if (this.XB < 0 || this.YB < 0 || this.ZB < 0) { + (0, _util.info)("Invalid BlackPoint, falling back to default"); + this.XB = this.YB = this.ZB = 0; } - if (_this6.amin > _this6.amax || _this6.bmin > _this6.bmax) { - (0, _util.info)('Invalid Range, falling back to defaults'); - _this6.amin = -100; - _this6.amax = 100; - _this6.bmin = -100; - _this6.bmax = 100; + if (this.amin > this.amax || this.bmin > this.bmax) { + (0, _util.info)("Invalid Range, falling back to defaults"); + this.amin = -100; + this.amax = 100; + this.bmin = -100; + this.bmax = 100; } - - return _this6; } - _createClass(LabCS, [{ - key: "getRgbItem", - value: function getRgbItem(src, srcOffset, dest, destOffset) { - convertToRgb(this, src, srcOffset, false, dest, destOffset); - } - }, { - key: "getRgbBuffer", - value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { - var maxVal = (1 << bits) - 1; + getRgbItem(src, srcOffset, dest, destOffset) { + convertToRgb(this, src, srcOffset, false, dest, destOffset); + } - for (var i = 0; i < count; i++) { - convertToRgb(this, src, srcOffset, maxVal, dest, destOffset); - srcOffset += 3; - destOffset += 3 + alpha01; - } - } - }, { - key: "getOutputLength", - value: function getOutputLength(inputLength, alpha01) { - return inputLength * (3 + alpha01) / 3 | 0; - } - }, { - key: "isDefaultDecode", - value: function isDefaultDecode(decodeMap, bpc) { - return true; - } - }, { - key: "usesZeroToOneRange", - get: function get() { - return (0, _util.shadow)(this, 'usesZeroToOneRange', false); - } - }]); + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const maxVal = (1 << bits) - 1; - return LabCS; - }(ColorSpace); + for (let i = 0; i < count; i++) { + convertToRgb(this, src, srcOffset, maxVal, dest, destOffset); + srcOffset += 3; + destOffset += 3 + alpha01; + } + } + + getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01) / 3 | 0; + } + + isDefaultDecode(decodeMap, bpc) { + return true; + } + + get usesZeroToOneRange() { + return (0, _util.shadow)(this, "usesZeroToOneRange", false); + } + + } return LabCS; }(); /***/ }), -/* 170 */ +/* 24 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -28372,195 +18776,450 @@ var LabCS = function LabCSClosure() { Object.defineProperty(exports, "__esModule", { value: true }); -exports.MarkupAnnotation = exports.AnnotationFactory = exports.AnnotationBorderStyle = exports.Annotation = void 0; +exports.GlobalImageCache = exports.LocalGStateCache = exports.LocalFunctionCache = exports.LocalColorSpaceCache = exports.LocalImageCache = void 0; -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -var _obj = __w_pdfjs_require__(156); +var _primitives = __w_pdfjs_require__(5); -var _primitives = __w_pdfjs_require__(151); +class BaseLocalCache { + constructor(options) { + if (this.constructor === BaseLocalCache) { + (0, _util.unreachable)("Cannot initialize BaseLocalCache."); + } -var _colorspace = __w_pdfjs_require__(169); + if (!options || !options.onlyRefs) { + this._nameRefMap = new Map(); + this._imageMap = new Map(); + } -var _core_utils = __w_pdfjs_require__(154); - -var _operator_list = __w_pdfjs_require__(171); - -var _stream = __w_pdfjs_require__(158); - -function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } - -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var AnnotationFactory = -/*#__PURE__*/ -function () { - function AnnotationFactory() { - _classCallCheck(this, AnnotationFactory); + this._imageCache = new _primitives.RefSetCache(); } - _createClass(AnnotationFactory, null, [{ - key: "create", - value: function create(xref, ref, pdfManager, idFactory) { - return pdfManager.ensure(this, '_create', [xref, ref, pdfManager, idFactory]); - } - }, { - key: "_create", - value: function _create(xref, ref, pdfManager, idFactory) { - var dict = xref.fetchIfRef(ref); + getByName(name) { + const ref = this._nameRefMap.get(name); - if (!(0, _primitives.isDict)(dict)) { - return undefined; + if (ref) { + return this.getByRef(ref); + } + + return this._imageMap.get(name) || null; + } + + getByRef(ref) { + return this._imageCache.get(ref) || null; + } + + set(name, ref, data) { + (0, _util.unreachable)("Abstract method `set` called."); + } + +} + +class LocalImageCache extends BaseLocalCache { + set(name, ref = null, data) { + if (!name) { + throw new Error('LocalImageCache.set - expected "name" argument.'); + } + + if (ref) { + if (this._imageCache.has(ref)) { + return; } - var id = (0, _primitives.isRef)(ref) ? ref.toString() : "annot_".concat(idFactory.createObjId()); - var subtype = dict.get('Subtype'); - subtype = (0, _primitives.isName)(subtype) ? subtype.name : null; - var parameters = { - xref: xref, - dict: dict, - subtype: subtype, - id: id, - pdfManager: pdfManager - }; + this._nameRefMap.set(name, ref); - switch (subtype) { - case 'Link': - return new LinkAnnotation(parameters); + this._imageCache.put(ref, data); - case 'Text': - return new TextAnnotation(parameters); - - case 'Widget': - var fieldType = (0, _core_utils.getInheritableProperty)({ - dict: dict, - key: 'FT' - }); - fieldType = (0, _primitives.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); - } - - (0, _util.warn)('Unimplemented widget field type "' + fieldType + '", ' + 'falling back to base field type.'); - return new WidgetAnnotation(parameters); - - case 'Popup': - return new PopupAnnotation(parameters); - - case 'FreeText': - return new FreeTextAnnotation(parameters); - - case 'Line': - return new LineAnnotation(parameters); - - case 'Square': - return new SquareAnnotation(parameters); - - case 'Circle': - return new CircleAnnotation(parameters); - - case 'PolyLine': - return new PolylineAnnotation(parameters); - - case 'Polygon': - return new PolygonAnnotation(parameters); - - case 'Caret': - return new CaretAnnotation(parameters); - - case 'Ink': - return new InkAnnotation(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 'Stamp': - return new StampAnnotation(parameters); - - case 'FileAttachment': - return new FileAttachmentAnnotation(parameters); - - default: - if (!subtype) { - (0, _util.warn)('Annotation is missing the required /Subtype.'); - } else { - (0, _util.warn)('Unimplemented annotation type "' + subtype + '", ' + 'falling back to base annotation.'); - } - - return new Annotation(parameters); - } + return; } - }]); - return AnnotationFactory; -}(); + if (this._imageMap.has(name)) { + return; + } + + this._imageMap.set(name, data); + } + +} + +exports.LocalImageCache = LocalImageCache; + +class LocalColorSpaceCache extends BaseLocalCache { + set(name = null, ref = null, data) { + if (!name && !ref) { + throw new Error('LocalColorSpaceCache.set - expected "name" and/or "ref" argument.'); + } + + if (ref) { + if (this._imageCache.has(ref)) { + return; + } + + if (name) { + this._nameRefMap.set(name, ref); + } + + this._imageCache.put(ref, data); + + return; + } + + if (this._imageMap.has(name)) { + return; + } + + this._imageMap.set(name, data); + } + +} + +exports.LocalColorSpaceCache = LocalColorSpaceCache; + +class LocalFunctionCache extends BaseLocalCache { + constructor(options) { + super({ + onlyRefs: true + }); + } + + getByName(name) { + (0, _util.unreachable)("Should not call `getByName` method."); + } + + set(name = null, ref, data) { + if (!ref) { + throw new Error('LocalFunctionCache.set - expected "ref" argument.'); + } + + if (this._imageCache.has(ref)) { + return; + } + + this._imageCache.put(ref, data); + } + +} + +exports.LocalFunctionCache = LocalFunctionCache; + +class LocalGStateCache extends BaseLocalCache { + set(name, ref = null, data) { + if (!name) { + throw new Error('LocalGStateCache.set - expected "name" argument.'); + } + + if (ref) { + if (this._imageCache.has(ref)) { + return; + } + + this._nameRefMap.set(name, ref); + + this._imageCache.put(ref, data); + + return; + } + + if (this._imageMap.has(name)) { + return; + } + + this._imageMap.set(name, data); + } + +} + +exports.LocalGStateCache = LocalGStateCache; + +class GlobalImageCache { + static get NUM_PAGES_THRESHOLD() { + return (0, _util.shadow)(this, "NUM_PAGES_THRESHOLD", 2); + } + + static get MAX_IMAGES_TO_CACHE() { + return (0, _util.shadow)(this, "MAX_IMAGES_TO_CACHE", 10); + } + + constructor() { + this._refCache = new _primitives.RefSetCache(); + this._imageCache = new _primitives.RefSetCache(); + } + + shouldCache(ref, pageIndex) { + const pageIndexSet = this._refCache.get(ref); + + const numPages = pageIndexSet ? pageIndexSet.size + (pageIndexSet.has(pageIndex) ? 0 : 1) : 1; + + if (numPages < GlobalImageCache.NUM_PAGES_THRESHOLD) { + return false; + } + + if (!this._imageCache.has(ref) && this._imageCache.size >= GlobalImageCache.MAX_IMAGES_TO_CACHE) { + return false; + } + + return true; + } + + addPageIndex(ref, pageIndex) { + let pageIndexSet = this._refCache.get(ref); + + if (!pageIndexSet) { + pageIndexSet = new Set(); + + this._refCache.put(ref, pageIndexSet); + } + + pageIndexSet.add(pageIndex); + } + + getData(ref, pageIndex) { + const pageIndexSet = this._refCache.get(ref); + + if (!pageIndexSet) { + return null; + } + + if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) { + return null; + } + + if (!this._imageCache.has(ref)) { + return null; + } + + pageIndexSet.add(pageIndex); + return this._imageCache.get(ref); + } + + setData(ref, data) { + if (!this._refCache.has(ref)) { + throw new Error('GlobalImageCache.setData - expected "addPageIndex" to have been called.'); + } + + if (this._imageCache.has(ref)) { + return; + } + + if (this._imageCache.size >= GlobalImageCache.MAX_IMAGES_TO_CACHE) { + (0, _util.info)("GlobalImageCache.setData - ignoring image above MAX_IMAGES_TO_CACHE."); + return; + } + + this._imageCache.put(ref, data); + } + + clear(onlyData = false) { + if (!onlyData) { + this._refCache.clear(); + } + + this._imageCache.clear(); + } + +} + +exports.GlobalImageCache = GlobalImageCache; + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getQuadPoints = getQuadPoints; +exports.MarkupAnnotation = exports.AnnotationFactory = exports.AnnotationBorderStyle = exports.Annotation = void 0; + +var _util = __w_pdfjs_require__(2); + +var _obj = __w_pdfjs_require__(10); + +var _primitives = __w_pdfjs_require__(5); + +var _colorspace = __w_pdfjs_require__(23); + +var _core_utils = __w_pdfjs_require__(8); + +var _operator_list = __w_pdfjs_require__(26); + +var _stream = __w_pdfjs_require__(12); + +var _writer = __w_pdfjs_require__(27); + +class AnnotationFactory { + static create(xref, ref, pdfManager, idFactory) { + return pdfManager.ensureCatalog("acroForm").then(acroForm => { + return pdfManager.ensure(this, "_create", [xref, ref, pdfManager, idFactory, acroForm]); + }); + } + + static _create(xref, ref, pdfManager, idFactory, acroForm) { + const dict = xref.fetchIfRef(ref); + + if (!(0, _primitives.isDict)(dict)) { + return undefined; + } + + const id = (0, _primitives.isRef)(ref) ? ref.toString() : `annot_${idFactory.createObjId()}`; + let subtype = dict.get("Subtype"); + subtype = (0, _primitives.isName)(subtype) ? subtype.name : null; + const parameters = { + xref, + ref, + dict, + subtype, + id, + pdfManager, + acroForm: acroForm instanceof _primitives.Dict ? acroForm : _primitives.Dict.empty + }; + + switch (subtype) { + case "Link": + return new LinkAnnotation(parameters); + + case "Text": + return new TextAnnotation(parameters); + + case "Widget": + let fieldType = (0, _core_utils.getInheritableProperty)({ + dict, + key: "FT" + }); + fieldType = (0, _primitives.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); + } + + (0, _util.warn)('Unimplemented widget field type "' + fieldType + '", ' + "falling back to base field type."); + return new WidgetAnnotation(parameters); + + case "Popup": + return new PopupAnnotation(parameters); + + case "FreeText": + return new FreeTextAnnotation(parameters); + + case "Line": + return new LineAnnotation(parameters); + + case "Square": + return new SquareAnnotation(parameters); + + case "Circle": + return new CircleAnnotation(parameters); + + case "PolyLine": + return new PolylineAnnotation(parameters); + + case "Polygon": + return new PolygonAnnotation(parameters); + + case "Caret": + return new CaretAnnotation(parameters); + + case "Ink": + return new InkAnnotation(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 "Stamp": + return new StampAnnotation(parameters); + + case "FileAttachment": + return new FileAttachmentAnnotation(parameters); + + default: + if (!subtype) { + (0, _util.warn)("Annotation is missing the required /Subtype."); + } else { + (0, _util.warn)('Unimplemented annotation type "' + subtype + '", ' + "falling back to base annotation."); + } + + return new Annotation(parameters); + } + } + +} exports.AnnotationFactory = AnnotationFactory; -function getTransformMatrix(rect, bbox, matrix) { - var bounds = _util.Util.getAxialAlignedBoundingBox(bbox, matrix); +function getQuadPoints(dict, rect) { + if (!dict.has("QuadPoints")) { + return null; + } - var minX = bounds[0]; - var minY = bounds[1]; - var maxX = bounds[2]; - var maxY = bounds[3]; + const quadPoints = dict.getArray("QuadPoints"); + + if (!Array.isArray(quadPoints) || quadPoints.length % 8 > 0) { + return null; + } + + const quadPointsLists = []; + + for (let i = 0, ii = quadPoints.length / 8; i < ii; i++) { + quadPointsLists.push([]); + + for (let j = i * 8, jj = i * 8 + 8; j < jj; j += 2) { + const x = quadPoints[j]; + const y = quadPoints[j + 1]; + + if (x < rect[0] || x > rect[2] || y < rect[1] || y > rect[3]) { + return null; + } + + quadPointsLists[i].push({ + x, + y + }); + } + } + + return quadPointsLists; +} + +function getTransformMatrix(rect, bbox, matrix) { + const [minX, minY, maxX, maxY] = _util.Util.getAxialAlignedBoundingBox(bbox, matrix); 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); + const xRatio = (rect[2] - rect[0]) / (maxX - minX); + const yRatio = (rect[3] - rect[1]) / (maxY - minY); return [xRatio, 0, 0, yRatio, rect[0] - minX * xRatio, rect[1] - minY * yRatio]; } -var Annotation = -/*#__PURE__*/ -function () { - function Annotation(params) { - _classCallCheck(this, Annotation); - - var dict = params.dict; - this.setContents(dict.get('Contents')); - this.setModificationDate(dict.get('M')); - this.setFlags(dict.get('F')); - this.setRectangle(dict.getArray('Rect')); - this.setColor(dict.getArray('C')); +class Annotation { + constructor(params) { + const dict = params.dict; + this.setContents(dict.get("Contents")); + this.setModificationDate(dict.get("M")); + this.setFlags(dict.get("F")); + this.setRectangle(dict.getArray("Rect")); + this.setColor(dict.getArray("C")); this.setBorderStyle(dict); this.setAppearance(dict); this.data = { @@ -28576,228 +19235,207 @@ function () { }; } - _createClass(Annotation, [{ - key: "_hasFlag", - value: function _hasFlag(flags, flag) { - return !!(flags & flag); - } - }, { - key: "_isViewable", - value: function _isViewable(flags) { - return !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN) && !this._hasFlag(flags, _util.AnnotationFlag.NOVIEW); - } - }, { - key: "_isPrintable", - value: function _isPrintable(flags) { - return this._hasFlag(flags, _util.AnnotationFlag.PRINT) && !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN); - } - }, { - key: "setContents", - value: function setContents(contents) { - this.contents = (0, _util.stringToPDFString)(contents || ''); - } - }, { - key: "setModificationDate", - value: function setModificationDate(modificationDate) { - this.modificationDate = (0, _util.isString)(modificationDate) ? modificationDate : null; - } - }, { - key: "setFlags", - value: function setFlags(flags) { - this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0; - } - }, { - key: "hasFlag", - value: function hasFlag(flag) { - return this._hasFlag(this.flags, flag); - } - }, { - key: "setRectangle", - value: function setRectangle(rectangle) { - if (Array.isArray(rectangle) && rectangle.length === 4) { - this.rectangle = _util.Util.normalizeRect(rectangle); - } else { - this.rectangle = [0, 0, 0, 0]; - } - } - }, { - key: "setColor", - value: function setColor(color) { - var rgbColor = new Uint8ClampedArray(3); + _hasFlag(flags, flag) { + return !!(flags & flag); + } + + _isViewable(flags) { + return !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN) && !this._hasFlag(flags, _util.AnnotationFlag.NOVIEW); + } + + _isPrintable(flags) { + return this._hasFlag(flags, _util.AnnotationFlag.PRINT) && !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.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); + } + + setContents(contents) { + this.contents = (0, _util.stringToPDFString)(contents || ""); + } + + setModificationDate(modificationDate) { + this.modificationDate = (0, _util.isString)(modificationDate) ? modificationDate : null; + } + + setFlags(flags) { + this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0; + } + + hasFlag(flag) { + return this._hasFlag(this.flags, flag); + } + + setRectangle(rectangle) { + if (Array.isArray(rectangle) && rectangle.length === 4) { + this.rectangle = _util.Util.normalizeRect(rectangle); + } else { + this.rectangle = [0, 0, 0, 0]; + } + } + + setColor(color) { + const rgbColor = new Uint8ClampedArray(3); + + if (!Array.isArray(color)) { + this.color = rgbColor; + return; + } + + switch (color.length) { + case 0: + this.color = null; + break; + + case 1: + _colorspace.ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0); - if (!Array.isArray(color)) { this.color = rgbColor; - return; - } + break; - switch (color.length) { - case 0: - this.color = null; - break; + case 3: + _colorspace.ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0); - case 1: - _colorspace.ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0); + this.color = rgbColor; + break; - this.color = rgbColor; - break; + case 4: + _colorspace.ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0); - case 3: - _colorspace.ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0); + this.color = rgbColor; + break; - this.color = rgbColor; - break; - - case 4: - _colorspace.ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0); - - this.color = rgbColor; - break; - - default: - this.color = rgbColor; - break; - } + default: + this.color = rgbColor; + break; } - }, { - key: "setBorderStyle", - value: function setBorderStyle(borderStyle) { - this.borderStyle = new AnnotationBorderStyle(); + } - if (!(0, _primitives.isDict)(borderStyle)) { - return; - } + setBorderStyle(borderStyle) { + this.borderStyle = new AnnotationBorderStyle(); - if (borderStyle.has('BS')) { - var dict = borderStyle.get('BS'); - var dictType = dict.get('Type'); - - if (!dictType || (0, _primitives.isName)(dictType, 'Border')) { - this.borderStyle.setWidth(dict.get('W'), this.rectangle); - this.borderStyle.setStyle(dict.get('S')); - this.borderStyle.setDashArray(dict.getArray('D')); - } - } else if (borderStyle.has('Border')) { - var array = borderStyle.getArray('Border'); - - if (Array.isArray(array) && array.length >= 3) { - this.borderStyle.setHorizontalCornerRadius(array[0]); - this.borderStyle.setVerticalCornerRadius(array[1]); - this.borderStyle.setWidth(array[2], this.rectangle); - - if (array.length === 4) { - this.borderStyle.setDashArray(array[3]); - } - } - } else { - this.borderStyle.setWidth(0); - } + if (!(0, _primitives.isDict)(borderStyle)) { + return; } - }, { - key: "setAppearance", - value: function setAppearance(dict) { - this.appearance = null; - var appearanceStates = dict.get('AP'); - if (!(0, _primitives.isDict)(appearanceStates)) { - return; + if (borderStyle.has("BS")) { + const dict = borderStyle.get("BS"); + const dictType = dict.get("Type"); + + if (!dictType || (0, _primitives.isName)(dictType, "Border")) { + this.borderStyle.setWidth(dict.get("W"), this.rectangle); + this.borderStyle.setStyle(dict.get("S")); + this.borderStyle.setDashArray(dict.getArray("D")); } + } else if (borderStyle.has("Border")) { + const array = borderStyle.getArray("Border"); - var normalAppearanceState = appearanceStates.get('N'); + if (Array.isArray(array) && array.length >= 3) { + this.borderStyle.setHorizontalCornerRadius(array[0]); + this.borderStyle.setVerticalCornerRadius(array[1]); + this.borderStyle.setWidth(array[2], this.rectangle); - if ((0, _primitives.isStream)(normalAppearanceState)) { - this.appearance = normalAppearanceState; - return; - } - - if (!(0, _primitives.isDict)(normalAppearanceState)) { - return; - } - - var as = dict.get('AS'); - - if (!(0, _primitives.isName)(as) || !normalAppearanceState.has(as.name)) { - return; - } - - this.appearance = normalAppearanceState.get(as.name); - } - }, { - key: "loadResources", - value: function loadResources(keys) { - return this.appearance.dict.getAsync('Resources').then(function (resources) { - if (!resources) { - return undefined; + if (array.length === 4) { + this.borderStyle.setDashArray(array[3]); } + } + } else { + this.borderStyle.setWidth(0); + } + } - var objectLoader = new _obj.ObjectLoader(resources, keys, resources.xref); - return objectLoader.load().then(function () { - return resources; - }); + setAppearance(dict) { + this.appearance = null; + const appearanceStates = dict.get("AP"); + + if (!(0, _primitives.isDict)(appearanceStates)) { + return; + } + + const normalAppearanceState = appearanceStates.get("N"); + + if ((0, _primitives.isStream)(normalAppearanceState)) { + this.appearance = normalAppearanceState; + return; + } + + if (!(0, _primitives.isDict)(normalAppearanceState)) { + return; + } + + const as = dict.get("AS"); + + if (!(0, _primitives.isName)(as) || !normalAppearanceState.has(as.name)) { + return; + } + + this.appearance = normalAppearanceState.get(as.name); + } + + loadResources(keys) { + return this.appearance.dict.getAsync("Resources").then(resources => { + if (!resources) { + return undefined; + } + + const objectLoader = new _obj.ObjectLoader(resources, keys, resources.xref); + return objectLoader.load().then(function () { + return resources; }); + }); + } + + getOperatorList(evaluator, task, renderForms, annotationStorage) { + if (!this.appearance) { + return Promise.resolve(new _operator_list.OperatorList()); } - }, { - key: "getOperatorList", - value: function getOperatorList(evaluator, task, renderForms) { - var _this = this; - if (!this.appearance) { - return Promise.resolve(new _operator_list.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); - return resourcesPromise.then(function (resources) { - var opList = new _operator_list.OperatorList(); - opList.addOp(_util.OPS.beginAnnotation, [data.rect, transform, matrix]); - return evaluator.getOperatorList({ - stream: _this.appearance, - task: task, - resources: resources, - operatorList: opList - }).then(function () { - opList.addOp(_util.OPS.endAnnotation, []); - - _this.appearance.reset(); - - return opList; - }); + const appearance = this.appearance; + const data = this.data; + const appearanceDict = appearance.dict; + const resourcesPromise = this.loadResources(["ExtGState", "ColorSpace", "Pattern", "Shading", "XObject", "Font"]); + const bbox = appearanceDict.getArray("BBox") || [0, 0, 1, 1]; + const matrix = appearanceDict.getArray("Matrix") || [1, 0, 0, 1, 0, 0]; + const transform = getTransformMatrix(data.rect, bbox, matrix); + return resourcesPromise.then(resources => { + const opList = new _operator_list.OperatorList(); + opList.addOp(_util.OPS.beginAnnotation, [data.rect, transform, matrix]); + return evaluator.getOperatorList({ + stream: appearance, + task, + resources, + operatorList: opList + }).then(() => { + opList.addOp(_util.OPS.endAnnotation, []); + appearance.reset(); + return opList; }); - } - }, { - key: "viewable", - get: function get() { - if (this.flags === 0) { - return true; - } + }); + } - return this._isViewable(this.flags); - } - }, { - key: "printable", - get: function get() { - if (this.flags === 0) { - return false; - } + async save(evaluator, task, annotationStorage) { + return null; + } - return this._isPrintable(this.flags); - } - }]); - - return Annotation; -}(); +} exports.Annotation = Annotation; -var AnnotationBorderStyle = -/*#__PURE__*/ -function () { - function AnnotationBorderStyle() { - _classCallCheck(this, AnnotationBorderStyle); - +class AnnotationBorderStyle { + constructor() { this.width = 1; this.style = _util.AnnotationBorderStyleType.SOLID; this.dashArray = [3]; @@ -28805,867 +19443,1106 @@ function () { this.verticalCornerRadius = 0; } - _createClass(AnnotationBorderStyle, [{ - key: "setWidth", - value: function setWidth(width) { - var rect = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0, 0, 0, 0]; - - if ((0, _primitives.isName)(width)) { - this.width = 0; - return; - } - - if (Number.isInteger(width)) { - if (width > 0) { - var maxWidth = (rect[2] - rect[0]) / 2; - var maxHeight = (rect[3] - rect[1]) / 2; - - if (maxWidth > 0 && maxHeight > 0 && (width > maxWidth || width > maxHeight)) { - (0, _util.warn)("AnnotationBorderStyle.setWidth - ignoring width: ".concat(width)); - width = 1; - } - } - - this.width = width; - } + setWidth(width, rect = [0, 0, 0, 0]) { + if ((0, _primitives.isName)(width)) { + this.width = 0; + return; } - }, { - key: "setStyle", - value: function setStyle(style) { - if (!(0, _primitives.isName)(style)) { - return; + + if (Number.isInteger(width)) { + if (width > 0) { + const maxWidth = (rect[2] - rect[0]) / 2; + const maxHeight = (rect[3] - rect[1]) / 2; + + if (maxWidth > 0 && maxHeight > 0 && (width > maxWidth || width > maxHeight)) { + (0, _util.warn)(`AnnotationBorderStyle.setWidth - ignoring width: ${width}`); + width = 1; + } } - switch (style.name) { - case 'S': - this.style = _util.AnnotationBorderStyleType.SOLID; - break; - - case 'D': - this.style = _util.AnnotationBorderStyleType.DASHED; - break; - - case 'B': - this.style = _util.AnnotationBorderStyleType.BEVELED; - break; - - case 'I': - this.style = _util.AnnotationBorderStyleType.INSET; - break; - - case 'U': - this.style = _util.AnnotationBorderStyleType.UNDERLINE; - break; - - default: - break; - } + this.width = width; } - }, { - key: "setDashArray", - value: function setDashArray(dashArray) { - if (Array.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; + setStyle(style) { + if (!(0, _primitives.isName)(style)) { + return; + } - if (!validNumber) { - isValid = false; - break; - } else if (element > 0) { - allZeros = false; - } + switch (style.name) { + case "S": + this.style = _util.AnnotationBorderStyleType.SOLID; + break; + + case "D": + this.style = _util.AnnotationBorderStyleType.DASHED; + break; + + case "B": + this.style = _util.AnnotationBorderStyleType.BEVELED; + break; + + case "I": + this.style = _util.AnnotationBorderStyleType.INSET; + break; + + case "U": + this.style = _util.AnnotationBorderStyleType.UNDERLINE; + break; + + default: + break; + } + } + + setDashArray(dashArray) { + if (Array.isArray(dashArray) && dashArray.length > 0) { + let isValid = true; + let allZeros = true; + + for (const element of dashArray) { + const 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) { + if (isValid && !allZeros) { + this.dashArray = dashArray; + } else { this.width = 0; } + } else if (dashArray) { + this.width = 0; } - }, { - key: "setHorizontalCornerRadius", - value: function setHorizontalCornerRadius(radius) { - if (Number.isInteger(radius)) { - this.horizontalCornerRadius = radius; - } - } - }, { - key: "setVerticalCornerRadius", - value: function setVerticalCornerRadius(radius) { - if (Number.isInteger(radius)) { - this.verticalCornerRadius = radius; - } - } - }]); + } - return AnnotationBorderStyle; -}(); + setHorizontalCornerRadius(radius) { + if (Number.isInteger(radius)) { + this.horizontalCornerRadius = radius; + } + } + + setVerticalCornerRadius(radius) { + if (Number.isInteger(radius)) { + this.verticalCornerRadius = radius; + } + } + +} exports.AnnotationBorderStyle = AnnotationBorderStyle; -var MarkupAnnotation = -/*#__PURE__*/ -function (_Annotation) { - _inherits(MarkupAnnotation, _Annotation); +class MarkupAnnotation extends Annotation { + constructor(parameters) { + super(parameters); + const dict = parameters.dict; - function MarkupAnnotation(parameters) { - var _this2; - - _classCallCheck(this, MarkupAnnotation); - - _this2 = _possibleConstructorReturn(this, _getPrototypeOf(MarkupAnnotation).call(this, parameters)); - var dict = parameters.dict; - - if (!dict.has('C')) { - _this2.data.color = null; + if (dict.has("IRT")) { + const rawIRT = dict.getRaw("IRT"); + this.data.inReplyTo = (0, _primitives.isRef)(rawIRT) ? rawIRT.toString() : null; + const rt = dict.get("RT"); + this.data.replyType = (0, _primitives.isName)(rt) ? rt.name : _util.AnnotationReplyType.REPLY; } - _this2.setCreationDate(dict.get('CreationDate')); + if (this.data.replyType === _util.AnnotationReplyType.GROUP) { + const parent = dict.get("IRT"); + this.data.title = (0, _util.stringToPDFString)(parent.get("T") || ""); + this.setContents(parent.get("Contents")); + this.data.contents = this.contents; - _this2.data.creationDate = _this2.creationDate; - _this2.data.hasPopup = dict.has('Popup'); - _this2.data.title = (0, _util.stringToPDFString)(dict.get('T') || ''); - return _this2; + if (!parent.has("CreationDate")) { + this.data.creationDate = null; + } else { + this.setCreationDate(parent.get("CreationDate")); + this.data.creationDate = this.creationDate; + } + + if (!parent.has("M")) { + this.data.modificationDate = null; + } else { + this.setModificationDate(parent.get("M")); + this.data.modificationDate = this.modificationDate; + } + + this.data.hasPopup = parent.has("Popup"); + + if (!parent.has("C")) { + this.data.color = null; + } else { + this.setColor(parent.getArray("C")); + this.data.color = this.color; + } + } else { + this.data.title = (0, _util.stringToPDFString)(dict.get("T") || ""); + this.setCreationDate(dict.get("CreationDate")); + this.data.creationDate = this.creationDate; + this.data.hasPopup = dict.has("Popup"); + + if (!dict.has("C")) { + this.data.color = null; + } + } } - _createClass(MarkupAnnotation, [{ - key: "setCreationDate", - value: function setCreationDate(creationDate) { - this.creationDate = (0, _util.isString)(creationDate) ? creationDate : null; - } - }]); + setCreationDate(creationDate) { + this.creationDate = (0, _util.isString)(creationDate) ? creationDate : null; + } - return MarkupAnnotation; -}(Annotation); +} exports.MarkupAnnotation = MarkupAnnotation; -var WidgetAnnotation = -/*#__PURE__*/ -function (_Annotation2) { - _inherits(WidgetAnnotation, _Annotation2); - - function WidgetAnnotation(params) { - var _this3; - - _classCallCheck(this, WidgetAnnotation); - - _this3 = _possibleConstructorReturn(this, _getPrototypeOf(WidgetAnnotation).call(this, params)); - var dict = params.dict; - var data = _this3.data; +class WidgetAnnotation extends Annotation { + constructor(params) { + super(params); + const dict = params.dict; + const data = this.data; + this.ref = params.ref; data.annotationType = _util.AnnotationType.WIDGET; - data.fieldName = _this3._constructFieldName(dict); - data.fieldValue = (0, _core_utils.getInheritableProperty)({ - dict: dict, - key: 'V', + data.fieldName = this._constructFieldName(dict); + const fieldValue = (0, _core_utils.getInheritableProperty)({ + dict, + key: "V", getArray: true }); - data.alternativeText = (0, _util.stringToPDFString)(dict.get('TU') || ''); + data.fieldValue = this._decodeFormValue(fieldValue); + data.alternativeText = (0, _util.stringToPDFString)(dict.get("TU") || ""); data.defaultAppearance = (0, _core_utils.getInheritableProperty)({ - dict: dict, - key: 'DA' - }) || ''; - var fieldType = (0, _core_utils.getInheritableProperty)({ - dict: dict, - key: 'FT' + dict, + key: "DA" + }) || params.acroForm.get("DA") || ""; + const fieldType = (0, _core_utils.getInheritableProperty)({ + dict, + key: "FT" }); data.fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null; - _this3.fieldResources = (0, _core_utils.getInheritableProperty)({ - dict: dict, - key: 'DR' - }) || _primitives.Dict.empty; + this.fieldResources = (0, _core_utils.getInheritableProperty)({ + dict, + key: "DR" + }) || params.acroForm.get("DR") || _primitives.Dict.empty; data.fieldFlags = (0, _core_utils.getInheritableProperty)({ - dict: dict, - key: 'Ff' + dict, + key: "Ff" }); if (!Number.isInteger(data.fieldFlags) || data.fieldFlags < 0) { data.fieldFlags = 0; } - data.readOnly = _this3.hasFieldFlag(_util.AnnotationFieldFlag.READONLY); + data.readOnly = this.hasFieldFlag(_util.AnnotationFieldFlag.READONLY); - if (data.fieldType === 'Sig') { + if (data.fieldType === "Sig") { data.fieldValue = null; - - _this3.setFlags(_util.AnnotationFlag.HIDDEN); + this.setFlags(_util.AnnotationFlag.HIDDEN); } - - return _this3; } - _createClass(WidgetAnnotation, [{ - key: "_constructFieldName", - value: function _constructFieldName(dict) { - if (!dict.has('T') && !dict.has('Parent')) { - (0, _util.warn)('Unknown field name, falling back to empty field name.'); - return ''; - } - - if (!dict.has('Parent')) { - return (0, _util.stringToPDFString)(dict.get('T')); - } - - var fieldName = []; - - if (dict.has('T')) { - fieldName.unshift((0, _util.stringToPDFString)(dict.get('T'))); - } - - var loopDict = dict; - - while (loopDict.has('Parent')) { - loopDict = loopDict.get('Parent'); - - if (!(0, _primitives.isDict)(loopDict)) { - break; - } - - if (loopDict.has('T')) { - fieldName.unshift((0, _util.stringToPDFString)(loopDict.get('T'))); - } - } - - return fieldName.join('.'); + _constructFieldName(dict) { + if (!dict.has("T") && !dict.has("Parent")) { + (0, _util.warn)("Unknown field name, falling back to empty field name."); + return ""; } - }, { - key: "hasFieldFlag", - value: function hasFieldFlag(flag) { - return !!(this.data.fieldFlags & flag); + + if (!dict.has("Parent")) { + return (0, _util.stringToPDFString)(dict.get("T")); } - }, { - key: "getOperatorList", - value: function getOperatorList(evaluator, task, renderForms) { - if (renderForms) { - return Promise.resolve(new _operator_list.OperatorList()); + + const fieldName = []; + + if (dict.has("T")) { + fieldName.unshift((0, _util.stringToPDFString)(dict.get("T"))); + } + + let loopDict = dict; + + while (loopDict.has("Parent")) { + loopDict = loopDict.get("Parent"); + + if (!(0, _primitives.isDict)(loopDict)) { + break; } - return _get(_getPrototypeOf(WidgetAnnotation.prototype), "getOperatorList", this).call(this, evaluator, task, renderForms); + if (loopDict.has("T")) { + fieldName.unshift((0, _util.stringToPDFString)(loopDict.get("T"))); + } } - }]); - return WidgetAnnotation; -}(Annotation); + return fieldName.join("."); + } -var TextWidgetAnnotation = -/*#__PURE__*/ -function (_WidgetAnnotation) { - _inherits(TextWidgetAnnotation, _WidgetAnnotation); + _decodeFormValue(formValue) { + if (Array.isArray(formValue)) { + return formValue.filter(item => (0, _util.isString)(item)).map(item => (0, _util.stringToPDFString)(item)); + } else if ((0, _primitives.isName)(formValue)) { + return (0, _util.stringToPDFString)(formValue.name); + } else if ((0, _util.isString)(formValue)) { + return (0, _util.stringToPDFString)(formValue); + } - function TextWidgetAnnotation(params) { - var _this4; + return null; + } - _classCallCheck(this, TextWidgetAnnotation); + hasFieldFlag(flag) { + return !!(this.data.fieldFlags & flag); + } - _this4 = _possibleConstructorReturn(this, _getPrototypeOf(TextWidgetAnnotation).call(this, params)); - var dict = params.dict; - _this4.data.fieldValue = (0, _util.stringToPDFString)(_this4.data.fieldValue || ''); - var alignment = (0, _core_utils.getInheritableProperty)({ - dict: dict, - key: 'Q' + getOperatorList(evaluator, task, renderForms, annotationStorage) { + if (renderForms) { + return Promise.resolve(new _operator_list.OperatorList()); + } + + if (!this._hasText) { + return super.getOperatorList(evaluator, task, renderForms, annotationStorage); + } + + return this._getAppearance(evaluator, task, annotationStorage).then(content => { + if (this.appearance && content === null) { + return super.getOperatorList(evaluator, task, renderForms, annotationStorage); + } + + const operatorList = new _operator_list.OperatorList(); + + if (!this.data.defaultAppearance || content === null) { + return operatorList; + } + + const matrix = [1, 0, 0, 1, 0, 0]; + const bbox = [0, 0, this.data.rect[2] - this.data.rect[0], this.data.rect[3] - this.data.rect[1]]; + const transform = getTransformMatrix(this.data.rect, bbox, matrix); + operatorList.addOp(_util.OPS.beginAnnotation, [this.data.rect, transform, matrix]); + const stream = new _stream.StringStream(content); + return evaluator.getOperatorList({ + stream, + task, + resources: this.fieldResources, + operatorList + }).then(function () { + operatorList.addOp(_util.OPS.endAnnotation, []); + return operatorList; + }); + }); + } + + async save(evaluator, task, annotationStorage) { + if (this.data.fieldValue === annotationStorage[this.data.id]) { + return null; + } + + let appearance = await this._getAppearance(evaluator, task, annotationStorage); + + if (appearance === null) { + return null; + } + + const dict = evaluator.xref.fetchIfRef(this.ref); + + if (!(0, _primitives.isDict)(dict)) { + return null; + } + + const bbox = [0, 0, this.data.rect[2] - this.data.rect[0], this.data.rect[3] - this.data.rect[1]]; + const newRef = evaluator.xref.getNewRef(); + const AP = new _primitives.Dict(evaluator.xref); + AP.set("N", newRef); + const value = annotationStorage[this.data.id]; + const encrypt = evaluator.xref.encrypt; + let originalTransform = null; + let newTransform = null; + + if (encrypt) { + originalTransform = encrypt.createCipherTransform(this.ref.num, this.ref.gen); + newTransform = encrypt.createCipherTransform(newRef.num, newRef.gen); + appearance = newTransform.encryptString(appearance); + } + + dict.set("V", value); + dict.set("AP", AP); + dict.set("M", `D:${(0, _util.getModificationDate)()}`); + const appearanceDict = new _primitives.Dict(evaluator.xref); + appearanceDict.set("Length", appearance.length); + appearanceDict.set("Subtype", _primitives.Name.get("Form")); + appearanceDict.set("Resources", this.fieldResources); + appearanceDict.set("BBox", bbox); + const bufferOriginal = [`${this.ref.num} ${this.ref.gen} obj\n`]; + (0, _writer.writeDict)(dict, bufferOriginal, originalTransform); + bufferOriginal.push("\nendobj\n"); + const bufferNew = [`${newRef.num} ${newRef.gen} obj\n`]; + (0, _writer.writeDict)(appearanceDict, bufferNew, newTransform); + bufferNew.push(" stream\n"); + bufferNew.push(appearance); + bufferNew.push("\nendstream\nendobj\n"); + return [{ + ref: this.ref, + data: bufferOriginal.join("") + }, { + ref: newRef, + data: bufferNew.join("") + }]; + } + + async _getAppearance(evaluator, task, annotationStorage) { + const isPassword = this.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD); + + if (!annotationStorage || isPassword) { + return null; + } + + const value = annotationStorage[this.data.id]; + + if (value === "") { + return ""; + } + + const defaultPadding = 2; + const hPadding = defaultPadding; + const totalHeight = this.data.rect[3] - this.data.rect[1]; + const totalWidth = this.data.rect[2] - this.data.rect[0]; + const fontInfo = await this._getFontData(evaluator, task); + const [font, fontName] = fontInfo; + let fontSize = fontInfo[2]; + fontSize = this._computeFontSize(font, fontName, fontSize, totalHeight); + let descent = font.descent; + + if (isNaN(descent)) { + descent = 0; + } + + const vPadding = defaultPadding + Math.abs(descent) * fontSize; + const defaultAppearance = this.data.defaultAppearance; + const alignment = this.data.textAlignment; + + if (this.data.comb) { + return this._getCombAppearance(defaultAppearance, value, totalWidth, hPadding, vPadding); + } + + if (this.data.multiLine) { + return this._getMultilineAppearance(defaultAppearance, value, font, fontSize, totalWidth, totalHeight, alignment, hPadding, vPadding); + } + + if (alignment === 0 || alignment > 2) { + return "/Tx BMC q BT " + defaultAppearance + ` 1 0 0 1 ${hPadding} ${vPadding} Tm (${(0, _util.escapeString)(value)}) Tj` + " ET Q EMC"; + } + + const renderedText = this._renderText(value, font, fontSize, totalWidth, alignment, hPadding, vPadding); + + return "/Tx BMC q BT " + defaultAppearance + ` 1 0 0 1 0 0 Tm ${renderedText}` + " ET Q EMC"; + } + + async _getFontData(evaluator, task) { + const operatorList = new _operator_list.OperatorList(); + const initialState = { + fontSize: 0, + font: null, + fontName: null, + + clone() { + return this; + } + + }; + await evaluator.getOperatorList({ + stream: new _stream.StringStream(this.data.defaultAppearance), + task, + resources: this.fieldResources, + operatorList, + initialState + }); + return [initialState.font, initialState.fontName, initialState.fontSize]; + } + + _computeFontSize(font, fontName, fontSize, height) { + if (fontSize === null || fontSize === 0) { + const em = font.charsToGlyphs("M", true)[0].width / 1000; + const capHeight = 0.7 * em; + fontSize = Math.max(1, Math.floor(height / (1.5 * capHeight))); + let fontRegex = new RegExp(`/${fontName}\\s+[0-9\.]+\\s+Tf`); + + if (this.data.defaultAppearance.search(fontRegex) === -1) { + fontRegex = new RegExp(`/${fontName}\\s+Tf`); + } + + this.data.defaultAppearance = this.data.defaultAppearance.replace(fontRegex, `/${fontName} ${fontSize} Tf`); + } + + return fontSize; + } + + _renderText(text, font, fontSize, totalWidth, alignment, hPadding, vPadding) { + const glyphs = font.charsToGlyphs(text); + const scale = fontSize / 1000; + let width = 0; + + for (const glyph of glyphs) { + width += glyph.width * scale; + } + + let shift; + + if (alignment === 1) { + shift = (totalWidth - width) / 2; + } else if (alignment === 2) { + shift = totalWidth - width - hPadding; + } else { + shift = hPadding; + } + + shift = shift.toFixed(2); + vPadding = vPadding.toFixed(2); + return `${shift} ${vPadding} Td (${(0, _util.escapeString)(text)}) Tj`; + } + +} + +class TextWidgetAnnotation extends WidgetAnnotation { + constructor(params) { + super(params); + this._hasText = true; + const dict = params.dict; + + if (!(0, _util.isString)(this.data.fieldValue)) { + this.data.fieldValue = ""; + } + + let alignment = (0, _core_utils.getInheritableProperty)({ + dict, + key: "Q" }); if (!Number.isInteger(alignment) || alignment < 0 || alignment > 2) { alignment = null; } - _this4.data.textAlignment = alignment; - var maximumLength = (0, _core_utils.getInheritableProperty)({ - dict: dict, - key: 'MaxLen' + this.data.textAlignment = alignment; + let maximumLength = (0, _core_utils.getInheritableProperty)({ + dict, + key: "MaxLen" }); if (!Number.isInteger(maximumLength) || maximumLength < 0) { maximumLength = null; } - _this4.data.maxLen = maximumLength; - _this4.data.multiLine = _this4.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE); - _this4.data.comb = _this4.hasFieldFlag(_util.AnnotationFieldFlag.COMB) && !_this4.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE) && !_this4.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD) && !_this4.hasFieldFlag(_util.AnnotationFieldFlag.FILESELECT) && _this4.data.maxLen !== null; - return _this4; + this.data.maxLen = maximumLength; + this.data.multiLine = this.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE); + this.data.comb = this.hasFieldFlag(_util.AnnotationFieldFlag.COMB) && !this.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD) && !this.hasFieldFlag(_util.AnnotationFieldFlag.FILESELECT) && this.data.maxLen !== null; } - _createClass(TextWidgetAnnotation, [{ - key: "getOperatorList", - value: function getOperatorList(evaluator, task, renderForms) { - if (renderForms || this.appearance) { - return _get(_getPrototypeOf(TextWidgetAnnotation.prototype), "getOperatorList", this).call(this, evaluator, task, renderForms); - } + _getCombAppearance(defaultAppearance, text, width, hPadding, vPadding) { + const combWidth = (width / this.data.maxLen).toFixed(2); + const buf = []; - var operatorList = new _operator_list.OperatorList(); - - if (!this.data.defaultAppearance) { - return Promise.resolve(operatorList); - } - - var stream = new _stream.Stream((0, _util.stringToBytes)(this.data.defaultAppearance)); - return evaluator.getOperatorList({ - stream: stream, - task: task, - resources: this.fieldResources, - operatorList: operatorList - }).then(function () { - return operatorList; - }); + for (const character of text) { + buf.push(`(${(0, _util.escapeString)(character)}) Tj`); } - }]); - return TextWidgetAnnotation; -}(WidgetAnnotation); + const renderedComb = buf.join(` ${combWidth} 0 Td `); + return "/Tx BMC q BT " + defaultAppearance + ` 1 0 0 1 ${hPadding} ${vPadding} Tm ${renderedComb}` + " ET Q EMC"; + } -var ButtonWidgetAnnotation = -/*#__PURE__*/ -function (_WidgetAnnotation2) { - _inherits(ButtonWidgetAnnotation, _WidgetAnnotation2); + _getMultilineAppearance(defaultAppearance, text, font, fontSize, width, height, alignment, hPadding, vPadding) { + const lines = text.split(/\r\n|\r|\n/); + const buf = []; + const totalWidth = width - 2 * hPadding; - function ButtonWidgetAnnotation(params) { - var _this5; + for (const line of lines) { + const chunks = this._splitLine(line, font, fontSize, totalWidth); - _classCallCheck(this, ButtonWidgetAnnotation); + for (const chunk of chunks) { + const padding = buf.length === 0 ? hPadding : 0; + buf.push(this._renderText(chunk, font, fontSize, width, alignment, padding, -fontSize)); + } + } - _this5 = _possibleConstructorReturn(this, _getPrototypeOf(ButtonWidgetAnnotation).call(this, params)); - _this5.data.checkBox = !_this5.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !_this5.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON); - _this5.data.radioButton = _this5.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !_this5.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON); - _this5.data.pushButton = _this5.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON); + const renderedText = buf.join("\n"); + return "/Tx BMC q BT " + defaultAppearance + ` 1 0 0 1 0 ${height} Tm ${renderedText}` + " ET Q EMC"; + } - if (_this5.data.checkBox) { - _this5._processCheckBox(params); - } else if (_this5.data.radioButton) { - _this5._processRadioButton(params); - } else if (_this5.data.pushButton) { - _this5._processPushButton(params); + _splitLine(line, font, fontSize, width) { + if (line.length <= 1) { + return [line]; + } + + const scale = fontSize / 1000; + const whitespace = font.charsToGlyphs(" ", true)[0].width * scale; + const chunks = []; + let lastSpacePos = -1, + startChunk = 0, + currentWidth = 0; + + for (let i = 0, ii = line.length; i < ii; i++) { + const character = line.charAt(i); + + if (character === " ") { + if (currentWidth + whitespace > width) { + chunks.push(line.substring(startChunk, i)); + startChunk = i; + currentWidth = whitespace; + lastSpacePos = -1; + } else { + currentWidth += whitespace; + lastSpacePos = i; + } + } else { + const charWidth = font.charsToGlyphs(character, false)[0].width * scale; + + if (currentWidth + charWidth > width) { + if (lastSpacePos !== -1) { + chunks.push(line.substring(startChunk, lastSpacePos + 1)); + startChunk = i = lastSpacePos + 1; + lastSpacePos = -1; + currentWidth = 0; + } else { + chunks.push(line.substring(startChunk, i)); + startChunk = i; + currentWidth = charWidth; + } + } else { + currentWidth += charWidth; + } + } + } + + if (startChunk < line.length) { + chunks.push(line.substring(startChunk, line.length)); + } + + return chunks; + } + +} + +class ButtonWidgetAnnotation extends WidgetAnnotation { + constructor(params) { + super(params); + this.checkedAppearance = null; + this.uncheckedAppearance = null; + this.data.checkBox = !this.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON); + this.data.radioButton = this.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON); + this.data.pushButton = this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON); + + if (this.data.checkBox) { + this._processCheckBox(params); + } else if (this.data.radioButton) { + this._processRadioButton(params); + } else if (this.data.pushButton) { + this._processPushButton(params); } else { - (0, _util.warn)('Invalid field flags for button widget annotation'); + (0, _util.warn)("Invalid field flags for button widget annotation"); } - - return _this5; } - _createClass(ButtonWidgetAnnotation, [{ - key: "_processCheckBox", - value: function _processCheckBox(params) { - if ((0, _primitives.isName)(this.data.fieldValue)) { - this.data.fieldValue = this.data.fieldValue.name; - } - - var customAppearance = params.dict.get('AP'); - - if (!(0, _primitives.isDict)(customAppearance)) { - return; - } - - var exportValueOptionsDict = customAppearance.get('D'); - - if (!(0, _primitives.isDict)(exportValueOptionsDict)) { - return; - } - - var exportValues = exportValueOptionsDict.getKeys(); - var hasCorrectOptionCount = exportValues.length === 2; - - if (!hasCorrectOptionCount) { - return; - } - - this.data.exportValue = exportValues[0] === 'Off' ? exportValues[1] : exportValues[0]; + getOperatorList(evaluator, task, renderForms, annotationStorage) { + if (this.data.pushButton) { + return super.getOperatorList(evaluator, task, false, annotationStorage); } - }, { - key: "_processRadioButton", - value: function _processRadioButton(params) { - this.data.fieldValue = this.data.buttonValue = null; - var fieldParent = params.dict.get('Parent'); - if ((0, _primitives.isDict)(fieldParent) && fieldParent.has('V')) { - var fieldParentValue = fieldParent.get('V'); + if (annotationStorage) { + const value = annotationStorage[this.data.id] || false; + let appearance; - if ((0, _primitives.isName)(fieldParentValue)) { - this.data.fieldValue = fieldParentValue.name; + if (value) { + appearance = this.checkedAppearance; + } else { + appearance = this.uncheckedAppearance; + } + + if (appearance) { + const savedAppearance = this.appearance; + this.appearance = appearance; + const operatorList = super.getOperatorList(evaluator, task, renderForms, annotationStorage); + this.appearance = savedAppearance; + return operatorList; + } + + return Promise.resolve(new _operator_list.OperatorList()); + } + + return super.getOperatorList(evaluator, task, renderForms, annotationStorage); + } + + async save(evaluator, task, annotationStorage) { + if (this.data.checkBox) { + return this._saveCheckbox(evaluator, task, annotationStorage); + } + + if (this.data.radioButton) { + return this._saveRadioButton(evaluator, task, annotationStorage); + } + + return super.save(evaluator, task, annotationStorage); + } + + async _saveCheckbox(evaluator, task, annotationStorage) { + const defaultValue = this.data.fieldValue && this.data.fieldValue !== "Off"; + const value = annotationStorage[this.data.id]; + + if (defaultValue === value) { + return null; + } + + const dict = evaluator.xref.fetchIfRef(this.ref); + + if (!(0, _primitives.isDict)(dict)) { + return null; + } + + const name = _primitives.Name.get(value ? this.data.exportValue : "Off"); + + dict.set("V", name); + dict.set("AS", name); + dict.set("M", `D:${(0, _util.getModificationDate)()}`); + const encrypt = evaluator.xref.encrypt; + let originalTransform = null; + + if (encrypt) { + originalTransform = encrypt.createCipherTransform(this.ref.num, this.ref.gen); + } + + const buffer = [`${this.ref.num} ${this.ref.gen} obj\n`]; + (0, _writer.writeDict)(dict, buffer, originalTransform); + buffer.push("\nendobj\n"); + return [{ + ref: this.ref, + data: buffer.join("") + }]; + } + + async _saveRadioButton(evaluator, task, annotationStorage) { + const defaultValue = this.data.fieldValue === this.data.buttonValue; + const value = annotationStorage[this.data.id]; + + if (defaultValue === value) { + return null; + } + + const dict = evaluator.xref.fetchIfRef(this.ref); + + if (!(0, _primitives.isDict)(dict)) { + return null; + } + + const name = _primitives.Name.get(value ? this.data.buttonValue : "Off"); + + let parentBuffer = null; + const encrypt = evaluator.xref.encrypt; + + if (value) { + if ((0, _primitives.isRef)(this.parent)) { + const parent = evaluator.xref.fetch(this.parent); + let parentTransform = null; + + if (encrypt) { + parentTransform = encrypt.createCipherTransform(this.parent.num, this.parent.gen); } - } - var appearanceStates = params.dict.get('AP'); - - if (!(0, _primitives.isDict)(appearanceStates)) { - return; - } - - var normalAppearanceState = appearanceStates.get('N'); - - if (!(0, _primitives.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; - } + parent.set("V", name); + parentBuffer = [`${this.parent.num} ${this.parent.gen} obj\n`]; + (0, _writer.writeDict)(parent, parentBuffer, parentTransform); + parentBuffer.push("\nendobj\n"); + } else if ((0, _primitives.isDict)(this.parent)) { + this.parent.set("V", name); } } - }, { - key: "_processPushButton", - value: function _processPushButton(params) { - if (!params.dict.has('A')) { - (0, _util.warn)('Push buttons without action dictionaries are not supported'); - return; - } - _obj.Catalog.parseDestDictionary({ - destDict: params.dict, - resultObj: this.data, - docBaseUrl: params.pdfManager.docBaseUrl + dict.set("AS", name); + dict.set("M", `D:${(0, _util.getModificationDate)()}`); + let originalTransform = null; + + if (encrypt) { + originalTransform = encrypt.createCipherTransform(this.ref.num, this.ref.gen); + } + + const buffer = [`${this.ref.num} ${this.ref.gen} obj\n`]; + (0, _writer.writeDict)(dict, buffer, originalTransform); + buffer.push("\nendobj\n"); + const newRefs = [{ + ref: this.ref, + data: buffer.join("") + }]; + + if (parentBuffer !== null) { + newRefs.push({ + ref: this.parent, + data: parentBuffer.join("") }); } - }]); - return ButtonWidgetAnnotation; -}(WidgetAnnotation); + return newRefs; + } -var ChoiceWidgetAnnotation = -/*#__PURE__*/ -function (_WidgetAnnotation3) { - _inherits(ChoiceWidgetAnnotation, _WidgetAnnotation3); + _processCheckBox(params) { + const customAppearance = params.dict.get("AP"); - function ChoiceWidgetAnnotation(params) { - var _this6; + if (!(0, _primitives.isDict)(customAppearance)) { + return; + } - _classCallCheck(this, ChoiceWidgetAnnotation); + const normalAppearance = customAppearance.get("N"); - _this6 = _possibleConstructorReturn(this, _getPrototypeOf(ChoiceWidgetAnnotation).call(this, params)); - _this6.data.options = []; - var options = (0, _core_utils.getInheritableProperty)({ + if (!(0, _primitives.isDict)(normalAppearance)) { + return; + } + + const exportValues = normalAppearance.getKeys(); + + if (!exportValues.includes("Off")) { + exportValues.push("Off"); + } + + if (exportValues.length !== 2) { + return; + } + + this.data.exportValue = exportValues[0] === "Off" ? exportValues[1] : exportValues[0]; + this.checkedAppearance = normalAppearance.get(this.data.exportValue); + this.uncheckedAppearance = normalAppearance.get("Off") || null; + } + + _processRadioButton(params) { + this.data.fieldValue = this.data.buttonValue = null; + const fieldParent = params.dict.get("Parent"); + + if ((0, _primitives.isDict)(fieldParent) && fieldParent.has("V")) { + const fieldParentValue = fieldParent.get("V"); + + if ((0, _primitives.isName)(fieldParentValue)) { + this.parent = params.dict.getRaw("Parent"); + this.data.fieldValue = this._decodeFormValue(fieldParentValue); + } + } + + const appearanceStates = params.dict.get("AP"); + + if (!(0, _primitives.isDict)(appearanceStates)) { + return; + } + + const normalAppearance = appearanceStates.get("N"); + + if (!(0, _primitives.isDict)(normalAppearance)) { + return; + } + + for (const key of normalAppearance.getKeys()) { + if (key !== "Off") { + this.data.buttonValue = key; + break; + } + } + + this.checkedAppearance = normalAppearance.get(this.data.buttonValue); + this.uncheckedAppearance = normalAppearance.get("Off") || null; + } + + _processPushButton(params) { + if (!params.dict.has("A")) { + (0, _util.warn)("Push buttons without action dictionaries are not supported"); + return; + } + + _obj.Catalog.parseDestDictionary({ + destDict: params.dict, + resultObj: this.data, + docBaseUrl: params.pdfManager.docBaseUrl + }); + } + +} + +class ChoiceWidgetAnnotation extends WidgetAnnotation { + constructor(params) { + super(params); + this.data.options = []; + const options = (0, _core_utils.getInheritableProperty)({ dict: params.dict, - key: 'Opt' + key: "Opt" }); if (Array.isArray(options)) { - var xref = params.xref; + const xref = params.xref; - for (var i = 0, ii = options.length; i < ii; i++) { - var option = xref.fetchIfRef(options[i]); - var isOptionArray = Array.isArray(option); - _this6.data.options[i] = { - exportValue: isOptionArray ? xref.fetchIfRef(option[0]) : option, - displayValue: (0, _util.stringToPDFString)(isOptionArray ? xref.fetchIfRef(option[1]) : option) + for (let i = 0, ii = options.length; i < ii; i++) { + const option = xref.fetchIfRef(options[i]); + const isOptionArray = Array.isArray(option); + this.data.options[i] = { + exportValue: this._decodeFormValue(isOptionArray ? xref.fetchIfRef(option[0]) : option), + displayValue: this._decodeFormValue(isOptionArray ? xref.fetchIfRef(option[1]) : option) }; } } - if (!Array.isArray(_this6.data.fieldValue)) { - _this6.data.fieldValue = [_this6.data.fieldValue]; + if ((0, _util.isString)(this.data.fieldValue)) { + this.data.fieldValue = [this.data.fieldValue]; + } else if (!this.data.fieldValue) { + this.data.fieldValue = []; } - _this6.data.combo = _this6.hasFieldFlag(_util.AnnotationFieldFlag.COMBO); - _this6.data.multiSelect = _this6.hasFieldFlag(_util.AnnotationFieldFlag.MULTISELECT); - return _this6; + this.data.combo = this.hasFieldFlag(_util.AnnotationFieldFlag.COMBO); + this.data.multiSelect = this.hasFieldFlag(_util.AnnotationFieldFlag.MULTISELECT); + this._hasText = true; } - return ChoiceWidgetAnnotation; -}(WidgetAnnotation); +} -var TextAnnotation = -/*#__PURE__*/ -function (_MarkupAnnotation) { - _inherits(TextAnnotation, _MarkupAnnotation); +class TextAnnotation extends MarkupAnnotation { + constructor(parameters) { + const DEFAULT_ICON_SIZE = 22; + super(parameters); + const dict = parameters.dict; + this.data.annotationType = _util.AnnotationType.TEXT; - function TextAnnotation(parameters) { - var _this7; - - _classCallCheck(this, TextAnnotation); - - var DEFAULT_ICON_SIZE = 22; - _this7 = _possibleConstructorReturn(this, _getPrototypeOf(TextAnnotation).call(this, parameters)); - _this7.data.annotationType = _util.AnnotationType.TEXT; - - if (_this7.data.hasAppearance) { - _this7.data.name = 'NoIcon'; + if (this.data.hasAppearance) { + this.data.name = "NoIcon"; } else { - _this7.data.rect[1] = _this7.data.rect[3] - DEFAULT_ICON_SIZE; - _this7.data.rect[2] = _this7.data.rect[0] + DEFAULT_ICON_SIZE; - _this7.data.name = parameters.dict.has('Name') ? parameters.dict.get('Name').name : 'Note'; + 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 = dict.has("Name") ? dict.get("Name").name : "Note"; } - return _this7; + if (dict.has("State")) { + this.data.state = dict.get("State") || null; + this.data.stateModel = dict.get("StateModel") || null; + } else { + this.data.state = null; + this.data.stateModel = null; + } } - return TextAnnotation; -}(MarkupAnnotation); +} -var LinkAnnotation = -/*#__PURE__*/ -function (_Annotation3) { - _inherits(LinkAnnotation, _Annotation3); +class LinkAnnotation extends Annotation { + constructor(params) { + super(params); + this.data.annotationType = _util.AnnotationType.LINK; + const quadPoints = getQuadPoints(params.dict, this.rectangle); - function LinkAnnotation(params) { - var _this8; - - _classCallCheck(this, LinkAnnotation); - - _this8 = _possibleConstructorReturn(this, _getPrototypeOf(LinkAnnotation).call(this, params)); - _this8.data.annotationType = _util.AnnotationType.LINK; + if (quadPoints) { + this.data.quadPoints = quadPoints; + } _obj.Catalog.parseDestDictionary({ destDict: params.dict, - resultObj: _this8.data, + resultObj: this.data, docBaseUrl: params.pdfManager.docBaseUrl }); - - return _this8; } - return LinkAnnotation; -}(Annotation); +} -var PopupAnnotation = -/*#__PURE__*/ -function (_Annotation4) { - _inherits(PopupAnnotation, _Annotation4); - - function PopupAnnotation(parameters) { - var _this9; - - _classCallCheck(this, PopupAnnotation); - - _this9 = _possibleConstructorReturn(this, _getPrototypeOf(PopupAnnotation).call(this, parameters)); - _this9.data.annotationType = _util.AnnotationType.POPUP; - var dict = parameters.dict; - var parentItem = dict.get('Parent'); +class PopupAnnotation extends Annotation { + constructor(parameters) { + super(parameters); + this.data.annotationType = _util.AnnotationType.POPUP; + let parentItem = parameters.dict.get("Parent"); if (!parentItem) { - (0, _util.warn)('Popup annotation has a missing or invalid parent annotation.'); - return _possibleConstructorReturn(_this9); + (0, _util.warn)("Popup annotation has a missing or invalid parent annotation."); + return; } - var parentSubtype = parentItem.get('Subtype'); - _this9.data.parentType = (0, _primitives.isName)(parentSubtype) ? parentSubtype.name : null; - _this9.data.parentId = dict.getRaw('Parent').toString(); - _this9.data.title = (0, _util.stringToPDFString)(parentItem.get('T') || ''); - _this9.data.contents = (0, _util.stringToPDFString)(parentItem.get('Contents') || ''); + const parentSubtype = parentItem.get("Subtype"); + this.data.parentType = (0, _primitives.isName)(parentSubtype) ? parentSubtype.name : null; + const rawParent = parameters.dict.getRaw("Parent"); + this.data.parentId = (0, _primitives.isRef)(rawParent) ? rawParent.toString() : null; + const rt = parentItem.get("RT"); - if (!parentItem.has('M')) { - _this9.data.modificationDate = null; + if ((0, _primitives.isName)(rt, _util.AnnotationReplyType.GROUP)) { + parentItem = parentItem.get("IRT"); + } + + if (!parentItem.has("M")) { + this.data.modificationDate = null; } else { - _this9.setModificationDate(parentItem.get('M')); - - _this9.data.modificationDate = _this9.modificationDate; + this.setModificationDate(parentItem.get("M")); + this.data.modificationDate = this.modificationDate; } - if (!parentItem.has('C')) { - _this9.data.color = null; + if (!parentItem.has("C")) { + this.data.color = null; } else { - _this9.setColor(parentItem.getArray('C')); - - _this9.data.color = _this9.color; + this.setColor(parentItem.getArray("C")); + this.data.color = this.color; } - if (!_this9.viewable) { - var parentFlags = parentItem.get('F'); + if (!this.viewable) { + const parentFlags = parentItem.get("F"); - if (_this9._isViewable(parentFlags)) { - _this9.setFlags(parentFlags); + if (this._isViewable(parentFlags)) { + this.setFlags(parentFlags); } } - return _this9; + this.data.title = (0, _util.stringToPDFString)(parentItem.get("T") || ""); + this.data.contents = (0, _util.stringToPDFString)(parentItem.get("Contents") || ""); } - return PopupAnnotation; -}(Annotation); +} -var FreeTextAnnotation = -/*#__PURE__*/ -function (_MarkupAnnotation2) { - _inherits(FreeTextAnnotation, _MarkupAnnotation2); - - function FreeTextAnnotation(parameters) { - var _this10; - - _classCallCheck(this, FreeTextAnnotation); - - _this10 = _possibleConstructorReturn(this, _getPrototypeOf(FreeTextAnnotation).call(this, parameters)); - _this10.data.annotationType = _util.AnnotationType.FREETEXT; - return _this10; +class FreeTextAnnotation extends MarkupAnnotation { + constructor(parameters) { + super(parameters); + this.data.annotationType = _util.AnnotationType.FREETEXT; } - return FreeTextAnnotation; -}(MarkupAnnotation); +} -var LineAnnotation = -/*#__PURE__*/ -function (_MarkupAnnotation3) { - _inherits(LineAnnotation, _MarkupAnnotation3); - - function LineAnnotation(parameters) { - var _this11; - - _classCallCheck(this, LineAnnotation); - - _this11 = _possibleConstructorReturn(this, _getPrototypeOf(LineAnnotation).call(this, parameters)); - _this11.data.annotationType = _util.AnnotationType.LINE; - var dict = parameters.dict; - _this11.data.lineCoordinates = _util.Util.normalizeRect(dict.getArray('L')); - return _this11; +class LineAnnotation extends MarkupAnnotation { + constructor(parameters) { + super(parameters); + this.data.annotationType = _util.AnnotationType.LINE; + this.data.lineCoordinates = _util.Util.normalizeRect(parameters.dict.getArray("L")); } - return LineAnnotation; -}(MarkupAnnotation); +} -var SquareAnnotation = -/*#__PURE__*/ -function (_MarkupAnnotation4) { - _inherits(SquareAnnotation, _MarkupAnnotation4); - - function SquareAnnotation(parameters) { - var _this12; - - _classCallCheck(this, SquareAnnotation); - - _this12 = _possibleConstructorReturn(this, _getPrototypeOf(SquareAnnotation).call(this, parameters)); - _this12.data.annotationType = _util.AnnotationType.SQUARE; - return _this12; +class SquareAnnotation extends MarkupAnnotation { + constructor(parameters) { + super(parameters); + this.data.annotationType = _util.AnnotationType.SQUARE; } - return SquareAnnotation; -}(MarkupAnnotation); +} -var CircleAnnotation = -/*#__PURE__*/ -function (_MarkupAnnotation5) { - _inherits(CircleAnnotation, _MarkupAnnotation5); - - function CircleAnnotation(parameters) { - var _this13; - - _classCallCheck(this, CircleAnnotation); - - _this13 = _possibleConstructorReturn(this, _getPrototypeOf(CircleAnnotation).call(this, parameters)); - _this13.data.annotationType = _util.AnnotationType.CIRCLE; - return _this13; +class CircleAnnotation extends MarkupAnnotation { + constructor(parameters) { + super(parameters); + this.data.annotationType = _util.AnnotationType.CIRCLE; } - return CircleAnnotation; -}(MarkupAnnotation); +} -var PolylineAnnotation = -/*#__PURE__*/ -function (_MarkupAnnotation6) { - _inherits(PolylineAnnotation, _MarkupAnnotation6); +class PolylineAnnotation extends MarkupAnnotation { + constructor(parameters) { + super(parameters); + this.data.annotationType = _util.AnnotationType.POLYLINE; + const rawVertices = parameters.dict.getArray("Vertices"); + this.data.vertices = []; - function PolylineAnnotation(parameters) { - var _this14; - - _classCallCheck(this, PolylineAnnotation); - - _this14 = _possibleConstructorReturn(this, _getPrototypeOf(PolylineAnnotation).call(this, parameters)); - _this14.data.annotationType = _util.AnnotationType.POLYLINE; - var dict = parameters.dict; - var rawVertices = dict.getArray('Vertices'); - _this14.data.vertices = []; - - for (var i = 0, ii = rawVertices.length; i < ii; i += 2) { - _this14.data.vertices.push({ + for (let i = 0, ii = rawVertices.length; i < ii; i += 2) { + this.data.vertices.push({ x: rawVertices[i], y: rawVertices[i + 1] }); } - - return _this14; } - return PolylineAnnotation; -}(MarkupAnnotation); +} -var PolygonAnnotation = -/*#__PURE__*/ -function (_PolylineAnnotation) { - _inherits(PolygonAnnotation, _PolylineAnnotation); - - function PolygonAnnotation(parameters) { - var _this15; - - _classCallCheck(this, PolygonAnnotation); - - _this15 = _possibleConstructorReturn(this, _getPrototypeOf(PolygonAnnotation).call(this, parameters)); - _this15.data.annotationType = _util.AnnotationType.POLYGON; - return _this15; +class PolygonAnnotation extends PolylineAnnotation { + constructor(parameters) { + super(parameters); + this.data.annotationType = _util.AnnotationType.POLYGON; } - return PolygonAnnotation; -}(PolylineAnnotation); +} -var CaretAnnotation = -/*#__PURE__*/ -function (_MarkupAnnotation7) { - _inherits(CaretAnnotation, _MarkupAnnotation7); - - function CaretAnnotation(parameters) { - var _this16; - - _classCallCheck(this, CaretAnnotation); - - _this16 = _possibleConstructorReturn(this, _getPrototypeOf(CaretAnnotation).call(this, parameters)); - _this16.data.annotationType = _util.AnnotationType.CARET; - return _this16; +class CaretAnnotation extends MarkupAnnotation { + constructor(parameters) { + super(parameters); + this.data.annotationType = _util.AnnotationType.CARET; } - return CaretAnnotation; -}(MarkupAnnotation); +} -var InkAnnotation = -/*#__PURE__*/ -function (_MarkupAnnotation8) { - _inherits(InkAnnotation, _MarkupAnnotation8); +class InkAnnotation extends MarkupAnnotation { + constructor(parameters) { + super(parameters); + this.data.annotationType = _util.AnnotationType.INK; + const xref = parameters.xref; + const originalInkLists = parameters.dict.getArray("InkList"); + this.data.inkLists = []; - function InkAnnotation(parameters) { - var _this17; + for (let i = 0, ii = originalInkLists.length; i < ii; ++i) { + this.data.inkLists.push([]); - _classCallCheck(this, InkAnnotation); - - _this17 = _possibleConstructorReturn(this, _getPrototypeOf(InkAnnotation).call(this, parameters)); - _this17.data.annotationType = _util.AnnotationType.INK; - var dict = parameters.dict; - var xref = parameters.xref; - var originalInkLists = dict.getArray('InkList'); - _this17.data.inkLists = []; - - for (var i = 0, ii = originalInkLists.length; i < ii; ++i) { - _this17.data.inkLists.push([]); - - for (var j = 0, jj = originalInkLists[i].length; j < jj; j += 2) { - _this17.data.inkLists[i].push({ + for (let j = 0, jj = originalInkLists[i].length; j < jj; j += 2) { + this.data.inkLists[i].push({ x: xref.fetchIfRef(originalInkLists[i][j]), y: xref.fetchIfRef(originalInkLists[i][j + 1]) }); } } - - return _this17; } - return InkAnnotation; -}(MarkupAnnotation); +} -var HighlightAnnotation = -/*#__PURE__*/ -function (_MarkupAnnotation9) { - _inherits(HighlightAnnotation, _MarkupAnnotation9); +class HighlightAnnotation extends MarkupAnnotation { + constructor(parameters) { + super(parameters); + this.data.annotationType = _util.AnnotationType.HIGHLIGHT; + const quadPoints = getQuadPoints(parameters.dict, this.rectangle); - function HighlightAnnotation(parameters) { - var _this18; - - _classCallCheck(this, HighlightAnnotation); - - _this18 = _possibleConstructorReturn(this, _getPrototypeOf(HighlightAnnotation).call(this, parameters)); - _this18.data.annotationType = _util.AnnotationType.HIGHLIGHT; - return _this18; + if (quadPoints) { + this.data.quadPoints = quadPoints; + } } - return HighlightAnnotation; -}(MarkupAnnotation); +} -var UnderlineAnnotation = -/*#__PURE__*/ -function (_MarkupAnnotation10) { - _inherits(UnderlineAnnotation, _MarkupAnnotation10); +class UnderlineAnnotation extends MarkupAnnotation { + constructor(parameters) { + super(parameters); + this.data.annotationType = _util.AnnotationType.UNDERLINE; + const quadPoints = getQuadPoints(parameters.dict, this.rectangle); - function UnderlineAnnotation(parameters) { - var _this19; - - _classCallCheck(this, UnderlineAnnotation); - - _this19 = _possibleConstructorReturn(this, _getPrototypeOf(UnderlineAnnotation).call(this, parameters)); - _this19.data.annotationType = _util.AnnotationType.UNDERLINE; - return _this19; + if (quadPoints) { + this.data.quadPoints = quadPoints; + } } - return UnderlineAnnotation; -}(MarkupAnnotation); +} -var SquigglyAnnotation = -/*#__PURE__*/ -function (_MarkupAnnotation11) { - _inherits(SquigglyAnnotation, _MarkupAnnotation11); +class SquigglyAnnotation extends MarkupAnnotation { + constructor(parameters) { + super(parameters); + this.data.annotationType = _util.AnnotationType.SQUIGGLY; + const quadPoints = getQuadPoints(parameters.dict, this.rectangle); - function SquigglyAnnotation(parameters) { - var _this20; - - _classCallCheck(this, SquigglyAnnotation); - - _this20 = _possibleConstructorReturn(this, _getPrototypeOf(SquigglyAnnotation).call(this, parameters)); - _this20.data.annotationType = _util.AnnotationType.SQUIGGLY; - return _this20; + if (quadPoints) { + this.data.quadPoints = quadPoints; + } } - return SquigglyAnnotation; -}(MarkupAnnotation); +} -var StrikeOutAnnotation = -/*#__PURE__*/ -function (_MarkupAnnotation12) { - _inherits(StrikeOutAnnotation, _MarkupAnnotation12); +class StrikeOutAnnotation extends MarkupAnnotation { + constructor(parameters) { + super(parameters); + this.data.annotationType = _util.AnnotationType.STRIKEOUT; + const quadPoints = getQuadPoints(parameters.dict, this.rectangle); - function StrikeOutAnnotation(parameters) { - var _this21; - - _classCallCheck(this, StrikeOutAnnotation); - - _this21 = _possibleConstructorReturn(this, _getPrototypeOf(StrikeOutAnnotation).call(this, parameters)); - _this21.data.annotationType = _util.AnnotationType.STRIKEOUT; - return _this21; + if (quadPoints) { + this.data.quadPoints = quadPoints; + } } - return StrikeOutAnnotation; -}(MarkupAnnotation); +} -var StampAnnotation = -/*#__PURE__*/ -function (_MarkupAnnotation13) { - _inherits(StampAnnotation, _MarkupAnnotation13); - - function StampAnnotation(parameters) { - var _this22; - - _classCallCheck(this, StampAnnotation); - - _this22 = _possibleConstructorReturn(this, _getPrototypeOf(StampAnnotation).call(this, parameters)); - _this22.data.annotationType = _util.AnnotationType.STAMP; - return _this22; +class StampAnnotation extends MarkupAnnotation { + constructor(parameters) { + super(parameters); + this.data.annotationType = _util.AnnotationType.STAMP; } - return StampAnnotation; -}(MarkupAnnotation); +} -var FileAttachmentAnnotation = -/*#__PURE__*/ -function (_MarkupAnnotation14) { - _inherits(FileAttachmentAnnotation, _MarkupAnnotation14); - - function FileAttachmentAnnotation(parameters) { - var _this23; - - _classCallCheck(this, FileAttachmentAnnotation); - - _this23 = _possibleConstructorReturn(this, _getPrototypeOf(FileAttachmentAnnotation).call(this, parameters)); - var file = new _obj.FileSpec(parameters.dict.get('FS'), parameters.xref); - _this23.data.annotationType = _util.AnnotationType.FILEATTACHMENT; - _this23.data.file = file.serializable; - return _this23; +class FileAttachmentAnnotation extends MarkupAnnotation { + constructor(parameters) { + super(parameters); + const file = new _obj.FileSpec(parameters.dict.get("FS"), parameters.xref); + this.data.annotationType = _util.AnnotationType.FILEATTACHMENT; + this.data.file = file.serializable; } - return FileAttachmentAnnotation; -}(MarkupAnnotation); +} /***/ }), -/* 171 */ +/* 26 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -29676,7 +20553,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.OperatorList = void 0; -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); var QueueOptimizer = function QueueOptimizerClosure() { function addState(parentState, pattern, checkFn, iterateFn, processFn) { @@ -29688,9 +20565,9 @@ var QueueOptimizer = function QueueOptimizerClosure() { } state[pattern[pattern.length - 1]] = { - checkFn: checkFn, - iterateFn: iterateFn, - processFn: processFn + checkFn, + iterateFn, + processFn }; } @@ -29732,7 +20609,7 @@ var QueueOptimizer = function QueueOptimizerClosure() { return fnArray[i] === _util.OPS.restore; } - throw new Error("iterateInlineImageGroup - invalid pos: ".concat(pos)); + throw new Error(`iterateInlineImageGroup - invalid pos: ${pos}`); }, function foundInlineImageGroup(context, i) { var MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10; var MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200; @@ -29769,7 +20646,7 @@ var QueueOptimizer = function QueueOptimizerClosure() { } map.push({ - transform: transform, + transform, x: currentX, y: currentY, w: img.width, @@ -29840,7 +20717,7 @@ var QueueOptimizer = function QueueOptimizerClosure() { return fnArray[i] === _util.OPS.restore; } - throw new Error("iterateImageMaskGroup - invalid pos: ".concat(pos)); + throw new Error(`iterateImageMaskGroup - invalid pos: ${pos}`); }, function foundImageMaskGroup(context, i) { var MIN_IMAGES_IN_MASKS_BLOCK = 10; var MAX_IMAGES_IN_MASKS_BLOCK = 100; @@ -29862,18 +20739,20 @@ var QueueOptimizer = function QueueOptimizerClosure() { var isSameImage = false; var iTransform, transformArgs; var firstPIMXOArg0 = argsArray[iFirstPIMXO][0]; + const firstTransformArg0 = argsArray[iFirstTransform][0], + firstTransformArg1 = argsArray[iFirstTransform][1], + firstTransformArg2 = argsArray[iFirstTransform][2], + firstTransformArg3 = argsArray[iFirstTransform][3]; - if (argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0) { + if (firstTransformArg1 === firstTransformArg2) { 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 (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== firstTransformArg1 || transformArgs[2] !== firstTransformArg2 || transformArgs[3] !== firstTransformArg3) { if (q < MIN_IMAGES_IN_MASKS_BLOCK) { isSameImage = false; } else { @@ -29897,7 +20776,7 @@ var QueueOptimizer = function QueueOptimizerClosure() { } fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectRepeat); - argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg3, positions]); + argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg1, firstTransformArg2, firstTransformArg3, positions]); } else { count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK); var images = []; @@ -29966,7 +20845,7 @@ var QueueOptimizer = function QueueOptimizerClosure() { return fnArray[i] === _util.OPS.restore; } - throw new Error("iterateImageGroup - invalid pos: ".concat(pos)); + throw new Error(`iterateImageGroup - invalid pos: ${pos}`); }, function (context, i) { var MIN_IMAGES_IN_BLOCK = 3; var MAX_IMAGES_IN_BLOCK = 1000; @@ -30034,7 +20913,7 @@ var QueueOptimizer = function QueueOptimizerClosure() { return fnArray[i] === _util.OPS.endText; } - throw new Error("iterateShowTextGroup - invalid pos: ".concat(pos)); + throw new Error(`iterateShowTextGroup - invalid pos: ${pos}`); }, function (context, i) { var MIN_CHARS_IN_BLOCK = 3; var MAX_CHARS_IN_BLOCK = 1000; @@ -30085,23 +20964,23 @@ var QueueOptimizer = function QueueOptimizerClosure() { } QueueOptimizer.prototype = { - _optimize: function _optimize() { - var fnArray = this.queue.fnArray; - var i = this.lastProcessed, + _optimize() { + const fnArray = this.queue.fnArray; + let i = this.lastProcessed, ii = fnArray.length; - var state = this.state; - var match = this.match; + let state = this.state; + let match = this.match; if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) { this.lastProcessed = ii; return; } - var context = this.context; + const context = this.context; while (i < ii) { if (match) { - var iterate = (0, match.iterateFn)(context, i); + const iterate = (0, match.iterateFn)(context, i); if (iterate) { i++; @@ -30141,15 +21020,17 @@ var QueueOptimizer = function QueueOptimizerClosure() { this.match = match; this.lastProcessed = i; }, - push: function push(fn, args) { + + push(fn, args) { this.queue.fnArray.push(fn); this.queue.argsArray.push(args); this._optimize(); }, - flush: function flush() { + + flush() { while (this.match) { - var length = this.queue.fnArray.length; + const length = this.queue.fnArray.length; this.lastProcessed = (0, this.match.processFn)(this.context, length); this.match = null; this.state = null; @@ -30157,11 +21038,13 @@ var QueueOptimizer = function QueueOptimizerClosure() { this._optimize(); } }, - reset: function reset() { + + reset() { this.state = null; this.match = null; this.lastProcessed = 0; } + }; return QueueOptimizer; }(); @@ -30172,12 +21055,15 @@ var NullOptimizer = function NullOptimizerClosure() { } NullOptimizer.prototype = { - push: function push(fn, args) { + push(fn, args) { this.queue.fnArray.push(fn); this.queue.argsArray.push(args); }, - flush: function flush() {}, - reset: function reset() {} + + flush() {}, + + reset() {} + }; return NullOptimizer; }(); @@ -30186,22 +21072,21 @@ var OperatorList = function OperatorListClosure() { var CHUNK_SIZE = 1000; var CHUNK_SIZE_ABOUT = CHUNK_SIZE - 5; - function OperatorList(intent, messageHandler, pageIndex) { - this.messageHandler = messageHandler; + function OperatorList(intent, streamSink) { + this._streamSink = streamSink; this.fnArray = []; this.argsArray = []; - if (messageHandler && intent !== 'oplist') { + if (streamSink && intent !== "oplist") { this.optimizer = new QueueOptimizer(this); } else { this.optimizer = new NullOptimizer(this); } - this.dependencies = Object.create(null); + this.dependencies = new Set(); this._totalLength = 0; - this.pageIndex = pageIndex; - this.intent = intent; this.weight = 0; + this._resolved = streamSink ? null : Promise.resolve(); } OperatorList.prototype = { @@ -30209,15 +21094,19 @@ var OperatorList = function OperatorListClosure() { return this.argsArray.length; }, + get ready() { + return this._resolved || this._streamSink.ready; + }, + get totalLength() { return this._totalLength + this.length; }, - addOp: function addOp(fn, args) { + addOp(fn, args) { this.optimizer.push(fn, args); this.weight++; - if (this.messageHandler) { + if (this._streamSink) { if (this.weight >= CHUNK_SIZE) { this.flush(); } else if (this.weight >= CHUNK_SIZE_ABOUT && (fn === _util.OPS.restore || fn === _util.OPS.endText)) { @@ -30225,27 +21114,38 @@ var OperatorList = function OperatorListClosure() { } } }, - addDependency: function addDependency(dependency) { - if (dependency in this.dependencies) { + + addDependency(dependency) { + if (this.dependencies.has(dependency)) { return; } - this.dependencies[dependency] = true; + this.dependencies.add(dependency); this.addOp(_util.OPS.dependency, [dependency]); }, - addDependencies: function addDependencies(dependencies) { - for (var key in dependencies) { - this.addDependency(key); + + addDependencies(dependencies) { + for (const dependency of dependencies) { + this.addDependency(dependency); } }, - addOpList: function addOpList(opList) { - Object.assign(this.dependencies, opList.dependencies); + + addOpList(opList) { + if (!(opList instanceof OperatorList)) { + (0, _util.warn)('addOpList - ignoring invalid "opList" parameter.'); + return; + } + + for (const dependency of opList.dependencies) { + this.dependencies.add(dependency); + } for (var i = 0, ii = opList.length; i < ii; i++) { this.addOp(opList.fnArray[i], opList.argsArray[i]); } }, - getIR: function getIR() { + + getIR() { return { fnArray: this.fnArray, argsArray: this.argsArray, @@ -30254,17 +21154,19 @@ var OperatorList = function OperatorListClosure() { }, get _transfers() { - var transfers = []; - var fnArray = this.fnArray, - argsArray = this.argsArray, - length = this.length; + const transfers = []; + const { + fnArray, + argsArray, + length + } = this; - for (var i = 0; i < length; i++) { + for (let i = 0; i < length; i++) { switch (fnArray[i]) { case _util.OPS.paintInlineImageXObject: case _util.OPS.paintInlineImageXObjectGroup: case _util.OPS.paintImageMaskXObject: - var arg = argsArray[i][0]; + const arg = argsArray[i][0]; ; if (!arg.cached) { @@ -30278,27 +21180,25 @@ var OperatorList = function OperatorListClosure() { return transfers; }, - flush: function flush() { - var lastChunk = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + flush(lastChunk = false) { this.optimizer.flush(); - var length = this.length; + const 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 - }, this._transfers); - this.dependencies = Object.create(null); + + this._streamSink.enqueue({ + fnArray: this.fnArray, + argsArray: this.argsArray, + lastChunk, + length + }, 1, this._transfers); + + this.dependencies.clear(); this.fnArray.length = 0; this.argsArray.length = 0; this.weight = 0; this.optimizer.reset(); } + }; return OperatorList; }(); @@ -30306,7 +21206,234 @@ var OperatorList = function OperatorListClosure() { exports.OperatorList = OperatorList; /***/ }), -/* 172 */ +/* 27 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.writeDict = writeDict; +exports.incrementalUpdate = incrementalUpdate; + +var _util = __w_pdfjs_require__(2); + +var _primitives = __w_pdfjs_require__(5); + +var _crypto = __w_pdfjs_require__(22); + +function writeDict(dict, buffer, transform) { + buffer.push("<<"); + + for (const key of dict.getKeys()) { + buffer.push(` /${key} `); + writeValue(dict.getRaw(key), buffer, transform); + } + + buffer.push(">>"); +} + +function writeStream(stream, buffer, transform) { + writeDict(stream.dict, buffer, transform); + buffer.push(" stream\n"); + let string = (0, _util.bytesToString)(stream.getBytes()); + + if (transform !== null) { + string = transform.encryptString(string); + } + + buffer.push(string); + buffer.push("\nendstream\n"); +} + +function writeArray(array, buffer, transform) { + buffer.push("["); + let first = true; + + for (const val of array) { + if (!first) { + buffer.push(" "); + } else { + first = false; + } + + writeValue(val, buffer, transform); + } + + buffer.push("]"); +} + +function numberToString(value) { + if (Number.isInteger(value)) { + return value.toString(); + } + + const roundedValue = Math.round(value * 100); + + if (roundedValue % 100 === 0) { + return (roundedValue / 100).toString(); + } + + if (roundedValue % 10 === 0) { + return value.toFixed(1); + } + + return value.toFixed(2); +} + +function writeValue(value, buffer, transform) { + if ((0, _primitives.isName)(value)) { + buffer.push(`/${value.name}`); + } else if ((0, _primitives.isRef)(value)) { + buffer.push(`${value.num} ${value.gen} R`); + } else if (Array.isArray(value)) { + writeArray(value, buffer, transform); + } else if (typeof value === "string") { + if (transform !== null) { + value = transform.encryptString(value); + } + + buffer.push(`(${(0, _util.escapeString)(value)})`); + } else if (typeof value === "number") { + buffer.push(numberToString(value)); + } else if ((0, _primitives.isDict)(value)) { + writeDict(value, buffer, transform); + } else if ((0, _primitives.isStream)(value)) { + writeStream(value, buffer, transform); + } +} + +function writeInt(number, size, offset, buffer) { + for (let i = size + offset - 1; i > offset - 1; i--) { + buffer[i] = number & 0xff; + number >>= 8; + } + + return offset + size; +} + +function writeString(string, offset, buffer) { + for (let i = 0, len = string.length; i < len; i++) { + buffer[offset + i] = string.charCodeAt(i) & 0xff; + } +} + +function computeMD5(filesize, xrefInfo) { + const time = Math.floor(Date.now() / 1000); + const filename = xrefInfo.filename || ""; + const md5Buffer = [time.toString(), filename, filesize.toString()]; + let md5BufferLen = md5Buffer.reduce((a, str) => a + str.length, 0); + + for (const value of Object.values(xrefInfo.info)) { + md5Buffer.push(value); + md5BufferLen += value.length; + } + + const array = new Uint8Array(md5BufferLen); + let offset = 0; + + for (const str of md5Buffer) { + writeString(str, offset, array); + offset += str.length; + } + + return (0, _util.bytesToString)((0, _crypto.calculateMD5)(array)); +} + +function incrementalUpdate(originalData, xrefInfo, newRefs) { + const newXref = new _primitives.Dict(null); + const refForXrefTable = xrefInfo.newRef; + let buffer, baseOffset; + const lastByte = originalData[originalData.length - 1]; + + if (lastByte === 0x0a || lastByte === 0x0d) { + buffer = []; + baseOffset = originalData.length; + } else { + buffer = ["\n"]; + baseOffset = originalData.length + 1; + } + + newXref.set("Size", refForXrefTable.num + 1); + newXref.set("Prev", xrefInfo.startXRef); + newXref.set("Type", _primitives.Name.get("XRef")); + + if (xrefInfo.rootRef !== null) { + newXref.set("Root", xrefInfo.rootRef); + } + + if (xrefInfo.infoRef !== null) { + newXref.set("Info", xrefInfo.infoRef); + } + + if (xrefInfo.encrypt !== null) { + newXref.set("Encrypt", xrefInfo.encrypt); + } + + newRefs.push({ + ref: refForXrefTable, + data: "" + }); + newRefs = newRefs.sort((a, b) => { + return a.ref.num - b.ref.num; + }); + const xrefTableData = [[0, 1, 0xffff]]; + const indexes = [0, 1]; + let maxOffset = 0; + + for (const { + ref, + data + } of newRefs) { + maxOffset = Math.max(maxOffset, baseOffset); + xrefTableData.push([1, baseOffset, Math.min(ref.gen, 0xffff)]); + baseOffset += data.length; + indexes.push(ref.num); + indexes.push(1); + buffer.push(data); + } + + newXref.set("Index", indexes); + + if (xrefInfo.fileIds.length !== 0) { + const md5 = computeMD5(baseOffset, xrefInfo); + newXref.set("ID", [xrefInfo.fileIds[0], md5]); + } + + const offsetSize = Math.ceil(Math.log2(maxOffset) / 8); + const sizes = [1, offsetSize, 2]; + const structSize = sizes[0] + sizes[1] + sizes[2]; + const tableLength = structSize * xrefTableData.length; + newXref.set("W", sizes); + newXref.set("Length", tableLength); + buffer.push(`${refForXrefTable.num} ${refForXrefTable.gen} obj\n`); + writeDict(newXref, buffer, null); + buffer.push(" stream\n"); + const bufferLen = buffer.reduce((a, str) => a + str.length, 0); + const footer = `\nendstream\nendobj\nstartxref\n${baseOffset}\n%%EOF\n`; + const array = new Uint8Array(originalData.length + bufferLen + tableLength + footer.length); + array.set(originalData); + let offset = originalData.length; + + for (const str of buffer) { + writeString(str, offset, array); + offset += str.length; + } + + for (const [type, objOffset, gen] of xrefTableData) { + offset = writeInt(type, sizes[0], offset, array); + offset = writeInt(objOffset, sizes[1], offset, array); + offset = writeInt(gen, sizes[2], offset, array); + } + + writeString(footer, offset, array); + return array; +} + +/***/ }), +/* 28 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -30317,2813 +21444,3235 @@ Object.defineProperty(exports, "__esModule", { }); exports.PartialEvaluator = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(2)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(5); +var _cmap = __w_pdfjs_require__(29); -var _cmap = __w_pdfjs_require__(173); +var _primitives = __w_pdfjs_require__(5); -var _primitives = __w_pdfjs_require__(151); +var _fonts = __w_pdfjs_require__(30); -var _fonts = __w_pdfjs_require__(174); +var _encodings = __w_pdfjs_require__(33); -var _encodings = __w_pdfjs_require__(177); +var _core_utils = __w_pdfjs_require__(8); -var _unicode = __w_pdfjs_require__(180); +var _unicode = __w_pdfjs_require__(36); -var _standard_fonts = __w_pdfjs_require__(179); +var _standard_fonts = __w_pdfjs_require__(35); -var _pattern = __w_pdfjs_require__(183); +var _pattern = __w_pdfjs_require__(39); -var _parser = __w_pdfjs_require__(157); +var _function = __w_pdfjs_require__(40); -var _bidi = __w_pdfjs_require__(184); +var _parser = __w_pdfjs_require__(11); -var _colorspace = __w_pdfjs_require__(169); +var _image_utils = __w_pdfjs_require__(24); -var _stream = __w_pdfjs_require__(158); +var _bidi = __w_pdfjs_require__(42); -var _glyphlist = __w_pdfjs_require__(178); +var _colorspace = __w_pdfjs_require__(23); -var _core_utils = __w_pdfjs_require__(154); +var _stream = __w_pdfjs_require__(12); -var _metrics = __w_pdfjs_require__(185); +var _glyphlist = __w_pdfjs_require__(34); -var _function = __w_pdfjs_require__(186); +var _metrics = __w_pdfjs_require__(43); -var _jpeg_stream = __w_pdfjs_require__(164); +var _murmurhash = __w_pdfjs_require__(44); -var _murmurhash = __w_pdfjs_require__(188); +var _operator_list = __w_pdfjs_require__(26); -var _image_utils = __w_pdfjs_require__(189); +var _image = __w_pdfjs_require__(45); -var _operator_list = __w_pdfjs_require__(171); +const DefaultPartialEvaluatorOptions = Object.freeze({ + maxImageSize: -1, + disableFontFace: false, + ignoreErrors: false, + isEvalSupported: true, + fontExtraProperties: false +}); +const PatternType = { + TILING: 1, + SHADING: 2 +}; +const deferred = Promise.resolve(); -var _image = __w_pdfjs_require__(190); +function normalizeBlendMode(value, parsingArray = false) { + if (Array.isArray(value)) { + for (let i = 0, ii = value.length; i < ii; i++) { + const maybeBM = normalizeBlendMode(value[i], true); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + if (maybeBM) { + return maybeBM; + } + } -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + (0, _util.warn)(`Unsupported blend mode Array: ${value}`); + return "source-over"; + } -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + if (!(0, _primitives.isName)(value)) { + if (parsingArray) { + return null; + } -var PartialEvaluator = function PartialEvaluatorClosure() { - var DefaultPartialEvaluatorOptions = { - forceDataSchema: false, - maxImageSize: -1, - disableFontFace: false, - nativeImageDecoderSupport: _util.NativeImageDecoding.DECODE, - ignoreErrors: false, - isEvalSupported: true - }; + return "source-over"; + } - function PartialEvaluator(_ref) { - var _this = this; + switch (value.name) { + case "Normal": + case "Compatible": + return "source-over"; - var xref = _ref.xref, - handler = _ref.handler, - pageIndex = _ref.pageIndex, - idFactory = _ref.idFactory, - fontCache = _ref.fontCache, - builtInCMapCache = _ref.builtInCMapCache, - _ref$options = _ref.options, - options = _ref$options === void 0 ? null : _ref$options, - pdfFunctionFactory = _ref.pdfFunctionFactory; + case "Multiply": + return "multiply"; + + case "Screen": + return "screen"; + + case "Overlay": + return "overlay"; + + case "Darken": + return "darken"; + + case "Lighten": + return "lighten"; + + case "ColorDodge": + return "color-dodge"; + + case "ColorBurn": + return "color-burn"; + + case "HardLight": + return "hard-light"; + + case "SoftLight": + return "soft-light"; + + case "Difference": + return "difference"; + + case "Exclusion": + return "exclusion"; + + case "Hue": + return "hue"; + + case "Saturation": + return "saturation"; + + case "Color": + return "color"; + + case "Luminosity": + return "luminosity"; + } + + if (parsingArray) { + return null; + } + + (0, _util.warn)(`Unsupported blend mode: ${value.name}`); + return "source-over"; +} + +class TimeSlotManager { + static get TIME_SLOT_DURATION_MS() { + return (0, _util.shadow)(this, "TIME_SLOT_DURATION_MS", 20); + } + + static get CHECK_TIME_EVERY() { + return (0, _util.shadow)(this, "CHECK_TIME_EVERY", 100); + } + + constructor() { + this.reset(); + } + + check() { + if (++this.checked < TimeSlotManager.CHECK_TIME_EVERY) { + return false; + } + + this.checked = 0; + return this.endTime <= Date.now(); + } + + reset() { + this.endTime = Date.now() + TimeSlotManager.TIME_SLOT_DURATION_MS; + this.checked = 0; + } + +} + +class PartialEvaluator { + constructor({ + xref, + handler, + pageIndex, + idFactory, + fontCache, + builtInCMapCache, + globalImageCache, + options = null + }) { this.xref = xref; this.handler = handler; this.pageIndex = pageIndex; this.idFactory = idFactory; this.fontCache = fontCache; this.builtInCMapCache = builtInCMapCache; + this.globalImageCache = globalImageCache; this.options = options || DefaultPartialEvaluatorOptions; - this.pdfFunctionFactory = pdfFunctionFactory; this.parsingType3Font = false; - - this.fetchBuiltInCMap = - /*#__PURE__*/ - function () { - var _ref2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(name) { - var data; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!_this.builtInCMapCache.has(name)) { - _context.next = 2; - break; - } - - return _context.abrupt("return", _this.builtInCMapCache.get(name)); - - case 2: - _context.next = 4; - return _this.handler.sendWithPromise('FetchBuiltInCMap', { - name: name - }); - - case 4: - data = _context.sent; - - if (data.compressionType !== _util.CMapCompressionType.NONE) { - _this.builtInCMapCache.set(name, data); - } - - return _context.abrupt("return", data); - - case 7: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - - return function (_x) { - return _ref2.apply(this, arguments); - }; - }(); + this._fetchBuiltInCMapBound = this.fetchBuiltInCMap.bind(this); } - var TIME_SLOT_DURATION_MS = 20; - var CHECK_TIME_EVERY = 100; - - function TimeSlotManager() { - this.reset(); + get _pdfFunctionFactory() { + const pdfFunctionFactory = new _function.PDFFunctionFactory({ + xref: this.xref, + isEvalSupported: this.options.isEvalSupported + }); + return (0, _util.shadow)(this, "_pdfFunctionFactory", pdfFunctionFactory); } - 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; - } - }; - - function normalizeBlendMode(value) { - if (!(0, _primitives.isName)(value)) { - return 'source-over'; - } - - switch (value.name) { - case 'Normal': - case 'Compatible': - return 'source-over'; - - case 'Multiply': - return 'multiply'; - - case 'Screen': - return 'screen'; - - case 'Overlay': - return 'overlay'; - - case 'Darken': - return 'darken'; - - case 'Lighten': - return 'lighten'; - - case 'ColorDodge': - return 'color-dodge'; - - case 'ColorBurn': - return 'color-burn'; - - case 'HardLight': - return 'hard-light'; - - case 'SoftLight': - return 'soft-light'; - - case 'Difference': - return 'difference'; - - case 'Exclusion': - return 'exclusion'; - - case 'Hue': - return 'hue'; - - case 'Saturation': - return 'saturation'; - - case 'Color': - return 'color'; - - case 'Luminosity': - return 'luminosity'; - } - - (0, _util.warn)('Unsupported blend mode: ' + value.name); - return 'source-over'; + clone(newOptions = DefaultPartialEvaluatorOptions) { + var newEvaluator = Object.create(this); + newEvaluator.options = newOptions; + return newEvaluator; } - var deferred = Promise.resolve(); - var TILING_PATTERN = 1, - SHADING_PATTERN = 2; - PartialEvaluator.prototype = { - clone: function clone() { - var newOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DefaultPartialEvaluatorOptions; - var newEvaluator = Object.create(this); - newEvaluator.options = newOptions; - return newEvaluator; - }, - hasBlendModes: function PartialEvaluator_hasBlendModes(resources) { - if (!(0, _primitives.isDict)(resources)) { - return false; - } + hasBlendModes(resources) { + if (!(resources instanceof _primitives.Dict)) { + return false; + } - var processed = Object.create(null); + const processed = new _primitives.RefSet(); - if (resources.objId) { - processed[resources.objId] = true; - } + if (resources.objId) { + processed.put(resources.objId); + } - var nodes = [resources], - xref = this.xref; + var nodes = [resources], + xref = this.xref; - while (nodes.length) { - var key, i, ii; - var node = nodes.shift(); - var graphicStates = node.get('ExtGState'); + while (nodes.length) { + var node = nodes.shift(); + var graphicStates = node.get("ExtGState"); - if ((0, _primitives.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 ((0, _primitives.isName)(bm) && bm.name !== 'Normal') { - return true; - } - } - } - - var xObjects = node.get('XObject'); - - if (!(0, _primitives.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 ((0, _primitives.isRef)(xObject)) { - if (processed[xObject.toString()]) { + if (graphicStates instanceof _primitives.Dict) { + for (let graphicState of graphicStates.getRawValues()) { + if (graphicState instanceof _primitives.Ref) { + if (processed.has(graphicState)) { continue; } - xObject = xref.fetch(xObject); + try { + graphicState = xref.fetch(graphicState); + } catch (ex) { + if (ex instanceof _core_utils.MissingDataException) { + throw ex; + } + + processed.put(graphicState); + (0, _util.info)(`hasBlendModes - ignoring ExtGState: "${ex}".`); + continue; + } } - if (!(0, _primitives.isStream)(xObject)) { + if (!(graphicState instanceof _primitives.Dict)) { continue; } - if (xObject.dict.objId) { - if (processed[xObject.dict.objId]) { - continue; - } - - processed[xObject.dict.objId] = true; + if (graphicState.objId) { + processed.put(graphicState.objId); } - var xResources = xObject.dict.get('Resources'); + const bm = graphicState.get("BM"); - if ((0, _primitives.isDict)(xResources) && (!xResources.objId || !processed[xResources.objId])) { - nodes.push(xResources); + if (bm instanceof _primitives.Name) { + if (bm.name !== "Normal") { + return true; + } - if (xResources.objId) { - processed[xResources.objId] = true; + continue; + } + + if (bm !== undefined && Array.isArray(bm)) { + for (const element of bm) { + if (element instanceof _primitives.Name && element.name !== "Normal") { + return true; + } } } } } - return false; - }, - buildFormXObject: function PartialEvaluator_buildFormXObject(resources, xobj, smask, operatorList, task, initialState) { - var dict = xobj.dict; - var matrix = dict.getArray('Matrix'); - var bbox = dict.getArray('BBox'); + var xObjects = node.get("XObject"); - if (Array.isArray(bbox) && bbox.length === 4) { - bbox = _util.Util.normalizeRect(bbox); - } else { - bbox = null; + if (!(xObjects instanceof _primitives.Dict)) { + continue; } - var group = dict.get('Group'); + for (let xObject of xObjects.getRawValues()) { + if (xObject instanceof _primitives.Ref) { + if (processed.has(xObject)) { + continue; + } + + try { + xObject = xref.fetch(xObject); + } catch (ex) { + if (ex instanceof _core_utils.MissingDataException) { + throw ex; + } + + processed.put(xObject); + (0, _util.info)(`hasBlendModes - ignoring XObject: "${ex}".`); + continue; + } + } + + if (!(0, _primitives.isStream)(xObject)) { + continue; + } + + if (xObject.dict.objId) { + processed.put(xObject.dict.objId); + } + + var xResources = xObject.dict.get("Resources"); + + if (!(xResources instanceof _primitives.Dict)) { + continue; + } + + if (xResources.objId && processed.has(xResources.objId)) { + continue; + } + + nodes.push(xResources); + + if (xResources.objId) { + processed.put(xResources.objId); + } + } + } + + return false; + } + + async fetchBuiltInCMap(name) { + const cachedData = this.builtInCMapCache.get(name); + + if (cachedData) { + return cachedData; + } + + const readableStream = this.handler.sendWithStream("FetchBuiltInCMap", { + name + }); + const reader = readableStream.getReader(); + const data = await new Promise(function (resolve, reject) { + function pump() { + reader.read().then(function ({ + value, + done + }) { + if (done) { + return; + } + + resolve(value); + pump(); + }, reject); + } + + pump(); + }); + + if (data.compressionType !== _util.CMapCompressionType.NONE) { + this.builtInCMapCache.set(name, data); + } + + return data; + } + + async buildFormXObject(resources, xobj, smask, operatorList, task, initialState, localColorSpaceCache) { + var dict = xobj.dict; + var matrix = dict.getArray("Matrix"); + var bbox = dict.getArray("BBox"); + + if (Array.isArray(bbox) && bbox.length === 4) { + bbox = _util.Util.normalizeRect(bbox); + } else { + bbox = null; + } + + let optionalContent = null; + + if (dict.has("OC")) { + optionalContent = await this.parseMarkedContentProps(dict.get("OC"), resources); + operatorList.addOp(_util.OPS.beginMarkedContentProps, ["OC", optionalContent]); + } + + var group = dict.get("Group"); + + if (group) { + var groupOptions = { + matrix, + bbox, + smask, + isolated: false, + knockout: false + }; + var groupSubtype = group.get("S"); + var colorSpace = null; + + if ((0, _primitives.isName)(groupSubtype, "Transparency")) { + groupOptions.isolated = group.get("I") || false; + groupOptions.knockout = group.get("K") || false; + + if (group.has("CS")) { + const cs = group.getRaw("CS"); + + const cachedColorSpace = _colorspace.ColorSpace.getCached(cs, this.xref, localColorSpaceCache); + + if (cachedColorSpace) { + colorSpace = cachedColorSpace; + } else { + colorSpace = await this.parseColorSpace({ + cs, + resources, + localColorSpaceCache + }); + } + } + } + + if (smask && smask.backdrop) { + colorSpace = colorSpace || _colorspace.ColorSpace.singletons.rgb; + smask.backdrop = colorSpace.getRgb(smask.backdrop, 0); + } + + operatorList.addOp(_util.OPS.beginGroup, [groupOptions]); + } + + operatorList.addOp(_util.OPS.paintFormXObjectBegin, [matrix, bbox]); + return this.getOperatorList({ + stream: xobj, + task, + resources: dict.get("Resources") || resources, + operatorList, + initialState + }).then(function () { + operatorList.addOp(_util.OPS.paintFormXObjectEnd, []); if (group) { - var groupOptions = { - matrix: matrix, - bbox: bbox, - smask: smask, - isolated: false, - knockout: false - }; - var groupSubtype = group.get('S'); - var colorSpace = null; - - if ((0, _primitives.isName)(groupSubtype, 'Transparency')) { - groupOptions.isolated = group.get('I') || false; - groupOptions.knockout = group.get('K') || false; - - if (group.has('CS')) { - colorSpace = _colorspace.ColorSpace.parse(group.get('CS'), this.xref, resources, this.pdfFunctionFactory); - } - } - - if (smask && smask.backdrop) { - colorSpace = colorSpace || _colorspace.ColorSpace.singletons.rgb; - smask.backdrop = colorSpace.getRgb(smask.backdrop, 0); - } - - operatorList.addOp(_util.OPS.beginGroup, [groupOptions]); + operatorList.addOp(_util.OPS.endGroup, [groupOptions]); } - operatorList.addOp(_util.OPS.paintFormXObjectBegin, [matrix, bbox]); - return this.getOperatorList({ - stream: xobj, - task: task, - resources: dict.get('Resources') || resources, - operatorList: operatorList, - initialState: initialState - }).then(function () { - operatorList.addOp(_util.OPS.paintFormXObjectEnd, []); + if (optionalContent) { + operatorList.addOp(_util.OPS.endMarkedContent, []); + } + }); + } - if (group) { - operatorList.addOp(_util.OPS.endGroup, [groupOptions]); - } + _sendImgData(objId, imgData, cacheGlobally = false) { + const transfers = imgData ? [imgData.data.buffer] : null; + + if (this.parsingType3Font || cacheGlobally) { + return this.handler.send("commonobj", [objId, "Image", imgData], transfers); + } + + return this.handler.send("obj", [objId, this.pageIndex, "Image", imgData], transfers); + } + + async buildPaintImageXObject({ + resources, + image, + isInline = false, + operatorList, + cacheKey, + localImageCache, + localColorSpaceCache + }) { + var dict = image.dict; + const imageRef = dict.objId; + var w = dict.get("Width", "W"); + var h = dict.get("Height", "H"); + + if (!(w && (0, _util.isNum)(w)) || !(h && (0, _util.isNum)(h))) { + (0, _util.warn)("Image dimensions are missing, or not numbers."); + return undefined; + } + + var maxImageSize = this.options.maxImageSize; + + if (maxImageSize !== -1 && w * h > maxImageSize) { + (0, _util.warn)("Image exceeded maximum allowed size and was removed."); + return undefined; + } + + 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, true); + var decode = dict.getArray("Decode", "D"); + imgData = _image.PDFImage.createMask({ + imgArray, + width, + height, + imageIsFromDecodeStream: image instanceof _stream.DecodeStream, + inverseDecode: !!decode && decode[0] > 0 }); - }, - buildPaintImageXObject: function () { - var _buildPaintImageXObject = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2(_ref3) { - var _this2 = this; + imgData.cached = !!cacheKey; + args = [imgData]; + operatorList.addOp(_util.OPS.paintImageMaskXObject, args); - var resources, image, _ref3$isInline, isInline, operatorList, cacheKey, imageCache, _ref3$forceDisableNat, forceDisableNativeImageDecoder, dict, w, h, maxImageSize, imageMask, imgData, args, width, height, bitStrideLength, imgArray, decode, softMask, mask, SMALL_IMAGE_DIMENSIONS, imageObj, nativeImageDecoderSupport, objId, nativeImageDecoder, imgPromise; - - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - resources = _ref3.resources, image = _ref3.image, _ref3$isInline = _ref3.isInline, isInline = _ref3$isInline === void 0 ? false : _ref3$isInline, operatorList = _ref3.operatorList, cacheKey = _ref3.cacheKey, imageCache = _ref3.imageCache, _ref3$forceDisableNat = _ref3.forceDisableNativeImageDecoder, forceDisableNativeImageDecoder = _ref3$forceDisableNat === void 0 ? false : _ref3$forceDisableNat; - dict = image.dict; - w = dict.get('Width', 'W'); - h = dict.get('Height', 'H'); - - if (!(!(w && (0, _util.isNum)(w)) || !(h && (0, _util.isNum)(h)))) { - _context2.next = 7; - break; - } - - (0, _util.warn)('Image dimensions are missing, or not numbers.'); - return _context2.abrupt("return", undefined); - - case 7: - maxImageSize = this.options.maxImageSize; - - if (!(maxImageSize !== -1 && w * h > maxImageSize)) { - _context2.next = 11; - break; - } - - (0, _util.warn)('Image exceeded maximum allowed size and was removed.'); - return _context2.abrupt("return", undefined); - - case 11: - imageMask = dict.get('ImageMask', 'IM') || false; - - if (!imageMask) { - _context2.next = 24; - break; - } - - width = dict.get('Width', 'W'); - height = dict.get('Height', 'H'); - bitStrideLength = width + 7 >> 3; - imgArray = image.getBytes(bitStrideLength * height, true); - decode = dict.getArray('Decode', 'D'); - imgData = _image.PDFImage.createMask({ - imgArray: imgArray, - width: width, - height: height, - imageIsFromDecodeStream: image instanceof _stream.DecodeStream, - inverseDecode: !!decode && decode[0] > 0 - }); - imgData.cached = !!cacheKey; - args = [imgData]; - operatorList.addOp(_util.OPS.paintImageMaskXObject, args); - - if (cacheKey) { - imageCache[cacheKey] = { - fn: _util.OPS.paintImageMaskXObject, - args: args - }; - } - - return _context2.abrupt("return", undefined); - - case 24: - softMask = dict.get('SMask', 'SM') || false; - mask = dict.get('Mask') || false; - SMALL_IMAGE_DIMENSIONS = 200; - - if (!(isInline && !softMask && !mask && !(image instanceof _jpeg_stream.JpegStream) && w + h < SMALL_IMAGE_DIMENSIONS)) { - _context2.next = 32; - break; - } - - imageObj = new _image.PDFImage({ - xref: this.xref, - res: resources, - image: image, - isInline: isInline, - pdfFunctionFactory: this.pdfFunctionFactory - }); - imgData = imageObj.createImageData(true); - operatorList.addOp(_util.OPS.paintInlineImageXObject, [imgData]); - return _context2.abrupt("return", undefined); - - case 32: - nativeImageDecoderSupport = forceDisableNativeImageDecoder ? _util.NativeImageDecoding.NONE : this.options.nativeImageDecoderSupport; - objId = "img_".concat(this.idFactory.createObjId()); - - if (this.parsingType3Font) { - (0, _util.assert)(nativeImageDecoderSupport === _util.NativeImageDecoding.NONE, 'Type3 image resources should be completely decoded in the worker.'); - objId = "".concat(this.idFactory.getDocId(), "_type3res_").concat(objId); - } - - if (!(nativeImageDecoderSupport !== _util.NativeImageDecoding.NONE && !softMask && !mask && image instanceof _jpeg_stream.JpegStream && _image_utils.NativeImageDecoder.isSupported(image, this.xref, resources, this.pdfFunctionFactory))) { - _context2.next = 37; - break; - } - - return _context2.abrupt("return", this.handler.sendWithPromise('obj', [objId, this.pageIndex, 'JpegStream', image.getIR(this.options.forceDataSchema)]).then(function () { - operatorList.addDependency(objId); - args = [objId, w, h]; - operatorList.addOp(_util.OPS.paintJpegXObject, args); - - if (cacheKey) { - imageCache[cacheKey] = { - fn: _util.OPS.paintJpegXObject, - args: args - }; - } - }, function (reason) { - (0, _util.warn)('Native JPEG decoding failed -- trying to recover: ' + (reason && reason.message)); - return _this2.buildPaintImageXObject({ - resources: resources, - image: image, - isInline: isInline, - operatorList: operatorList, - cacheKey: cacheKey, - imageCache: imageCache, - forceDisableNativeImageDecoder: true - }); - })); - - case 37: - nativeImageDecoder = null; - - if (nativeImageDecoderSupport === _util.NativeImageDecoding.DECODE && (image instanceof _jpeg_stream.JpegStream || mask instanceof _jpeg_stream.JpegStream || softMask instanceof _jpeg_stream.JpegStream)) { - nativeImageDecoder = new _image_utils.NativeImageDecoder({ - xref: this.xref, - resources: resources, - handler: this.handler, - forceDataSchema: this.options.forceDataSchema, - pdfFunctionFactory: this.pdfFunctionFactory - }); - } - - operatorList.addDependency(objId); - args = [objId, w, h]; - imgPromise = _image.PDFImage.buildImage({ - handler: this.handler, - xref: this.xref, - res: resources, - image: image, - isInline: isInline, - nativeDecoder: nativeImageDecoder, - pdfFunctionFactory: this.pdfFunctionFactory - }).then(function (imageObj) { - var imgData = imageObj.createImageData(false); - - if (_this2.parsingType3Font) { - return _this2.handler.sendWithPromise('commonobj', [objId, 'FontType3Res', imgData], [imgData.data.buffer]); - } - - _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', imgData], [imgData.data.buffer]); - - return undefined; - })["catch"](function (reason) { - (0, _util.warn)('Unable to decode image: ' + reason); - - if (_this2.parsingType3Font) { - return _this2.handler.sendWithPromise('commonobj', [objId, 'FontType3Res', null]); - } - - _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', null]); - - return undefined; - }); - - if (!this.parsingType3Font) { - _context2.next = 45; - break; - } - - _context2.next = 45; - return imgPromise; - - case 45: - operatorList.addOp(_util.OPS.paintImageXObject, args); - - if (cacheKey) { - imageCache[cacheKey] = { - fn: _util.OPS.paintImageXObject, - args: args - }; - } - - return _context2.abrupt("return", undefined); - - case 48: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function buildPaintImageXObject(_x2) { - return _buildPaintImageXObject.apply(this, arguments); - } - - return buildPaintImageXObject; - }(), - 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 ((0, _function.isPDFFunction)(transferObj)) { - var transferFn = this.pdfFunctionFactory.create(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 handleTilingType(fn, args, resources, pattern, patternDict, operatorList, task) { - var _this3 = this; - - var tilingOpList = new _operator_list.OperatorList(); - var resourcesArray = [patternDict.get('Resources'), resources]; - - var patternResources = _primitives.Dict.merge(this.xref, resourcesArray); - - return this.getOperatorList({ - stream: pattern, - task: task, - resources: patternResources, - operatorList: tilingOpList - }).then(function () { - return (0, _pattern.getTilingPatternIR)({ - fnArray: tilingOpList.fnArray, - argsArray: tilingOpList.argsArray - }, patternDict, args); - }).then(function (tilingPatternIR) { - operatorList.addDependencies(tilingOpList.dependencies); - operatorList.addOp(fn, tilingPatternIR); - }, function (reason) { - if (_this3.options.ignoreErrors) { - _this3.handler.send('UnsupportedFeature', { - featureId: _util.UNSUPPORTED_FEATURES.unknown - }); - - (0, _util.warn)("handleTilingType - ignoring pattern: \"".concat(reason, "\".")); - return; - } - - throw reason; - }); - }, - handleSetFont: function PartialEvaluator_handleSetFont(resources, fontArgs, fontRef, operatorList, task, state) { - var _this4 = this; - - var fontName; - - if (fontArgs) { - fontArgs = fontArgs.slice(); - fontName = fontArgs[0].name; - } - - return this.loadFont(fontName, fontRef, resources).then(function (translated) { - if (!translated.font.isType3Font) { - return translated; - } - - return translated.loadType3Data(_this4, resources, operatorList, task).then(function () { - return translated; - })["catch"](function (reason) { - _this4.handler.send('UnsupportedFeature', { - featureId: _util.UNSUPPORTED_FEATURES.font - }); - - return new TranslatedFont('g_font_error', new _fonts.ErrorFont('Type3 font load error: ' + reason), translated.font); + if (cacheKey) { + localImageCache.set(cacheKey, imageRef, { + fn: _util.OPS.paintImageMaskXObject, + args }); - }).then(function (translated) { - state.font = translated.font; - translated.send(_this4.handler); - return translated.loadedName; - }); - }, - handleText: function handleText(chars, state) { - var font = state.font; - var glyphs = font.charsToGlyphs(chars); - - if (font.data) { - var isAddToPathSet = !!(state.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG); - - if (isAddToPathSet || state.fillColorSpace.name === 'Pattern' || font.disableFontFace || this.options.disableFontFace) { - PartialEvaluator.buildFontPaths(font, glyphs, this.handler); - } } - return glyphs; - }, - setGState: function PartialEvaluator_setGState(resources, gState, operatorList, task, stateManager) { - var _this5 = this; + return undefined; + } - var gStateObj = []; - var gStateKeys = gState.getKeys(); - var promise = Promise.resolve(); + var softMask = dict.get("SMask", "SM") || false; + var mask = dict.get("Mask") || false; + var SMALL_IMAGE_DIMENSIONS = 200; - var _loop = function _loop() { - var key = gStateKeys[i]; - var value = gState.get(key); + if (isInline && !softMask && !mask && w + h < SMALL_IMAGE_DIMENSIONS) { + const imageObj = new _image.PDFImage({ + xref: this.xref, + res: resources, + image, + isInline, + pdfFunctionFactory: this._pdfFunctionFactory, + localColorSpaceCache + }); + imgData = imageObj.createImageData(true); + operatorList.addOp(_util.OPS.paintInlineImageXObject, [imgData]); + return undefined; + } - switch (key) { - case 'Type': - break; + let objId = `img_${this.idFactory.createObjId()}`, + cacheGlobally = false; - case 'LW': - case 'LC': - case 'LJ': - case 'ML': - case 'D': - case 'RI': - case 'FL': - case 'CA': - case 'ca': - gStateObj.push([key, value]); - break; + if (this.parsingType3Font) { + objId = `${this.idFactory.getDocId()}_type3_${objId}`; + } else if (imageRef) { + cacheGlobally = this.globalImageCache.shouldCache(imageRef, this.pageIndex); - case 'Font': - promise = promise.then(function () { - return _this5.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state).then(function (loadedName) { - operatorList.addDependency(loadedName); - gStateObj.push([key, [loadedName, value[1]]]); - }); + if (cacheGlobally) { + objId = `${this.idFactory.getDocId()}_${objId}`; + } + } + + operatorList.addDependency(objId); + args = [objId, w, h]; + + _image.PDFImage.buildImage({ + xref: this.xref, + res: resources, + image, + isInline, + pdfFunctionFactory: this._pdfFunctionFactory, + localColorSpaceCache + }).then(imageObj => { + imgData = imageObj.createImageData(false); + return this._sendImgData(objId, imgData, cacheGlobally); + }).catch(reason => { + (0, _util.warn)(`Unable to decode image "${objId}": "${reason}".`); + return this._sendImgData(objId, null, cacheGlobally); + }); + + operatorList.addOp(_util.OPS.paintImageXObject, args); + + if (cacheKey) { + localImageCache.set(cacheKey, imageRef, { + fn: _util.OPS.paintImageXObject, + args + }); + + if (imageRef) { + (0, _util.assert)(!isInline, "Cannot cache an inline image globally."); + this.globalImageCache.addPageIndex(imageRef, this.pageIndex); + + if (cacheGlobally) { + this.globalImageCache.setData(imageRef, { + objId, + fn: _util.OPS.paintImageXObject, + args + }); + } + } + } + + return undefined; + } + + handleSMask(smask, resources, operatorList, task, stateManager, localColorSpaceCache) { + var smaskContent = smask.get("G"); + var smaskOptions = { + subtype: smask.get("S").name, + backdrop: smask.get("BC") + }; + var transferObj = smask.get("TR"); + + if ((0, _function.isPDFFunction)(transferObj)) { + const transferFn = this._pdfFunctionFactory.create(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(), localColorSpaceCache); + } + + handleTransferFunction(tr) { + let transferArray; + + if (Array.isArray(tr)) { + transferArray = tr; + } else if ((0, _function.isPDFFunction)(tr)) { + transferArray = [tr]; + } else { + return null; + } + + const transferMaps = []; + let numFns = 0, + numEffectfulFns = 0; + + for (const entry of transferArray) { + const transferObj = this.xref.fetchIfRef(entry); + numFns++; + + if ((0, _primitives.isName)(transferObj, "Identity")) { + transferMaps.push(null); + continue; + } else if (!(0, _function.isPDFFunction)(transferObj)) { + return null; + } + + const transferFn = this._pdfFunctionFactory.create(transferObj); + + const transferMap = new Uint8Array(256), + tmp = new Float32Array(1); + + for (let j = 0; j < 256; j++) { + tmp[0] = j / 255; + transferFn(tmp, 0, tmp, 0); + transferMap[j] = tmp[0] * 255 | 0; + } + + transferMaps.push(transferMap); + numEffectfulFns++; + } + + if (!(numFns === 1 || numFns === 4)) { + return null; + } + + if (numEffectfulFns === 0) { + return null; + } + + return transferMaps; + } + + handleTilingType(fn, args, resources, pattern, patternDict, operatorList, task) { + const tilingOpList = new _operator_list.OperatorList(); + + const patternResources = _primitives.Dict.merge({ + xref: this.xref, + dictArray: [patternDict.get("Resources"), resources] + }); + + return this.getOperatorList({ + stream: pattern, + task, + resources: patternResources, + operatorList: tilingOpList + }).then(function () { + return (0, _pattern.getTilingPatternIR)({ + fnArray: tilingOpList.fnArray, + argsArray: tilingOpList.argsArray + }, patternDict, args); + }).then(function (tilingPatternIR) { + operatorList.addDependencies(tilingOpList.dependencies); + operatorList.addOp(fn, tilingPatternIR); + }, reason => { + if (reason instanceof _util.AbortException) { + return; + } + + if (this.options.ignoreErrors) { + this.handler.send("UnsupportedFeature", { + featureId: _util.UNSUPPORTED_FEATURES.errorTilingPattern + }); + (0, _util.warn)(`handleTilingType - ignoring pattern: "${reason}".`); + return; + } + + throw reason; + }); + } + + handleSetFont(resources, fontArgs, fontRef, operatorList, task, state) { + var fontName, + fontSize = 0; + + if (fontArgs) { + fontArgs = fontArgs.slice(); + fontName = fontArgs[0].name; + fontSize = fontArgs[1]; + } + + return this.loadFont(fontName, fontRef, resources).then(translated => { + if (!translated.font.isType3Font) { + return translated; + } + + return translated.loadType3Data(this, resources, task).then(function () { + operatorList.addDependencies(translated.type3Dependencies); + return translated; + }).catch(reason => { + this.handler.send("UnsupportedFeature", { + featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadType3 + }); + return new TranslatedFont({ + loadedName: "g_font_error", + font: new _fonts.ErrorFont(`Type3 font load error: ${reason}`), + dict: translated.font, + extraProperties: this.options.fontExtraProperties + }); + }); + }).then(translated => { + state.font = translated.font; + state.fontSize = fontSize; + state.fontName = fontName; + translated.send(this.handler); + return translated.loadedName; + }); + } + + handleText(chars, state) { + const font = state.font; + const glyphs = font.charsToGlyphs(chars); + + if (font.data) { + const isAddToPathSet = !!(state.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG); + + if (isAddToPathSet || state.fillColorSpace.name === "Pattern" || font.disableFontFace || this.options.disableFontFace) { + PartialEvaluator.buildFontPaths(font, glyphs, this.handler); + } + } + + return glyphs; + } + + ensureStateFont(state) { + if (state.font) { + return; + } + + const reason = new _util.FormatError("Missing setFont (Tf) operator before text rendering operator."); + + if (this.options.ignoreErrors) { + this.handler.send("UnsupportedFeature", { + featureId: _util.UNSUPPORTED_FEATURES.errorFontState + }); + (0, _util.warn)(`ensureStateFont: "${reason}".`); + return; + } + + throw reason; + } + + async setGState({ + resources, + gState, + operatorList, + cacheKey, + task, + stateManager, + localGStateCache, + localColorSpaceCache + }) { + const gStateRef = gState.objId; + let isSimpleGState = true; + var gStateObj = []; + var gStateKeys = gState.getKeys(); + var promise = Promise.resolve(); + + for (var i = 0, ii = gStateKeys.length; i < ii; i++) { + const key = gStateKeys[i]; + const 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": + isSimpleGState = false; + promise = promise.then(() => { + return this.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, normalizeBlendMode(value)]); + break; + + case "SMask": + if ((0, _primitives.isName)(value, "None")) { + gStateObj.push([key, false]); break; - - case 'BM': - gStateObj.push([key, normalizeBlendMode(value)]); - break; - - case 'SMask': - if ((0, _primitives.isName)(value, 'None')) { - gStateObj.push([key, false]); - break; - } - - if ((0, _primitives.isDict)(value)) { - promise = promise.then(function () { - return _this5.handleSMask(value, resources, operatorList, task, stateManager); - }); - gStateObj.push([key, true]); - } else { - (0, _util.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': - (0, _util.info)('graphic state operator ' + key); - break; - - default: - (0, _util.info)('Unknown graphic state operator ' + key); - break; - } - }; - - for (var i = 0, ii = gStateKeys.length; i < ii; i++) { - _loop(); - } - - return promise.then(function () { - if (gStateObj.length > 0) { - operatorList.addOp(_util.OPS.setGState, [gStateObj]); - } - }); - }, - loadFont: function PartialEvaluator_loadFont(fontName, font, resources) { - var _this6 = this; - - function errorFont() { - return Promise.resolve(new TranslatedFont('g_font_error', new _fonts.ErrorFont('Font ' + fontName + ' is not available'), font)); - } - - var fontRef, - xref = this.xref; - - if (font) { - if (!(0, _primitives.isRef)(font)) { - throw new Error('The "font" object should be a reference.'); - } - - fontRef = font; - } else { - var fontRes = resources.get('Font'); - - if (fontRes) { - fontRef = fontRes.getRaw(fontName); - } else { - (0, _util.warn)('fontRes not available'); - return errorFont(); - } - } - - if (!fontRef) { - (0, _util.warn)('fontRef not available'); - return errorFont(); - } - - if (this.fontCache.has(fontRef)) { - return this.fontCache.get(fontRef); - } - - font = xref.fetchIfRef(fontRef); - - if (!(0, _primitives.isDict)(font)) { - return errorFont(); - } - - if (font.translated) { - return font.translated; - } - - var fontCapability = (0, _util.createPromiseCapability)(); - var preEvaluatedFont = this.preEvaluateFont(font); - var descriptor = preEvaluatedFont.descriptor, - hash = preEvaluatedFont.hash; - var fontRefIsRef = (0, _primitives.isRef)(fontRef), - fontID; - - if (fontRefIsRef) { - fontID = fontRef.toString(); - } - - if (hash && (0, _primitives.isDict)(descriptor)) { - if (!descriptor.fontAliases) { - descriptor.fontAliases = Object.create(null); - } - - var fontAliases = descriptor.fontAliases; - - 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: _fonts.Font.getFontID() - }; - } - if (fontRefIsRef) { - fontAliases[hash].aliasRef = fontRef; - } + if ((0, _primitives.isDict)(value)) { + isSimpleGState = false; + promise = promise.then(() => { + return this.handleSMask(value, resources, operatorList, task, stateManager, localColorSpaceCache); + }); + gStateObj.push([key, true]); + } else { + (0, _util.warn)("Unsupported SMask type"); + } - fontID = fontAliases[hash].fontID; + break; + + case "TR": + const transferMaps = this.handleTransferFunction(value); + gStateObj.push([key, transferMaps]); + break; + + case "OP": + case "op": + case "OPM": + case "BG": + case "BG2": + case "UCR": + case "UCR2": + case "TR2": + case "HT": + case "SM": + case "SA": + case "AIS": + case "TK": + (0, _util.info)("graphic state operator " + key); + break; + + default: + (0, _util.info)("Unknown graphic state operator " + key); + break; + } + } + + return promise.then(function () { + if (gStateObj.length > 0) { + operatorList.addOp(_util.OPS.setGState, [gStateObj]); + } + + if (isSimpleGState) { + localGStateCache.set(cacheKey, gStateRef, gStateObj); + } + }); + } + + loadFont(fontName, font, resources) { + const errorFont = () => { + return Promise.resolve(new TranslatedFont({ + loadedName: "g_font_error", + font: new _fonts.ErrorFont(`Font "${fontName}" is not available.`), + dict: font, + extraProperties: this.options.fontExtraProperties + })); + }; + + var fontRef, + xref = this.xref; + + if (font) { + if (!(0, _primitives.isRef)(font)) { + throw new _util.FormatError('The "font" object should be a reference.'); + } + + fontRef = font; + } else { + var fontRes = resources.get("Font"); + + if (fontRes) { + fontRef = fontRes.getRaw(fontName); + } + } + + if (!fontRef) { + const partialMsg = `Font "${fontName || font && font.toString()}" is not available`; + + if (!this.options.ignoreErrors && !this.parsingType3Font) { + (0, _util.warn)(`${partialMsg}.`); + return errorFont(); + } + + this.handler.send("UnsupportedFeature", { + featureId: _util.UNSUPPORTED_FEATURES.errorFontMissing + }); + (0, _util.warn)(`${partialMsg} -- attempting to fallback to a default font.`); + fontRef = PartialEvaluator.fallbackFontDict; + } + + if (this.fontCache.has(fontRef)) { + return this.fontCache.get(fontRef); + } + + font = xref.fetchIfRef(fontRef); + + if (!(0, _primitives.isDict)(font)) { + return errorFont(); + } + + if (font.translated) { + return font.translated; + } + + var fontCapability = (0, _util.createPromiseCapability)(); + var preEvaluatedFont = this.preEvaluateFont(font); + const { + descriptor, + hash + } = preEvaluatedFont; + var fontRefIsRef = (0, _primitives.isRef)(fontRef), + fontID; + + if (fontRefIsRef) { + fontID = `f${fontRef.toString()}`; + } + + if (hash && (0, _primitives.isDict)(descriptor)) { + if (!descriptor.fontAliases) { + descriptor.fontAliases = Object.create(null); + } + + var fontAliases = descriptor.fontAliases; + + 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: this.idFactory.createFontId() + }; } if (fontRefIsRef) { - this.fontCache.put(fontRef, fontCapability.promise); - } else { - if (!fontID) { - fontID = this.idFactory.createObjId(); - } - - this.fontCache.put("id_".concat(fontID), fontCapability.promise); + fontAliases[hash].aliasRef = fontRef; } - (0, _util.assert)(fontID, 'The "fontID" must be defined.'); - font.loadedName = "".concat(this.idFactory.getDocId(), "_f").concat(fontID); - font.translated = fontCapability.promise; - var translatedPromise; + fontID = fontAliases[hash].fontID; + } + + if (fontRefIsRef) { + this.fontCache.put(fontRef, fontCapability.promise); + } else { + if (!fontID) { + fontID = this.idFactory.createFontId(); + } + + this.fontCache.put(`id_${fontID}`, fontCapability.promise); + } + + (0, _util.assert)(fontID && fontID.startsWith("f"), 'The "fontID" must be (correctly) defined.'); + font.loadedName = `${this.idFactory.getDocId()}_${fontID}`; + font.translated = fontCapability.promise; + var translatedPromise; + + try { + translatedPromise = this.translateFont(preEvaluatedFont); + } catch (e) { + translatedPromise = Promise.reject(e); + } + + translatedPromise.then(translatedFont => { + if (translatedFont.fontType !== undefined) { + var xrefFontStats = xref.stats.fontTypes; + xrefFontStats[translatedFont.fontType] = true; + } + + fontCapability.resolve(new TranslatedFont({ + loadedName: font.loadedName, + font: translatedFont, + dict: font, + extraProperties: this.options.fontExtraProperties + })); + }).catch(reason => { + this.handler.send("UnsupportedFeature", { + featureId: _util.UNSUPPORTED_FEATURES.errorFontTranslate + }); try { - translatedPromise = this.translateFont(preEvaluatedFont); - } catch (e) { - translatedPromise = Promise.reject(e); - } + var fontFile3 = descriptor && descriptor.get("FontFile3"); + var subtype = fontFile3 && fontFile3.get("Subtype"); + var fontType = (0, _fonts.getFontType)(preEvaluatedFont.type, subtype && subtype.name); + var xrefFontStats = xref.stats.fontTypes; + xrefFontStats[fontType] = true; + } catch (ex) {} - 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)); - })["catch"](function (reason) { - _this6.handler.send('UnsupportedFeature', { - featureId: _util.UNSUPPORTED_FEATURES.font - }); - - try { - var fontFile3 = descriptor && descriptor.get('FontFile3'); - var subtype = fontFile3 && fontFile3.get('Subtype'); - var fontType = (0, _fonts.getFontType)(preEvaluatedFont.type, subtype && subtype.name); - var xrefFontStats = xref.stats.fontTypes; - xrefFontStats[fontType] = true; - } catch (ex) {} - - fontCapability.resolve(new TranslatedFont(font.loadedName, new _fonts.ErrorFont(reason instanceof Error ? reason.message : reason), font)); - }); - return fontCapability.promise; - }, - buildPath: function buildPath(operatorList, fn, args) { - var parsingText = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - var lastIndex = operatorList.length - 1; - - if (!args) { - args = []; - } - - if (lastIndex < 0 || operatorList.fnArray[lastIndex] !== _util.OPS.constructPath) { - if (parsingText) { - (0, _util.warn)("Encountered path operator \"".concat(fn, "\" inside of a text object.")); - operatorList.addOp(_util.OPS.save, null); - } - - operatorList.addOp(_util.OPS.constructPath, [[fn], args]); - - if (parsingText) { - operatorList.addOp(_util.OPS.restore, null); - } - } else { - var opArgs = operatorList.argsArray[lastIndex]; - opArgs[0].push(fn); - Array.prototype.push.apply(opArgs[1], args); - } - }, - handleColorN: function () { - var _handleColorN = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee3(operatorList, fn, args, cs, patterns, resources, task) { - var patternName, pattern, dict, typeNum, color, shading, matrix; - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - patternName = args[args.length - 1]; - - if (!((0, _primitives.isName)(patternName) && (pattern = patterns.get(patternName.name)))) { - _context3.next = 16; - break; - } - - dict = (0, _primitives.isStream)(pattern) ? pattern.dict : pattern; - typeNum = dict.get('PatternType'); - - if (!(typeNum === TILING_PATTERN)) { - _context3.next = 9; - break; - } - - color = cs.base ? cs.base.getRgb(args, 0) : null; - return _context3.abrupt("return", this.handleTilingType(fn, color, resources, pattern, dict, operatorList, task)); - - case 9: - if (!(typeNum === SHADING_PATTERN)) { - _context3.next = 15; - break; - } - - shading = dict.get('Shading'); - matrix = dict.getArray('Matrix'); - pattern = _pattern.Pattern.parseShading(shading, matrix, this.xref, resources, this.handler, this.pdfFunctionFactory); - operatorList.addOp(fn, pattern.getIR()); - return _context3.abrupt("return", undefined); - - case 15: - throw new _util.FormatError("Unknown PatternType: ".concat(typeNum)); - - case 16: - throw new _util.FormatError("Unknown PatternName: ".concat(patternName)); - - case 17: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); + fontCapability.resolve(new TranslatedFont({ + loadedName: font.loadedName, + font: new _fonts.ErrorFont(reason instanceof Error ? reason.message : reason), + dict: font, + extraProperties: this.options.fontExtraProperties })); + }); + return fontCapability.promise; + } - function handleColorN(_x3, _x4, _x5, _x6, _x7, _x8, _x9) { - return _handleColorN.apply(this, arguments); + buildPath(operatorList, fn, args, parsingText = false) { + var lastIndex = operatorList.length - 1; + + if (!args) { + args = []; + } + + if (lastIndex < 0 || operatorList.fnArray[lastIndex] !== _util.OPS.constructPath) { + if (parsingText) { + (0, _util.warn)(`Encountered path operator "${fn}" inside of a text object.`); + operatorList.addOp(_util.OPS.save, null); } - return handleColorN; - }(), - getOperatorList: function getOperatorList(_ref4) { - var _this7 = this; + operatorList.addOp(_util.OPS.constructPath, [[fn], args]); - var stream = _ref4.stream, - task = _ref4.task, - resources = _ref4.resources, - operatorList = _ref4.operatorList, - _ref4$initialState = _ref4.initialState, - initialState = _ref4$initialState === void 0 ? null : _ref4$initialState; - resources = resources || _primitives.Dict.empty; - initialState = initialState || new EvalState(); + if (parsingText) { + operatorList.addOp(_util.OPS.restore, null); + } + } else { + var opArgs = operatorList.argsArray[lastIndex]; + opArgs[0].push(fn); + Array.prototype.push.apply(opArgs[1], args); + } + } - if (!operatorList) { - throw new Error('getOperatorList: missing "operatorList" parameter'); + parseColorSpace({ + cs, + resources, + localColorSpaceCache + }) { + return _colorspace.ColorSpace.parseAsync({ + cs, + xref: this.xref, + resources, + pdfFunctionFactory: this._pdfFunctionFactory, + localColorSpaceCache + }).catch(reason => { + if (reason instanceof _util.AbortException) { + return null; } - var self = this; - var xref = this.xref; - var parsingText = false; - var imageCache = Object.create(null); + if (this.options.ignoreErrors) { + this.handler.send("UnsupportedFeature", { + featureId: _util.UNSUPPORTED_FEATURES.errorColorSpace + }); + (0, _util.warn)(`parseColorSpace - ignoring ColorSpace: "${reason}".`); + return null; + } - var xobjs = resources.get('XObject') || _primitives.Dict.empty; + throw reason; + }); + } - var patterns = resources.get('Pattern') || _primitives.Dict.empty; + async handleColorN(operatorList, fn, args, cs, patterns, resources, task, localColorSpaceCache) { + var patternName = args[args.length - 1]; + var pattern; - var stateManager = new StateManager(initialState); - var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager); - var timeSlotManager = new TimeSlotManager(); + if ((0, _primitives.isName)(patternName) && (pattern = patterns.get(patternName.name))) { + var dict = (0, _primitives.isStream)(pattern) ? pattern.dict : pattern; + var typeNum = dict.get("PatternType"); - function closePendingRestoreOPS(argument) { - for (var i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) { - operatorList.addOp(_util.OPS.restore, []); + if (typeNum === PatternType.TILING) { + var color = cs.base ? cs.base.getRgb(args, 0) : null; + return this.handleTilingType(fn, color, resources, pattern, dict, operatorList, task); + } else if (typeNum === PatternType.SHADING) { + var shading = dict.get("Shading"); + var matrix = dict.getArray("Matrix"); + pattern = _pattern.Pattern.parseShading(shading, matrix, this.xref, resources, this.handler, this._pdfFunctionFactory, localColorSpaceCache); + operatorList.addOp(fn, pattern.getIR()); + return undefined; + } + + throw new _util.FormatError(`Unknown PatternType: ${typeNum}`); + } + + throw new _util.FormatError(`Unknown PatternName: ${patternName}`); + } + + async parseMarkedContentProps(contentProperties, resources) { + let optionalContent; + + if ((0, _primitives.isName)(contentProperties)) { + const properties = resources.get("Properties"); + optionalContent = properties.get(contentProperties.name); + } else if ((0, _primitives.isDict)(contentProperties)) { + optionalContent = contentProperties; + } else { + throw new _util.FormatError("Optional content properties malformed."); + } + + const optionalContentType = optionalContent.get("Type").name; + + if (optionalContentType === "OCG") { + return { + type: optionalContentType, + id: optionalContent.objId + }; + } else if (optionalContentType === "OCMD") { + const optionalContentGroups = optionalContent.get("OCGs"); + + if (Array.isArray(optionalContentGroups) || (0, _primitives.isDict)(optionalContentGroups)) { + const groupIds = []; + + if (Array.isArray(optionalContentGroups)) { + optionalContent.get("OCGs").forEach(ocg => { + groupIds.push(ocg.toString()); + }); + } else { + groupIds.push(optionalContentGroups.objId); } - } - return new Promise(function promiseBody(resolve, reject) { - var next = function next(promise) { - promise.then(function () { - try { - promiseBody(resolve, reject); - } catch (ex) { - reject(ex); - } - }, reject); + let expression = null; + + if (optionalContent.get("VE")) { + expression = true; + } + + return { + type: optionalContentType, + ids: groupIds, + policy: (0, _primitives.isName)(optionalContent.get("P")) ? optionalContent.get("P").name : null, + expression }; + } else if ((0, _primitives.isRef)(optionalContentGroups)) { + return { + type: optionalContentType, + id: optionalContentGroups.toString() + }; + } + } - task.ensureNotTerminated(); - timeSlotManager.reset(); - var stop, - operation = {}, - i, - ii, - cs; + return null; + } - while (!(stop = timeSlotManager.check())) { - operation.args = null; + getOperatorList({ + stream, + task, + resources, + operatorList, + initialState = null + }) { + resources = resources || _primitives.Dict.empty; + initialState = initialState || new EvalState(); - if (!preprocessor.read(operation)) { - break; + if (!operatorList) { + throw new Error('getOperatorList: missing "operatorList" parameter'); + } + + var self = this; + var xref = this.xref; + let parsingText = false; + const localImageCache = new _image_utils.LocalImageCache(); + const localColorSpaceCache = new _image_utils.LocalColorSpaceCache(); + const localGStateCache = new _image_utils.LocalGStateCache(); + + var xobjs = resources.get("XObject") || _primitives.Dict.empty; + + var patterns = resources.get("Pattern") || _primitives.Dict.empty; + + var stateManager = new StateManager(initialState); + var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager); + var timeSlotManager = new TimeSlotManager(); + + function closePendingRestoreOPS(argument) { + for (var i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) { + operatorList.addOp(_util.OPS.restore, []); + } + } + + return new Promise(function promiseBody(resolve, reject) { + const next = function (promise) { + Promise.all([promise, operatorList.ready]).then(function () { + try { + promiseBody(resolve, reject); + } catch (ex) { + reject(ex); } + }, reject); + }; - var args = operation.args; - var fn = operation.fn; + task.ensureNotTerminated(); + timeSlotManager.reset(); + var stop, + operation = {}, + i, + ii, + cs, + name; - switch (fn | 0) { - case _util.OPS.paintXObject: - var name = args[0].name; + while (!(stop = timeSlotManager.check())) { + operation.args = null; - if (name && imageCache[name] !== undefined) { - operatorList.addOp(imageCache[name].fn, imageCache[name].args); + if (!preprocessor.read(operation)) { + break; + } + + var args = operation.args; + var fn = operation.fn; + + switch (fn | 0) { + case _util.OPS.paintXObject: + name = args[0].name; + + if (name) { + const localImage = localImageCache.getByName(name); + + if (localImage) { + operatorList.addOp(localImage.fn, localImage.args); args = null; continue; } - - next(new Promise(function (resolveXObject, rejectXObject) { - if (!name) { - throw new _util.FormatError('XObject must be referred to by name.'); - } - - var xobj = xobjs.get(name); - - if (!xobj) { - operatorList.addOp(fn, args); - resolveXObject(); - return; - } - - if (!(0, _primitives.isStream)(xobj)) { - throw new _util.FormatError('XObject should be a stream'); - } - - var type = xobj.dict.get('Subtype'); - - if (!(0, _primitives.isName)(type)) { - throw new _util.FormatError('XObject should have a Name subtype'); - } - - if (type.name === 'Form') { - stateManager.save(); - self.buildFormXObject(resources, xobj, null, operatorList, task, stateManager.state.clone()).then(function () { - stateManager.restore(); - resolveXObject(); - }, rejectXObject); - return; - } else if (type.name === 'Image') { - self.buildPaintImageXObject({ - resources: resources, - image: xobj, - operatorList: operatorList, - cacheKey: name, - imageCache: imageCache - }).then(resolveXObject, rejectXObject); - return; - } else if (type.name === 'PS') { - (0, _util.info)('Ignored XObject subtype PS'); - } else { - throw new _util.FormatError("Unhandled XObject subtype ".concat(type.name)); - } - - resolveXObject(); - })["catch"](function (reason) { - if (self.options.ignoreErrors) { - self.handler.send('UnsupportedFeature', { - featureId: _util.UNSUPPORTED_FEATURES.unknown - }); - (0, _util.warn)("getOperatorList - ignoring XObject: \"".concat(reason, "\".")); - return; - } - - throw reason; - })); - return; - - case _util.OPS.setFont: - var fontSize = args[1]; - next(self.handleSetFont(resources, args, null, operatorList, task, stateManager.state).then(function (loadedName) { - operatorList.addDependency(loadedName); - operatorList.addOp(_util.OPS.setFont, [loadedName, fontSize]); - })); - return; - - case _util.OPS.beginText: - parsingText = true; - break; - - case _util.OPS.endText: - parsingText = false; - break; - - case _util.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; - } - } - - next(self.buildPaintImageXObject({ - resources: resources, - image: args[0], - isInline: true, - operatorList: operatorList, - cacheKey: cacheKey, - imageCache: imageCache - })); - return; - - case _util.OPS.showText: - args[0] = self.handleText(args[0], stateManager.state); - break; - - case _util.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 ((0, _util.isString)(arrItem)) { - Array.prototype.push.apply(combinedGlyphs, self.handleText(arrItem, state)); - } else if ((0, _util.isNum)(arrItem)) { - combinedGlyphs.push(arrItem); - } - } - - args[0] = combinedGlyphs; - fn = _util.OPS.showText; - break; - - case _util.OPS.nextLineShowText: - operatorList.addOp(_util.OPS.nextLine); - args[0] = self.handleText(args[0], stateManager.state); - fn = _util.OPS.showText; - break; - - case _util.OPS.nextLineSetSpacingShowText: - operatorList.addOp(_util.OPS.nextLine); - operatorList.addOp(_util.OPS.setWordSpacing, [args.shift()]); - operatorList.addOp(_util.OPS.setCharSpacing, [args.shift()]); - args[0] = self.handleText(args[0], stateManager.state); - fn = _util.OPS.showText; - break; - - case _util.OPS.setTextRenderingMode: - stateManager.state.textRenderingMode = args[0]; - break; - - case _util.OPS.setFillColorSpace: - stateManager.state.fillColorSpace = _colorspace.ColorSpace.parse(args[0], xref, resources, self.pdfFunctionFactory); - continue; - - case _util.OPS.setStrokeColorSpace: - stateManager.state.strokeColorSpace = _colorspace.ColorSpace.parse(args[0], xref, resources, self.pdfFunctionFactory); - continue; - - case _util.OPS.setFillColor: - cs = stateManager.state.fillColorSpace; - args = cs.getRgb(args, 0); - fn = _util.OPS.setFillRGBColor; - break; - - case _util.OPS.setStrokeColor: - cs = stateManager.state.strokeColorSpace; - args = cs.getRgb(args, 0); - fn = _util.OPS.setStrokeRGBColor; - break; - - case _util.OPS.setFillGray: - stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.gray; - args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0); - fn = _util.OPS.setFillRGBColor; - break; - - case _util.OPS.setStrokeGray: - stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.gray; - args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0); - fn = _util.OPS.setStrokeRGBColor; - break; - - case _util.OPS.setFillCMYKColor: - stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.cmyk; - args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0); - fn = _util.OPS.setFillRGBColor; - break; - - case _util.OPS.setStrokeCMYKColor: - stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.cmyk; - args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0); - fn = _util.OPS.setStrokeRGBColor; - break; - - case _util.OPS.setFillRGBColor: - stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.rgb; - args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0); - break; - - case _util.OPS.setStrokeRGBColor: - stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.rgb; - args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0); - break; - - case _util.OPS.setFillColorN: - cs = stateManager.state.fillColorSpace; - - if (cs.name === 'Pattern') { - next(self.handleColorN(operatorList, _util.OPS.setFillColorN, args, cs, patterns, resources, task)); - return; - } - - args = cs.getRgb(args, 0); - fn = _util.OPS.setFillRGBColor; - break; - - case _util.OPS.setStrokeColorN: - cs = stateManager.state.strokeColorSpace; - - if (cs.name === 'Pattern') { - next(self.handleColorN(operatorList, _util.OPS.setStrokeColorN, args, cs, patterns, resources, task)); - return; - } - - args = cs.getRgb(args, 0); - fn = _util.OPS.setStrokeRGBColor; - break; - - case _util.OPS.shadingFill: - var shadingRes = resources.get('Shading'); - - if (!shadingRes) { - throw new _util.FormatError('No shading resource found'); - } - - var shading = shadingRes.get(args[0].name); - - if (!shading) { - throw new _util.FormatError('No shading object found'); - } - - var shadingFill = _pattern.Pattern.parseShading(shading, null, xref, resources, self.handler, self.pdfFunctionFactory); - - var patternIR = shadingFill.getIR(); - args = [patternIR]; - fn = _util.OPS.shadingFill; - break; - - case _util.OPS.setGState: - var dictName = args[0]; - var extGState = resources.get('ExtGState'); - - if (!(0, _primitives.isDict)(extGState) || !extGState.has(dictName.name)) { - break; - } - - var gState = extGState.get(dictName.name); - next(self.setGState(resources, gState, operatorList, task, stateManager)); - return; - - case _util.OPS.moveTo: - case _util.OPS.lineTo: - case _util.OPS.curveTo: - case _util.OPS.curveTo2: - case _util.OPS.curveTo3: - case _util.OPS.closePath: - case _util.OPS.rectangle: - self.buildPath(operatorList, fn, args, parsingText); - continue; - - case _util.OPS.markPoint: - case _util.OPS.markPointProps: - case _util.OPS.beginMarkedContent: - case _util.OPS.beginMarkedContentProps: - case _util.OPS.endMarkedContent: - case _util.OPS.beginCompat: - case _util.OPS.endCompat: - continue; - - default: - if (args !== null) { - for (i = 0, ii = args.length; i < ii; i++) { - if (args[i] instanceof _primitives.Dict) { - break; - } - } - - if (i < ii) { - (0, _util.warn)('getOperatorList - ignoring operator: ' + fn); - continue; - } - } - - } - - operatorList.addOp(fn, args); - } - - if (stop) { - next(deferred); - return; - } - - closePendingRestoreOPS(); - resolve(); - })["catch"](function (reason) { - if (_this7.options.ignoreErrors) { - _this7.handler.send('UnsupportedFeature', { - featureId: _util.UNSUPPORTED_FEATURES.unknown - }); - - (0, _util.warn)("getOperatorList - ignoring errors during \"".concat(task.name, "\" ") + "task: \"".concat(reason, "\".")); - closePendingRestoreOPS(); - return; - } - - throw reason; - }); - }, - getTextContent: function getTextContent(_ref5) { - var _this8 = this; - - var stream = _ref5.stream, - task = _ref5.task, - resources = _ref5.resources, - _ref5$stateManager = _ref5.stateManager, - stateManager = _ref5$stateManager === void 0 ? null : _ref5$stateManager, - _ref5$normalizeWhites = _ref5.normalizeWhitespace, - normalizeWhitespace = _ref5$normalizeWhites === void 0 ? false : _ref5$normalizeWhites, - _ref5$combineTextItem = _ref5.combineTextItems, - combineTextItems = _ref5$combineTextItem === void 0 ? false : _ref5$combineTextItem, - sink = _ref5.sink, - _ref5$seenStyles = _ref5.seenStyles, - seenStyles = _ref5$seenStyles === void 0 ? Object.create(null) : _ref5$seenStyles; - resources = resources || _primitives.Dict.empty; - 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; - var xobjs = null; - var skipEmptyXObjs = 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 seenStyles)) { - seenStyles[font.loadedName] = true; - 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.fontSize <= 1 && !(0, _util.isArrayEqual)(textState.fontMatrix, _util.FONT_IDENTITY_MATRIX)) { - var glyphHeight = font.bbox[3] - font.bbox[1]; - - if (glyphHeight > 0) { - tsm[3] *= glyphHeight * textState.fontMatrix[3]; - } - } - - var trm = _util.Util.transform(textState.ctm, _util.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 = (0, _bidi.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, resources).then(function (translated) { - textState.font = translated.font; - textState.fontMatrix = translated.font.fontMatrix || _util.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 = (0, _unicode.getNormalizedUnicodes)(); - - if (NormalizedUnicodes[glyphUnicode] !== undefined) { - glyphUnicode = NormalizedUnicodes[glyphUnicode]; - } - - glyphUnicode = (0, _unicode.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; - } - - if (!textContentItem.vertical) { - textContentItem.width *= textContentItem.textAdvanceScale; - } else { - textContentItem.height *= textContentItem.textAdvanceScale; - } - - textContent.items.push(runBidiTransform(textContentItem)); - textContentItem.initialized = false; - textContentItem.str.length = 0; - } - - function enqueueChunk() { - var length = textContent.items.length; - - if (length > 0) { - sink.enqueue(textContent, length); - textContent.items = []; - textContent.styles = Object.create(null); - } - } - - var timeSlotManager = new TimeSlotManager(); - return new Promise(function promiseBody(resolve, reject) { - var next = function next(promise) { - enqueueChunk(); - Promise.all([promise, sink.ready]).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 _util.OPS.setFont: - var fontNameArg = args[0].name, - fontSizeArg = args[1]; - - if (textState.font && fontNameArg === textState.fontName && fontSizeArg === textState.fontSize) { - break; + next(new Promise(function (resolveXObject, rejectXObject) { + if (!name) { + throw new _util.FormatError("XObject must be referred to by name."); } - flushTextContentItem(); - textState.fontName = fontNameArg; - textState.fontSize = fontSizeArg; - next(handleSetFont(fontNameArg, null)); - return; + let xobj = xobjs.getRaw(name); - case _util.OPS.setTextRise: - flushTextContentItem(); - textState.textRise = args[0]; - break; + if (xobj instanceof _primitives.Ref) { + const localImage = localImageCache.getByRef(xobj); - case _util.OPS.setHScale: - flushTextContentItem(); - textState.textHScale = args[0] / 100; - break; - - case _util.OPS.setLeading: - flushTextContentItem(); - textState.leading = args[0]; - break; - - case _util.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 _util.OPS.setLeadingMoveText: - flushTextContentItem(); - textState.leading = -args[1]; - textState.translateTextLineMatrix(args[0], args[1]); - textState.textMatrix = textState.textLineMatrix.slice(); - break; - - case _util.OPS.nextLine: - flushTextContentItem(); - textState.carriageReturn(); - break; - - case _util.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 _util.OPS.setCharSpacing: - textState.charSpacing = args[0]; - break; - - case _util.OPS.setWordSpacing: - textState.wordSpacing = args[0]; - break; - - case _util.OPS.beginText: - flushTextContentItem(); - textState.textMatrix = _util.IDENTITY_MATRIX.slice(); - textState.textLineMatrix = _util.IDENTITY_MATRIX.slice(); - break; - - case _util.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 ((0, _util.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 _util.OPS.showText: - buildTextContentItem(args[0]); - break; - - case _util.OPS.nextLineShowText: - flushTextContentItem(); - textState.carriageReturn(); - buildTextContentItem(args[0]); - break; - - case _util.OPS.nextLineSetSpacingShowText: - flushTextContentItem(); - textState.wordSpacing = args[0]; - textState.charSpacing = args[1]; - textState.carriageReturn(); - buildTextContentItem(args[2]); - break; - - case _util.OPS.paintXObject: - flushTextContentItem(); - - if (!xobjs) { - xobjs = resources.get('XObject') || _primitives.Dict.empty; - } - - var name = args[0].name; - - if (name && skipEmptyXObjs[name] !== undefined) { - break; - } - - next(new Promise(function (resolveXObject, rejectXObject) { - if (!name) { - throw new _util.FormatError('XObject must be referred to by name.'); - } - - var xobj = xobjs.get(name); - - if (!xobj) { + if (localImage) { + operatorList.addOp(localImage.fn, localImage.args); resolveXObject(); return; } - if (!(0, _primitives.isStream)(xobj)) { - throw new _util.FormatError('XObject should be a stream'); - } + const globalImage = self.globalImageCache.getData(xobj, self.pageIndex); - var type = xobj.dict.get('Subtype'); - - if (!(0, _primitives.isName)(type)) { - throw new _util.FormatError('XObject should have a Name subtype'); - } - - if (type.name !== 'Form') { - skipEmptyXObjs[name] = true; + if (globalImage) { + operatorList.addDependency(globalImage.objId); + operatorList.addOp(globalImage.fn, globalImage.args); resolveXObject(); return; } - var currentState = stateManager.state.clone(); - var xObjStateManager = new StateManager(currentState); - var matrix = xobj.dict.getArray('Matrix'); + xobj = xref.fetch(xobj); + } - if (Array.isArray(matrix) && matrix.length === 6) { - xObjStateManager.transform(matrix); - } + if (!(0, _primitives.isStream)(xobj)) { + throw new _util.FormatError("XObject should be a stream"); + } - enqueueChunk(); - var sinkWrapper = { - enqueueInvoked: false, - enqueue: function enqueue(chunk, size) { - this.enqueueInvoked = true; - sink.enqueue(chunk, size); - }, + const type = xobj.dict.get("Subtype"); - get desiredSize() { - return sink.desiredSize; - }, - - get ready() { - return sink.ready; - } - - }; - self.getTextContent({ - stream: xobj, - task: task, - resources: xobj.dict.get('Resources') || resources, - stateManager: xObjStateManager, - normalizeWhitespace: normalizeWhitespace, - combineTextItems: combineTextItems, - sink: sinkWrapper, - seenStyles: seenStyles - }).then(function () { - if (!sinkWrapper.enqueueInvoked) { - skipEmptyXObjs[name] = true; - } + if (!(0, _primitives.isName)(type)) { + throw new _util.FormatError("XObject should have a Name subtype"); + } + if (type.name === "Form") { + stateManager.save(); + self.buildFormXObject(resources, xobj, null, operatorList, task, stateManager.state.clone(), localColorSpaceCache).then(function () { + stateManager.restore(); resolveXObject(); }, rejectXObject); - })["catch"](function (reason) { + return; + } else if (type.name === "Image") { + self.buildPaintImageXObject({ + resources, + image: xobj, + operatorList, + cacheKey: name, + localImageCache, + localColorSpaceCache + }).then(resolveXObject, rejectXObject); + return; + } else if (type.name === "PS") { + (0, _util.info)("Ignored XObject subtype PS"); + } else { + throw new _util.FormatError(`Unhandled XObject subtype ${type.name}`); + } + + resolveXObject(); + }).catch(function (reason) { + if (reason instanceof _util.AbortException) { + return; + } + + if (self.options.ignoreErrors) { + self.handler.send("UnsupportedFeature", { + featureId: _util.UNSUPPORTED_FEATURES.errorXObject + }); + (0, _util.warn)(`getOperatorList - ignoring XObject: "${reason}".`); + return; + } + + throw reason; + })); + return; + + case _util.OPS.setFont: + var fontSize = args[1]; + next(self.handleSetFont(resources, args, null, operatorList, task, stateManager.state).then(function (loadedName) { + operatorList.addDependency(loadedName); + operatorList.addOp(_util.OPS.setFont, [loadedName, fontSize]); + })); + return; + + case _util.OPS.beginText: + parsingText = true; + break; + + case _util.OPS.endText: + parsingText = false; + break; + + case _util.OPS.endInlineImage: + var cacheKey = args[0].cacheKey; + + if (cacheKey) { + const localImage = localImageCache.getByName(cacheKey); + + if (localImage) { + operatorList.addOp(localImage.fn, localImage.args); + args = null; + continue; + } + } + + next(self.buildPaintImageXObject({ + resources, + image: args[0], + isInline: true, + operatorList, + cacheKey, + localImageCache, + localColorSpaceCache + })); + return; + + case _util.OPS.showText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + + args[0] = self.handleText(args[0], stateManager.state); + break; + + case _util.OPS.showSpacedText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + + 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 ((0, _util.isString)(arrItem)) { + Array.prototype.push.apply(combinedGlyphs, self.handleText(arrItem, state)); + } else if ((0, _util.isNum)(arrItem)) { + combinedGlyphs.push(arrItem); + } + } + + args[0] = combinedGlyphs; + fn = _util.OPS.showText; + break; + + case _util.OPS.nextLineShowText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + + operatorList.addOp(_util.OPS.nextLine); + args[0] = self.handleText(args[0], stateManager.state); + fn = _util.OPS.showText; + break; + + case _util.OPS.nextLineSetSpacingShowText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + + operatorList.addOp(_util.OPS.nextLine); + operatorList.addOp(_util.OPS.setWordSpacing, [args.shift()]); + operatorList.addOp(_util.OPS.setCharSpacing, [args.shift()]); + args[0] = self.handleText(args[0], stateManager.state); + fn = _util.OPS.showText; + break; + + case _util.OPS.setTextRenderingMode: + stateManager.state.textRenderingMode = args[0]; + break; + + case _util.OPS.setFillColorSpace: + { + const cachedColorSpace = _colorspace.ColorSpace.getCached(args[0], xref, localColorSpaceCache); + + if (cachedColorSpace) { + stateManager.state.fillColorSpace = cachedColorSpace; + continue; + } + + next(self.parseColorSpace({ + cs: args[0], + resources, + localColorSpaceCache + }).then(function (colorSpace) { + if (colorSpace) { + stateManager.state.fillColorSpace = colorSpace; + } + })); + return; + } + + case _util.OPS.setStrokeColorSpace: + { + const cachedColorSpace = _colorspace.ColorSpace.getCached(args[0], xref, localColorSpaceCache); + + if (cachedColorSpace) { + stateManager.state.strokeColorSpace = cachedColorSpace; + continue; + } + + next(self.parseColorSpace({ + cs: args[0], + resources, + localColorSpaceCache + }).then(function (colorSpace) { + if (colorSpace) { + stateManager.state.strokeColorSpace = colorSpace; + } + })); + return; + } + + case _util.OPS.setFillColor: + cs = stateManager.state.fillColorSpace; + args = cs.getRgb(args, 0); + fn = _util.OPS.setFillRGBColor; + break; + + case _util.OPS.setStrokeColor: + cs = stateManager.state.strokeColorSpace; + args = cs.getRgb(args, 0); + fn = _util.OPS.setStrokeRGBColor; + break; + + case _util.OPS.setFillGray: + stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.gray; + args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0); + fn = _util.OPS.setFillRGBColor; + break; + + case _util.OPS.setStrokeGray: + stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.gray; + args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0); + fn = _util.OPS.setStrokeRGBColor; + break; + + case _util.OPS.setFillCMYKColor: + stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.cmyk; + args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0); + fn = _util.OPS.setFillRGBColor; + break; + + case _util.OPS.setStrokeCMYKColor: + stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.cmyk; + args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0); + fn = _util.OPS.setStrokeRGBColor; + break; + + case _util.OPS.setFillRGBColor: + stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.rgb; + args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0); + break; + + case _util.OPS.setStrokeRGBColor: + stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.rgb; + args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0); + break; + + case _util.OPS.setFillColorN: + cs = stateManager.state.fillColorSpace; + + if (cs.name === "Pattern") { + next(self.handleColorN(operatorList, _util.OPS.setFillColorN, args, cs, patterns, resources, task, localColorSpaceCache)); + return; + } + + args = cs.getRgb(args, 0); + fn = _util.OPS.setFillRGBColor; + break; + + case _util.OPS.setStrokeColorN: + cs = stateManager.state.strokeColorSpace; + + if (cs.name === "Pattern") { + next(self.handleColorN(operatorList, _util.OPS.setStrokeColorN, args, cs, patterns, resources, task, localColorSpaceCache)); + return; + } + + args = cs.getRgb(args, 0); + fn = _util.OPS.setStrokeRGBColor; + break; + + case _util.OPS.shadingFill: + var shadingRes = resources.get("Shading"); + + if (!shadingRes) { + throw new _util.FormatError("No shading resource found"); + } + + var shading = shadingRes.get(args[0].name); + + if (!shading) { + throw new _util.FormatError("No shading object found"); + } + + var shadingFill = _pattern.Pattern.parseShading(shading, null, xref, resources, self.handler, self._pdfFunctionFactory, localColorSpaceCache); + + var patternIR = shadingFill.getIR(); + args = [patternIR]; + fn = _util.OPS.shadingFill; + break; + + case _util.OPS.setGState: + name = args[0].name; + + if (name) { + const localGStateObj = localGStateCache.getByName(name); + + if (localGStateObj) { + if (localGStateObj.length > 0) { + operatorList.addOp(_util.OPS.setGState, [localGStateObj]); + } + + args = null; + continue; + } + } + + next(new Promise(function (resolveGState, rejectGState) { + if (!name) { + throw new _util.FormatError("GState must be referred to by name."); + } + + const extGState = resources.get("ExtGState"); + + if (!(extGState instanceof _primitives.Dict)) { + throw new _util.FormatError("ExtGState should be a dictionary."); + } + + const gState = extGState.get(name); + + if (!(gState instanceof _primitives.Dict)) { + throw new _util.FormatError("GState should be a dictionary."); + } + + self.setGState({ + resources, + gState, + operatorList, + cacheKey: name, + task, + stateManager, + localGStateCache, + localColorSpaceCache + }).then(resolveGState, rejectGState); + }).catch(function (reason) { + if (reason instanceof _util.AbortException) { + return; + } + + if (self.options.ignoreErrors) { + self.handler.send("UnsupportedFeature", { + featureId: _util.UNSUPPORTED_FEATURES.errorExtGState + }); + (0, _util.warn)(`getOperatorList - ignoring ExtGState: "${reason}".`); + return; + } + + throw reason; + })); + return; + + case _util.OPS.moveTo: + case _util.OPS.lineTo: + case _util.OPS.curveTo: + case _util.OPS.curveTo2: + case _util.OPS.curveTo3: + case _util.OPS.closePath: + case _util.OPS.rectangle: + self.buildPath(operatorList, fn, args, parsingText); + continue; + + case _util.OPS.markPoint: + case _util.OPS.markPointProps: + case _util.OPS.beginCompat: + case _util.OPS.endCompat: + continue; + + case _util.OPS.beginMarkedContentProps: + if (!(0, _primitives.isName)(args[0])) { + (0, _util.warn)(`Expected name for beginMarkedContentProps arg0=${args[0]}`); + continue; + } + + if (args[0].name === "OC") { + next(self.parseMarkedContentProps(args[1], resources).then(data => { + operatorList.addOp(_util.OPS.beginMarkedContentProps, ["OC", data]); + }).catch(reason => { if (reason instanceof _util.AbortException) { return; } if (self.options.ignoreErrors) { - (0, _util.warn)("getTextContent - ignoring XObject: \"".concat(reason, "\".")); + self.handler.send("UnsupportedFeature", { + featureId: _util.UNSUPPORTED_FEATURES.errorMarkedContent + }); + (0, _util.warn)(`getOperatorList - ignoring beginMarkedContentProps: "${reason}".`); return; } throw reason; })); return; + } - case _util.OPS.setGState: - flushTextContentItem(); - var dictName = args[0]; - var extGState = resources.get('ExtGState'); + args = [args[0].name]; + break; - if (!(0, _primitives.isDict)(extGState) || !(0, _primitives.isName)(dictName)) { - break; + case _util.OPS.beginMarkedContent: + case _util.OPS.endMarkedContent: + default: + if (args !== null) { + for (i = 0, ii = args.length; i < ii; i++) { + if (args[i] instanceof _primitives.Dict) { + break; + } } - var gState = extGState.get(dictName.name); + if (i < ii) { + (0, _util.warn)("getOperatorList - ignoring operator: " + fn); + continue; + } + } - if (!(0, _primitives.isDict)(gState)) { - break; + } + + operatorList.addOp(fn, args); + } + + if (stop) { + next(deferred); + return; + } + + closePendingRestoreOPS(); + resolve(); + }).catch(reason => { + if (reason instanceof _util.AbortException) { + return; + } + + if (this.options.ignoreErrors) { + this.handler.send("UnsupportedFeature", { + featureId: _util.UNSUPPORTED_FEATURES.errorOperatorList + }); + (0, _util.warn)(`getOperatorList - ignoring errors during "${task.name}" ` + `task: "${reason}".`); + closePendingRestoreOPS(); + return; + } + + throw reason; + }); + } + + getTextContent({ + stream, + task, + resources, + stateManager = null, + normalizeWhitespace = false, + combineTextItems = false, + sink, + seenStyles = Object.create(null) + }) { + resources = resources || _primitives.Dict.empty; + 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; + var xobjs = null; + const emptyXObjectCache = new _image_utils.LocalImageCache(); + const emptyGStateCache = new _image_utils.LocalGStateCache(); + var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager); + var textState; + + function ensureTextContentItem() { + if (textContentItem.initialized) { + return textContentItem; + } + + var font = textState.font; + + if (!(font.loadedName in seenStyles)) { + seenStyles[font.loadedName] = true; + 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.fontSize <= 1 && !(0, _util.isArrayEqual)(textState.fontMatrix, _util.FONT_IDENTITY_MATRIX)) { + const glyphHeight = font.bbox[3] - font.bbox[1]; + + if (glyphHeight > 0) { + tsm[3] *= glyphHeight * textState.fontMatrix[3]; + } + } + + var trm = _util.Util.transform(textState.ctm, _util.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 = (0, _bidi.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, resources).then(function (translated) { + textState.font = translated.font; + textState.fontMatrix = translated.font.fontMatrix || _util.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 = (0, _unicode.getNormalizedUnicodes)(); + + if (NormalizedUnicodes[glyphUnicode] !== undefined) { + glyphUnicode = NormalizedUnicodes[glyphUnicode]; + } + + glyphUnicode = (0, _unicode.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; + } + + if (!textContentItem.vertical) { + textContentItem.width *= textContentItem.textAdvanceScale; + } else { + textContentItem.height *= textContentItem.textAdvanceScale; + } + + textContent.items.push(runBidiTransform(textContentItem)); + textContentItem.initialized = false; + textContentItem.str.length = 0; + } + + function enqueueChunk() { + const length = textContent.items.length; + + if (length > 0) { + sink.enqueue(textContent, length); + textContent.items = []; + textContent.styles = Object.create(null); + } + } + + var timeSlotManager = new TimeSlotManager(); + return new Promise(function promiseBody(resolve, reject) { + const next = function (promise) { + enqueueChunk(); + Promise.all([promise, sink.ready]).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 _util.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 _util.OPS.setTextRise: + flushTextContentItem(); + textState.textRise = args[0]; + break; + + case _util.OPS.setHScale: + flushTextContentItem(); + textState.textHScale = args[0] / 100; + break; + + case _util.OPS.setLeading: + flushTextContentItem(); + textState.leading = args[0]; + break; + + case _util.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 _util.OPS.setLeadingMoveText: + flushTextContentItem(); + textState.leading = -args[1]; + textState.translateTextLineMatrix(args[0], args[1]); + textState.textMatrix = textState.textLineMatrix.slice(); + break; + + case _util.OPS.nextLine: + flushTextContentItem(); + textState.carriageReturn(); + break; + + case _util.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 _util.OPS.setCharSpacing: + textState.charSpacing = args[0]; + break; + + case _util.OPS.setWordSpacing: + textState.wordSpacing = args[0]; + break; + + case _util.OPS.beginText: + flushTextContentItem(); + textState.textMatrix = _util.IDENTITY_MATRIX.slice(); + textState.textLineMatrix = _util.IDENTITY_MATRIX.slice(); + break; + + case _util.OPS.showSpacedText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + + 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 ((0, _util.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 _util.OPS.showText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + + buildTextContentItem(args[0]); + break; + + case _util.OPS.nextLineShowText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + + flushTextContentItem(); + textState.carriageReturn(); + buildTextContentItem(args[0]); + break; + + case _util.OPS.nextLineSetSpacingShowText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + + flushTextContentItem(); + textState.wordSpacing = args[0]; + textState.charSpacing = args[1]; + textState.carriageReturn(); + buildTextContentItem(args[2]); + break; + + case _util.OPS.paintXObject: + flushTextContentItem(); + + if (!xobjs) { + xobjs = resources.get("XObject") || _primitives.Dict.empty; + } + + var name = args[0].name; + + if (name && emptyXObjectCache.getByName(name)) { + break; + } + + next(new Promise(function (resolveXObject, rejectXObject) { + if (!name) { + throw new _util.FormatError("XObject must be referred to by name."); } - var gStateFont = gState.get('Font'); + let xobj = xobjs.getRaw(name); - if (gStateFont) { - textState.fontName = null; - textState.fontSize = gStateFont[1]; - next(handleSetFont(null, gStateFont[0])); + if (xobj instanceof _primitives.Ref) { + if (emptyXObjectCache.getByRef(xobj)) { + resolveXObject(); + return; + } + + xobj = xref.fetch(xobj); + } + + if (!(0, _primitives.isStream)(xobj)) { + throw new _util.FormatError("XObject should be a stream"); + } + + const type = xobj.dict.get("Subtype"); + + if (!(0, _primitives.isName)(type)) { + throw new _util.FormatError("XObject should have a Name subtype"); + } + + if (type.name !== "Form") { + emptyXObjectCache.set(name, xobj.dict.objId, true); + resolveXObject(); return; } - break; - } + const currentState = stateManager.state.clone(); + const xObjStateManager = new StateManager(currentState); + const matrix = xobj.dict.getArray("Matrix"); - if (textContent.items.length >= sink.desiredSize) { - stop = true; - break; - } - } - - if (stop) { - next(deferred); - return; - } - - flushTextContentItem(); - enqueueChunk(); - resolve(); - })["catch"](function (reason) { - if (reason instanceof _util.AbortException) { - return; - } - - if (_this8.options.ignoreErrors) { - (0, _util.warn)("getTextContent - ignoring errors during \"".concat(task.name, "\" ") + "task: \"".concat(reason, "\".")); - flushTextContentItem(); - enqueueChunk(); - return; - } - - throw reason; - }); - }, - extractDataStructures: function PartialEvaluator_extractDataStructures(dict, baseDict, properties) { - var _this9 = this; - - var xref = this.xref, - cidToGidBytes; - 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 ((0, _primitives.isDict)(cidSystemInfo)) { - properties.cidSystemInfo = { - registry: (0, _util.stringToPDFString)(cidSystemInfo.get('Registry')), - ordering: (0, _util.stringToPDFString)(cidSystemInfo.get('Ordering')), - supplement: cidSystemInfo.get('Supplement') - }; - } - - var cidToGidMap = dict.get('CIDToGIDMap'); - - if ((0, _primitives.isStream)(cidToGidMap)) { - cidToGidBytes = cidToGidMap.getBytes(); - } - } - - var differences = []; - var baseEncodingName = null; - var encoding; - - if (dict.has('Encoding')) { - encoding = dict.get('Encoding'); - - if ((0, _primitives.isDict)(encoding)) { - baseEncodingName = encoding.get('BaseEncoding'); - baseEncodingName = (0, _primitives.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 ((0, _util.isNum)(data)) { - index = data; - } else if ((0, _primitives.isName)(data)) { - differences[index++] = data.name; - } else { - throw new _util.FormatError("Invalid entry in 'Differences' array: ".concat(data)); - } - } - } - } else if ((0, _primitives.isName)(encoding)) { - baseEncodingName = encoding.name; - } else { - throw new _util.FormatError('Encoding is not a Name nor a Dict'); - } - - if (baseEncodingName !== 'MacRomanEncoding' && baseEncodingName !== 'MacExpertEncoding' && baseEncodingName !== 'WinAnsiEncoding') { - baseEncodingName = null; - } - } - - if (baseEncodingName) { - properties.defaultEncoding = (0, _encodings.getEncoding)(baseEncodingName).slice(); - } else { - var isSymbolicFont = !!(properties.flags & _fonts.FontFlags.Symbolic); - var isNonsymbolicFont = !!(properties.flags & _fonts.FontFlags.Nonsymbolic); - encoding = _encodings.StandardEncoding; - - if (properties.type === 'TrueType' && !isNonsymbolicFont) { - encoding = _encodings.WinAnsiEncoding; - } - - if (isSymbolicFont) { - encoding = _encodings.MacRomanEncoding; - - if (!properties.file) { - if (/Symbol/i.test(properties.name)) { - encoding = _encodings.SymbolSetEncoding; - } else if (/Dingbats/i.test(properties.name)) { - encoding = _encodings.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 _this9.buildToUnicode(properties); - }).then(function (toUnicode) { - properties.toUnicode = toUnicode; - - if (cidToGidBytes) { - properties.cidToGidMap = _this9.readCidToGidMap(cidToGidBytes, toUnicode); - } - - return properties; - }); - }, - _buildSimpleFontToUnicode: function _buildSimpleFontToUnicode(properties) { - (0, _util.assert)(!properties.composite, 'Must be a simple font.'); - var toUnicode = [], - charcode, - glyphName; - 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 = (0, _glyphlist.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.substring(1), 16); + if (Array.isArray(matrix) && matrix.length === 6) { + xObjStateManager.transform(matrix); } - break; + enqueueChunk(); + const sinkWrapper = { + enqueueInvoked: false, - case 'g': - if (glyphName.length === 5) { - code = parseInt(glyphName.substring(1), 16); - } + enqueue(chunk, size) { + this.enqueueInvoked = true; + sink.enqueue(chunk, size); + }, - break; + get desiredSize() { + return sink.desiredSize; + }, - case 'C': - case 'c': - if (glyphName.length >= 3) { - code = +glyphName.substring(1); - } - - break; - - default: - var unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap); - - if (unicode !== -1) { - code = unicode; - } - - } - - if (code) { - if (baseEncodingName && code === +charcode) { - var baseEncoding = (0, _encodings.getEncoding)(baseEncodingName); - - if (baseEncoding && (glyphName = baseEncoding[charcode])) { - toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]); - continue; - } - } - - toUnicode[charcode] = String.fromCodePoint(code); - } - - continue; - } - - toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]); - } - - return new _fonts.ToUnicodeMap(toUnicode); - }, - buildToUnicode: function buildToUnicode(properties) { - properties.hasIncludedToUnicodeMap = !!properties.toUnicode && properties.toUnicode.length > 0; - - if (properties.hasIncludedToUnicodeMap) { - if (!properties.composite && properties.hasEncoding) { - properties.fallbackToUnicode = this._buildSimpleFontToUnicode(properties); - } - - return Promise.resolve(properties.toUnicode); - } - - if (!properties.composite) { - return Promise.resolve(this._buildSimpleFontToUnicode(properties)); - } - - if (properties.composite && (properties.cMap.builtInCMap && !(properties.cMap instanceof _cmap.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 = _primitives.Name.get(registry + '-' + ordering + '-UCS2'); - - return _cmap.CMapFactory.create({ - encoding: ucs2CMapName, - fetchBuiltInCMap: this.fetchBuiltInCMap, - useCMap: null - }).then(function (ucs2CMap) { - var cMap = properties.cMap; - var toUnicode = []; - cMap.forEach(function (charcode, cid) { - if (cid > 0xffff) { - throw new _util.FormatError('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 _fonts.ToUnicodeMap(toUnicode); - }); - } - - return Promise.resolve(new _fonts.IdentityToUnicodeMap(properties.firstChar, properties.lastChar)); - }, - readToUnicode: function PartialEvaluator_readToUnicode(toUnicode) { - var cmapObj = toUnicode; - - if ((0, _primitives.isName)(cmapObj)) { - return _cmap.CMapFactory.create({ - encoding: cmapObj, - fetchBuiltInCMap: this.fetchBuiltInCMap, - useCMap: null - }).then(function (cmap) { - if (cmap instanceof _cmap.IdentityCMap) { - return new _fonts.IdentityToUnicodeMap(0, 0xFFFF); - } - - return new _fonts.ToUnicodeMap(cmap.getMap()); - }); - } else if ((0, _primitives.isStream)(cmapObj)) { - return _cmap.CMapFactory.create({ - encoding: cmapObj, - fetchBuiltInCMap: this.fetchBuiltInCMap, - useCMap: null - }).then(function (cmap) { - if (cmap instanceof _cmap.IdentityCMap) { - return new _fonts.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.fromCodePoint.apply(String, str); - }); - return new _fonts.ToUnicodeMap(map); - }); - } - - return Promise.resolve(null); - }, - readCidToGidMap: function readCidToGidMap(glyphsData, toUnicode) { - var result = []; - - for (var j = 0, jj = glyphsData.length; j < jj; j++) { - var glyphID = glyphsData[j++] << 8 | glyphsData[j]; - var code = j >> 1; - - if (glyphID === 0 && !toUnicode.has(code)) { - continue; - } - - result[code] = glyphID; - } - - return result; - }, - extractWidths: function PartialEvaluator_extractWidths(dict, descriptor, properties) { - var xref = this.xref; - var glyphsWidths = []; - var defaultWidth = 0; - var glyphsVMetrics = []; - var defaultVMetrics; - var i, ii, j, jj, start, code, widths; - - if (properties.composite) { - defaultWidth = dict.has('DW') ? 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 (Array.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 (Array.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])]; + get ready() { + return sink.ready; } - } else { - var vmetric = [xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i])]; - for (j = start; j <= code; j++) { - glyphsVMetrics[j] = vmetric; + }; + self.getTextContent({ + stream: xobj, + task, + resources: xobj.dict.get("Resources") || resources, + stateManager: xObjStateManager, + normalizeWhitespace, + combineTextItems, + sink: sinkWrapper, + seenStyles + }).then(function () { + if (!sinkWrapper.enqueueInvoked) { + emptyXObjectCache.set(name, xobj.dict.objId, true); } + + resolveXObject(); + }, rejectXObject); + }).catch(function (reason) { + if (reason instanceof _util.AbortException) { + return; } + + if (self.options.ignoreErrors) { + (0, _util.warn)(`getTextContent - ignoring XObject: "${reason}".`); + return; + } + + throw reason; + })); + return; + + case _util.OPS.setGState: + name = args[0].name; + + if (name && emptyGStateCache.getByName(name)) { + break; } - } - } - } else { - var firstChar = properties.firstChar; - widths = dict.get('Widths'); - if (widths) { - j = firstChar; + next(new Promise(function (resolveGState, rejectGState) { + if (!name) { + throw new _util.FormatError("GState must be referred to by name."); + } - for (i = 0, ii = widths.length; i < ii; i++) { - glyphsWidths[j++] = xref.fetchIfRef(widths[i]); - } + const extGState = resources.get("ExtGState"); - defaultWidth = parseFloat(descriptor.get('MissingWidth')) || 0; - } else { - var baseFontName = dict.get('BaseFont'); + if (!(extGState instanceof _primitives.Dict)) { + throw new _util.FormatError("ExtGState should be a dictionary."); + } - if ((0, _primitives.isName)(baseFontName)) { - var metrics = this.getBaseFontMetrics(baseFontName.name); - glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties); - defaultWidth = metrics.defaultWidth; - } - } - } + const gState = extGState.get(name); - var isMonospace = true; - var firstWidth = defaultWidth; + if (!(gState instanceof _primitives.Dict)) { + throw new _util.FormatError("GState should be a dictionary."); + } - for (var glyph in glyphsWidths) { - var glyphWidth = glyphsWidths[glyph]; + const gStateFont = gState.get("Font"); - if (!glyphWidth) { - continue; + if (!gStateFont) { + emptyGStateCache.set(name, gState.objId, true); + resolveGState(); + return; + } + + flushTextContentItem(); + textState.fontName = null; + textState.fontSize = gStateFont[1]; + handleSetFont(null, gStateFont[0]).then(resolveGState, rejectGState); + }).catch(function (reason) { + if (reason instanceof _util.AbortException) { + return; + } + + if (self.options.ignoreErrors) { + (0, _util.warn)(`getTextContent - ignoring ExtGState: "${reason}".`); + return; + } + + throw reason; + })); + return; } - if (!firstWidth) { - firstWidth = glyphWidth; - continue; - } - - if (firstWidth !== glyphWidth) { - isMonospace = false; + if (textContent.items.length >= sink.desiredSize) { + stop = true; break; } } - if (isMonospace) { - properties.flags |= _fonts.FontFlags.FixedPitch; + if (stop) { + next(deferred); + return; } - 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 (0, _standard_fonts.getSerifFonts)() || fontNameWoStyle.search(/serif/gi) !== -1; - }, - getBaseFontMetrics: function PartialEvaluator_getBaseFontMetrics(name) { - var defaultWidth = 0; - var widths = []; - var monospace = false; - var stdFontMap = (0, _standard_fonts.getStdFontMap)(); - var lookupName = stdFontMap[name] || name; - var Metrics = (0, _metrics.getMetrics)(); - - if (!(lookupName in Metrics)) { - if (this.isSerifFont(name)) { - lookupName = 'Times-Roman'; - } else { - lookupName = 'Helvetica'; - } + flushTextContentItem(); + enqueueChunk(); + resolve(); + }).catch(reason => { + if (reason instanceof _util.AbortException) { + return; } - var glyphWidths = Metrics[lookupName]; - - if ((0, _util.isNum)(glyphWidths)) { - defaultWidth = glyphWidths; - monospace = true; - } else { - widths = glyphWidths(); + if (this.options.ignoreErrors) { + (0, _util.warn)(`getTextContent - ignoring errors during "${task.name}" ` + `task: "${reason}".`); + flushTextContentItem(); + enqueueChunk(); + return; } - 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; + throw reason; + }); + } - for (var charCode = 0; charCode < 256; charCode++) { - if (charCode in differences && widthsByGlyphName[differences[charCode]]) { - widths[charCode] = widthsByGlyphName[differences[charCode]]; - continue; - } + extractDataStructures(dict, baseDict, properties) { + const xref = this.xref; + let cidToGidBytes; + var toUnicode = dict.get("ToUnicode") || baseDict.get("ToUnicode"); + var toUnicodePromise = toUnicode ? this.readToUnicode(toUnicode) : Promise.resolve(undefined); - if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) { - widths[charCode] = widthsByGlyphName[encoding[charCode]]; - continue; - } + if (properties.composite) { + var cidSystemInfo = dict.get("CIDSystemInfo"); + + if ((0, _primitives.isDict)(cidSystemInfo)) { + properties.cidSystemInfo = { + registry: (0, _util.stringToPDFString)(cidSystemInfo.get("Registry")), + ordering: (0, _util.stringToPDFString)(cidSystemInfo.get("Ordering")), + supplement: cidSystemInfo.get("Supplement") + }; } - return widths; - }, - preEvaluateFont: function PartialEvaluator_preEvaluateFont(dict) { - var baseDict = dict; - var type = dict.get('Subtype'); + var cidToGidMap = dict.get("CIDToGIDMap"); - if (!(0, _primitives.isName)(type)) { - throw new _util.FormatError('invalid font Subtype'); + if ((0, _primitives.isStream)(cidToGidMap)) { + cidToGidBytes = cidToGidMap.getBytes(); } + } - var composite = false; - var uint8array; + var differences = []; + var baseEncodingName = null; + var encoding; - if (type.name === 'Type0') { - var df = dict.get('DescendantFonts'); + if (dict.has("Encoding")) { + encoding = dict.get("Encoding"); - if (!df) { - throw new _util.FormatError('Descendant fonts are not specified'); - } + if ((0, _primitives.isDict)(encoding)) { + baseEncodingName = encoding.get("BaseEncoding"); + baseEncodingName = (0, _primitives.isName)(baseEncodingName) ? baseEncodingName.name : null; - dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df; - type = dict.get('Subtype'); + if (encoding.has("Differences")) { + var diffEncoding = encoding.get("Differences"); + var index = 0; - if (!(0, _primitives.isName)(type)) { - throw new _util.FormatError('invalid font Subtype'); - } + for (var j = 0, jj = diffEncoding.length; j < jj; j++) { + var data = xref.fetchIfRef(diffEncoding[j]); - composite = true; - } - - var descriptor = dict.get('FontDescriptor'); - - if (descriptor) { - var hash = new _murmurhash.MurmurHash3_64(); - var encoding = baseDict.getRaw('Encoding'); - - if ((0, _primitives.isName)(encoding)) { - hash.update(encoding.name); - } else if ((0, _primitives.isRef)(encoding)) { - hash.update(encoding.toString()); - } else if ((0, _primitives.isDict)(encoding)) { - var keys = encoding.getKeys(); - - for (var i = 0, ii = keys.length; i < ii; i++) { - var entry = encoding.getRaw(keys[i]); - - if ((0, _primitives.isName)(entry)) { - hash.update(entry.name); - } else if ((0, _primitives.isRef)(entry)) { - hash.update(entry.toString()); - } else if (Array.isArray(entry)) { - var diffLength = entry.length, - diffBuf = new Array(diffLength); - - for (var j = 0; j < diffLength; j++) { - var diffEntry = entry[j]; - - if ((0, _primitives.isName)(diffEntry)) { - diffBuf[j] = diffEntry.name; - } else if ((0, _util.isNum)(diffEntry) || (0, _primitives.isRef)(diffEntry)) { - diffBuf[j] = diffEntry.toString(); - } - } - - hash.update(diffBuf.join()); + if ((0, _util.isNum)(data)) { + index = data; + } else if ((0, _primitives.isName)(data)) { + differences[index++] = data.name; + } else { + throw new _util.FormatError(`Invalid entry in 'Differences' array: ${data}`); } } } - - var firstChar = dict.get('FirstChar') || 0; - var lastChar = dict.get('LastChar') || (composite ? 0xFFFF : 0xFF); - hash.update("".concat(firstChar, "-").concat(lastChar)); - var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode'); - - if ((0, _primitives.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 ((0, _primitives.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) { - var _this10 = this; - - 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 _primitives.Dict(null); - descriptor.set('FontName', _primitives.Name.get(type)); - descriptor.set('FontBBox', dict.getArray('FontBBox')); - } else { - var baseFontName = dict.get('BaseFont'); - - if (!(0, _primitives.isName)(baseFontName)) { - throw new _util.FormatError('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) ? _fonts.FontFlags.Serif : 0) | (metrics.monospace ? _fonts.FontFlags.FixedPitch : 0) | ((0, _standard_fonts.getSymbolsFonts)()[fontNameWoStyle] ? _fonts.FontFlags.Symbolic : _fonts.FontFlags.Nonsymbolic); - properties = { - type: type, - name: baseFontName, - widths: metrics.widths, - defaultWidth: metrics.defaultWidth, - flags: flags, - firstChar: 0, - lastChar: maxCharIndex - }; - return this.extractDataStructures(dict, dict, properties).then(function (properties) { - properties.widths = _this10.buildCharCodeToWidth(metrics.widths, properties); - return new _fonts.Font(baseFontName, null, properties); - }); - } - } - - var firstChar = dict.get('FirstChar') || 0; - var lastChar = dict.get('LastChar') || maxCharIndex; - var fontName = descriptor.get('FontName'); - var baseFont = dict.get('BaseFont'); - - if ((0, _util.isString)(fontName)) { - fontName = _primitives.Name.get(fontName); - } - - if ((0, _util.isString)(baseFont)) { - baseFont = _primitives.Name.get(baseFont); - } - - if (type !== 'Type3') { - var fontNameStr = fontName && fontName.name; - var baseFontStr = baseFont && baseFont.name; - - if (fontNameStr !== baseFontStr) { - (0, _util.info)("The FontDescriptor's FontName is \"".concat(fontNameStr, "\" but ") + "should be the same as the Font's BaseFont \"".concat(baseFontStr, "\".")); - - if (fontNameStr && baseFontStr && baseFontStr.startsWith(fontNameStr)) { - fontName = baseFont; - } - } - } - - fontName = fontName || baseFont; - - if (!(0, _primitives.isName)(fontName)) { - throw new _util.FormatError('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') || _util.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'), - isType3Font: false - }; - var cMapPromise; - - if (composite) { - var cidEncoding = baseDict.get('Encoding'); - - if ((0, _primitives.isName)(cidEncoding)) { - properties.cidEncoding = cidEncoding.name; - } - - cMapPromise = _cmap.CMapFactory.create({ - encoding: cidEncoding, - fetchBuiltInCMap: this.fetchBuiltInCMap, - useCMap: null - }).then(function (cMap) { - properties.cMap = cMap; - properties.vertical = properties.cMap.vertical; - }); + } else if ((0, _primitives.isName)(encoding)) { + baseEncodingName = encoding.name; } else { - cMapPromise = Promise.resolve(undefined); + throw new _util.FormatError("Encoding is not a Name nor a Dict"); } - return cMapPromise.then(function () { - return _this10.extractDataStructures(dict, baseDict, properties); - }).then(function (properties) { - _this10.extractWidths(dict, descriptor, properties); + if (baseEncodingName !== "MacRomanEncoding" && baseEncodingName !== "MacExpertEncoding" && baseEncodingName !== "WinAnsiEncoding") { + baseEncodingName = null; + } + } + + if (baseEncodingName) { + properties.defaultEncoding = (0, _encodings.getEncoding)(baseEncodingName).slice(); + } else { + var isSymbolicFont = !!(properties.flags & _fonts.FontFlags.Symbolic); + var isNonsymbolicFont = !!(properties.flags & _fonts.FontFlags.Nonsymbolic); + encoding = _encodings.StandardEncoding; + + if (properties.type === "TrueType" && !isNonsymbolicFont) { + encoding = _encodings.WinAnsiEncoding; + } + + if (isSymbolicFont) { + encoding = _encodings.MacRomanEncoding; + + if (!properties.file) { + if (/Symbol/i.test(properties.name)) { + encoding = _encodings.SymbolSetEncoding; + } else if (/Dingbats|Wingdings/i.test(properties.name)) { + encoding = _encodings.ZapfDingbatsEncoding; + } + } + } + + properties.defaultEncoding = encoding; + } + + properties.differences = differences; + properties.baseEncodingName = baseEncodingName; + properties.hasEncoding = !!baseEncodingName || differences.length > 0; + properties.dict = dict; + return toUnicodePromise.then(readToUnicode => { + properties.toUnicode = readToUnicode; + return this.buildToUnicode(properties); + }).then(builtToUnicode => { + properties.toUnicode = builtToUnicode; + + if (cidToGidBytes) { + properties.cidToGidMap = this.readCidToGidMap(cidToGidBytes, builtToUnicode); + } + + return properties; + }); + } + + _buildSimpleFontToUnicode(properties, forceGlyphs = false) { + (0, _util.assert)(!properties.composite, "Must be a simple font."); + const toUnicode = []; + const encoding = properties.defaultEncoding.slice(); + const baseEncodingName = properties.baseEncodingName; + const differences = properties.differences; + + for (const charcode in differences) { + const glyphName = differences[charcode]; + + if (glyphName === ".notdef") { + continue; + } + + encoding[charcode] = glyphName; + } + + const glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)(); + + for (const charcode in encoding) { + let glyphName = encoding[charcode]; + + if (glyphName === "") { + continue; + } else if (glyphsUnicodeMap[glyphName] === undefined) { + let code = 0; + + switch (glyphName[0]) { + case "G": + if (glyphName.length === 3) { + code = parseInt(glyphName.substring(1), 16); + } + + break; + + case "g": + if (glyphName.length === 5) { + code = parseInt(glyphName.substring(1), 16); + } + + break; + + case "C": + case "c": + if (glyphName.length >= 3 && glyphName.length <= 4) { + const codeStr = glyphName.substring(1); + + if (forceGlyphs) { + code = parseInt(codeStr, 16); + break; + } + + code = +codeStr; + + if (Number.isNaN(code) && Number.isInteger(parseInt(codeStr, 16))) { + return this._buildSimpleFontToUnicode(properties, true); + } + } + + break; + + default: + const unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap); + + if (unicode !== -1) { + code = unicode; + } - if (type === 'Type3') { - properties.isType3Font = true; } - return new _fonts.Font(fontName.name, fontFile, properties); + if (code > 0 && code <= 0x10ffff && Number.isInteger(code)) { + if (baseEncodingName && code === +charcode) { + const baseEncoding = (0, _encodings.getEncoding)(baseEncodingName); + + if (baseEncoding && (glyphName = baseEncoding[charcode])) { + toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]); + continue; + } + } + + toUnicode[charcode] = String.fromCodePoint(code); + } + + continue; + } + + toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]); + } + + return new _fonts.ToUnicodeMap(toUnicode); + } + + buildToUnicode(properties) { + properties.hasIncludedToUnicodeMap = !!properties.toUnicode && properties.toUnicode.length > 0; + + if (properties.hasIncludedToUnicodeMap) { + if (!properties.composite && properties.hasEncoding) { + properties.fallbackToUnicode = this._buildSimpleFontToUnicode(properties); + } + + return Promise.resolve(properties.toUnicode); + } + + if (!properties.composite) { + return Promise.resolve(this._buildSimpleFontToUnicode(properties)); + } + + if (properties.composite && (properties.cMap.builtInCMap && !(properties.cMap instanceof _cmap.IdentityCMap) || properties.cidSystemInfo.registry === "Adobe" && (properties.cidSystemInfo.ordering === "GB1" || properties.cidSystemInfo.ordering === "CNS1" || properties.cidSystemInfo.ordering === "Japan1" || properties.cidSystemInfo.ordering === "Korea1"))) { + const registry = properties.cidSystemInfo.registry; + const ordering = properties.cidSystemInfo.ordering; + + const ucs2CMapName = _primitives.Name.get(registry + "-" + ordering + "-UCS2"); + + return _cmap.CMapFactory.create({ + encoding: ucs2CMapName, + fetchBuiltInCMap: this._fetchBuiltInCMapBound, + useCMap: null + }).then(function (ucs2CMap) { + const cMap = properties.cMap; + const toUnicode = []; + cMap.forEach(function (charcode, cid) { + if (cid > 0xffff) { + throw new _util.FormatError("Max size of CID is 65,535"); + } + + const ucs2 = ucs2CMap.lookup(cid); + + if (ucs2) { + toUnicode[charcode] = String.fromCharCode((ucs2.charCodeAt(0) << 8) + ucs2.charCodeAt(1)); + } + }); + return new _fonts.ToUnicodeMap(toUnicode); }); } - }; - PartialEvaluator.buildFontPaths = function (font, glyphs, handler) { + return Promise.resolve(new _fonts.IdentityToUnicodeMap(properties.firstChar, properties.lastChar)); + } + + readToUnicode(toUnicode) { + var cmapObj = toUnicode; + + if ((0, _primitives.isName)(cmapObj)) { + return _cmap.CMapFactory.create({ + encoding: cmapObj, + fetchBuiltInCMap: this._fetchBuiltInCMapBound, + useCMap: null + }).then(function (cmap) { + if (cmap instanceof _cmap.IdentityCMap) { + return new _fonts.IdentityToUnicodeMap(0, 0xffff); + } + + return new _fonts.ToUnicodeMap(cmap.getMap()); + }); + } else if ((0, _primitives.isStream)(cmapObj)) { + return _cmap.CMapFactory.create({ + encoding: cmapObj, + fetchBuiltInCMap: this._fetchBuiltInCMapBound, + useCMap: null + }).then(function (cmap) { + if (cmap instanceof _cmap.IdentityCMap) { + return new _fonts.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.fromCodePoint.apply(String, str); + }); + return new _fonts.ToUnicodeMap(map); + }, reason => { + if (reason instanceof _util.AbortException) { + return null; + } + + if (this.options.ignoreErrors) { + this.handler.send("UnsupportedFeature", { + featureId: _util.UNSUPPORTED_FEATURES.errorFontToUnicode + }); + (0, _util.warn)(`readToUnicode - ignoring ToUnicode data: "${reason}".`); + return null; + } + + throw reason; + }); + } + + return Promise.resolve(null); + } + + readCidToGidMap(glyphsData, toUnicode) { + var result = []; + + for (var j = 0, jj = glyphsData.length; j < jj; j++) { + var glyphID = glyphsData[j++] << 8 | glyphsData[j]; + const code = j >> 1; + + if (glyphID === 0 && !toUnicode.has(code)) { + continue; + } + + result[code] = glyphID; + } + + return result; + } + + extractWidths(dict, descriptor, properties) { + var xref = this.xref; + var glyphsWidths = []; + var defaultWidth = 0; + var glyphsVMetrics = []; + var defaultVMetrics; + var i, ii, j, jj, start, code, widths; + + if (properties.composite) { + defaultWidth = dict.has("DW") ? 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 (Array.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 (Array.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 ((0, _primitives.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 |= _fonts.FontFlags.FixedPitch; + } + + properties.defaultWidth = defaultWidth; + properties.widths = glyphsWidths; + properties.defaultVMetrics = defaultVMetrics; + properties.vmetrics = glyphsVMetrics; + } + + isSerifFont(baseFontName) { + var fontNameWoStyle = baseFontName.split("-")[0]; + return fontNameWoStyle in (0, _standard_fonts.getSerifFonts)() || fontNameWoStyle.search(/serif/gi) !== -1; + } + + getBaseFontMetrics(name) { + var defaultWidth = 0; + var widths = []; + var monospace = false; + var stdFontMap = (0, _standard_fonts.getStdFontMap)(); + var lookupName = stdFontMap[name] || name; + var Metrics = (0, _metrics.getMetrics)(); + + if (!(lookupName in Metrics)) { + if (this.isSerifFont(name)) { + lookupName = "Times-Roman"; + } else { + lookupName = "Helvetica"; + } + } + + var glyphWidths = Metrics[lookupName]; + + if ((0, _util.isNum)(glyphWidths)) { + defaultWidth = glyphWidths; + monospace = true; + } else { + widths = glyphWidths(); + } + + return { + defaultWidth, + monospace, + widths + }; + } + + buildCharCodeToWidth(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(dict) { + var baseDict = dict; + var type = dict.get("Subtype"); + + if (!(0, _primitives.isName)(type)) { + throw new _util.FormatError("invalid font Subtype"); + } + + var composite = false; + var uint8array; + + if (type.name === "Type0") { + var df = dict.get("DescendantFonts"); + + if (!df) { + throw new _util.FormatError("Descendant fonts are not specified"); + } + + dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df; + type = dict.get("Subtype"); + + if (!(0, _primitives.isName)(type)) { + throw new _util.FormatError("invalid font Subtype"); + } + + composite = true; + } + + var descriptor = dict.get("FontDescriptor"); + + if (descriptor) { + var hash = new _murmurhash.MurmurHash3_64(); + var encoding = baseDict.getRaw("Encoding"); + + if ((0, _primitives.isName)(encoding)) { + hash.update(encoding.name); + } else if ((0, _primitives.isRef)(encoding)) { + hash.update(encoding.toString()); + } else if ((0, _primitives.isDict)(encoding)) { + for (const entry of encoding.getRawValues()) { + if ((0, _primitives.isName)(entry)) { + hash.update(entry.name); + } else if ((0, _primitives.isRef)(entry)) { + hash.update(entry.toString()); + } else if (Array.isArray(entry)) { + var diffLength = entry.length, + diffBuf = new Array(diffLength); + + for (var j = 0; j < diffLength; j++) { + var diffEntry = entry[j]; + + if ((0, _primitives.isName)(diffEntry)) { + diffBuf[j] = diffEntry.name; + } else if ((0, _util.isNum)(diffEntry) || (0, _primitives.isRef)(diffEntry)) { + diffBuf[j] = diffEntry.toString(); + } + } + + hash.update(diffBuf.join()); + } + } + } + + const firstChar = dict.get("FirstChar") || 0; + const lastChar = dict.get("LastChar") || (composite ? 0xffff : 0xff); + hash.update(`${firstChar}-${lastChar}`); + var toUnicode = dict.get("ToUnicode") || baseDict.get("ToUnicode"); + + if ((0, _primitives.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 ((0, _primitives.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, + dict, + baseDict, + composite, + type: type.name, + hash: hash ? hash.hexdigest() : "" + }; + } + + translateFont(preEvaluatedFont) { + 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; + const firstChar = dict.get("FirstChar") || 0; + const lastChar = dict.get("LastChar") || maxCharIndex; + + if (!descriptor) { + if (type === "Type3") { + descriptor = new _primitives.Dict(null); + descriptor.set("FontName", _primitives.Name.get(type)); + descriptor.set("FontBBox", dict.getArray("FontBBox") || [0, 0, 0, 0]); + } else { + var baseFontName = dict.get("BaseFont"); + + if (!(0, _primitives.isName)(baseFontName)) { + throw new _util.FormatError("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) ? _fonts.FontFlags.Serif : 0) | (metrics.monospace ? _fonts.FontFlags.FixedPitch : 0) | ((0, _standard_fonts.getSymbolsFonts)()[fontNameWoStyle] ? _fonts.FontFlags.Symbolic : _fonts.FontFlags.Nonsymbolic); + properties = { + type, + name: baseFontName, + widths: metrics.widths, + defaultWidth: metrics.defaultWidth, + flags, + firstChar, + lastChar + }; + const widths = dict.get("Widths"); + return this.extractDataStructures(dict, dict, properties).then(newProperties => { + if (widths) { + const glyphWidths = []; + let j = firstChar; + + for (let i = 0, ii = widths.length; i < ii; i++) { + glyphWidths[j++] = this.xref.fetchIfRef(widths[i]); + } + + newProperties.widths = glyphWidths; + } else { + newProperties.widths = this.buildCharCodeToWidth(metrics.widths, newProperties); + } + + return new _fonts.Font(baseFontName, null, newProperties); + }); + } + } + + var fontName = descriptor.get("FontName"); + var baseFont = dict.get("BaseFont"); + + if ((0, _util.isString)(fontName)) { + fontName = _primitives.Name.get(fontName); + } + + if ((0, _util.isString)(baseFont)) { + baseFont = _primitives.Name.get(baseFont); + } + + if (type !== "Type3") { + var fontNameStr = fontName && fontName.name; + var baseFontStr = baseFont && baseFont.name; + + if (fontNameStr !== baseFontStr) { + (0, _util.info)(`The FontDescriptor\'s FontName is "${fontNameStr}" but ` + `should be the same as the Font\'s BaseFont "${baseFontStr}".`); + + if (fontNameStr && baseFontStr && baseFontStr.startsWith(fontNameStr)) { + fontName = baseFont; + } + } + } + + fontName = fontName || baseFont; + + if (!(0, _primitives.isName)(fontName)) { + throw new _util.FormatError("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, + name: fontName.name, + subtype, + file: fontFile, + length1, + length2, + length3, + loadedName: baseDict.loadedName, + composite, + fixedPitch: false, + fontMatrix: dict.getArray("FontMatrix") || _util.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"), + isType3Font: false + }; + var cMapPromise; + + if (composite) { + var cidEncoding = baseDict.get("Encoding"); + + if ((0, _primitives.isName)(cidEncoding)) { + properties.cidEncoding = cidEncoding.name; + } + + cMapPromise = _cmap.CMapFactory.create({ + encoding: cidEncoding, + fetchBuiltInCMap: this._fetchBuiltInCMapBound, + useCMap: null + }).then(function (cMap) { + properties.cMap = cMap; + properties.vertical = properties.cMap.vertical; + }); + } else { + cMapPromise = Promise.resolve(undefined); + } + + return cMapPromise.then(() => { + return this.extractDataStructures(dict, baseDict, properties); + }).then(newProperties => { + this.extractWidths(dict, descriptor, newProperties); + + if (type === "Type3") { + newProperties.isType3Font = true; + } + + return new _fonts.Font(fontName.name, fontFile, newProperties); + }); + } + + static buildFontPaths(font, glyphs, handler) { function buildPath(fontChar) { if (font.renderer.hasBuiltPath(fontChar)) { return; } - handler.send('commonobj', ["".concat(font.loadedName, "_path_").concat(fontChar), 'FontPath', font.renderer.getPathJs(fontChar)]); + handler.send("commonobj", [`${font.loadedName}_path_${fontChar}`, "FontPath", font.renderer.getPathJs(fontChar)]); } - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; + for (const glyph of glyphs) { + buildPath(glyph.fontChar); + const accent = glyph.accent; - try { - for (var _iterator = glyphs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var glyph = _step.value; - buildPath(glyph.fontChar); - var accent = glyph.accent; - - if (accent && accent.fontChar) { - buildPath(accent.fontChar); - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } + if (accent && accent.fontChar) { + buildPath(accent.fontChar); } } - }; + } - return PartialEvaluator; -}(); + static get fallbackFontDict() { + const dict = new _primitives.Dict(); + dict.set("BaseFont", _primitives.Name.get("PDFJS-FallbackFont")); + dict.set("Type", _primitives.Name.get("FallbackType")); + dict.set("Subtype", _primitives.Name.get("FallbackType")); + dict.set("Encoding", _primitives.Name.get("WinAnsiEncoding")); + return (0, _util.shadow)(this, "fallbackFontDict", dict); + } + +} exports.PartialEvaluator = PartialEvaluator; -var TranslatedFont = function TranslatedFontClosure() { - function TranslatedFont(loadedName, font, dict) { +class TranslatedFont { + constructor({ + loadedName, + font, + dict, + extraProperties = false + }) { this.loadedName = loadedName; this.font = font; this.dict = dict; + this._extraProperties = extraProperties; this.type3Loaded = null; + this.type3Dependencies = font.isType3Font ? new Set() : null; this.sent = false; } - TranslatedFont.prototype = { - send: function send(handler) { - if (this.sent) { - return; - } + send(handler) { + if (this.sent) { + return; + } - this.sent = true; - handler.send('commonobj', [this.loadedName, 'Font', this.font.exportData()]); - }, - fallback: function fallback(handler) { - if (!this.font.data) { - return; - } + this.sent = true; + handler.send("commonobj", [this.loadedName, "Font", this.font.exportData(this._extraProperties)]); + } - this.font.disableFontFace = true; - var glyphs = this.font.glyphCacheValues; - PartialEvaluator.buildFontPaths(this.font, glyphs, handler); - }, - loadType3Data: function loadType3Data(evaluator, resources, parentOperatorList, task) { - if (!this.font.isType3Font) { - throw new Error('Must be a Type3 font.'); - } + fallback(handler) { + if (!this.font.data) { + return; + } - if (this.type3Loaded) { - return this.type3Loaded; - } + this.font.disableFontFace = true; + const glyphs = this.font.glyphCacheValues; + PartialEvaluator.buildFontPaths(this.font, glyphs, handler); + } - var type3Options = Object.create(evaluator.options); - type3Options.ignoreErrors = false; - type3Options.nativeImageDecoderSupport = _util.NativeImageDecoding.NONE; - var type3Evaluator = evaluator.clone(type3Options); - type3Evaluator.parsingType3Font = true; - 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); - - var _loop2 = function _loop2() { - var key = charProcKeys[i]; - loadCharProcsPromise = loadCharProcsPromise.then(function () { - var glyphStream = charProcs.get(key); - var operatorList = new _operator_list.OperatorList(); - return type3Evaluator.getOperatorList({ - stream: glyphStream, - task: task, - resources: fontResources, - operatorList: operatorList - }).then(function () { - charProcOperatorList[key] = operatorList.getIR(); - parentOperatorList.addDependencies(operatorList.dependencies); - })["catch"](function (reason) { - (0, _util.warn)("Type3 font resource \"".concat(key, "\" is not available.")); - var operatorList = new _operator_list.OperatorList(); - charProcOperatorList[key] = operatorList.getIR(); - }); - }); - }; - - for (var i = 0, n = charProcKeys.length; i < n; ++i) { - _loop2(); - } - - this.type3Loaded = loadCharProcsPromise.then(function () { - translatedFont.charProcOperatorList = charProcOperatorList; - }); + loadType3Data(evaluator, resources, task) { + if (this.type3Loaded) { return this.type3Loaded; } - }; - return TranslatedFont; -}(); -var StateManager = function StateManagerClosure() { - function StateManager(initialState) { + if (!this.font.isType3Font) { + throw new Error("Must be a Type3 font."); + } + + var type3Options = Object.create(evaluator.options); + type3Options.ignoreErrors = false; + var type3Evaluator = evaluator.clone(type3Options); + type3Evaluator.parsingType3Font = true; + const translatedFont = this.font, + type3Dependencies = this.type3Dependencies; + var loadCharProcsPromise = Promise.resolve(); + var charProcs = this.dict.get("CharProcs"); + var fontResources = this.dict.get("Resources") || resources; + var charProcOperatorList = Object.create(null); + + for (const key of charProcs.getKeys()) { + loadCharProcsPromise = loadCharProcsPromise.then(function () { + var glyphStream = charProcs.get(key); + var operatorList = new _operator_list.OperatorList(); + return type3Evaluator.getOperatorList({ + stream: glyphStream, + task, + resources: fontResources, + operatorList + }).then(function () { + charProcOperatorList[key] = operatorList.getIR(); + + for (const dependency of operatorList.dependencies) { + type3Dependencies.add(dependency); + } + }).catch(function (reason) { + (0, _util.warn)(`Type3 font resource "${key}" is not available.`); + const dummyOperatorList = new _operator_list.OperatorList(); + charProcOperatorList[key] = dummyOperatorList.getIR(); + }); + }); + } + + this.type3Loaded = loadCharProcsPromise.then(function () { + translatedFont.charProcOperatorList = charProcOperatorList; + }); + return this.type3Loaded; + } + +} + +class StateManager { + constructor(initialState) { this.state = initialState; this.stateStack = []; } - StateManager.prototype = { - save: function save() { - var old = this.state; - this.stateStack.push(this.state); - this.state = old.clone(); - }, - restore: function restore() { - var prev = this.stateStack.pop(); + save() { + var old = this.state; + this.stateStack.push(this.state); + this.state = old.clone(); + } - if (prev) { - this.state = prev; - } - }, - transform: function transform(args) { - this.state.ctm = _util.Util.transform(this.state.ctm, args); + restore() { + var prev = this.stateStack.pop(); + + if (prev) { + this.state = prev; } - }; - return StateManager; -}(); + } -var TextState = function TextStateClosure() { - function TextState() { + transform(args) { + this.state.ctm = _util.Util.transform(this.state.ctm, args); + } + +} + +class TextState { + constructor() { this.ctm = new Float32Array(_util.IDENTITY_MATRIX); this.fontName = null; this.fontSize = 0; @@ -33138,94 +24687,99 @@ var TextState = function TextStateClosure() { 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; + 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; + } - if (!font) { - return null; - } + setTextLineMatrix(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; + } - var m = this.textLineMatrix; + 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]; + } - if (!(a === m[0] && b === m[1] && c === m[2] && d === m[3])) { - return null; - } + translateTextLineMatrix(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]; + } - var txDiff = e - m[4], - tyDiff = f - m[5]; + calcTextLineMatrixAdvance(a, b, c, d, e, f) { + var font = this.font; - 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.Util.transform(ctm, _util.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; + if (!font) { + return null; } - }; - return TextState; -}(); -var EvalState = function EvalStateClosure() { - function EvalState() { + 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(ctm) { + var tsm = [this.fontSize * this.textHScale, 0, 0, this.fontSize, 0, this.textRise]; + return _util.Util.transform(ctm, _util.Util.transform(this.textMatrix, tsm)); + } + + carriageReturn() { + this.translateTextLineMatrix(0, -this.leading); + this.textMatrix = this.textLineMatrix.slice(); + } + + clone() { + var clone = Object.create(this); + clone.textMatrix = this.textMatrix.slice(); + clone.textLineMatrix = this.textLineMatrix.slice(); + clone.fontMatrix = this.fontMatrix.slice(); + return clone; + } + +} + +class EvalState { + constructor() { this.ctm = new Float32Array(_util.IDENTITY_MATRIX); this.font = null; this.textRenderingMode = _util.TextRenderingMode.FILL; @@ -33233,511 +24787,513 @@ var EvalState = function EvalStateClosure() { this.strokeColorSpace = _colorspace.ColorSpace.singletons.gray; } - EvalState.prototype = { - clone: function CanvasExtraState_clone() { - return Object.create(this); - } - }; - return EvalState; -}(); + clone() { + return Object.create(this); + } -var EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() { - var getOPMap = (0, _core_utils.getLookupTableFactory)(function (t) { - t['w'] = { - id: _util.OPS.setLineWidth, - numArgs: 1, - variableArgs: false - }; - t['J'] = { - id: _util.OPS.setLineCap, - numArgs: 1, - variableArgs: false - }; - t['j'] = { - id: _util.OPS.setLineJoin, - numArgs: 1, - variableArgs: false - }; - t['M'] = { - id: _util.OPS.setMiterLimit, - numArgs: 1, - variableArgs: false - }; - t['d'] = { - id: _util.OPS.setDash, - numArgs: 2, - variableArgs: false - }; - t['ri'] = { - id: _util.OPS.setRenderingIntent, - numArgs: 1, - variableArgs: false - }; - t['i'] = { - id: _util.OPS.setFlatness, - numArgs: 1, - variableArgs: false - }; - t['gs'] = { - id: _util.OPS.setGState, - numArgs: 1, - variableArgs: false - }; - t['q'] = { - id: _util.OPS.save, - numArgs: 0, - variableArgs: false - }; - t['Q'] = { - id: _util.OPS.restore, - numArgs: 0, - variableArgs: false - }; - t['cm'] = { - id: _util.OPS.transform, - numArgs: 6, - variableArgs: false - }; - t['m'] = { - id: _util.OPS.moveTo, - numArgs: 2, - variableArgs: false - }; - t['l'] = { - id: _util.OPS.lineTo, - numArgs: 2, - variableArgs: false - }; - t['c'] = { - id: _util.OPS.curveTo, - numArgs: 6, - variableArgs: false - }; - t['v'] = { - id: _util.OPS.curveTo2, - numArgs: 4, - variableArgs: false - }; - t['y'] = { - id: _util.OPS.curveTo3, - numArgs: 4, - variableArgs: false - }; - t['h'] = { - id: _util.OPS.closePath, - numArgs: 0, - variableArgs: false - }; - t['re'] = { - id: _util.OPS.rectangle, - numArgs: 4, - variableArgs: false - }; - t['S'] = { - id: _util.OPS.stroke, - numArgs: 0, - variableArgs: false - }; - t['s'] = { - id: _util.OPS.closeStroke, - numArgs: 0, - variableArgs: false - }; - t['f'] = { - id: _util.OPS.fill, - numArgs: 0, - variableArgs: false - }; - t['F'] = { - id: _util.OPS.fill, - numArgs: 0, - variableArgs: false - }; - t['f*'] = { - id: _util.OPS.eoFill, - numArgs: 0, - variableArgs: false - }; - t['B'] = { - id: _util.OPS.fillStroke, - numArgs: 0, - variableArgs: false - }; - t['B*'] = { - id: _util.OPS.eoFillStroke, - numArgs: 0, - variableArgs: false - }; - t['b'] = { - id: _util.OPS.closeFillStroke, - numArgs: 0, - variableArgs: false - }; - t['b*'] = { - id: _util.OPS.closeEOFillStroke, - numArgs: 0, - variableArgs: false - }; - t['n'] = { - id: _util.OPS.endPath, - numArgs: 0, - variableArgs: false - }; - t['W'] = { - id: _util.OPS.clip, - numArgs: 0, - variableArgs: false - }; - t['W*'] = { - id: _util.OPS.eoClip, - numArgs: 0, - variableArgs: false - }; - t['BT'] = { - id: _util.OPS.beginText, - numArgs: 0, - variableArgs: false - }; - t['ET'] = { - id: _util.OPS.endText, - numArgs: 0, - variableArgs: false - }; - t['Tc'] = { - id: _util.OPS.setCharSpacing, - numArgs: 1, - variableArgs: false - }; - t['Tw'] = { - id: _util.OPS.setWordSpacing, - numArgs: 1, - variableArgs: false - }; - t['Tz'] = { - id: _util.OPS.setHScale, - numArgs: 1, - variableArgs: false - }; - t['TL'] = { - id: _util.OPS.setLeading, - numArgs: 1, - variableArgs: false - }; - t['Tf'] = { - id: _util.OPS.setFont, - numArgs: 2, - variableArgs: false - }; - t['Tr'] = { - id: _util.OPS.setTextRenderingMode, - numArgs: 1, - variableArgs: false - }; - t['Ts'] = { - id: _util.OPS.setTextRise, - numArgs: 1, - variableArgs: false - }; - t['Td'] = { - id: _util.OPS.moveText, - numArgs: 2, - variableArgs: false - }; - t['TD'] = { - id: _util.OPS.setLeadingMoveText, - numArgs: 2, - variableArgs: false - }; - t['Tm'] = { - id: _util.OPS.setTextMatrix, - numArgs: 6, - variableArgs: false - }; - t['T*'] = { - id: _util.OPS.nextLine, - numArgs: 0, - variableArgs: false - }; - t['Tj'] = { - id: _util.OPS.showText, - numArgs: 1, - variableArgs: false - }; - t['TJ'] = { - id: _util.OPS.showSpacedText, - numArgs: 1, - variableArgs: false - }; - t['\''] = { - id: _util.OPS.nextLineShowText, - numArgs: 1, - variableArgs: false - }; - t['"'] = { - id: _util.OPS.nextLineSetSpacingShowText, - numArgs: 3, - variableArgs: false - }; - t['d0'] = { - id: _util.OPS.setCharWidth, - numArgs: 2, - variableArgs: false - }; - t['d1'] = { - id: _util.OPS.setCharWidthAndBounds, - numArgs: 6, - variableArgs: false - }; - t['CS'] = { - id: _util.OPS.setStrokeColorSpace, - numArgs: 1, - variableArgs: false - }; - t['cs'] = { - id: _util.OPS.setFillColorSpace, - numArgs: 1, - variableArgs: false - }; - t['SC'] = { - id: _util.OPS.setStrokeColor, - numArgs: 4, - variableArgs: true - }; - t['SCN'] = { - id: _util.OPS.setStrokeColorN, - numArgs: 33, - variableArgs: true - }; - t['sc'] = { - id: _util.OPS.setFillColor, - numArgs: 4, - variableArgs: true - }; - t['scn'] = { - id: _util.OPS.setFillColorN, - numArgs: 33, - variableArgs: true - }; - t['G'] = { - id: _util.OPS.setStrokeGray, - numArgs: 1, - variableArgs: false - }; - t['g'] = { - id: _util.OPS.setFillGray, - numArgs: 1, - variableArgs: false - }; - t['RG'] = { - id: _util.OPS.setStrokeRGBColor, - numArgs: 3, - variableArgs: false - }; - t['rg'] = { - id: _util.OPS.setFillRGBColor, - numArgs: 3, - variableArgs: false - }; - t['K'] = { - id: _util.OPS.setStrokeCMYKColor, - numArgs: 4, - variableArgs: false - }; - t['k'] = { - id: _util.OPS.setFillCMYKColor, - numArgs: 4, - variableArgs: false - }; - t['sh'] = { - id: _util.OPS.shadingFill, - numArgs: 1, - variableArgs: false - }; - t['BI'] = { - id: _util.OPS.beginInlineImage, - numArgs: 0, - variableArgs: false - }; - t['ID'] = { - id: _util.OPS.beginImageData, - numArgs: 0, - variableArgs: false - }; - t['EI'] = { - id: _util.OPS.endInlineImage, - numArgs: 1, - variableArgs: false - }; - t['Do'] = { - id: _util.OPS.paintXObject, - numArgs: 1, - variableArgs: false - }; - t['MP'] = { - id: _util.OPS.markPoint, - numArgs: 1, - variableArgs: false - }; - t['DP'] = { - id: _util.OPS.markPointProps, - numArgs: 2, - variableArgs: false - }; - t['BMC'] = { - id: _util.OPS.beginMarkedContent, - numArgs: 1, - variableArgs: false - }; - t['BDC'] = { - id: _util.OPS.beginMarkedContentProps, - numArgs: 2, - variableArgs: false - }; - t['EMC'] = { - id: _util.OPS.endMarkedContent, - numArgs: 0, - variableArgs: false - }; - t['BX'] = { - id: _util.OPS.beginCompat, - numArgs: 0, - variableArgs: false - }; - t['EX'] = { - id: _util.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; - }); - var MAX_INVALID_PATH_OPS = 20; +} - function EvaluatorPreprocessor(stream, xref, stateManager) { - this.opMap = getOPMap(); +class EvaluatorPreprocessor { + static get opMap() { + const getOPMap = (0, _core_utils.getLookupTableFactory)(function (t) { + t.w = { + id: _util.OPS.setLineWidth, + numArgs: 1, + variableArgs: false + }; + t.J = { + id: _util.OPS.setLineCap, + numArgs: 1, + variableArgs: false + }; + t.j = { + id: _util.OPS.setLineJoin, + numArgs: 1, + variableArgs: false + }; + t.M = { + id: _util.OPS.setMiterLimit, + numArgs: 1, + variableArgs: false + }; + t.d = { + id: _util.OPS.setDash, + numArgs: 2, + variableArgs: false + }; + t.ri = { + id: _util.OPS.setRenderingIntent, + numArgs: 1, + variableArgs: false + }; + t.i = { + id: _util.OPS.setFlatness, + numArgs: 1, + variableArgs: false + }; + t.gs = { + id: _util.OPS.setGState, + numArgs: 1, + variableArgs: false + }; + t.q = { + id: _util.OPS.save, + numArgs: 0, + variableArgs: false + }; + t.Q = { + id: _util.OPS.restore, + numArgs: 0, + variableArgs: false + }; + t.cm = { + id: _util.OPS.transform, + numArgs: 6, + variableArgs: false + }; + t.m = { + id: _util.OPS.moveTo, + numArgs: 2, + variableArgs: false + }; + t.l = { + id: _util.OPS.lineTo, + numArgs: 2, + variableArgs: false + }; + t.c = { + id: _util.OPS.curveTo, + numArgs: 6, + variableArgs: false + }; + t.v = { + id: _util.OPS.curveTo2, + numArgs: 4, + variableArgs: false + }; + t.y = { + id: _util.OPS.curveTo3, + numArgs: 4, + variableArgs: false + }; + t.h = { + id: _util.OPS.closePath, + numArgs: 0, + variableArgs: false + }; + t.re = { + id: _util.OPS.rectangle, + numArgs: 4, + variableArgs: false + }; + t.S = { + id: _util.OPS.stroke, + numArgs: 0, + variableArgs: false + }; + t.s = { + id: _util.OPS.closeStroke, + numArgs: 0, + variableArgs: false + }; + t.f = { + id: _util.OPS.fill, + numArgs: 0, + variableArgs: false + }; + t.F = { + id: _util.OPS.fill, + numArgs: 0, + variableArgs: false + }; + t["f*"] = { + id: _util.OPS.eoFill, + numArgs: 0, + variableArgs: false + }; + t.B = { + id: _util.OPS.fillStroke, + numArgs: 0, + variableArgs: false + }; + t["B*"] = { + id: _util.OPS.eoFillStroke, + numArgs: 0, + variableArgs: false + }; + t.b = { + id: _util.OPS.closeFillStroke, + numArgs: 0, + variableArgs: false + }; + t["b*"] = { + id: _util.OPS.closeEOFillStroke, + numArgs: 0, + variableArgs: false + }; + t.n = { + id: _util.OPS.endPath, + numArgs: 0, + variableArgs: false + }; + t.W = { + id: _util.OPS.clip, + numArgs: 0, + variableArgs: false + }; + t["W*"] = { + id: _util.OPS.eoClip, + numArgs: 0, + variableArgs: false + }; + t.BT = { + id: _util.OPS.beginText, + numArgs: 0, + variableArgs: false + }; + t.ET = { + id: _util.OPS.endText, + numArgs: 0, + variableArgs: false + }; + t.Tc = { + id: _util.OPS.setCharSpacing, + numArgs: 1, + variableArgs: false + }; + t.Tw = { + id: _util.OPS.setWordSpacing, + numArgs: 1, + variableArgs: false + }; + t.Tz = { + id: _util.OPS.setHScale, + numArgs: 1, + variableArgs: false + }; + t.TL = { + id: _util.OPS.setLeading, + numArgs: 1, + variableArgs: false + }; + t.Tf = { + id: _util.OPS.setFont, + numArgs: 2, + variableArgs: false + }; + t.Tr = { + id: _util.OPS.setTextRenderingMode, + numArgs: 1, + variableArgs: false + }; + t.Ts = { + id: _util.OPS.setTextRise, + numArgs: 1, + variableArgs: false + }; + t.Td = { + id: _util.OPS.moveText, + numArgs: 2, + variableArgs: false + }; + t.TD = { + id: _util.OPS.setLeadingMoveText, + numArgs: 2, + variableArgs: false + }; + t.Tm = { + id: _util.OPS.setTextMatrix, + numArgs: 6, + variableArgs: false + }; + t["T*"] = { + id: _util.OPS.nextLine, + numArgs: 0, + variableArgs: false + }; + t.Tj = { + id: _util.OPS.showText, + numArgs: 1, + variableArgs: false + }; + t.TJ = { + id: _util.OPS.showSpacedText, + numArgs: 1, + variableArgs: false + }; + t["'"] = { + id: _util.OPS.nextLineShowText, + numArgs: 1, + variableArgs: false + }; + t['"'] = { + id: _util.OPS.nextLineSetSpacingShowText, + numArgs: 3, + variableArgs: false + }; + t.d0 = { + id: _util.OPS.setCharWidth, + numArgs: 2, + variableArgs: false + }; + t.d1 = { + id: _util.OPS.setCharWidthAndBounds, + numArgs: 6, + variableArgs: false + }; + t.CS = { + id: _util.OPS.setStrokeColorSpace, + numArgs: 1, + variableArgs: false + }; + t.cs = { + id: _util.OPS.setFillColorSpace, + numArgs: 1, + variableArgs: false + }; + t.SC = { + id: _util.OPS.setStrokeColor, + numArgs: 4, + variableArgs: true + }; + t.SCN = { + id: _util.OPS.setStrokeColorN, + numArgs: 33, + variableArgs: true + }; + t.sc = { + id: _util.OPS.setFillColor, + numArgs: 4, + variableArgs: true + }; + t.scn = { + id: _util.OPS.setFillColorN, + numArgs: 33, + variableArgs: true + }; + t.G = { + id: _util.OPS.setStrokeGray, + numArgs: 1, + variableArgs: false + }; + t.g = { + id: _util.OPS.setFillGray, + numArgs: 1, + variableArgs: false + }; + t.RG = { + id: _util.OPS.setStrokeRGBColor, + numArgs: 3, + variableArgs: false + }; + t.rg = { + id: _util.OPS.setFillRGBColor, + numArgs: 3, + variableArgs: false + }; + t.K = { + id: _util.OPS.setStrokeCMYKColor, + numArgs: 4, + variableArgs: false + }; + t.k = { + id: _util.OPS.setFillCMYKColor, + numArgs: 4, + variableArgs: false + }; + t.sh = { + id: _util.OPS.shadingFill, + numArgs: 1, + variableArgs: false + }; + t.BI = { + id: _util.OPS.beginInlineImage, + numArgs: 0, + variableArgs: false + }; + t.ID = { + id: _util.OPS.beginImageData, + numArgs: 0, + variableArgs: false + }; + t.EI = { + id: _util.OPS.endInlineImage, + numArgs: 1, + variableArgs: false + }; + t.Do = { + id: _util.OPS.paintXObject, + numArgs: 1, + variableArgs: false + }; + t.MP = { + id: _util.OPS.markPoint, + numArgs: 1, + variableArgs: false + }; + t.DP = { + id: _util.OPS.markPointProps, + numArgs: 2, + variableArgs: false + }; + t.BMC = { + id: _util.OPS.beginMarkedContent, + numArgs: 1, + variableArgs: false + }; + t.BDC = { + id: _util.OPS.beginMarkedContentProps, + numArgs: 2, + variableArgs: false + }; + t.EMC = { + id: _util.OPS.endMarkedContent, + numArgs: 0, + variableArgs: false + }; + t.BX = { + id: _util.OPS.beginCompat, + numArgs: 0, + variableArgs: false + }; + t.EX = { + id: _util.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; + }); + return (0, _util.shadow)(this, "opMap", getOPMap()); + } + + static get MAX_INVALID_PATH_OPS() { + return (0, _util.shadow)(this, "MAX_INVALID_PATH_OPS", 20); + } + + constructor(stream, xref, stateManager) { this.parser = new _parser.Parser({ - lexer: new _parser.Lexer(stream, this.opMap), - xref: xref + lexer: new _parser.Lexer(stream, EvaluatorPreprocessor.opMap), + xref }); this.stateManager = stateManager; this.nonProcessedArgs = []; this._numInvalidPathOPS = 0; } - EvaluatorPreprocessor.prototype = { - get savedStatesDepth() { - return this.stateManager.stateStack.length; - }, + get savedStatesDepth() { + return this.stateManager.stateStack.length; + } - read: function EvaluatorPreprocessor_read(operation) { - var args = operation.args; + read(operation) { + var args = operation.args; - while (true) { - var obj = this.parser.getObj(); + while (true) { + var obj = this.parser.getObj(); - if ((0, _primitives.isCmd)(obj)) { - var cmd = obj.cmd; - var opSpec = this.opMap[cmd]; + if (obj instanceof _primitives.Cmd) { + var cmd = obj.cmd; + var opSpec = EvaluatorPreprocessor.opMap[cmd]; + + if (!opSpec) { + (0, _util.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) { + const partialMsg = `command ${cmd}: expected ${numArgs} args, ` + `but received ${argsLength} args.`; + + if (fn >= _util.OPS.moveTo && fn <= _util.OPS.endPath && ++this._numInvalidPathOPS > EvaluatorPreprocessor.MAX_INVALID_PATH_OPS) { + throw new _util.FormatError(`Invalid ${partialMsg}`); + } + + (0, _util.warn)(`Skipping ${partialMsg}`); + + if (args !== null) { + args.length = 0; + } - if (!opSpec) { - (0, _util.warn)("Unknown command \"".concat(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) { - var partialMsg = "command ".concat(cmd, ": expected ").concat(numArgs, " args, ") + "but received ".concat(argsLength, " args."); - - if (fn >= _util.OPS.moveTo && fn <= _util.OPS.endPath && ++this._numInvalidPathOPS > MAX_INVALID_PATH_OPS) { - throw new _util.FormatError("Invalid ".concat(partialMsg)); - } - - (0, _util.warn)("Skipping ".concat(partialMsg)); - - if (args !== null) { - args.length = 0; - } - - continue; - } - } else if (argsLength > numArgs) { - (0, _util.info)("Command ".concat(cmd, ": expected [0, ").concat(numArgs, "] args, ") + "but received ".concat(argsLength, " args.")); - } - - this.preprocessCommand(fn, args); - operation.fn = fn; - operation.args = args; - return true; + } else if (argsLength > numArgs) { + (0, _util.info)(`Command ${cmd}: expected [0, ${numArgs}] args, ` + `but received ${argsLength} args.`); } - if ((0, _primitives.isEOF)(obj)) { - return false; - } - - if (obj !== null) { - if (args === null) { - args = []; - } - - args.push(obj); - - if (args.length > 33) { - throw new _util.FormatError('Too many arguments'); - } - } + this.preprocessCommand(fn, args); + operation.fn = fn; + operation.args = args; + return true; } - }, - preprocessCommand: function EvaluatorPreprocessor_preprocessCommand(fn, args) { - switch (fn | 0) { - case _util.OPS.save: - this.stateManager.save(); - break; - case _util.OPS.restore: - this.stateManager.restore(); - break; + if (obj === _primitives.EOF) { + return false; + } - case _util.OPS.transform: - this.stateManager.transform(args); - break; + if (obj !== null) { + if (args === null) { + args = []; + } + + args.push(obj); + + if (args.length > 33) { + throw new _util.FormatError("Too many arguments"); + } } } - }; - return EvaluatorPreprocessor; -}(); + } + + preprocessCommand(fn, args) { + switch (fn | 0) { + case _util.OPS.save: + this.stateManager.save(); + break; + + case _util.OPS.restore: + this.stateManager.restore(); + break; + + case _util.OPS.transform: + this.stateManager.transform(args); + break; + } + } + +} /***/ }), -/* 173 */ +/* 29 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -33748,283 +25304,231 @@ Object.defineProperty(exports, "__esModule", { }); exports.CMapFactory = exports.IdentityCMap = exports.CMap = void 0; -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -var _primitives = __w_pdfjs_require__(151); +var _primitives = __w_pdfjs_require__(5); -var _parser = __w_pdfjs_require__(157); +var _parser = __w_pdfjs_require__(11); -var _core_utils = __w_pdfjs_require__(154); +var _core_utils = __w_pdfjs_require__(8); -var _stream = __w_pdfjs_require__(158); +var _stream = __w_pdfjs_require__(12); -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -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 = -/*#__PURE__*/ -function () { - function CMap() { - var builtInCMap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - _classCallCheck(this, CMap); +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"]; +const MAX_MAP_RANGE = 2 ** 24 - 1; +class CMap { + constructor(builtInCMap = false) { this.codespaceRanges = [[], [], [], []]; this.numCodespaceRanges = 0; this._map = []; - this.name = ''; + this.name = ""; this.vertical = false; this.useCMap = null; this.builtInCMap = builtInCMap; } - _createClass(CMap, [{ - key: "addCodespaceRange", - value: function addCodespaceRange(n, low, high) { - this.codespaceRanges[n - 1].push(low, high); - this.numCodespaceRanges++; - } - }, { - key: "mapCidRange", - value: function mapCidRange(low, high, dstLow) { - while (low <= high) { - this._map[low++] = dstLow++; - } - } - }, { - key: "mapBfRange", - value: function mapBfRange(low, high, dstLow) { - var lastByte = dstLow.length - 1; + addCodespaceRange(n, low, high) { + this.codespaceRanges[n - 1].push(low, high); + this.numCodespaceRanges++; + } - while (low <= high) { - this._map[low++] = dstLow; - dstLow = dstLow.substring(0, lastByte) + String.fromCharCode(dstLow.charCodeAt(lastByte) + 1); - } + mapCidRange(low, high, dstLow) { + if (high - low > MAX_MAP_RANGE) { + throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE."); } - }, { - key: "mapBfRangeToArray", - value: function mapBfRangeToArray(low, high, array) { - var i = 0, - ii = array.length; - while (low <= high && i < ii) { - this._map[low] = array[i++]; - ++low; - } + while (low <= high) { + this._map[low++] = dstLow++; } - }, { - key: "mapOne", - value: function mapOne(src, dst) { - this._map[src] = dst; - } - }, { - key: "lookup", - value: function lookup(code) { - return this._map[code]; - } - }, { - key: "contains", - value: function contains(code) { - return this._map[code] !== undefined; - } - }, { - key: "forEach", - value: function forEach(callback) { - var map = this._map; - var length = map.length; + } - if (length <= 0x10000) { - for (var i = 0; i < length; i++) { - if (map[i] !== undefined) { - callback(i, map[i]); - } + mapBfRange(low, high, dstLow) { + if (high - low > MAX_MAP_RANGE) { + throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE."); + } + + var lastByte = dstLow.length - 1; + + while (low <= high) { + this._map[low++] = dstLow; + dstLow = dstLow.substring(0, lastByte) + String.fromCharCode(dstLow.charCodeAt(lastByte) + 1); + } + } + + mapBfRangeToArray(low, high, array) { + if (high - low > MAX_MAP_RANGE) { + throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE."); + } + + const ii = array.length; + let i = 0; + + while (low <= high && i < ii) { + this._map[low] = array[i++]; + ++low; + } + } + + mapOne(src, dst) { + this._map[src] = dst; + } + + lookup(code) { + return this._map[code]; + } + + contains(code) { + return this._map[code] !== undefined; + } + + forEach(callback) { + const map = this._map; + const length = map.length; + + if (length <= 0x10000) { + for (let i = 0; i < length; i++) { + if (map[i] !== undefined) { + callback(i, map[i]); } - } else { - for (var _i in map) { - callback(_i, map[_i]); + } + } else { + for (const i in map) { + callback(i, map[i]); + } + } + } + + charCodeOf(value) { + const map = this._map; + + if (map.length <= 0x10000) { + return map.indexOf(value); + } + + for (const charCode in map) { + if (map[charCode] === value) { + return charCode | 0; + } + } + + return -1; + } + + getMap() { + return this._map; + } + + readCharCode(str, offset, out) { + let c = 0; + const codespaceRanges = this.codespaceRanges; + + for (let n = 0, nn = codespaceRanges.length; n < nn; n++) { + c = (c << 8 | str.charCodeAt(offset + n)) >>> 0; + const codespaceRange = codespaceRanges[n]; + + for (let k = 0, kk = codespaceRange.length; k < kk;) { + const low = codespaceRange[k++]; + const high = codespaceRange[k++]; + + if (c >= low && c <= high) { + out.charcode = c; + out.length = n + 1; + return; } } } - }, { - key: "charCodeOf", - value: function charCodeOf(value) { - var map = this._map; - if (map.length <= 0x10000) { - return map.indexOf(value); - } + out.charcode = 0; + out.length = 1; + } - for (var charCode in map) { - if (map[charCode] === value) { - return charCode | 0; - } - } + get length() { + return this._map.length; + } - return -1; + get isIdentityCMap() { + if (!(this.name === "Identity-H" || this.name === "Identity-V")) { + return false; } - }, { - key: "getMap", - value: function getMap() { - return this._map; + + if (this._map.length !== 0x10000) { + return false; } - }, { - key: "readCharCode", - value: function readCharCode(str, offset, out) { - var c = 0; - var codespaceRanges = this.codespaceRanges; - for (var n = 0, nn = codespaceRanges.length; n < nn; 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; - } - }, { - key: "length", - get: function get() { - return this._map.length; - } - }, { - key: "isIdentityCMap", - get: function get() { - if (!(this.name === 'Identity-H' || this.name === 'Identity-V')) { + for (let i = 0; i < 0x10000; i++) { + if (this._map[i] !== i) { 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; -}(); + return true; + } + +} exports.CMap = CMap; -var IdentityCMap = -/*#__PURE__*/ -function (_CMap) { - _inherits(IdentityCMap, _CMap); - - function IdentityCMap(vertical, n) { - var _this; - - _classCallCheck(this, IdentityCMap); - - _this = _possibleConstructorReturn(this, _getPrototypeOf(IdentityCMap).call(this)); - _this.vertical = vertical; - - _this.addCodespaceRange(n, 0, 0xffff); - - return _this; +class IdentityCMap extends CMap { + constructor(vertical, n) { + super(); + this.vertical = vertical; + this.addCodespaceRange(n, 0, 0xffff); } - _createClass(IdentityCMap, [{ - key: "mapCidRange", - value: function mapCidRange(low, high, dstLow) { - (0, _util.unreachable)('should not call mapCidRange'); - } - }, { - key: "mapBfRange", - value: function mapBfRange(low, high, dstLow) { - (0, _util.unreachable)('should not call mapBfRange'); - } - }, { - key: "mapBfRangeToArray", - value: function mapBfRangeToArray(low, high, array) { - (0, _util.unreachable)('should not call mapBfRangeToArray'); - } - }, { - key: "mapOne", - value: function mapOne(src, dst) { - (0, _util.unreachable)('should not call mapCidOne'); - } - }, { - key: "lookup", - value: function lookup(code) { - return Number.isInteger(code) && code <= 0xffff ? code : undefined; - } - }, { - key: "contains", - value: function contains(code) { - return Number.isInteger(code) && code <= 0xffff; - } - }, { - key: "forEach", - value: function forEach(callback) { - for (var i = 0; i <= 0xffff; i++) { - callback(i, i); - } - } - }, { - key: "charCodeOf", - value: function charCodeOf(value) { - return Number.isInteger(value) && value <= 0xffff ? value : -1; - } - }, { - key: "getMap", - value: function getMap() { - var map = new Array(0x10000); + mapCidRange(low, high, dstLow) { + (0, _util.unreachable)("should not call mapCidRange"); + } - for (var i = 0; i <= 0xffff; i++) { - map[i] = i; - } + mapBfRange(low, high, dstLow) { + (0, _util.unreachable)("should not call mapBfRange"); + } - return map; - } - }, { - key: "length", - get: function get() { - return 0x10000; - } - }, { - key: "isIdentityCMap", - get: function get() { - (0, _util.unreachable)('should not access .isIdentityCMap'); - } - }]); + mapBfRangeToArray(low, high, array) { + (0, _util.unreachable)("should not call mapBfRangeToArray"); + } - return IdentityCMap; -}(CMap); + mapOne(src, dst) { + (0, _util.unreachable)("should not call mapCidOne"); + } + + lookup(code) { + return Number.isInteger(code) && code <= 0xffff ? code : undefined; + } + + contains(code) { + return Number.isInteger(code) && code <= 0xffff; + } + + forEach(callback) { + for (let i = 0; i <= 0xffff; i++) { + callback(i, i); + } + } + + charCodeOf(value) { + return Number.isInteger(value) && value <= 0xffff ? value : -1; + } + + getMap() { + const map = new Array(0x10000); + + for (let i = 0; i <= 0xffff; i++) { + map[i] = i; + } + + return map; + } + + get length() { + return 0x10000; + } + + get isIdentityCMap() { + (0, _util.unreachable)("should not access .isIdentityCMap"); + } + +} exports.IdentityCMap = IdentityCMap; @@ -34082,14 +25586,15 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() { } BinaryCMapStream.prototype = { - readByte: function readByte() { + readByte() { if (this.pos >= this.end) { return -1; } return this.buffer[this.pos++]; }, - readNumber: function readNumber() { + + readNumber() { var n = 0; var last; @@ -34097,24 +25602,27 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() { var b = this.readByte(); if (b < 0) { - throw new _util.FormatError('unexpected EOF in bcmap'); + throw new _util.FormatError("unexpected EOF in bcmap"); } last = !(b & 0x80); - n = n << 7 | b & 0x7F; + n = n << 7 | b & 0x7f; } while (!last); return n; }, - readSigned: function readSigned() { + + readSigned() { var n = this.readNumber(); return n & 1 ? ~(n >>> 1) : n >>> 1; }, - readHex: function readHex(num, size) { + + readHex(num, size) { num.set(this.buffer.subarray(this.pos, this.pos + size + 1)); this.pos += size + 1; }, - readHexNumber: function readHexNumber(num, size) { + + readHexNumber(num, size) { var last; var stack = this.tmpBuf, sp = 0; @@ -34123,11 +25631,11 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() { var b = this.readByte(); if (b < 0) { - throw new _util.FormatError('unexpected EOF in bcmap'); + throw new _util.FormatError("unexpected EOF in bcmap"); } last = !(b & 0x80); - stack[sp++] = b & 0x7F; + stack[sp++] = b & 0x7f; } while (!last); var i = size, @@ -34146,7 +25654,8 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() { bufferSize -= 8; } }, - readHexSigned: function readHexSigned(num, size) { + + readHexSigned(num, size) { this.readHexNumber(num, size); var sign = num[size] & 1 ? 255 : 0; var c = 0; @@ -34156,9 +25665,10 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() { num[i] = c >> 1 ^ sign; } }, - readString: function readString() { + + readString() { var len = this.readNumber(); - var s = ''; + var s = ""; for (var i = 0; i < len; i++) { s += String.fromCharCode(this.readNumber()); @@ -34166,6 +25676,7 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() { return s; } + }; function processBinaryCMap(data, cMap, extend) { @@ -34176,9 +25687,7 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() { 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 char = new Uint8Array(MAX_NUM_SIZE); var charCode = new Uint8Array(MAX_NUM_SIZE); var tmp = new Uint8Array(MAX_NUM_SIZE); var code; @@ -34188,7 +25697,7 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() { var type = b >> 5; if (type === 7) { - switch (b & 0x1F) { + switch (b & 0x1f) { case 0: stream.readString(); break; @@ -34205,7 +25714,7 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() { var dataSize = b & 15; if (dataSize + 1 > MAX_NUM_SIZE) { - throw new Error('processBinaryCMap: Invalid dataSize.'); + throw new Error("processBinaryCMap: Invalid dataSize."); } var ucs2DataSize = 1; @@ -34248,20 +25757,20 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() { break; case 2: - stream.readHex(_char, dataSize); + stream.readHex(char, dataSize); code = stream.readNumber(); - cMap.mapOne(hexToInt(_char, dataSize), code); + cMap.mapOne(hexToInt(char, dataSize), code); for (i = 1; i < subitemsCount; i++) { - incHex(_char, dataSize); + incHex(char, dataSize); if (!sequence) { stream.readHexNumber(tmp, dataSize); - addHex(_char, tmp, dataSize); + addHex(char, tmp, dataSize); } code = stream.readSigned() + (code + 1); - cMap.mapOne(hexToInt(_char, dataSize), code); + cMap.mapOne(hexToInt(char, dataSize), code); } break; @@ -34292,22 +25801,22 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() { break; case 4: - stream.readHex(_char, ucs2DataSize); + stream.readHex(char, ucs2DataSize); stream.readHex(charCode, dataSize); - cMap.mapOne(hexToInt(_char, ucs2DataSize), hexToStr(charCode, dataSize)); + cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize)); for (i = 1; i < subitemsCount; i++) { - incHex(_char, ucs2DataSize); + incHex(char, ucs2DataSize); if (!sequence) { stream.readHexNumber(tmp, ucs2DataSize); - addHex(_char, 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)); + cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize)); } break; @@ -34338,7 +25847,7 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() { break; default: - reject(new Error('processBinaryCMap: Unknown type: ' + type)); + reject(new Error("processBinaryCMap: Unknown type: " + type)); return; } } @@ -34373,13 +25882,13 @@ var CMapFactory = function CMapFactoryClosure() { function expectString(obj) { if (!(0, _util.isString)(obj)) { - throw new _util.FormatError('Malformed CMap: expected string.'); + throw new _util.FormatError("Malformed CMap: expected string."); } } function expectInt(obj) { if (!Number.isInteger(obj)) { - throw new _util.FormatError('Malformed CMap: expected int.'); + throw new _util.FormatError("Malformed CMap: expected int."); } } @@ -34391,7 +25900,7 @@ var CMapFactory = function CMapFactoryClosure() { break; } - if ((0, _primitives.isCmd)(obj, 'endbfchar')) { + if ((0, _primitives.isCmd)(obj, "endbfchar")) { return; } @@ -34412,7 +25921,7 @@ var CMapFactory = function CMapFactoryClosure() { break; } - if ((0, _primitives.isCmd)(obj, 'endbfrange')) { + if ((0, _primitives.isCmd)(obj, "endbfrange")) { return; } @@ -34426,11 +25935,11 @@ var CMapFactory = function CMapFactoryClosure() { if (Number.isInteger(obj) || (0, _util.isString)(obj)) { var dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj; cMap.mapBfRange(low, high, dstLow); - } else if ((0, _primitives.isCmd)(obj, '[')) { + } else if ((0, _primitives.isCmd)(obj, "[")) { obj = lexer.getObj(); var array = []; - while (!(0, _primitives.isCmd)(obj, ']') && !(0, _primitives.isEOF)(obj)) { + while (!(0, _primitives.isCmd)(obj, "]") && !(0, _primitives.isEOF)(obj)) { array.push(obj); obj = lexer.getObj(); } @@ -34441,7 +25950,7 @@ var CMapFactory = function CMapFactoryClosure() { } } - throw new _util.FormatError('Invalid bf range.'); + throw new _util.FormatError("Invalid bf range."); } function parseCidChar(cMap, lexer) { @@ -34452,7 +25961,7 @@ var CMapFactory = function CMapFactoryClosure() { break; } - if ((0, _primitives.isCmd)(obj, 'endcidchar')) { + if ((0, _primitives.isCmd)(obj, "endcidchar")) { return; } @@ -34473,7 +25982,7 @@ var CMapFactory = function CMapFactoryClosure() { break; } - if ((0, _primitives.isCmd)(obj, 'endcidrange')) { + if ((0, _primitives.isCmd)(obj, "endcidrange")) { return; } @@ -34497,7 +26006,7 @@ var CMapFactory = function CMapFactoryClosure() { break; } - if ((0, _primitives.isCmd)(obj, 'endcodespacerange')) { + if ((0, _primitives.isCmd)(obj, "endcodespacerange")) { return; } @@ -34516,7 +26025,7 @@ var CMapFactory = function CMapFactoryClosure() { cMap.addCodespaceRange(obj.length, low, high); } - throw new _util.FormatError('Invalid codespace range.'); + throw new _util.FormatError("Invalid codespace range."); } function parseWMode(cMap, lexer) { @@ -34546,42 +26055,42 @@ var CMapFactory = function CMapFactoryClosure() { if ((0, _primitives.isEOF)(obj)) { break; } else if ((0, _primitives.isName)(obj)) { - if (obj.name === 'WMode') { + if (obj.name === "WMode") { parseWMode(cMap, lexer); - } else if (obj.name === 'CMapName') { + } else if (obj.name === "CMapName") { parseCMapName(cMap, lexer); } previous = obj; } else if ((0, _primitives.isCmd)(obj)) { switch (obj.cmd) { - case 'endcmap': + case "endcmap": break objLoop; - case 'usecmap': + case "usecmap": if ((0, _primitives.isName)(previous)) { embeddedUseCMap = previous.name; } break; - case 'begincodespacerange': + case "begincodespacerange": parseCodespaceRange(cMap, lexer); break; - case 'beginbfchar': + case "beginbfchar": parseBfChar(cMap, lexer); break; - case 'begincidchar': + case "begincidchar": parseCidChar(cMap, lexer); break; - case 'beginbfrange': + case "beginbfrange": parseBfRange(cMap, lexer); break; - case 'begincidrange': + case "begincidrange": parseCidRange(cMap, lexer); break; } @@ -34591,7 +26100,7 @@ var CMapFactory = function CMapFactoryClosure() { throw ex; } - (0, _util.warn)('Invalid cMap data: ' + ex); + (0, _util.warn)("Invalid cMap data: " + ex); continue; } } @@ -34631,18 +26140,18 @@ var CMapFactory = function CMapFactoryClosure() { } function createBuiltInCMap(name, fetchBuiltInCMap) { - if (name === 'Identity-H') { + if (name === "Identity-H") { return Promise.resolve(new IdentityCMap(false, 2)); - } else if (name === 'Identity-V') { + } else if (name === "Identity-V") { return Promise.resolve(new IdentityCMap(true, 2)); } if (!BUILT_IN_CMAPS.includes(name)) { - return Promise.reject(new Error('Unknown CMap name: ' + name)); + return Promise.reject(new Error("Unknown CMap name: " + name)); } if (!fetchBuiltInCMap) { - return Promise.reject(new Error('Built-in CMap parameters are not provided.')); + return Promise.reject(new Error("Built-in CMap parameters are not provided.")); } return fetchBuiltInCMap(name).then(function (data) { @@ -34661,12 +26170,12 @@ var CMapFactory = function CMapFactoryClosure() { return parseCMap(cMap, lexer, fetchBuiltInCMap, null); } - return Promise.reject(new Error('TODO: Only BINARY/NONE CMap compression is currently supported.')); + return Promise.reject(new Error("TODO: Only BINARY/NONE CMap compression is currently supported.")); }); } return { - create: function create(params) { + async create(params) { var encoding = params.encoding; var fetchBuiltInCMap = params.fetchBuiltInCMap; var useCMap = params.useCMap; @@ -34685,15 +26194,16 @@ var CMapFactory = function CMapFactoryClosure() { }); } - return Promise.reject(new Error('Encoding required.')); + throw new Error("Encoding required."); } + }; }(); exports.CMapFactory = CMapFactory; /***/ }), -/* 174 */ +/* 30 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -34705,40 +26215,34 @@ Object.defineProperty(exports, "__esModule", { exports.getFontType = getFontType; exports.IdentityToUnicodeMap = exports.ToUnicodeMap = exports.FontFlags = exports.Font = exports.ErrorFont = exports.SEAC_ANALYSIS_ENABLED = void 0; -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -var _cff_parser = __w_pdfjs_require__(175); +var _cff_parser = __w_pdfjs_require__(31); -var _glyphlist = __w_pdfjs_require__(178); +var _glyphlist = __w_pdfjs_require__(34); -var _encodings = __w_pdfjs_require__(177); +var _encodings = __w_pdfjs_require__(33); -var _standard_fonts = __w_pdfjs_require__(179); +var _standard_fonts = __w_pdfjs_require__(35); -var _unicode = __w_pdfjs_require__(180); +var _unicode = __w_pdfjs_require__(36); -var _font_renderer = __w_pdfjs_require__(181); +var _core_utils = __w_pdfjs_require__(8); -var _cmap = __w_pdfjs_require__(173); +var _font_renderer = __w_pdfjs_require__(37); -var _core_utils = __w_pdfjs_require__(154); +var _cmap = __w_pdfjs_require__(29); -var _stream = __w_pdfjs_require__(158); +var _stream = __w_pdfjs_require__(12); -var _type1_parser = __w_pdfjs_require__(182); +var _type1_parser = __w_pdfjs_require__(38); -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -var PRIVATE_USE_AREAS = [[0xE000, 0xF8FF], [0x100000, 0x10FFFD]]; +const PRIVATE_USE_AREAS = [[0xe000, 0xf8ff], [0x100000, 0x10fffd]]; var PDF_GLYPH_SPACE_UNITS = 1000; var SEAC_ANALYSIS_ENABLED = true; exports.SEAC_ANALYSIS_ENABLED = SEAC_ANALYSIS_ENABLED; +const EXPORT_DATA_PROPERTIES = ["ascent", "bbox", "black", "bold", "charProcOperatorList", "composite", "data", "defaultVMetrics", "defaultWidth", "descent", "fallbackName", "fontMatrix", "fontType", "isMonospace", "isSerifFont", "isType3Font", "italic", "loadedName", "mimetype", "missingFile", "name", "remeasure", "subtype", "type", "vertical"]; +const EXPORT_DATA_EXTRA_PROPERTIES = ["cMap", "defaultEncoding", "differences", "isSymbolicFont", "seacMap", "toFontChar", "toUnicode", "vmetrics", "widths"]; var FontFlags = { FixedPitch: 1, Serif: 2, @@ -34751,7 +26255,7 @@ var FontFlags = { ForceBold: 262144 }; exports.FontFlags = FontFlags; -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']; +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) { @@ -34806,25 +26310,25 @@ function adjustToUnicode(properties, builtInEncoding) { function getFontType(type, subtype) { switch (type) { - case 'Type1': - return subtype === 'Type1C' ? _util.FontType.TYPE1C : _util.FontType.TYPE1; + case "Type1": + return subtype === "Type1C" ? _util.FontType.TYPE1C : _util.FontType.TYPE1; - case 'CIDFontType0': - return subtype === 'CIDFontType0C' ? _util.FontType.CIDFONTTYPE0C : _util.FontType.CIDFONTTYPE0; + case "CIDFontType0": + return subtype === "CIDFontType0C" ? _util.FontType.CIDFONTTYPE0C : _util.FontType.CIDFONTTYPE0; - case 'OpenType': + case "OpenType": return _util.FontType.OPENTYPE; - case 'TrueType': + case "TrueType": return _util.FontType.TRUETYPE; - case 'CIDFontType2': + case "CIDFontType2": return _util.FontType.CIDFONTTYPE2; - case 'MMType1': + case "MMType1": return _util.FontType.MMTYPE1; - case 'Type0': + case "Type0": return _util.FontType.TYPE0; default: @@ -34847,7 +26351,7 @@ function recoverGlyphName(name, glyphsUnicodeMap) { } } - (0, _util.info)('Unable to recover a standard glyph name for: ' + name); + (0, _util.info)("Unable to recover a standard glyph name for: " + name); return name; } @@ -34871,8 +26375,7 @@ var Glyph = function GlyphClosure() { }(); var ToUnicodeMap = function ToUnicodeMapClosure() { - function ToUnicodeMap() { - var cmap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + function ToUnicodeMap(cmap = []) { this._map = cmap; } @@ -34881,25 +26384,28 @@ var ToUnicodeMap = function ToUnicodeMapClosure() { return this._map.length; }, - forEach: function forEach(callback) { + forEach(callback) { for (var charCode in this._map) { callback(charCode, this._map[charCode].charCodeAt(0)); } }, - has: function has(i) { + + has(i) { return this._map[i] !== undefined; }, - get: function get(i) { + + get(i) { return this._map[i]; }, - charCodeOf: function charCodeOf(value) { - var map = this._map; + + charCodeOf(value) { + const map = this._map; if (map.length <= 0x10000) { return map.indexOf(value); } - for (var charCode in map) { + for (const charCode in map) { if (map[charCode] === value) { return charCode | 0; } @@ -34907,11 +26413,13 @@ var ToUnicodeMap = function ToUnicodeMapClosure() { return -1; }, - amend: function amend(map) { + + amend(map) { for (var charCode in map) { this._map[charCode] = map[charCode]; } } + }; return ToUnicodeMap; }(); @@ -34929,27 +26437,32 @@ var IdentityToUnicodeMap = function IdentityToUnicodeMapClosure() { return this.lastChar + 1 - this.firstChar; }, - forEach: function forEach(callback) { + forEach(callback) { for (var i = this.firstChar, ii = this.lastChar; i <= ii; i++) { callback(i, i); } }, - has: function has(i) { + + has(i) { return this.firstChar <= i && i <= this.lastChar; }, - get: function get(i) { + + get(i) { if (this.firstChar <= i && i <= this.lastChar) { return String.fromCharCode(i); } return undefined; }, - charCodeOf: function charCodeOf(v) { + + charCodeOf(v) { return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar ? v : -1; }, - amend: function amend(map) { - (0, _util.unreachable)('Should not call amend()'); + + amend(map) { + (0, _util.unreachable)("Should not call amend()"); } + }; return IdentityToUnicodeMap; }(); @@ -34958,15 +26471,15 @@ exports.IdentityToUnicodeMap = IdentityToUnicodeMap; var OpenTypeFileBuilder = function OpenTypeFileBuilderClosure() { function writeInt16(dest, offset, num) { - dest[offset] = num >> 8 & 0xFF; - dest[offset + 1] = num & 0xFF; + 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; + 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) { @@ -34974,13 +26487,13 @@ var OpenTypeFileBuilder = function OpenTypeFileBuilderClosure() { if (data instanceof Uint8Array) { dest.set(data, offset); - } else if (typeof data === 'string') { + } else if (typeof data === "string") { for (i = 0, ii = data.length; i < ii; i++) { - dest[offset++] = data.charCodeAt(i) & 0xFF; + dest[offset++] = data.charCodeAt(i) & 0xff; } } else { for (i = 0, ii = data.length; i < ii; i++) { - dest[offset++] = data[i] & 0xFF; + dest[offset++] = data[i] & 0xff; } } } @@ -35034,14 +26547,14 @@ var OpenTypeFileBuilder = function OpenTypeFileBuilderClosure() { writeData(file, tableOffsets[i], table); } - if (sfnt === 'true') { + if (sfnt === "true") { sfnt = (0, _util.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; + 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); @@ -35051,14 +26564,14 @@ var OpenTypeFileBuilder = function OpenTypeFileBuilderClosure() { 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; + 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 = (0, _util.readUint32)(file, j); + var quad = (0, _core_utils.readUint32)(file, j); checksum = checksum + quad >>> 0; } @@ -35072,7 +26585,7 @@ var OpenTypeFileBuilder = function OpenTypeFileBuilderClosure() { }, addTable: function OpenTypeFileBuilder_addTable(tag, data) { if (tag in this.tables) { - throw new Error('Table ' + tag + ' already exists'); + throw new Error("Table " + tag + " already exists"); } this.tables[tag] = data; @@ -35087,7 +26600,6 @@ var Font = function FontClosure() { 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); @@ -35097,12 +26609,19 @@ var Font = function FontClosure() { var subtype = properties.subtype; this.type = type; this.subtype = subtype; - this.fallbackName = this.isMonospace ? 'monospace' : this.isSerifFont ? 'serif' : 'sans-serif'; + let fallbackName = "sans-serif"; + + if (this.isMonospace) { + fallbackName = "monospace"; + } else if (this.isSerifFont) { + fallbackName = "serif"; + } + + this.fallbackName = fallbackName; 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; @@ -35113,7 +26632,7 @@ var Font = function FontClosure() { this.fallbackToUnicode = properties.fallbackToUnicode || new ToUnicodeMap(); this.toFontChar = []; - if (properties.type === 'Type3') { + if (properties.type === "Type3") { for (charCode = 0; charCode < 256; charCode++) { this.toFontChar[charCode] = this.differences[charCode] || properties.defaultEncoding[charCode]; } @@ -35123,7 +26642,7 @@ var Font = function FontClosure() { } this.cidEncoding = properties.cidEncoding; - this.vertical = properties.vertical; + this.vertical = !!properties.vertical; if (this.vertical) { this.vmetrics = properties.vmetrics; @@ -35132,54 +26651,49 @@ var Font = function FontClosure() { if (!file || file.isEmpty) { if (file) { - (0, _util.warn)('Font file is empty in "' + name + '" (' + this.loadedName + ')'); + (0, _util.warn)('Font file is empty in "' + name + '" (' + this.loadedName + ")"); } this.fallbackToSystemFont(); return; } - var _getFontFileType = getFontFileType(file, properties); - - var _getFontFileType2 = _slicedToArray(_getFontFileType, 2); - - type = _getFontFileType2[0]; - subtype = _getFontFileType2[1]; + [type, subtype] = getFontFileType(file, properties); if (type !== this.type || subtype !== this.subtype) { - (0, _util.info)('Inconsistent font file Type/SubType, expected: ' + "".concat(this.type, "/").concat(this.subtype, " but found: ").concat(type, "/").concat(subtype, ".")); + (0, _util.info)("Inconsistent font file Type/SubType, expected: " + `${this.type}/${this.subtype} but found: ${type}/${subtype}.`); } try { var data; switch (type) { - case 'MMType1': - (0, _util.info)('MMType1 font (' + name + '), falling back to Type1.'); + case "MMType1": + (0, _util.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); + 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'; + case "OpenType": + case "TrueType": + case "CIDFontType2": + this.mimetype = "font/opentype"; data = this.checkAndRepair(name, file, properties); if (this.isOpenType) { adjustWidths(properties); - type = 'OpenType'; + type = "OpenType"; } break; default: - throw new _util.FormatError("Font ".concat(type, " is not supported")); + throw new _util.FormatError(`Font ${type} is not supported`); } } catch (e) { (0, _util.warn)(e); @@ -35193,17 +26707,9 @@ var Font = function FontClosure() { this.widths = properties.widths; this.defaultWidth = properties.defaultWidth; this.toUnicode = properties.toUnicode; - this.encoding = properties.baseEncoding; this.seacMap = properties.seacMap; } - Font.getFontID = function () { - var ID = 1; - return function Font_getFontID() { - return String(ID++); - }; - }(); - function int16(b0, b1) { return (b0 << 8) + b1; } @@ -35227,23 +26733,28 @@ var Font = function FontClosure() { } function safeString16(value) { - value = value > 0x7FFF ? 0x7FFF : value < -0x8000 ? -0x8000 : value; + if (value > 0x7fff) { + value = 0x7fff; + } else if (value < -0x8000) { + value = -0x8000; + } + return String.fromCharCode(value >> 8 & 0xff, value & 0xff); } function isTrueTypeFile(file) { var header = file.peekBytes(4); - return (0, _util.readUint32)(header, 0) === 0x00010000 || (0, _util.bytesToString)(header) === 'true'; + return (0, _core_utils.readUint32)(header, 0) === 0x00010000 || (0, _util.bytesToString)(header) === "true"; } function isTrueTypeCollectionFile(file) { - var header = file.peekBytes(4); - return (0, _util.bytesToString)(header) === 'ttcf'; + const header = file.peekBytes(4); + return (0, _util.bytesToString)(header) === "ttcf"; } function isOpenTypeFile(file) { var header = file.peekBytes(4); - return (0, _util.bytesToString)(header) === 'OTTO'; + return (0, _util.bytesToString)(header) === "OTTO"; } function isType1File(file) { @@ -35261,7 +26772,7 @@ var Font = function FontClosure() { } function isCFFFile(file) { - var header = file.peekBytes(4); + const header = file.peekBytes(4); if (header[0] >= 1 && header[3] >= 1 && header[3] <= 4) { return true; @@ -35270,40 +26781,41 @@ var Font = function FontClosure() { return false; } - function getFontFileType(file, _ref) { - var type = _ref.type, - subtype = _ref.subtype, - composite = _ref.composite; - var fileType, fileSubtype; + function getFontFileType(file, { + type, + subtype, + composite + }) { + let fileType, fileSubtype; if (isTrueTypeFile(file) || isTrueTypeCollectionFile(file)) { if (composite) { - fileType = 'CIDFontType2'; + fileType = "CIDFontType2"; } else { - fileType = 'TrueType'; + fileType = "TrueType"; } } else if (isOpenTypeFile(file)) { if (composite) { - fileType = 'CIDFontType2'; + fileType = "CIDFontType2"; } else { - fileType = 'OpenType'; + fileType = "OpenType"; } } else if (isType1File(file)) { if (composite) { - fileType = 'CIDFontType0'; + fileType = "CIDFontType0"; } else { - fileType = type === 'MMType1' ? 'MMType1' : 'Type1'; + fileType = type === "MMType1" ? "MMType1" : "Type1"; } } else if (isCFFFile(file)) { if (composite) { - fileType = 'CIDFontType0'; - fileSubtype = 'CIDFontType0C'; + fileType = "CIDFontType0"; + fileSubtype = "CIDFontType0C"; } else { - fileType = type === 'MMType1' ? 'MMType1' : 'Type1'; - fileSubtype = 'Type1C'; + fileType = type === "MMType1" ? "MMType1" : "Type1"; + fileSubtype = "Type1C"; } } else { - (0, _util.warn)('getFontFileType: Unable to detect correct font file Type/Subtype.'); + (0, _util.warn)("getFontFileType: Unable to detect correct font file Type/Subtype."); fileType = type; fileSubtype = subtype; } @@ -35353,7 +26865,7 @@ var Font = function FontClosure() { privateUseAreaIndex++; if (privateUseAreaIndex >= PRIVATE_USE_AREAS.length) { - (0, _util.warn)('Ran out of space in font private use area.'); + (0, _util.warn)("Ran out of space in font private use area."); break; } @@ -35372,9 +26884,9 @@ var Font = function FontClosure() { } return { - toFontChar: toFontChar, + toFontChar, charCodeToGlyphId: newMap, - nextAvailableFontCharCode: nextAvailableFontCharCode + nextAvailableFontCharCode }; } @@ -35416,7 +26928,7 @@ var Font = function FontClosure() { ++end; ++n; - if (end === 0xFFFF) { + if (end === 0xffff) { break; } } @@ -35429,30 +26941,30 @@ var Font = function FontClosure() { 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' + (0, _util.string32)(4 + numTables * 8); + var numTables = ranges[ranges.length - 1][1] > 0xffff ? 2 : 1; + var cmap = "\x00\x00" + string16(numTables) + "\x00\x03" + "\x00\x01" + (0, _util.string32)(4 + numTables * 8); var i, ii, j, jj; for (i = ranges.length - 1; i >= 0; --i) { - if (ranges[i][0] <= 0xFFFF) { + if (ranges[i][0] <= 0xffff) { break; } } var bmpLength = i + 1; - if (ranges[i][0] < 0xFFFF && ranges[i][1] === 0xFFFF) { - ranges[i][1] = 0xFFFE; + if (ranges[i][0] < 0xffff && ranges[i][1] === 0xffff) { + ranges[i][1] = 0xfffe; } - var trailingRangesCount = ranges[i][1] < 0xFFFF ? 1 : 0; + 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 startCount = ""; + var endCount = ""; + var idDeltas = ""; + var idRangeOffsets = ""; + var glyphsIds = ""; var bias = 0; var range, start, end, codes; @@ -35483,25 +26995,25 @@ var Font = function FontClosure() { } } else { var startCode = codes[0]; - idDeltas += string16(startCode - start & 0xFFFF); + idDeltas += string16(startCode - start & 0xffff); idRangeOffsets += string16(0); } } if (trailingRangesCount > 0) { - endCount += '\xFF\xFF'; - startCount += '\xFF\xFF'; - idDeltas += '\x00\x01'; - idRangeOffsets += '\x00\x00'; + 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 = ''; + 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' + (0, _util.string32)(4 + numTables * 8 + 4 + format314.length); - format31012 = ''; + cmap += "\x00\x03" + "\x00\x0A" + (0, _util.string32)(4 + numTables * 8 + 4 + format314.length); + format31012 = ""; for (i = 0, ii = ranges.length; i < ii; i++) { range = ranges[i]; @@ -35521,31 +27033,31 @@ var Font = function FontClosure() { format31012 += (0, _util.string32)(start) + (0, _util.string32)(range[1]) + (0, _util.string32)(code); } - header31012 = '\x00\x0C' + '\x00\x00' + (0, _util.string32)(format31012.length + 16) + '\x00\x00\x00\x00' + (0, _util.string32)(format31012.length / 12); + header31012 = "\x00\x0C" + "\x00\x00" + (0, _util.string32)(format31012.length + 16) + "\x00\x00\x00\x00" + (0, _util.string32)(format31012.length / 12); } - return cmap + '\x00\x04' + string16(format314.length + 4) + format314 + header31012 + format31012; + return cmap + "\x00\x04" + string16(format314.length + 4) + format314 + header31012 + format31012; } - function validateOS2Table(os2) { - var stream = new _stream.Stream(os2.data); - var version = stream.getUint16(); - stream.getBytes(60); - var selection = stream.getUint16(); + function validateOS2Table(os2, file) { + file.pos = (file.start || 0) + os2.offset; + var version = file.getUint16(); + file.skip(60); + var selection = file.getUint16(); if (version < 4 && selection & 0x0300) { return false; } - var firstChar = stream.getUint16(); - var lastChar = stream.getUint16(); + var firstChar = file.getUint16(); + var lastChar = file.getUint16(); if (firstChar > lastChar) { return false; } - stream.getBytes(6); - var usWinAscent = stream.getUint16(); + file.skip(6); + var usWinAscent = file.getUint16(); if (usWinAscent === 0) { return false; @@ -35593,12 +27105,12 @@ var Font = function FontClosure() { } else if (position < 123) { ulUnicodeRange4 |= 1 << position - 96; } else { - throw new _util.FormatError('Unicode ranges Bits > 123 are reserved for internal usage'); + throw new _util.FormatError("Unicode ranges Bits > 123 are reserved for internal usage"); } } - if (lastCharIndex > 0xFFFF) { - lastCharIndex = 0xFFFF; + if (lastCharIndex > 0xffff) { + lastCharIndex = 0xffff; } } else { firstCharIndex = 0; @@ -35617,12 +27129,12 @@ var Font = function FontClosure() { 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' + (0, _util.string32)(ulUnicodeRange1) + (0, _util.string32)(ulUnicodeRange2) + (0, _util.string32)(ulUnicodeRange3) + (0, _util.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'; + 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" + (0, _util.string32)(ulUnicodeRange1) + (0, _util.string32)(ulUnicodeRange2) + (0, _util.string32)(ulUnicodeRange3) + (0, _util.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' + (0, _util.string32)(angle) + '\x00\x00' + '\x00\x00' + (0, _util.string32)(properties.fixedPitch) + '\x00\x00\x00\x00' + '\x00\x00\x00\x00' + '\x00\x00\x00\x00' + '\x00\x00\x00\x00'; + var angle = Math.floor(properties.italicAngle * 2 ** 16); + return "\x00\x03\x00\x00" + (0, _util.string32)(angle) + "\x00\x00" + "\x00\x00" + (0, _util.string32)(properties.fixedPitch) + "\x00\x00\x00\x00" + "\x00\x00\x00\x00" + "\x00\x00\x00\x00" + "\x00\x00\x00\x00"; } function createNameTable(name, proto) { @@ -35630,7 +27142,7 @@ var Font = function FontClosure() { 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 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; @@ -35642,15 +27154,15 @@ var Font = function FontClosure() { strBufUnicode.push(string16(str.charCodeAt(j))); } - stringsUnicode.push(strBufUnicode.join('')); + 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 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 nameTable = "\x00\x00" + string16(namesRecordCount) + string16(namesRecordCount * 12 + 6); var strOffset = 0; for (i = 0, ii = platforms.length; i < ii; i++) { @@ -35664,7 +27176,7 @@ var Font = function FontClosure() { } } - nameTable += strings.join('') + stringsUnicode.join(''); + nameTable += strings.join("") + stringsUnicode.join(""); return nameTable; } @@ -35672,35 +27184,36 @@ var Font = function FontClosure() { name: null, font: null, mimetype: null, - encoding: null, disableFontFace: false, get renderer() { var renderer = _font_renderer.FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED); - return (0, _util.shadow)(this, 'renderer', renderer); + return (0, _util.shadow)(this, "renderer", renderer); }, - exportData: function Font_exportData() { - var data = {}; + exportData(extraProperties = false) { + const exportDataProperties = extraProperties ? [...EXPORT_DATA_PROPERTIES, ...EXPORT_DATA_EXTRA_PROPERTIES] : EXPORT_DATA_PROPERTIES; + const data = Object.create(null); + let property, value; - for (var i in this) { - if (this.hasOwnProperty(i)) { - data[i] = this[i]; + for (property of exportDataProperties) { + value = this[property]; + + if (value !== undefined) { + data[property] = value; } } return data; }, - fallbackToSystemFont: function Font_fallbackToSystemFont() { - var _this = this; + fallbackToSystemFont: function Font_fallbackToSystemFont() { this.missingFile = true; - var charCode, unicode; var name = this.name; var type = this.type; var subtype = this.subtype; - var fontName = name.replace(/[,_]/g, '-'); + let fontName = name.replace(/[,_]/g, "-").replace(/\s/g, ""); var stdFontMap = (0, _standard_fonts.getStdFontMap)(), nonStdFontMap = (0, _standard_fonts.getNonStdFontMap)(); var isStandardFont = !!stdFontMap[fontName] || !!(nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]); @@ -35710,24 +27223,24 @@ var Font = function FontClosure() { this.black = name.search(/Black/g) !== -1; this.remeasure = Object.keys(this.widths).length > 0; - if (isStandardFont && type === 'CIDFontType2' && this.cidEncoding.startsWith('Identity-')) { - var GlyphMapForStandardFonts = (0, _standard_fonts.getGlyphMapForStandardFonts)(); - var map = []; + if (isStandardFont && type === "CIDFontType2" && this.cidEncoding.startsWith("Identity-")) { + const GlyphMapForStandardFonts = (0, _standard_fonts.getGlyphMapForStandardFonts)(); + const map = []; - for (charCode in GlyphMapForStandardFonts) { + for (const charCode in GlyphMapForStandardFonts) { map[+charCode] = GlyphMapForStandardFonts[charCode]; } if (/Arial-?Black/i.test(name)) { var SupplementalGlyphMapForArialBlack = (0, _standard_fonts.getSupplementalGlyphMapForArialBlack)(); - for (charCode in SupplementalGlyphMapForArialBlack) { + for (const charCode in SupplementalGlyphMapForArialBlack) { map[+charCode] = SupplementalGlyphMapForArialBlack[charCode]; } } else if (/Calibri/i.test(name)) { - var SupplementalGlyphMapForCalibri = (0, _standard_fonts.getSupplementalGlyphMapForCalibri)(); + const SupplementalGlyphMapForCalibri = (0, _standard_fonts.getSupplementalGlyphMapForCalibri)(); - for (charCode in SupplementalGlyphMapForCalibri) { + for (const charCode in SupplementalGlyphMapForCalibri) { map[+charCode] = SupplementalGlyphMapForCalibri[charCode]; } } @@ -35746,47 +27259,60 @@ var Font = function FontClosure() { this.toFontChar = buildToFontChar(_encodings.SymbolSetEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences); } else if (/Dingbats/i.test(fontName)) { if (/Wingdings/i.test(name)) { - (0, _util.warn)('Non-embedded Wingdings font, falling back to ZapfDingbats.'); + (0, _util.warn)("Non-embedded Wingdings font, falling back to ZapfDingbats."); } this.toFontChar = buildToFontChar(_encodings.ZapfDingbatsEncoding, (0, _glyphlist.getDingbatsGlyphsUnicode)(), this.differences); } else if (isStandardFont) { this.toFontChar = buildToFontChar(this.defaultEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences); } else { - var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)(); - this.toUnicode.forEach(function (charCode, unicodeCharCode) { - if (!_this.composite) { - var glyphName = _this.differences[charCode] || _this.defaultEncoding[charCode]; - unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap); + const glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)(); + const map = []; + this.toUnicode.forEach((charCode, unicodeCharCode) => { + if (!this.composite) { + var glyphName = this.differences[charCode] || this.defaultEncoding[charCode]; + const unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap); if (unicode !== -1) { unicodeCharCode = unicode; } } - _this.toFontChar[charCode] = unicodeCharCode; + map[+charCode] = unicodeCharCode; }); + + if (this.composite && this.toUnicode instanceof IdentityToUnicodeMap) { + if (/Verdana/i.test(name)) { + const GlyphMapForStandardFonts = (0, _standard_fonts.getGlyphMapForStandardFonts)(); + + for (const charCode in GlyphMapForStandardFonts) { + map[+charCode] = GlyphMapForStandardFonts[charCode]; + } + } + } + + this.toFontChar = map; } - this.loadedName = fontName.split('-')[0]; + this.loadedName = fontName.split("-")[0]; this.fontType = getFontType(type, subtype); }, checkAndRepair: function Font_checkAndRepair(name, font, properties) { - var VALID_TABLES = ['OS/2', 'cmap', 'head', 'hhea', 'hmtx', 'maxp', 'name', 'post', 'loca', 'glyf', 'fpgm', 'prep', 'cvt ', 'CFF ']; + const VALID_TABLES = ["OS/2", "cmap", "head", "hhea", "hmtx", "maxp", "name", "post", "loca", "glyf", "fpgm", "prep", "cvt ", "CFF "]; function readTables(file, numTables) { - 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; + const 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; - for (var i = 0; i < numTables; i++) { - var table = readTableEntry(font); + for (let i = 0; i < numTables; i++) { + const table = readTableEntry(file); if (!VALID_TABLES.includes(table.tag)) { continue; @@ -35813,17 +27339,17 @@ var Font = function FontClosure() { var data = file.getBytes(length); file.pos = previousPosition; - if (tag === 'head') { + 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 + tag, + checksum, + length, + offset, + data }; } @@ -35838,23 +27364,23 @@ var Font = function FontClosure() { } function readTrueTypeCollectionHeader(ttc) { - var ttcTag = (0, _util.bytesToString)(ttc.getBytes(4)); - (0, _util.assert)(ttcTag === 'ttcf', 'Must be a TrueType Collection font.'); - var majorVersion = ttc.getUint16(); - var minorVersion = ttc.getUint16(); - var numFonts = ttc.getInt32() >>> 0; - var offsetTable = []; + const ttcTag = (0, _util.bytesToString)(ttc.getBytes(4)); + (0, _util.assert)(ttcTag === "ttcf", "Must be a TrueType Collection font."); + const majorVersion = ttc.getUint16(); + const minorVersion = ttc.getUint16(); + const numFonts = ttc.getInt32() >>> 0; + const offsetTable = []; - for (var i = 0; i < numFonts; i++) { + for (let i = 0; i < numFonts; i++) { offsetTable.push(ttc.getInt32() >>> 0); } - var header = { - ttcTag: ttcTag, - majorVersion: majorVersion, - minorVersion: minorVersion, - numFonts: numFonts, - offsetTable: offsetTable + const header = { + ttcTag, + majorVersion, + minorVersion, + numFonts, + offsetTable }; switch (majorVersion) { @@ -35868,30 +27394,31 @@ var Font = function FontClosure() { return header; } - throw new _util.FormatError("Invalid TrueType Collection majorVersion: ".concat(majorVersion, ".")); + throw new _util.FormatError(`Invalid TrueType Collection majorVersion: ${majorVersion}.`); } function readTrueTypeCollectionData(ttc, fontName) { - var _readTrueTypeCollecti = readTrueTypeCollectionHeader(ttc), - numFonts = _readTrueTypeCollecti.numFonts, - offsetTable = _readTrueTypeCollecti.offsetTable; + const { + numFonts, + offsetTable + } = readTrueTypeCollectionHeader(ttc); - for (var i = 0; i < numFonts; i++) { + for (let i = 0; i < numFonts; i++) { ttc.pos = (ttc.start || 0) + offsetTable[i]; - var potentialHeader = readOpenTypeHeader(ttc); - var potentialTables = readTables(ttc, potentialHeader.numTables); + const potentialHeader = readOpenTypeHeader(ttc); + const potentialTables = readTables(ttc, potentialHeader.numTables); - if (!potentialTables['name']) { + if (!potentialTables.name) { throw new _util.FormatError('TrueType Collection font must contain a "name" table.'); } - var nameTable = readNameTable(potentialTables['name']); + const nameTable = readNameTable(potentialTables.name); - for (var j = 0, jj = nameTable.length; j < jj; j++) { - for (var k = 0, kk = nameTable[j].length; k < kk; k++) { - var nameEntry = nameTable[j][k]; + for (let j = 0, jj = nameTable.length; j < jj; j++) { + for (let k = 0, kk = nameTable[j].length; k < kk; k++) { + const nameEntry = nameTable[j][k]; - if (nameEntry && nameEntry.replace(/\s/g, '') === fontName) { + if (nameEntry && nameEntry.replace(/\s/g, "") === fontName) { return { header: potentialHeader, tables: potentialTables @@ -35901,12 +27428,12 @@ var Font = function FontClosure() { } } - throw new _util.FormatError("TrueType Collection does not contain \"".concat(fontName, "\" font.")); + throw new _util.FormatError(`TrueType Collection does not contain "${fontName}" font.`); } - function readCmapTable(cmap, font, isSymbolicFont, hasEncoding) { + function readCmapTable(cmap, file, isSymbolicFont, hasEncoding) { if (!cmap) { - (0, _util.warn)('No cmap table available.'); + (0, _util.warn)("No cmap table available."); return { platformId: -1, encodingId: -1, @@ -35916,24 +27443,24 @@ var Font = function FontClosure() { } var segment; - var start = (font.start ? font.start : 0) + cmap.offset; - font.pos = start; - font.getUint16(); - var numTables = font.getUint16(); + var start = (file.start ? file.start : 0) + cmap.offset; + file.pos = start; + file.skip(2); + var numTables = file.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 platformId = file.getUint16(); + var encodingId = file.getUint16(); + var offset = file.getInt32() >>> 0; var useTable = false; if (potentialTable && potentialTable.platformId === platformId && potentialTable.encodingId === encodingId) { continue; } - if (platformId === 0 && encodingId === 0) { + if (platformId === 0 && (encodingId === 0 || encodingId === 1 || encodingId === 3)) { useTable = true; } else if (platformId === 1 && encodingId === 0) { useTable = true; @@ -35950,9 +27477,9 @@ var Font = function FontClosure() { if (useTable) { potentialTable = { - platformId: platformId, - encodingId: encodingId, - offset: offset + platformId, + encodingId, + offset }; } @@ -35962,11 +27489,11 @@ var Font = function FontClosure() { } if (potentialTable) { - font.pos = start + potentialTable.offset; + file.pos = start + potentialTable.offset; } - if (!potentialTable || font.peekByte() === -1) { - (0, _util.warn)('Could not find a preferred cmap table.'); + if (!potentialTable || file.peekByte() === -1) { + (0, _util.warn)("Could not find a preferred cmap table."); return { platformId: -1, encodingId: -1, @@ -35975,16 +27502,15 @@ var Font = function FontClosure() { }; } - var format = font.getUint16(); - font.getUint16(); - font.getUint16(); + var format = file.getUint16(); + file.skip(2 + 2); var hasShortCmap = false; var mappings = []; var j, glyphId; if (format === 0) { for (j = 0; j < 256; j++) { - var index = font.getByte(); + var index = file.getByte(); if (!index) { continue; @@ -35998,32 +27524,32 @@ var Font = function FontClosure() { hasShortCmap = true; } else if (format === 4) { - var segCount = font.getUint16() >> 1; - font.getBytes(6); + var segCount = file.getUint16() >> 1; + file.skip(6); var segIndex, segments = []; for (segIndex = 0; segIndex < segCount; segIndex++) { segments.push({ - end: font.getUint16() + end: file.getUint16() }); } - font.getUint16(); + file.skip(2); for (segIndex = 0; segIndex < segCount; segIndex++) { - segments[segIndex].start = font.getUint16(); + segments[segIndex].start = file.getUint16(); } for (segIndex = 0; segIndex < segCount; segIndex++) { - segments[segIndex].delta = font.getUint16(); + segments[segIndex].delta = file.getUint16(); } var offsetsCount = 0; for (segIndex = 0; segIndex < segCount; segIndex++) { segment = segments[segIndex]; - var rangeOffset = font.getUint16(); + var rangeOffset = file.getUint16(); if (!rangeOffset) { segment.offsetIndex = -1; @@ -36038,7 +27564,7 @@ var Font = function FontClosure() { var offsets = []; for (j = 0; j < offsetsCount; j++) { - offsets.push(font.getUint16()); + offsets.push(file.getUint16()); } for (segIndex = 0; segIndex < segCount; segIndex++) { @@ -36049,32 +27575,32 @@ var Font = function FontClosure() { offsetIndex = segment.offsetIndex; for (j = start; j <= end; j++) { - if (j === 0xFFFF) { + if (j === 0xffff) { continue; } glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start]; - glyphId = glyphId + delta & 0xFFFF; + glyphId = glyphId + delta & 0xffff; mappings.push({ charCode: j, - glyphId: glyphId + glyphId }); } } } else if (format === 6) { - var firstCode = font.getUint16(); - var entryCount = font.getUint16(); + var firstCode = file.getUint16(); + var entryCount = file.getUint16(); for (j = 0; j < entryCount; j++) { - glyphId = font.getUint16(); + glyphId = file.getUint16(); var charCode = firstCode + j; mappings.push({ - charCode: charCode, - glyphId: glyphId + charCode, + glyphId }); } } else { - (0, _util.warn)('cmap table has unsupported format: ' + format); + (0, _util.warn)("cmap table has unsupported format: " + format); return { platformId: -1, encodingId: -1, @@ -36097,12 +27623,12 @@ var Font = function FontClosure() { return { platformId: potentialTable.platformId, encodingId: potentialTable.encodingId, - mappings: mappings, - hasShortCmap: hasShortCmap + mappings, + hasShortCmap }; } - function sanitizeMetrics(font, header, metrics, numGlyphs, dupFirstEntry) { + function sanitizeMetrics(file, header, metrics, numGlyphs, dupFirstEntry) { if (!header) { if (metrics) { metrics.data = null; @@ -36111,24 +27637,24 @@ var Font = function FontClosure() { return; } - font.pos = (font.start ? font.start : 0) + header.offset; - font.pos += 4; - font.pos += 2; - font.pos += 2; - font.pos += 2; - font.pos += 2; - font.pos += 2; - font.pos += 2; - font.pos += 2; - font.pos += 2; - font.pos += 2; - font.pos += 2; - font.pos += 8; - font.pos += 2; - var numOfMetrics = font.getUint16(); + file.pos = (file.start ? file.start : 0) + header.offset; + file.pos += 4; + file.pos += 2; + file.pos += 2; + file.pos += 2; + file.pos += 2; + file.pos += 2; + file.pos += 2; + file.pos += 2; + file.pos += 2; + file.pos += 2; + file.pos += 2; + file.pos += 8; + file.pos += 2; + var numOfMetrics = file.getUint16(); if (numOfMetrics > numGlyphs) { - (0, _util.info)('The numOfMetrics (' + numOfMetrics + ') should not be ' + 'greater than the numGlyphs (' + numGlyphs + ')'); + (0, _util.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; @@ -36191,11 +27717,27 @@ var Font = function FontClosure() { for (i = 0; i < flagsCount; i++) { var flag = glyf[j++]; - if (flag & 0xC0) { - glyf[j - 1] = flag & 0x3F; + if (flag & 0xc0) { + glyf[j - 1] = flag & 0x3f; } - var xyLength = (flag & 2 ? 1 : flag & 16 ? 0 : 2) + (flag & 4 ? 1 : flag & 32 ? 0 : 2); + let xLength = 2; + + if (flag & 2) { + xLength = 1; + } else if (flag & 16) { + xLength = 0; + } + + let yLength = 2; + + if (flag & 4) { + yLength = 1; + } else if (flag & 32) { + yLength = 0; + } + + const xyLength = xLength + yLength; coordinatesLength += xyLength; if (flag & 8) { @@ -36246,7 +27788,7 @@ var Font = function FontClosure() { var version = int32(data[0], data[1], data[2], data[3]); if (version >> 16 !== 1) { - (0, _util.info)('Attempting to fix invalid version in head table: ' + version); + (0, _util.info)("Attempting to fix invalid version in head table: " + version); data[0] = 0; data[1] = 1; data[2] = 0; @@ -36256,7 +27798,7 @@ var Font = function FontClosure() { var indexToLocFormat = int16(data[50], data[51]); if (indexToLocFormat < 0 || indexToLocFormat > 1) { - (0, _util.info)('Attempting to fix invalid indexToLocFormat in head table: ' + indexToLocFormat); + (0, _util.info)("Attempting to fix invalid indexToLocFormat in head table: " + indexToLocFormat); var numGlyphsPlusOne = numGlyphs + 1; if (locaLength === numGlyphsPlusOne << 1) { @@ -36266,7 +27808,7 @@ var Font = function FontClosure() { data[50] = 0; data[51] = 1; } else { - throw new _util.FormatError('Could not fix indexToLocFormat: ' + indexToLocFormat); + throw new _util.FormatError("Could not fix indexToLocFormat: " + indexToLocFormat); } } } @@ -36282,10 +27824,10 @@ var Font = function FontClosure() { }; 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; + 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; @@ -36295,42 +27837,53 @@ var Font = function FontClosure() { }; itemEncode = function fontItemEncode(data, offset, value) { - data[offset] = value >> 9 & 0xFF; - data[offset + 1] = value >> 1 & 0xFF; + data[offset] = value >> 9 & 0xff; + data[offset + 1] = value >> 1 & 0xff; }; } var numGlyphsOut = dupFirstEntry ? numGlyphs + 1 : numGlyphs; - var locaData = loca.data; var locaDataSize = itemSize * (1 + numGlyphsOut); - locaData = new Uint8Array(locaDataSize); + var 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 missingGlyphs = Object.create(null); - itemEncode(locaData, 0, writeOffset); var i, j; + const locaEntries = []; + + for (i = 0, j = 0; i < numGlyphs + 1; i++, j += itemSize) { + let offset = itemDecode(locaData, j); + + if (offset > oldGlyfDataLength) { + offset = oldGlyfDataLength; + } + + locaEntries.push({ + index: i, + offset, + endOffset: 0 + }); + } + + locaEntries.sort((a, b) => { + return a.offset - b.offset; + }); + + for (i = 0; i < numGlyphs; i++) { + locaEntries[i].endOffset = locaEntries[i + 1].offset; + } + + locaEntries.sort((a, b) => { + return a.index - b.index; + }); + var missingGlyphs = Object.create(null); + var writeOffset = 0; + itemEncode(locaData, 0, writeOffset); for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) { - var endOffset = itemDecode(locaData, j); - - if (endOffset === 0) { - endOffset = startOffset; - } - - if (endOffset > oldGlyfDataLength && (oldGlyfDataLength + 3 & ~3) === endOffset) { - endOffset = oldGlyfDataLength; - } - - if (endOffset > oldGlyfDataLength) { - startOffset = endOffset; - } - - var glyphProfile = sanitizeGlyph(oldGlyfData, startOffset, endOffset, newGlyfData, writeOffset, hintsValid); + var glyphProfile = sanitizeGlyph(oldGlyfData, locaEntries[i].offset, locaEntries[i].endOffset, newGlyfData, writeOffset, hintsValid); var newLength = glyphProfile.length; if (newLength === 0) { @@ -36343,7 +27896,6 @@ var Font = function FontClosure() { writeOffset += newLength; itemEncode(locaData, j, writeOffset); - startOffset = endOffset; } if (writeOffset === 0) { @@ -36371,18 +27923,18 @@ var Font = function FontClosure() { } return { - missingGlyphs: missingGlyphs, - maxSizeOfInstructions: maxSizeOfInstructions + missingGlyphs, + maxSizeOfInstructions }; } - function readPostScriptTable(post, properties, maxpNumGlyphs) { + function readPostScriptTable(post, propertiesObj, 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); + font.skip(28); var glyphNames; var valid = true; var i; @@ -36428,7 +27980,7 @@ var Font = function FontClosure() { strBuf[i] = String.fromCharCode(font.getByte()); } - customNames.push(strBuf.join('')); + customNames.push(strBuf.join("")); } glyphNames = []; @@ -36450,17 +28002,17 @@ var Font = function FontClosure() { break; default: - (0, _util.warn)('Unknown/unsupported post table version ' + version); + (0, _util.warn)("Unknown/unsupported post table version " + version); valid = false; - if (properties.defaultEncoding) { - glyphNames = properties.defaultEncoding; + if (propertiesObj.defaultEncoding) { + glyphNames = propertiesObj.defaultEncoding; } break; } - properties.glyphNames = glyphNames; + propertiesObj.glyphNames = glyphNames; return valid; } @@ -36515,7 +28067,7 @@ var Font = function FontClosure() { var nameIndex = record.name; if (record.encoding) { - var str = ''; + var str = ""; for (var j = 0, jj = record.length; j < jj; j += 2) { str += String.fromCharCode(font.getUint16()); @@ -36574,8 +28126,8 @@ var Font = function FontClosure() { stack.push(b << 8 | data[i++]); } } - } else if ((op & 0xF8) === 0xB0) { - n = op - 0xB0 + 1; + } else if ((op & 0xf8) === 0xb0) { + n = op - 0xb0 + 1; if (inFDEF || inELSE) { i += n; @@ -36584,8 +28136,8 @@ var Font = function FontClosure() { stack.push(data[i++]); } } - } else if ((op & 0xF8) === 0xB8) { - n = op - 0xB8 + 1; + } else if ((op & 0xf8) === 0xb8) { + n = op - 0xb8 + 1; if (inFDEF || inELSE) { i += n * 2; @@ -36595,20 +28147,20 @@ var Font = function FontClosure() { stack.push(b << 8 | data[i++]); } } - } else if (op === 0x2B && !tooComplexToFollowFunctions) { + } else if (op === 0x2b && !tooComplexToFollowFunctions) { if (!inFDEF && !inELSE) { funcId = stack[stack.length - 1]; if (isNaN(funcId)) { - (0, _util.info)('TT: CALL empty stack (or invalid entry).'); + (0, _util.info)("TT: CALL empty stack (or invalid entry)."); } else { ttContext.functionsUsed[funcId] = true; if (funcId in ttContext.functionsStackDeltas) { - var newStackLength = stack.length + ttContext.functionsStackDeltas[funcId]; + const newStackLength = stack.length + ttContext.functionsStackDeltas[funcId]; if (newStackLength < 0) { - (0, _util.warn)('TT: CALL invalid functions stack delta.'); + (0, _util.warn)("TT: CALL invalid functions stack delta."); ttContext.hintsValid = false; return; } @@ -36616,15 +28168,15 @@ var Font = function FontClosure() { stack.length = newStackLength; } else if (funcId in ttContext.functionsDefined && !functionsCalled.includes(funcId)) { callstack.push({ - data: data, - i: i, + data, + i, stackTop: stack.length - 1 }); functionsCalled.push(funcId); pc = ttContext.functionsDefined[funcId]; if (!pc) { - (0, _util.warn)('TT: CALL non-existent function'); + (0, _util.warn)("TT: CALL non-existent function"); ttContext.hintsValid = false; return; } @@ -36634,9 +28186,9 @@ var Font = function FontClosure() { } } } - } else if (op === 0x2C && !tooComplexToFollowFunctions) { + } else if (op === 0x2c && !tooComplexToFollowFunctions) { if (inFDEF || inELSE) { - (0, _util.warn)('TT: nested FDEFs not allowed'); + (0, _util.warn)("TT: nested FDEFs not allowed"); tooComplexToFollowFunctions = true; } @@ -36644,10 +28196,10 @@ var Font = function FontClosure() { lastDeff = i; funcId = stack.pop(); ttContext.functionsDefined[funcId] = { - data: data, - i: i + data, + i }; - } else if (op === 0x2D) { + } else if (op === 0x2d) { if (inFDEF) { inFDEF = false; lastEndf = i; @@ -36655,7 +28207,7 @@ var Font = function FontClosure() { pc = callstack.pop(); if (!pc) { - (0, _util.warn)('TT: ENDF bad stack'); + (0, _util.warn)("TT: ENDF bad stack"); ttContext.hintsValid = false; return; } @@ -36667,7 +28219,7 @@ var Font = function FontClosure() { } } else if (op === 0x89) { if (inFDEF || inELSE) { - (0, _util.warn)('TT: nested IDEFs not allowed'); + (0, _util.warn)("TT: nested IDEFs not allowed"); tooComplexToFollowFunctions = true; } @@ -36675,7 +28227,7 @@ var Font = function FontClosure() { lastDeff = i; } else if (op === 0x58) { ++ifLevel; - } else if (op === 0x1B) { + } else if (op === 0x1b) { inELSE = ifLevel; } else if (op === 0x59) { if (inELSE === ifLevel) { @@ -36683,7 +28235,7 @@ var Font = function FontClosure() { } --ifLevel; - } else if (op === 0x1C) { + } else if (op === 0x1c) { if (!inFDEF && !inELSE) { var offset = stack[stack.length - 1]; @@ -36694,7 +28246,15 @@ var Font = function FontClosure() { } if (!inFDEF && !inELSE) { - var stackDelta = op <= 0x8E ? TTOpsStackDeltas[op] : op >= 0xC0 && op <= 0xDF ? -1 : op >= 0xE0 ? -2 : 0; + let stackDelta = 0; + + if (op <= 0x8e) { + stackDelta = TTOpsStackDeltas[op]; + } else if (op >= 0xc0 && op <= 0xdf) { + stackDelta = -1; + } else if (op >= 0xe0) { + stackDelta = -2; + } if (op >= 0x71 && op <= 0x75) { n = stack.pop(); @@ -36724,8 +28284,8 @@ var Font = function FontClosure() { } if (lastDeff > lastEndf) { - (0, _util.warn)('TT: complementing a missing function tail'); - content.push(new Uint8Array([0x22, 0x2D])); + (0, _util.warn)("TT: complementing a missing function tail"); + content.push(new Uint8Array([0x22, 0x2d])); } foldTTTable(table, content); @@ -36737,20 +28297,20 @@ var Font = function FontClosure() { } if (ttContext.functionsDefined.length > maxFunctionDefs) { - (0, _util.warn)('TT: more functions defined than expected'); + (0, _util.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) { - (0, _util.warn)('TT: invalid function id: ' + j); + (0, _util.warn)("TT: invalid function id: " + j); ttContext.hintsValid = false; return; } if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) { - (0, _util.warn)('TT: undefined function: ' + j); + (0, _util.warn)("TT: undefined function: " + j); ttContext.hintsValid = false; return; } @@ -36811,10 +28371,10 @@ var Font = function FontClosure() { } font = new _stream.Stream(new Uint8Array(font.getBytes())); - var header, tables; + let header, tables; if (isTrueTypeCollectionFile(font)) { - var ttcData = readTrueTypeCollectionData(font, this.name); + const ttcData = readTrueTypeCollectionData(font, this.name); header = ttcData.header; tables = ttcData.tables; } else { @@ -36822,34 +28382,34 @@ var Font = function FontClosure() { tables = readTables(font, header.numTables); } - var cff, cffFile; - var isTrueType = !tables['CFF ']; + let cff, cffFile; + var isTrueType = !tables["CFF "]; if (!isTrueType) { - var isComposite = properties.composite && ((properties.cidToGidMap || []).length > 0 || !(properties.cMap instanceof _cmap.IdentityCMap)); + const isComposite = properties.composite && ((properties.cidToGidMap || []).length > 0 || !(properties.cMap instanceof _cmap.IdentityCMap)); - if (header.version === 'OTTO' && !isComposite || !tables['head'] || !tables['hhea'] || !tables['maxp'] || !tables['post']) { - cffFile = new _stream.Stream(tables['CFF '].data); + if (header.version === "OTTO" && !isComposite || !tables.head || !tables.hhea || !tables.maxp || !tables.post) { + cffFile = new _stream.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 ']; + delete tables.glyf; + delete tables.loca; + delete tables.fpgm; + delete tables.prep; + delete tables["cvt "]; this.isOpenType = true; } else { - if (!tables['loca']) { + if (!tables.loca) { throw new _util.FormatError('Required "loca" table is not found'); } - if (!tables['glyf']) { + if (!tables.glyf) { (0, _util.warn)('Required "glyf" table is not found -- trying to recover.'); - tables['glyf'] = { - tag: 'glyf', + tables.glyf = { + tag: "glyf", data: new Uint8Array(0) }; } @@ -36857,32 +28417,32 @@ var Font = function FontClosure() { this.isOpenType = false; } - if (!tables['maxp']) { + if (!tables.maxp) { throw new _util.FormatError('Required "maxp" table is not found'); } - font.pos = (font.start || 0) + tables['maxp'].offset; + font.pos = (font.start || 0) + tables.maxp.offset; var version = font.getInt32(); - var numGlyphs = font.getUint16(); - var numGlyphsOut = numGlyphs + 1; - var dupFirstEntry = true; + const numGlyphs = font.getUint16(); + let numGlyphsOut = numGlyphs + 1; + let dupFirstEntry = true; - if (numGlyphsOut > 0xFFFF) { + if (numGlyphsOut > 0xffff) { dupFirstEntry = false; numGlyphsOut = numGlyphs; - (0, _util.warn)('Not enough space in glyfs to duplicate first glyph.'); + (0, _util.warn)("Not enough space in glyfs to duplicate first glyph."); } var maxFunctionDefs = 0; var maxSizeOfInstructions = 0; - if (version >= 0x00010000 && tables['maxp'].length >= 22) { + 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; + tables.maxp.data[14] = 0; + tables.maxp.data[15] = 2; } font.pos += 4; @@ -36891,65 +28451,64 @@ var Font = function FontClosure() { maxSizeOfInstructions = font.getUint16(); } - tables['maxp'].data[4] = numGlyphsOut >> 8; - tables['maxp'].data[5] = numGlyphsOut & 255; - var hintsValid = sanitizeTTPrograms(tables['fpgm'], tables['prep'], tables['cvt '], maxFunctionDefs); + tables.maxp.data[4] = numGlyphsOut >> 8; + tables.maxp.data[5] = numGlyphsOut & 255; + var hintsValid = sanitizeTTPrograms(tables.fpgm, tables.prep, tables["cvt "], maxFunctionDefs); if (!hintsValid) { - delete tables['fpgm']; - delete tables['prep']; - delete tables['cvt ']; + delete tables.fpgm; + delete tables.prep; + delete tables["cvt "]; } - sanitizeMetrics(font, tables['hhea'], tables['hmtx'], numGlyphsOut, dupFirstEntry); + sanitizeMetrics(font, tables.hhea, tables.hmtx, numGlyphsOut, dupFirstEntry); - if (!tables['head']) { + if (!tables.head) { throw new _util.FormatError('Required "head" table is not found'); } - sanitizeHead(tables['head'], numGlyphs, isTrueType ? tables['loca'].length : 0); + 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]); - var glyphsInfo = sanitizeGlyphLocations(tables['loca'], tables['glyf'], numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions); + var isGlyphLocationsLong = int16(tables.head.data[50], tables.head.data[51]); + var glyphsInfo = sanitizeGlyphLocations(tables.loca, tables.glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions); missingGlyphs = glyphsInfo.missingGlyphs; - if (version >= 0x00010000 && tables['maxp'].length >= 22) { - tables['maxp'].data[26] = glyphsInfo.maxSizeOfInstructions >> 8; - tables['maxp'].data[27] = glyphsInfo.maxSizeOfInstructions & 255; + if (version >= 0x00010000 && tables.maxp.length >= 22) { + tables.maxp.data[26] = glyphsInfo.maxSizeOfInstructions >> 8; + tables.maxp.data[27] = glyphsInfo.maxSizeOfInstructions & 255; } } - if (!tables['hhea']) { + if (!tables.hhea) { throw new _util.FormatError('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; + 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]) + 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']) { - readPostScriptTable(tables['post'], properties, numGlyphs); + if (tables.post) { + readPostScriptTable(tables.post, properties, numGlyphs); } - tables['post'] = { - tag: 'post', + tables.post = { + tag: "post", data: createPostTable(properties) }; - var charCodeToGlyphId = [], - charCode; + const charCodeToGlyphId = []; function hasGlyph(glyphId) { return !missingGlyphs[glyphId]; @@ -36960,7 +28519,7 @@ var Font = function FontClosure() { var isCidToGidMapEmpty = cidToGidMap.length === 0; properties.cMap.forEach(function (charCode, cid) { if (cid > 0xffff) { - throw new _util.FormatError('Max size of CID is 65,535'); + throw new _util.FormatError("Max size of CID is 65,535"); } var glyphId = -1; @@ -36976,27 +28535,26 @@ var Font = function FontClosure() { } }); } else { - var cmapTable = readCmapTable(tables['cmap'], font, this.isSymbolicFont, properties.hasEncoding); + 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; + let baseEncoding = []; - if (properties.hasEncoding && (cmapPlatformId === 3 && cmapEncodingId === 1 || cmapPlatformId === 1 && cmapEncodingId === 0) || cmapPlatformId === -1 && cmapEncodingId === -1 && !!(0, _encodings.getEncoding)(properties.baseEncodingName)) { - var baseEncoding = []; - - if (properties.baseEncodingName === 'MacRomanEncoding' || properties.baseEncodingName === 'WinAnsiEncoding') { - baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName); - } + if (properties.hasEncoding && (properties.baseEncodingName === "MacRomanEncoding" || properties.baseEncodingName === "WinAnsiEncoding")) { + baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName); + } + if (properties.hasEncoding && !this.isSymbolicFont && (cmapPlatformId === 3 && cmapEncodingId === 1 || cmapPlatformId === 1 && cmapEncodingId === 0)) { var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)(); - for (charCode = 0; charCode < 256; charCode++) { + for (let 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] !== '') { + } else if (charCode in baseEncoding && baseEncoding[charCode] !== "") { glyphName = baseEncoding[charCode]; } else { glyphName = _encodings.StandardEncoding[charCode]; @@ -37015,43 +28573,41 @@ var Font = function FontClosure() { unicodeOrCharCode = _encodings.MacRomanEncoding.indexOf(standardGlyphName); } - var found = false; - - for (var i = 0; i < cmapMappingsLength; ++i) { + for (let i = 0; i < cmapMappingsLength; ++i) { if (cmapMappings[i].charCode !== unicodeOrCharCode) { continue; } 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)) { - charCodeToGlyphId[charCode] = glyphId; - } - } } - } else if (cmapPlatformId === 0 && cmapEncodingId === 0) { - for (var _i2 = 0; _i2 < cmapMappingsLength; ++_i2) { - charCodeToGlyphId[cmapMappings[_i2].charCode] = cmapMappings[_i2].glyphId; + } else if (cmapPlatformId === 0) { + for (let i = 0; i < cmapMappingsLength; ++i) { + charCodeToGlyphId[cmapMappings[i].charCode] = cmapMappings[i].glyphId; } } else { - for (var _i3 = 0; _i3 < cmapMappingsLength; ++_i3) { - charCode = cmapMappings[_i3].charCode; + for (let i = 0; i < cmapMappingsLength; ++i) { + let charCode = cmapMappings[i].charCode; - if (cmapPlatformId === 3 && charCode >= 0xF000 && charCode <= 0xF0FF) { - charCode &= 0xFF; + if (cmapPlatformId === 3 && charCode >= 0xf000 && charCode <= 0xf0ff) { + charCode &= 0xff; } - charCodeToGlyphId[charCode] = cmapMappings[_i3].glyphId; + charCodeToGlyphId[charCode] = cmapMappings[i].glyphId; + } + } + + if (properties.glyphNames && baseEncoding.length) { + for (let i = 0; i < 256; ++i) { + if (charCodeToGlyphId[i] === undefined && baseEncoding[i]) { + glyphName = baseEncoding[i]; + const glyphId = properties.glyphNames.indexOf(glyphName); + + if (glyphId > 0 && hasGlyph(glyphId)) { + charCodeToGlyphId[i] = glyphId; + } + } } } } @@ -37060,7 +28616,7 @@ var Font = function FontClosure() { charCodeToGlyphId[0] = 0; } - var glyphZeroId = numGlyphsOut - 1; + let glyphZeroId = numGlyphsOut - 1; if (!dupFirstEntry) { glyphZeroId = 0; @@ -37068,39 +28624,39 @@ var Font = function FontClosure() { var newMapping = adjustMapping(charCodeToGlyphId, hasGlyph, glyphZeroId); this.toFontChar = newMapping.toFontChar; - tables['cmap'] = { - tag: 'cmap', + tables.cmap = { + tag: "cmap", data: createCmapTable(newMapping.charCodeToGlyphId, numGlyphsOut) }; - if (!tables['OS/2'] || !validateOS2Table(tables['OS/2'])) { - tables['OS/2'] = { - tag: 'OS/2', + if (!tables["OS/2"] || !validateOS2Table(tables["OS/2"], font)) { + tables["OS/2"] = { + tag: "OS/2", data: createOS2Table(properties, newMapping.charCodeToGlyphId, metricsOverride) }; } if (!isTrueType) { try { - cffFile = new _stream.Stream(tables['CFF '].data); + cffFile = new _stream.Stream(tables["CFF "].data); var parser = new _cff_parser.CFFParser(cffFile, properties, SEAC_ANALYSIS_ENABLED); cff = parser.parse(); cff.duplicateFirstGlyph(); var compiler = new _cff_parser.CFFCompiler(cff); - tables['CFF '].data = compiler.compile(); + tables["CFF "].data = compiler.compile(); } catch (e) { - (0, _util.warn)('Failed to compile font ' + properties.loadedName); + (0, _util.warn)("Failed to compile font " + properties.loadedName); } } - if (!tables['name']) { - tables['name'] = { - tag: 'name', + if (!tables.name) { + tables.name = { + tag: "name", data: createNameTable(this.name) }; } else { - var namePrototype = readNameTable(tables['name']); - tables['name'].data = createNameTable(name, namePrototype); + var namePrototype = readNameTable(tables.name); + tables.name.data = createNameTable(name, namePrototype); } var builder = new OpenTypeFileBuilder(header.version); @@ -37118,7 +28674,7 @@ var Font = function FontClosure() { adjustToUnicode(properties, properties.builtInEncoding); } - var glyphZeroId = 1; + let glyphZeroId = 1; if (font instanceof CFFFont) { glyphZeroId = font.numGlyphs - 1; @@ -37185,15 +28741,15 @@ var Font = function FontClosure() { continue; } - for (var i = 0, ii = charCodes.length; i < ii; i++) { + for (let 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 + baseFontCharCode, + accentFontCharCode, + accentOffset }; } } @@ -37202,23 +28758,23 @@ var Font = function FontClosure() { } var unitsPerEm = 1 / (properties.fontMatrix || _util.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 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'; + var hmtx = "\x00\x00\x00\x00"; - for (var i = 1, ii = numGlyphs; i < ii; i++) { + for (let i = 1, ii = numGlyphs; i < ii; i++) { var width = 0; if (charstrings) { var charstring = charstrings[i - 1]; - width = 'width' in charstring ? charstring.width : 0; + width = "width" in charstring ? charstring.width : 0; } else if (cffWidths) { width = Math.ceil(cffWidths[i] || 0); } @@ -37228,18 +28784,14 @@ var Font = function FontClosure() { return hmtx; }()); - builder.addTable('maxp', '\x00\x00\x50\x00' + string16(numGlyphs)); - builder.addTable('name', createNameTable(fontName)); - builder.addTable('post', createPostTable(properties)); + 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 possibleSpaceReplacements = ["space", "minus", "one", "i", "I"]; var width; for (var i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) { @@ -37254,10 +28806,8 @@ var Font = function FontClosure() { var glyphUnicode = glyphsUnicodeMap[glyphName]; var charcode = 0; - if (this.composite) { - if (this.cMap.contains(glyphUnicode)) { - charcode = this.cMap.lookup(glyphUnicode); - } + if (this.composite && this.cMap.contains(glyphUnicode)) { + charcode = this.cMap.lookup(glyphUnicode); } if (!charcode && this.toUnicode) { @@ -37276,8 +28826,7 @@ var Font = function FontClosure() { } width = width || this.defaultWidth; - this._shadowWidth = width; - return width; + return (0, _util.shadow)(this, "spaceWidth", width); }, charToGlyph: function Font_charToGlyph(charcode, isSpace) { @@ -37291,16 +28840,22 @@ var Font = function FontClosure() { width = this.widths[widthCode]; width = (0, _util.isNum)(width) ? width : this.defaultWidth; var vmetric = this.vmetrics && this.vmetrics[widthCode]; - var unicode = this.toUnicode.get(charcode) || this.fallbackToUnicode.get(charcode) || charcode; + let unicode = this.toUnicode.get(charcode) || this.fallbackToUnicode.get(charcode) || charcode; - if (typeof unicode === 'number') { + if (typeof unicode === "number") { unicode = String.fromCharCode(unicode); } - var isInFont = charcode in this.toFontChar; + var isInFont = (charcode in this.toFontChar); fontCharCode = this.toFontChar[charcode] || charcode; if (this.missingFile) { + const glyphName = this.differences[charcode] || this.defaultEncoding[charcode]; + + if ((glyphName === ".notdef" || glyphName === "") && this.type === "Type1") { + fontCharCode = 0x20; + } + fontCharCode = (0, _unicode.mapSpecialUnicodeValues)(fontCharCode); } @@ -37320,7 +28875,16 @@ var Font = function FontClosure() { }; } - var fontChar = typeof fontCharCode === 'number' ? String.fromCodePoint(fontCharCode) : ''; + let fontChar = ""; + + if (typeof fontCharCode === "number") { + if (fontCharCode <= 0x10ffff) { + fontChar = String.fromCodePoint(fontCharCode); + } else { + (0, _util.warn)(`charToGlyph - invalid fontCharCode: ${fontCharCode}`); + } + } + var glyph = this.glyphCache[charcode]; if (!glyph || !glyph.matchesForCache(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont)) { @@ -37387,7 +28951,7 @@ exports.Font = Font; var ErrorFont = function ErrorFontClosure() { function ErrorFont(error) { this.error = error; - this.loadedName = 'g_font_error'; + this.loadedName = "g_font_error"; this.missingFile = true; } @@ -37395,11 +28959,13 @@ var ErrorFont = function ErrorFontClosure() { charsToGlyphs: function ErrorFont_charsToGlyphs() { return []; }, - exportData: function ErrorFont_exportData() { + + exportData(extraProperties = false) { return { error: this.error }; } + }; return ErrorFont; }(); @@ -37491,7 +29057,7 @@ var Type1Font = function Type1FontClosure() { if (j >= signatureLength) { i += j; - while (i < streamBytesLength && (0, _util.isSpace)(streamBytes[i])) { + while (i < streamBytesLength && (0, _core_utils.isWhiteSpace)(streamBytes[i])) { i++; } @@ -37503,7 +29069,7 @@ var Type1Font = function Type1FontClosure() { } return { - found: found, + found, length: i }; } @@ -37601,10 +29167,10 @@ var Type1Font = function Type1FontClosure() { var eexecBlock = getEexecBlock(file, eexecBlockLength); var eexecBlockParser = new _type1_parser.Type1Parser(eexecBlock.stream, true, SEAC_ANALYSIS_ENABLED); - var data = eexecBlockParser.extractFontProgram(); + var data = eexecBlockParser.extractFontProgram(properties); - for (var info in data.properties) { - properties[info] = data.properties[info]; + for (const key in data.properties) { + properties[key] = data.properties[key]; } var charstrings = data.charstrings; @@ -37621,7 +29187,7 @@ var Type1Font = function Type1FontClosure() { }, getCharset: function Type1Font_getCharset() { - var charset = ['.notdef']; + var charset = [".notdef"]; var charstrings = this.charstrings; for (var glyphId = 0; glyphId < charstrings.length; glyphId++) { @@ -37632,7 +29198,19 @@ var Type1Font = function Type1FontClosure() { }, getGlyphMapping: function Type1Font_getGlyphMapping(properties) { var charstrings = this.charstrings; - var glyphNames = ['.notdef'], + + if (properties.composite) { + const charCodeToGlyphId = Object.create(null); + + for (let glyphId = 0, charstringsLen = charstrings.length; glyphId < charstringsLen; glyphId++) { + const charCode = properties.cMap.charCodeOf(glyphId); + charCodeToGlyphId[charCode] = glyphId + 1; + } + + return charCodeToGlyphId; + } + + var glyphNames = [".notdef"], glyphId; for (glyphId = 0; glyphId < charstrings.length; glyphId++) { @@ -37706,7 +29284,7 @@ var Type1Font = function Type1FontClosure() { var i; for (i = 0; i < bias; i++) { - type2Subrs.push([0x0B]); + type2Subrs.push([0x0b]); } for (i = 0; i < count; i++) { @@ -37720,34 +29298,34 @@ var Type1Font = function Type1FontClosure() { cff.header = new _cff_parser.CFFHeader(1, 0, 4, 4); cff.names = [name]; var topDict = new _cff_parser.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); + 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 _cff_parser.CFFStrings(); - strings.add('Version 0.11'); - strings.add('See original notice'); + strings.add("Version 0.11"); + strings.add("See original notice"); strings.add(name); strings.add(name); - strings.add('Medium'); + strings.add("Medium"); cff.strings = strings; cff.globalSubrIndex = new _cff_parser.CFFIndex(); var count = glyphs.length; - var charsetArray = ['.notdef']; + var charsetArray = [".notdef"]; var i, ii; for (i = 0; i < count; i++) { - var glyphName = charstrings[i].glyphName; + const glyphName = charstrings[i].glyphName; - var index = _cff_parser.CFFStandardStrings.indexOf(glyphName); + const index = _cff_parser.CFFStandardStrings.indexOf(glyphName); if (index === -1) { strings.add(glyphName); @@ -37758,7 +29336,7 @@ var Type1Font = function Type1FontClosure() { cff.charset = new _cff_parser.CFFCharset(false, 0, charsetArray); var charStringsIndex = new _cff_parser.CFFIndex(); - charStringsIndex.add([0x8B, 0x0E]); + charStringsIndex.add([0x8b, 0x0e]); for (i = 0; i < count; i++) { charStringsIndex.add(glyphs[i]); @@ -37766,8 +29344,8 @@ var Type1Font = function Type1FontClosure() { cff.charStrings = charStringsIndex; var privateDict = new _cff_parser.CFFPrivateDict(); - privateDict.setByName('Subrs', null); - var fields = ['BlueValues', 'OtherBlues', 'FamilyBlues', 'FamilyOtherBlues', 'StemSnapH', 'StemSnapV', 'BlueShift', 'BlueFuzz', 'BlueScale', 'LanguageGroup', 'ExpansionFactor', 'ForceBold', 'StdHW', 'StdVW']; + 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]; @@ -37814,7 +29392,7 @@ var CFFFont = function CFFFontClosure() { try { this.data = compiler.compile(); } catch (e) { - (0, _util.warn)('Failed to compile font ' + properties.loadedName); + (0, _util.warn)("Failed to compile font " + properties.loadedName); this.data = file; } } @@ -37836,7 +29414,7 @@ var CFFFont = function CFFFontClosure() { if (properties.composite) { charCodeToGlyphId = Object.create(null); - var charCode; + let charCode; if (cff.isCIDFont) { for (glyphId = 0; glyphId < charsets.length; glyphId++) { @@ -37866,7 +29444,7 @@ var CFFFont = function CFFFontClosure() { }(); /***/ }), -/* 175 */ +/* 31 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -37877,236 +29455,236 @@ Object.defineProperty(exports, "__esModule", { }); exports.CFFFDSelect = exports.CFFCompiler = exports.CFFPrivateDict = exports.CFFTopDict = exports.CFFCharset = exports.CFFIndex = exports.CFFStrings = exports.CFFHeader = exports.CFF = exports.CFFParser = exports.CFFStandardStrings = void 0; -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -var _charsets = __w_pdfjs_require__(176); +var _charsets = __w_pdfjs_require__(32); -var _encodings = __w_pdfjs_require__(177); +var _encodings = __w_pdfjs_require__(33); 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 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"]; exports.CFFStandardStrings = CFFStandardStrings; -var NUM_STANDARD_CFF_STRINGS = 391; +const NUM_STANDARD_CFF_STRINGS = 391; var CFFParser = function CFFParserClosure() { var CharstringValidationData = [null, { - id: 'hstem', + id: "hstem", min: 2, stackClearing: true, stem: true }, null, { - id: 'vstem', + id: "vstem", min: 2, stackClearing: true, stem: true }, { - id: 'vmoveto', + id: "vmoveto", min: 1, stackClearing: true }, { - id: 'rlineto', + id: "rlineto", min: 2, resetStack: true }, { - id: 'hlineto', + id: "hlineto", min: 1, resetStack: true }, { - id: 'vlineto', + id: "vlineto", min: 1, resetStack: true }, { - id: 'rrcurveto', + id: "rrcurveto", min: 6, resetStack: true }, null, { - id: 'callsubr', + id: "callsubr", min: 1, undefStack: true }, { - id: 'return', + id: "return", min: 0, undefStack: true }, null, null, { - id: 'endchar', + id: "endchar", min: 0, stackClearing: true }, null, null, null, { - id: 'hstemhm', + id: "hstemhm", min: 2, stackClearing: true, stem: true }, { - id: 'hintmask', + id: "hintmask", min: 0, stackClearing: true }, { - id: 'cntrmask', + id: "cntrmask", min: 0, stackClearing: true }, { - id: 'rmoveto', + id: "rmoveto", min: 2, stackClearing: true }, { - id: 'hmoveto', + id: "hmoveto", min: 1, stackClearing: true }, { - id: 'vstemhm', + id: "vstemhm", min: 2, stackClearing: true, stem: true }, { - id: 'rcurveline', + id: "rcurveline", min: 8, resetStack: true }, { - id: 'rlinecurve', + id: "rlinecurve", min: 8, resetStack: true }, { - id: 'vvcurveto', + id: "vvcurveto", min: 4, resetStack: true }, { - id: 'hhcurveto', + id: "hhcurveto", min: 4, resetStack: true }, null, { - id: 'callgsubr', + id: "callgsubr", min: 1, undefStack: true }, { - id: 'vhcurveto', + id: "vhcurveto", min: 4, resetStack: true }, { - id: 'hvcurveto', + id: "hvcurveto", min: 4, resetStack: true }]; var CharstringValidationData12 = [null, null, null, { - id: 'and', + id: "and", min: 2, stackDelta: -1 }, { - id: 'or', + id: "or", min: 2, stackDelta: -1 }, { - id: 'not', + id: "not", min: 1, stackDelta: 0 }, null, null, null, { - id: 'abs', + id: "abs", min: 1, stackDelta: 0 }, { - id: 'add', + id: "add", min: 2, stackDelta: -1, stackFn: function stack_div(stack, index) { stack[index - 2] = stack[index - 2] + stack[index - 1]; } }, { - id: 'sub', + id: "sub", min: 2, stackDelta: -1, stackFn: function stack_div(stack, index) { stack[index - 2] = stack[index - 2] - stack[index - 1]; } }, { - id: 'div', + id: "div", min: 2, stackDelta: -1, stackFn: function stack_div(stack, index) { stack[index - 2] = stack[index - 2] / stack[index - 1]; } }, null, { - id: 'neg', + id: "neg", min: 1, stackDelta: 0, stackFn: function stack_div(stack, index) { stack[index - 1] = -stack[index - 1]; } }, { - id: 'eq', + id: "eq", min: 2, stackDelta: -1 }, null, null, { - id: 'drop', + id: "drop", min: 1, stackDelta: -1 }, null, { - id: 'put', + id: "put", min: 2, stackDelta: -2 }, { - id: 'get', + id: "get", min: 1, stackDelta: 0 }, { - id: 'ifelse', + id: "ifelse", min: 4, stackDelta: -3 }, { - id: 'random', + id: "random", min: 0, stackDelta: 1 }, { - id: 'mul', + id: "mul", min: 2, stackDelta: -1, stackFn: function stack_div(stack, index) { stack[index - 2] = stack[index - 2] * stack[index - 1]; } }, null, { - id: 'sqrt', + id: "sqrt", min: 1, stackDelta: 0 }, { - id: 'dup', + id: "dup", min: 1, stackDelta: 1 }, { - id: 'exch', + id: "exch", min: 2, stackDelta: 0 }, { - id: 'index', + id: "index", min: 2, stackDelta: 0 }, { - id: 'roll', + id: "roll", min: 3, stackDelta: -2 }, null, null, null, { - id: 'hflex', + id: "hflex", min: 7, resetStack: true }, { - id: 'flex', + id: "flex", min: 13, resetStack: true }, { - id: 'hflex1', + id: "hflex1", min: 9, resetStack: true }, { - id: 'flex1', + id: "flex1", min: 11, resetStack: true }]; - function CFFParser(file, properties, seacAnalysisEnabled) { - this.bytes = file.getBytes(); - this.properties = properties; - this.seacAnalysisEnabled = !!seacAnalysisEnabled; - } + class CFFParser { + constructor(file, properties, seacAnalysisEnabled) { + this.bytes = file.getBytes(); + this.properties = properties; + this.seacAnalysisEnabled = !!seacAnalysisEnabled; + } - CFFParser.prototype = { - parse: function CFFParser_parse() { + parse() { var properties = this.properties; var cff = new CFF(); this.cff = cff; @@ -38123,16 +29701,16 @@ var CFFParser = function CFFParserClosure() { cff.topDict = topDict; cff.globalSubrIndex = globalSubrIndex.obj; this.parsePrivateDict(cff.topDict); - cff.isCIDFont = topDict.hasName('ROS'); - var charStringOffset = topDict.getByName('CharStrings'); + cff.isCIDFont = topDict.hasName("ROS"); + var charStringOffset = topDict.getByName("CharStrings"); var charStringIndex = this.parseIndex(charStringOffset).obj; - var fontMatrix = topDict.getByName('FontMatrix'); + var fontMatrix = topDict.getByName("FontMatrix"); if (fontMatrix) { properties.fontMatrix = fontMatrix; } - var fontBBox = topDict.getByName('FontBBox'); + var fontBBox = topDict.getByName("FontBBox"); if (fontBBox) { properties.ascent = Math.max(fontBBox[3], fontBBox[1]); @@ -38143,7 +29721,7 @@ var CFFParser = function CFFParserClosure() { var charset, encoding; if (cff.isCIDFont) { - var fdArrayIndex = this.parseIndex(topDict.getByName('FDArray')).obj; + var fdArrayIndex = this.parseIndex(topDict.getByName("FDArray")).obj; for (var i = 0, ii = fdArrayIndex.count; i < ii; ++i) { var dictRaw = fdArrayIndex.get(i); @@ -38153,11 +29731,11 @@ var CFFParser = function CFFParserClosure() { } encoding = null; - charset = this.parseCharsets(topDict.getByName('charset'), charStringIndex.count, cff.strings, true); - cff.fdSelect = this.parseFDSelect(topDict.getByName('FDSelect'), charStringIndex.count); + 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); + 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; @@ -38174,8 +29752,9 @@ var CFFParser = function CFFParserClosure() { cff.seacs = charStringsAndSeacs.seacs; cff.widths = charStringsAndSeacs.widths; return cff; - }, - parseHeader: function CFFParser_parseHeader() { + } + + parseHeader() { var bytes = this.bytes; var bytesLength = bytes.length; var offset = 0; @@ -38185,11 +29764,11 @@ var CFFParser = function CFFParserClosure() { } if (offset >= bytesLength) { - throw new _util.FormatError('Invalid CFF header'); + throw new _util.FormatError("Invalid CFF header"); } if (offset !== 0) { - (0, _util.info)('cff data is shifted'); + (0, _util.info)("cff data is shifted"); bytes = bytes.subarray(offset); this.bytes = bytes; } @@ -38203,8 +29782,9 @@ var CFFParser = function CFFParserClosure() { obj: header, endPos: hdrSize }; - }, - parseDict: function CFFParser_parseDict(dict) { + } + + parseDict(dict) { var pos = 0; function parseOperand() { @@ -38235,9 +29815,9 @@ var CFFParser = function CFFParserClosure() { } function parseFloatOperand() { - var str = ''; + var str = ""; var eof = 15; - var lookup = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', 'E', 'E-', null, '-']; + const lookup = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ".", "E", "E-", null, "-"]; var length = dict.length; while (pos < length) { @@ -38283,8 +29863,9 @@ var CFFParser = function CFFParserClosure() { } return entries; - }, - parseIndex: function CFFParser_parseIndex(pos) { + } + + parseIndex(pos) { var cffIndex = new CFFIndex(); var bytes = this.bytes; var count = bytes[pos++] << 8 | bytes[pos++]; @@ -38320,8 +29901,9 @@ var CFFParser = function CFFParserClosure() { obj: cffIndex, endPos: end }; - }, - parseNameIndex: function CFFParser_parseNameIndex(index) { + } + + parseNameIndex(index) { var names = []; for (var i = 0, ii = index.count; i < ii; ++i) { @@ -38330,8 +29912,9 @@ var CFFParser = function CFFParserClosure() { } return names; - }, - parseStringIndex: function CFFParser_parseStringIndex(index) { + } + + parseStringIndex(index) { var strings = new CFFStrings(); for (var i = 0, ii = index.count; i < ii; ++i) { @@ -38340,8 +29923,9 @@ var CFFParser = function CFFParserClosure() { } return strings; - }, - createDict: function CFFParser_createDict(Type, dict, strings) { + } + + createDict(Type, dict, strings) { var cffDict = new Type(strings); for (var i = 0, ii = dict.length; i < ii; ++i) { @@ -38352,8 +29936,9 @@ var CFFParser = function CFFParserClosure() { } return cffDict; - }, - parseCharString: function CFFParser_parseCharString(state, data, localSubrIndex, globalSubrIndex) { + } + + parseCharString(state, data, localSubrIndex, globalSubrIndex) { if (!data || state.callDepth > MAX_SUBR_NESTING) { return false; } @@ -38418,7 +30003,7 @@ var CFFParser = function CFFParserClosure() { if (!subrsIndex) { validationCommand = CharstringValidationData[value]; - (0, _util.warn)('Missing subrsIndex for ' + validationCommand.id); + (0, _util.warn)("Missing subrsIndex for " + validationCommand.id); return false; } @@ -38434,7 +30019,7 @@ var CFFParser = function CFFParserClosure() { if (subrNumber < 0 || subrNumber >= subrsIndex.count || isNaN(subrNumber)) { validationCommand = CharstringValidationData[value]; - (0, _util.warn)('Out of bounds subrIndex for ' + validationCommand.id); + (0, _util.warn)("Out of bounds subrIndex for " + validationCommand.id); return false; } @@ -38463,14 +30048,14 @@ var CFFParser = function CFFParserClosure() { if (value === 3 || value === 23) { state.hasVStems = true; } else if (state.hasVStems && (value === 1 || value === 18)) { - (0, _util.warn)('CFF stem hints are in wrong order'); + (0, _util.warn)("CFF stem hints are in wrong order"); data[j - 1] = value === 1 ? 3 : 23; } } - if ('min' in validationCommand) { + if ("min" in validationCommand) { if (!state.undefStack && stackSize < validationCommand.min) { - (0, _util.warn)('Not enough parameters for ' + validationCommand.id + '; actual: ' + stackSize + ', expected: ' + validationCommand.min); + (0, _util.warn)("Not enough parameters for " + validationCommand.id + "; actual: " + stackSize + ", expected: " + validationCommand.min); return false; } } @@ -38482,7 +30067,7 @@ var CFFParser = function CFFParserClosure() { if (stackSize >= 2 && validationCommand.stem) { stackSize %= 2; } else if (stackSize > 1) { - (0, _util.warn)('Found too many parameters for stack-clearing command'); + (0, _util.warn)("Found too many parameters for stack-clearing command"); } if (stackSize > 0 && stack[stackSize - 1] >= 0) { @@ -38490,8 +30075,8 @@ var CFFParser = function CFFParserClosure() { } } - if ('stackDelta' in validationCommand) { - if ('stackFn' in validationCommand) { + if ("stackDelta" in validationCommand) { + if ("stackFn" in validationCommand) { validationCommand.stackFn(stack, stackSize); } @@ -38511,14 +30096,16 @@ var CFFParser = function CFFParserClosure() { state.stackSize = stackSize; return true; - }, - parseCharStrings: function parseCharStrings(_ref) { - var charStrings = _ref.charStrings, - localSubrIndex = _ref.localSubrIndex, - globalSubrIndex = _ref.globalSubrIndex, - fdSelect = _ref.fdSelect, - fdArray = _ref.fdArray, - privateDict = _ref.privateDict; + } + + parseCharStrings({ + charStrings, + localSubrIndex, + globalSubrIndex, + fdSelect, + fdArray, + privateDict + }) { var seacs = []; var widths = []; var count = charStrings.count; @@ -38544,12 +30131,12 @@ var CFFParser = function CFFParserClosure() { var fdIndex = fdSelect.getFDIndex(i); if (fdIndex === -1) { - (0, _util.warn)('Glyph index is not in fd select.'); + (0, _util.warn)("Glyph index is not in fd select."); valid = false; } if (fdIndex >= fdArray.length) { - (0, _util.warn)('Invalid fd index for glyph index.'); + (0, _util.warn)("Invalid fd index for glyph index."); valid = false; } @@ -38566,10 +30153,10 @@ var CFFParser = function CFFParserClosure() { } if (state.width !== null) { - var nominalWidth = privateDictToUse.getByName('nominalWidthX'); + const nominalWidth = privateDictToUse.getByName("nominalWidthX"); widths[i] = nominalWidth + state.width; } else { - var defaultWidth = privateDictToUse.getByName('defaultWidthX'); + const defaultWidth = privateDictToUse.getByName("defaultWidthX"); widths[i] = defaultWidth; } @@ -38583,26 +30170,28 @@ var CFFParser = function CFFParserClosure() { } return { - charStrings: charStrings, - seacs: seacs, - widths: widths + charStrings, + seacs, + widths }; - }, - emptyPrivateDictionary: function CFFParser_emptyPrivateDictionary(parentDict) { + } + + 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')) { + } + + parsePrivateDict(parentDict) { + if (!parentDict.hasName("Private")) { this.emptyPrivateDictionary(parentDict); return; } - var privateOffset = parentDict.getByName('Private'); + var privateOffset = parentDict.getByName("Private"); if (!Array.isArray(privateOffset) || privateOffset.length !== 2) { - parentDict.removeByName('Private'); + parentDict.removeByName("Private"); return; } @@ -38620,11 +30209,11 @@ var CFFParser = function CFFParserClosure() { var privateDict = this.createDict(CFFPrivateDict, dict, parentDict.strings); parentDict.privateDict = privateDict; - if (!privateDict.getByName('Subrs')) { + if (!privateDict.getByName("Subrs")) { return; } - var subrsOffset = privateDict.getByName('Subrs'); + var subrsOffset = privateDict.getByName("Subrs"); var relativeOffset = offset + subrsOffset; if (subrsOffset === 0 || relativeOffset >= this.bytes.length) { @@ -38634,8 +30223,9 @@ var CFFParser = function CFFParserClosure() { var subrsIndex = this.parseIndex(relativeOffset); privateDict.subrsIndex = subrsIndex.obj; - }, - parseCharsets: function CFFParser_parseCharsets(pos, length, strings, cid) { + } + + parseCharsets(pos, length, strings, cid) { if (pos === 0) { return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE, _charsets.ISOAdobeCharset); } else if (pos === 1) { @@ -38647,7 +30237,7 @@ var CFFParser = function CFFParserClosure() { var bytes = this.bytes; var start = pos; var format = bytes[pos++]; - var charset = ['.notdef']; + const charset = [cid ? 0 : ".notdef"]; var id, count, i; length -= 1; @@ -38685,14 +30275,15 @@ var CFFParser = function CFFParserClosure() { break; default: - throw new _util.FormatError('Unknown charset format'); + throw new _util.FormatError("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) { + } + + parseEncoding(pos, properties, strings, charset) { var encoding = Object.create(null); var bytes = this.bytes; var predefined = false; @@ -38751,7 +30342,7 @@ var CFFParser = function CFFParserClosure() { break; default: - throw new _util.FormatError("Unknown encoding format: ".concat(format, " in CFF")); + throw new _util.FormatError(`Unknown encoding format: ${format} in CFF`); } var dataEnd = pos; @@ -38766,8 +30357,9 @@ var CFFParser = function CFFParserClosure() { format = format & 0x7f; return new CFFEncoding(predefined, format, encoding, raw); - }, - parseFDSelect: function CFFParser_parseFDSelect(pos, length) { + } + + parseFDSelect(pos, length) { var bytes = this.bytes; var format = bytes[pos++]; var fdSelect = []; @@ -38789,7 +30381,7 @@ var CFFParser = function CFFParserClosure() { var first = bytes[pos++] << 8 | bytes[pos++]; if (i === 0 && first !== 0) { - (0, _util.warn)('parseFDSelect: The first range must have a first GID of 0' + ' -- trying to recover.'); + (0, _util.warn)("parseFDSelect: The first range must have a first GID of 0" + " -- trying to recover."); first = 0; } @@ -38805,23 +30397,25 @@ var CFFParser = function CFFParserClosure() { break; default: - throw new _util.FormatError("parseFDSelect: Unknown format \"".concat(format, "\".")); + throw new _util.FormatError(`parseFDSelect: Unknown format "${format}".`); } if (fdSelect.length !== length) { - throw new _util.FormatError('parseFDSelect: Invalid font data.'); + throw new _util.FormatError("parseFDSelect: Invalid font data."); } return new CFFFDSelect(format, fdSelect); } - }; + + } + return CFFParser; }(); exports.CFFParser = CFFParser; -var CFF = function CFFClosure() { - function CFF() { +class CFF { + constructor() { this.header = null; this.names = []; this.topDict = null; @@ -38835,124 +30429,120 @@ var CFF = function CFFClosure() { this.isCIDFont = false; } - CFF.prototype = { - duplicateFirstGlyph: function CFF_duplicateFirstGlyph() { - if (this.charStrings.count >= 65535) { - (0, _util.warn)('Not enough space in charstrings to duplicate first glyph.'); - return; - } - - var glyphZero = this.charStrings.get(0); - this.charStrings.add(glyphZero); - - if (this.isCIDFont) { - this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]); - } - }, - hasGlyphId: function CFF_hasGlyphID(id) { - if (id < 0 || id >= this.charStrings.count) { - return false; - } - - var glyph = this.charStrings.get(id); - return glyph.length > 0; + duplicateFirstGlyph() { + if (this.charStrings.count >= 65535) { + (0, _util.warn)("Not enough space in charstrings to duplicate first glyph."); + return; } - }; - return CFF; -}(); + + var glyphZero = this.charStrings.get(0); + this.charStrings.add(glyphZero); + + if (this.isCIDFont) { + this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]); + } + } + + hasGlyphId(id) { + if (id < 0 || id >= this.charStrings.count) { + return false; + } + + var glyph = this.charStrings.get(id); + return glyph.length > 0; + } + +} exports.CFF = CFF; -var CFFHeader = function CFFHeaderClosure() { - function CFFHeader(major, minor, hdrSize, offSize) { +class CFFHeader { + constructor(major, minor, hdrSize, offSize) { this.major = major; this.minor = minor; this.hdrSize = hdrSize; this.offSize = offSize; } - return CFFHeader; -}(); +} exports.CFFHeader = CFFHeader; -var CFFStrings = function CFFStringsClosure() { - function CFFStrings() { +class CFFStrings { + constructor() { this.strings = []; } - CFFStrings.prototype = { - get: function CFFStrings_get(index) { - if (index >= 0 && index <= NUM_STANDARD_CFF_STRINGS - 1) { - return CFFStandardStrings[index]; - } - - if (index - NUM_STANDARD_CFF_STRINGS <= this.strings.length) { - return this.strings[index - NUM_STANDARD_CFF_STRINGS]; - } - - return CFFStandardStrings[0]; - }, - getSID: function CFFStrings_getSID(str) { - var index = CFFStandardStrings.indexOf(str); - - if (index !== -1) { - return index; - } - - index = this.strings.indexOf(str); - - if (index !== -1) { - return index + NUM_STANDARD_CFF_STRINGS; - } - - return -1; - }, - add: function CFFStrings_add(value) { - this.strings.push(value); - }, - - get count() { - return this.strings.length; + get(index) { + if (index >= 0 && index <= NUM_STANDARD_CFF_STRINGS - 1) { + return CFFStandardStrings[index]; } - }; - return CFFStrings; -}(); + if (index - NUM_STANDARD_CFF_STRINGS <= this.strings.length) { + return this.strings[index - NUM_STANDARD_CFF_STRINGS]; + } + + return CFFStandardStrings[0]; + } + + getSID(str) { + let index = CFFStandardStrings.indexOf(str); + + if (index !== -1) { + return index; + } + + index = this.strings.indexOf(str); + + if (index !== -1) { + return index + NUM_STANDARD_CFF_STRINGS; + } + + return -1; + } + + add(value) { + this.strings.push(value); + } + + get count() { + return this.strings.length; + } + +} exports.CFFStrings = CFFStrings; -var CFFIndex = function CFFIndexClosure() { - function CFFIndex() { +class CFFIndex { + constructor() { 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]; - }, + add(data) { + this.length += data.length; + this.objects.push(data); + } - get count() { - return this.objects.length; - } + set(index, data) { + this.length += data.length - this.objects[index].length; + this.objects[index] = data; + } - }; - return CFFIndex; -}(); + get(index) { + return this.objects[index]; + } + + get count() { + return this.objects.length; + } + +} exports.CFFIndex = CFFIndex; -var CFFDict = function CFFDictClosure() { - function CFFDict(tables, strings) { +class CFFDict { + constructor(tables, strings) { this.keyToNameMap = tables.keyToNameMap; this.nameToKeyMap = tables.nameToKeyMap; this.defaults = tables.defaults; @@ -38963,63 +30553,65 @@ var CFFDict = function CFFDictClosure() { this.values = Object.create(null); } - CFFDict.prototype = { - setByKey: function CFFDict_setByKey(key, value) { - if (!(key in this.keyToNameMap)) { - return false; - } + setByKey(key, value) { + if (!(key in this.keyToNameMap)) { + return false; + } - var valueLength = value.length; + var valueLength = value.length; - if (valueLength === 0) { + if (valueLength === 0) { + return true; + } + + for (var i = 0; i < valueLength; i++) { + if (isNaN(value[i])) { + (0, _util.warn)('Invalid CFFDict value: "' + value + '" for key "' + key + '".'); return true; } - - for (var i = 0; i < valueLength; i++) { - if (isNaN(value[i])) { - (0, _util.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)) { - throw new _util.FormatError("Invalid dictionary name \"".concat(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)) { - throw new _util.FormatError("Invalid dictionary name ".concat(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 type = this.types[key]; + + if (type === "num" || type === "sid" || type === "offset") { + value = value[0]; + } + + this.values[key] = value; + return true; + } + + setByName(name, value) { + if (!(name in this.nameToKeyMap)) { + throw new _util.FormatError(`Invalid dictionary name "${name}"`); + } + + this.values[this.nameToKeyMap[name]] = value; + } + + hasName(name) { + return this.nameToKeyMap[name] in this.values; + } + + getByName(name) { + if (!(name in this.nameToKeyMap)) { + throw new _util.FormatError(`Invalid dictionary name ${name}"`); + } + + var key = this.nameToKeyMap[name]; + + if (!(key in this.values)) { + return this.defaults[key]; + } + + return this.values[key]; + } + + removeByName(name) { + delete this.values[this.nameToKeyMap[name]]; + } + + static createTables(layout) { var tables = { keyToNameMap: {}, nameToKeyMap: {}, @@ -39041,44 +30633,47 @@ var CFFDict = function CFFDictClosure() { } 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); +} + +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; + + class CFFTopDict extends CFFDict { + constructor(strings) { + if (tables === null) { + tables = CFFDict.createTables(layout); + } + + super(tables, strings); + this.privateDict = null; + } + + } + return CFFTopDict; }(); exports.CFFTopDict = 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 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); + class CFFPrivateDict extends CFFDict { + constructor(strings) { + if (tables === null) { + tables = CFFDict.createTables(layout); + } + + super(tables, strings); + this.subrsIndex = null; } - CFFDict.call(this, tables, strings); - this.subrsIndex = null; } - CFFPrivateDict.prototype = Object.create(CFFDict.prototype); return CFFPrivateDict; }(); @@ -39089,584 +30684,598 @@ var CFFCharsetPredefinedTypes = { EXPERT_SUBSET: 2 }; -var CFFCharset = function CFFCharsetClosure() { - function CFFCharset(predefined, format, charset, raw) { +class CFFCharset { + constructor(predefined, format, charset, raw) { this.predefined = predefined; this.format = format; this.charset = charset; this.raw = raw; } - return CFFCharset; -}(); +} exports.CFFCharset = CFFCharset; -var CFFEncoding = function CFFEncodingClosure() { - function CFFEncoding(predefined, format, encoding, raw) { +class CFFEncoding { + constructor(predefined, format, encoding, raw) { this.predefined = predefined; this.format = format; this.encoding = encoding; this.raw = raw; } - return CFFEncoding; -}(); +} -var CFFFDSelect = function CFFFDSelectClosure() { - function CFFFDSelect(format, fdSelect) { +class CFFFDSelect { + constructor(format, fdSelect) { this.format = format; this.fdSelect = fdSelect; } - CFFFDSelect.prototype = { - getFDIndex: function CFFFDSelect_get(glyphIndex) { - if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) { - return -1; - } - - return this.fdSelect[glyphIndex]; + getFDIndex(glyphIndex) { + if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) { + return -1; } - }; - return CFFFDSelect; -}(); + + return this.fdSelect[glyphIndex]; + } + +} exports.CFFFDSelect = CFFFDSelect; -var CFFOffsetTracker = function CFFOffsetTrackerClosure() { - function CFFOffsetTracker() { +class CFFOffsetTracker { + constructor() { 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) { - throw new _util.FormatError("Already tracking location of ".concat(key)); - } + isTracking(key) { + return key in this.offsets; + } - 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)) { - throw new _util.FormatError("Not tracking location of ".concat(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) { - throw new _util.FormatError('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; - } + track(key, location) { + if (key in this.offsets) { + throw new _util.FormatError(`Already tracking location of ${key}`); } - }; - return CFFOffsetTracker; -}(); -var CFFCompiler = function CFFCompilerClosure() { - function CFFCompiler(cff) { + this.offsets[key] = location; + } + + offset(value) { + for (var key in this.offsets) { + this.offsets[key] += value; + } + } + + setEntryLocation(key, values, output) { + if (!(key in this.offsets)) { + throw new _util.FormatError(`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) { + throw new _util.FormatError("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; + } + } + +} + +class CFFCompiler { + constructor(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.Util.transform(matrix, subDict.getByName('FontMatrix')); - } - - subDict.setByName('FontMatrix', matrix); - } - } + 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); - cff.topDict.setByName('charset', 0); - 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.isCIDFont) { + if (cff.topDict.hasName("FontMatrix")) { + var base = cff.topDict.getByName("FontMatrix"); + cff.topDict.removeByName("FontMatrix"); - 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); - } - } + for (var i = 0, ii = cff.fdArray.length; i < ii; i++) { + var subDict = cff.fdArray[i]; + var matrix = base.slice(0); - var charset = this.compileCharset(cff.charset, cff.charStrings.count, cff.strings, cff.isCIDFont); - 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); - 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.substring(i, 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) { - var name = names[i]; - var length = Math.min(name.length, 127); - var sanitizedName = new Array(length); - - for (var j = 0; j < length; j++) { - var _char = name[j]; - - if (_char < '!' || _char > '~' || _char === '[' || _char === ']' || _char === '(' || _char === ')' || _char === '{' || _char === '}' || _char === '<' || _char === '>' || _char === '/' || _char === '%') { - _char = '_'; + if (subDict.hasName("FontMatrix")) { + matrix = _util.Util.transform(matrix, subDict.getByName("FontMatrix")); } - sanitizedName[j] = _char; - } - - sanitizedName = sanitizedName.join(''); - - if (sanitizedName === '') { - sanitizedName = 'Bad_Font_Name'; - } - - nameIndex.add((0, _util.stringToBytes)(sanitizedName)); - } - - 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]; - var privateDict = fontDict.privateDict; - - if (!privateDict || !fontDict.hasName('Private')) { - throw new _util.FormatError('There must be a private dictionary.'); - } - - 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); + subDict.setByName("FontMatrix", matrix); } } - }, - 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 (!Array.isArray(types)) { - types = [types]; - } - - if (!Array.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: - throw new _util.FormatError("Unknown data type of ".concat(type)); - } - } - - 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((0, _util.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) { - var charStringsIndex = new CFFIndex(); - - for (var i = 0; i < charStrings.count; i++) { - var glyph = charStrings.get(i); - - if (glyph.length === 0) { - charStringsIndex.add(new Uint8Array([0x8B, 0x0E])); - continue; - } - - charStringsIndex.add(glyph); - } - - return this.compileIndex(charStringsIndex); - }, - compileCharset: function CFFCompiler_compileCharset(charset, numGlyphs, strings, isCIDFont) { - var out; - var numGlyphsLessNotDef = numGlyphs - 1; - - if (isCIDFont) { - out = new Uint8Array([2, 0, 0, numGlyphsLessNotDef >> 8 & 0xFF, numGlyphsLessNotDef & 0xFF]); - } else { - var length = 1 + numGlyphsLessNotDef * 2; - out = new Uint8Array(length); - out[0] = 0; - var charsetIndex = 0; - var numCharsets = charset.charset.length; - var warned = false; - - for (var i = 1; i < out.length; i += 2) { - var sid = 0; - - if (charsetIndex < numCharsets) { - var name = charset.charset[charsetIndex++]; - sid = strings.getSID(name); - - if (sid === -1) { - sid = 0; - - if (!warned) { - warned = true; - (0, _util.warn)("Couldn't find ".concat(name, " in CFF strings")); - } - } - } - - out[i] = sid >> 8 & 0xFF; - out[i + 1] = sid & 0xFF; - } - } - - return this.compileTypedArray(out); - }, - compileEncoding: function CFFCompiler_compileEncoding(encoding) { - return this.compileTypedArray(encoding.raw); - }, - compileFDSelect: function CFFCompiler_compileFDSelect(fdSelect) { - var format = fdSelect.format; - var out, i; - - switch (format) { - case 0: - out = new Uint8Array(1 + fdSelect.fdSelect.length); - out[0] = format; - - for (i = 0; i < fdSelect.fdSelect.length; i++) { - out[i + 1] = fdSelect.fdSelect[i]; - } - - break; - - case 3: - var start = 0; - var lastFD = fdSelect.fdSelect[0]; - var ranges = [format, 0, 0, start >> 8 & 0xFF, start & 0xFF, lastFD]; - - for (i = 1; i < fdSelect.fdSelect.length; i++) { - var currentFD = fdSelect.fdSelect[i]; - - if (currentFD !== lastFD) { - ranges.push(i >> 8 & 0xFF, i & 0xFF, currentFD); - lastFD = currentFD; - } - } - - var numRanges = (ranges.length - 3) / 3; - ranges[1] = numRanges >> 8 & 0xFF; - ranges[2] = numRanges & 0xFF; - ranges.push(i >> 8 & 0xFF, i & 0xFF); - out = new Uint8Array(ranges); - break; - } - - return this.compileTypedArray(out); - }, - 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; -}(); + + cff.topDict.setByName("charset", 0); + 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); + } + } + + var charset = this.compileCharset(cff.charset, cff.charStrings.count, cff.strings, cff.isCIDFont); + 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); + 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(value) { + if (Number.isInteger(value)) { + return this.encodeInteger(value); + } + + return this.encodeFloat(value); + } + + static get EncodeFloatRegExp() { + return (0, _util.shadow)(this, "EncodeFloatRegExp", /\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/); + } + + encodeFloat(num) { + var value = num.toString(); + var m = CFFCompiler.EncodeFloatRegExp.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.substring(i, i + 2), 16)); + } + + return out; + } + + 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(header) { + return [header.major, header.minor, header.hdrSize, header.offSize]; + } + + compileNameIndex(names) { + var nameIndex = new CFFIndex(); + + for (var i = 0, ii = names.length; i < ii; ++i) { + var name = names[i]; + var length = Math.min(name.length, 127); + var sanitizedName = new Array(length); + + for (var j = 0; j < length; j++) { + var char = name[j]; + + if (char < "!" || char > "~" || char === "[" || char === "]" || char === "(" || char === ")" || char === "{" || char === "}" || char === "<" || char === ">" || char === "/" || char === "%") { + char = "_"; + } + + sanitizedName[j] = char; + } + + sanitizedName = sanitizedName.join(""); + + if (sanitizedName === "") { + sanitizedName = "Bad_Font_Name"; + } + + nameIndex.add((0, _util.stringToBytes)(sanitizedName)); + } + + return this.compileIndex(nameIndex); + } + + 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(dicts, trackers, output) { + for (var i = 0, ii = dicts.length; i < ii; ++i) { + var fontDict = dicts[i]; + var privateDict = fontDict.privateDict; + + if (!privateDict || !fontDict.hasName("Private")) { + throw new _util.FormatError("There must be a private dictionary."); + } + + 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(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 (!Array.isArray(types)) { + types = [types]; + } + + if (!Array.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: + throw new _util.FormatError(`Unknown data type of ${type}`); + } + } + + out = out.concat(dict.opcodes[key]); + } + + return out; + } + + compileStringIndex(strings) { + var stringIndex = new CFFIndex(); + + for (var i = 0, ii = strings.length; i < ii; ++i) { + stringIndex.add((0, _util.stringToBytes)(strings[i])); + } + + return this.compileIndex(stringIndex); + } + + compileGlobalSubrIndex() { + var globalSubrIndex = this.cff.globalSubrIndex; + this.out.writeByteArray(this.compileIndex(globalSubrIndex)); + } + + compileCharStrings(charStrings) { + var charStringsIndex = new CFFIndex(); + + for (var i = 0; i < charStrings.count; i++) { + var glyph = charStrings.get(i); + + if (glyph.length === 0) { + charStringsIndex.add(new Uint8Array([0x8b, 0x0e])); + continue; + } + + charStringsIndex.add(glyph); + } + + return this.compileIndex(charStringsIndex); + } + + compileCharset(charset, numGlyphs, strings, isCIDFont) { + let out; + const numGlyphsLessNotDef = numGlyphs - 1; + + if (isCIDFont) { + out = new Uint8Array([2, 0, 0, numGlyphsLessNotDef >> 8 & 0xff, numGlyphsLessNotDef & 0xff]); + } else { + const length = 1 + numGlyphsLessNotDef * 2; + out = new Uint8Array(length); + out[0] = 0; + let charsetIndex = 0; + const numCharsets = charset.charset.length; + let warned = false; + + for (let i = 1; i < out.length; i += 2) { + let sid = 0; + + if (charsetIndex < numCharsets) { + const name = charset.charset[charsetIndex++]; + sid = strings.getSID(name); + + if (sid === -1) { + sid = 0; + + if (!warned) { + warned = true; + (0, _util.warn)(`Couldn't find ${name} in CFF strings`); + } + } + } + + out[i] = sid >> 8 & 0xff; + out[i + 1] = sid & 0xff; + } + } + + return this.compileTypedArray(out); + } + + compileEncoding(encoding) { + return this.compileTypedArray(encoding.raw); + } + + compileFDSelect(fdSelect) { + const format = fdSelect.format; + let out, i; + + switch (format) { + case 0: + out = new Uint8Array(1 + fdSelect.fdSelect.length); + out[0] = format; + + for (i = 0; i < fdSelect.fdSelect.length; i++) { + out[i + 1] = fdSelect.fdSelect[i]; + } + + break; + + case 3: + const start = 0; + let lastFD = fdSelect.fdSelect[0]; + const ranges = [format, 0, 0, start >> 8 & 0xff, start & 0xff, lastFD]; + + for (i = 1; i < fdSelect.fdSelect.length; i++) { + const currentFD = fdSelect.fdSelect[i]; + + if (currentFD !== lastFD) { + ranges.push(i >> 8 & 0xff, i & 0xff, currentFD); + lastFD = currentFD; + } + } + + const numRanges = (ranges.length - 3) / 3; + ranges[1] = numRanges >> 8 & 0xff; + ranges[2] = numRanges & 0xff; + ranges.push(i >> 8 & 0xff, i & 0xff); + out = new Uint8Array(ranges); + break; + } + + return this.compileTypedArray(out); + } + + compileTypedArray(data) { + var out = []; + + for (var i = 0, ii = data.length; i < ii; ++i) { + out[i] = data[i]; + } + + return out; + } + + compileIndex(index, 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; + } + +} exports.CFFCompiler = CFFCompiler; /***/ }), -/* 176 */ +/* 32 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -39676,15 +31285,15 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.ExpertSubsetCharset = exports.ExpertCharset = exports.ISOAdobeCharset = void 0; -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']; +const 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"]; exports.ISOAdobeCharset = ISOAdobeCharset; -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']; +const 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"]; exports.ExpertCharset = ExpertCharset; -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']; +const 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.ExpertSubsetCharset = ExpertSubsetCharset; /***/ }), -/* 177 */ +/* 33 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -39695,41 +31304,41 @@ Object.defineProperty(exports, "__esModule", { }); exports.getEncoding = getEncoding; exports.ExpertEncoding = exports.ZapfDingbatsEncoding = exports.SymbolSetEncoding = exports.MacRomanEncoding = exports.StandardEncoding = exports.WinAnsiEncoding = void 0; -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']; +const 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"]; exports.ExpertEncoding = ExpertEncoding; -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']; +const 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", "", "", "", ""]; +const 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"]; exports.MacRomanEncoding = MacRomanEncoding; -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', '', '', '', '']; +const 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", "", "", "", ""]; exports.StandardEncoding = StandardEncoding; -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']; +const 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"]; exports.WinAnsiEncoding = WinAnsiEncoding; -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', '']; +const 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", ""]; exports.SymbolSetEncoding = SymbolSetEncoding; -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', '']; +const 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", ""]; exports.ZapfDingbatsEncoding = ZapfDingbatsEncoding; function getEncoding(encodingName) { switch (encodingName) { - case 'WinAnsiEncoding': + case "WinAnsiEncoding": return WinAnsiEncoding; - case 'StandardEncoding': + case "StandardEncoding": return StandardEncoding; - case 'MacRomanEncoding': + case "MacRomanEncoding": return MacRomanEncoding; - case 'SymbolSetEncoding': + case "SymbolSetEncoding": return SymbolSetEncoding; - case 'ZapfDingbatsEncoding': + case "ZapfDingbatsEncoding": return ZapfDingbatsEncoding; - case 'ExpertEncoding': + case "ExpertEncoding": return ExpertEncoding; - case 'MacExpertEncoding': + case "MacExpertEncoding": return MacExpertEncoding; default: @@ -39738,4543 +31347,4544 @@ function getEncoding(encodingName) { } /***/ }), -/* 178 */ +/* 34 */ /***/ (function(module, exports, __w_pdfjs_require__) { -var getLookupTableFactory = __w_pdfjs_require__(154).getLookupTableFactory; +var getLookupTableFactory = __w_pdfjs_require__(8).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; + 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.f_f = 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; + 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; /***/ }), -/* 179 */ +/* 35 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -44285,248 +35895,249 @@ Object.defineProperty(exports, "__esModule", { }); exports.getSupplementalGlyphMapForCalibri = exports.getSupplementalGlyphMapForArialBlack = exports.getGlyphMapForStandardFonts = exports.getSymbolsFonts = exports.getSerifFonts = exports.getNonStdFontMap = exports.getStdFontMap = void 0; -var _core_utils = __w_pdfjs_require__(154); +var _core_utils = __w_pdfjs_require__(8); -var getStdFontMap = (0, _core_utils.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['SegoeUISymbol'] = 'Helvetica'; - 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'; +const getStdFontMap = (0, _core_utils.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"; }); exports.getStdFontMap = getStdFontMap; -var getNonStdFontMap = (0, _core_utils.getLookupTableFactory)(function (t) { - t['Calibri'] = 'Helvetica'; - t['Calibri-Bold'] = 'Helvetica-Bold'; - t['Calibri-BoldItalic'] = 'Helvetica-BoldOblique'; - t['Calibri-Italic'] = 'Helvetica-Oblique'; - 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['LucidaSans-Demi'] = 'Helvetica-Bold'; - 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'; +const getNonStdFontMap = (0, _core_utils.getLookupTableFactory)(function (t) { + t.Calibri = "Helvetica"; + t["Calibri-Bold"] = "Helvetica-Bold"; + t["Calibri-BoldItalic"] = "Helvetica-BoldOblique"; + t["Calibri-Italic"] = "Helvetica-Oblique"; + 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["LucidaSans-Demi"] = "Helvetica-Bold"; + 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.SegoeUISymbol = "Helvetica"; + t.Wingdings = "ZapfDingbats"; + t["Wingdings-Regular"] = "ZapfDingbats"; }); exports.getNonStdFontMap = getNonStdFontMap; -var getSerifFonts = (0, _core_utils.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; +const getSerifFonts = (0, _core_utils.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; }); exports.getSerifFonts = getSerifFonts; -var getSymbolsFonts = (0, _core_utils.getLookupTableFactory)(function (t) { - t['Dingbats'] = true; - t['Symbol'] = true; - t['ZapfDingbats'] = true; +const getSymbolsFonts = (0, _core_utils.getLookupTableFactory)(function (t) { + t.Dingbats = true; + t.Symbol = true; + t.ZapfDingbats = true; }); exports.getSymbolsFonts = getSymbolsFonts; -var getGlyphMapForStandardFonts = (0, _core_utils.getLookupTableFactory)(function (t) { +const getGlyphMapForStandardFonts = (0, _core_utils.getLookupTableFactory)(function (t) { t[2] = 10; t[3] = 32; t[4] = 33; @@ -44922,13 +36533,13 @@ var getGlyphMapForStandardFonts = (0, _core_utils.getLookupTableFactory)(functio t[3416] = 8377; }); exports.getGlyphMapForStandardFonts = getGlyphMapForStandardFonts; -var getSupplementalGlyphMapForArialBlack = (0, _core_utils.getLookupTableFactory)(function (t) { +const getSupplementalGlyphMapForArialBlack = (0, _core_utils.getLookupTableFactory)(function (t) { t[227] = 322; t[264] = 261; t[291] = 346; }); exports.getSupplementalGlyphMapForArialBlack = getSupplementalGlyphMapForArialBlack; -var getSupplementalGlyphMapForCalibri = (0, _core_utils.getLookupTableFactory)(function (t) { +const getSupplementalGlyphMapForCalibri = (0, _core_utils.getLookupTableFactory)(function (t) { t[1] = 32; t[4] = 65; t[17] = 66; @@ -45017,43 +36628,43 @@ var getSupplementalGlyphMapForCalibri = (0, _core_utils.getLookupTableFactory)(f exports.getSupplementalGlyphMapForCalibri = getSupplementalGlyphMapForCalibri; /***/ }), -/* 180 */ +/* 36 */ /***/ (function(module, exports, __w_pdfjs_require__) { -var getLookupTableFactory = __w_pdfjs_require__(154).getLookupTableFactory; +var getLookupTableFactory = __w_pdfjs_require__(8).getLookupTableFactory; var getSpecialPUASymbols = getLookupTableFactory(function (t) { - t[63721] = 0x00A9; - t[63193] = 0x00A9; - t[63720] = 0x00AE; - t[63194] = 0x00AE; + 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; + 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) { + if (code >= 0xfff0 && code <= 0xffff) { return 0; - } else if (code >= 0xF600 && code <= 0xF8FF) { + } else if (code >= 0xf600 && code <= 0xf8ff) { return getSpecialPUASymbols()[code] || code; - } else if (code === 0x00AD) { - return 0x002D; + } else if (code === 0x00ad) { + return 0x002d; } return code; } @@ -45065,9 +36676,9 @@ function getUnicodeForGlyph(name, glyphsUnicodeMap) { if (!name) { return -1; } - if (name[0] === 'u') { + if (name[0] === "u") { var nameLen = name.length, hexStr; - if (nameLen === 7 && name[1] === 'n' && name[2] === 'i') { + if (nameLen === 7 && name[1] === "n" && name[2] === "i") { hexStr = name.substring(3); } else if (nameLen >= 5 && nameLen <= 7) { hexStr = name.substring(1); @@ -45085,496 +36696,496 @@ function getUnicodeForGlyph(name, glyphsUnicodeMap) { } var UnicodeRanges = [ { - 'begin': 0x0000, - 'end': 0x007F + begin: 0x0000, + end: 0x007f }, { - 'begin': 0x0080, - 'end': 0x00FF + begin: 0x0080, + end: 0x00ff }, { - 'begin': 0x0100, - 'end': 0x017F + begin: 0x0100, + end: 0x017f }, { - 'begin': 0x0180, - 'end': 0x024F + begin: 0x0180, + end: 0x024f }, { - 'begin': 0x0250, - 'end': 0x02AF + begin: 0x0250, + end: 0x02af }, { - 'begin': 0x02B0, - 'end': 0x02FF + begin: 0x02b0, + end: 0x02ff }, { - 'begin': 0x0300, - 'end': 0x036F + begin: 0x0300, + end: 0x036f }, { - 'begin': 0x0370, - 'end': 0x03FF + begin: 0x0370, + end: 0x03ff }, { - 'begin': 0x2C80, - 'end': 0x2CFF + begin: 0x2c80, + end: 0x2cff }, { - 'begin': 0x0400, - 'end': 0x04FF + begin: 0x0400, + end: 0x04ff }, { - 'begin': 0x0530, - 'end': 0x058F + begin: 0x0530, + end: 0x058f }, { - 'begin': 0x0590, - 'end': 0x05FF + begin: 0x0590, + end: 0x05ff }, { - 'begin': 0xA500, - 'end': 0xA63F + begin: 0xa500, + end: 0xa63f }, { - 'begin': 0x0600, - 'end': 0x06FF + begin: 0x0600, + end: 0x06ff }, { - 'begin': 0x07C0, - 'end': 0x07FF + begin: 0x07c0, + end: 0x07ff }, { - 'begin': 0x0900, - 'end': 0x097F + begin: 0x0900, + end: 0x097f }, { - 'begin': 0x0980, - 'end': 0x09FF + begin: 0x0980, + end: 0x09ff }, { - 'begin': 0x0A00, - 'end': 0x0A7F + begin: 0x0a00, + end: 0x0a7f }, { - 'begin': 0x0A80, - 'end': 0x0AFF + begin: 0x0a80, + end: 0x0aff }, { - 'begin': 0x0B00, - 'end': 0x0B7F + begin: 0x0b00, + end: 0x0b7f }, { - 'begin': 0x0B80, - 'end': 0x0BFF + begin: 0x0b80, + end: 0x0bff }, { - 'begin': 0x0C00, - 'end': 0x0C7F + begin: 0x0c00, + end: 0x0c7f }, { - 'begin': 0x0C80, - 'end': 0x0CFF + begin: 0x0c80, + end: 0x0cff }, { - 'begin': 0x0D00, - 'end': 0x0D7F + begin: 0x0d00, + end: 0x0d7f }, { - 'begin': 0x0E00, - 'end': 0x0E7F + begin: 0x0e00, + end: 0x0e7f }, { - 'begin': 0x0E80, - 'end': 0x0EFF + begin: 0x0e80, + end: 0x0eff }, { - 'begin': 0x10A0, - 'end': 0x10FF + begin: 0x10a0, + end: 0x10ff }, { - 'begin': 0x1B00, - 'end': 0x1B7F + begin: 0x1b00, + end: 0x1b7f }, { - 'begin': 0x1100, - 'end': 0x11FF + begin: 0x1100, + end: 0x11ff }, { - 'begin': 0x1E00, - 'end': 0x1EFF + begin: 0x1e00, + end: 0x1eff }, { - 'begin': 0x1F00, - 'end': 0x1FFF + begin: 0x1f00, + end: 0x1fff }, { - 'begin': 0x2000, - 'end': 0x206F + begin: 0x2000, + end: 0x206f }, { - 'begin': 0x2070, - 'end': 0x209F + begin: 0x2070, + end: 0x209f }, { - 'begin': 0x20A0, - 'end': 0x20CF + begin: 0x20a0, + end: 0x20cf }, { - 'begin': 0x20D0, - 'end': 0x20FF + begin: 0x20d0, + end: 0x20ff }, { - 'begin': 0x2100, - 'end': 0x214F + begin: 0x2100, + end: 0x214f }, { - 'begin': 0x2150, - 'end': 0x218F + begin: 0x2150, + end: 0x218f }, { - 'begin': 0x2190, - 'end': 0x21FF + begin: 0x2190, + end: 0x21ff }, { - 'begin': 0x2200, - 'end': 0x22FF + begin: 0x2200, + end: 0x22ff }, { - 'begin': 0x2300, - 'end': 0x23FF + begin: 0x2300, + end: 0x23ff }, { - 'begin': 0x2400, - 'end': 0x243F + begin: 0x2400, + end: 0x243f }, { - 'begin': 0x2440, - 'end': 0x245F + begin: 0x2440, + end: 0x245f }, { - 'begin': 0x2460, - 'end': 0x24FF + begin: 0x2460, + end: 0x24ff }, { - 'begin': 0x2500, - 'end': 0x257F + begin: 0x2500, + end: 0x257f }, { - 'begin': 0x2580, - 'end': 0x259F + begin: 0x2580, + end: 0x259f }, { - 'begin': 0x25A0, - 'end': 0x25FF + begin: 0x25a0, + end: 0x25ff }, { - 'begin': 0x2600, - 'end': 0x26FF + begin: 0x2600, + end: 0x26ff }, { - 'begin': 0x2700, - 'end': 0x27BF + begin: 0x2700, + end: 0x27bf }, { - 'begin': 0x3000, - 'end': 0x303F + begin: 0x3000, + end: 0x303f }, { - 'begin': 0x3040, - 'end': 0x309F + begin: 0x3040, + end: 0x309f }, { - 'begin': 0x30A0, - 'end': 0x30FF + begin: 0x30a0, + end: 0x30ff }, { - 'begin': 0x3100, - 'end': 0x312F + begin: 0x3100, + end: 0x312f }, { - 'begin': 0x3130, - 'end': 0x318F + begin: 0x3130, + end: 0x318f }, { - 'begin': 0xA840, - 'end': 0xA87F + begin: 0xa840, + end: 0xa87f }, { - 'begin': 0x3200, - 'end': 0x32FF + begin: 0x3200, + end: 0x32ff }, { - 'begin': 0x3300, - 'end': 0x33FF + begin: 0x3300, + end: 0x33ff }, { - 'begin': 0xAC00, - 'end': 0xD7AF + begin: 0xac00, + end: 0xd7af }, { - 'begin': 0xD800, - 'end': 0xDFFF + begin: 0xd800, + end: 0xdfff }, { - 'begin': 0x10900, - 'end': 0x1091F + begin: 0x10900, + end: 0x1091f }, { - 'begin': 0x4E00, - 'end': 0x9FFF + begin: 0x4e00, + end: 0x9fff }, { - 'begin': 0xE000, - 'end': 0xF8FF + begin: 0xe000, + end: 0xf8ff }, { - 'begin': 0x31C0, - 'end': 0x31EF + begin: 0x31c0, + end: 0x31ef }, { - 'begin': 0xFB00, - 'end': 0xFB4F + begin: 0xfb00, + end: 0xfb4f }, { - 'begin': 0xFB50, - 'end': 0xFDFF + begin: 0xfb50, + end: 0xfdff }, { - 'begin': 0xFE20, - 'end': 0xFE2F + begin: 0xfe20, + end: 0xfe2f }, { - 'begin': 0xFE10, - 'end': 0xFE1F + begin: 0xfe10, + end: 0xfe1f }, { - 'begin': 0xFE50, - 'end': 0xFE6F + begin: 0xfe50, + end: 0xfe6f }, { - 'begin': 0xFE70, - 'end': 0xFEFF + begin: 0xfe70, + end: 0xfeff }, { - 'begin': 0xFF00, - 'end': 0xFFEF + begin: 0xff00, + end: 0xffef }, { - 'begin': 0xFFF0, - 'end': 0xFFFF + begin: 0xfff0, + end: 0xffff }, { - 'begin': 0x0F00, - 'end': 0x0FFF + begin: 0x0f00, + end: 0x0fff }, { - 'begin': 0x0700, - 'end': 0x074F + begin: 0x0700, + end: 0x074f }, { - 'begin': 0x0780, - 'end': 0x07BF + begin: 0x0780, + end: 0x07bf }, { - 'begin': 0x0D80, - 'end': 0x0DFF + begin: 0x0d80, + end: 0x0dff }, { - 'begin': 0x1000, - 'end': 0x109F + begin: 0x1000, + end: 0x109f }, { - 'begin': 0x1200, - 'end': 0x137F + begin: 0x1200, + end: 0x137f }, { - 'begin': 0x13A0, - 'end': 0x13FF + begin: 0x13a0, + end: 0x13ff }, { - 'begin': 0x1400, - 'end': 0x167F + begin: 0x1400, + end: 0x167f }, { - 'begin': 0x1680, - 'end': 0x169F + begin: 0x1680, + end: 0x169f }, { - 'begin': 0x16A0, - 'end': 0x16FF + begin: 0x16a0, + end: 0x16ff }, { - 'begin': 0x1780, - 'end': 0x17FF + begin: 0x1780, + end: 0x17ff }, { - 'begin': 0x1800, - 'end': 0x18AF + begin: 0x1800, + end: 0x18af }, { - 'begin': 0x2800, - 'end': 0x28FF + begin: 0x2800, + end: 0x28ff }, { - 'begin': 0xA000, - 'end': 0xA48F + begin: 0xa000, + end: 0xa48f }, { - 'begin': 0x1700, - 'end': 0x171F + begin: 0x1700, + end: 0x171f }, { - 'begin': 0x10300, - 'end': 0x1032F + begin: 0x10300, + end: 0x1032f }, { - 'begin': 0x10330, - 'end': 0x1034F + begin: 0x10330, + end: 0x1034f }, { - 'begin': 0x10400, - 'end': 0x1044F + begin: 0x10400, + end: 0x1044f }, { - 'begin': 0x1D000, - 'end': 0x1D0FF + begin: 0x1d000, + end: 0x1d0ff }, { - 'begin': 0x1D400, - 'end': 0x1D7FF + begin: 0x1d400, + end: 0x1d7ff }, { - 'begin': 0xFF000, - 'end': 0xFFFFD + begin: 0xff000, + end: 0xffffd }, { - 'begin': 0xFE00, - 'end': 0xFE0F + begin: 0xfe00, + end: 0xfe0f }, { - 'begin': 0xE0000, - 'end': 0xE007F + begin: 0xe0000, + end: 0xe007f }, { - 'begin': 0x1900, - 'end': 0x194F + begin: 0x1900, + end: 0x194f }, { - 'begin': 0x1950, - 'end': 0x197F + begin: 0x1950, + end: 0x197f }, { - 'begin': 0x1980, - 'end': 0x19DF + begin: 0x1980, + end: 0x19df }, { - 'begin': 0x1A00, - 'end': 0x1A1F + begin: 0x1a00, + end: 0x1a1f }, { - 'begin': 0x2C00, - 'end': 0x2C5F + begin: 0x2c00, + end: 0x2c5f }, { - 'begin': 0x2D30, - 'end': 0x2D7F + begin: 0x2d30, + end: 0x2d7f }, { - 'begin': 0x4DC0, - 'end': 0x4DFF + begin: 0x4dc0, + end: 0x4dff }, { - 'begin': 0xA800, - 'end': 0xA82F + begin: 0xa800, + end: 0xa82f }, { - 'begin': 0x10000, - 'end': 0x1007F + begin: 0x10000, + end: 0x1007f }, { - 'begin': 0x10140, - 'end': 0x1018F + begin: 0x10140, + end: 0x1018f }, { - 'begin': 0x10380, - 'end': 0x1039F + begin: 0x10380, + end: 0x1039f }, { - 'begin': 0x103A0, - 'end': 0x103DF + begin: 0x103a0, + end: 0x103df }, { - 'begin': 0x10450, - 'end': 0x1047F + begin: 0x10450, + end: 0x1047f }, { - 'begin': 0x10480, - 'end': 0x104AF + begin: 0x10480, + end: 0x104af }, { - 'begin': 0x10800, - 'end': 0x1083F + begin: 0x10800, + end: 0x1083f }, { - 'begin': 0x10A00, - 'end': 0x10A5F + begin: 0x10a00, + end: 0x10a5f }, { - 'begin': 0x1D300, - 'end': 0x1D35F + begin: 0x1d300, + end: 0x1d35f }, { - 'begin': 0x12000, - 'end': 0x123FF + begin: 0x12000, + end: 0x123ff }, { - 'begin': 0x1D360, - 'end': 0x1D37F + begin: 0x1d360, + end: 0x1d37f }, { - 'begin': 0x1B80, - 'end': 0x1BBF + begin: 0x1b80, + end: 0x1bbf }, { - 'begin': 0x1C00, - 'end': 0x1C4F + begin: 0x1c00, + end: 0x1c4f }, { - 'begin': 0x1C50, - 'end': 0x1C7F + begin: 0x1c50, + end: 0x1c7f }, { - 'begin': 0xA880, - 'end': 0xA8DF + begin: 0xa880, + end: 0xa8df }, { - 'begin': 0xA900, - 'end': 0xA92F + begin: 0xa900, + end: 0xa92f }, { - 'begin': 0xA930, - 'end': 0xA95F + begin: 0xa930, + end: 0xa95f }, { - 'begin': 0xAA00, - 'end': 0xAA5F + begin: 0xaa00, + end: 0xaa5f }, { - 'begin': 0x10190, - 'end': 0x101CF + begin: 0x10190, + end: 0x101cf }, { - 'begin': 0x101D0, - 'end': 0x101FF + begin: 0x101d0, + end: 0x101ff }, { - 'begin': 0x102A0, - 'end': 0x102DF + begin: 0x102a0, + end: 0x102df }, { - 'begin': 0x1F030, - 'end': 0x1F09F + begin: 0x1f030, + end: 0x1f09f } ]; function getUnicodeRangeFor(value) { @@ -45598,1390 +37209,1390 @@ function isRTLRangeFor(value) { 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'; + 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 = ''; + var s = ""; for (var ii = charsLength - 1; ii >= 0; ii--) { s += chars[ii]; } @@ -46994,7 +38605,7 @@ exports.getNormalizedUnicodes = getNormalizedUnicodes; exports.getUnicodeForGlyph = getUnicodeForGlyph; /***/ }), -/* 181 */ +/* 37 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -47005,33 +38616,15 @@ Object.defineProperty(exports, "__esModule", { }); exports.FontRendererFactory = void 0; -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -var _cff_parser = __w_pdfjs_require__(175); +var _cff_parser = __w_pdfjs_require__(31); -var _glyphlist = __w_pdfjs_require__(178); +var _glyphlist = __w_pdfjs_require__(34); -var _encodings = __w_pdfjs_require__(177); +var _encodings = __w_pdfjs_require__(33); -var _stream = __w_pdfjs_require__(158); - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _stream = __w_pdfjs_require__(12); var FontRendererFactory = function FontRendererFactoryClosure() { function getLong(data, offset) { @@ -47042,6 +38635,19 @@ var FontRendererFactory = function FontRendererFactoryClosure() { return data[offset] << 8 | data[offset + 1]; } + function getSubroutineBias(subrs) { + const numSubrs = subrs.length; + let bias = 32768; + + if (numSubrs < 1240) { + bias = 107; + } else if (numSubrs < 33900) { + bias = 1131; + } + + return bias; + } + 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); @@ -47103,7 +38709,7 @@ var FontRendererFactory = function FontRendererFactoryClosure() { return ranges; } - throw new _util.FormatError("unsupported cmap: ".concat(format)); + throw new _util.FormatError(`unsupported cmap: ${format}`); } function parseCff(data, start, end, seacAnalysisEnabled) { @@ -47166,7 +38772,7 @@ var FontRendererFactory = function FontRendererFactoryClosure() { } 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; + gid = ranges[l].idDelta + (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code) & 0xffff; } return { @@ -47178,21 +38784,21 @@ var FontRendererFactory = function FontRendererFactoryClosure() { function compileGlyf(code, cmds, font) { function moveTo(x, y) { cmds.push({ - cmd: 'moveTo', + cmd: "moveTo", args: [x, y] }); } function lineTo(x, y) { cmds.push({ - cmd: 'lineTo', + cmd: "lineTo", args: [x, y] }); } function quadraticCurveTo(xa, ya, x, y) { cmds.push({ - cmd: 'quadraticCurveTo', + cmd: "quadraticCurveTo", args: [xa, ya, x, y] }); } @@ -47252,15 +38858,15 @@ var FontRendererFactory = function FontRendererFactoryClosure() { if (subglyph) { cmds.push({ - cmd: 'save' + cmd: "save" }); cmds.push({ - cmd: 'transform', + cmd: "transform", args: [scaleX, scale01, scale10, scaleY, x, y] }); compileGlyf(subglyph, cmds, font); cmds.push({ - cmd: 'restore' + cmd: "restore" }); } } while (flags & 0x20); @@ -47288,7 +38894,7 @@ var FontRendererFactory = function FontRendererFactoryClosure() { while (repeat-- > 0) { points.push({ - flags: flags + flags }); } } @@ -47369,33 +38975,33 @@ var FontRendererFactory = function FontRendererFactoryClosure() { } } - function compileCharString(code, cmds, font, glyphId) { - var stack = []; - var x = 0, - y = 0; - var stems = 0; - + function compileCharString(charStringCode, cmds, font, glyphId) { function moveTo(x, y) { cmds.push({ - cmd: 'moveTo', + cmd: "moveTo", args: [x, y] }); } function lineTo(x, y) { cmds.push({ - cmd: 'lineTo', + cmd: "lineTo", args: [x, y] }); } function bezierCurveTo(x1, y1, x2, y2, x, y) { cmds.push({ - cmd: 'bezierCurveTo', + cmd: "bezierCurveTo", args: [x1, y1, x2, y2, x, y] }); } + var stack = []; + var x = 0, + y = 0; + var stems = 0; + function parse(code) { var i = 0; @@ -47478,23 +39084,22 @@ var FontRendererFactory = function FontRendererFactoryClosure() { subrCode = null; if (font.isCFFCIDFont) { - var fdIndex = font.fdSelect.getFDIndex(glyphId); + const fdIndex = font.fdSelect.getFDIndex(glyphId); if (fdIndex >= 0 && fdIndex < font.fdArray.length) { - var fontDict = font.fdArray[fdIndex], - subrs = void 0; + const fontDict = font.fdArray[fdIndex]; + let subrs; if (fontDict.privateDict && fontDict.privateDict.subrsIndex) { subrs = fontDict.privateDict.subrsIndex.objects; } if (subrs) { - var numSubrs = subrs.length; - n += numSubrs < 1240 ? 107 : numSubrs < 33900 ? 1131 : 32768; + n += getSubroutineBias(subrs); subrCode = subrs[n]; } } else { - (0, _util.warn)('Invalid fd index for glyph index.'); + (0, _util.warn)("Invalid fd index for glyph index."); } } else { subrCode = font.subrs[n + font.subrsBias]; @@ -47584,7 +39189,7 @@ var FontRendererFactory = function FontRendererFactoryClosure() { break; default: - throw new _util.FormatError("unknown operator: 12 ".concat(v)); + throw new _util.FormatError(`unknown operator: 12 ${v}`); } break; @@ -47596,16 +39201,16 @@ var FontRendererFactory = function FontRendererFactoryClosure() { y = stack.pop(); x = stack.pop(); cmds.push({ - cmd: 'save' + cmd: "save" }); cmds.push({ - cmd: 'translate', + cmd: "translate", args: [x, y] }); var cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[achar]])); compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId); cmds.push({ - cmd: 'restore' + cmd: "restore" }); cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[bchar]])); compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId); @@ -47781,7 +39386,7 @@ var FontRendererFactory = function FontRendererFactoryClosure() { default: if (v < 32) { - throw new _util.FormatError("unknown operator: ".concat(v)); + throw new _util.FormatError(`unknown operator: ${v}`); } if (v < 247) { @@ -47804,19 +39409,15 @@ var FontRendererFactory = function FontRendererFactoryClosure() { } } - parse(code); + parse(charStringCode); } - var NOOP = []; - - var CompiledFont = - /*#__PURE__*/ - function () { - function CompiledFont(fontMatrix) { - _classCallCheck(this, CompiledFont); + const NOOP = []; + class CompiledFont { + constructor(fontMatrix) { if (this.constructor === CompiledFont) { - (0, _util.unreachable)('Cannot initialize CompiledFont.'); + (0, _util.unreachable)("Cannot initialize CompiledFont."); } this.fontMatrix = fontMatrix; @@ -47824,136 +39425,103 @@ var FontRendererFactory = function FontRendererFactoryClosure() { this.compiledCharCodeToGlyphId = Object.create(null); } - _createClass(CompiledFont, [{ - key: "getPathJs", - value: function getPathJs(unicode) { - var cmap = lookupCmap(this.cmap, unicode); - var fn = this.compiledGlyphs[cmap.glyphId]; + getPathJs(unicode) { + const cmap = lookupCmap(this.cmap, unicode); + let fn = this.compiledGlyphs[cmap.glyphId]; - if (!fn) { - fn = this.compileGlyph(this.glyphs[cmap.glyphId], cmap.glyphId); - this.compiledGlyphs[cmap.glyphId] = fn; - } - - if (this.compiledCharCodeToGlyphId[cmap.charCode] === undefined) { - this.compiledCharCodeToGlyphId[cmap.charCode] = cmap.glyphId; - } - - return fn; + if (!fn) { + fn = this.compileGlyph(this.glyphs[cmap.glyphId], cmap.glyphId); + this.compiledGlyphs[cmap.glyphId] = fn; } - }, { - key: "compileGlyph", - value: function compileGlyph(code, glyphId) { - if (!code || code.length === 0 || code[0] === 14) { - return NOOP; - } - var fontMatrix = this.fontMatrix; - - if (this.isCFFCIDFont) { - var fdIndex = this.fdSelect.getFDIndex(glyphId); - - if (fdIndex >= 0 && fdIndex < this.fdArray.length) { - var fontDict = this.fdArray[fdIndex]; - fontMatrix = fontDict.getByName('FontMatrix') || _util.FONT_IDENTITY_MATRIX; - } else { - (0, _util.warn)('Invalid fd index for glyph index.'); - } - } - - var cmds = []; - cmds.push({ - cmd: 'save' - }); - cmds.push({ - cmd: 'transform', - args: fontMatrix.slice() - }); - cmds.push({ - cmd: 'scale', - args: ['size', '-size'] - }); - this.compileGlyphImpl(code, cmds, glyphId); - cmds.push({ - cmd: 'restore' - }); - return cmds; + if (this.compiledCharCodeToGlyphId[cmap.charCode] === undefined) { + this.compiledCharCodeToGlyphId[cmap.charCode] = cmap.glyphId; } - }, { - key: "compileGlyphImpl", - value: function compileGlyphImpl() { - (0, _util.unreachable)('Children classes should implement this.'); - } - }, { - key: "hasBuiltPath", - value: function hasBuiltPath(unicode) { - var cmap = lookupCmap(this.cmap, unicode); - return this.compiledGlyphs[cmap.glyphId] !== undefined && this.compiledCharCodeToGlyphId[cmap.charCode] !== undefined; - } - }]); - return CompiledFont; - }(); - - var TrueTypeCompiled = - /*#__PURE__*/ - function (_CompiledFont) { - _inherits(TrueTypeCompiled, _CompiledFont); - - function TrueTypeCompiled(glyphs, cmap, fontMatrix) { - var _this; - - _classCallCheck(this, TrueTypeCompiled); - - _this = _possibleConstructorReturn(this, _getPrototypeOf(TrueTypeCompiled).call(this, fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0])); - _this.glyphs = glyphs; - _this.cmap = cmap; - return _this; + return fn; } - _createClass(TrueTypeCompiled, [{ - key: "compileGlyphImpl", - value: function compileGlyphImpl(code, cmds) { - compileGlyf(code, cmds, this); + compileGlyph(code, glyphId) { + if (!code || code.length === 0 || code[0] === 14) { + return NOOP; } - }]); - return TrueTypeCompiled; - }(CompiledFont); + let fontMatrix = this.fontMatrix; - var Type2Compiled = - /*#__PURE__*/ - function (_CompiledFont2) { - _inherits(Type2Compiled, _CompiledFont2); + if (this.isCFFCIDFont) { + const fdIndex = this.fdSelect.getFDIndex(glyphId); - function Type2Compiled(cffInfo, cmap, fontMatrix, glyphNameMap) { - var _this2; + if (fdIndex >= 0 && fdIndex < this.fdArray.length) { + const fontDict = this.fdArray[fdIndex]; + fontMatrix = fontDict.getByName("FontMatrix") || _util.FONT_IDENTITY_MATRIX; + } else { + (0, _util.warn)("Invalid fd index for glyph index."); + } + } - _classCallCheck(this, Type2Compiled); - - _this2 = _possibleConstructorReturn(this, _getPrototypeOf(Type2Compiled).call(this, fontMatrix || [0.001, 0, 0, 0.001, 0, 0])); - _this2.glyphs = cffInfo.glyphs; - _this2.gsubrs = cffInfo.gsubrs || []; - _this2.subrs = cffInfo.subrs || []; - _this2.cmap = cmap; - _this2.glyphNameMap = glyphNameMap || (0, _glyphlist.getGlyphsUnicode)(); - _this2.gsubrsBias = _this2.gsubrs.length < 1240 ? 107 : _this2.gsubrs.length < 33900 ? 1131 : 32768; - _this2.subrsBias = _this2.subrs.length < 1240 ? 107 : _this2.subrs.length < 33900 ? 1131 : 32768; - _this2.isCFFCIDFont = cffInfo.isCFFCIDFont; - _this2.fdSelect = cffInfo.fdSelect; - _this2.fdArray = cffInfo.fdArray; - return _this2; + const cmds = []; + cmds.push({ + cmd: "save" + }); + cmds.push({ + cmd: "transform", + args: fontMatrix.slice() + }); + cmds.push({ + cmd: "scale", + args: ["size", "-size"] + }); + this.compileGlyphImpl(code, cmds, glyphId); + cmds.push({ + cmd: "restore" + }); + return cmds; } - _createClass(Type2Compiled, [{ - key: "compileGlyphImpl", - value: function compileGlyphImpl(code, cmds, glyphId) { - compileCharString(code, cmds, this, glyphId); - } - }]); + compileGlyphImpl() { + (0, _util.unreachable)("Children classes should implement this."); + } - return Type2Compiled; - }(CompiledFont); + hasBuiltPath(unicode) { + const cmap = lookupCmap(this.cmap, unicode); + return this.compiledGlyphs[cmap.glyphId] !== undefined && this.compiledCharCodeToGlyphId[cmap.charCode] !== undefined; + } + + } + + class TrueTypeCompiled extends CompiledFont { + constructor(glyphs, cmap, fontMatrix) { + super(fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0]); + this.glyphs = glyphs; + this.cmap = cmap; + } + + compileGlyphImpl(code, cmds) { + compileGlyf(code, cmds, this); + } + + } + + class Type2Compiled extends CompiledFont { + constructor(cffInfo, cmap, fontMatrix, glyphNameMap) { + super(fontMatrix || [0.001, 0, 0, 0.001, 0, 0]); + this.glyphs = cffInfo.glyphs; + this.gsubrs = cffInfo.gsubrs || []; + this.subrs = cffInfo.subrs || []; + this.cmap = cmap; + this.glyphNameMap = glyphNameMap || (0, _glyphlist.getGlyphsUnicode)(); + this.gsubrsBias = getSubroutineBias(this.gsubrs); + this.subrsBias = getSubroutineBias(this.subrs); + this.isCFFCIDFont = cffInfo.isCFFCIDFont; + this.fdSelect = cffInfo.fdSelect; + this.fdArray = cffInfo.fdArray; + } + + compileGlyphImpl(code, cmds, glyphId) { + compileCharString(code, cmds, this, glyphId); + } + + } return { create: function FontRendererFactory_create(font, seacAnalysisEnabled) { @@ -47967,24 +39535,24 @@ var FontRendererFactory = function FontRendererFactoryClosure() { var length = getLong(data, p + 12); switch (tag) { - case 'cmap': + case "cmap": cmap = parseCmap(data, offset, offset + length); break; - case 'glyf': + case "glyf": glyf = data.subarray(offset, offset + length); break; - case 'loca': + case "loca": loca = data.subarray(offset, offset + length); break; - case 'head': + case "head": unitsPerEm = getUshort(data, offset + 18); indexToLocFormat = getUshort(data, offset + 50); break; - case 'CFF ': + case "CFF ": cff = parseCff(data, offset, offset + length, seacAnalysisEnabled); break; } @@ -48003,7 +39571,7 @@ var FontRendererFactory = function FontRendererFactoryClosure() { exports.FontRendererFactory = FontRendererFactory; /***/ }), -/* 182 */ +/* 38 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -48014,31 +39582,33 @@ Object.defineProperty(exports, "__esModule", { }); exports.Type1Parser = void 0; -var _util = __w_pdfjs_require__(5); +var _encodings = __w_pdfjs_require__(33); -var _encodings = __w_pdfjs_require__(177); +var _core_utils = __w_pdfjs_require__(8); -var _stream = __w_pdfjs_require__(158); +var _stream = __w_pdfjs_require__(12); + +var _util = __w_pdfjs_require__(2); 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] + 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() { @@ -48203,7 +39773,9 @@ var Type1CharString = function Type1CharStringClosure() { case (12 << 8) + 6: if (seacAnalysisEnabled) { + const asb = this.stack[this.stack.length - 5]; this.seac = this.stack.splice(-4, 4); + this.seac[0] += this.lsb - asb; error = this.executeCommand(0, COMMAND_MAP.endchar); } else { error = this.executeCommand(4, COMMAND_MAP.endchar); @@ -48291,7 +39863,8 @@ var Type1CharString = function Type1CharStringClosure() { return error; }, - executeCommand: function executeCommand(howManyArgs, command, keepStack) { + + executeCommand(howManyArgs, command, keepStack) { var stackLength = this.stack.length; if (howManyArgs > stackLength) { @@ -48307,7 +39880,7 @@ var Type1CharString = function Type1CharStringClosure() { 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(255, value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); } } @@ -48321,6 +39894,7 @@ var Type1CharString = function Type1CharStringClosure() { return false; } + }; return Type1CharString; }(); @@ -48390,17 +39964,17 @@ var Type1Parser = function Type1ParserClosure() { } } - return Array.prototype.slice.call(decrypted, discardNumber, j); + return decrypted.slice(discardNumber, j); } function isSpecial(c) { - return c === 0x2F || c === 0x5B || c === 0x5D || c === 0x7B || c === 0x7D || c === 0x28 || c === 0x29; + 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])); + var isBinary = !((isHexDigit(data[0]) || (0, _core_utils.isWhiteSpace)(data[0])) && isHexDigit(data[1]) && isHexDigit(data[2]) && isHexDigit(data[3]) && isHexDigit(data[4]) && isHexDigit(data[5]) && isHexDigit(data[6]) && isHexDigit(data[7])); stream = new _stream.Stream(isBinary ? decrypt(data, EEXEC_ENCRYPT_KEY, 4) : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4)); } @@ -48417,7 +39991,7 @@ var Type1Parser = function Type1ParserClosure() { while (true) { var token = this.getToken(); - if (token === null || token === ']' || token === '}') { + if (token === null || token === "]" || token === "}") { break; } @@ -48436,7 +40010,7 @@ var Type1Parser = function Type1ParserClosure() { }, readBoolean: function Type1Parser_readBoolean() { var token = this.getToken(); - return token === 'true' ? 1 : 0; + return token === "true" ? 1 : 0; }, nextChar: function Type1_nextChar() { return this.currentChar = this.stream.getByte(); @@ -48451,12 +40025,12 @@ var Type1Parser = function Type1ParserClosure() { } if (comment) { - if (ch === 0x0A || ch === 0x0D) { + if (ch === 0x0a || ch === 0x0d) { comment = false; } } else if (ch === 0x25) { comment = true; - } else if (!(0, _util.isSpace)(ch)) { + } else if (!(0, _core_utils.isWhiteSpace)(ch)) { break; } @@ -48468,12 +40042,12 @@ var Type1Parser = function Type1ParserClosure() { return String.fromCharCode(ch); } - var token = ''; + var token = ""; do { token += String.fromCharCode(ch); ch = this.nextChar(); - } while (ch >= 0 && !(0, _util.isSpace)(ch) && !isSpecial(ch)); + } while (ch >= 0 && !(0, _core_utils.isWhiteSpace)(ch) && !isSpecial(ch)); return token; }, @@ -48484,30 +40058,30 @@ var Type1Parser = function Type1ParserClosure() { return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV); }, - extractFontProgram: function Type1Parser_extractFontProgram() { + extractFontProgram: function Type1Parser_extractFontProgram(properties) { var stream = this.stream; var subrs = [], charstrings = []; var privateData = Object.create(null); - privateData['lenIV'] = 4; + privateData.lenIV = 4; var program = { subrs: [], charstrings: [], properties: { - 'privateData': privateData + privateData } }; var token, length, data, lenIV, encoded; while ((token = this.getToken()) !== null) { - if (token !== '/') { + if (token !== "/") { continue; } token = this.getToken(); switch (token) { - case 'CharStrings': + case "CharStrings": this.getToken(); this.getToken(); this.getToken(); @@ -48516,11 +40090,11 @@ var Type1Parser = function Type1ParserClosure() { while (true) { token = this.getToken(); - if (token === null || token === 'end') { + if (token === null || token === "end") { break; } - if (token !== '/') { + if (token !== "/") { continue; } @@ -48528,38 +40102,38 @@ var Type1Parser = function Type1ParserClosure() { length = this.readInt(); this.getToken(); data = length > 0 ? stream.getBytes(length) : new Uint8Array(0); - lenIV = program.properties.privateData['lenIV']; + lenIV = program.properties.privateData.lenIV; encoded = this.readCharStrings(data, lenIV); this.nextChar(); token = this.getToken(); - if (token === 'noaccess') { + if (token === "noaccess") { this.getToken(); } charstrings.push({ - glyph: glyph, - encoded: encoded + glyph, + encoded }); } break; - case 'Subrs': + case "Subrs": this.readInt(); this.getToken(); - while (this.getToken() === 'dup') { - var index = this.readInt(); + while (this.getToken() === "dup") { + const index = this.readInt(); length = this.readInt(); this.getToken(); data = length > 0 ? stream.getBytes(length) : new Uint8Array(0); - lenIV = program.properties.privateData['lenIV']; + lenIV = program.properties.privateData.lenIV; encoded = this.readCharStrings(data, lenIV); this.nextChar(); token = this.getToken(); - if (token === 'noaccess') { + if (token === "noaccess") { this.getToken(); } @@ -48568,10 +40142,10 @@ var Type1Parser = function Type1ParserClosure() { break; - case 'BlueValues': - case 'OtherBlues': - case 'FamilyBlues': - case 'FamilyOtherBlues': + case "BlueValues": + case "OtherBlues": + case "FamilyBlues": + case "FamilyOtherBlues": var blueArray = this.readNumberArray(); if (blueArray.length > 0 && blueArray.length % 2 === 0 && HINTING_ENABLED) { @@ -48580,26 +40154,26 @@ var Type1Parser = function Type1ParserClosure() { break; - case 'StemSnapH': - case 'StemSnapV': + case "StemSnapH": + case "StemSnapV": program.properties.privateData[token] = this.readNumberArray(); break; - case 'StdHW': - case 'StdVW': + case "StdHW": + case "StdVW": program.properties.privateData[token] = this.readNumberArray()[0]; break; - case 'BlueShift': - case 'lenIV': - case 'BlueFuzz': - case 'BlueScale': - case 'LanguageGroup': - case 'ExpansionFactor': + case "BlueShift": + case "lenIV": + case "BlueFuzz": + case "BlueScale": + case "LanguageGroup": + case "ExpansionFactor": program.properties.privateData[token] = this.readNumber(); break; - case 'ForceBold': + case "ForceBold": program.properties.privateData[token] = this.readBoolean(); break; } @@ -48616,13 +40190,27 @@ var Type1Parser = function Type1ParserClosure() { output = [14]; } - program.charstrings.push({ + const charStringObject = { glyphName: glyph, charstring: output, width: charString.width, lsb: charString.lsb, seac: charString.seac - }); + }; + + if (glyph === ".notdef") { + program.charstrings.unshift(charStringObject); + } else { + program.charstrings.push(charStringObject); + } + + if (properties.builtInEncoding) { + const index = properties.builtInEncoding.indexOf(glyph); + + if (index > -1 && properties.widths[index] === undefined && index >= properties.firstChar && index <= properties.lastChar) { + properties.widths[index] = charString.width; + } + } } return program; @@ -48631,19 +40219,19 @@ var Type1Parser = function Type1ParserClosure() { var token; while ((token = this.getToken()) !== null) { - if (token !== '/') { + if (token !== "/") { continue; } token = this.getToken(); switch (token) { - case 'FontMatrix': + case "FontMatrix": var matrix = this.readNumberArray(); properties.fontMatrix = matrix; break; - case 'Encoding': + case "Encoding": var encodingArg = this.getToken(); var encoding; @@ -48657,7 +40245,7 @@ var Type1Parser = function Type1ParserClosure() { for (var j = 0; j < size; j++) { token = this.getToken(); - while (token !== 'dup' && token !== 'def') { + while (token !== "dup" && token !== "def") { token = this.getToken(); if (token === null) { @@ -48665,7 +40253,7 @@ var Type1Parser = function Type1ParserClosure() { } } - if (token === 'def') { + if (token === "def") { break; } @@ -48680,7 +40268,7 @@ var Type1Parser = function Type1ParserClosure() { properties.builtInEncoding = encoding; break; - case 'FontBBox': + case "FontBBox": var fontBBox = this.readNumberArray(); properties.ascent = Math.max(fontBBox[3], fontBBox[1]); properties.descent = Math.min(fontBBox[1], fontBBox[3]); @@ -48696,7 +40284,7 @@ var Type1Parser = function Type1ParserClosure() { exports.Type1Parser = Type1Parser; /***/ }), -/* 183 */ +/* 39 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -48708,13 +40296,13 @@ Object.defineProperty(exports, "__esModule", { exports.getTilingPatternIR = getTilingPatternIR; exports.Pattern = void 0; -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -var _colorspace = __w_pdfjs_require__(169); +var _colorspace = __w_pdfjs_require__(23); -var _primitives = __w_pdfjs_require__(151); +var _primitives = __w_pdfjs_require__(5); -var _core_utils = __w_pdfjs_require__(154); +var _core_utils = __w_pdfjs_require__(8); var ShadingType = { FUNCTION_BASED: 1, @@ -48728,40 +40316,40 @@ var ShadingType = { var Pattern = function PatternClosure() { function Pattern() { - (0, _util.unreachable)('should not call Pattern constructor'); + (0, _util.unreachable)("should not call Pattern constructor"); } Pattern.prototype = { getPattern: function Pattern_getPattern(ctx) { - (0, _util.unreachable)("Should not call Pattern.getStyle: ".concat(ctx)); + (0, _util.unreachable)(`Should not call Pattern.getStyle: ${ctx}`); } }; - Pattern.parseShading = function (shading, matrix, xref, res, handler, pdfFunctionFactory) { + Pattern.parseShading = function (shading, matrix, xref, res, handler, pdfFunctionFactory, localColorSpaceCache) { var dict = (0, _primitives.isStream)(shading) ? shading.dict : shading; - var type = dict.get('ShadingType'); + var type = dict.get("ShadingType"); try { switch (type) { case ShadingType.AXIAL: case ShadingType.RADIAL: - return new Shadings.RadialAxial(dict, matrix, xref, res, pdfFunctionFactory); + return new Shadings.RadialAxial(dict, matrix, xref, res, pdfFunctionFactory, localColorSpaceCache); 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, pdfFunctionFactory); + return new Shadings.Mesh(shading, matrix, xref, res, pdfFunctionFactory, localColorSpaceCache); default: - throw new _util.FormatError('Unsupported ShadingType: ' + type); + throw new _util.FormatError("Unsupported ShadingType: " + type); } } catch (ex) { if (ex instanceof _core_utils.MissingDataException) { throw ex; } - handler.send('UnsupportedFeature', { + handler.send("UnsupportedFeature", { featureId: _util.UNSUPPORTED_FEATURES.shadingPattern }); (0, _util.warn)(ex); @@ -48777,19 +40365,34 @@ var Shadings = {}; Shadings.SMALL_NUMBER = 1e-6; Shadings.RadialAxial = function RadialAxialClosure() { - function RadialAxial(dict, matrix, xref, res, pdfFunctionFactory) { + function RadialAxial(dict, matrix, xref, resources, pdfFunctionFactory, localColorSpaceCache) { this.matrix = matrix; - this.coordsArr = dict.getArray('Coords'); - this.shadingType = dict.get('ShadingType'); - this.type = 'Pattern'; - var cs = dict.get('ColorSpace', 'CS'); - cs = _colorspace.ColorSpace.parse(cs, xref, res, pdfFunctionFactory); + this.coordsArr = dict.getArray("Coords"); + this.shadingType = dict.get("ShadingType"); + this.type = "Pattern"; + + const cs = _colorspace.ColorSpace.parse({ + cs: dict.getRaw("ColorSpace") || dict.getRaw("CS"), + xref, + resources, + pdfFunctionFactory, + localColorSpaceCache + }); + this.cs = cs; + const bbox = dict.getArray("BBox"); + + if (Array.isArray(bbox) && bbox.length === 4) { + this.bbox = _util.Util.normalizeRect(bbox); + } else { + this.bbox = null; + } + var t0 = 0.0, t1 = 1.0; - if (dict.has('Domain')) { - var domainArr = dict.getArray('Domain'); + if (dict.has("Domain")) { + var domainArr = dict.getArray("Domain"); t0 = domainArr[0]; t1 = domainArr[1]; } @@ -48797,8 +40400,8 @@ Shadings.RadialAxial = function RadialAxialClosure() { var extendStart = false, extendEnd = false; - if (dict.has('Extend')) { - var extendArr = dict.getArray('Extend'); + if (dict.has("Extend")) { + var extendArr = dict.getArray("Extend"); extendStart = extendArr[0]; extendEnd = extendArr[1]; } @@ -48813,20 +40416,20 @@ Shadings.RadialAxial = function RadialAxialClosure() { var distance = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)); if (r1 <= r2 + distance && r2 <= r1 + distance) { - (0, _util.warn)('Unsupported radial gradient.'); + (0, _util.warn)("Unsupported radial gradient."); } } this.extendStart = extendStart; this.extendEnd = extendEnd; - var fnObj = dict.get('Function'); + var fnObj = dict.getRaw("Function"); var fn = pdfFunctionFactory.createFromArray(fnObj); - var diff = t1 - t0; - var step = diff / 10; + const NUMBER_OF_SAMPLES = 10; + const step = (t1 - t0) / NUMBER_OF_SAMPLES; var colorStops = this.colorStops = []; if (t0 >= t1 || step <= 0) { - (0, _util.info)('Bad shading domain.'); + (0, _util.info)("Bad shading domain."); return; } @@ -48834,20 +40437,20 @@ Shadings.RadialAxial = function RadialAxialClosure() { ratio = new Float32Array(1); var rgbColor; - for (var i = t0; i <= t1; i += step) { - ratio[0] = i; + for (let i = 0; i <= NUMBER_OF_SAMPLES; i++) { + ratio[0] = t0 + i * step; fn(ratio, 0, color, 0); rgbColor = cs.getRgb(color, 0); var cssColor = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]); - colorStops.push([(i - t0) / diff, cssColor]); + colorStops.push([i / NUMBER_OF_SAMPLES, cssColor]); } - var background = 'transparent'; + var background = "transparent"; - if (dict.has('Background')) { - rgbColor = cs.getRgb(dict.get('Background'), 0); + if (dict.has("Background")) { + rgbColor = cs.getRgb(dict.get("Background"), 0); background = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]); } @@ -48875,15 +40478,15 @@ Shadings.RadialAxial = function RadialAxialClosure() { p1 = [coordsArr[2], coordsArr[3]]; r0 = null; r1 = null; - type = 'axial'; + 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'; + type = "radial"; } else { - (0, _util.unreachable)("getPattern type unknown: ".concat(shadingType)); + (0, _util.unreachable)(`getPattern type unknown: ${shadingType}`); } var matrix = this.matrix; @@ -48900,7 +40503,7 @@ Shadings.RadialAxial = function RadialAxialClosure() { } } - return ['RadialAxial', type, this.colorStops, p0, p1, r0, r1]; + return ["RadialAxial", type, this.bbox, this.colorStops, p0, p1, r0, r1]; } }; return RadialAxial; @@ -48951,7 +40554,7 @@ Shadings.Mesh = function MeshClosure() { 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; + return (buffer << 8 - bufferLength | (nextByte & 0xff) >> bufferLength) >>> 0; } if (n === 8 && bufferLength === 0) { @@ -49019,7 +40622,7 @@ Shadings.Mesh = function MeshClosure() { if (verticesLeft === 0) { if (!(0 <= f && f <= 2)) { - throw new _util.FormatError('Unknown type4 flag'); + throw new _util.FormatError("Unknown type4 flag"); } switch (f) { @@ -49049,7 +40652,7 @@ Shadings.Mesh = function MeshClosure() { } mesh.figures.push({ - type: 'triangles', + type: "triangles", coords: new Int32Array(ps), colors: new Int32Array(ps) }); @@ -49069,10 +40672,10 @@ Shadings.Mesh = function MeshClosure() { } mesh.figures.push({ - type: 'lattice', + type: "lattice", coords: new Int32Array(ps), colors: new Int32Array(ps), - verticesPerRow: verticesPerRow + verticesPerRow }); } @@ -49105,7 +40708,7 @@ Shadings.Mesh = function MeshClosure() { function buildFigureFromPatch(mesh, index) { var figure = mesh.figures[index]; - (0, _util.assert)(figure.type === 'patch', 'Unexpected patch mesh figure'); + (0, _util.assert)(figure.type === "patch", "Unexpected patch mesh figure"); var coords = mesh.coords, colors = mesh.colors; var pi = figure.coords; @@ -49176,10 +40779,10 @@ Shadings.Mesh = function MeshClosure() { figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15]; figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3]; mesh.figures[index] = { - type: 'lattice', + type: "lattice", coords: figureCoords, colors: figureColors, - verticesPerRow: verticesPerRow + verticesPerRow }; } @@ -49193,7 +40796,7 @@ Shadings.Mesh = function MeshClosure() { var f = reader.readFlag(); if (!(0 <= f && f <= 3)) { - throw new _util.FormatError('Unknown type6 flag'); + throw new _util.FormatError("Unknown type6 flag"); } var i, ii; @@ -49307,7 +40910,7 @@ Shadings.Mesh = function MeshClosure() { 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', + type: "patch", coords: new Int32Array(ps), colors: new Int32Array(cs) }); @@ -49324,7 +40927,7 @@ Shadings.Mesh = function MeshClosure() { var f = reader.readFlag(); if (!(0 <= f && f <= 3)) { - throw new _util.FormatError('Unknown type7 flag'); + throw new _util.FormatError("Unknown type7 flag"); } var i, ii; @@ -49446,7 +41049,7 @@ Shadings.Mesh = function MeshClosure() { } mesh.figures.push({ - type: 'patch', + type: "patch", coords: new Int32Array(ps), colors: new Int32Array(cs) }); @@ -49508,30 +41111,43 @@ Shadings.Mesh = function MeshClosure() { } } - function Mesh(stream, matrix, xref, res, pdfFunctionFactory) { + function Mesh(stream, matrix, xref, resources, pdfFunctionFactory, localColorSpaceCache) { if (!(0, _primitives.isStream)(stream)) { - throw new _util.FormatError('Mesh data is not a stream'); + throw new _util.FormatError("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.ColorSpace.parse(cs, xref, res, pdfFunctionFactory); + this.shadingType = dict.get("ShadingType"); + this.type = "Pattern"; + const bbox = dict.getArray("BBox"); + + if (Array.isArray(bbox) && bbox.length === 4) { + this.bbox = _util.Util.normalizeRect(bbox); + } else { + this.bbox = null; + } + + const cs = _colorspace.ColorSpace.parse({ + cs: dict.getRaw("ColorSpace") || dict.getRaw("CS"), + xref, + resources, + pdfFunctionFactory, + localColorSpaceCache + }); + this.cs = cs; - this.background = dict.has('Background') ? cs.getRgb(dict.get('Background'), 0) : null; - var fnObj = dict.get('Function'); + this.background = dict.has("Background") ? cs.getRgb(dict.get("Background"), 0) : null; + var fnObj = dict.getRaw("Function"); var fn = fnObj ? pdfFunctionFactory.createFromArray(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'), + 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 @@ -49545,10 +41161,10 @@ Shadings.Mesh = function MeshClosure() { break; case ShadingType.LATTICE_FORM_MESH: - var verticesPerRow = dict.get('VerticesPerRow') | 0; + var verticesPerRow = dict.get("VerticesPerRow") | 0; if (verticesPerRow < 2) { - throw new _util.FormatError('Invalid VerticesPerRow'); + throw new _util.FormatError("Invalid VerticesPerRow"); } decodeType5Shading(this, reader, verticesPerRow); @@ -49565,7 +41181,7 @@ Shadings.Mesh = function MeshClosure() { break; default: - (0, _util.unreachable)('Unsupported mesh type.'); + (0, _util.unreachable)("Unsupported mesh type."); break; } @@ -49583,7 +41199,7 @@ Shadings.Mesh = function MeshClosure() { 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", this.shadingType, this.coords, this.colors, this.figures, this.bounds, this.matrix, this.bbox, this.background]; } }; return Mesh; @@ -49591,3294 +41207,36 @@ Shadings.Mesh = function MeshClosure() { Shadings.Dummy = function DummyClosure() { function Dummy() { - this.type = 'Pattern'; + this.type = "Pattern"; } Dummy.prototype = { getIR: function Dummy_getIR() { - return ['Dummy']; + return ["Dummy"]; } }; return Dummy; }(); function getTilingPatternIR(operatorList, dict, args) { - var matrix = dict.getArray('Matrix'); + const matrix = dict.getArray("Matrix"); - var bbox = _util.Util.normalizeRect(dict.getArray('BBox')); + const bbox = _util.Util.normalizeRect(dict.getArray("BBox")); - var xstep = dict.get('XStep'); - var ystep = dict.get('YStep'); - var paintType = dict.get('PaintType'); - var tilingType = dict.get('TilingType'); + const xstep = dict.get("XStep"); + const ystep = dict.get("YStep"); + const paintType = dict.get("PaintType"); + const tilingType = dict.get("TilingType"); if (bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) { - throw new _util.FormatError("Invalid getTilingPatternIR /BBox array: [".concat(bbox, "].")); + throw new _util.FormatError(`Invalid getTilingPatternIR /BBox array: [${bbox}].`); } - return ['TilingPattern', args, operatorList, matrix, bbox, xstep, ystep, paintType, tilingType]; + return ["TilingPattern", args, operatorList, matrix, bbox, xstep, ystep, paintType, tilingType]; } /***/ }), -/* 184 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.bidi = bidi; - -var _util = __w_pdfjs_require__(5); - -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) { - (0, _util.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); -} - -/***/ }), -/* 185 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getMetrics = void 0; - -var _core_utils = __w_pdfjs_require__(154); - -var getMetrics = (0, _core_utils.getLookupTableFactory)(function (t) { - t['Courier'] = 600; - t['Courier-Bold'] = 600; - t['Courier-BoldOblique'] = 600; - t['Courier-Oblique'] = 600; - t['Helvetica'] = (0, _core_utils.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'] = (0, _core_utils.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'] = (0, _core_utils.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'] = (0, _core_utils.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'] = (0, _core_utils.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'] = (0, _core_utils.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'] = (0, _core_utils.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'] = (0, _core_utils.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'] = (0, _core_utils.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'] = (0, _core_utils.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; - -/***/ }), -/* 186 */ +/* 40 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -52890,63 +41248,111 @@ Object.defineProperty(exports, "__esModule", { exports.isPDFFunction = isPDFFunction; exports.PostScriptCompiler = exports.PostScriptEvaluator = exports.PDFFunctionFactory = void 0; -var _util = __w_pdfjs_require__(5); +var _primitives = __w_pdfjs_require__(5); -var _primitives = __w_pdfjs_require__(151); +var _util = __w_pdfjs_require__(2); -var _ps_parser = __w_pdfjs_require__(187); +var _ps_parser = __w_pdfjs_require__(41); -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var IsEvalSupportedCached = { - get value() { - return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)()); - } - -}; - -var PDFFunctionFactory = -/*#__PURE__*/ -function () { - function PDFFunctionFactory(_ref) { - var xref = _ref.xref, - _ref$isEvalSupported = _ref.isEvalSupported, - isEvalSupported = _ref$isEvalSupported === void 0 ? true : _ref$isEvalSupported; - - _classCallCheck(this, PDFFunctionFactory); +var _image_utils = __w_pdfjs_require__(24); +class PDFFunctionFactory { + constructor({ + xref, + isEvalSupported = true + }) { this.xref = xref; this.isEvalSupported = isEvalSupported !== false; + this._localFunctionCache = null; } - _createClass(PDFFunctionFactory, [{ - key: "create", - value: function create(fn) { - return PDFFunction.parse({ - xref: this.xref, - isEvalSupported: this.isEvalSupported, - fn: fn - }); - } - }, { - key: "createFromArray", - value: function createFromArray(fnObj) { - return PDFFunction.parseArray({ - xref: this.xref, - isEvalSupported: this.isEvalSupported, - fnObj: fnObj - }); - } - }]); + create(fn) { + const cachedFunction = this.getCached(fn); - return PDFFunctionFactory; -}(); + if (cachedFunction) { + return cachedFunction; + } + + const parsedFunction = PDFFunction.parse({ + xref: this.xref, + isEvalSupported: this.isEvalSupported, + fn: fn instanceof _primitives.Ref ? this.xref.fetch(fn) : fn + }); + + this._cache(fn, parsedFunction); + + return parsedFunction; + } + + createFromArray(fnObj) { + const cachedFunction = this.getCached(fnObj); + + if (cachedFunction) { + return cachedFunction; + } + + const parsedFunction = PDFFunction.parseArray({ + xref: this.xref, + isEvalSupported: this.isEvalSupported, + fnObj: fnObj instanceof _primitives.Ref ? this.xref.fetch(fnObj) : fnObj + }); + + this._cache(fnObj, parsedFunction); + + return parsedFunction; + } + + getCached(cacheKey) { + let fnRef; + + if (cacheKey instanceof _primitives.Ref) { + fnRef = cacheKey; + } else if (cacheKey instanceof _primitives.Dict) { + fnRef = cacheKey.objId; + } else if ((0, _primitives.isStream)(cacheKey)) { + fnRef = cacheKey.dict && cacheKey.dict.objId; + } + + if (fnRef) { + if (!this._localFunctionCache) { + this._localFunctionCache = new _image_utils.LocalFunctionCache(); + } + + const localFunction = this._localFunctionCache.getByRef(fnRef); + + if (localFunction) { + return localFunction; + } + } + + return null; + } + + _cache(cacheKey, parsedFunction) { + if (!parsedFunction) { + throw new Error('PDFFunctionFactory._cache - expected "parsedFunction" argument.'); + } + + let fnRef; + + if (cacheKey instanceof _primitives.Ref) { + fnRef = cacheKey; + } else if (cacheKey instanceof _primitives.Dict) { + fnRef = cacheKey.objId; + } else if ((0, _primitives.isStream)(cacheKey)) { + fnRef = cacheKey.dict && cacheKey.dict.objId; + } + + if (fnRef) { + if (!this._localFunctionCache) { + this._localFunctionCache = new _image_utils.LocalFunctionCache(); + } + + this._localFunctionCache.set(null, fnRef, parsedFunction); + } + } + +} exports.PDFFunctionFactory = PDFFunctionFactory; @@ -52955,14 +41361,14 @@ function toNumberArray(arr) { return null; } - var length = arr.length; + const length = arr.length; - for (var i = 0; i < length; i++) { - if (typeof arr[i] !== 'number') { - var result = new Array(length); + for (let i = 0; i < length; i++) { + if (typeof arr[i] !== "number") { + const result = new Array(length); - for (var _i = 0; _i < length; _i++) { - result[_i] = +arr[_i]; + for (let j = 0; j < length; j++) { + result[j] = +arr[j]; } return result; @@ -52973,12 +41379,12 @@ function toNumberArray(arr) { } var PDFFunction = function PDFFunctionClosure() { - var CONSTRUCT_SAMPLED = 0; - var CONSTRUCT_INTERPOLATED = 2; - var CONSTRUCT_STICHED = 3; - var CONSTRUCT_POSTSCRIPT = 4; + const CONSTRUCT_SAMPLED = 0; + const CONSTRUCT_INTERPOLATED = 2; + const CONSTRUCT_STICHED = 3; + const CONSTRUCT_POSTSCRIPT = 4; return { - getSampleArray: function getSampleArray(size, outputSize, bps, stream) { + getSampleArray(size, outputSize, bps, stream) { var i, ii; var length = 1; @@ -52990,7 +41396,7 @@ var PDFFunction = function PDFFunctionClosure() { var array = new Array(length); var codeSize = 0; var codeBuf = 0; - var sampleMul = 1.0 / (Math.pow(2.0, bps) - 1); + var sampleMul = 1.0 / (2.0 ** bps - 1); var strBytes = stream.getBytes((length * bps + 7) / 8); var strIdx = 0; @@ -53008,10 +41414,12 @@ var PDFFunction = function PDFFunctionClosure() { return array; }, - getIR: function getIR(_ref2) { - var xref = _ref2.xref, - isEvalSupported = _ref2.isEvalSupported, - fn = _ref2.fn; + + getIR({ + xref, + isEvalSupported, + fn + }) { var dict = fn.dict; if (!dict) { @@ -53019,80 +41427,85 @@ var PDFFunction = function PDFFunctionClosure() { } var types = [this.constructSampled, null, this.constructInterpolated, this.constructStiched, this.constructPostScript]; - var typeNum = dict.get('FunctionType'); + var typeNum = dict.get("FunctionType"); var typeFn = types[typeNum]; if (!typeFn) { - throw new _util.FormatError('Unknown type of function'); + throw new _util.FormatError("Unknown type of function"); } return typeFn.call(this, { - xref: xref, - isEvalSupported: isEvalSupported, - fn: fn, - dict: dict + xref, + isEvalSupported, + fn, + dict }); }, - fromIR: function fromIR(_ref3) { - var xref = _ref3.xref, - isEvalSupported = _ref3.isEvalSupported, - IR = _ref3.IR; + + fromIR({ + xref, + isEvalSupported, + IR + }) { var type = IR[0]; switch (type) { case CONSTRUCT_SAMPLED: return this.constructSampledFromIR({ - xref: xref, - isEvalSupported: isEvalSupported, - IR: IR + xref, + isEvalSupported, + IR }); case CONSTRUCT_INTERPOLATED: return this.constructInterpolatedFromIR({ - xref: xref, - isEvalSupported: isEvalSupported, - IR: IR + xref, + isEvalSupported, + IR }); case CONSTRUCT_STICHED: return this.constructStichedFromIR({ - xref: xref, - isEvalSupported: isEvalSupported, - IR: IR + xref, + isEvalSupported, + IR }); default: return this.constructPostScriptFromIR({ - xref: xref, - isEvalSupported: isEvalSupported, - IR: IR + xref, + isEvalSupported, + IR }); } }, - parse: function parse(_ref4) { - var xref = _ref4.xref, - isEvalSupported = _ref4.isEvalSupported, - fn = _ref4.fn; - var IR = this.getIR({ - xref: xref, - isEvalSupported: isEvalSupported, - fn: fn + + parse({ + xref, + isEvalSupported, + fn + }) { + const IR = this.getIR({ + xref, + isEvalSupported, + fn }); return this.fromIR({ - xref: xref, - isEvalSupported: isEvalSupported, - IR: IR + xref, + isEvalSupported, + IR }); }, - parseArray: function parseArray(_ref5) { - var xref = _ref5.xref, - isEvalSupported = _ref5.isEvalSupported, - fnObj = _ref5.fnObj; + parseArray({ + xref, + isEvalSupported, + fnObj + }) { if (!Array.isArray(fnObj)) { return this.parse({ - xref: xref, - isEvalSupported: isEvalSupported, + xref, + isEvalSupported, fn: fnObj }); } @@ -53101,8 +41514,8 @@ var PDFFunction = function PDFFunctionClosure() { for (var j = 0, jj = fnObj.length; j < jj; j++) { fnArray.push(this.parse({ - xref: xref, - isEvalSupported: isEvalSupported, + xref, + isEvalSupported, fn: xref.fetchIfRef(fnObj[j]) })); } @@ -53113,12 +41526,13 @@ var PDFFunction = function PDFFunctionClosure() { } }; }, - constructSampled: function constructSampled(_ref6) { - var xref = _ref6.xref, - isEvalSupported = _ref6.isEvalSupported, - fn = _ref6.fn, - dict = _ref6.dict; + constructSampled({ + xref, + isEvalSupported, + fn, + dict + }) { function toMultiArray(arr) { var inputLength = arr.length; var out = []; @@ -53132,26 +41546,26 @@ var PDFFunction = function PDFFunctionClosure() { return out; } - var domain = toNumberArray(dict.getArray('Domain')); - var range = toNumberArray(dict.getArray('Range')); + var domain = toNumberArray(dict.getArray("Domain")); + var range = toNumberArray(dict.getArray("Range")); if (!domain || !range) { - throw new _util.FormatError('No domain or range'); + throw new _util.FormatError("No domain or range"); } var inputSize = domain.length / 2; var outputSize = range.length / 2; domain = toMultiArray(domain); range = toMultiArray(range); - var size = toNumberArray(dict.getArray('Size')); - var bps = dict.get('BitsPerSample'); - var order = dict.get('Order') || 1; + var size = toNumberArray(dict.getArray("Size")); + var bps = dict.get("BitsPerSample"); + var order = dict.get("Order") || 1; if (order !== 1) { - (0, _util.info)('No support for cubic spline interpolation: ' + order); + (0, _util.info)("No support for cubic spline interpolation: " + order); } - var encode = toNumberArray(dict.getArray('Encode')); + var encode = toNumberArray(dict.getArray("Encode")); if (!encode) { encode = []; @@ -53163,7 +41577,7 @@ var PDFFunction = function PDFFunctionClosure() { encode = toMultiArray(encode); } - var decode = toNumberArray(dict.getArray('Decode')); + var decode = toNumberArray(dict.getArray("Decode")); if (!decode) { decode = range; @@ -53172,13 +41586,14 @@ var PDFFunction = function PDFFunctionClosure() { } var samples = this.getSampleArray(size, outputSize, bps, fn); - return [CONSTRUCT_SAMPLED, inputSize, domain, encode, decode, samples, size, outputSize, Math.pow(2, bps) - 1, range]; + return [CONSTRUCT_SAMPLED, inputSize, domain, encode, decode, samples, size, outputSize, 2 ** bps - 1, range]; }, - constructSampledFromIR: function constructSampledFromIR(_ref7) { - var xref = _ref7.xref, - isEvalSupported = _ref7.isEvalSupported, - IR = _ref7.IR; + constructSampledFromIR({ + xref, + isEvalSupported, + IR + }) { function interpolate(x, xmin, xmax, ymin, ymax) { return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin)); } @@ -53243,14 +41658,16 @@ var PDFFunction = function PDFFunctionClosure() { } }; }, - constructInterpolated: function constructInterpolated(_ref8) { - var xref = _ref8.xref, - isEvalSupported = _ref8.isEvalSupported, - fn = _ref8.fn, - dict = _ref8.dict; - var c0 = toNumberArray(dict.getArray('C0')) || [0]; - var c1 = toNumberArray(dict.getArray('C1')) || [1]; - var n = dict.get('N'); + + constructInterpolated({ + xref, + isEvalSupported, + fn, + dict + }) { + var c0 = toNumberArray(dict.getArray("C0")) || [0]; + var c1 = toNumberArray(dict.getArray("C1")) || [1]; + var n = dict.get("N"); var length = c0.length; var diff = []; @@ -53260,58 +41677,64 @@ var PDFFunction = function PDFFunctionClosure() { return [CONSTRUCT_INTERPOLATED, c0, diff, n]; }, - constructInterpolatedFromIR: function constructInterpolatedFromIR(_ref9) { - var xref = _ref9.xref, - isEvalSupported = _ref9.isEvalSupported, - IR = _ref9.IR; + + constructInterpolatedFromIR({ + xref, + isEvalSupported, + 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); + var x = n === 1 ? src[srcOffset] : src[srcOffset] ** n; for (var j = 0; j < length; ++j) { dest[destOffset + j] = c0[j] + x * diff[j]; } }; }, - constructStiched: function constructStiched(_ref10) { - var xref = _ref10.xref, - isEvalSupported = _ref10.isEvalSupported, - fn = _ref10.fn, - dict = _ref10.dict; - var domain = toNumberArray(dict.getArray('Domain')); + + constructStiched({ + xref, + isEvalSupported, + fn, + dict + }) { + var domain = toNumberArray(dict.getArray("Domain")); if (!domain) { - throw new _util.FormatError('No domain'); + throw new _util.FormatError("No domain"); } var inputSize = domain.length / 2; if (inputSize !== 1) { - throw new _util.FormatError('Bad domain for stiched function'); + throw new _util.FormatError("Bad domain for stiched function"); } - var fnRefs = dict.get('Functions'); + var fnRefs = dict.get("Functions"); var fns = []; for (var i = 0, ii = fnRefs.length; i < ii; ++i) { fns.push(this.parse({ - xref: xref, - isEvalSupported: isEvalSupported, + xref, + isEvalSupported, fn: xref.fetchIfRef(fnRefs[i]) })); } - var bounds = toNumberArray(dict.getArray('Bounds')); - var encode = toNumberArray(dict.getArray('Encode')); + var bounds = toNumberArray(dict.getArray("Bounds")); + var encode = toNumberArray(dict.getArray("Encode")); return [CONSTRUCT_STICHED, domain, bounds, encode, fns]; }, - constructStichedFromIR: function constructStichedFromIR(_ref11) { - var xref = _ref11.xref, - isEvalSupported = _ref11.isEvalSupported, - IR = _ref11.IR; + + constructStichedFromIR({ + xref, + isEvalSupported, + IR + }) { var domain = IR[1]; var bounds = IR[2]; var encode = IR[3]; @@ -53354,20 +41777,22 @@ var PDFFunction = function PDFFunctionClosure() { fns[i](tmpBuf, 0, dest, destOffset); }; }, - constructPostScript: function constructPostScript(_ref12) { - var xref = _ref12.xref, - isEvalSupported = _ref12.isEvalSupported, - fn = _ref12.fn, - dict = _ref12.dict; - var domain = toNumberArray(dict.getArray('Domain')); - var range = toNumberArray(dict.getArray('Range')); + + constructPostScript({ + xref, + isEvalSupported, + fn, + dict + }) { + var domain = toNumberArray(dict.getArray("Domain")); + var range = toNumberArray(dict.getArray("Range")); if (!domain) { - throw new _util.FormatError('No domain.'); + throw new _util.FormatError("No domain."); } if (!range) { - throw new _util.FormatError('No range.'); + throw new _util.FormatError("No range."); } var lexer = new _ps_parser.PostScriptLexer(fn); @@ -53375,23 +41800,25 @@ var PDFFunction = function PDFFunctionClosure() { var code = parser.parse(); return [CONSTRUCT_POSTSCRIPT, domain, range, code]; }, - constructPostScriptFromIR: function constructPostScriptFromIR(_ref13) { - var xref = _ref13.xref, - isEvalSupported = _ref13.isEvalSupported, - IR = _ref13.IR; + + constructPostScriptFromIR({ + xref, + isEvalSupported, + IR + }) { var domain = IR[1]; var range = IR[2]; var code = IR[3]; - if (isEvalSupported && IsEvalSupportedCached.value) { - var compiled = new PostScriptCompiler().compile(code, domain, range); + if (isEvalSupported && _util.IsEvalSupportedCached.value) { + const compiled = new PostScriptCompiler().compile(code, domain, range); if (compiled) { - return new Function('src', 'srcOffset', 'dest', 'destOffset', compiled); + return new Function("src", "srcOffset", "dest", "destOffset", compiled); } } - (0, _util.info)('Unable to compile PS function'); + (0, _util.info)("Unable to compile PS function"); var numOutputs = range.length >> 1; var numInputs = domain.length >> 1; var evaluator = new PostScriptEvaluator(code); @@ -53401,13 +41828,13 @@ var PDFFunction = function PDFFunctionClosure() { var tmpBuf = new Float32Array(numInputs); return function constructPostScriptFromIRResult(src, srcOffset, dest, destOffset) { var i, value; - var key = ''; + var key = ""; var input = tmpBuf; for (i = 0; i < numInputs; i++) { value = src[srcOffset + i]; input[i] = value; - key += value + '_'; + key += value + "_"; } var cachedValue = cache[key]; @@ -53446,13 +41873,14 @@ var PDFFunction = function PDFFunctionClosure() { dest.set(output, destOffset); }; } + }; }(); function isPDFFunction(v) { var fnDict; - if (_typeof(v) !== 'object') { + if (typeof v !== "object") { return false; } else if ((0, _primitives.isDict)(v)) { fnDict = v; @@ -53462,7 +41890,7 @@ function isPDFFunction(v) { return false; } - return fnDict.has('FunctionType'); + return fnDict.has("FunctionType"); } var PostScriptStack = function PostScriptStackClosure() { @@ -53475,21 +41903,21 @@ var PostScriptStack = function PostScriptStackClosure() { PostScriptStack.prototype = { push: function PostScriptStack_push(value) { if (this.stack.length >= MAX_STACK_SIZE) { - throw new Error('PostScript function stack overflow.'); + throw new Error("PostScript function stack overflow."); } this.stack.push(value); }, pop: function PostScriptStack_pop() { if (this.stack.length <= 0) { - throw new Error('PostScript function stack underflow.'); + throw new Error("PostScript function stack underflow."); } return this.stack.pop(); }, copy: function PostScriptStack_copy(n) { if (this.stack.length + n >= MAX_STACK_SIZE) { - throw new Error('PostScript function stack overflow.'); + throw new Error("PostScript function stack overflow."); } var stack = this.stack; @@ -53548,13 +41976,13 @@ var PostScriptEvaluator = function PostScriptEvaluatorClosure() { while (counter < length) { operator = operators[counter++]; - if (typeof operator === 'number') { + if (typeof operator === "number") { stack.push(operator); continue; } switch (operator) { - case 'jz': + case "jz": b = stack.pop(); a = stack.pop(); @@ -53564,23 +41992,23 @@ var PostScriptEvaluator = function PostScriptEvaluatorClosure() { break; - case 'j': + case "j": a = stack.pop(); counter = a; break; - case 'abs': + case "abs": a = stack.pop(); stack.push(Math.abs(a)); break; - case 'add': + case "add": b = stack.pop(); a = stack.pop(); stack.push(a + b); break; - case 'and': + case "and": b = stack.pop(); a = stack.pop(); @@ -53592,12 +42020,12 @@ var PostScriptEvaluator = function PostScriptEvaluatorClosure() { break; - case 'atan': + case "atan": a = stack.pop(); stack.push(Math.atan(a)); break; - case 'bitshift': + case "bitshift": b = stack.pop(); a = stack.pop(); @@ -53609,133 +42037,133 @@ var PostScriptEvaluator = function PostScriptEvaluatorClosure() { break; - case 'ceiling': + case "ceiling": a = stack.pop(); stack.push(Math.ceil(a)); break; - case 'copy': + case "copy": a = stack.pop(); stack.copy(a); break; - case 'cos': + case "cos": a = stack.pop(); stack.push(Math.cos(a)); break; - case 'cvi': + case "cvi": a = stack.pop() | 0; stack.push(a); break; - case 'cvr': + case "cvr": break; - case 'div': + case "div": b = stack.pop(); a = stack.pop(); stack.push(a / b); break; - case 'dup': + case "dup": stack.copy(1); break; - case 'eq': + case "eq": b = stack.pop(); a = stack.pop(); stack.push(a === b); break; - case 'exch': + case "exch": stack.roll(2, 1); break; - case 'exp': + case "exp": b = stack.pop(); a = stack.pop(); - stack.push(Math.pow(a, b)); + stack.push(a ** b); break; - case 'false': + case "false": stack.push(false); break; - case 'floor': + case "floor": a = stack.pop(); stack.push(Math.floor(a)); break; - case 'ge': + case "ge": b = stack.pop(); a = stack.pop(); stack.push(a >= b); break; - case 'gt': + case "gt": b = stack.pop(); a = stack.pop(); stack.push(a > b); break; - case 'idiv': + case "idiv": b = stack.pop(); a = stack.pop(); stack.push(a / b | 0); break; - case 'index': + case "index": a = stack.pop(); stack.index(a); break; - case 'le': + case "le": b = stack.pop(); a = stack.pop(); stack.push(a <= b); break; - case 'ln': + case "ln": a = stack.pop(); stack.push(Math.log(a)); break; - case 'log': + case "log": a = stack.pop(); stack.push(Math.log(a) / Math.LN10); break; - case 'lt': + case "lt": b = stack.pop(); a = stack.pop(); stack.push(a < b); break; - case 'mod': + case "mod": b = stack.pop(); a = stack.pop(); stack.push(a % b); break; - case 'mul': + case "mul": b = stack.pop(); a = stack.pop(); stack.push(a * b); break; - case 'ne': + case "ne": b = stack.pop(); a = stack.pop(); stack.push(a !== b); break; - case 'neg': + case "neg": a = stack.pop(); stack.push(-a); break; - case 'not': + case "not": a = stack.pop(); if ((0, _util.isBool)(a)) { @@ -53746,7 +42174,7 @@ var PostScriptEvaluator = function PostScriptEvaluatorClosure() { break; - case 'or': + case "or": b = stack.pop(); a = stack.pop(); @@ -53758,48 +42186,48 @@ var PostScriptEvaluator = function PostScriptEvaluatorClosure() { break; - case 'pop': + case "pop": stack.pop(); break; - case 'roll': + case "roll": b = stack.pop(); a = stack.pop(); stack.roll(a, b); break; - case 'round': + case "round": a = stack.pop(); stack.push(Math.round(a)); break; - case 'sin': + case "sin": a = stack.pop(); stack.push(Math.sin(a)); break; - case 'sqrt': + case "sqrt": a = stack.pop(); stack.push(Math.sqrt(a)); break; - case 'sub': + case "sub": b = stack.pop(); a = stack.pop(); stack.push(a - b); break; - case 'true': + case "true": stack.push(true); break; - case 'truncate': + case "truncate": a = stack.pop(); a = a < 0 ? Math.ceil(a) : Math.floor(a); stack.push(a); break; - case 'xor': + case "xor": b = stack.pop(); a = stack.pop(); @@ -53812,7 +42240,7 @@ var PostScriptEvaluator = function PostScriptEvaluatorClosure() { break; default: - throw new _util.FormatError("Unknown operator ".concat(operator)); + throw new _util.FormatError(`Unknown operator ${operator}`); } } @@ -53830,11 +42258,11 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { } AstNode.prototype.visit = function (visitor) { - (0, _util.unreachable)('abstract method'); + (0, _util.unreachable)("abstract method"); }; function AstArgument(index, min, max) { - AstNode.call(this, 'args'); + AstNode.call(this, "args"); this.index = index; this.min = min; this.max = max; @@ -53847,7 +42275,7 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { }; function AstLiteral(number) { - AstNode.call(this, 'literal'); + AstNode.call(this, "literal"); this.number = number; this.min = number; this.max = number; @@ -53860,7 +42288,7 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { }; function AstBinaryOperation(op, arg1, arg2, min, max) { - AstNode.call(this, 'binary'); + AstNode.call(this, "binary"); this.op = op; this.arg1 = arg1; this.arg2 = arg2; @@ -53875,7 +42303,7 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { }; function AstMin(arg, max) { - AstNode.call(this, 'max'); + AstNode.call(this, "max"); this.arg = arg; this.min = arg.min; this.max = max; @@ -53888,7 +42316,7 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { }; function AstVariable(index, min, max) { - AstNode.call(this, 'var'); + AstNode.call(this, "var"); this.index = index; this.min = min; this.max = max; @@ -53901,7 +42329,7 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { }; function AstVariableDefinition(variable, arg) { - AstNode.call(this, 'definition'); + AstNode.call(this, "definition"); this.variable = variable; this.arg = arg; } @@ -53917,67 +42345,74 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { } ExpressionBuilderVisitor.prototype = { - visitArgument: function visitArgument(arg) { - this.parts.push('Math.max(', arg.min, ', Math.min(', arg.max, ', src[srcOffset + ', arg.index, ']))'); + visitArgument(arg) { + this.parts.push("Math.max(", arg.min, ", Math.min(", arg.max, ", src[srcOffset + ", arg.index, "]))"); }, - visitVariable: function visitVariable(variable) { - this.parts.push('v', variable.index); + + visitVariable(variable) { + this.parts.push("v", variable.index); }, - visitLiteral: function visitLiteral(literal) { + + visitLiteral(literal) { this.parts.push(literal.number); }, - visitBinaryOperation: function visitBinaryOperation(operation) { - this.parts.push('('); + + visitBinaryOperation(operation) { + this.parts.push("("); operation.arg1.visit(this); - this.parts.push(' ', operation.op, ' '); + this.parts.push(" ", operation.op, " "); operation.arg2.visit(this); - this.parts.push(')'); + this.parts.push(")"); }, - visitVariableDefinition: function visitVariableDefinition(definition) { - this.parts.push('var '); + + visitVariableDefinition(definition) { + this.parts.push("var "); definition.variable.visit(this); - this.parts.push(' = '); + this.parts.push(" = "); definition.arg.visit(this); - this.parts.push(';'); + this.parts.push(";"); }, - visitMin: function visitMin(max) { - this.parts.push('Math.min('); + + visitMin(max) { + this.parts.push("Math.min("); max.arg.visit(this); - this.parts.push(', ', max.max, ')'); + this.parts.push(", ", max.max, ")"); }, - toString: function toString() { - return this.parts.join(''); + + toString() { + return this.parts.join(""); } + }; function buildAddOperation(num1, num2) { - if (num2.type === 'literal' && num2.number === 0) { + if (num2.type === "literal" && num2.number === 0) { return num1; } - if (num1.type === 'literal' && num1.number === 0) { + if (num1.type === "literal" && num1.number === 0) { return num2; } - if (num2.type === 'literal' && num1.type === 'literal') { + 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); + return new AstBinaryOperation("+", num1, num2, num1.min + num2.min, num1.max + num2.max); } function buildMulOperation(num1, num2) { - if (num2.type === 'literal') { + if (num2.type === "literal") { if (num2.number === 0) { return new AstLiteral(0); } else if (num2.number === 1) { return num1; - } else if (num1.type === 'literal') { + } else if (num1.type === "literal") { return new AstLiteral(num1.number * num2.number); } } - if (num1.type === 'literal') { + if (num1.type === "literal") { if (num1.number === 0) { return new AstLiteral(0); } else if (num1.number === 1) { @@ -53987,23 +42422,23 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { 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); + return new AstBinaryOperation("*", num1, num2, min, max); } function buildSubOperation(num1, num2) { - if (num2.type === 'literal') { + if (num2.type === "literal") { if (num2.number === 0) { return num1; - } else if (num1.type === 'literal') { + } 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) { + 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); + return new AstBinaryOperation("-", num1, num2, num1.min - num2.max, num1.max - num2.min); } function buildMinOperation(num1, max) { @@ -54021,7 +42456,6 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { 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; @@ -54029,20 +42463,20 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { var n, j; var num1, num2, ast1, ast2, tmpVar, item; - for (i = 0; i < inputSize; i++) { + for (let 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++) { + for (let i = 0, ii = code.length; i < ii; i++) { item = code[i]; - if (typeof item === 'number') { + if (typeof item === "number") { stack.push(new AstLiteral(item)); continue; } switch (item) { - case 'add': + case "add": if (stack.length < 2) { return null; } @@ -54052,14 +42486,14 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { stack.push(buildAddOperation(num1, num2)); break; - case 'cvr': + case "cvr": if (stack.length < 1) { return null; } break; - case 'mul': + case "mul": if (stack.length < 2) { return null; } @@ -54069,7 +42503,7 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { stack.push(buildMulOperation(num1, num2)); break; - case 'sub': + case "sub": if (stack.length < 2) { return null; } @@ -54079,7 +42513,7 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { stack.push(buildSubOperation(num1, num2)); break; - case 'exch': + case "exch": if (stack.length < 2) { return null; } @@ -54089,7 +42523,7 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { stack.push(ast1, ast2); break; - case 'pop': + case "pop": if (stack.length < 1) { return null; } @@ -54097,14 +42531,14 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { stack.pop(); break; - case 'index': + case "index": if (stack.length < 1) { return null; } num1 = stack.pop(); - if (num1.type !== 'literal') { + if (num1.type !== "literal") { return null; } @@ -54116,7 +42550,7 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { ast1 = stack[stack.length - n - 1]; - if (ast1.type === 'literal' || ast1.type === 'var') { + if (ast1.type === "literal" || ast1.type === "var") { stack.push(ast1); break; } @@ -54127,12 +42561,12 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { instructions.push(new AstVariableDefinition(tmpVar, ast1)); break; - case 'dup': + 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]) { + 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; @@ -54141,7 +42575,7 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { ast1 = stack[stack.length - 1]; - if (ast1.type === 'literal' || ast1.type === 'var') { + if (ast1.type === "literal" || ast1.type === "var") { stack.push(ast1); break; } @@ -54152,7 +42586,7 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { instructions.push(new AstVariableDefinition(tmpVar, ast1)); break; - case 'roll': + case "roll": if (stack.length < 2) { return null; } @@ -54160,7 +42594,7 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { num2 = stack.pop(); num1 = stack.pop(); - if (num2.type !== 'literal' || num1.type !== 'literal') { + if (num2.type !== "literal" || num1.type !== "literal") { return null; } @@ -54203,20 +42637,20 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { var out = [statementBuilder.toString()]; if (min > expr.min) { - out.unshift('Math.max(', min, ', '); - out.push(')'); + out.unshift("Math.max(", min, ", "); + out.push(")"); } if (max < expr.max) { - out.unshift('Math.min(', max, ', '); - out.push(')'); + out.unshift("Math.min(", max, ", "); + out.push(")"); } - out.unshift('dest[destOffset + ', i, '] = '); - out.push(';'); - result.push(out.join('')); + out.unshift("dest[destOffset + ", i, "] = "); + out.push(";"); + result.push(out.join("")); }); - return result.join('\n'); + return result.join("\n"); } }; return PostScriptCompiler; @@ -54225,7 +42659,7 @@ var PostScriptCompiler = function PostScriptCompilerClosure() { exports.PostScriptCompiler = PostScriptCompiler; /***/ }), -/* 187 */ +/* 41 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -54236,110 +42670,93 @@ Object.defineProperty(exports, "__esModule", { }); exports.PostScriptParser = exports.PostScriptLexer = void 0; -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -var _primitives = __w_pdfjs_require__(151); +var _primitives = __w_pdfjs_require__(5); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var PostScriptParser = -/*#__PURE__*/ -function () { - function PostScriptParser(lexer) { - _classCallCheck(this, PostScriptParser); +var _core_utils = __w_pdfjs_require__(8); +class PostScriptParser { + constructor(lexer) { this.lexer = lexer; this.operators = []; this.token = null; this.prev = null; } - _createClass(PostScriptParser, [{ - key: "nextToken", - value: function nextToken() { - this.prev = this.token; - this.token = this.lexer.getToken(); - } - }, { - key: "accept", - value: function accept(type) { - if (this.token.type === type) { - this.nextToken(); - return true; - } + nextToken() { + this.prev = this.token; + this.token = this.lexer.getToken(); + } - return false; - } - }, { - key: "expect", - value: function expect(type) { - if (this.accept(type)) { - return true; - } - - throw new _util.FormatError("Unexpected symbol: found ".concat(this.token.type, " expected ").concat(type, ".")); - } - }, { - key: "parse", - value: function parse() { + accept(type) { + if (this.token.type === type) { this.nextToken(); - this.expect(PostScriptTokenTypes.LBRACE); - this.parseBlock(); - this.expect(PostScriptTokenTypes.RBRACE); - return this.operators; + return true; } - }, { - key: "parseBlock", - value: function 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; - } - } - } - }, { - key: "parseCondition", - value: function 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'; + return false; + } + + expect(type) { + if (this.accept(type)) { + return true; + } + + throw new _util.FormatError(`Unexpected symbol: found ${this.token.type} expected ${type}.`); + } + + parse() { + this.nextToken(); + this.expect(PostScriptTokenTypes.LBRACE); + this.parseBlock(); + this.expect(PostScriptTokenTypes.RBRACE); + return this.operators; + } + + 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)) { - 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'; + this.parseCondition(); } else { - throw new _util.FormatError('PS Function: error parsing conditional.'); + return; } } - }]); + } - return PostScriptParser; -}(); + parseCondition() { + const 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)) { + const jumpLocation = this.operators.length; + this.operators.push(null, null); + const 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 { + throw new _util.FormatError("PS Function: error parsing conditional."); + } + } + +} exports.PostScriptParser = PostScriptParser; -var PostScriptTokenTypes = { +const PostScriptTokenTypes = { LBRACE: 0, RBRACE: 1, NUMBER: 2, @@ -54348,177 +42765,3421 @@ var PostScriptTokenTypes = { IFELSE: 5 }; -var PostScriptToken = function PostScriptTokenClosure() { - var opCache = Object.create(null); - - var PostScriptToken = - /*#__PURE__*/ - function () { - function PostScriptToken(type, value) { - _classCallCheck(this, PostScriptToken); +const PostScriptToken = function PostScriptTokenClosure() { + const opCache = Object.create(null); + class PostScriptToken { + constructor(type, value) { this.type = type; this.value = value; } - _createClass(PostScriptToken, null, [{ - key: "getOperator", - value: function getOperator(op) { - var opValue = opCache[op]; + static getOperator(op) { + const opValue = opCache[op]; - if (opValue) { - return opValue; - } + if (opValue) { + return opValue; + } - return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op); - } - }, { - key: "LBRACE", - get: function get() { - return (0, _util.shadow)(this, 'LBRACE', new PostScriptToken(PostScriptTokenTypes.LBRACE, '{')); - } - }, { - key: "RBRACE", - get: function get() { - return (0, _util.shadow)(this, 'RBRACE', new PostScriptToken(PostScriptTokenTypes.RBRACE, '}')); - } - }, { - key: "IF", - get: function get() { - return (0, _util.shadow)(this, 'IF', new PostScriptToken(PostScriptTokenTypes.IF, 'IF')); - } - }, { - key: "IFELSE", - get: function get() { - return (0, _util.shadow)(this, 'IFELSE', new PostScriptToken(PostScriptTokenTypes.IFELSE, 'IFELSE')); - } - }]); + return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op); + } - return PostScriptToken; - }(); + static get LBRACE() { + return (0, _util.shadow)(this, "LBRACE", new PostScriptToken(PostScriptTokenTypes.LBRACE, "{")); + } + + static get RBRACE() { + return (0, _util.shadow)(this, "RBRACE", new PostScriptToken(PostScriptTokenTypes.RBRACE, "}")); + } + + static get IF() { + return (0, _util.shadow)(this, "IF", new PostScriptToken(PostScriptTokenTypes.IF, "IF")); + } + + static get IFELSE() { + return (0, _util.shadow)(this, "IFELSE", new PostScriptToken(PostScriptTokenTypes.IFELSE, "IFELSE")); + } + + } return PostScriptToken; }(); -var PostScriptLexer = -/*#__PURE__*/ -function () { - function PostScriptLexer(stream) { - _classCallCheck(this, PostScriptLexer); - +class PostScriptLexer { + constructor(stream) { this.stream = stream; this.nextChar(); this.strBuf = []; } - _createClass(PostScriptLexer, [{ - key: "nextChar", - value: function nextChar() { - return this.currentChar = this.stream.getByte(); + nextChar() { + return this.currentChar = this.stream.getByte(); + } + + getToken() { + let comment = false; + let ch = this.currentChar; + + while (true) { + if (ch < 0) { + return _primitives.EOF; + } + + if (comment) { + if (ch === 0x0a || ch === 0x0d) { + comment = false; + } + } else if (ch === 0x25) { + comment = true; + } else if (!(0, _core_utils.isWhiteSpace)(ch)) { + break; + } + + ch = this.nextChar(); } - }, { - key: "getToken", - value: function getToken() { - var comment = false; - var ch = this.currentChar; - while (true) { - if (ch < 0) { - return _primitives.EOF; - } + 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()); - if (comment) { - if (ch === 0x0A || ch === 0x0D) { - comment = false; - } - } else if (ch === 0x25) { - comment = true; - } else if (!(0, _util.isSpace)(ch)) { - break; - } + case 0x7b: + this.nextChar(); + return PostScriptToken.LBRACE; - ch = this.nextChar(); - } + case 0x7d: + this.nextChar(); + return PostScriptToken.RBRACE; + } - 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()); + const strBuf = this.strBuf; + strBuf.length = 0; + strBuf[0] = String.fromCharCode(ch); - case 0x7B: - this.nextChar(); - return PostScriptToken.LBRACE; + while ((ch = this.nextChar()) >= 0 && (ch >= 0x41 && ch <= 0x5a || ch >= 0x61 && ch <= 0x7a)) { + strBuf.push(String.fromCharCode(ch)); + } - case 0x7D: - this.nextChar(); - return PostScriptToken.RBRACE; - } + const str = strBuf.join(""); - var strBuf = this.strBuf; - strBuf.length = 0; - strBuf[0] = String.fromCharCode(ch); + switch (str.toLowerCase()) { + case "if": + return PostScriptToken.IF; - while ((ch = this.nextChar()) >= 0 && (ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A)) { + case "ifelse": + return PostScriptToken.IFELSE; + + default: + return PostScriptToken.getOperator(str); + } + } + + getNumber() { + let ch = this.currentChar; + const 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)); - } - - var str = strBuf.join(''); - - switch (str.toLowerCase()) { - case 'if': - return PostScriptToken.IF; - - case 'ifelse': - return PostScriptToken.IFELSE; - - default: - return PostScriptToken.getOperator(str); + } else { + break; } } - }, { - key: "getNumber", - value: function 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; - } - } + const value = parseFloat(strBuf.join("")); - var value = parseFloat(strBuf.join('')); - - if (isNaN(value)) { - throw new _util.FormatError("Invalid floating point number: ".concat(value)); - } - - return value; + if (isNaN(value)) { + throw new _util.FormatError(`Invalid floating point number: ${value}`); } - }]); - return PostScriptLexer; -}(); + return value; + } + +} exports.PostScriptLexer = PostScriptLexer; /***/ }), -/* 188 */ +/* 42 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.bidi = bidi; + +var _util = __w_pdfjs_require__(2); + +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 = false) { + let dir = "ltr"; + + if (vertical) { + dir = "ttb"; + } else if (!isLTR) { + dir = "rtl"; + } + + return { + str, + dir + }; +} + +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) { + (0, _util.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); +} + +/***/ }), +/* 43 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getMetrics = void 0; + +var _core_utils = __w_pdfjs_require__(8); + +var getMetrics = (0, _core_utils.getLookupTableFactory)(function (t) { + t.Courier = 600; + t["Courier-Bold"] = 600; + t["Courier-BoldOblique"] = 600; + t["Courier-Oblique"] = 600; + t.Helvetica = (0, _core_utils.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"] = (0, _core_utils.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"] = (0, _core_utils.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"] = (0, _core_utils.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 = (0, _core_utils.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"] = (0, _core_utils.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"] = (0, _core_utils.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"] = (0, _core_utils.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"] = (0, _core_utils.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 = (0, _core_utils.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; + +/***/ }), +/* 44 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -54529,233 +46190,122 @@ Object.defineProperty(exports, "__esModule", { }); exports.MurmurHash3_64 = void 0; -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var SEED = 0xc3d2e1f0; -var MASK_HIGH = 0xffff0000; -var MASK_LOW = 0xffff; - -var MurmurHash3_64 = -/*#__PURE__*/ -function () { - function MurmurHash3_64(seed) { - _classCallCheck(this, MurmurHash3_64); +const SEED = 0xc3d2e1f0; +const MASK_HIGH = 0xffff0000; +const MASK_LOW = 0xffff; +class MurmurHash3_64 { + constructor(seed) { this.h1 = seed ? seed & 0xffffffff : SEED; this.h2 = seed ? seed & 0xffffffff : SEED; } - _createClass(MurmurHash3_64, [{ - key: "update", - value: function update(input) { - var data, length; + update(input) { + let data, length; - if ((0, _util.isString)(input)) { - data = new Uint8Array(input.length * 2); - length = 0; + if ((0, _util.isString)(input)) { + data = new Uint8Array(input.length * 2); + length = 0; - for (var i = 0, ii = input.length; i < ii; i++) { - var code = input.charCodeAt(i); + for (let i = 0, ii = input.length; i < ii; i++) { + const code = input.charCodeAt(i); - if (code <= 0xff) { - data[length++] = code; - } else { - data[length++] = code >>> 8; - data[length++] = code & 0xff; - } + if (code <= 0xff) { + data[length++] = code; + } else { + data[length++] = code >>> 8; + data[length++] = code & 0xff; } - } else if ((0, _util.isArrayBuffer)(input)) { - data = input; - length = data.byteLength; - } else { - throw new Error('Wrong data format in MurmurHash3_64_update. ' + 'Input must be a string or array.'); } + } else if ((0, _util.isArrayBuffer)(input)) { + data = input; + length = data.byteLength; + } 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 = new Uint32Array(data.buffer, 0, blockCounts); - var k1 = 0, - k2 = 0; - var h1 = this.h1, - h2 = this.h2; - var C1 = 0xcc9e2d51, + const blockCounts = length >> 2; + const tailLength = length - blockCounts * 4; + const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts); + let k1 = 0, + k2 = 0; + let h1 = this.h1, + h2 = this.h2; + const C1 = 0xcc9e2d51, C2 = 0x1b873593; - var C1_LOW = C1 & MASK_LOW, + const C1_LOW = C1 & MASK_LOW, C2_LOW = C2 & MASK_LOW; - for (var _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; + for (let 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; - 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; + h2 ^= k1; } - } - 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; } - }, { - key: "hexdigest", - value: function hexdigest() { - var h1 = this.h1, - 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; - var hex1 = (h1 >>> 0).toString(16), + + this.h1 = h1; + this.h2 = h2; + } + + hexdigest() { + let h1 = this.h1, + 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; + const hex1 = (h1 >>> 0).toString(16), hex2 = (h2 >>> 0).toString(16); - return hex1.padStart(8, '0') + hex2.padStart(8, '0'); - } - }]); + return hex1.padStart(8, "0") + hex2.padStart(8, "0"); + } - return MurmurHash3_64; -}(); +} exports.MurmurHash3_64 = MurmurHash3_64; /***/ }), -/* 189 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.NativeImageDecoder = void 0; - -var _colorspace = __w_pdfjs_require__(169); - -var _jpeg_stream = __w_pdfjs_require__(164); - -var _stream = __w_pdfjs_require__(158); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var NativeImageDecoder = -/*#__PURE__*/ -function () { - function NativeImageDecoder(_ref) { - var xref = _ref.xref, - resources = _ref.resources, - handler = _ref.handler, - _ref$forceDataSchema = _ref.forceDataSchema, - forceDataSchema = _ref$forceDataSchema === void 0 ? false : _ref$forceDataSchema, - pdfFunctionFactory = _ref.pdfFunctionFactory; - - _classCallCheck(this, NativeImageDecoder); - - this.xref = xref; - this.resources = resources; - this.handler = handler; - this.forceDataSchema = forceDataSchema; - this.pdfFunctionFactory = pdfFunctionFactory; - } - - _createClass(NativeImageDecoder, [{ - key: "canDecode", - value: function canDecode(image) { - return image instanceof _jpeg_stream.JpegStream && NativeImageDecoder.isDecodable(image, this.xref, this.resources, this.pdfFunctionFactory); - } - }, { - key: "decode", - value: function decode(image) { - var dict = image.dict; - var colorSpace = dict.get('ColorSpace', 'CS'); - colorSpace = _colorspace.ColorSpace.parse(colorSpace, this.xref, this.resources, this.pdfFunctionFactory); - return this.handler.sendWithPromise('JpegDecode', [image.getIR(this.forceDataSchema), colorSpace.numComps]).then(function (_ref2) { - var data = _ref2.data, - width = _ref2.width, - height = _ref2.height; - return new _stream.Stream(data, 0, data.length, dict); - }); - } - }], [{ - key: "isSupported", - value: function isSupported(image, xref, res, pdfFunctionFactory) { - var dict = image.dict; - - if (dict.has('DecodeParms') || dict.has('DP')) { - return false; - } - - var cs = _colorspace.ColorSpace.parse(dict.get('ColorSpace', 'CS'), xref, res, pdfFunctionFactory); - - return (cs.name === 'DeviceGray' || cs.name === 'DeviceRGB') && cs.isDefaultDecode(dict.getArray('Decode', 'D')); - } - }, { - key: "isDecodable", - value: function isDecodable(image, xref, res, pdfFunctionFactory) { - var dict = image.dict; - - if (dict.has('DecodeParms') || dict.has('DP')) { - return false; - } - - var cs = _colorspace.ColorSpace.parse(dict.get('ColorSpace', 'CS'), xref, res, pdfFunctionFactory); - - var bpc = dict.get('BitsPerComponent', 'BPC') || 1; - return (cs.numComps === 1 || cs.numComps === 3) && cs.isDefaultDecode(dict.getArray('Decode', 'D'), bpc); - } - }]); - - return NativeImageDecoder; -}(); - -exports.NativeImageDecoder = NativeImageDecoder; - -/***/ }), -/* 190 */ +/* 45 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -54766,92 +46316,87 @@ Object.defineProperty(exports, "__esModule", { }); exports.PDFImage = void 0; -var _util = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(2); -var _primitives = __w_pdfjs_require__(151); +var _primitives = __w_pdfjs_require__(5); -var _colorspace = __w_pdfjs_require__(169); +var _colorspace = __w_pdfjs_require__(23); -var _stream = __w_pdfjs_require__(158); +var _stream = __w_pdfjs_require__(12); -var _jpeg_stream = __w_pdfjs_require__(164); +var _jpeg_stream = __w_pdfjs_require__(18); -var _jpx = __w_pdfjs_require__(167); +var _jpx = __w_pdfjs_require__(21); -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } +function decodeAndClamp(value, addend, coefficient, max) { + value = addend + value * coefficient; -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -var PDFImage = function PDFImageClosure() { - function handleImageData(image, nativeDecoder) { - if (nativeDecoder && nativeDecoder.canDecode(image)) { - return nativeDecoder.decode(image)["catch"](function (reason) { - (0, _util.warn)('Native image decoding failed -- trying to recover: ' + (reason && reason.message)); - return image; - }); - } - - return Promise.resolve(image); + if (value < 0) { + value = 0; + } else if (value > max) { + value = max; } - function decodeAndClamp(value, addend, coefficient, max) { - value = addend + value * coefficient; - return value < 0 ? 0 : value > max ? max : value; + return value; +} + +function resizeImageMask(src, bpc, w1, h1, w2, h2) { + var length = w2 * h2; + let dest; + + if (bpc <= 8) { + dest = new Uint8Array(length); + } else if (bpc <= 16) { + dest = new Uint16Array(length); + } else { + dest = new Uint32Array(length); } - 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; + 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; + for (i = 0; i < w2; i++) { + xScaled[i] = Math.floor(i * xRatio); } - function PDFImage(_ref) { - var xref = _ref.xref, - res = _ref.res, - image = _ref.image, - _ref$isInline = _ref.isInline, - isInline = _ref$isInline === void 0 ? false : _ref$isInline, - _ref$smask = _ref.smask, - smask = _ref$smask === void 0 ? null : _ref$smask, - _ref$mask = _ref.mask, - mask = _ref$mask === void 0 ? null : _ref$mask, - _ref$isMask = _ref.isMask, - isMask = _ref$isMask === void 0 ? false : _ref$isMask, - pdfFunctionFactory = _ref.pdfFunctionFactory; + 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; +} + +class PDFImage { + constructor({ + xref, + res, + image, + isInline = false, + smask = null, + mask = null, + isMask = false, + pdfFunctionFactory, + localColorSpaceCache + }) { this.image = image; var dict = image.dict; - var filter = dict.get('Filter'); + const filter = dict.get("Filter"); if ((0, _primitives.isName)(filter)) { switch (filter.name) { - case 'JPXDecode': + case "JPXDecode": var jpxImage = new _jpx.JpxImage(); jpxImage.parseImageProperties(image.stream); image.stream.reset(); @@ -54861,41 +46406,41 @@ var PDFImage = function PDFImageClosure() { image.numComps = jpxImage.componentsCount; break; - case 'JBIG2Decode': + case "JBIG2Decode": image.bitsPerComponent = 1; image.numComps = 1; break; } } - var width = dict.get('Width', 'W'); - var height = dict.get('Height', 'H'); + let width = dict.get("Width", "W"); + let height = dict.get("Height", "H"); if (Number.isInteger(image.width) && image.width > 0 && Number.isInteger(image.height) && image.height > 0 && (image.width !== width || image.height !== height)) { - (0, _util.warn)('PDFImage - using the Width/Height of the image data, ' + 'rather than the image dictionary.'); + (0, _util.warn)("PDFImage - using the Width/Height of the image data, " + "rather than the image dictionary."); width = image.width; height = image.height; } if (width < 1 || height < 1) { - throw new _util.FormatError("Invalid image width: ".concat(width, " or ") + "height: ".concat(height)); + throw new _util.FormatError(`Invalid image width: ${width} or height: ${height}`); } this.width = width; this.height = height; - this.interpolate = dict.get('Interpolate', 'I') || false; - this.imageMask = dict.get('ImageMask', 'IM') || false; - this.matte = dict.get('Matte') || false; + 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'); + bitsPerComponent = dict.get("BitsPerComponent", "BPC"); if (!bitsPerComponent) { if (this.imageMask) { bitsPerComponent = 1; } else { - throw new _util.FormatError("Bits per component missing in image: ".concat(this.imageMask)); + throw new _util.FormatError(`Bits per component missing in image: ${this.imageMask}`); } } } @@ -54903,35 +46448,40 @@ var PDFImage = function PDFImageClosure() { this.bpc = bitsPerComponent; if (!this.imageMask) { - var colorSpace = dict.get('ColorSpace', 'CS'); + let colorSpace = dict.getRaw("ColorSpace") || dict.getRaw("CS"); if (!colorSpace) { - (0, _util.info)('JPX images (which do not require color spaces)'); + (0, _util.info)("JPX images (which do not require color spaces)"); switch (image.numComps) { case 1: - colorSpace = _primitives.Name.get('DeviceGray'); + colorSpace = _primitives.Name.get("DeviceGray"); break; case 3: - colorSpace = _primitives.Name.get('DeviceRGB'); + colorSpace = _primitives.Name.get("DeviceRGB"); break; case 4: - colorSpace = _primitives.Name.get('DeviceCMYK'); + colorSpace = _primitives.Name.get("DeviceCMYK"); break; default: - throw new Error("JPX images with ".concat(image.numComps, " ") + 'color components not supported.'); + throw new Error(`JPX images with ${image.numComps} ` + "color components not supported."); } } - var resources = isInline ? res : null; - this.colorSpace = _colorspace.ColorSpace.parse(colorSpace, xref, resources, pdfFunctionFactory); + this.colorSpace = _colorspace.ColorSpace.parse({ + cs: colorSpace, + xref, + resources: isInline ? res : null, + pdfFunctionFactory, + localColorSpaceCache + }); this.numComps = this.colorSpace.numComps; } - this.decode = dict.getArray('Decode', 'D'); + this.decode = dict.getArray("Decode", "D"); this.needsDecode = false; if (this.decode && (this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode, bitsPerComponent) || isMask && !_colorspace.ColorSpace.isDefaultDecode(this.decode, 1))) { @@ -54939,7 +46489,7 @@ var PDFImage = function PDFImageClosure() { var max = (1 << bitsPerComponent) - 1; this.decodeCoefficients = []; this.decodeAddends = []; - var isIndexed = this.colorSpace && this.colorSpace.name === 'Indexed'; + const isIndexed = this.colorSpace && this.colorSpace.name === "Indexed"; for (var i = 0, j = 0; i < this.decode.length; i += 2, ++j) { var dmin = this.decode[i]; @@ -54951,27 +46501,29 @@ var PDFImage = function PDFImageClosure() { if (smask) { this.smask = new PDFImage({ - xref: xref, - res: res, + xref, + res, image: smask, - isInline: isInline, - pdfFunctionFactory: pdfFunctionFactory + isInline, + pdfFunctionFactory, + localColorSpaceCache }); } else if (mask) { if ((0, _primitives.isStream)(mask)) { var maskDict = mask.dict, - imageMask = maskDict.get('ImageMask', 'IM'); + imageMask = maskDict.get("ImageMask", "IM"); if (!imageMask) { - (0, _util.warn)('Ignoring /Mask in image without /ImageMask.'); + (0, _util.warn)("Ignoring /Mask in image without /ImageMask."); } else { this.mask = new PDFImage({ - xref: xref, - res: res, + xref, + res, image: mask, - isInline: isInline, + isInline, isMask: true, - pdfFunctionFactory: pdfFunctionFactory + pdfFunctionFactory, + localColorSpaceCache }); } } else { @@ -54980,66 +46532,49 @@ var PDFImage = function PDFImageClosure() { } } - PDFImage.buildImage = function (_ref2) { - var handler = _ref2.handler, - xref = _ref2.xref, - res = _ref2.res, - image = _ref2.image, - _ref2$isInline = _ref2.isInline, - isInline = _ref2$isInline === void 0 ? false : _ref2$isInline, - _ref2$nativeDecoder = _ref2.nativeDecoder, - nativeDecoder = _ref2$nativeDecoder === void 0 ? null : _ref2$nativeDecoder, - pdfFunctionFactory = _ref2.pdfFunctionFactory; - var imagePromise = handleImageData(image, nativeDecoder); - var smaskPromise; - var maskPromise; - var smask = image.dict.get('SMask'); - var mask = image.dict.get('Mask'); + static async buildImage({ + xref, + res, + image, + isInline = false, + pdfFunctionFactory, + localColorSpaceCache + }) { + const imageData = image; + let smaskData = null; + let maskData = null; + const smask = image.dict.get("SMask"); + const mask = image.dict.get("Mask"); if (smask) { - smaskPromise = handleImageData(smask, nativeDecoder); - maskPromise = Promise.resolve(null); - } else { - smaskPromise = Promise.resolve(null); - - if (mask) { - if ((0, _primitives.isStream)(mask)) { - maskPromise = handleImageData(mask, nativeDecoder); - } else if (Array.isArray(mask)) { - maskPromise = Promise.resolve(mask); - } else { - (0, _util.warn)('Unsupported mask format.'); - maskPromise = Promise.resolve(null); - } + smaskData = smask; + } else if (mask) { + if ((0, _primitives.isStream)(mask) || Array.isArray(mask)) { + maskData = mask; } else { - maskPromise = Promise.resolve(null); + (0, _util.warn)("Unsupported mask format."); } } - return Promise.all([imagePromise, smaskPromise, maskPromise]).then(function (_ref3) { - var _ref4 = _slicedToArray(_ref3, 3), - imageData = _ref4[0], - smaskData = _ref4[1], - maskData = _ref4[2]; - - return new PDFImage({ - xref: xref, - res: res, - image: imageData, - isInline: isInline, - smask: smaskData, - mask: maskData, - pdfFunctionFactory: pdfFunctionFactory - }); + return new PDFImage({ + xref, + res, + image: imageData, + isInline, + smask: smaskData, + mask: maskData, + pdfFunctionFactory, + localColorSpaceCache }); - }; + } - PDFImage.createMask = function (_ref5) { - var imgArray = _ref5.imgArray, - width = _ref5.width, - height = _ref5.height, - imageIsFromDecodeStream = _ref5.imageIsFromDecodeStream, - inverseDecode = _ref5.inverseDecode; + static createMask({ + imgArray, + width, + height, + imageIsFromDecodeStream, + inverseDecode + }) { var computedLength = (width + 7 >> 3) * height; var actualLength = imgArray.byteLength; var haveFullData = computedLength === actualLength; @@ -55061,372 +46596,390 @@ var PDFImage = function PDFImageClosure() { if (inverseDecode) { for (i = 0; i < actualLength; i++) { - data[i] ^= 0xFF; + data[i] ^= 0xff; } } return { - data: data, - width: width, - height: height + data, + width, + height }; - }; + } - PDFImage.prototype = { - get drawWidth() { - return Math.max(this.width, this.smask && this.smask.width || 0, this.mask && this.mask.width || 0); - }, + 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); - }, + get drawHeight() { + return Math.max(this.height, this.smask && this.smask.height || 0, this.mask && this.mask.height || 0); + } - decodeBuffer: function 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; + 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; + if (bpc === 1) { + for (i = 0, ii = buffer.length; i < ii; i++) { + buffer[i] = +!buffer[i]; } - var index = 0; + return; + } - 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++; + 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(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; + let output; + + if (bpc <= 8) { + output = new Uint8Array(length); + } else if (bpc <= 16) { + output = new Uint16Array(length); + } else { + output = 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; + } } } - }, - getComponents: function getComponents(buffer) { - var bpc = this.bpc; + } else { + var bits = 0; + buf = 0; - 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; - } - } + for (i = 0, ii = length; i < ii; ++i) { + if (i % rowComps === 0) { + buf = 0; + bits = 0; } - } 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; + while (bits < bpc) { + buf = buf << 8 | buffer[bufferPos++]; + bits += 8; } + + var remainingBits = bits - bpc; + let value = buf >> remainingBits; + + if (value < 0) { + value = 0; + } else if (value > max) { + value = max; + } + + output[i] = value; + buf = buf & (1 << remainingBits) - 1; + bits = remainingBits; } + } - return output; - }, - fillOpacity: function fillOpacity(rgbaBuf, width, height, actualHeight, image) { - var smask = this.smask; - var mask = this.mask; - var alphaBuf, sw, sh, i, ii, j; + return output; + } - if (smask) { - sw = smask.width; - sh = smask.height; + 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 Uint8ClampedArray(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 Uint8ClampedArray(sw * sh); - smask.fillGrayBuffer(alphaBuf); + 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, smask.bpc, sw, sh, width, height); + alphaBuf = resizeImageMask(alphaBuf, mask.bpc, sw, sh, width, height); } - } else if (mask) { - if (mask instanceof PDFImage) { - sw = mask.width; - sh = mask.height; - alphaBuf = new Uint8ClampedArray(sw * sh); - mask.numComps = 1; - mask.fillGrayBuffer(alphaBuf); + } else if (Array.isArray(mask)) { + alphaBuf = new Uint8ClampedArray(width * height); + var numComps = this.numComps; - for (i = 0, ii = sw * sh; i < ii; ++i) { - alphaBuf[i] = 255 - alphaBuf[i]; - } + for (i = 0, ii = width * height; i < ii; ++i) { + var opacity = 0; + var imageOffset = i * numComps; - if (sw !== width || sh !== height) { - alphaBuf = resizeImageMask(alphaBuf, mask.bpc, sw, sh, width, height); - } - } else if (Array.isArray(mask)) { - alphaBuf = new Uint8ClampedArray(width * height); - var numComps = this.numComps; + for (j = 0; j < numComps; ++j) { + var color = image[imageOffset + j]; + var maskOffset = j * 2; - 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; - } + if (color < mask[maskOffset] || color > mask[maskOffset + 1]) { + opacity = 255; + break; } - - alphaBuf[i] = opacity; } + + alphaBuf[i] = opacity; + } + } else { + throw new _util.FormatError("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(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; + + 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; + buffer[i] = (buffer[i] - matteR) * k + matteR; + buffer[i + 1] = (buffer[i + 1] - matteG) * k + matteG; + buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB; + } + } + + createImageData(forceRGBA = false) { + var drawWidth = this.drawWidth; + var drawHeight = this.drawHeight; + var imgData = { + width: drawWidth, + height: drawHeight, + kind: 0, + data: null + }; + 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 = _util.ImageKind.GRAYSCALE_1BPP; + } else if (this.colorSpace.name === "DeviceRGB" && bpc === 8 && !this.needsDecode) { + kind = _util.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 _stream.DecodeStream) { + imgData.data = imgArray; } else { - throw new _util.FormatError('Unknown mask format.'); + var newArray = new Uint8ClampedArray(imgArray.length); + newArray.set(imgArray); + imgData.data = newArray; } - } - - 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 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; - - 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; - buffer[i] = (buffer[i] - matteR) * k + matteR; - buffer[i + 1] = (buffer[i + 1] - matteG) * k + matteG; - buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB; - } - }, - createImageData: function createImageData() { - var forceRGBA = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var drawWidth = this.drawWidth; - var drawHeight = this.drawHeight; - var imgData = { - width: drawWidth, - height: drawHeight, - kind: 0, - data: null - }; - 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 = _util.ImageKind.GRAYSCALE_1BPP; - } else if (this.colorSpace.name === 'DeviceRGB' && bpc === 8 && !this.needsDecode) { - kind = _util.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 _stream.DecodeStream) { - imgData.data = imgArray; - } else { - var newArray = new Uint8ClampedArray(imgArray.length); - newArray.set(imgArray); - imgData.data = newArray; - } - - if (this.needsDecode) { - (0, _util.assert)(kind === _util.ImageKind.GRAYSCALE_1BPP, 'PDFImage.createImageData: The image must be grayscale.'); - var buffer = imgData.data; - - for (var i = 0, ii = buffer.length; i < ii; i++) { - buffer[i] ^= 0xff; - } - } - - return imgData; - } - - if (this.image instanceof _jpeg_stream.JpegStream && !this.smask && !this.mask) { - var imageLength = originalHeight * rowBytes; - - switch (this.colorSpace.name) { - case 'DeviceGray': - imageLength *= 3; - - case 'DeviceRGB': - case 'DeviceCMYK': - imgData.kind = _util.ImageKind.RGB_24BPP; - imgData.data = this.getImageBytes(imageLength, 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 = _util.ImageKind.RGB_24BPP; - imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 3); - alpha01 = 0; - maybeUndoPreblend = false; - } else { - imgData.kind = _util.ImageKind.RGBA_32BPP; - imgData.data = new Uint8ClampedArray(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 fillGrayBuffer(buffer) { - var numComps = this.numComps; - - if (numComps !== 1) { - throw new _util.FormatError("Reading gray scale from a color image: ".concat(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; + (0, _util.assert)(kind === _util.ImageKind.GRAYSCALE_1BPP, "PDFImage.createImageData: The image must be grayscale."); + var buffer = imgData.data; + + for (var i = 0, ii = buffer.length; i < ii; i++) { + buffer[i] ^= 0xff; } } - return; + return imgData; } + if (this.image instanceof _jpeg_stream.JpegStream && !this.smask && !this.mask) { + let imageLength = originalHeight * rowBytes; + + switch (this.colorSpace.name) { + case "DeviceGray": + imageLength *= 3; + + case "DeviceRGB": + case "DeviceCMYK": + imgData.kind = _util.ImageKind.RGB_24BPP; + imgData.data = this.getImageBytes(imageLength, 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 = _util.ImageKind.RGB_24BPP; + imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 3); + alpha01 = 0; + maybeUndoPreblend = false; + } else { + imgData.kind = _util.ImageKind.RGBA_32BPP; + imgData.data = new Uint8ClampedArray(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(buffer) { + var numComps = this.numComps; + + if (numComps !== 1) { + throw new _util.FormatError(`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) { - this.decodeBuffer(comps); + for (i = 0; i < length; ++i) { + buffer[i] = comps[i] - 1 & 255; + } + } else { + for (i = 0; i < length; ++i) { + buffer[i] = -comps[i] & 255; + } } - length = width * height; - var scale = 255 / ((1 << bpc) - 1); - - for (i = 0; i < length; ++i) { - buffer[i] = scale * comps[i]; - } - }, - getImageBytes: function getImageBytes(length, drawWidth, drawHeight) { - var forceRGB = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - this.image.reset(); - this.image.drawWidth = drawWidth || this.width; - this.image.drawHeight = drawHeight || this.height; - this.image.forceRGB = !!forceRGB; - return this.image.getBytes(length, true); + return; } - }; - return PDFImage; -}(); + + 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]; + } + } + + getImageBytes(length, drawWidth, drawHeight, forceRGB = false) { + this.image.reset(); + this.image.drawWidth = drawWidth || this.width; + this.image.drawHeight = drawHeight || this.height; + this.image.forceRGB = !!forceRGB; + return this.image.getBytes(length, true); + } + +} exports.PDFImage = PDFImage; /***/ }), -/* 191 */ +/* 46 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -55435,307 +46988,249 @@ exports.PDFImage = PDFImage; Object.defineProperty(exports, "__esModule", { value: true }); -exports.MessageHandler = MessageHandler; +exports.MessageHandler = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(2)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(5); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function resolveCall(_x, _x2) { - return _resolveCall.apply(this, arguments); -} - -function _resolveCall() { - _resolveCall = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(fn, args) { - var thisArg, - _args = arguments; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - thisArg = _args.length > 2 && _args[2] !== undefined ? _args[2] : null; - - if (fn) { - _context.next = 3; - break; - } - - return _context.abrupt("return", undefined); - - case 3: - return _context.abrupt("return", fn.apply(thisArg, args)); - - case 4: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - return _resolveCall.apply(this, arguments); -} +const CallbackKind = { + UNKNOWN: 0, + DATA: 1, + ERROR: 2 +}; +const StreamKind = { + UNKNOWN: 0, + CANCEL: 1, + CANCEL_COMPLETE: 2, + CLOSE: 3, + ENQUEUE: 4, + ERROR: 5, + PULL: 6, + PULL_COMPLETE: 7, + START_COMPLETE: 8 +}; function wrapReason(reason) { - if (_typeof(reason) !== 'object') { + if (typeof reason !== "object" || reason === null) { return reason; } switch (reason.name) { - case 'AbortException': + case "AbortException": return new _util.AbortException(reason.message); - case 'MissingPDFException': + case "MissingPDFException": return new _util.MissingPDFException(reason.message); - case 'UnexpectedResponseException': + case "UnexpectedResponseException": return new _util.UnexpectedResponseException(reason.message, reason.status); - default: + case "UnknownErrorException": return new _util.UnknownErrorException(reason.message, reason.details); + + default: + return new _util.UnknownErrorException(reason.message, reason.toString()); } } -function makeReasonSerializable(reason) { - if (!(reason instanceof Error) || reason instanceof _util.AbortException || reason instanceof _util.MissingPDFException || reason instanceof _util.UnexpectedResponseException || reason instanceof _util.UnknownErrorException) { - return reason; - } +class MessageHandler { + constructor(sourceName, targetName, comObj) { + this.sourceName = sourceName; + this.targetName = targetName; + this.comObj = comObj; + this.callbackId = 1; + this.streamId = 1; + this.postMessageTransfers = true; + this.streamSinks = Object.create(null); + this.streamControllers = Object.create(null); + this.callbackCapabilities = Object.create(null); + this.actionHandler = Object.create(null); - return new _util.UnknownErrorException(reason.message, reason.toString()); -} + this._onComObjOnMessage = event => { + const data = event.data; -function resolveOrReject(capability, success, reason) { - if (success) { - capability.resolve(); - } else { - capability.reject(reason); - } -} - -function finalize(promise) { - return Promise.resolve(promise)["catch"](function () {}); -} - -function MessageHandler(sourceName, targetName, comObj) { - var _this = this; - - this.sourceName = sourceName; - this.targetName = targetName; - this.comObj = comObj; - this.callbackId = 1; - this.streamId = 1; - this.postMessageTransfers = true; - this.streamSinks = Object.create(null); - this.streamControllers = Object.create(null); - var callbacksCapabilities = this.callbacksCapabilities = Object.create(null); - var ah = this.actionHandler = Object.create(null); - - this._onComObjOnMessage = function (event) { - var data = event.data; - - if (data.targetName !== _this.sourceName) { - return; - } - - if (data.stream) { - _this._processStreamMessage(data); - } else 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(wrapReason(data.error)); - } else { - callback.resolve(data.data); - } - } else { - throw new Error("Cannot resolve callback ".concat(callbackId)); + if (data.targetName !== this.sourceName) { + return; + } + + if (data.stream) { + this._processStreamMessage(data); + + return; + } + + if (data.callback) { + const callbackId = data.callbackId; + const capability = this.callbackCapabilities[callbackId]; + + if (!capability) { + throw new Error(`Cannot resolve callback ${callbackId}`); + } + + delete this.callbackCapabilities[callbackId]; + + if (data.callback === CallbackKind.DATA) { + capability.resolve(data.data); + } else if (data.callback === CallbackKind.ERROR) { + capability.reject(wrapReason(data.reason)); + } else { + throw new Error("Unexpected callback case"); + } + + return; + } + + const action = this.actionHandler[data.action]; + + if (!action) { + throw new Error(`Unknown action from worker: ${data.action}`); } - } 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); + const cbSourceName = this.sourceName; + const cbTargetName = data.sourceName; + new Promise(function (resolve) { + resolve(action(data.data)); }).then(function (result) { comObj.postMessage({ - sourceName: _sourceName, - targetName: _targetName, - isReply: true, + sourceName: cbSourceName, + targetName: cbTargetName, + callback: CallbackKind.DATA, callbackId: data.callbackId, data: result }); }, function (reason) { comObj.postMessage({ - sourceName: _sourceName, - targetName: _targetName, - isReply: true, + sourceName: cbSourceName, + targetName: cbTargetName, + callback: CallbackKind.ERROR, callbackId: data.callbackId, - error: makeReasonSerializable(reason) + reason: wrapReason(reason) }); }); - } else if (data.streamId) { - _this._createStreamSink(data); - } else { - action[0].call(action[1], data.data); + return; } - } else { - throw new Error("Unknown action from worker: ".concat(data.action)); - } - }; - comObj.addEventListener('message', this._onComObjOnMessage); -} + if (data.streamId) { + this._createStreamSink(data); -MessageHandler.prototype = { - on: function on(actionName, handler, scope) { - var ah = this.actionHandler; + return; + } + + action(data.data); + }; + + comObj.addEventListener("message", this._onComObjOnMessage); + } + + on(actionName, handler) { + const ah = this.actionHandler; if (ah[actionName]) { - throw new Error("There is already an actionName called \"".concat(actionName, "\"")); + throw new Error(`There is already an actionName called "${actionName}"`); } - ah[actionName] = [handler, scope]; - }, - send: function send(actionName, data, transfers) { - var message = { + ah[actionName] = handler; + } + + send(actionName, data, transfers) { + this._postMessage({ sourceName: this.sourceName, targetName: this.targetName, action: actionName, - data: data - }; - this.postMessage(message, transfers); - }, - sendWithPromise: function sendWithPromise(actionName, data, transfers) { - var callbackId = this.callbackId++; - var message = { - sourceName: this.sourceName, - targetName: this.targetName, - action: actionName, - data: data, - callbackId: callbackId - }; - var capability = (0, _util.createPromiseCapability)(); - this.callbacksCapabilities[callbackId] = capability; + data + }, transfers); + } + + sendWithPromise(actionName, data, transfers) { + const callbackId = this.callbackId++; + const capability = (0, _util.createPromiseCapability)(); + this.callbackCapabilities[callbackId] = capability; try { - this.postMessage(message, transfers); - } catch (e) { - capability.reject(e); + this._postMessage({ + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + callbackId, + data + }, transfers); + } catch (ex) { + capability.reject(ex); } return capability.promise; - }, - sendWithStream: function sendWithStream(actionName, data, queueingStrategy, transfers) { - var _this2 = this; + } - var streamId = this.streamId++; - var sourceName = this.sourceName; - var targetName = this.targetName; - return new _util.ReadableStream({ - start: function start(controller) { - var startCapability = (0, _util.createPromiseCapability)(); - _this2.streamControllers[streamId] = { - controller: controller, + sendWithStream(actionName, data, queueingStrategy, transfers) { + const streamId = this.streamId++; + const sourceName = this.sourceName; + const targetName = this.targetName; + const comObj = this.comObj; + return new ReadableStream({ + start: controller => { + const startCapability = (0, _util.createPromiseCapability)(); + this.streamControllers[streamId] = { + controller, startCall: startCapability, + pullCall: null, + cancelCall: null, isClosed: false }; - _this2.postMessage({ - sourceName: sourceName, - targetName: targetName, + this._postMessage({ + sourceName, + targetName, action: actionName, - streamId: streamId, - data: data, + streamId, + data, desiredSize: controller.desiredSize - }); + }, transfers); return startCapability.promise; }, - pull: function pull(controller) { - var pullCapability = (0, _util.createPromiseCapability)(); - _this2.streamControllers[streamId].pullCall = pullCapability; - - _this2.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: 'pull', - streamId: streamId, + pull: controller => { + const pullCapability = (0, _util.createPromiseCapability)(); + this.streamControllers[streamId].pullCall = pullCapability; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL, + streamId, desiredSize: controller.desiredSize }); - return pullCapability.promise; }, - cancel: function cancel(reason) { - var cancelCapability = (0, _util.createPromiseCapability)(); - _this2.streamControllers[streamId].cancelCall = cancelCapability; - _this2.streamControllers[streamId].isClosed = true; - - _this2.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: 'cancel', - reason: reason, - streamId: streamId + cancel: reason => { + (0, _util.assert)(reason instanceof Error, "cancel must have a valid reason"); + const cancelCapability = (0, _util.createPromiseCapability)(); + this.streamControllers[streamId].cancelCall = cancelCapability; + this.streamControllers[streamId].isClosed = true; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL, + streamId, + reason: wrapReason(reason) }); - return cancelCapability.promise; } }, queueingStrategy); - }, - _createStreamSink: function _createStreamSink(data) { - var _this3 = this; - - var self = this; - var action = this.actionHandler[data.action]; - var streamId = data.streamId; - var desiredSize = data.desiredSize; - var sourceName = this.sourceName; - var targetName = data.sourceName; - var capability = (0, _util.createPromiseCapability)(); - - var sendStreamRequest = function sendStreamRequest(_ref) { - var stream = _ref.stream, - chunk = _ref.chunk, - transfers = _ref.transfers, - success = _ref.success, - reason = _ref.reason; - - _this3.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: stream, - streamId: streamId, - chunk: chunk, - success: success, - reason: reason - }, transfers); - }; - - var streamSink = { - enqueue: function enqueue(chunk) { - var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; - var transfers = arguments.length > 2 ? arguments[2] : undefined; + } + _createStreamSink(data) { + const self = this; + const action = this.actionHandler[data.action]; + const streamId = data.streamId; + const sourceName = this.sourceName; + const targetName = data.sourceName; + const comObj = this.comObj; + const streamSink = { + enqueue(chunk, size = 1, transfers) { if (this.isCancelled) { return; } - var lastDesiredSize = this.desiredSize; + const lastDesiredSize = this.desiredSize; this.desiredSize -= size; if (lastDesiredSize > 0 && this.desiredSize <= 0) { @@ -55743,196 +47238,249 @@ MessageHandler.prototype = { this.ready = this.sinkCapability.promise; } - sendStreamRequest({ - stream: 'enqueue', - chunk: chunk, - transfers: transfers - }); + self._postMessage({ + sourceName, + targetName, + stream: StreamKind.ENQUEUE, + streamId, + chunk + }, transfers); }, - close: function close() { + + close() { if (this.isCancelled) { return; } this.isCancelled = true; - sendStreamRequest({ - stream: 'close' + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CLOSE, + streamId }); delete self.streamSinks[streamId]; }, - error: function error(reason) { + + error(reason) { + (0, _util.assert)(reason instanceof Error, "error must have a valid reason"); + if (this.isCancelled) { return; } this.isCancelled = true; - sendStreamRequest({ - stream: 'error', - reason: reason + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.ERROR, + streamId, + reason: wrapReason(reason) }); }, - sinkCapability: capability, + + sinkCapability: (0, _util.createPromiseCapability)(), onPull: null, onCancel: null, isCancelled: false, - desiredSize: desiredSize, + desiredSize: data.desiredSize, ready: null }; streamSink.sinkCapability.resolve(); streamSink.ready = streamSink.sinkCapability.promise; this.streamSinks[streamId] = streamSink; - resolveCall(action[0], [data.data, streamSink], action[1]).then(function () { - sendStreamRequest({ - stream: 'start_complete', + new Promise(function (resolve) { + resolve(action(data.data, streamSink)); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.START_COMPLETE, + streamId, success: true }); }, function (reason) { - sendStreamRequest({ - stream: 'start_complete', - success: false, - reason: reason + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.START_COMPLETE, + streamId, + reason: wrapReason(reason) }); }); - }, - _processStreamMessage: function _processStreamMessage(data) { - var _this4 = this; + } - var sourceName = this.sourceName; - var targetName = data.sourceName; - var streamId = data.streamId; - - var sendStreamResponse = function sendStreamResponse(_ref2) { - var stream = _ref2.stream, - success = _ref2.success, - reason = _ref2.reason; - - _this4.comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: stream, - success: success, - streamId: streamId, - reason: reason - }); - }; - - var deleteStreamController = function deleteStreamController() { - Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) { - return capability && finalize(capability.promise); - })).then(function () { - delete _this4.streamControllers[data.streamId]; - }); - }; + _processStreamMessage(data) { + const streamId = data.streamId; + const sourceName = this.sourceName; + const targetName = data.sourceName; + const comObj = this.comObj; switch (data.stream) { - case 'start_complete': - resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason)); + case StreamKind.START_COMPLETE: + if (data.success) { + this.streamControllers[streamId].startCall.resolve(); + } else { + this.streamControllers[streamId].startCall.reject(wrapReason(data.reason)); + } + break; - case 'pull_complete': - resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason)); + case StreamKind.PULL_COMPLETE: + if (data.success) { + this.streamControllers[streamId].pullCall.resolve(); + } else { + this.streamControllers[streamId].pullCall.reject(wrapReason(data.reason)); + } + break; - case 'pull': - if (!this.streamSinks[data.streamId]) { - sendStreamResponse({ - stream: 'pull_complete', + case StreamKind.PULL: + if (!this.streamSinks[streamId]) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, success: true }); break; } - if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) { - this.streamSinks[data.streamId].sinkCapability.resolve(); + if (this.streamSinks[streamId].desiredSize <= 0 && data.desiredSize > 0) { + this.streamSinks[streamId].sinkCapability.resolve(); } - this.streamSinks[data.streamId].desiredSize = data.desiredSize; - resolveCall(this.streamSinks[data.streamId].onPull).then(function () { - sendStreamResponse({ - stream: 'pull_complete', + this.streamSinks[streamId].desiredSize = data.desiredSize; + const { + onPull + } = this.streamSinks[data.streamId]; + new Promise(function (resolve) { + resolve(onPull && onPull()); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, success: true }); }, function (reason) { - sendStreamResponse({ - stream: 'pull_complete', - success: false, - reason: reason + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + reason: wrapReason(reason) }); }); break; - case 'enqueue': - (0, _util.assert)(this.streamControllers[data.streamId], 'enqueue should have stream controller'); + case StreamKind.ENQUEUE: + (0, _util.assert)(this.streamControllers[streamId], "enqueue should have stream controller"); - if (!this.streamControllers[data.streamId].isClosed) { - this.streamControllers[data.streamId].controller.enqueue(data.chunk); - } - - break; - - case 'close': - (0, _util.assert)(this.streamControllers[data.streamId], 'close should have stream controller'); - - if (this.streamControllers[data.streamId].isClosed) { + if (this.streamControllers[streamId].isClosed) { break; } - this.streamControllers[data.streamId].isClosed = true; - this.streamControllers[data.streamId].controller.close(); - deleteStreamController(); + this.streamControllers[streamId].controller.enqueue(data.chunk); break; - case 'error': - (0, _util.assert)(this.streamControllers[data.streamId], 'error should have stream controller'); - this.streamControllers[data.streamId].controller.error(wrapReason(data.reason)); - deleteStreamController(); - break; + case StreamKind.CLOSE: + (0, _util.assert)(this.streamControllers[streamId], "close should have stream controller"); - case 'cancel_complete': - resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason)); - deleteStreamController(); - break; - - case 'cancel': - if (!this.streamSinks[data.streamId]) { + if (this.streamControllers[streamId].isClosed) { break; } - resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () { - sendStreamResponse({ - stream: 'cancel_complete', + this.streamControllers[streamId].isClosed = true; + this.streamControllers[streamId].controller.close(); + + this._deleteStreamController(streamId); + + break; + + case StreamKind.ERROR: + (0, _util.assert)(this.streamControllers[streamId], "error should have stream controller"); + this.streamControllers[streamId].controller.error(wrapReason(data.reason)); + + this._deleteStreamController(streamId); + + break; + + case StreamKind.CANCEL_COMPLETE: + if (data.success) { + this.streamControllers[streamId].cancelCall.resolve(); + } else { + this.streamControllers[streamId].cancelCall.reject(wrapReason(data.reason)); + } + + this._deleteStreamController(streamId); + + break; + + case StreamKind.CANCEL: + if (!this.streamSinks[streamId]) { + break; + } + + const { + onCancel + } = this.streamSinks[data.streamId]; + new Promise(function (resolve) { + resolve(onCancel && onCancel(wrapReason(data.reason))); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL_COMPLETE, + streamId, success: true }); }, function (reason) { - sendStreamResponse({ - stream: 'cancel_complete', - success: false, - reason: reason + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL_COMPLETE, + streamId, + reason: wrapReason(reason) }); }); - this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason)); - this.streamSinks[data.streamId].isCancelled = true; - delete this.streamSinks[data.streamId]; + this.streamSinks[streamId].sinkCapability.reject(wrapReason(data.reason)); + this.streamSinks[streamId].isCancelled = true; + delete this.streamSinks[streamId]; break; default: - throw new Error('Unexpected stream case'); + throw new Error("Unexpected stream case"); } - }, - postMessage: function postMessage(message, transfers) { + } + + async _deleteStreamController(streamId) { + await Promise.allSettled([this.streamControllers[streamId].startCall, this.streamControllers[streamId].pullCall, this.streamControllers[streamId].cancelCall].map(function (capability) { + return capability && capability.promise; + })); + delete this.streamControllers[streamId]; + } + + _postMessage(message, transfers) { if (transfers && this.postMessageTransfers) { this.comObj.postMessage(message, transfers); } else { this.comObj.postMessage(message); } - }, - destroy: function destroy() { - this.comObj.removeEventListener('message', this._onComObjOnMessage); } -}; + + destroy() { + this.comObj.removeEventListener("message", this._onComObjOnMessage); + } + +} + +exports.MessageHandler = MessageHandler; /***/ }), -/* 192 */ +/* 47 */ /***/ (function(module, exports, __w_pdfjs_require__) { "use strict"; @@ -55943,255 +47491,146 @@ Object.defineProperty(exports, "__esModule", { }); exports.PDFWorkerStream = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(2)); - -var _util = __w_pdfjs_require__(5); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var PDFWorkerStream = -/*#__PURE__*/ -function () { - function PDFWorkerStream(msgHandler) { - _classCallCheck(this, PDFWorkerStream); +var _util = __w_pdfjs_require__(2); +class PDFWorkerStream { + constructor(msgHandler) { this._msgHandler = msgHandler; this._contentLength = null; this._fullRequestReader = null; this._rangeRequestReaders = []; } - _createClass(PDFWorkerStream, [{ - key: "getFullReader", - value: function getFullReader() { - (0, _util.assert)(!this._fullRequestReader); - this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler); - return this._fullRequestReader; + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFWorkerStream.getFullReader can only be called once."); + this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler); + return this._fullRequestReader; + } + + getRangeReader(begin, end) { + const reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler); + + this._rangeRequestReaders.push(reader); + + return reader; + } + + cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); } - }, { - key: "getRangeReader", - value: function getRangeReader(begin, end) { - var reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler); - this._rangeRequestReaders.push(reader); + const readers = this._rangeRequestReaders.slice(0); - return reader; - } - }, { - key: "cancelAllRequests", - value: function cancelAllRequests(reason) { - if (this._fullRequestReader) { - this._fullRequestReader.cancel(reason); - } + readers.forEach(function (reader) { + reader.cancel(reason); + }); + } - var readers = this._rangeRequestReaders.slice(0); - - readers.forEach(function (reader) { - reader.cancel(reason); - }); - } - }]); - - return PDFWorkerStream; -}(); +} exports.PDFWorkerStream = PDFWorkerStream; -var PDFWorkerStreamReader = -/*#__PURE__*/ -function () { - function PDFWorkerStreamReader(msgHandler) { - var _this = this; - - _classCallCheck(this, PDFWorkerStreamReader); - +class PDFWorkerStreamReader { + constructor(msgHandler) { this._msgHandler = msgHandler; this.onProgress = null; this._contentLength = null; this._isRangeSupported = false; this._isStreamingSupported = false; - var readableStream = this._msgHandler.sendWithStream('GetReader'); + const readableStream = this._msgHandler.sendWithStream("GetReader"); this._reader = readableStream.getReader(); - this._headersReady = this._msgHandler.sendWithPromise('ReaderHeadersReady').then(function (data) { - _this._isStreamingSupported = data.isStreamingSupported; - _this._isRangeSupported = data.isRangeSupported; - _this._contentLength = data.contentLength; + this._headersReady = this._msgHandler.sendWithPromise("ReaderHeadersReady").then(data => { + this._isStreamingSupported = data.isStreamingSupported; + this._isRangeSupported = data.isRangeSupported; + this._contentLength = data.contentLength; }); } - _createClass(PDFWorkerStreamReader, [{ - key: "read", - value: function () { - var _read = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee() { - var _ref, value, done; + get headersReady() { + return this._headersReady; + } - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return this._reader.read(); + get contentLength() { + return this._contentLength; + } - case 2: - _ref = _context.sent; - value = _ref.value; - done = _ref.done; + get isStreamingSupported() { + return this._isStreamingSupported; + } - if (!done) { - _context.next = 7; - break; - } + get isRangeSupported() { + return this._isRangeSupported; + } - return _context.abrupt("return", { - value: undefined, - done: true - }); + async read() { + const { + value, + done + } = await this._reader.read(); - case 7: - return _context.abrupt("return", { - value: value.buffer, - done: false - }); - - case 8: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function read() { - return _read.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - this._reader.cancel(reason); + if (done) { + return { + value: undefined, + done: true + }; } - }, { - key: "headersReady", - get: function get() { - return this._headersReady; - } - }, { - key: "contentLength", - get: function get() { - return this._contentLength; - } - }, { - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }, { - key: "isRangeSupported", - get: function get() { - return this._isRangeSupported; - } - }]); - return PDFWorkerStreamReader; -}(); + return { + value: value.buffer, + done: false + }; + } -var PDFWorkerStreamRangeReader = -/*#__PURE__*/ -function () { - function PDFWorkerStreamRangeReader(begin, end, msgHandler) { - _classCallCheck(this, PDFWorkerStreamRangeReader); + cancel(reason) { + this._reader.cancel(reason); + } +} + +class PDFWorkerStreamRangeReader { + constructor(begin, end, msgHandler) { this._msgHandler = msgHandler; this.onProgress = null; - var readableStream = this._msgHandler.sendWithStream('GetRangeReader', { - begin: begin, - end: end + const readableStream = this._msgHandler.sendWithStream("GetRangeReader", { + begin, + end }); this._reader = readableStream.getReader(); } - _createClass(PDFWorkerStreamRangeReader, [{ - key: "read", - value: function () { - var _read2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2() { - var _ref2, value, done; + get isStreamingSupported() { + return false; + } - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _context2.next = 2; - return this._reader.read(); + async read() { + const { + value, + done + } = await this._reader.read(); - case 2: - _ref2 = _context2.sent; - value = _ref2.value; - done = _ref2.done; - - if (!done) { - _context2.next = 7; - break; - } - - return _context2.abrupt("return", { - value: undefined, - done: true - }); - - case 7: - return _context2.abrupt("return", { - value: value.buffer, - done: false - }); - - case 8: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function read() { - return _read2.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - this._reader.cancel(reason); + if (done) { + return { + value: undefined, + done: true + }; } - }, { - key: "isStreamingSupported", - get: function get() { - return false; - } - }]); - return PDFWorkerStreamRangeReader; -}(); + return { + value: value.buffer, + done: false + }; + } + + cancel(reason) { + this._reader.cancel(reason); + } + +} /***/ }) /******/ ]); diff --git a/cps/static/js/libs/viewer.js b/cps/static/js/libs/viewer.js index 1adf130b..26fd0f82 100644 --- a/cps/static/js/libs/viewer.js +++ b/cps/static/js/libs/viewer.js @@ -2,7 +2,7 @@ * @licstart The following is the entire license notice for the * Javascript code in this page * - * Copyright 2019 Mozilla Foundation + * Copyright 2020 Mozilla Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -114,157 +114,168 @@ ; -var pdfjsWebApp, pdfjsWebAppOptions; +let pdfjsWebApp, pdfjsWebAppOptions; { pdfjsWebApp = __webpack_require__(1); - pdfjsWebAppOptions = __webpack_require__(6); + pdfjsWebAppOptions = __webpack_require__(3); } ; { - __webpack_require__(36); + __webpack_require__(35); } ; { - __webpack_require__(41); + __webpack_require__(40); } function getViewerConfiguration() { return { appContainer: document.body, - mainContainer: document.getElementById('viewerContainer'), - viewerContainer: document.getElementById('viewer'), + mainContainer: document.getElementById("viewerContainer"), + viewerContainer: document.getElementById("viewer"), eventBus: null, toolbar: { - container: document.getElementById('toolbarViewer'), - numPages: document.getElementById('numPages'), - pageNumber: document.getElementById('pageNumber'), - scaleSelectContainer: document.getElementById('scaleSelectContainer'), - scaleSelect: document.getElementById('scaleSelect'), - customScaleOption: document.getElementById('customScaleOption'), - previous: document.getElementById('previous'), - next: document.getElementById('next'), - zoomIn: document.getElementById('zoomIn'), - zoomOut: document.getElementById('zoomOut'), - viewFind: document.getElementById('viewFind'), - openFile: document.getElementById('openFile'), - print: document.getElementById('print'), - presentationModeButton: document.getElementById('presentationMode'), - download: document.getElementById('download'), - viewBookmark: document.getElementById('viewBookmark') + container: document.getElementById("toolbarViewer"), + numPages: document.getElementById("numPages"), + pageNumber: document.getElementById("pageNumber"), + scaleSelectContainer: document.getElementById("scaleSelectContainer"), + scaleSelect: document.getElementById("scaleSelect"), + customScaleOption: document.getElementById("customScaleOption"), + previous: document.getElementById("previous"), + next: document.getElementById("next"), + zoomIn: document.getElementById("zoomIn"), + zoomOut: document.getElementById("zoomOut"), + viewFind: document.getElementById("viewFind"), + openFile: document.getElementById("openFile"), + print: document.getElementById("print"), + presentationModeButton: document.getElementById("presentationMode"), + download: document.getElementById("download"), + viewBookmark: document.getElementById("viewBookmark") }, secondaryToolbar: { - toolbar: document.getElementById('secondaryToolbar'), - toggleButton: document.getElementById('secondaryToolbarToggle'), - toolbarButtonContainer: document.getElementById('secondaryToolbarButtonContainer'), - presentationModeButton: document.getElementById('secondaryPresentationMode'), - openFileButton: document.getElementById('secondaryOpenFile'), - printButton: document.getElementById('secondaryPrint'), - downloadButton: document.getElementById('secondaryDownload'), - viewBookmarkButton: document.getElementById('secondaryViewBookmark'), - firstPageButton: document.getElementById('firstPage'), - lastPageButton: document.getElementById('lastPage'), - pageRotateCwButton: document.getElementById('pageRotateCw'), - pageRotateCcwButton: document.getElementById('pageRotateCcw'), - cursorSelectToolButton: document.getElementById('cursorSelectTool'), - cursorHandToolButton: document.getElementById('cursorHandTool'), - scrollVerticalButton: document.getElementById('scrollVertical'), - scrollHorizontalButton: document.getElementById('scrollHorizontal'), - scrollWrappedButton: document.getElementById('scrollWrapped'), - spreadNoneButton: document.getElementById('spreadNone'), - spreadOddButton: document.getElementById('spreadOdd'), - spreadEvenButton: document.getElementById('spreadEven'), - documentPropertiesButton: document.getElementById('documentProperties') + toolbar: document.getElementById("secondaryToolbar"), + toggleButton: document.getElementById("secondaryToolbarToggle"), + toolbarButtonContainer: document.getElementById("secondaryToolbarButtonContainer"), + presentationModeButton: document.getElementById("secondaryPresentationMode"), + openFileButton: document.getElementById("secondaryOpenFile"), + printButton: document.getElementById("secondaryPrint"), + downloadButton: document.getElementById("secondaryDownload"), + viewBookmarkButton: document.getElementById("secondaryViewBookmark"), + firstPageButton: document.getElementById("firstPage"), + lastPageButton: document.getElementById("lastPage"), + pageRotateCwButton: document.getElementById("pageRotateCw"), + pageRotateCcwButton: document.getElementById("pageRotateCcw"), + cursorSelectToolButton: document.getElementById("cursorSelectTool"), + cursorHandToolButton: document.getElementById("cursorHandTool"), + scrollVerticalButton: document.getElementById("scrollVertical"), + scrollHorizontalButton: document.getElementById("scrollHorizontal"), + scrollWrappedButton: document.getElementById("scrollWrapped"), + spreadNoneButton: document.getElementById("spreadNone"), + spreadOddButton: document.getElementById("spreadOdd"), + spreadEvenButton: document.getElementById("spreadEven"), + documentPropertiesButton: document.getElementById("documentProperties") }, fullscreen: { - contextFirstPage: document.getElementById('contextFirstPage'), - contextLastPage: document.getElementById('contextLastPage'), - contextPageRotateCw: document.getElementById('contextPageRotateCw'), - contextPageRotateCcw: document.getElementById('contextPageRotateCcw') + contextFirstPage: document.getElementById("contextFirstPage"), + contextLastPage: document.getElementById("contextLastPage"), + contextPageRotateCw: document.getElementById("contextPageRotateCw"), + contextPageRotateCcw: document.getElementById("contextPageRotateCcw") }, sidebar: { - outerContainer: document.getElementById('outerContainer'), - viewerContainer: document.getElementById('viewerContainer'), - toggleButton: document.getElementById('sidebarToggle'), - thumbnailButton: document.getElementById('viewThumbnail'), - outlineButton: document.getElementById('viewOutline'), - attachmentsButton: document.getElementById('viewAttachments'), - thumbnailView: document.getElementById('thumbnailView'), - outlineView: document.getElementById('outlineView'), - attachmentsView: document.getElementById('attachmentsView') + outerContainer: document.getElementById("outerContainer"), + viewerContainer: document.getElementById("viewerContainer"), + toggleButton: document.getElementById("sidebarToggle"), + thumbnailButton: document.getElementById("viewThumbnail"), + outlineButton: document.getElementById("viewOutline"), + attachmentsButton: document.getElementById("viewAttachments"), + layersButton: document.getElementById("viewLayers"), + thumbnailView: document.getElementById("thumbnailView"), + outlineView: document.getElementById("outlineView"), + attachmentsView: document.getElementById("attachmentsView"), + layersView: document.getElementById("layersView") }, sidebarResizer: { - outerContainer: document.getElementById('outerContainer'), - resizer: document.getElementById('sidebarResizer') + outerContainer: document.getElementById("outerContainer"), + resizer: document.getElementById("sidebarResizer") }, findBar: { - bar: document.getElementById('findbar'), - toggleButton: document.getElementById('viewFind'), - findField: document.getElementById('findInput'), - highlightAllCheckbox: document.getElementById('findHighlightAll'), - caseSensitiveCheckbox: document.getElementById('findMatchCase'), - entireWordCheckbox: document.getElementById('findEntireWord'), - findMsg: document.getElementById('findMsg'), - findResultsCount: document.getElementById('findResultsCount'), - findPreviousButton: document.getElementById('findPrevious'), - findNextButton: document.getElementById('findNext') + bar: document.getElementById("findbar"), + toggleButton: document.getElementById("viewFind"), + findField: document.getElementById("findInput"), + highlightAllCheckbox: document.getElementById("findHighlightAll"), + caseSensitiveCheckbox: document.getElementById("findMatchCase"), + entireWordCheckbox: document.getElementById("findEntireWord"), + findMsg: document.getElementById("findMsg"), + findResultsCount: document.getElementById("findResultsCount"), + findPreviousButton: document.getElementById("findPrevious"), + findNextButton: document.getElementById("findNext") }, passwordOverlay: { - overlayName: 'passwordOverlay', - container: document.getElementById('passwordOverlay'), - label: document.getElementById('passwordText'), - input: document.getElementById('password'), - submitButton: document.getElementById('passwordSubmit'), - cancelButton: document.getElementById('passwordCancel') + overlayName: "passwordOverlay", + container: document.getElementById("passwordOverlay"), + label: document.getElementById("passwordText"), + input: document.getElementById("password"), + submitButton: document.getElementById("passwordSubmit"), + cancelButton: document.getElementById("passwordCancel") }, documentProperties: { - overlayName: 'documentPropertiesOverlay', - container: document.getElementById('documentPropertiesOverlay'), - closeButton: document.getElementById('documentPropertiesClose'), + overlayName: "documentPropertiesOverlay", + container: document.getElementById("documentPropertiesOverlay"), + closeButton: document.getElementById("documentPropertiesClose"), fields: { - 'fileName': document.getElementById('fileNameField'), - 'fileSize': document.getElementById('fileSizeField'), - 'title': document.getElementById('titleField'), - 'author': document.getElementById('authorField'), - 'subject': document.getElementById('subjectField'), - 'keywords': document.getElementById('keywordsField'), - 'creationDate': document.getElementById('creationDateField'), - 'modificationDate': document.getElementById('modificationDateField'), - 'creator': document.getElementById('creatorField'), - 'producer': document.getElementById('producerField'), - 'version': document.getElementById('versionField'), - 'pageCount': document.getElementById('pageCountField'), - 'pageSize': document.getElementById('pageSizeField'), - 'linearized': document.getElementById('linearizedField') + fileName: document.getElementById("fileNameField"), + fileSize: document.getElementById("fileSizeField"), + title: document.getElementById("titleField"), + author: document.getElementById("authorField"), + subject: document.getElementById("subjectField"), + keywords: document.getElementById("keywordsField"), + creationDate: document.getElementById("creationDateField"), + modificationDate: document.getElementById("modificationDateField"), + creator: document.getElementById("creatorField"), + producer: document.getElementById("producerField"), + version: document.getElementById("versionField"), + pageCount: document.getElementById("pageCountField"), + pageSize: document.getElementById("pageSizeField"), + linearized: document.getElementById("linearizedField") } }, errorWrapper: { - container: document.getElementById('errorWrapper'), - errorMessage: document.getElementById('errorMessage'), - closeButton: document.getElementById('errorClose'), - errorMoreInfo: document.getElementById('errorMoreInfo'), - moreInfoButton: document.getElementById('errorShowMore'), - lessInfoButton: document.getElementById('errorShowLess') + container: document.getElementById("errorWrapper"), + errorMessage: document.getElementById("errorMessage"), + closeButton: document.getElementById("errorClose"), + errorMoreInfo: document.getElementById("errorMoreInfo"), + moreInfoButton: document.getElementById("errorShowMore"), + lessInfoButton: document.getElementById("errorShowLess") }, - printContainer: document.getElementById('printContainer'), - openFileInputName: 'fileInput', - debuggerScriptPath: './debugger.js' + printContainer: document.getElementById("printContainer"), + openFileInputName: "fileInput", + debuggerScriptPath: "./debugger.js" }; } function webViewerLoad() { - var config = getViewerConfiguration(); + const config = getViewerConfiguration(); window.PDFViewerApplication = pdfjsWebApp.PDFViewerApplication; window.PDFViewerApplicationOptions = pdfjsWebAppOptions.AppOptions; - var event = document.createEvent('CustomEvent'); - event.initCustomEvent('webviewerloaded', true, true, {}); - document.dispatchEvent(event); + const event = document.createEvent("CustomEvent"); + event.initCustomEvent("webviewerloaded", true, true, { + source: window + }); + + try { + parent.document.dispatchEvent(event); + } catch (ex) { + console.error(`webviewerloaded: ${ex}`); + document.dispatchEvent(event); + } + pdfjsWebApp.PDFViewerApplication.run(config); } -if (document.readyState === 'interactive' || document.readyState === 'complete') { +if (document.readyState === "interactive" || document.readyState === "complete") { webViewerLoad(); } else { - document.addEventListener('DOMContentLoaded', webViewerLoad, true); + document.addEventListener("DOMContentLoaded", webViewerLoad, true); } /***/ }), @@ -279,102 +290,119 @@ Object.defineProperty(exports, "__esModule", { }); exports.PDFPrintServiceFactory = exports.DefaultExternalServices = exports.PDFViewerApplication = void 0; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); +var _ui_utils = __webpack_require__(2); -var _ui_utils = __webpack_require__(5); +var _app_options = __webpack_require__(3); -var _app_options = __webpack_require__(6); +var _pdfjsLib = __webpack_require__(5); -var _pdfjsLib = __webpack_require__(7); +var _pdf_cursor_tools = __webpack_require__(6); -var _pdf_cursor_tools = __webpack_require__(9); +var _pdf_rendering_queue = __webpack_require__(8); -var _pdf_rendering_queue = __webpack_require__(11); +var _pdf_sidebar = __webpack_require__(9); -var _pdf_sidebar = __webpack_require__(12); +var _overlay_manager = __webpack_require__(10); -var _overlay_manager = __webpack_require__(13); +var _password_prompt = __webpack_require__(11); -var _password_prompt = __webpack_require__(14); +var _pdf_attachment_viewer = __webpack_require__(12); -var _pdf_attachment_viewer = __webpack_require__(15); +var _pdf_document_properties = __webpack_require__(14); -var _pdf_document_properties = __webpack_require__(16); +var _pdf_find_bar = __webpack_require__(15); -var _pdf_find_bar = __webpack_require__(17); +var _pdf_find_controller = __webpack_require__(16); -var _pdf_find_controller = __webpack_require__(18); +var _pdf_history = __webpack_require__(18); -var _pdf_history = __webpack_require__(20); +var _pdf_layer_viewer = __webpack_require__(19); -var _pdf_link_service = __webpack_require__(21); +var _pdf_link_service = __webpack_require__(20); -var _pdf_outline_viewer = __webpack_require__(22); +var _pdf_outline_viewer = __webpack_require__(21); -var _pdf_presentation_mode = __webpack_require__(23); +var _pdf_presentation_mode = __webpack_require__(22); -var _pdf_sidebar_resizer = __webpack_require__(24); +var _pdf_sidebar_resizer = __webpack_require__(23); -var _pdf_thumbnail_viewer = __webpack_require__(25); +var _pdf_thumbnail_viewer = __webpack_require__(24); -var _pdf_viewer = __webpack_require__(27); +var _pdf_viewer = __webpack_require__(26); -var _secondary_toolbar = __webpack_require__(32); +var _secondary_toolbar = __webpack_require__(31); -var _toolbar = __webpack_require__(34); +var _toolbar = __webpack_require__(33); -var _view_history = __webpack_require__(35); +var _viewer_compatibility = __webpack_require__(4); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _view_history = __webpack_require__(34); -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -var DEFAULT_SCALE_DELTA = 1.1; -var DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000; -var FORCE_PAGES_LOADED_TIMEOUT = 10000; -var WHEEL_ZOOM_DISABLED_TIMEOUT = 1000; -var ViewOnLoad = { +const DEFAULT_SCALE_DELTA = 1.1; +const DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000; +const FORCE_PAGES_LOADED_TIMEOUT = 10000; +const WHEEL_ZOOM_DISABLED_TIMEOUT = 1000; +const ENABLE_PERMISSIONS_CLASS = "enablePermissions"; +const ViewOnLoad = { UNKNOWN: -1, PREVIOUS: 0, INITIAL: 1 }; -var DefaultExternalServices = { - updateFindControlState: function updateFindControlState(data) {}, - updateFindMatchesCount: function updateFindMatchesCount(data) {}, - initPassiveLoading: function initPassiveLoading(callbacks) {}, - fallback: function fallback(data, callback) {}, - reportTelemetry: function reportTelemetry(data) {}, - createDownloadManager: function createDownloadManager(options) { - throw new Error('Not implemented: createDownloadManager'); - }, - createPreferences: function createPreferences() { - throw new Error('Not implemented: createPreferences'); - }, - createL10n: function createL10n(options) { - throw new Error('Not implemented: createL10n'); - }, - supportsIntegratedFind: false, - supportsDocumentFonts: true, - supportsDocumentColors: true, - supportedMouseWheelZoomModifierKeys: { - ctrlKey: true, - metaKey: true +const KNOWN_VERSIONS = ["1.0", "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "2.0", "2.1", "2.2", "2.3"]; +const KNOWN_GENERATORS = ["acrobat distiller", "acrobat pdfwriter", "adobe livecycle", "adobe pdf library", "adobe photoshop", "ghostscript", "tcpdf", "cairo", "dvipdfm", "dvips", "pdftex", "pdfkit", "itext", "prince", "quarkxpress", "mac os x", "microsoft", "openoffice", "oracle", "luradocument", "pdf-xchange", "antenna house", "aspose.cells", "fpdf"]; + +class DefaultExternalServices { + constructor() { + throw new Error("Cannot initialize DefaultExternalServices."); } -}; + + static updateFindControlState(data) {} + + static updateFindMatchesCount(data) {} + + static initPassiveLoading(callbacks) {} + + static fallback(data, callback) {} + + static reportTelemetry(data) {} + + static createDownloadManager(options) { + throw new Error("Not implemented: createDownloadManager"); + } + + static createPreferences() { + throw new Error("Not implemented: createPreferences"); + } + + static createL10n(options) { + throw new Error("Not implemented: createL10n"); + } + + static get supportsIntegratedFind() { + return (0, _pdfjsLib.shadow)(this, "supportsIntegratedFind", false); + } + + static get supportsDocumentFonts() { + return (0, _pdfjsLib.shadow)(this, "supportsDocumentFonts", true); + } + + static get supportedMouseWheelZoomModifierKeys() { + return (0, _pdfjsLib.shadow)(this, "supportedMouseWheelZoomModifierKeys", { + ctrlKey: true, + metaKey: true + }); + } + + static get isInAutomation() { + return (0, _pdfjsLib.shadow)(this, "isInAutomation", false); + } + +} + exports.DefaultExternalServices = DefaultExternalServices; -var PDFViewerApplication = { +const PDFViewerApplication = { initialBookmark: document.location.hash.substring(1), - initialized: false, + _initializedCapability: (0, _pdfjsLib.createPromiseCapability)(), fellback: false, appConfig: null, pdfDocument: null, @@ -391,6 +419,7 @@ var PDFViewerApplication = { pdfSidebarResizer: null, pdfOutlineViewer: null, pdfAttachmentViewer: null, + pdfLayerViewer: null, pdfCursorTools: null, store: null, downloadManager: null, @@ -403,382 +432,270 @@ var PDFViewerApplication = { isInitialViewSet: false, downloadComplete: false, isViewerEmbedded: window.parent !== window, - url: '', - baseUrl: '', + url: "", + baseUrl: "", externalServices: DefaultExternalServices, _boundEvents: {}, contentDispositionFilename: null, - initialize: function () { - var _initialize = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(appConfig) { - var _this = this; + triggerDelayedFallback: null, + _saveInProgress: false, + _wheelUnusedTicks: 0, - var appContainer; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - this.preferences = this.externalServices.createPreferences(); - this.appConfig = appConfig; - _context.next = 4; - return this._readPreferences(); + async initialize(appConfig) { + this.preferences = this.externalServices.createPreferences(); + this.appConfig = appConfig; + await this._readPreferences(); + await this._parseHashParameters(); + await this._initializeL10n(); - case 4: - _context.next = 6; - return this._parseHashParameters(); - - case 6: - _context.next = 8; - return this._initializeL10n(); - - case 8: - if (this.isViewerEmbedded && _app_options.AppOptions.get('externalLinkTarget') === _pdfjsLib.LinkTarget.NONE) { - _app_options.AppOptions.set('externalLinkTarget', _pdfjsLib.LinkTarget.TOP); - } - - _context.next = 11; - return this._initializeViewerComponents(); - - case 11: - this.bindEvents(); - this.bindWindowEvents(); - appContainer = appConfig.appContainer || document.documentElement; - this.l10n.translate(appContainer).then(function () { - _this.eventBus.dispatch('localized', { - source: _this - }); - }); - this.initialized = true; - - case 16: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function initialize(_x) { - return _initialize.apply(this, arguments); + if (this.isViewerEmbedded && _app_options.AppOptions.get("externalLinkTarget") === _pdfjsLib.LinkTarget.NONE) { + _app_options.AppOptions.set("externalLinkTarget", _pdfjsLib.LinkTarget.TOP); } - return initialize; - }(), - _readPreferences: function () { - var _readPreferences2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2() { - var prefs, name; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (!(_app_options.AppOptions.get('disablePreferences') === true)) { - _context2.next = 2; - break; - } + await this._initializeViewerComponents(); + this.bindEvents(); + this.bindWindowEvents(); + const appContainer = appConfig.appContainer || document.documentElement; + this.l10n.translate(appContainer).then(() => { + this.eventBus.dispatch("localized", { + source: this + }); + }); - return _context2.abrupt("return"); + this._initializedCapability.resolve(); + }, - case 2: - _context2.prev = 2; - _context2.next = 5; - return this.preferences.getAll(); - - case 5: - prefs = _context2.sent; - - for (name in prefs) { - _app_options.AppOptions.set(name, prefs[name]); - } - - _context2.next = 12; - break; - - case 9: - _context2.prev = 9; - _context2.t0 = _context2["catch"](2); - console.error("_readPreferences: \"".concat(_context2.t0.message, "\".")); - - case 12: - case "end": - return _context2.stop(); - } - } - }, _callee2, this, [[2, 9]]); - })); - - function _readPreferences() { - return _readPreferences2.apply(this, arguments); + async _readPreferences() { + if (_app_options.AppOptions.get("disablePreferences")) { + return; } - return _readPreferences; - }(), - _parseHashParameters: function () { - var _parseHashParameters2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee3() { - var waitOn, hash, hashParams, viewer, enabled; - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - if (_app_options.AppOptions.get('pdfBugEnabled')) { - _context3.next = 2; - break; - } + try { + const prefs = await this.preferences.getAll(); - return _context3.abrupt("return", undefined); + for (const name in prefs) { + _app_options.AppOptions.set(name, prefs[name]); + } + } catch (reason) { + console.error(`_readPreferences: "${reason.message}".`); + } + }, - case 2: - waitOn = []; - hash = document.location.hash.substring(1); - hashParams = (0, _ui_utils.parseQueryString)(hash); - - if ('disableworker' in hashParams && hashParams['disableworker'] === 'true') { - waitOn.push(loadFakeWorker()); - } - - if ('disablerange' in hashParams) { - _app_options.AppOptions.set('disableRange', hashParams['disablerange'] === 'true'); - } - - if ('disablestream' in hashParams) { - _app_options.AppOptions.set('disableStream', hashParams['disablestream'] === 'true'); - } - - if ('disableautofetch' in hashParams) { - _app_options.AppOptions.set('disableAutoFetch', hashParams['disableautofetch'] === 'true'); - } - - if ('disablefontface' in hashParams) { - _app_options.AppOptions.set('disableFontFace', hashParams['disablefontface'] === 'true'); - } - - if ('disablehistory' in hashParams) { - _app_options.AppOptions.set('disableHistory', hashParams['disablehistory'] === 'true'); - } - - if ('webgl' in hashParams) { - _app_options.AppOptions.set('enableWebGL', hashParams['webgl'] === 'true'); - } - - if ('useonlycsszoom' in hashParams) { - _app_options.AppOptions.set('useOnlyCssZoom', hashParams['useonlycsszoom'] === 'true'); - } - - if ('verbosity' in hashParams) { - _app_options.AppOptions.set('verbosity', hashParams['verbosity'] | 0); - } - - if (!('textlayer' in hashParams)) { - _context3.next = 23; - break; - } - - _context3.t0 = hashParams['textlayer']; - _context3.next = _context3.t0 === 'off' ? 18 : _context3.t0 === 'visible' ? 20 : _context3.t0 === 'shadow' ? 20 : _context3.t0 === 'hover' ? 20 : 23; - break; - - case 18: - _app_options.AppOptions.set('textLayerMode', _ui_utils.TextLayerMode.DISABLE); - - return _context3.abrupt("break", 23); - - case 20: - viewer = this.appConfig.viewerContainer; - viewer.classList.add('textLayer-' + hashParams['textlayer']); - return _context3.abrupt("break", 23); - - case 23: - if ('pdfbug' in hashParams) { - _app_options.AppOptions.set('pdfBug', true); - - enabled = hashParams['pdfbug'].split(','); - waitOn.push(loadAndEnablePDFBug(enabled)); - } - - if ('locale' in hashParams) { - _app_options.AppOptions.set('locale', hashParams['locale']); - } - - return _context3.abrupt("return", Promise.all(waitOn)["catch"](function (reason) { - console.error("_parseHashParameters: \"".concat(reason.message, "\".")); - })); - - case 26: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - - function _parseHashParameters() { - return _parseHashParameters2.apply(this, arguments); + async _parseHashParameters() { + if (!_app_options.AppOptions.get("pdfBugEnabled")) { + return undefined; } - return _parseHashParameters; - }(), - _initializeL10n: function () { - var _initializeL10n2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee4() { - var dir; - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - this.l10n = this.externalServices.createL10n({ - locale: _app_options.AppOptions.get('locale') - }); - _context4.next = 3; - return this.l10n.getDirection(); + const hash = document.location.hash.substring(1); - case 3: - dir = _context4.sent; - document.getElementsByTagName('html')[0].dir = dir; - - case 5: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - - function _initializeL10n() { - return _initializeL10n2.apply(this, arguments); + if (!hash) { + return undefined; } - return _initializeL10n; - }(), - _initializeViewerComponents: function () { - var _initializeViewerComponents2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee5() { - var appConfig, eventBus, pdfRenderingQueue, pdfLinkService, downloadManager, findController, container, viewer; - return _regenerator["default"].wrap(function _callee5$(_context5) { - while (1) { - switch (_context5.prev = _context5.next) { - case 0: - appConfig = this.appConfig; - this.overlayManager = new _overlay_manager.OverlayManager(); - eventBus = appConfig.eventBus || (0, _ui_utils.getGlobalEventBus)(_app_options.AppOptions.get('eventBusDispatchToDOM')); - this.eventBus = eventBus; - pdfRenderingQueue = new _pdf_rendering_queue.PDFRenderingQueue(); - pdfRenderingQueue.onIdle = this.cleanup.bind(this); - this.pdfRenderingQueue = pdfRenderingQueue; - pdfLinkService = new _pdf_link_service.PDFLinkService({ - eventBus: eventBus, - externalLinkTarget: _app_options.AppOptions.get('externalLinkTarget'), - externalLinkRel: _app_options.AppOptions.get('externalLinkRel') - }); - this.pdfLinkService = pdfLinkService; - downloadManager = this.externalServices.createDownloadManager({ - disableCreateObjectURL: _app_options.AppOptions.get('disableCreateObjectURL') - }); - this.downloadManager = downloadManager; - findController = new _pdf_find_controller.PDFFindController({ - linkService: pdfLinkService, - eventBus: eventBus - }); - this.findController = findController; - container = appConfig.mainContainer; - viewer = appConfig.viewerContainer; - this.pdfViewer = new _pdf_viewer.PDFViewer({ - container: container, - viewer: viewer, - eventBus: eventBus, - renderingQueue: pdfRenderingQueue, - linkService: pdfLinkService, - downloadManager: downloadManager, - findController: findController, - renderer: _app_options.AppOptions.get('renderer'), - enableWebGL: _app_options.AppOptions.get('enableWebGL'), - l10n: this.l10n, - textLayerMode: _app_options.AppOptions.get('textLayerMode'), - imageResourcesPath: _app_options.AppOptions.get('imageResourcesPath'), - renderInteractiveForms: _app_options.AppOptions.get('renderInteractiveForms'), - enablePrintAutoRotate: _app_options.AppOptions.get('enablePrintAutoRotate'), - useOnlyCssZoom: _app_options.AppOptions.get('useOnlyCssZoom'), - maxCanvasPixels: _app_options.AppOptions.get('maxCanvasPixels') - }); - pdfRenderingQueue.setViewer(this.pdfViewer); - pdfLinkService.setViewer(this.pdfViewer); - this.pdfThumbnailViewer = new _pdf_thumbnail_viewer.PDFThumbnailViewer({ - container: appConfig.sidebar.thumbnailView, - renderingQueue: pdfRenderingQueue, - linkService: pdfLinkService, - l10n: this.l10n - }); - pdfRenderingQueue.setThumbnailViewer(this.pdfThumbnailViewer); - this.pdfHistory = new _pdf_history.PDFHistory({ - linkService: pdfLinkService, - eventBus: eventBus - }); - pdfLinkService.setHistory(this.pdfHistory); - this.findBar = new _pdf_find_bar.PDFFindBar(appConfig.findBar, eventBus, this.l10n); - this.pdfDocumentProperties = new _pdf_document_properties.PDFDocumentProperties(appConfig.documentProperties, this.overlayManager, eventBus, this.l10n); - this.pdfCursorTools = new _pdf_cursor_tools.PDFCursorTools({ - container: container, - eventBus: eventBus, - cursorToolOnLoad: _app_options.AppOptions.get('cursorToolOnLoad') - }); - this.toolbar = new _toolbar.Toolbar(appConfig.toolbar, eventBus, this.l10n); - this.secondaryToolbar = new _secondary_toolbar.SecondaryToolbar(appConfig.secondaryToolbar, container, eventBus); + const hashParams = (0, _ui_utils.parseQueryString)(hash), + waitOn = []; - if (this.supportsFullscreen) { - this.pdfPresentationMode = new _pdf_presentation_mode.PDFPresentationMode({ - container: container, - viewer: viewer, - pdfViewer: this.pdfViewer, - eventBus: eventBus, - contextMenuItems: appConfig.fullscreen - }); - } - - this.passwordPrompt = new _password_prompt.PasswordPrompt(appConfig.passwordOverlay, this.overlayManager, this.l10n); - this.pdfOutlineViewer = new _pdf_outline_viewer.PDFOutlineViewer({ - container: appConfig.sidebar.outlineView, - eventBus: eventBus, - linkService: pdfLinkService - }); - this.pdfAttachmentViewer = new _pdf_attachment_viewer.PDFAttachmentViewer({ - container: appConfig.sidebar.attachmentsView, - eventBus: eventBus, - downloadManager: downloadManager - }); - this.pdfSidebar = new _pdf_sidebar.PDFSidebar({ - elements: appConfig.sidebar, - pdfViewer: this.pdfViewer, - pdfThumbnailViewer: this.pdfThumbnailViewer, - eventBus: eventBus, - l10n: this.l10n - }); - this.pdfSidebar.onToggled = this.forceRendering.bind(this); - this.pdfSidebarResizer = new _pdf_sidebar_resizer.PDFSidebarResizer(appConfig.sidebarResizer, eventBus, this.l10n); - - case 34: - case "end": - return _context5.stop(); - } - } - }, _callee5, this); - })); - - function _initializeViewerComponents() { - return _initializeViewerComponents2.apply(this, arguments); + if ("disableworker" in hashParams && hashParams.disableworker === "true") { + waitOn.push(loadFakeWorker()); } - return _initializeViewerComponents; - }(), - run: function run(config) { + if ("disablerange" in hashParams) { + _app_options.AppOptions.set("disableRange", hashParams.disablerange === "true"); + } + + if ("disablestream" in hashParams) { + _app_options.AppOptions.set("disableStream", hashParams.disablestream === "true"); + } + + if ("disableautofetch" in hashParams) { + _app_options.AppOptions.set("disableAutoFetch", hashParams.disableautofetch === "true"); + } + + if ("disablefontface" in hashParams) { + _app_options.AppOptions.set("disableFontFace", hashParams.disablefontface === "true"); + } + + if ("disablehistory" in hashParams) { + _app_options.AppOptions.set("disableHistory", hashParams.disablehistory === "true"); + } + + if ("webgl" in hashParams) { + _app_options.AppOptions.set("enableWebGL", hashParams.webgl === "true"); + } + + if ("verbosity" in hashParams) { + _app_options.AppOptions.set("verbosity", hashParams.verbosity | 0); + } + + if ("textlayer" in hashParams) { + switch (hashParams.textlayer) { + case "off": + _app_options.AppOptions.set("textLayerMode", _ui_utils.TextLayerMode.DISABLE); + + break; + + case "visible": + case "shadow": + case "hover": + const viewer = this.appConfig.viewerContainer; + viewer.classList.add("textLayer-" + hashParams.textlayer); + break; + } + } + + if ("pdfbug" in hashParams) { + _app_options.AppOptions.set("pdfBug", true); + + _app_options.AppOptions.set("fontExtraProperties", true); + + const enabled = hashParams.pdfbug.split(","); + waitOn.push(loadAndEnablePDFBug(enabled)); + } + + if ("locale" in hashParams) { + _app_options.AppOptions.set("locale", hashParams.locale); + } + + return Promise.all(waitOn).catch(reason => { + console.error(`_parseHashParameters: "${reason.message}".`); + }); + }, + + async _initializeL10n() { + this.l10n = this.externalServices.createL10n({ + locale: _app_options.AppOptions.get("locale") + }); + const dir = await this.l10n.getDirection(); + document.getElementsByTagName("html")[0].dir = dir; + }, + + async _initializeViewerComponents() { + const appConfig = this.appConfig; + const eventBus = appConfig.eventBus || new _ui_utils.EventBus({ + isInAutomation: this.externalServices.isInAutomation + }); + this.eventBus = eventBus; + this.overlayManager = new _overlay_manager.OverlayManager(); + const pdfRenderingQueue = new _pdf_rendering_queue.PDFRenderingQueue(); + pdfRenderingQueue.onIdle = this.cleanup.bind(this); + this.pdfRenderingQueue = pdfRenderingQueue; + const pdfLinkService = new _pdf_link_service.PDFLinkService({ + eventBus, + externalLinkTarget: _app_options.AppOptions.get("externalLinkTarget"), + externalLinkRel: _app_options.AppOptions.get("externalLinkRel"), + ignoreDestinationZoom: _app_options.AppOptions.get("ignoreDestinationZoom") + }); + this.pdfLinkService = pdfLinkService; + const downloadManager = this.externalServices.createDownloadManager(); + this.downloadManager = downloadManager; + const findController = new _pdf_find_controller.PDFFindController({ + linkService: pdfLinkService, + eventBus + }); + this.findController = findController; + const container = appConfig.mainContainer; + const viewer = appConfig.viewerContainer; + this.pdfViewer = new _pdf_viewer.PDFViewer({ + container, + viewer, + eventBus, + renderingQueue: pdfRenderingQueue, + linkService: pdfLinkService, + downloadManager, + findController, + renderer: _app_options.AppOptions.get("renderer"), + enableWebGL: _app_options.AppOptions.get("enableWebGL"), + l10n: this.l10n, + textLayerMode: _app_options.AppOptions.get("textLayerMode"), + imageResourcesPath: _app_options.AppOptions.get("imageResourcesPath"), + renderInteractiveForms: _app_options.AppOptions.get("renderInteractiveForms"), + enablePrintAutoRotate: _app_options.AppOptions.get("enablePrintAutoRotate"), + useOnlyCssZoom: _app_options.AppOptions.get("useOnlyCssZoom"), + maxCanvasPixels: _app_options.AppOptions.get("maxCanvasPixels") + }); + pdfRenderingQueue.setViewer(this.pdfViewer); + pdfLinkService.setViewer(this.pdfViewer); + this.pdfThumbnailViewer = new _pdf_thumbnail_viewer.PDFThumbnailViewer({ + container: appConfig.sidebar.thumbnailView, + eventBus, + renderingQueue: pdfRenderingQueue, + linkService: pdfLinkService, + l10n: this.l10n + }); + pdfRenderingQueue.setThumbnailViewer(this.pdfThumbnailViewer); + this.pdfHistory = new _pdf_history.PDFHistory({ + linkService: pdfLinkService, + eventBus + }); + pdfLinkService.setHistory(this.pdfHistory); + + if (!this.supportsIntegratedFind) { + this.findBar = new _pdf_find_bar.PDFFindBar(appConfig.findBar, eventBus, this.l10n); + } + + this.pdfDocumentProperties = new _pdf_document_properties.PDFDocumentProperties(appConfig.documentProperties, this.overlayManager, eventBus, this.l10n); + this.pdfCursorTools = new _pdf_cursor_tools.PDFCursorTools({ + container, + eventBus, + cursorToolOnLoad: _app_options.AppOptions.get("cursorToolOnLoad") + }); + this.toolbar = new _toolbar.Toolbar(appConfig.toolbar, eventBus, this.l10n); + this.secondaryToolbar = new _secondary_toolbar.SecondaryToolbar(appConfig.secondaryToolbar, container, eventBus); + + if (this.supportsFullscreen) { + this.pdfPresentationMode = new _pdf_presentation_mode.PDFPresentationMode({ + container, + pdfViewer: this.pdfViewer, + eventBus, + contextMenuItems: appConfig.fullscreen + }); + } + + this.passwordPrompt = new _password_prompt.PasswordPrompt(appConfig.passwordOverlay, this.overlayManager, this.l10n); + this.pdfOutlineViewer = new _pdf_outline_viewer.PDFOutlineViewer({ + container: appConfig.sidebar.outlineView, + eventBus, + linkService: pdfLinkService + }); + this.pdfAttachmentViewer = new _pdf_attachment_viewer.PDFAttachmentViewer({ + container: appConfig.sidebar.attachmentsView, + eventBus, + downloadManager + }); + this.pdfLayerViewer = new _pdf_layer_viewer.PDFLayerViewer({ + container: appConfig.sidebar.layersView, + eventBus, + l10n: this.l10n + }); + this.pdfSidebar = new _pdf_sidebar.PDFSidebar({ + elements: appConfig.sidebar, + pdfViewer: this.pdfViewer, + pdfThumbnailViewer: this.pdfThumbnailViewer, + eventBus, + l10n: this.l10n + }); + this.pdfSidebar.onToggled = this.forceRendering.bind(this); + this.pdfSidebarResizer = new _pdf_sidebar_resizer.PDFSidebarResizer(appConfig.sidebarResizer, eventBus, this.l10n); + }, + + run(config) { this.initialize(config).then(webViewerInitialized); }, - zoomIn: function zoomIn(ticks) { - var newScale = this.pdfViewer.currentScale; + + get initialized() { + return this._initializedCapability.settled; + }, + + get initializedPromise() { + return this._initializedCapability.promise; + }, + + zoomIn(ticks) { + if (this.pdfViewer.isInPresentationMode) { + return; + } + + let newScale = this.pdfViewer.currentScale; do { newScale = (newScale * DEFAULT_SCALE_DELTA).toFixed(2); @@ -788,8 +705,13 @@ var PDFViewerApplication = { this.pdfViewer.currentScaleValue = newScale; }, - zoomOut: function zoomOut(ticks) { - var newScale = this.pdfViewer.currentScale; + + zoomOut(ticks) { + if (this.pdfViewer.isInPresentationMode) { + return; + } + + let newScale = this.pdfViewer.currentScale; do { newScale = (newScale / DEFAULT_SCALE_DELTA).toFixed(2); @@ -799,13 +721,10 @@ var PDFViewerApplication = { this.pdfViewer.currentScaleValue = newScale; }, - zoomReset: function zoomReset() { - var ignoreDuplicate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + zoomReset() { if (this.pdfViewer.isInPresentationMode) { return; - } else if (ignoreDuplicate && this.pdfViewer.currentScaleValue === _ui_utils.DEFAULT_SCALE_VALUE) { - return; } this.pdfViewer.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; @@ -815,14 +734,14 @@ var PDFViewerApplication = { return this.pdfDocument ? this.pdfDocument.numPages : 0; }, - set page(val) { - this.pdfViewer.currentPageNumber = val; - }, - get page() { return this.pdfViewer.currentPageNumber; }, + set page(val) { + this.pdfViewer.currentPageNumber = val; + }, + get printing() { return !!this.printService; }, @@ -832,15 +751,15 @@ var PDFViewerApplication = { }, get supportsFullscreen() { - var support; - var doc = document.documentElement; + let support; + const doc = document.documentElement; support = !!(doc.requestFullscreen || doc.mozRequestFullScreen || doc.webkitRequestFullScreen || doc.msRequestFullscreen); if (document.fullscreenEnabled === false || document.mozFullScreenEnabled === false || document.webkitFullscreenEnabled === false || document.msFullscreenEnabled === false) { support = false; } - return (0, _pdfjsLib.shadow)(this, 'supportsFullscreen', support); + return (0, _pdfjsLib.shadow)(this, "supportsFullscreen", support); }, get supportsIntegratedFind() { @@ -851,27 +770,23 @@ var PDFViewerApplication = { return this.externalServices.supportsDocumentFonts; }, - get supportsDocumentColors() { - return this.externalServices.supportsDocumentColors; - }, - get loadingBar() { - var bar = new _ui_utils.ProgressBar('#loadingBar'); - return (0, _pdfjsLib.shadow)(this, 'loadingBar', bar); + const bar = new _ui_utils.ProgressBar("#loadingBar"); + return (0, _pdfjsLib.shadow)(this, "loadingBar", bar); }, get supportedMouseWheelZoomModifierKeys() { return this.externalServices.supportedMouseWheelZoomModifierKeys; }, - initPassiveLoading: function initPassiveLoading() { - throw new Error('Not implemented: initPassiveLoading'); + initPassiveLoading() { + throw new Error("Not implemented: initPassiveLoading"); }, - setTitleUsingUrl: function setTitleUsingUrl() { - var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; + + setTitleUsingUrl(url = "") { this.url = url; - this.baseUrl = url.split('#')[0]; - var title = (0, _ui_utils.getPDFFileNameFromURL)(url, ''); + this.baseUrl = url.split("#")[0]; + let title = (0, _ui_utils.getPDFFileNameFromURL)(url, ""); if (!title) { try { @@ -883,205 +798,170 @@ var PDFViewerApplication = { this.setTitle(title); }, - setTitle: function setTitle(title) { + + setTitle(title) { if (this.isViewerEmbedded) { return; } document.title = title; }, - close: function () { - var _close = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee6() { - var errorWrapper, promise; - return _regenerator["default"].wrap(function _callee6$(_context6) { - while (1) { - switch (_context6.prev = _context6.next) { - case 0: - errorWrapper = this.appConfig.errorWrapper.container; - errorWrapper.setAttribute('hidden', 'true'); - if (this.pdfLoadingTask) { - _context6.next = 4; - break; - } + async close() { + const errorWrapper = this.appConfig.errorWrapper.container; + errorWrapper.setAttribute("hidden", "true"); - return _context6.abrupt("return", undefined); - - case 4: - promise = this.pdfLoadingTask.destroy(); - this.pdfLoadingTask = null; - - if (this.pdfDocument) { - this.pdfDocument = null; - this.pdfThumbnailViewer.setDocument(null); - this.pdfViewer.setDocument(null); - this.pdfLinkService.setDocument(null); - this.pdfDocumentProperties.setDocument(null); - } - - this.store = null; - this.isInitialViewSet = false; - this.downloadComplete = false; - this.url = ''; - this.baseUrl = ''; - this.contentDispositionFilename = null; - this.pdfSidebar.reset(); - this.pdfOutlineViewer.reset(); - this.pdfAttachmentViewer.reset(); - this.findBar.reset(); - this.toolbar.reset(); - this.secondaryToolbar.reset(); - - if (typeof PDFBug !== 'undefined') { - PDFBug.cleanup(); - } - - return _context6.abrupt("return", promise); - - case 21: - case "end": - return _context6.stop(); - } - } - }, _callee6, this); - })); - - function close() { - return _close.apply(this, arguments); + if (!this.pdfLoadingTask) { + return undefined; } - return close; - }(), - open: function () { - var _open = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee7(file, args) { - var _this2 = this; + const promise = this.pdfLoadingTask.destroy(); + this.pdfLoadingTask = null; - var workerParameters, key, parameters, apiParameters, _key, prop, loadingTask; - - return _regenerator["default"].wrap(function _callee7$(_context7) { - while (1) { - switch (_context7.prev = _context7.next) { - case 0: - if (!this.pdfLoadingTask) { - _context7.next = 3; - break; - } - - _context7.next = 3; - return this.close(); - - case 3: - workerParameters = _app_options.AppOptions.getAll(_app_options.OptionKind.WORKER); - - for (key in workerParameters) { - _pdfjsLib.GlobalWorkerOptions[key] = workerParameters[key]; - } - - parameters = Object.create(null); - - if (typeof file === 'string') { - this.setTitleUsingUrl(file); - parameters.url = file; - } else if (file && 'byteLength' in file) { - parameters.data = file; - } else if (file.url && file.originalUrl) { - this.setTitleUsingUrl(file.originalUrl); - parameters.url = file.url; - } - - apiParameters = _app_options.AppOptions.getAll(_app_options.OptionKind.API); - - for (_key in apiParameters) { - parameters[_key] = apiParameters[_key]; - } - - if (args) { - for (prop in args) { - if (prop === 'length') { - this.pdfDocumentProperties.setFileSize(args[prop]); - } - - parameters[prop] = args[prop]; - } - } - - loadingTask = (0, _pdfjsLib.getDocument)(parameters); - this.pdfLoadingTask = loadingTask; - - loadingTask.onPassword = function (updateCallback, reason) { - _this2.passwordPrompt.setUpdateCallback(updateCallback, reason); - - _this2.passwordPrompt.open(); - }; - - loadingTask.onProgress = function (_ref) { - var loaded = _ref.loaded, - total = _ref.total; - - _this2.progress(loaded / total); - }; - - loadingTask.onUnsupportedFeature = this.fallback.bind(this); - return _context7.abrupt("return", loadingTask.promise.then(function (pdfDocument) { - _this2.load(pdfDocument); - }, function (exception) { - if (loadingTask !== _this2.pdfLoadingTask) { - return undefined; - } - - var message = exception && exception.message; - var loadingErrorMessage; - - if (exception instanceof _pdfjsLib.InvalidPDFException) { - loadingErrorMessage = _this2.l10n.get('invalid_file_error', null, 'Invalid or corrupted PDF file.'); - } else if (exception instanceof _pdfjsLib.MissingPDFException) { - loadingErrorMessage = _this2.l10n.get('missing_file_error', null, 'Missing PDF file.'); - } else if (exception instanceof _pdfjsLib.UnexpectedResponseException) { - loadingErrorMessage = _this2.l10n.get('unexpected_response_error', null, 'Unexpected server response.'); - } else { - loadingErrorMessage = _this2.l10n.get('loading_error', null, 'An error occurred while loading the PDF.'); - } - - return loadingErrorMessage.then(function (msg) { - _this2.error(msg, { - message: message - }); - - throw new Error(msg); - }); - })); - - case 16: - case "end": - return _context7.stop(); - } - } - }, _callee7, this); - })); - - function open(_x2, _x3) { - return _open.apply(this, arguments); + if (this.pdfDocument) { + this.pdfDocument = null; + this.pdfThumbnailViewer.setDocument(null); + this.pdfViewer.setDocument(null); + this.pdfLinkService.setDocument(null); + this.pdfDocumentProperties.setDocument(null); } - return open; - }(), - download: function download() { - var _this3 = this; + webViewerResetPermissions(); + this.store = null; + this.isInitialViewSet = false; + this.downloadComplete = false; + this.url = ""; + this.baseUrl = ""; + this.contentDispositionFilename = null; + this.triggerDelayedFallback = null; + this._saveInProgress = false; + this.pdfSidebar.reset(); + this.pdfOutlineViewer.reset(); + this.pdfAttachmentViewer.reset(); + this.pdfLayerViewer.reset(); + if (this.pdfHistory) { + this.pdfHistory.reset(); + } + + if (this.findBar) { + this.findBar.reset(); + } + + this.toolbar.reset(); + this.secondaryToolbar.reset(); + + if (typeof PDFBug !== "undefined") { + PDFBug.cleanup(); + } + + return promise; + }, + + async open(file, args) { + if (this.pdfLoadingTask) { + await this.close(); + } + + const workerParameters = _app_options.AppOptions.getAll(_app_options.OptionKind.WORKER); + + for (const key in workerParameters) { + _pdfjsLib.GlobalWorkerOptions[key] = workerParameters[key]; + } + + const parameters = Object.create(null); + + if (typeof file === "string") { + this.setTitleUsingUrl(file); + parameters.url = file; + } else if (file && "byteLength" in file) { + parameters.data = file; + } else if (file.url && file.originalUrl) { + this.setTitleUsingUrl(file.originalUrl); + parameters.url = file.url; + } + + const apiParameters = _app_options.AppOptions.getAll(_app_options.OptionKind.API); + + for (const key in apiParameters) { + let value = apiParameters[key]; + + if (key === "docBaseUrl" && !value) {} + + parameters[key] = value; + } + + if (args) { + for (const key in args) { + const value = args[key]; + + if (key === "length") { + this.pdfDocumentProperties.setFileSize(value); + } + + parameters[key] = value; + } + } + + const loadingTask = (0, _pdfjsLib.getDocument)(parameters); + this.pdfLoadingTask = loadingTask; + + loadingTask.onPassword = (updateCallback, reason) => { + this.pdfLinkService.externalLinkEnabled = false; + this.passwordPrompt.setUpdateCallback(updateCallback, reason); + this.passwordPrompt.open(); + }; + + loadingTask.onProgress = ({ + loaded, + total + }) => { + this.progress(loaded / total); + }; + + loadingTask.onUnsupportedFeature = this.fallback.bind(this); + return loadingTask.promise.then(pdfDocument => { + this.load(pdfDocument); + }, exception => { + if (loadingTask !== this.pdfLoadingTask) { + return undefined; + } + + const message = exception && exception.message; + let loadingErrorMessage; + + if (exception instanceof _pdfjsLib.InvalidPDFException) { + loadingErrorMessage = this.l10n.get("invalid_file_error", null, "Invalid or corrupted PDF file."); + } else if (exception instanceof _pdfjsLib.MissingPDFException) { + loadingErrorMessage = this.l10n.get("missing_file_error", null, "Missing PDF file."); + } else if (exception instanceof _pdfjsLib.UnexpectedResponseException) { + loadingErrorMessage = this.l10n.get("unexpected_response_error", null, "Unexpected server response."); + } else { + loadingErrorMessage = this.l10n.get("loading_error", null, "An error occurred while loading the PDF."); + } + + return loadingErrorMessage.then(msg => { + this.error(msg, { + message + }); + throw exception; + }); + }); + }, + + download({ + sourceEventType = "download" + } = {}) { function downloadByUrl() { downloadManager.downloadUrl(url, filename); } - var url = this.baseUrl; - var filename = this.contentDispositionFilename || (0, _ui_utils.getPDFFileNameFromURL)(this.url); - var downloadManager = this.downloadManager; + const url = this.baseUrl; + const filename = this.contentDispositionFilename || (0, _ui_utils.getPDFFileNameFromURL)(this.url); + const downloadManager = this.downloadManager; - downloadManager.onerror = function (err) { - _this3.error("PDF failed to download: ".concat(err)); + downloadManager.onerror = err => { + this.error(`PDF failed to download: ${err}`); }; if (!this.pdfDocument || !this.downloadComplete) { @@ -1090,92 +970,167 @@ var PDFViewerApplication = { } this.pdfDocument.getData().then(function (data) { - var blob = new Blob([data], { - type: 'application/pdf' + const blob = new Blob([data], { + type: "application/pdf" }); - downloadManager.download(blob, url, filename); - })["catch"](downloadByUrl); + downloadManager.download(blob, url, filename, sourceEventType); + }).catch(downloadByUrl); }, - fallback: function fallback(featureId) {}, - error: function error(message, moreInfo) { - var moreInfoText = [this.l10n.get('error_version_info', { - version: _pdfjsLib.version || '?', - build: _pdfjsLib.build || '?' - }, 'PDF.js v{{version}} (build: {{build}})')]; + + save({ + sourceEventType = "download" + } = {}) { + if (this._saveInProgress) { + return; + } + + const url = this.baseUrl; + const filename = this.contentDispositionFilename || (0, _ui_utils.getPDFFileNameFromURL)(this.url); + const downloadManager = this.downloadManager; + + downloadManager.onerror = err => { + this.error(`PDF failed to be saved: ${err}`); + }; + + if (!this.pdfDocument || !this.downloadComplete) { + this.download({ + sourceEventType + }); + return; + } + + this._saveInProgress = true; + this.pdfDocument.saveDocument(this.pdfDocument.annotationStorage).then(data => { + const blob = new Blob([data], { + type: "application/pdf" + }); + downloadManager.download(blob, url, filename, sourceEventType); + }).catch(() => { + this.download({ + sourceEventType + }); + }).finally(() => { + this._saveInProgress = false; + }); + }, + + _delayedFallback(featureId) { + this.externalServices.reportTelemetry({ + type: "unsupportedFeature", + featureId + }); + + if (!this.triggerDelayedFallback) { + this.triggerDelayedFallback = () => { + this.fallback(featureId); + this.triggerDelayedFallback = null; + }; + } + }, + + fallback(featureId) { + this.externalServices.reportTelemetry({ + type: "unsupportedFeature", + featureId + }); + + if (this.fellback) { + return; + } + + this.fellback = true; + this.externalServices.fallback({ + featureId, + url: this.baseUrl + }, function response(download) { + if (!download) { + return; + } + + PDFViewerApplication.download({ + sourceEventType: "download" + }); + }); + }, + + error(message, moreInfo) { + const moreInfoText = [this.l10n.get("error_version_info", { + version: _pdfjsLib.version || "?", + build: _pdfjsLib.build || "?" + }, "PDF.js v{{version}} (build: {{build}})")]; if (moreInfo) { - moreInfoText.push(this.l10n.get('error_message', { + moreInfoText.push(this.l10n.get("error_message", { message: moreInfo.message - }, 'Message: {{message}}')); + }, "Message: {{message}}")); if (moreInfo.stack) { - moreInfoText.push(this.l10n.get('error_stack', { + moreInfoText.push(this.l10n.get("error_stack", { stack: moreInfo.stack - }, 'Stack: {{stack}}')); + }, "Stack: {{stack}}")); } else { if (moreInfo.filename) { - moreInfoText.push(this.l10n.get('error_file', { + moreInfoText.push(this.l10n.get("error_file", { file: moreInfo.filename - }, 'File: {{file}}')); + }, "File: {{file}}")); } if (moreInfo.lineNumber) { - moreInfoText.push(this.l10n.get('error_line', { + moreInfoText.push(this.l10n.get("error_line", { line: moreInfo.lineNumber - }, 'Line: {{line}}')); + }, "Line: {{line}}")); } } } - var errorWrapperConfig = this.appConfig.errorWrapper; - var errorWrapper = errorWrapperConfig.container; - errorWrapper.removeAttribute('hidden'); - var errorMessage = errorWrapperConfig.errorMessage; + const errorWrapperConfig = this.appConfig.errorWrapper; + const errorWrapper = errorWrapperConfig.container; + errorWrapper.removeAttribute("hidden"); + const errorMessage = errorWrapperConfig.errorMessage; errorMessage.textContent = message; - var closeButton = errorWrapperConfig.closeButton; + const closeButton = errorWrapperConfig.closeButton; closeButton.onclick = function () { - errorWrapper.setAttribute('hidden', 'true'); + errorWrapper.setAttribute("hidden", "true"); }; - var errorMoreInfo = errorWrapperConfig.errorMoreInfo; - var moreInfoButton = errorWrapperConfig.moreInfoButton; - var lessInfoButton = errorWrapperConfig.lessInfoButton; + const errorMoreInfo = errorWrapperConfig.errorMoreInfo; + const moreInfoButton = errorWrapperConfig.moreInfoButton; + const lessInfoButton = errorWrapperConfig.lessInfoButton; moreInfoButton.onclick = function () { - errorMoreInfo.removeAttribute('hidden'); - moreInfoButton.setAttribute('hidden', 'true'); - lessInfoButton.removeAttribute('hidden'); - errorMoreInfo.style.height = errorMoreInfo.scrollHeight + 'px'; + errorMoreInfo.removeAttribute("hidden"); + moreInfoButton.setAttribute("hidden", "true"); + lessInfoButton.removeAttribute("hidden"); + errorMoreInfo.style.height = errorMoreInfo.scrollHeight + "px"; }; lessInfoButton.onclick = function () { - errorMoreInfo.setAttribute('hidden', 'true'); - moreInfoButton.removeAttribute('hidden'); - lessInfoButton.setAttribute('hidden', 'true'); + errorMoreInfo.setAttribute("hidden", "true"); + moreInfoButton.removeAttribute("hidden"); + lessInfoButton.setAttribute("hidden", "true"); }; moreInfoButton.oncontextmenu = _ui_utils.noContextMenuHandler; lessInfoButton.oncontextmenu = _ui_utils.noContextMenuHandler; closeButton.oncontextmenu = _ui_utils.noContextMenuHandler; - moreInfoButton.removeAttribute('hidden'); - lessInfoButton.setAttribute('hidden', 'true'); - Promise.all(moreInfoText).then(function (parts) { - errorMoreInfo.value = parts.join('\n'); + moreInfoButton.removeAttribute("hidden"); + lessInfoButton.setAttribute("hidden", "true"); + Promise.all(moreInfoText).then(parts => { + errorMoreInfo.value = parts.join("\n"); }); }, - progress: function progress(level) { - var _this4 = this; + progress(level) { if (this.downloadComplete) { return; } - var percent = Math.round(level * 100); + const percent = Math.round(level * 100); if (percent > this.loadingBar.percent || isNaN(percent)) { this.loadingBar.percent = percent; - var disableAutoFetch = this.pdfDocument ? this.pdfDocument.loadingParams['disableAutoFetch'] : _app_options.AppOptions.get('disableAutoFetch'); + const disableAutoFetch = this.pdfDocument ? this.pdfDocument.loadingParams.disableAutoFetch : _app_options.AppOptions.get("disableAutoFetch"); if (disableAutoFetch && percent) { if (this.disableAutoFetchLoadingBarTimeout) { @@ -1184,296 +1139,359 @@ var PDFViewerApplication = { } this.loadingBar.show(); - this.disableAutoFetchLoadingBarTimeout = setTimeout(function () { - _this4.loadingBar.hide(); - - _this4.disableAutoFetchLoadingBarTimeout = null; + this.disableAutoFetchLoadingBarTimeout = setTimeout(() => { + this.loadingBar.hide(); + this.disableAutoFetchLoadingBarTimeout = null; }, DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT); } } }, - load: function load(pdfDocument) { - var _this5 = this; + load(pdfDocument) { this.pdfDocument = pdfDocument; - pdfDocument.getDownloadInfo().then(function () { - _this5.downloadComplete = true; - - _this5.loadingBar.hide(); - - firstPagePromise.then(function () { - _this5.eventBus.dispatch('documentloaded', { - source: _this5 + pdfDocument.getDownloadInfo().then(() => { + this.downloadComplete = true; + this.loadingBar.hide(); + firstPagePromise.then(() => { + this.eventBus.dispatch("documentloaded", { + source: this }); }); }); - var pageLayoutPromise = pdfDocument.getPageLayout()["catch"](function () {}); - var pageModePromise = pdfDocument.getPageMode()["catch"](function () {}); - var openActionDestPromise = pdfDocument.getOpenActionDestination()["catch"](function () {}); + const pageLayoutPromise = pdfDocument.getPageLayout().catch(function () {}); + const pageModePromise = pdfDocument.getPageMode().catch(function () {}); + const openActionPromise = pdfDocument.getOpenAction().catch(function () {}); this.toolbar.setPagesCount(pdfDocument.numPages, false); this.secondaryToolbar.setPagesCount(pdfDocument.numPages); - var store = this.store = new _view_history.ViewHistory(pdfDocument.fingerprint); - var baseDocumentUrl; + let baseDocumentUrl; baseDocumentUrl = null; this.pdfLinkService.setDocument(pdfDocument, baseDocumentUrl); this.pdfDocumentProperties.setDocument(pdfDocument, this.url); - var pdfViewer = this.pdfViewer; + const annotationStorage = pdfDocument.annotationStorage; + + annotationStorage.onSetModified = function () { + window.addEventListener("beforeunload", beforeUnload); + }; + + annotationStorage.onResetModified = function () { + window.removeEventListener("beforeunload", beforeUnload); + }; + + const pdfViewer = this.pdfViewer; pdfViewer.setDocument(pdfDocument); - var firstPagePromise = pdfViewer.firstPagePromise; - var pagesPromise = pdfViewer.pagesPromise; - var onePageRendered = pdfViewer.onePageRendered; - var pdfThumbnailViewer = this.pdfThumbnailViewer; + const { + firstPagePromise, + onePageRendered, + pagesPromise + } = pdfViewer; + const pdfThumbnailViewer = this.pdfThumbnailViewer; pdfThumbnailViewer.setDocument(pdfDocument); - firstPagePromise.then(function (pdfPage) { - _this5.loadingBar.setWidth(_this5.appConfig.viewerContainer); + const storedPromise = (this.store = new _view_history.ViewHistory(pdfDocument.fingerprint)).getMultiple({ + page: null, + zoom: _ui_utils.DEFAULT_SCALE_VALUE, + scrollLeft: "0", + scrollTop: "0", + rotation: null, + sidebarView: _pdf_sidebar.SidebarView.UNKNOWN, + scrollMode: _ui_utils.ScrollMode.UNKNOWN, + spreadMode: _ui_utils.SpreadMode.UNKNOWN + }).catch(() => { + return Object.create(null); + }); + firstPagePromise.then(pdfPage => { + this.loadingBar.setWidth(this.appConfig.viewerContainer); + Promise.all([_ui_utils.animationStarted, storedPromise, pageLayoutPromise, pageModePromise, openActionPromise]).then(async ([timeStamp, stored, pageLayout, pageMode, openAction]) => { + const viewOnLoad = _app_options.AppOptions.get("viewOnLoad"); - var storePromise = store.getMultiple({ - page: null, - zoom: _ui_utils.DEFAULT_SCALE_VALUE, - scrollLeft: '0', - scrollTop: '0', - rotation: null, - sidebarView: _pdf_sidebar.SidebarView.UNKNOWN, - scrollMode: _ui_utils.ScrollMode.UNKNOWN, - spreadMode: _ui_utils.SpreadMode.UNKNOWN - })["catch"](function () {}); - Promise.all([storePromise, pageLayoutPromise, pageModePromise, openActionDestPromise]).then( - /*#__PURE__*/ - function () { - var _ref3 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee8(_ref2) { - var _ref4, _ref4$, values, pageLayout, pageMode, openActionDest, viewOnLoad, initialBookmark, zoom, hash, rotation, sidebarView, scrollMode, spreadMode; + this._initializePdfHistory({ + fingerprint: pdfDocument.fingerprint, + viewOnLoad, + initialDest: openAction && openAction.dest + }); - return _regenerator["default"].wrap(function _callee8$(_context8) { - while (1) { - switch (_context8.prev = _context8.next) { - case 0: - _ref4 = _slicedToArray(_ref2, 4), _ref4$ = _ref4[0], values = _ref4$ === void 0 ? {} : _ref4$, pageLayout = _ref4[1], pageMode = _ref4[2], openActionDest = _ref4[3]; - viewOnLoad = _app_options.AppOptions.get('viewOnLoad'); + const initialBookmark = this.initialBookmark; - _this5._initializePdfHistory({ - fingerprint: pdfDocument.fingerprint, - viewOnLoad: viewOnLoad, - initialDest: openActionDest - }); + const zoom = _app_options.AppOptions.get("defaultZoomValue"); - initialBookmark = _this5.initialBookmark; - zoom = _app_options.AppOptions.get('defaultZoomValue'); - hash = zoom ? "zoom=".concat(zoom) : null; - rotation = null; - sidebarView = _app_options.AppOptions.get('sidebarViewOnLoad'); - scrollMode = _app_options.AppOptions.get('scrollModeOnLoad'); - spreadMode = _app_options.AppOptions.get('spreadModeOnLoad'); + let hash = zoom ? `zoom=${zoom}` : null; + let rotation = null; - if (values.page && viewOnLoad !== ViewOnLoad.INITIAL) { - hash = "page=".concat(values.page, "&zoom=").concat(zoom || values.zoom, ",") + "".concat(values.scrollLeft, ",").concat(values.scrollTop); - rotation = parseInt(values.rotation, 10); + let sidebarView = _app_options.AppOptions.get("sidebarViewOnLoad"); - if (sidebarView === _pdf_sidebar.SidebarView.UNKNOWN) { - sidebarView = values.sidebarView | 0; - } + let scrollMode = _app_options.AppOptions.get("scrollModeOnLoad"); - if (scrollMode === _ui_utils.ScrollMode.UNKNOWN) { - scrollMode = values.scrollMode | 0; - } + let spreadMode = _app_options.AppOptions.get("spreadModeOnLoad"); - if (spreadMode === _ui_utils.SpreadMode.UNKNOWN) { - spreadMode = values.spreadMode | 0; - } - } + if (stored.page && viewOnLoad !== ViewOnLoad.INITIAL) { + hash = `page=${stored.page}&zoom=${zoom || stored.zoom},` + `${stored.scrollLeft},${stored.scrollTop}`; + rotation = parseInt(stored.rotation, 10); - if (pageMode && sidebarView === _pdf_sidebar.SidebarView.UNKNOWN) { - sidebarView = apiPageModeToSidebarView(pageMode); - } + if (sidebarView === _pdf_sidebar.SidebarView.UNKNOWN) { + sidebarView = stored.sidebarView | 0; + } - if (pageLayout && spreadMode === _ui_utils.SpreadMode.UNKNOWN) { - spreadMode = apiPageLayoutToSpreadMode(pageLayout); - } + if (scrollMode === _ui_utils.ScrollMode.UNKNOWN) { + scrollMode = stored.scrollMode | 0; + } - _this5.setInitialView(hash, { - rotation: rotation, - sidebarView: sidebarView, - scrollMode: scrollMode, - spreadMode: spreadMode - }); + if (spreadMode === _ui_utils.SpreadMode.UNKNOWN) { + spreadMode = stored.spreadMode | 0; + } + } - _this5.eventBus.dispatch('documentinit', { - source: _this5 - }); + if (pageMode && sidebarView === _pdf_sidebar.SidebarView.UNKNOWN) { + sidebarView = apiPageModeToSidebarView(pageMode); + } - if (!_this5.isViewerEmbedded) { - pdfViewer.focus(); - } + if (pageLayout && spreadMode === _ui_utils.SpreadMode.UNKNOWN) { + spreadMode = apiPageLayoutToSpreadMode(pageLayout); + } - _context8.next = 18; - return Promise.race([pagesPromise, new Promise(function (resolve) { - setTimeout(resolve, FORCE_PAGES_LOADED_TIMEOUT); - })]); + this.setInitialView(hash, { + rotation, + sidebarView, + scrollMode, + spreadMode + }); + this.eventBus.dispatch("documentinit", { + source: this + }); - case 18: - if (!(!initialBookmark && !hash)) { - _context8.next = 20; - break; - } + if (!this.isViewerEmbedded) { + pdfViewer.focus(); + } - return _context8.abrupt("return"); + this._initializePermissions(pdfDocument); - case 20: - if (!pdfViewer.hasEqualPageSizes) { - _context8.next = 22; - break; - } + await Promise.race([pagesPromise, new Promise(resolve => { + setTimeout(resolve, FORCE_PAGES_LOADED_TIMEOUT); + })]); - return _context8.abrupt("return"); + if (!initialBookmark && !hash) { + return; + } - case 22: - _this5.initialBookmark = initialBookmark; - pdfViewer.currentScaleValue = pdfViewer.currentScaleValue; + if (pdfViewer.hasEqualPageSizes) { + return; + } - _this5.setInitialView(hash); - - case 25: - case "end": - return _context8.stop(); - } - } - }, _callee8); - })); - - return function (_x4) { - return _ref3.apply(this, arguments); - }; - }())["catch"](function () { - _this5.setInitialView(); + this.initialBookmark = initialBookmark; + pdfViewer.currentScaleValue = pdfViewer.currentScaleValue; + this.setInitialView(hash); + }).catch(() => { + this.setInitialView(); }).then(function () { pdfViewer.update(); }); }); - pdfDocument.getPageLabels().then(function (labels) { - if (!labels || _app_options.AppOptions.get('disablePageLabels')) { - return; - } - - var i = 0, - numLabels = labels.length; - - if (numLabels !== _this5.pagesCount) { - console.error('The number of Page Labels does not match ' + 'the number of pages in the document.'); - return; - } - - while (i < numLabels && labels[i] === (i + 1).toString()) { - i++; - } - - if (i === numLabels) { - return; - } - - pdfViewer.setPageLabels(labels); - pdfThumbnailViewer.setPageLabels(labels); - - _this5.toolbar.setPagesCount(pdfDocument.numPages, true); - - _this5.toolbar.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel); + pagesPromise.then(() => { + this._initializeAutoPrint(pdfDocument, openActionPromise); + }); + onePageRendered.then(() => { + pdfDocument.getOutline().then(outline => { + this.pdfOutlineViewer.render({ + outline + }); + }); + pdfDocument.getAttachments().then(attachments => { + this.pdfAttachmentViewer.render({ + attachments + }); + }); + pdfViewer.optionalContentConfigPromise.then(optionalContentConfig => { + this.pdfLayerViewer.render({ + optionalContentConfig, + pdfDocument + }); + }); }); - pagesPromise.then(function () { - if (!_this5.supportsPrinting) { - return; - } - pdfDocument.getJavaScript().then(function (javaScript) { - if (!javaScript) { - return; + this._initializePageLabels(pdfDocument); + + this._initializeMetadata(pdfDocument); + }, + + async _initializeAutoPrint(pdfDocument, openActionPromise) { + const [openAction, javaScript] = await Promise.all([openActionPromise, pdfDocument.getJavaScript()]); + + if (pdfDocument !== this.pdfDocument) { + return; + } + + let triggerAutoPrint = false; + + if (openAction && openAction.action === "Print") { + triggerAutoPrint = true; + } + + if (javaScript) { + javaScript.some(js => { + if (!js) { + return false; } - javaScript.some(function (js) { - if (!js) { - return false; - } + console.warn("Warning: JavaScript is not supported"); - console.warn('Warning: JavaScript is not supported'); + this._delayedFallback(_pdfjsLib.UNSUPPORTED_FEATURES.javaScript); - _this5.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.javaScript); + return true; + }); - return true; - }); - var regex = /\bprint\s*\(/; - - for (var i = 0, ii = javaScript.length; i < ii; i++) { - var js = javaScript[i]; - - if (js && regex.test(js)) { - setTimeout(function () { - window.print(); - }); - return; + if (!triggerAutoPrint) { + for (const js of javaScript) { + if (js && _ui_utils.AutoPrintRegExp.test(js)) { + triggerAutoPrint = true; + break; } } - }); - }); - Promise.all([onePageRendered, _ui_utils.animationStarted]).then(function () { - pdfDocument.getOutline().then(function (outline) { - _this5.pdfOutlineViewer.render({ - outline: outline - }); - }); - pdfDocument.getAttachments().then(function (attachments) { - _this5.pdfAttachmentViewer.render({ - attachments: attachments - }); - }); - }); - pdfDocument.getMetadata().then(function (_ref5) { - var info = _ref5.info, - metadata = _ref5.metadata, - contentDispositionFilename = _ref5.contentDispositionFilename; - _this5.documentInfo = info; - _this5.metadata = metadata; - _this5.contentDispositionFilename = contentDispositionFilename; - console.log('PDF ' + pdfDocument.fingerprint + ' [' + info.PDFFormatVersion + ' ' + (info.Producer || '-').trim() + ' / ' + (info.Creator || '-').trim() + ']' + ' (PDF.js: ' + (_pdfjsLib.version || '-') + (_app_options.AppOptions.get('enableWebGL') ? ' [WebGL]' : '') + ')'); - var pdfTitle; + } + } - if (metadata && metadata.has('dc:title')) { - var title = metadata.get('dc:title'); + if (!this.supportsPrinting) { + return; + } - if (title !== 'Untitled') { - pdfTitle = title; + if (triggerAutoPrint) { + setTimeout(function () { + window.print(); + }); + } + }, + + async _initializeMetadata(pdfDocument) { + const { + info, + metadata, + contentDispositionFilename + } = await pdfDocument.getMetadata(); + + if (pdfDocument !== this.pdfDocument) { + return; + } + + this.documentInfo = info; + this.metadata = metadata; + this.contentDispositionFilename = contentDispositionFilename; + console.log(`PDF ${pdfDocument.fingerprint} [${info.PDFFormatVersion} ` + `${(info.Producer || "-").trim()} / ${(info.Creator || "-").trim()}] ` + `(PDF.js: ${_pdfjsLib.version || "-"}` + `${this.pdfViewer.enableWebGL ? " [WebGL]" : ""})`); + let pdfTitle; + const infoTitle = info && info.Title; + + if (infoTitle) { + pdfTitle = infoTitle; + } + + const metadataTitle = metadata && metadata.get("dc:title"); + + if (metadataTitle) { + if (metadataTitle !== "Untitled" && !/[\uFFF0-\uFFFF]/g.test(metadataTitle)) { + pdfTitle = metadataTitle; + } + } + + if (pdfTitle) { + this.setTitle(`${pdfTitle} - ${contentDispositionFilename || document.title}`); + } else if (contentDispositionFilename) { + this.setTitle(contentDispositionFilename); + } + + if (info.IsXFAPresent && !info.IsAcroFormPresent) { + console.warn("Warning: XFA is not supported"); + + this._delayedFallback(_pdfjsLib.UNSUPPORTED_FEATURES.forms); + } else if ((info.IsAcroFormPresent || info.IsXFAPresent) && !this.pdfViewer.renderInteractiveForms) { + console.warn("Warning: Interactive form support is not enabled"); + + this._delayedFallback(_pdfjsLib.UNSUPPORTED_FEATURES.forms); + } + + let versionId = "other"; + + if (KNOWN_VERSIONS.includes(info.PDFFormatVersion)) { + versionId = `v${info.PDFFormatVersion.replace(".", "_")}`; + } + + let generatorId = "other"; + + if (info.Producer) { + const producer = info.Producer.toLowerCase(); + KNOWN_GENERATORS.some(function (generator) { + if (!producer.includes(generator)) { + return false; } - } - if (!pdfTitle && info && info['Title']) { - pdfTitle = info['Title']; - } + generatorId = generator.replace(/[ .\-]/g, "_"); + return true; + }); + } - if (pdfTitle) { - _this5.setTitle("".concat(pdfTitle, " - ").concat(contentDispositionFilename || document.title)); - } else if (contentDispositionFilename) { - _this5.setTitle(contentDispositionFilename); - } + let formType = null; - if (info.IsAcroFormPresent) { - console.warn('Warning: AcroForm/XFA is not supported'); + if (info.IsXFAPresent) { + formType = "xfa"; + } else if (info.IsAcroFormPresent) { + formType = "acroform"; + } - _this5.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.forms); - } + this.externalServices.reportTelemetry({ + type: "documentInfo", + version: versionId, + generator: generatorId, + formType }); }, - _initializePdfHistory: function _initializePdfHistory(_ref6) { - var fingerprint = _ref6.fingerprint, - viewOnLoad = _ref6.viewOnLoad, - _ref6$initialDest = _ref6.initialDest, - initialDest = _ref6$initialDest === void 0 ? null : _ref6$initialDest; - if (_app_options.AppOptions.get('disableHistory') || this.isViewerEmbedded) { + async _initializePageLabels(pdfDocument) { + const labels = await pdfDocument.getPageLabels(); + + if (pdfDocument !== this.pdfDocument) { + return; + } + + if (!labels || _app_options.AppOptions.get("disablePageLabels")) { + return; + } + + const numLabels = labels.length; + + if (numLabels !== this.pagesCount) { + console.error("The number of Page Labels does not match the number of pages in the document."); + return; + } + + let i = 0; + + while (i < numLabels && labels[i] === (i + 1).toString()) { + i++; + } + + if (i === numLabels) { + return; + } + + const { + pdfViewer, + pdfThumbnailViewer, + toolbar + } = this; + pdfViewer.setPageLabels(labels); + pdfThumbnailViewer.setPageLabels(labels); + toolbar.setPagesCount(numLabels, true); + toolbar.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel); + }, + + _initializePdfHistory({ + fingerprint, + viewOnLoad, + initialDest = null + }) { + if (this.isViewerEmbedded || _app_options.AppOptions.get("disableHistory")) { return; } this.pdfHistory.initialize({ - fingerprint: fingerprint, + fingerprint, resetHistory: viewOnLoad === ViewOnLoad.INITIAL, - updateUrl: _app_options.AppOptions.get('historyUpdateUrl') + updateUrl: _app_options.AppOptions.get("historyUpdateUrl") }); if (this.pdfHistory.initialBookmark) { @@ -1489,28 +1507,42 @@ var PDFViewerApplication = { }); } }, - setInitialView: function setInitialView(storedHash) { - var _this6 = this; - var _ref7 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - rotation = _ref7.rotation, - sidebarView = _ref7.sidebarView, - scrollMode = _ref7.scrollMode, - spreadMode = _ref7.spreadMode; + async _initializePermissions(pdfDocument) { + const permissions = await pdfDocument.getPermissions(); - var setRotation = function setRotation(angle) { + if (pdfDocument !== this.pdfDocument) { + return; + } + + if (!permissions || !_app_options.AppOptions.get("enablePermissions")) { + return; + } + + if (!permissions.includes(_pdfjsLib.PermissionFlag.COPY)) { + this.appConfig.viewerContainer.classList.add(ENABLE_PERMISSIONS_CLASS); + } + }, + + setInitialView(storedHash, { + rotation, + sidebarView, + scrollMode, + spreadMode + } = {}) { + const setRotation = angle => { if ((0, _ui_utils.isValidRotation)(angle)) { - _this6.pdfViewer.pagesRotation = angle; + this.pdfViewer.pagesRotation = angle; } }; - var setViewerModes = function setViewerModes(scroll, spread) { + const setViewerModes = (scroll, spread) => { if ((0, _ui_utils.isValidScrollMode)(scroll)) { - _this6.pdfViewer.scrollMode = scroll; + this.pdfViewer.scrollMode = scroll; } if ((0, _ui_utils.isValidSpreadMode)(spread)) { - _this6.pdfViewer.spreadMode = spread; + this.pdfViewer.spreadMode = spread; } }; @@ -1535,7 +1567,8 @@ var PDFViewerApplication = { this.pdfViewer.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; } }, - cleanup: function cleanup() { + + cleanup() { if (!this.pdfDocument) { return; } @@ -1547,237 +1580,369 @@ var PDFViewerApplication = { this.pdfDocument.cleanup(); } }, - forceRendering: function forceRendering() { + + forceRendering() { this.pdfRenderingQueue.printing = this.printing; this.pdfRenderingQueue.isThumbnailViewEnabled = this.pdfSidebar.isThumbnailViewVisible; this.pdfRenderingQueue.renderHighestPriority(); }, - beforePrint: function beforePrint() { - var _this7 = this; + beforePrint() { if (this.printService) { return; } if (!this.supportsPrinting) { - this.l10n.get('printing_not_supported', null, 'Warning: Printing is not fully supported by ' + 'this browser.').then(function (printMessage) { - _this7.error(printMessage); + this.l10n.get("printing_not_supported", null, "Warning: Printing is not fully supported by this browser.").then(printMessage => { + this.error(printMessage); }); return; } if (!this.pdfViewer.pageViewsReady) { - this.l10n.get('printing_not_ready', null, 'Warning: The PDF is not fully loaded for printing.').then(function (notReadyMessage) { + this.l10n.get("printing_not_ready", null, "Warning: The PDF is not fully loaded for printing.").then(notReadyMessage => { window.alert(notReadyMessage); }); return; } - var pagesOverview = this.pdfViewer.getPagesOverview(); - var printContainer = this.appConfig.printContainer; - var printService = PDFPrintServiceFactory.instance.createPrintService(this.pdfDocument, pagesOverview, printContainer, this.l10n); + const pagesOverview = this.pdfViewer.getPagesOverview(); + const printContainer = this.appConfig.printContainer; + + const printResolution = _app_options.AppOptions.get("printResolution"); + + const optionalContentConfigPromise = this.pdfViewer.optionalContentConfigPromise; + const printService = PDFPrintServiceFactory.instance.createPrintService(this.pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, this.l10n); this.printService = printService; this.forceRendering(); printService.layout(); + this.externalServices.reportTelemetry({ + type: "print" + }); }, - afterPrint: function pdfViewSetupAfterPrint() { + + afterPrint() { if (this.printService) { this.printService.destroy(); this.printService = null; + + if (this.pdfDocument) { + this.pdfDocument.annotationStorage.resetModified(); + } } this.forceRendering(); }, - rotatePages: function rotatePages(delta) { + + rotatePages(delta) { if (!this.pdfDocument) { return; } - var newRotation = (this.pdfViewer.pagesRotation + 360 + delta) % 360; + const newRotation = (this.pdfViewer.pagesRotation + 360 + delta) % 360; this.pdfViewer.pagesRotation = newRotation; }, - requestPresentationMode: function requestPresentationMode() { + + requestPresentationMode() { if (!this.pdfPresentationMode) { return; } this.pdfPresentationMode.request(); }, - bindEvents: function bindEvents() { - var eventBus = this.eventBus, - _boundEvents = this._boundEvents; + + bindEvents() { + const { + eventBus, + _boundEvents + } = this; _boundEvents.beforePrint = this.beforePrint.bind(this); _boundEvents.afterPrint = this.afterPrint.bind(this); - eventBus.on('resize', webViewerResize); - eventBus.on('hashchange', webViewerHashchange); - eventBus.on('beforeprint', _boundEvents.beforePrint); - eventBus.on('afterprint', _boundEvents.afterPrint); - eventBus.on('pagerendered', webViewerPageRendered); - eventBus.on('textlayerrendered', webViewerTextLayerRendered); - eventBus.on('updateviewarea', webViewerUpdateViewarea); - eventBus.on('pagechanging', webViewerPageChanging); - eventBus.on('scalechanging', webViewerScaleChanging); - eventBus.on('rotationchanging', webViewerRotationChanging); - eventBus.on('sidebarviewchanged', webViewerSidebarViewChanged); - eventBus.on('pagemode', webViewerPageMode); - eventBus.on('namedaction', webViewerNamedAction); - eventBus.on('presentationmodechanged', webViewerPresentationModeChanged); - eventBus.on('presentationmode', webViewerPresentationMode); - eventBus.on('openfile', webViewerOpenFile); - eventBus.on('print', webViewerPrint); - eventBus.on('download', webViewerDownload); - eventBus.on('firstpage', webViewerFirstPage); - eventBus.on('lastpage', webViewerLastPage); - eventBus.on('nextpage', webViewerNextPage); - eventBus.on('previouspage', webViewerPreviousPage); - eventBus.on('zoomin', webViewerZoomIn); - eventBus.on('zoomout', webViewerZoomOut); - eventBus.on('zoomreset', webViewerZoomReset); - eventBus.on('pagenumberchanged', webViewerPageNumberChanged); - eventBus.on('scalechanged', webViewerScaleChanged); - eventBus.on('rotatecw', webViewerRotateCw); - eventBus.on('rotateccw', webViewerRotateCcw); - eventBus.on('switchscrollmode', webViewerSwitchScrollMode); - eventBus.on('scrollmodechanged', webViewerScrollModeChanged); - eventBus.on('switchspreadmode', webViewerSwitchSpreadMode); - eventBus.on('spreadmodechanged', webViewerSpreadModeChanged); - eventBus.on('documentproperties', webViewerDocumentProperties); - eventBus.on('find', webViewerFind); - eventBus.on('findfromurlhash', webViewerFindFromUrlHash); - eventBus.on('updatefindmatchescount', webViewerUpdateFindMatchesCount); - eventBus.on('updatefindcontrolstate', webViewerUpdateFindControlState); - eventBus.on('fileinputchange', webViewerFileInputChange); - }, - bindWindowEvents: function bindWindowEvents() { - var eventBus = this.eventBus, - _boundEvents = this._boundEvents; - _boundEvents.windowResize = function () { - eventBus.dispatch('resize', { + eventBus._on("resize", webViewerResize); + + eventBus._on("hashchange", webViewerHashchange); + + eventBus._on("beforeprint", _boundEvents.beforePrint); + + eventBus._on("afterprint", _boundEvents.afterPrint); + + eventBus._on("pagerendered", webViewerPageRendered); + + eventBus._on("updateviewarea", webViewerUpdateViewarea); + + eventBus._on("pagechanging", webViewerPageChanging); + + eventBus._on("scalechanging", webViewerScaleChanging); + + eventBus._on("rotationchanging", webViewerRotationChanging); + + eventBus._on("sidebarviewchanged", webViewerSidebarViewChanged); + + eventBus._on("pagemode", webViewerPageMode); + + eventBus._on("namedaction", webViewerNamedAction); + + eventBus._on("presentationmodechanged", webViewerPresentationModeChanged); + + eventBus._on("presentationmode", webViewerPresentationMode); + + eventBus._on("print", webViewerPrint); + + eventBus._on("download", webViewerDownload); + + eventBus._on("save", webViewerSave); + + eventBus._on("firstpage", webViewerFirstPage); + + eventBus._on("lastpage", webViewerLastPage); + + eventBus._on("nextpage", webViewerNextPage); + + eventBus._on("previouspage", webViewerPreviousPage); + + eventBus._on("zoomin", webViewerZoomIn); + + eventBus._on("zoomout", webViewerZoomOut); + + eventBus._on("zoomreset", webViewerZoomReset); + + eventBus._on("pagenumberchanged", webViewerPageNumberChanged); + + eventBus._on("scalechanged", webViewerScaleChanged); + + eventBus._on("rotatecw", webViewerRotateCw); + + eventBus._on("rotateccw", webViewerRotateCcw); + + eventBus._on("optionalcontentconfig", webViewerOptionalContentConfig); + + eventBus._on("switchscrollmode", webViewerSwitchScrollMode); + + eventBus._on("scrollmodechanged", webViewerScrollModeChanged); + + eventBus._on("switchspreadmode", webViewerSwitchSpreadMode); + + eventBus._on("spreadmodechanged", webViewerSpreadModeChanged); + + eventBus._on("documentproperties", webViewerDocumentProperties); + + eventBus._on("find", webViewerFind); + + eventBus._on("findfromurlhash", webViewerFindFromUrlHash); + + eventBus._on("updatefindmatchescount", webViewerUpdateFindMatchesCount); + + eventBus._on("updatefindcontrolstate", webViewerUpdateFindControlState); + + eventBus._on("fileinputchange", webViewerFileInputChange); + + eventBus._on("openfile", webViewerOpenFile); + }, + + bindWindowEvents() { + const { + eventBus, + _boundEvents + } = this; + + _boundEvents.windowResize = () => { + eventBus.dispatch("resize", { source: window }); }; - _boundEvents.windowHashChange = function () { - eventBus.dispatch('hashchange', { + _boundEvents.windowHashChange = () => { + eventBus.dispatch("hashchange", { source: window, hash: document.location.hash.substring(1) }); }; - _boundEvents.windowBeforePrint = function () { - eventBus.dispatch('beforeprint', { + _boundEvents.windowBeforePrint = () => { + eventBus.dispatch("beforeprint", { source: window }); }; - _boundEvents.windowAfterPrint = function () { - eventBus.dispatch('afterprint', { + _boundEvents.windowAfterPrint = () => { + eventBus.dispatch("afterprint", { source: window }); }; - window.addEventListener('visibilitychange', webViewerVisibilityChange); - window.addEventListener('wheel', webViewerWheel, { + window.addEventListener("visibilitychange", webViewerVisibilityChange); + window.addEventListener("wheel", webViewerWheel, { passive: false }); - window.addEventListener('click', webViewerClick); - window.addEventListener('keydown', webViewerKeyDown); - window.addEventListener('resize', _boundEvents.windowResize); - window.addEventListener('hashchange', _boundEvents.windowHashChange); - window.addEventListener('beforeprint', _boundEvents.windowBeforePrint); - window.addEventListener('afterprint', _boundEvents.windowAfterPrint); + window.addEventListener("touchstart", webViewerTouchStart, { + passive: false + }); + window.addEventListener("click", webViewerClick); + window.addEventListener("keydown", webViewerKeyDown); + window.addEventListener("keyup", webViewerKeyUp); + window.addEventListener("resize", _boundEvents.windowResize); + window.addEventListener("hashchange", _boundEvents.windowHashChange); + window.addEventListener("beforeprint", _boundEvents.windowBeforePrint); + window.addEventListener("afterprint", _boundEvents.windowAfterPrint); }, - unbindEvents: function unbindEvents() { - var eventBus = this.eventBus, - _boundEvents = this._boundEvents; - eventBus.off('resize', webViewerResize); - eventBus.off('hashchange', webViewerHashchange); - eventBus.off('beforeprint', _boundEvents.beforePrint); - eventBus.off('afterprint', _boundEvents.afterPrint); - eventBus.off('pagerendered', webViewerPageRendered); - eventBus.off('textlayerrendered', webViewerTextLayerRendered); - eventBus.off('updateviewarea', webViewerUpdateViewarea); - eventBus.off('pagechanging', webViewerPageChanging); - eventBus.off('scalechanging', webViewerScaleChanging); - eventBus.off('rotationchanging', webViewerRotationChanging); - eventBus.off('sidebarviewchanged', webViewerSidebarViewChanged); - eventBus.off('pagemode', webViewerPageMode); - eventBus.off('namedaction', webViewerNamedAction); - eventBus.off('presentationmodechanged', webViewerPresentationModeChanged); - eventBus.off('presentationmode', webViewerPresentationMode); - eventBus.off('openfile', webViewerOpenFile); - eventBus.off('print', webViewerPrint); - eventBus.off('download', webViewerDownload); - eventBus.off('firstpage', webViewerFirstPage); - eventBus.off('lastpage', webViewerLastPage); - eventBus.off('nextpage', webViewerNextPage); - eventBus.off('previouspage', webViewerPreviousPage); - eventBus.off('zoomin', webViewerZoomIn); - eventBus.off('zoomout', webViewerZoomOut); - eventBus.off('zoomreset', webViewerZoomReset); - eventBus.off('pagenumberchanged', webViewerPageNumberChanged); - eventBus.off('scalechanged', webViewerScaleChanged); - eventBus.off('rotatecw', webViewerRotateCw); - eventBus.off('rotateccw', webViewerRotateCcw); - eventBus.off('switchscrollmode', webViewerSwitchScrollMode); - eventBus.off('scrollmodechanged', webViewerScrollModeChanged); - eventBus.off('switchspreadmode', webViewerSwitchSpreadMode); - eventBus.off('spreadmodechanged', webViewerSpreadModeChanged); - eventBus.off('documentproperties', webViewerDocumentProperties); - eventBus.off('find', webViewerFind); - eventBus.off('findfromurlhash', webViewerFindFromUrlHash); - eventBus.off('updatefindmatchescount', webViewerUpdateFindMatchesCount); - eventBus.off('updatefindcontrolstate', webViewerUpdateFindControlState); - eventBus.off('fileinputchange', webViewerFileInputChange); + + unbindEvents() { + const { + eventBus, + _boundEvents + } = this; + + eventBus._off("resize", webViewerResize); + + eventBus._off("hashchange", webViewerHashchange); + + eventBus._off("beforeprint", _boundEvents.beforePrint); + + eventBus._off("afterprint", _boundEvents.afterPrint); + + eventBus._off("pagerendered", webViewerPageRendered); + + eventBus._off("updateviewarea", webViewerUpdateViewarea); + + eventBus._off("pagechanging", webViewerPageChanging); + + eventBus._off("scalechanging", webViewerScaleChanging); + + eventBus._off("rotationchanging", webViewerRotationChanging); + + eventBus._off("sidebarviewchanged", webViewerSidebarViewChanged); + + eventBus._off("pagemode", webViewerPageMode); + + eventBus._off("namedaction", webViewerNamedAction); + + eventBus._off("presentationmodechanged", webViewerPresentationModeChanged); + + eventBus._off("presentationmode", webViewerPresentationMode); + + eventBus._off("print", webViewerPrint); + + eventBus._off("download", webViewerDownload); + + eventBus._off("save", webViewerSave); + + eventBus._off("firstpage", webViewerFirstPage); + + eventBus._off("lastpage", webViewerLastPage); + + eventBus._off("nextpage", webViewerNextPage); + + eventBus._off("previouspage", webViewerPreviousPage); + + eventBus._off("zoomin", webViewerZoomIn); + + eventBus._off("zoomout", webViewerZoomOut); + + eventBus._off("zoomreset", webViewerZoomReset); + + eventBus._off("pagenumberchanged", webViewerPageNumberChanged); + + eventBus._off("scalechanged", webViewerScaleChanged); + + eventBus._off("rotatecw", webViewerRotateCw); + + eventBus._off("rotateccw", webViewerRotateCcw); + + eventBus._off("optionalcontentconfig", webViewerOptionalContentConfig); + + eventBus._off("switchscrollmode", webViewerSwitchScrollMode); + + eventBus._off("scrollmodechanged", webViewerScrollModeChanged); + + eventBus._off("switchspreadmode", webViewerSwitchSpreadMode); + + eventBus._off("spreadmodechanged", webViewerSpreadModeChanged); + + eventBus._off("documentproperties", webViewerDocumentProperties); + + eventBus._off("find", webViewerFind); + + eventBus._off("findfromurlhash", webViewerFindFromUrlHash); + + eventBus._off("updatefindmatchescount", webViewerUpdateFindMatchesCount); + + eventBus._off("updatefindcontrolstate", webViewerUpdateFindControlState); + + eventBus._off("fileinputchange", webViewerFileInputChange); + + eventBus._off("openfile", webViewerOpenFile); + _boundEvents.beforePrint = null; _boundEvents.afterPrint = null; }, - unbindWindowEvents: function unbindWindowEvents() { - var _boundEvents = this._boundEvents; - window.removeEventListener('visibilitychange', webViewerVisibilityChange); - window.removeEventListener('wheel', webViewerWheel); - window.removeEventListener('click', webViewerClick); - window.removeEventListener('keydown', webViewerKeyDown); - window.removeEventListener('resize', _boundEvents.windowResize); - window.removeEventListener('hashchange', _boundEvents.windowHashChange); - window.removeEventListener('beforeprint', _boundEvents.windowBeforePrint); - window.removeEventListener('afterprint', _boundEvents.windowAfterPrint); + + unbindWindowEvents() { + const { + _boundEvents + } = this; + window.removeEventListener("visibilitychange", webViewerVisibilityChange); + window.removeEventListener("wheel", webViewerWheel, { + passive: false + }); + window.removeEventListener("touchstart", webViewerTouchStart, { + passive: false + }); + window.removeEventListener("click", webViewerClick); + window.removeEventListener("keydown", webViewerKeyDown); + window.removeEventListener("keyup", webViewerKeyUp); + window.removeEventListener("resize", _boundEvents.windowResize); + window.removeEventListener("hashchange", _boundEvents.windowHashChange); + window.removeEventListener("beforeprint", _boundEvents.windowBeforePrint); + window.removeEventListener("afterprint", _boundEvents.windowAfterPrint); _boundEvents.windowResize = null; _boundEvents.windowHashChange = null; _boundEvents.windowBeforePrint = null; _boundEvents.windowAfterPrint = null; + }, + + accumulateWheelTicks(ticks) { + if (this._wheelUnusedTicks > 0 && ticks < 0 || this._wheelUnusedTicks < 0 && ticks > 0) { + this._wheelUnusedTicks = 0; + } + + this._wheelUnusedTicks += ticks; + const wholeTicks = Math.sign(this._wheelUnusedTicks) * Math.floor(Math.abs(this._wheelUnusedTicks)); + this._wheelUnusedTicks -= wholeTicks; + return wholeTicks; } + }; exports.PDFViewerApplication = PDFViewerApplication; -var validateFileURL; +let validateFileURL; { - var HOSTED_VIEWER_ORIGINS = ['null', 'http://mozilla.github.io', 'https://mozilla.github.io']; + const HOSTED_VIEWER_ORIGINS = ["null", "http://mozilla.github.io", "https://mozilla.github.io"]; - validateFileURL = function validateFileURL(file) { + validateFileURL = function (file) { if (file === undefined) { return; } try { - var viewerOrigin = new _pdfjsLib.URL(window.location.href).origin || 'null'; + const viewerOrigin = new URL(window.location.href).origin || "null"; if (HOSTED_VIEWER_ORIGINS.includes(viewerOrigin)) { return; } - var _ref8 = new _pdfjsLib.URL(file, window.location.href), - origin = _ref8.origin, - protocol = _ref8.protocol; + const { + origin, + protocol + } = new URL(file, window.location.href); - if (origin !== viewerOrigin && protocol !== 'blob:') { - throw new Error('file origin does not match viewer\'s'); + if (origin !== viewerOrigin && protocol !== "blob:") { + throw new Error("file origin does not match viewer's"); } } catch (ex) { - var message = ex && ex.message; - PDFViewerApplication.l10n.get('loading_error', null, 'An error occurred while loading the PDF.').then(function (loadingErrorMessage) { + const message = ex && ex.message; + PDFViewerApplication.l10n.get("loading_error", null, "An error occurred while loading the PDF.").then(loadingErrorMessage => { PDFViewerApplication.error(loadingErrorMessage, { - message: message + message }); }); throw ex; @@ -1785,123 +1950,127 @@ var validateFileURL; }; } -function loadFakeWorker() { +async function loadFakeWorker() { if (!_pdfjsLib.GlobalWorkerOptions.workerSrc) { - _pdfjsLib.GlobalWorkerOptions.workerSrc = _app_options.AppOptions.get('workerSrc'); + _pdfjsLib.GlobalWorkerOptions.workerSrc = _app_options.AppOptions.get("workerSrc"); } return (0, _pdfjsLib.loadScript)(_pdfjsLib.PDFWorker.getWorkerSrc()); } function loadAndEnablePDFBug(enabledTabs) { - var appConfig = PDFViewerApplication.appConfig; + const appConfig = PDFViewerApplication.appConfig; return (0, _pdfjsLib.loadScript)(appConfig.debuggerScriptPath).then(function () { PDFBug.enable(enabledTabs); PDFBug.init({ - OPS: _pdfjsLib.OPS, - createObjectURL: _pdfjsLib.createObjectURL + OPS: _pdfjsLib.OPS }, appConfig.mainContainer); }); } function webViewerInitialized() { - var appConfig = PDFViewerApplication.appConfig; - var file; - var queryString = document.location.search.substring(1); - var params = (0, _ui_utils.parseQueryString)(queryString); - file = 'file' in params ? params.file : _app_options.AppOptions.get('defaultUrl'); + const appConfig = PDFViewerApplication.appConfig; + let file; + const queryString = document.location.search.substring(1); + const params = (0, _ui_utils.parseQueryString)(queryString); + file = "file" in params ? params.file : _app_options.AppOptions.get("defaultUrl"); validateFileURL(file); - var fileInput = document.createElement('input'); + const fileInput = document.createElement("input"); fileInput.id = appConfig.openFileInputName; - fileInput.className = 'fileInput'; - fileInput.setAttribute('type', 'file'); + fileInput.className = "fileInput"; + fileInput.setAttribute("type", "file"); fileInput.oncontextmenu = _ui_utils.noContextMenuHandler; document.body.appendChild(fileInput); if (!window.File || !window.FileReader || !window.FileList || !window.Blob) { - appConfig.toolbar.openFile.setAttribute('hidden', 'true'); - appConfig.secondaryToolbar.openFileButton.setAttribute('hidden', 'true'); + appConfig.toolbar.openFile.setAttribute("hidden", "true"); + appConfig.secondaryToolbar.openFileButton.setAttribute("hidden", "true"); } else { fileInput.value = null; } - fileInput.addEventListener('change', function (evt) { - var files = evt.target.files; + fileInput.addEventListener("change", function (evt) { + const files = evt.target.files; if (!files || files.length === 0) { return; } - PDFViewerApplication.eventBus.dispatch('fileinputchange', { + PDFViewerApplication.eventBus.dispatch("fileinputchange", { source: this, fileInput: evt.target }); }); - appConfig.mainContainer.addEventListener('dragover', function (evt) { + appConfig.mainContainer.addEventListener("dragover", function (evt) { evt.preventDefault(); - evt.dataTransfer.dropEffect = 'move'; + evt.dataTransfer.dropEffect = "move"; }); - appConfig.mainContainer.addEventListener('drop', function (evt) { + appConfig.mainContainer.addEventListener("drop", function (evt) { evt.preventDefault(); - var files = evt.dataTransfer.files; + const files = evt.dataTransfer.files; if (!files || files.length === 0) { return; } - PDFViewerApplication.eventBus.dispatch('fileinputchange', { + PDFViewerApplication.eventBus.dispatch("fileinputchange", { source: this, fileInput: evt.dataTransfer }); }); + if (!PDFViewerApplication.supportsDocumentFonts) { + _app_options.AppOptions.set("disableFontFace", true); + + PDFViewerApplication.l10n.get("web_fonts_disabled", null, "Web fonts are disabled: unable to use embedded PDF fonts.").then(msg => { + console.warn(msg); + }); + } + if (!PDFViewerApplication.supportsPrinting) { - appConfig.toolbar.print.classList.add('hidden'); - appConfig.secondaryToolbar.printButton.classList.add('hidden'); + appConfig.toolbar.print.classList.add("hidden"); + appConfig.secondaryToolbar.printButton.classList.add("hidden"); } if (!PDFViewerApplication.supportsFullscreen) { - appConfig.toolbar.presentationModeButton.classList.add('hidden'); - appConfig.secondaryToolbar.presentationModeButton.classList.add('hidden'); + appConfig.toolbar.presentationModeButton.classList.add("hidden"); + appConfig.secondaryToolbar.presentationModeButton.classList.add("hidden"); } if (PDFViewerApplication.supportsIntegratedFind) { - appConfig.toolbar.viewFind.classList.add('hidden'); + appConfig.toolbar.viewFind.classList.add("hidden"); } - appConfig.mainContainer.addEventListener('transitionend', function (evt) { + appConfig.mainContainer.addEventListener("transitionend", function (evt) { if (evt.target === this) { - PDFViewerApplication.eventBus.dispatch('resize', { + PDFViewerApplication.eventBus.dispatch("resize", { source: this }); } }, true); - appConfig.sidebar.toggleButton.addEventListener('click', function () { - PDFViewerApplication.pdfSidebar.toggle(); - }); try { webViewerOpenFileViaURL(file); } catch (reason) { - PDFViewerApplication.l10n.get('loading_error', null, 'An error occurred while loading the PDF.').then(function (msg) { + PDFViewerApplication.l10n.get("loading_error", null, "An error occurred while loading the PDF.").then(msg => { PDFViewerApplication.error(msg, reason); }); } } -var webViewerOpenFileViaURL; +let webViewerOpenFileViaURL; { - webViewerOpenFileViaURL = function webViewerOpenFileViaURL(file) { - if (file && file.lastIndexOf('file:', 0) === 0) { + webViewerOpenFileViaURL = function (file) { + if (file && file.lastIndexOf("file:", 0) === 0) { PDFViewerApplication.setTitleUsingUrl(file); - var xhr = new XMLHttpRequest(); + const xhr = new XMLHttpRequest(); xhr.onload = function () { PDFViewerApplication.open(new Uint8Array(xhr.response)); }; - xhr.open('GET', file); - xhr.responseType = 'arraybuffer'; + xhr.open("GET", file); + xhr.responseType = "arraybuffer"; xhr.send(); return; } @@ -1912,10 +2081,22 @@ var webViewerOpenFileViaURL; }; } +function webViewerResetPermissions() { + const { + appConfig + } = PDFViewerApplication; + + if (!appConfig) { + return; + } + + appConfig.viewerContainer.classList.remove(ENABLE_PERMISSIONS_CLASS); +} + function webViewerPageRendered(evt) { - var pageNumber = evt.pageNumber; - var pageIndex = pageNumber - 1; - var pageView = PDFViewerApplication.pdfViewer.getPageView(pageIndex); + const pageNumber = evt.pageNumber; + const pageIndex = pageNumber - 1; + const pageView = PDFViewerApplication.pdfViewer.getPageView(pageIndex); if (pageNumber === PDFViewerApplication.page) { PDFViewerApplication.toolbar.updateLoadingIndicatorState(false); @@ -1926,42 +2107,56 @@ function webViewerPageRendered(evt) { } if (PDFViewerApplication.pdfSidebar.isThumbnailViewVisible) { - var thumbnailView = PDFViewerApplication.pdfThumbnailViewer.getThumbnail(pageIndex); + const thumbnailView = PDFViewerApplication.pdfThumbnailViewer.getThumbnail(pageIndex); thumbnailView.setImage(pageView); } - if (typeof Stats !== 'undefined' && Stats.enabled && pageView.stats) { + if (typeof Stats !== "undefined" && Stats.enabled && pageView.stats) { Stats.add(pageNumber, pageView.stats); } if (pageView.error) { - PDFViewerApplication.l10n.get('rendering_error', null, 'An error occurred while rendering the page.').then(function (msg) { + PDFViewerApplication.l10n.get("rendering_error", null, "An error occurred while rendering the page.").then(msg => { PDFViewerApplication.error(msg, pageView.error); }); } + + PDFViewerApplication.externalServices.reportTelemetry({ + type: "pageInfo", + timestamp: evt.timestamp + }); + PDFViewerApplication.pdfDocument.getStats().then(function (stats) { + PDFViewerApplication.externalServices.reportTelemetry({ + type: "documentStats", + stats + }); + }); } -function webViewerTextLayerRendered(evt) {} - -function webViewerPageMode(evt) { - var mode = evt.mode, - view; +function webViewerPageMode({ + mode +}) { + let view; switch (mode) { - case 'thumbs': + case "thumbs": view = _pdf_sidebar.SidebarView.THUMBS; break; - case 'bookmarks': - case 'outline': + case "bookmarks": + case "outline": view = _pdf_sidebar.SidebarView.OUTLINE; break; - case 'attachments': + case "attachments": view = _pdf_sidebar.SidebarView.ATTACHMENTS; break; - case 'none': + case "layers": + view = _pdf_sidebar.SidebarView.LAYERS; + break; + + case "none": view = _pdf_sidebar.SidebarView.NONE; break; @@ -1974,86 +2169,106 @@ function webViewerPageMode(evt) { } function webViewerNamedAction(evt) { - var action = evt.action; - - switch (action) { - case 'GoToPage': + switch (evt.action) { + case "GoToPage": PDFViewerApplication.appConfig.toolbar.pageNumber.select(); break; - case 'Find': + case "Find": if (!PDFViewerApplication.supportsIntegratedFind) { PDFViewerApplication.findBar.toggle(); } break; + + case "Print": + if (PDFViewerApplication.supportsPrinting) { + webViewerPrint(); + } + + break; + + case "SaveAs": + webViewerSave(); + break; } } -function webViewerPresentationModeChanged(evt) { - var active = evt.active, - switchInProgress = evt.switchInProgress; - PDFViewerApplication.pdfViewer.presentationModeState = switchInProgress ? _ui_utils.PresentationModeState.CHANGING : active ? _ui_utils.PresentationModeState.FULLSCREEN : _ui_utils.PresentationModeState.NORMAL; +function webViewerPresentationModeChanged({ + active, + switchInProgress +}) { + let state = _ui_utils.PresentationModeState.NORMAL; + + if (switchInProgress) { + state = _ui_utils.PresentationModeState.CHANGING; + } else if (active) { + state = _ui_utils.PresentationModeState.FULLSCREEN; + } + + PDFViewerApplication.pdfViewer.presentationModeState = state; } function webViewerSidebarViewChanged(evt) { PDFViewerApplication.pdfRenderingQueue.isThumbnailViewEnabled = PDFViewerApplication.pdfSidebar.isThumbnailViewVisible; - var store = PDFViewerApplication.store; + const store = PDFViewerApplication.store; if (store && PDFViewerApplication.isInitialViewSet) { - store.set('sidebarView', evt.view)["catch"](function () {}); + store.set("sidebarView", evt.view).catch(function () {}); } } function webViewerUpdateViewarea(evt) { - var location = evt.location, - store = PDFViewerApplication.store; + const location = evt.location, + store = PDFViewerApplication.store; if (store && PDFViewerApplication.isInitialViewSet) { store.setMultiple({ - 'page': location.pageNumber, - 'zoom': location.scale, - 'scrollLeft': location.left, - 'scrollTop': location.top, - 'rotation': location.rotation - })["catch"](function () {}); + page: location.pageNumber, + zoom: location.scale, + scrollLeft: location.left, + scrollTop: location.top, + rotation: location.rotation + }).catch(function () {}); } - var href = PDFViewerApplication.pdfLinkService.getAnchorUrl(location.pdfOpenParams); + const href = PDFViewerApplication.pdfLinkService.getAnchorUrl(location.pdfOpenParams); PDFViewerApplication.appConfig.toolbar.viewBookmark.href = href; PDFViewerApplication.appConfig.secondaryToolbar.viewBookmarkButton.href = href; - var currentPage = PDFViewerApplication.pdfViewer.getPageView(PDFViewerApplication.page - 1); - var loading = currentPage.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED; + const currentPage = PDFViewerApplication.pdfViewer.getPageView(PDFViewerApplication.page - 1); + const loading = currentPage.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED; PDFViewerApplication.toolbar.updateLoadingIndicatorState(loading); } function webViewerScrollModeChanged(evt) { - var store = PDFViewerApplication.store; + const store = PDFViewerApplication.store; if (store && PDFViewerApplication.isInitialViewSet) { - store.set('scrollMode', evt.mode)["catch"](function () {}); + store.set("scrollMode", evt.mode).catch(function () {}); } } function webViewerSpreadModeChanged(evt) { - var store = PDFViewerApplication.store; + const store = PDFViewerApplication.store; if (store && PDFViewerApplication.isInitialViewSet) { - store.set('spreadMode', evt.mode)["catch"](function () {}); + store.set("spreadMode", evt.mode).catch(function () {}); } } function webViewerResize() { - var pdfDocument = PDFViewerApplication.pdfDocument, - pdfViewer = PDFViewerApplication.pdfViewer; + const { + pdfDocument, + pdfViewer + } = PDFViewerApplication; if (!pdfDocument) { return; } - var currentScaleValue = pdfViewer.currentScaleValue; + const currentScaleValue = pdfViewer.currentScaleValue; - if (currentScaleValue === 'auto' || currentScaleValue === 'page-fit' || currentScaleValue === 'page-width') { + if (currentScaleValue === "auto" || currentScaleValue === "page-fit" || currentScaleValue === "page-width") { pdfViewer.currentScaleValue = currentScaleValue; } @@ -2061,7 +2276,7 @@ function webViewerResize() { } function webViewerHashchange(evt) { - var hash = evt.hash; + const hash = evt.hash; if (!hash) { return; @@ -2074,21 +2289,21 @@ function webViewerHashchange(evt) { } } -var webViewerFileInputChange; +let webViewerFileInputChange, webViewerOpenFile; { - webViewerFileInputChange = function webViewerFileInputChange(evt) { + webViewerFileInputChange = function (evt) { if (PDFViewerApplication.pdfViewer && PDFViewerApplication.pdfViewer.isInPresentationMode) { return; } - var file = evt.fileInput.files[0]; + const file = evt.fileInput.files[0]; - if (_pdfjsLib.URL.createObjectURL && !_app_options.AppOptions.get('disableCreateObjectURL')) { - var url = _pdfjsLib.URL.createObjectURL(file); + if (!_viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL) { + let url = URL.createObjectURL(file); if (file.name) { url = { - url: url, + url, originalUrl: file.name }; } @@ -2096,21 +2311,26 @@ var webViewerFileInputChange; PDFViewerApplication.open(url); } else { PDFViewerApplication.setTitleUsingUrl(file.name); - var fileReader = new FileReader(); + const fileReader = new FileReader(); - fileReader.onload = function webViewerChangeFileReaderOnload(evt) { - var buffer = evt.target.result; + fileReader.onload = function webViewerChangeFileReaderOnload(event) { + const buffer = event.target.result; PDFViewerApplication.open(new Uint8Array(buffer)); }; fileReader.readAsArrayBuffer(file); } - var appConfig = PDFViewerApplication.appConfig; - appConfig.toolbar.viewBookmark.setAttribute('hidden', 'true'); - appConfig.secondaryToolbar.viewBookmarkButton.setAttribute('hidden', 'true'); - appConfig.toolbar.download.setAttribute('hidden', 'true'); - appConfig.secondaryToolbar.downloadButton.setAttribute('hidden', 'true'); + const appConfig = PDFViewerApplication.appConfig; + appConfig.toolbar.viewBookmark.setAttribute("hidden", "true"); + appConfig.secondaryToolbar.viewBookmarkButton.setAttribute("hidden", "true"); + appConfig.toolbar.download.setAttribute("hidden", "true"); + appConfig.secondaryToolbar.downloadButton.setAttribute("hidden", "true"); + }; + + webViewerOpenFile = function (evt) { + const openFileInputName = PDFViewerApplication.appConfig.openFileInputName; + document.getElementById(openFileInputName).click(); }; } @@ -2118,17 +2338,28 @@ function webViewerPresentationMode() { PDFViewerApplication.requestPresentationMode(); } -function webViewerOpenFile() { - var openFileInputName = PDFViewerApplication.appConfig.openFileInputName; - document.getElementById(openFileInputName).click(); -} - function webViewerPrint() { window.print(); } +function webViewerDownloadOrSave(sourceEventType) { + if (PDFViewerApplication.pdfDocument && PDFViewerApplication.pdfDocument.annotationStorage.size > 0) { + PDFViewerApplication.save({ + sourceEventType + }); + } else { + PDFViewerApplication.download({ + sourceEventType + }); + } +} + function webViewerDownload() { - PDFViewerApplication.download(); + webViewerDownloadOrSave("download"); +} + +function webViewerSave() { + webViewerDownloadOrSave("save"); } function webViewerFirstPage() { @@ -2159,14 +2390,14 @@ function webViewerZoomOut() { PDFViewerApplication.zoomOut(); } -function webViewerZoomReset(evt) { - PDFViewerApplication.zoomReset(evt && evt.ignoreDuplicate); +function webViewerZoomReset() { + PDFViewerApplication.zoomReset(); } function webViewerPageNumberChanged(evt) { - var pdfViewer = PDFViewerApplication.pdfViewer; + const pdfViewer = PDFViewerApplication.pdfViewer; - if (evt.value !== '') { + if (evt.value !== "") { pdfViewer.currentPageLabel = evt.value; } @@ -2187,6 +2418,10 @@ function webViewerRotateCcw() { PDFViewerApplication.rotatePages(-90); } +function webViewerOptionalContentConfig(evt) { + PDFViewerApplication.pdfViewer.optionalContentConfigPromise = evt.promise; +} + function webViewerSwitchScrollMode(evt) { PDFViewerApplication.pdfViewer.scrollMode = evt.mode; } @@ -2200,7 +2435,7 @@ function webViewerDocumentProperties() { } function webViewerFind(evt) { - PDFViewerApplication.findController.executeCommand('find' + evt.type, { + PDFViewerApplication.findController.executeCommand("find" + evt.type, { query: evt.query, phraseSearch: evt.phraseSearch, caseSensitive: evt.caseSensitive, @@ -2211,7 +2446,7 @@ function webViewerFind(evt) { } function webViewerFindFromUrlHash(evt) { - PDFViewerApplication.findController.executeCommand('find', { + PDFViewerApplication.findController.executeCommand("find", { query: evt.query, phraseSearch: evt.phraseSearch, caseSensitive: false, @@ -2221,9 +2456,9 @@ function webViewerFindFromUrlHash(evt) { }); } -function webViewerUpdateFindMatchesCount(_ref9) { - var matchesCount = _ref9.matchesCount; - +function webViewerUpdateFindMatchesCount({ + matchesCount +}) { if (PDFViewerApplication.supportsIntegratedFind) { PDFViewerApplication.externalServices.updateFindMatchesCount(matchesCount); } else { @@ -2231,16 +2466,18 @@ function webViewerUpdateFindMatchesCount(_ref9) { } } -function webViewerUpdateFindControlState(_ref10) { - var state = _ref10.state, - previous = _ref10.previous, - matchesCount = _ref10.matchesCount; - +function webViewerUpdateFindControlState({ + state, + previous, + matchesCount, + rawQuery +}) { if (PDFViewerApplication.supportsIntegratedFind) { PDFViewerApplication.externalServices.updateFindControlState({ result: state, findPrevious: previous, - matchesCount: matchesCount + matchesCount, + rawQuery }); } else { PDFViewerApplication.findBar.updateUIState(state, previous, matchesCount); @@ -2259,7 +2496,7 @@ function webViewerRotationChanging(evt) { } function webViewerPageChanging(evt) { - var page = evt.pageNumber; + const page = evt.pageNumber; PDFViewerApplication.toolbar.setPageNumber(page, evt.pageLabel || null); PDFViewerApplication.secondaryToolbar.setPageNumber(page); @@ -2267,8 +2504,8 @@ function webViewerPageChanging(evt) { PDFViewerApplication.pdfThumbnailViewer.scrollThumbnailIntoView(page); } - if (typeof Stats !== 'undefined' && Stats.enabled) { - var pageView = PDFViewerApplication.pdfViewer.getPageView(page - 1); + if (typeof Stats !== "undefined" && Stats.enabled) { + const pageView = PDFViewerApplication.pdfViewer.getPageView(page - 1); if (pageView && pageView.stats) { Stats.add(page, pageView.stats); @@ -2277,12 +2514,12 @@ function webViewerPageChanging(evt) { } function webViewerVisibilityChange(evt) { - if (document.visibilityState === 'visible') { + if (document.visibilityState === "visible") { setZoomDisabledTimeout(); } } -var zoomDisabledTimeout = null; +let zoomDisabledTimeout = null; function setZoomDisabledTimeout() { if (zoomDisabledTimeout) { @@ -2295,43 +2532,50 @@ function setZoomDisabledTimeout() { } function webViewerWheel(evt) { - var pdfViewer = PDFViewerApplication.pdfViewer; + const { + pdfViewer, + supportedMouseWheelZoomModifierKeys + } = PDFViewerApplication; if (pdfViewer.isInPresentationMode) { return; } - if (evt.ctrlKey || evt.metaKey) { - var support = PDFViewerApplication.supportedMouseWheelZoomModifierKeys; - - if (evt.ctrlKey && !support.ctrlKey || evt.metaKey && !support.metaKey) { - return; - } - + if (evt.ctrlKey && supportedMouseWheelZoomModifierKeys.ctrlKey || evt.metaKey && supportedMouseWheelZoomModifierKeys.metaKey) { evt.preventDefault(); - if (zoomDisabledTimeout || document.visibilityState === 'hidden') { + if (zoomDisabledTimeout || document.visibilityState === "hidden") { return; } - var previousScale = pdfViewer.currentScale; - var delta = (0, _ui_utils.normalizeWheelEventDelta)(evt); - var MOUSE_WHEEL_DELTA_PER_PAGE_SCALE = 3.0; - var ticks = delta * MOUSE_WHEEL_DELTA_PER_PAGE_SCALE; + const previousScale = pdfViewer.currentScale; + const delta = (0, _ui_utils.normalizeWheelEventDirection)(evt); + let ticks = 0; + + if (evt.deltaMode === WheelEvent.DOM_DELTA_LINE || evt.deltaMode === WheelEvent.DOM_DELTA_PAGE) { + if (Math.abs(delta) >= 1) { + ticks = Math.sign(delta); + } else { + ticks = PDFViewerApplication.accumulateWheelTicks(delta); + } + } else { + const PIXELS_PER_LINE_SCALE = 30; + ticks = PDFViewerApplication.accumulateWheelTicks(delta / PIXELS_PER_LINE_SCALE); + } if (ticks < 0) { PDFViewerApplication.zoomOut(-ticks); - } else { + } else if (ticks > 0) { PDFViewerApplication.zoomIn(ticks); } - var currentScale = pdfViewer.currentScale; + const currentScale = pdfViewer.currentScale; if (previousScale !== currentScale) { - var scaleCorrectionFactor = currentScale / previousScale - 1; - var rect = pdfViewer.container.getBoundingClientRect(); - var dx = evt.clientX - rect.left; - var dy = evt.clientY - rect.top; + const scaleCorrectionFactor = currentScale / previousScale - 1; + const rect = pdfViewer.container.getBoundingClientRect(); + const dx = evt.clientX - rect.left; + const dy = evt.clientY - rect.top; pdfViewer.container.scrollLeft += dx * scaleCorrectionFactor; pdfViewer.container.scrollTop += dy * scaleCorrectionFactor; } @@ -2340,28 +2584,46 @@ function webViewerWheel(evt) { } } +function webViewerTouchStart(evt) { + if (evt.touches.length > 1) { + evt.preventDefault(); + } +} + function webViewerClick(evt) { + if (PDFViewerApplication.triggerDelayedFallback && PDFViewerApplication.pdfViewer.containsElement(evt.target)) { + PDFViewerApplication.triggerDelayedFallback(); + } + if (!PDFViewerApplication.secondaryToolbar.isOpen) { return; } - var appConfig = PDFViewerApplication.appConfig; + const appConfig = PDFViewerApplication.appConfig; if (PDFViewerApplication.pdfViewer.containsElement(evt.target) || appConfig.toolbar.container.contains(evt.target) && evt.target !== appConfig.secondaryToolbar.toggleButton) { PDFViewerApplication.secondaryToolbar.close(); } } +function webViewerKeyUp(evt) { + if (evt.keyCode === 9) { + if (PDFViewerApplication.triggerDelayedFallback) { + PDFViewerApplication.triggerDelayedFallback(); + } + } +} + function webViewerKeyDown(evt) { if (PDFViewerApplication.overlayManager.active) { return; } - var handled = false, + let handled = false, ensureViewerFocused = false; - var cmd = (evt.ctrlKey ? 1 : 0) | (evt.altKey ? 2 : 0) | (evt.shiftKey ? 4 : 0) | (evt.metaKey ? 8 : 0); - var pdfViewer = PDFViewerApplication.pdfViewer; - var isViewerInPresentationMode = pdfViewer && pdfViewer.isInPresentationMode; + const cmd = (evt.ctrlKey ? 1 : 0) | (evt.altKey ? 2 : 0) | (evt.shiftKey ? 4 : 0) | (evt.metaKey ? 8 : 0); + const pdfViewer = PDFViewerApplication.pdfViewer; + const isViewerInPresentationMode = pdfViewer && pdfViewer.isInPresentationMode; if (cmd === 1 || cmd === 8 || cmd === 5 || cmd === 12) { switch (evt.keyCode) { @@ -2375,10 +2637,10 @@ function webViewerKeyDown(evt) { case 71: if (!PDFViewerApplication.supportsIntegratedFind) { - var findState = PDFViewerApplication.findController.state; + const findState = PDFViewerApplication.findController.state; if (findState) { - PDFViewerApplication.findController.executeCommand('findagain', { + PDFViewerApplication.findController.executeCommand("findagain", { query: findState.query, phraseSearch: findState.phraseSearch, caseSensitive: findState.caseSensitive, @@ -2445,12 +2707,27 @@ function webViewerKeyDown(evt) { } } + const { + eventBus + } = PDFViewerApplication; + if (cmd === 1 || cmd === 8) { switch (evt.keyCode) { case 83: - PDFViewerApplication.download(); + eventBus.dispatch("download", { + source: window + }); handled = true; break; + + case 79: + { + eventBus.dispatch("openfile", { + source: window + }); + handled = true; + } + break; } } @@ -2477,17 +2754,17 @@ function webViewerKeyDown(evt) { return; } - var curElement = document.activeElement || document.querySelector(':focus'); - var curElementTagName = curElement && curElement.tagName.toUpperCase(); + const curElement = document.activeElement || document.querySelector(":focus"); + const curElementTagName = curElement && curElement.tagName.toUpperCase(); - if (curElementTagName === 'INPUT' || curElementTagName === 'TEXTAREA' || curElementTagName === 'SELECT') { + if (curElementTagName === "INPUT" || curElementTagName === "TEXTAREA" || curElementTagName === "SELECT" || curElement && curElement.isContentEditable) { if (evt.keyCode !== 27) { return; } } if (cmd === 0) { - var turnPage = 0, + let turnPage = 0, turnOnlyIfPageFit = false; switch (evt.keyCode) { @@ -2594,7 +2871,7 @@ function webViewerKeyDown(evt) { break; } - if (turnPage !== 0 && (!turnOnlyIfPageFit || pdfViewer.currentScaleValue === 'page-fit')) { + if (turnPage !== 0 && (!turnOnlyIfPageFit || pdfViewer.currentScaleValue === "page-fit")) { if (turnPage > 0) { if (PDFViewerApplication.page < PDFViewerApplication.pagesCount) { PDFViewerApplication.page++; @@ -2613,7 +2890,7 @@ function webViewerKeyDown(evt) { switch (evt.keyCode) { case 13: case 32: - if (!isViewerInPresentationMode && pdfViewer.currentScaleValue !== 'page-fit') { + if (!isViewerInPresentationMode && pdfViewer.currentScaleValue !== "page-fit") { break; } @@ -2631,7 +2908,7 @@ function webViewerKeyDown(evt) { } if (!handled && !isViewerInPresentationMode) { - if (evt.keyCode >= 33 && evt.keyCode <= 40 || evt.keyCode === 32 && curElementTagName !== 'BUTTON') { + if (evt.keyCode >= 33 && evt.keyCode <= 40 || evt.keyCode === 32 && curElementTagName !== "BUTTON") { ensureViewerFocused = true; } } @@ -2645,18 +2922,24 @@ function webViewerKeyDown(evt) { } } +function beforeUnload(evt) { + evt.preventDefault(); + evt.returnValue = ""; + return false; +} + function apiPageLayoutToSpreadMode(layout) { switch (layout) { - case 'SinglePage': - case 'OneColumn': + case "SinglePage": + case "OneColumn": return _ui_utils.SpreadMode.NONE; - case 'TwoColumnLeft': - case 'TwoPageLeft': + case "TwoColumnLeft": + case "TwoPageLeft": return _ui_utils.SpreadMode.ODD; - case 'TwoColumnRight': - case 'TwoPageRight': + case "TwoColumnRight": + case "TwoPageRight": return _ui_utils.SpreadMode.EVEN; } @@ -2665,30 +2948,33 @@ function apiPageLayoutToSpreadMode(layout) { function apiPageModeToSidebarView(mode) { switch (mode) { - case 'UseNone': + case "UseNone": return _pdf_sidebar.SidebarView.NONE; - case 'UseThumbs': + case "UseThumbs": return _pdf_sidebar.SidebarView.THUMBS; - case 'UseOutlines': + case "UseOutlines": return _pdf_sidebar.SidebarView.OUTLINE; - case 'UseAttachments': + case "UseAttachments": return _pdf_sidebar.SidebarView.ATTACHMENTS; - case 'UseOC': + case "UseOC": + return _pdf_sidebar.SidebarView.LAYERS; } return _pdf_sidebar.SidebarView.NONE; } -var PDFPrintServiceFactory = { +const PDFPrintServiceFactory = { instance: { supportsPrinting: false, - createPrintService: function createPrintService() { - throw new Error('Not implemented: createPrintService'); + + createPrintService() { + throw new Error("Not implemented: createPrintService"); } + } }; exports.PDFPrintServiceFactory = PDFPrintServiceFactory; @@ -2700,627 +2986,6 @@ exports.PDFPrintServiceFactory = PDFPrintServiceFactory; "use strict"; -module.exports = __webpack_require__(3); - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(module) { - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var runtime = function (exports) { - "use strict"; - - var Op = Object.prototype; - var hasOwn = Op.hasOwnProperty; - var undefined; - var $Symbol = typeof Symbol === "function" ? Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; - var generator = Object.create(protoGenerator.prototype); - var context = new Context(tryLocsList || []); - generator._invoke = makeInvokeMethod(innerFn, self, context); - return generator; - } - - exports.wrap = wrap; - - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; - } - } - - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; - var ContinueSentinel = {}; - - function Generator() {} - - function GeneratorFunction() {} - - function GeneratorFunctionPrototype() {} - - var IteratorPrototype = {}; - - IteratorPrototype[iteratorSymbol] = function () { - return this; - }; - - var getProto = Object.getPrototypeOf; - var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - - if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { - IteratorPrototype = NativeIteratorPrototype; - } - - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; - GeneratorFunctionPrototype.constructor = GeneratorFunction; - GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; - - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - prototype[method] = function (arg) { - return this._invoke(method, arg); - }; - }); - } - - exports.isGeneratorFunction = function (genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; - }; - - exports.mark = function (genFun) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - - if (!(toStringTagSymbol in genFun)) { - genFun[toStringTagSymbol] = "GeneratorFunction"; - } - } - - genFun.prototype = Object.create(Gp); - return genFun; - }; - - exports.awrap = function (arg) { - return { - __await: arg - }; - }; - - function AsyncIterator(generator) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value = result.value; - - if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) { - return Promise.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }); - } - - return Promise.resolve(value).then(function (unwrapped) { - result.value = unwrapped; - resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); - } - } - - var previousPromise; - - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new Promise(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - - this._invoke = enqueue; - } - - defineIteratorMethods(AsyncIterator.prototype); - - AsyncIterator.prototype[asyncIteratorSymbol] = function () { - return this; - }; - - exports.AsyncIterator = AsyncIterator; - - exports.async = function (innerFn, outerFn, self, tryLocsList) { - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList)); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }; - - function makeInvokeMethod(innerFn, self, context) { - var state = GenStateSuspendedStart; - return function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); - } - - if (state === GenStateCompleted) { - if (method === "throw") { - throw arg; - } - - return doneResult(); - } - - context.method = method; - context.arg = arg; - - while (true) { - var delegate = context.delegate; - - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - - if (context.method === "next") { - context.sent = context._sent = context.arg; - } else if (context.method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw context.arg; - } - - context.dispatchException(context.arg); - } else if (context.method === "return") { - context.abrupt("return", context.arg); - } - - state = GenStateExecuting; - var record = tryCatch(innerFn, self, context); - - if (record.type === "normal") { - state = context.done ? GenStateCompleted : GenStateSuspendedYield; - - if (record.arg === ContinueSentinel) { - continue; - } - - return { - value: record.arg, - done: context.done - }; - } else if (record.type === "throw") { - state = GenStateCompleted; - context.method = "throw"; - context.arg = record.arg; - } - } - }; - } - - function maybeInvokeDelegate(delegate, context) { - var method = delegate.iterator[context.method]; - - if (method === undefined) { - context.delegate = null; - - if (context.method === "throw") { - if (delegate.iterator["return"]) { - context.method = "return"; - context.arg = undefined; - maybeInvokeDelegate(delegate, context); - - if (context.method === "throw") { - return ContinueSentinel; - } - } - - context.method = "throw"; - context.arg = new TypeError("The iterator does not provide a 'throw' method"); - } - - return ContinueSentinel; - } - - var record = tryCatch(method, delegate.iterator, context.arg); - - if (record.type === "throw") { - context.method = "throw"; - context.arg = record.arg; - context.delegate = null; - return ContinueSentinel; - } - - var info = record.arg; - - if (!info) { - context.method = "throw"; - context.arg = new TypeError("iterator result is not an object"); - context.delegate = null; - return ContinueSentinel; - } - - if (info.done) { - context[delegate.resultName] = info.value; - context.next = delegate.nextLoc; - - if (context.method !== "return") { - context.method = "next"; - context.arg = undefined; - } - } else { - return info; - } - - context.delegate = null; - return ContinueSentinel; - } - - defineIteratorMethods(Gp); - Gp[toStringTagSymbol] = "Generator"; - - Gp[iteratorSymbol] = function () { - return this; - }; - - Gp.toString = function () { - return "[object Generator]"; - }; - - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - - if (1 in locs) { - entry.catchLoc = locs[1]; - } - - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; - } - - this.tryEntries.push(entry); - } - - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; - } - - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(true); - } - - exports.keys = function (object) { - var keys = []; - - for (var key in object) { - keys.push(key); - } - - keys.reverse(); - return function next() { - while (keys.length) { - var key = keys.pop(); - - if (key in object) { - next.value = key; - next.done = false; - return next; - } - } - - next.done = true; - return next; - }; - }; - - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } - - if (typeof iterable.next === "function") { - return iterable; - } - - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - while (++i < iterable.length) { - if (hasOwn.call(iterable, i)) { - next.value = iterable[i]; - next.done = false; - return next; - } - } - - next.value = undefined; - next.done = true; - return next; - }; - - return next.next = next; - } - } - - return { - next: doneResult - }; - } - - exports.values = values; - - function doneResult() { - return { - value: undefined, - done: true - }; - } - - Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - this.prev = 0; - this.next = 0; - this.sent = this._sent = undefined; - this.done = false; - this.delegate = null; - this.method = "next"; - this.arg = undefined; - this.tryEntries.forEach(resetTryEntry); - - if (!skipTempReset) { - for (var name in this) { - if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { - this[name] = undefined; - } - } - } - }, - stop: function stop() { - this.done = true; - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) { - throw exception; - } - - var context = this; - - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception; - context.next = loc; - - if (caught) { - context.method = "next"; - context.arg = undefined; - } - - return !!caught; - } - - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - var record = entry.completion; - - if (entry.tryLoc === "root") { - return handle("end"); - } - - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); - - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - - if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { - finallyEntry = null; - } - - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type; - record.arg = arg; - - if (finallyEntry) { - this.method = "next"; - this.next = finallyEntry.finallyLoc; - return ContinueSentinel; - } - - return this.complete(record); - }, - complete: function complete(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } - - if (record.type === "break" || record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = this.arg = record.arg; - this.method = "return"; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } - - return ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.finallyLoc === finallyLoc) { - this.complete(entry.completion, entry.afterLoc); - resetTryEntry(entry); - return ContinueSentinel; - } - } - }, - "catch": function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - - return thrown; - } - } - - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }; - - if (this.method === "next") { - this.arg = undefined; - } - - return ContinueSentinel; - } - }; - return exports; -}(( false ? undefined : _typeof(module)) === "object" ? module.exports : {}); - -try { - regeneratorRuntime = runtime; -} catch (accidentalStrictMode) { - Function("r", "regeneratorRuntime = r")(runtime); -} -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(4)(module))) - -/***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = function (module) { - if (!module.webpackPolyfill) { - module.deprecate = function () {}; - - module.paths = []; - if (!module.children) module.children = []; - Object.defineProperty(module, "loaded", { - enumerable: true, - get: function get() { - return module.l; - } - }); - Object.defineProperty(module, "id", { - enumerable: true, - get: function get() { - return module.i; - } - }); - module.webpackPolyfill = 1; - } - - return module; -}; - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - Object.defineProperty(exports, "__esModule", { value: true }); @@ -3328,7 +2993,7 @@ exports.isValidRotation = isValidRotation; exports.isValidScrollMode = isValidScrollMode; exports.isValidSpreadMode = isValidSpreadMode; exports.isPortraitOrientation = isPortraitOrientation; -exports.getGlobalEventBus = getGlobalEventBus; +exports.clamp = clamp; exports.getPDFFileNameFromURL = getPDFFileNameFromURL; exports.noContextMenuHandler = noContextMenuHandler; exports.parseQueryString = parseQueryString; @@ -3341,197 +3006,96 @@ exports.getOutputScale = getOutputScale; exports.scrollIntoView = scrollIntoView; exports.watchScroll = watchScroll; exports.binarySearchFirstItem = binarySearchFirstItem; +exports.normalizeWheelEventDirection = normalizeWheelEventDirection; exports.normalizeWheelEventDelta = normalizeWheelEventDelta; exports.waitOnEventOrTimeout = waitOnEventOrTimeout; exports.moveToEndOfArray = moveToEndOfArray; -exports.WaitOnType = exports.animationStarted = exports.ProgressBar = exports.EventBus = exports.NullL10n = exports.SpreadMode = exports.ScrollMode = exports.TextLayerMode = exports.RendererType = exports.PresentationModeState = exports.VERTICAL_PADDING = exports.SCROLLBAR_PADDING = exports.MAX_AUTO_SCALE = exports.UNKNOWN_SCALE = exports.MAX_SCALE = exports.MIN_SCALE = exports.DEFAULT_SCALE = exports.DEFAULT_SCALE_VALUE = exports.CSS_UNITS = void 0; - -var _regenerator = _interopRequireDefault(__webpack_require__(2)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -var CSS_UNITS = 96.0 / 72.0; +exports.WaitOnType = exports.animationStarted = exports.ProgressBar = exports.EventBus = exports.NullL10n = exports.SpreadMode = exports.ScrollMode = exports.TextLayerMode = exports.RendererType = exports.PresentationModeState = exports.VERTICAL_PADDING = exports.SCROLLBAR_PADDING = exports.MAX_AUTO_SCALE = exports.UNKNOWN_SCALE = exports.MAX_SCALE = exports.MIN_SCALE = exports.DEFAULT_SCALE = exports.DEFAULT_SCALE_VALUE = exports.CSS_UNITS = exports.AutoPrintRegExp = void 0; +const CSS_UNITS = 96.0 / 72.0; exports.CSS_UNITS = CSS_UNITS; -var DEFAULT_SCALE_VALUE = 'auto'; +const DEFAULT_SCALE_VALUE = "auto"; exports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE; -var DEFAULT_SCALE = 1.0; +const DEFAULT_SCALE = 1.0; exports.DEFAULT_SCALE = DEFAULT_SCALE; -var MIN_SCALE = 0.10; +const MIN_SCALE = 0.1; exports.MIN_SCALE = MIN_SCALE; -var MAX_SCALE = 10.0; +const MAX_SCALE = 10.0; exports.MAX_SCALE = MAX_SCALE; -var UNKNOWN_SCALE = 0; +const UNKNOWN_SCALE = 0; exports.UNKNOWN_SCALE = UNKNOWN_SCALE; -var MAX_AUTO_SCALE = 1.25; +const MAX_AUTO_SCALE = 1.25; exports.MAX_AUTO_SCALE = MAX_AUTO_SCALE; -var SCROLLBAR_PADDING = 40; +const SCROLLBAR_PADDING = 40; exports.SCROLLBAR_PADDING = SCROLLBAR_PADDING; -var VERTICAL_PADDING = 5; +const VERTICAL_PADDING = 5; exports.VERTICAL_PADDING = VERTICAL_PADDING; -var PresentationModeState = { +const PresentationModeState = { UNKNOWN: 0, NORMAL: 1, CHANGING: 2, FULLSCREEN: 3 }; exports.PresentationModeState = PresentationModeState; -var RendererType = { - CANVAS: 'canvas', - SVG: 'svg' +const RendererType = { + CANVAS: "canvas", + SVG: "svg" }; exports.RendererType = RendererType; -var TextLayerMode = { +const TextLayerMode = { DISABLE: 0, ENABLE: 1, ENABLE_ENHANCE: 2 }; exports.TextLayerMode = TextLayerMode; -var ScrollMode = { +const ScrollMode = { UNKNOWN: -1, VERTICAL: 0, HORIZONTAL: 1, WRAPPED: 2 }; exports.ScrollMode = ScrollMode; -var SpreadMode = { +const SpreadMode = { UNKNOWN: -1, NONE: 0, ODD: 1, EVEN: 2 }; exports.SpreadMode = SpreadMode; +const AutoPrintRegExp = /\bprint\s*\(/; +exports.AutoPrintRegExp = AutoPrintRegExp; function formatL10nValue(text, args) { if (!args) { return text; } - return text.replace(/\{\{\s*(\w+)\s*\}\}/g, function (all, name) { - return name in args ? args[name] : '{{' + name + '}}'; + return text.replace(/\{\{\s*(\w+)\s*\}\}/g, (all, name) => { + return name in args ? args[name] : "{{" + name + "}}"; }); } -var NullL10n = { - getLanguage: function () { - var _getLanguage = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee() { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", 'en-us'); +const NullL10n = { + async getLanguage() { + return "en-us"; + }, - case 1: - case "end": - return _context.stop(); - } - } - }, _callee); - })); + async getDirection() { + return "ltr"; + }, - function getLanguage() { - return _getLanguage.apply(this, arguments); - } + async get(property, args, fallback) { + return formatL10nValue(fallback, args); + }, - return getLanguage; - }(), - getDirection: function () { - var _getDirection = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2() { - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", 'ltr'); + async translate(element) {} - case 1: - case "end": - return _context2.stop(); - } - } - }, _callee2); - })); - - function getDirection() { - return _getDirection.apply(this, arguments); - } - - return getDirection; - }(), - get: function () { - var _get = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee3(property, args, fallback) { - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - return _context3.abrupt("return", formatL10nValue(fallback, args)); - - case 1: - case "end": - return _context3.stop(); - } - } - }, _callee3); - })); - - function get(_x, _x2, _x3) { - return _get.apply(this, arguments); - } - - return get; - }(), - translate: function () { - var _translate = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee4(element) { - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - case "end": - return _context4.stop(); - } - } - }, _callee4); - })); - - function translate(_x4) { - return _translate.apply(this, arguments); - } - - return translate; - }() }; exports.NullL10n = NullL10n; function getOutputScale(ctx) { - var devicePixelRatio = window.devicePixelRatio || 1; - var backingStoreRatio = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1; - var pixelRatio = devicePixelRatio / backingStoreRatio; + const devicePixelRatio = window.devicePixelRatio || 1; + const backingStoreRatio = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1; + const pixelRatio = devicePixelRatio / backingStoreRatio; return { sx: pixelRatio, sy: pixelRatio, @@ -3539,19 +3103,18 @@ function getOutputScale(ctx) { }; } -function scrollIntoView(element, spot) { - var skipOverflowHiddenElements = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - var parent = element.offsetParent; +function scrollIntoView(element, spot, skipOverflowHiddenElements = false) { + let parent = element.offsetParent; if (!parent) { - console.error('offsetParent is not set -- cannot scroll'); + console.error("offsetParent is not set -- cannot scroll"); return; } - var offsetY = element.offsetTop + element.clientTop; - var offsetX = element.offsetLeft + element.clientLeft; + let offsetY = element.offsetTop + element.clientTop; + let offsetX = element.offsetLeft + element.clientLeft; - while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || skipOverflowHiddenElements && getComputedStyle(parent).overflow === 'hidden') { + while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || skipOverflowHiddenElements && getComputedStyle(parent).overflow === "hidden") { if (parent.dataset._scaleY) { offsetY /= parent.dataset._scaleY; offsetX /= parent.dataset._scaleX; @@ -3581,23 +3144,23 @@ function scrollIntoView(element, spot) { } function watchScroll(viewAreaElement, callback) { - var debounceScroll = function debounceScroll(evt) { + const debounceScroll = function (evt) { if (rAF) { return; } rAF = window.requestAnimationFrame(function viewAreaElementScrolled() { rAF = null; - var currentX = viewAreaElement.scrollLeft; - var lastX = state.lastX; + const currentX = viewAreaElement.scrollLeft; + const lastX = state.lastX; if (currentX !== lastX) { state.right = currentX > lastX; } state.lastX = currentX; - var currentY = viewAreaElement.scrollTop; - var lastY = state.lastY; + const currentY = viewAreaElement.scrollTop; + const lastY = state.lastY; if (currentY !== lastY) { state.down = currentY > lastY; @@ -3608,26 +3171,26 @@ function watchScroll(viewAreaElement, callback) { }); }; - var state = { + const state = { right: true, down: true, lastX: viewAreaElement.scrollLeft, lastY: viewAreaElement.scrollTop, _eventHandler: debounceScroll }; - var rAF = null; - viewAreaElement.addEventListener('scroll', debounceScroll, true); + let rAF = null; + viewAreaElement.addEventListener("scroll", debounceScroll, true); return state; } function parseQueryString(query) { - var parts = query.split('&'); - var params = Object.create(null); + const parts = query.split("&"); + const params = Object.create(null); - for (var i = 0, ii = parts.length; i < ii; ++i) { - var param = parts[i].split('='); - var key = param[0].toLowerCase(); - var value = param.length > 1 ? param[1] : null; + for (let i = 0, ii = parts.length; i < ii; ++i) { + const param = parts[i].split("="); + const key = param[0].toLowerCase(); + const value = param.length > 1 ? param[1] : null; params[decodeURIComponent(key)] = decodeURIComponent(value); } @@ -3635,10 +3198,10 @@ function parseQueryString(query) { } function binarySearchFirstItem(items, condition) { - var minIndex = 0; - var maxIndex = items.length - 1; + let minIndex = 0; + let maxIndex = items.length - 1; - if (items.length === 0 || !condition(items[maxIndex])) { + if (maxIndex < 0 || !condition(items[maxIndex])) { return items.length; } @@ -3647,8 +3210,8 @@ function binarySearchFirstItem(items, condition) { } while (minIndex < maxIndex) { - var currentIndex = minIndex + maxIndex >> 1; - var currentItem = items[currentIndex]; + const currentIndex = minIndex + maxIndex >> 1; + const currentItem = items[currentIndex]; if (condition(currentItem)) { maxIndex = currentIndex; @@ -3665,8 +3228,8 @@ function approximateFraction(x) { return [x, 1]; } - var xinv = 1 / x; - var limit = 8; + const xinv = 1 / x; + const limit = 8; if (xinv > limit) { return [1, limit]; @@ -3674,15 +3237,15 @@ function approximateFraction(x) { return [1, xinv]; } - var x_ = x > 1 ? xinv : x; - var a = 0, + const x_ = x > 1 ? xinv : x; + let a = 0, b = 1, c = 1, d = 1; while (true) { - var p = a + c, - q = b + d; + const p = a + c, + q = b + d; if (q > limit) { break; @@ -3697,7 +3260,7 @@ function approximateFraction(x) { } } - var result; + let result; if (x_ - a / b < c / d - x_) { result = x_ === x ? [a, b] : [b, a]; @@ -3709,24 +3272,19 @@ function approximateFraction(x) { } function roundToDivide(x, div) { - var r = x % div; + const r = x % div; return r === 0 ? x : Math.round(x - r + div); } -function getPageSizeInches(_ref) { - var view = _ref.view, - userUnit = _ref.userUnit, - rotate = _ref.rotate; - - var _view = _slicedToArray(view, 4), - x1 = _view[0], - y1 = _view[1], - x2 = _view[2], - y2 = _view[3]; - - var changeOrientation = rotate % 180 !== 0; - var width = (x2 - x1) / 72 * userUnit; - var height = (y2 - y1) / 72 * userUnit; +function getPageSizeInches({ + view, + userUnit, + rotate +}) { + const [x1, y1, x2, y2] = view; + const changeOrientation = rotate % 180 !== 0; + const width = (x2 - x1) / 72 * userUnit; + const height = (y2 - y1) / 72 * userUnit; return { width: changeOrientation ? height : width, height: changeOrientation ? width : height @@ -3738,15 +3296,15 @@ function backtrackBeforeAllVisibleElements(index, views, top) { return index; } - var elt = views[index].div; - var pageTop = elt.offsetTop + elt.clientTop; + let elt = views[index].div; + let pageTop = elt.offsetTop + elt.clientTop; if (pageTop >= top) { elt = views[index - 1].div; pageTop = elt.offsetTop + elt.clientTop; } - for (var i = index - 2; i >= 0; --i) { + for (let i = index - 2; i >= 0; --i) { elt = views[i].div; if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) { @@ -3759,45 +3317,43 @@ function backtrackBeforeAllVisibleElements(index, views, top) { return index; } -function getVisibleElements(scrollEl, views) { - var sortByVisibility = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - var horizontal = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - var top = scrollEl.scrollTop, - bottom = top + scrollEl.clientHeight; - var left = scrollEl.scrollLeft, - right = left + scrollEl.clientWidth; +function getVisibleElements(scrollEl, views, sortByVisibility = false, horizontal = false) { + const top = scrollEl.scrollTop, + bottom = top + scrollEl.clientHeight; + const left = scrollEl.scrollLeft, + right = left + scrollEl.clientWidth; function isElementBottomAfterViewTop(view) { - var element = view.div; - var elementBottom = element.offsetTop + element.clientTop + element.clientHeight; + const element = view.div; + const elementBottom = element.offsetTop + element.clientTop + element.clientHeight; return elementBottom > top; } function isElementRightAfterViewLeft(view) { - var element = view.div; - var elementRight = element.offsetLeft + element.clientLeft + element.clientWidth; + const element = view.div; + const elementRight = element.offsetLeft + element.clientLeft + element.clientWidth; return elementRight > left; } - var visible = [], - numViews = views.length; - var firstVisibleElementInd = numViews === 0 ? 0 : binarySearchFirstItem(views, horizontal ? isElementRightAfterViewLeft : isElementBottomAfterViewTop); + const visible = [], + numViews = views.length; + let firstVisibleElementInd = numViews === 0 ? 0 : binarySearchFirstItem(views, horizontal ? isElementRightAfterViewLeft : isElementBottomAfterViewTop); if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) { firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top); } - var lastEdge = horizontal ? right : -1; + let lastEdge = horizontal ? right : -1; - for (var i = firstVisibleElementInd; i < numViews; i++) { - var view = views[i], - element = view.div; - var currentWidth = element.offsetLeft + element.clientLeft; - var currentHeight = element.offsetTop + element.clientTop; - var viewWidth = element.clientWidth, - viewHeight = element.clientHeight; - var viewRight = currentWidth + viewWidth; - var viewBottom = currentHeight + viewHeight; + for (let i = firstVisibleElementInd; i < numViews; i++) { + const view = views[i], + element = view.div; + const currentWidth = element.offsetLeft + element.clientLeft; + const currentHeight = element.offsetTop + element.clientTop; + const viewWidth = element.clientWidth, + viewHeight = element.clientHeight; + const viewRight = currentWidth + viewWidth; + const viewBottom = currentHeight + viewHeight; if (lastEdge === -1) { if (viewBottom >= bottom) { @@ -3811,24 +3367,24 @@ function getVisibleElements(scrollEl, views) { continue; } - var hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom); - var hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right); - var percent = (viewHeight - hiddenHeight) * (viewWidth - hiddenWidth) * 100 / viewHeight / viewWidth | 0; + const hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom); + const hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right); + const percent = (viewHeight - hiddenHeight) * (viewWidth - hiddenWidth) * 100 / viewHeight / viewWidth | 0; visible.push({ id: view.id, x: currentWidth, y: currentHeight, - view: view, - percent: percent + view, + percent }); } - var first = visible[0], - last = visible[visible.length - 1]; + const first = visible[0], + last = visible[visible.length - 1]; if (sortByVisibility) { visible.sort(function (a, b) { - var pc = a.percent - b.percent; + const pc = a.percent - b.percent; if (Math.abs(pc) > 0.001) { return -pc; @@ -3839,8 +3395,8 @@ function getVisibleElements(scrollEl, views) { } return { - first: first, - last: last, + first, + last, views: visible }; } @@ -3850,37 +3406,35 @@ function noContextMenuHandler(evt) { } function isDataSchema(url) { - var i = 0, - ii = url.length; + let i = 0; + const ii = url.length; - while (i < ii && url[i].trim() === '') { + while (i < ii && url[i].trim() === "") { i++; } - return url.substring(i, i + 5).toLowerCase() === 'data:'; + return url.substring(i, i + 5).toLowerCase() === "data:"; } -function getPDFFileNameFromURL(url) { - var defaultFilename = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'document.pdf'; - - if (typeof url !== 'string') { +function getPDFFileNameFromURL(url, defaultFilename = "document.pdf") { + if (typeof url !== "string") { return defaultFilename; } if (isDataSchema(url)) { - console.warn('getPDFFileNameFromURL: ' + 'ignoring "data:" URL for performance reasons.'); + console.warn("getPDFFileNameFromURL: " + 'ignoring "data:" URL for performance reasons.'); return defaultFilename; } - var reURI = /^(?:(?:[^:]+:)?\/\/[^\/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/; - var reFilename = /[^\/?#=]+\.pdf\b(?!.*\.pdf\b)/i; - var splitURI = reURI.exec(url); - var suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]); + const reURI = /^(?:(?:[^:]+:)?\/\/[^\/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/; + const reFilename = /[^\/?#=]+\.pdf\b(?!.*\.pdf\b)/i; + const splitURI = reURI.exec(url); + let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]); if (suggestedFilename) { suggestedFilename = suggestedFilename[0]; - if (suggestedFilename.includes('%')) { + if (suggestedFilename.includes("%")) { try { suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0]; } catch (ex) {} @@ -3890,18 +3444,23 @@ function getPDFFileNameFromURL(url) { return suggestedFilename || defaultFilename; } -function normalizeWheelEventDelta(evt) { - var delta = Math.sqrt(evt.deltaX * evt.deltaX + evt.deltaY * evt.deltaY); - var angle = Math.atan2(evt.deltaY, evt.deltaX); +function normalizeWheelEventDirection(evt) { + let delta = Math.sqrt(evt.deltaX * evt.deltaX + evt.deltaY * evt.deltaY); + const angle = Math.atan2(evt.deltaY, evt.deltaX); if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) { delta = -delta; } - var MOUSE_DOM_DELTA_PIXEL_MODE = 0; - var MOUSE_DOM_DELTA_LINE_MODE = 1; - var MOUSE_PIXELS_PER_LINE = 30; - var MOUSE_LINES_PER_PAGE = 30; + return delta; +} + +function normalizeWheelEventDelta(evt) { + let delta = normalizeWheelEventDirection(evt); + const MOUSE_DOM_DELTA_PIXEL_MODE = 0; + const MOUSE_DOM_DELTA_LINE_MODE = 1; + const MOUSE_PIXELS_PER_LINE = 30; + const MOUSE_LINES_PER_PAGE = 30; if (evt.deltaMode === MOUSE_DOM_DELTA_PIXEL_MODE) { delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE; @@ -3928,25 +3487,25 @@ function isPortraitOrientation(size) { return size.width <= size.height; } -var WaitOnType = { - EVENT: 'event', - TIMEOUT: 'timeout' +const WaitOnType = { + EVENT: "event", + TIMEOUT: "timeout" }; exports.WaitOnType = WaitOnType; -function waitOnEventOrTimeout(_ref2) { - var target = _ref2.target, - name = _ref2.name, - _ref2$delay = _ref2.delay, - delay = _ref2$delay === void 0 ? 0 : _ref2$delay; +function waitOnEventOrTimeout({ + target, + name, + delay = 0 +}) { return new Promise(function (resolve, reject) { - if (_typeof(target) !== 'object' || !(name && typeof name === 'string') || !(Number.isInteger(delay) && delay >= 0)) { - throw new Error('waitOnEventOrTimeout - invalid parameters.'); + if (typeof target !== "object" || !(name && typeof name === "string") || !(Number.isInteger(delay) && delay >= 0)) { + throw new Error("waitOnEventOrTimeout - invalid parameters."); } function handler(type) { if (target instanceof EventBus) { - target.off(name, eventHandler); + target._off(name, eventHandler); } else { target.removeEventListener(name, eventHandler); } @@ -3958,232 +3517,196 @@ function waitOnEventOrTimeout(_ref2) { resolve(type); } - var eventHandler = handler.bind(null, WaitOnType.EVENT); + const eventHandler = handler.bind(null, WaitOnType.EVENT); if (target instanceof EventBus) { - target.on(name, eventHandler); + target._on(name, eventHandler); } else { target.addEventListener(name, eventHandler); } - var timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT); - var timeout = setTimeout(timeoutHandler, delay); + const timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT); + const timeout = setTimeout(timeoutHandler, delay); }); } -var animationStarted = new Promise(function (resolve) { +const animationStarted = new Promise(function (resolve) { window.requestAnimationFrame(resolve); }); exports.animationStarted = animationStarted; -var EventBus = -/*#__PURE__*/ -function () { - function EventBus() { - var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref3$dispatchToDOM = _ref3.dispatchToDOM, - dispatchToDOM = _ref3$dispatchToDOM === void 0 ? false : _ref3$dispatchToDOM; - - _classCallCheck(this, EventBus); +function dispatchDOMEvent(eventName, args = null) { + throw new Error("Not implemented: dispatchDOMEvent"); +} +class EventBus { + constructor(options) { this._listeners = Object.create(null); - this._dispatchToDOM = dispatchToDOM === true; } - _createClass(EventBus, [{ - key: "on", - value: function on(eventName, listener) { - var eventListeners = this._listeners[eventName]; - - if (!eventListeners) { - eventListeners = []; - this._listeners[eventName] = eventListeners; - } - - eventListeners.push(listener); - } - }, { - key: "off", - value: function off(eventName, listener) { - var eventListeners = this._listeners[eventName]; - var i; - - if (!eventListeners || (i = eventListeners.indexOf(listener)) < 0) { - return; - } - - eventListeners.splice(i, 1); - } - }, { - key: "dispatch", - value: function dispatch(eventName) { - var eventListeners = this._listeners[eventName]; - - if (!eventListeners || eventListeners.length === 0) { - if (this._dispatchToDOM) { - var _args5 = Array.prototype.slice.call(arguments, 1); - - this._dispatchDOMEvent(eventName, _args5); - } - - return; - } - - var args = Array.prototype.slice.call(arguments, 1); - eventListeners.slice(0).forEach(function (listener) { - listener.apply(null, args); - }); - - if (this._dispatchToDOM) { - this._dispatchDOMEvent(eventName, args); - } - } - }, { - key: "_dispatchDOMEvent", - value: function _dispatchDOMEvent(eventName) { - var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - var details = Object.create(null); - - if (args && args.length > 0) { - var obj = args[0]; - - for (var key in obj) { - var value = obj[key]; - - if (key === 'source') { - if (value === window || value === document) { - return; - } - - continue; - } - - details[key] = value; - } - } - - var event = document.createEvent('CustomEvent'); - event.initCustomEvent(eventName, true, true, details); - document.dispatchEvent(event); - } - }]); - - return EventBus; -}(); - -exports.EventBus = EventBus; -var globalEventBus = null; - -function getGlobalEventBus() { - var dispatchToDOM = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - if (!globalEventBus) { - globalEventBus = new EventBus({ - dispatchToDOM: dispatchToDOM + on(eventName, listener) { + this._on(eventName, listener, { + external: true }); } - return globalEventBus; + off(eventName, listener) { + this._off(eventName, listener, { + external: true + }); + } + + dispatch(eventName) { + const eventListeners = this._listeners[eventName]; + + if (!eventListeners || eventListeners.length === 0) { + return; + } + + const args = Array.prototype.slice.call(arguments, 1); + let externalListeners; + eventListeners.slice(0).forEach(function ({ + listener, + external + }) { + if (external) { + if (!externalListeners) { + externalListeners = []; + } + + externalListeners.push(listener); + return; + } + + listener.apply(null, args); + }); + + if (externalListeners) { + externalListeners.forEach(function (listener) { + listener.apply(null, args); + }); + externalListeners = null; + } + } + + _on(eventName, listener, options = null) { + let eventListeners = this._listeners[eventName]; + + if (!eventListeners) { + this._listeners[eventName] = eventListeners = []; + } + + eventListeners.push({ + listener, + external: (options && options.external) === true + }); + } + + _off(eventName, listener, options = null) { + const eventListeners = this._listeners[eventName]; + + if (!eventListeners) { + return; + } + + for (let i = 0, ii = eventListeners.length; i < ii; i++) { + if (eventListeners[i].listener === listener) { + eventListeners.splice(i, 1); + return; + } + } + } + } +exports.EventBus = EventBus; + function clamp(v, min, max) { return Math.min(Math.max(v, min), max); } -var ProgressBar = -/*#__PURE__*/ -function () { - function ProgressBar(id) { - var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - height = _ref4.height, - width = _ref4.width, - units = _ref4.units; - - _classCallCheck(this, ProgressBar); - +class ProgressBar { + constructor(id, { + height, + width, + units + } = {}) { this.visible = true; - this.div = document.querySelector(id + ' .progress'); + this.div = document.querySelector(id + " .progress"); this.bar = this.div.parentNode; this.height = height || 100; this.width = width || 100; - this.units = units || '%'; + this.units = units || "%"; this.div.style.height = this.height + this.units; this.percent = 0; } - _createClass(ProgressBar, [{ - key: "_updateBar", - value: function _updateBar() { - if (this._indeterminate) { - this.div.classList.add('indeterminate'); - this.div.style.width = this.width + this.units; - return; - } - - this.div.classList.remove('indeterminate'); - var progressSize = this.width * this._percent / 100; - this.div.style.width = progressSize + this.units; + _updateBar() { + if (this._indeterminate) { + this.div.classList.add("indeterminate"); + this.div.style.width = this.width + this.units; + return; } - }, { - key: "setWidth", - value: function setWidth(viewer) { - if (!viewer) { - return; - } - var container = viewer.parentNode; - var scrollbarWidth = container.offsetWidth - viewer.offsetWidth; + this.div.classList.remove("indeterminate"); + const progressSize = this.width * this._percent / 100; + this.div.style.width = progressSize + this.units; + } - if (scrollbarWidth > 0) { - this.bar.setAttribute('style', 'width: calc(100% - ' + scrollbarWidth + 'px);'); - } + get percent() { + return this._percent; + } + + set percent(val) { + this._indeterminate = isNaN(val); + this._percent = clamp(val, 0, 100); + + this._updateBar(); + } + + setWidth(viewer) { + if (!viewer) { + return; } - }, { - key: "hide", - value: function hide() { - if (!this.visible) { - return; - } - this.visible = false; - this.bar.classList.add('hidden'); - document.body.classList.remove('loadingInProgress'); + const container = viewer.parentNode; + const scrollbarWidth = container.offsetWidth - viewer.offsetWidth; + + if (scrollbarWidth > 0) { + this.bar.style.width = `calc(100% - ${scrollbarWidth}px)`; } - }, { - key: "show", - value: function show() { - if (this.visible) { - return; - } + } - this.visible = true; - document.body.classList.add('loadingInProgress'); - this.bar.classList.remove('hidden'); + hide() { + if (!this.visible) { + return; } - }, { - key: "percent", - get: function get() { - return this._percent; - }, - set: function set(val) { - this._indeterminate = isNaN(val); - this._percent = clamp(val, 0, 100); - this._updateBar(); + this.visible = false; + this.bar.classList.add("hidden"); + document.body.classList.remove("loadingInProgress"); + } + + show() { + if (this.visible) { + return; } - }]); - return ProgressBar; -}(); + this.visible = true; + document.body.classList.add("loadingInProgress"); + this.bar.classList.remove("hidden"); + } + +} exports.ProgressBar = ProgressBar; function moveToEndOfArray(arr, condition) { - var moved = [], - len = arr.length; - var write = 0; + const moved = [], + len = arr.length; + let write = 0; - for (var read = 0; read < len; ++read) { + for (let read = 0; read < len; ++read) { if (condition(arr[read])) { moved.push(arr[read]); } else { @@ -4192,13 +3715,13 @@ function moveToEndOfArray(arr, condition) { } } - for (var _read = 0; write < len; ++_read, ++write) { - arr[write] = moved[_read]; + for (let read = 0; write < len; ++read, ++write) { + arr[write] = moved[read]; } } /***/ }), -/* 6 */ +/* 3 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4209,36 +3732,26 @@ Object.defineProperty(exports, "__esModule", { }); exports.OptionKind = exports.AppOptions = void 0; -var _pdfjsLib = __webpack_require__(7); +var _viewer_compatibility = __webpack_require__(4); -var _viewer_compatibility = __webpack_require__(8); - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var OptionKind = { +const OptionKind = { VIEWER: 0x02, API: 0x04, WORKER: 0x08, PREFERENCE: 0x80 }; exports.OptionKind = OptionKind; -var defaultOptions = { +const defaultOptions = { cursorToolOnLoad: { value: 0, kind: OptionKind.VIEWER + OptionKind.PREFERENCE }, defaultUrl: { - value: 'compressed.tracemonkey-pldi-09.pdf', + value: "compressed.tracemonkey-pldi-09.pdf", kind: OptionKind.VIEWER }, defaultZoomValue: { - value: '', + value: "", kind: OptionKind.VIEWER + OptionKind.PREFERENCE }, disableHistory: { @@ -4249,6 +3762,10 @@ var defaultOptions = { value: false, kind: OptionKind.VIEWER + OptionKind.PREFERENCE }, + enablePermissions: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, enablePrintAutoRotate: { value: false, kind: OptionKind.VIEWER + OptionKind.PREFERENCE @@ -4257,12 +3774,8 @@ var defaultOptions = { value: false, kind: OptionKind.VIEWER + OptionKind.PREFERENCE }, - eventBusDispatchToDOM: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, externalLinkRel: { - value: 'noopener noreferrer nofollow', + value: "noopener noreferrer nofollow", kind: OptionKind.VIEWER }, externalLinkTarget: { @@ -4273,8 +3786,12 @@ var defaultOptions = { value: false, kind: OptionKind.VIEWER + OptionKind.PREFERENCE }, + ignoreDestinationZoom: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, imageResourcesPath: { - value: './images/', + value: "./images/", kind: OptionKind.VIEWER }, maxCanvasPixels: { @@ -4286,12 +3803,16 @@ var defaultOptions = { value: false, kind: OptionKind.VIEWER + OptionKind.PREFERENCE }, + printResolution: { + value: 150, + kind: OptionKind.VIEWER + }, renderer: { - value: 'canvas', + value: "canvas", kind: OptionKind.VIEWER + OptionKind.PREFERENCE }, renderInteractiveForms: { - value: false, + value: true, kind: OptionKind.VIEWER + OptionKind.PREFERENCE }, sidebarViewOnLoad: { @@ -4323,18 +3844,13 @@ var defaultOptions = { kind: OptionKind.API }, cMapUrl: { - value: '../web/cmaps/', + value: "../web/cmaps/", kind: OptionKind.API }, disableAutoFetch: { value: false, kind: OptionKind.API + OptionKind.PREFERENCE }, - disableCreateObjectURL: { - value: false, - compatibility: _pdfjsLib.apiCompatibilityParams.disableCreateObjectURL, - kind: OptionKind.API - }, disableFontFace: { value: false, kind: OptionKind.API + OptionKind.PREFERENCE @@ -4347,6 +3863,14 @@ var defaultOptions = { value: false, kind: OptionKind.API + OptionKind.PREFERENCE }, + docBaseUrl: { + value: "", + kind: OptionKind.API + }, + fontExtraProperties: { + value: false, + kind: OptionKind.API + }, isEvalSupported: { value: true, kind: OptionKind.API @@ -4359,10 +3883,6 @@ var defaultOptions = { value: false, kind: OptionKind.API }, - postMessageTransfers: { - value: true, - kind: OptionKind.API - }, verbosity: { value: 1, kind: OptionKind.API @@ -4372,7 +3892,7 @@ var defaultOptions = { kind: OptionKind.WORKER }, workerSrc: { - value: '../build/pdf.worker.js', + value: "../build/pdf.worker.js", kind: OptionKind.WORKER } }; @@ -4382,121 +3902,102 @@ var defaultOptions = { kind: OptionKind.VIEWER }; defaultOptions.locale = { - value: typeof navigator !== 'undefined' ? navigator.language : 'en-US', - kind: OptionKind.VIEWER - }; - defaultOptions.printResolution = { - value: 150, + value: typeof navigator !== "undefined" ? navigator.language : "en-US", kind: OptionKind.VIEWER }; } -var userOptions = Object.create(null); +const userOptions = Object.create(null); -var AppOptions = -/*#__PURE__*/ -function () { - function AppOptions() { - _classCallCheck(this, AppOptions); - - throw new Error('Cannot initialize AppOptions.'); +class AppOptions { + constructor() { + throw new Error("Cannot initialize AppOptions."); } - _createClass(AppOptions, null, [{ - key: "get", - value: function get(name) { - var userOption = userOptions[name]; + static get(name) { + const userOption = userOptions[name]; - if (userOption !== undefined) { - return userOption; - } - - var defaultOption = defaultOptions[name]; - - if (defaultOption !== undefined) { - return defaultOption.compatibility || defaultOption.value; - } - - return undefined; + if (userOption !== undefined) { + return userOption; } - }, { - key: "getAll", - value: function getAll() { - var kind = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; - var options = Object.create(null); - for (var name in defaultOptions) { - var defaultOption = defaultOptions[name]; + const defaultOption = defaultOptions[name]; - if (kind) { - if ((kind & defaultOption.kind) === 0) { + if (defaultOption !== undefined) { + return defaultOption.compatibility || defaultOption.value; + } + + return undefined; + } + + static getAll(kind = null) { + const options = Object.create(null); + + for (const name in defaultOptions) { + const defaultOption = defaultOptions[name]; + + if (kind) { + if ((kind & defaultOption.kind) === 0) { + continue; + } + + if (kind === OptionKind.PREFERENCE) { + const value = defaultOption.value, + valueType = typeof value; + + if (valueType === "boolean" || valueType === "string" || valueType === "number" && Number.isInteger(value)) { + options[name] = value; continue; } - if (kind === OptionKind.PREFERENCE) { - var value = defaultOption.value, - valueType = _typeof(value); - - if (valueType === 'boolean' || valueType === 'string' || valueType === 'number' && Number.isInteger(value)) { - options[name] = value; - continue; - } - - throw new Error("Invalid type for preference: ".concat(name)); - } + throw new Error(`Invalid type for preference: ${name}`); } - - var userOption = userOptions[name]; - options[name] = userOption !== undefined ? userOption : defaultOption.compatibility || defaultOption.value; } - return options; + const userOption = userOptions[name]; + options[name] = userOption !== undefined ? userOption : defaultOption.compatibility || defaultOption.value; } - }, { - key: "set", - value: function set(name, value) { - userOptions[name] = value; - } - }, { - key: "remove", - value: function remove(name) { - delete userOptions[name]; - } - }]); - return AppOptions; -}(); + return options; + } + + static set(name, value) { + userOptions[name] = value; + } + + static remove(name) { + delete userOptions[name]; + } + +} exports.AppOptions = AppOptions; /***/ }), -/* 7 */ +/* 4 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var pdfjsLib; - -if (typeof window !== 'undefined' && window['pdfjs-dist/build/pdf']) { - pdfjsLib = window['pdfjs-dist/build/pdf']; -} else { - pdfjsLib = require('../build/pdf.js'); -} - -module.exports = pdfjsLib; - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var compatibilityParams = Object.create(null); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.viewerCompatibilityParams = void 0; +const compatibilityParams = Object.create(null); { - var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || ''; - var isAndroid = /Android/.test(userAgent); - var isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent); + const userAgent = typeof navigator !== "undefined" && navigator.userAgent || ""; + const platform = typeof navigator !== "undefined" && navigator.platform || ""; + const maxTouchPoints = typeof navigator !== "undefined" && navigator.maxTouchPoints || 1; + const isAndroid = /Android/.test(userAgent); + const isIE = /Trident/.test(userAgent); + const isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === "MacIntel" && maxTouchPoints > 1; + const isIOSChrome = /CriOS/.test(userAgent); + + (function checkOnBlobSupport() { + if (isIE || isIOSChrome) { + compatibilityParams.disableCreateObjectURL = true; + } + })(); (function checkCanvasSizeLimitation() { if (isIOS || isAndroid) { @@ -4504,10 +4005,28 @@ var compatibilityParams = Object.create(null); } })(); } -exports.viewerCompatibilityParams = Object.freeze(compatibilityParams); +const viewerCompatibilityParams = Object.freeze(compatibilityParams); +exports.viewerCompatibilityParams = viewerCompatibilityParams; /***/ }), -/* 9 */ +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +let pdfjsLib; + +if (typeof window !== "undefined" && window["pdfjs-dist/build/pdf"]) { + pdfjsLib = window["pdfjs-dist/build/pdf"]; +} else { + pdfjsLib = require("../build/pdf.js"); +} + +module.exports = pdfjsLib; + +/***/ }), +/* 6 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4518,34 +4037,21 @@ Object.defineProperty(exports, "__esModule", { }); exports.PDFCursorTools = exports.CursorTool = void 0; -var _grab_to_pan = __webpack_require__(10); +var _grab_to_pan = __webpack_require__(7); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var CursorTool = { +const CursorTool = { SELECT: 0, HAND: 1, ZOOM: 2 }; exports.CursorTool = CursorTool; -var PDFCursorTools = -/*#__PURE__*/ -function () { - function PDFCursorTools(_ref) { - var _this = this; - - var container = _ref.container, - eventBus = _ref.eventBus, - _ref$cursorToolOnLoad = _ref.cursorToolOnLoad, - cursorToolOnLoad = _ref$cursorToolOnLoad === void 0 ? CursorTool.SELECT : _ref$cursorToolOnLoad; - - _classCallCheck(this, PDFCursorTools); - +class PDFCursorTools { + constructor({ + container, + eventBus, + cursorToolOnLoad = CursorTool.SELECT + }) { this.container = container; this.eventBus = eventBus; this.active = CursorTool.SELECT; @@ -4556,109 +4062,95 @@ function () { this._addEventListeners(); - Promise.resolve().then(function () { - _this.switchTool(cursorToolOnLoad); + Promise.resolve().then(() => { + this.switchTool(cursorToolOnLoad); }); } - _createClass(PDFCursorTools, [{ - key: "switchTool", - value: function switchTool(tool) { - var _this2 = this; + get activeTool() { + return this.active; + } - if (this.activeBeforePresentationMode !== null) { - return; - } + switchTool(tool) { + if (this.activeBeforePresentationMode !== null) { + return; + } - if (tool === this.active) { - return; - } + if (tool === this.active) { + return; + } - var disableActiveTool = function disableActiveTool() { - switch (_this2.active) { - case CursorTool.SELECT: - break; - - case CursorTool.HAND: - _this2.handTool.deactivate(); - - break; - - case CursorTool.ZOOM: - } - }; - - switch (tool) { + const disableActiveTool = () => { + switch (this.active) { case CursorTool.SELECT: - disableActiveTool(); break; case CursorTool.HAND: - disableActiveTool(); - this.handTool.activate(); + this.handTool.deactivate(); break; case CursorTool.ZOOM: - default: - console.error("switchTool: \"".concat(tool, "\" is an unsupported value.")); - return; + } + }; + + switch (tool) { + case CursorTool.SELECT: + disableActiveTool(); + break; + + case CursorTool.HAND: + disableActiveTool(); + this.handTool.activate(); + break; + + case CursorTool.ZOOM: + default: + console.error(`switchTool: "${tool}" is an unsupported value.`); + return; + } + + this.active = tool; + + this._dispatchEvent(); + } + + _dispatchEvent() { + this.eventBus.dispatch("cursortoolchanged", { + source: this, + tool: this.active + }); + } + + _addEventListeners() { + this.eventBus._on("switchcursortool", evt => { + this.switchTool(evt.tool); + }); + + this.eventBus._on("presentationmodechanged", evt => { + if (evt.switchInProgress) { + return; } - this.active = tool; + let previouslyActive; - this._dispatchEvent(); - } - }, { - key: "_dispatchEvent", - value: function _dispatchEvent() { - this.eventBus.dispatch('cursortoolchanged', { - source: this, - tool: this.active - }); - } - }, { - key: "_addEventListeners", - value: function _addEventListeners() { - var _this3 = this; + if (evt.active) { + previouslyActive = this.active; + this.switchTool(CursorTool.SELECT); + this.activeBeforePresentationMode = previouslyActive; + } else { + previouslyActive = this.activeBeforePresentationMode; + this.activeBeforePresentationMode = null; + this.switchTool(previouslyActive); + } + }); + } - this.eventBus.on('switchcursortool', function (evt) { - _this3.switchTool(evt.tool); - }); - this.eventBus.on('presentationmodechanged', function (evt) { - if (evt.switchInProgress) { - return; - } - - var previouslyActive; - - if (evt.active) { - previouslyActive = _this3.active; - - _this3.switchTool(CursorTool.SELECT); - - _this3.activeBeforePresentationMode = previouslyActive; - } else { - previouslyActive = _this3.activeBeforePresentationMode; - _this3.activeBeforePresentationMode = null; - - _this3.switchTool(previouslyActive); - } - }); - } - }, { - key: "activeTool", - get: function get() { - return this.active; - } - }]); - - return PDFCursorTools; -}(); +} exports.PDFCursorTools = PDFCursorTools; /***/ }), -/* 10 */ +/* 7 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4673,7 +4165,7 @@ function GrabToPan(options) { this.element = options.element; this.document = options.element.ownerDocument; - if (typeof options.ignoreTarget === 'function') { + if (typeof options.ignoreTarget === "function") { this.ignoreTarget = options.ignoreTarget; } @@ -4684,16 +4176,16 @@ function GrabToPan(options) { this._onmousedown = this._onmousedown.bind(this); this._onmousemove = this._onmousemove.bind(this); this._endPan = this._endPan.bind(this); - var overlay = this.overlay = document.createElement('div'); - overlay.className = 'grab-to-pan-grabbing'; + const overlay = this.overlay = document.createElement("div"); + overlay.className = "grab-to-pan-grabbing"; } GrabToPan.prototype = { - CSS_CLASS_GRAB: 'grab-to-pan-grab', + CSS_CLASS_GRAB: "grab-to-pan-grab", activate: function GrabToPan_activate() { if (!this.active) { this.active = true; - this.element.addEventListener('mousedown', this._onmousedown, true); + this.element.addEventListener("mousedown", this._onmousedown, true); this.element.classList.add(this.CSS_CLASS_GRAB); if (this.onActiveChanged) { @@ -4704,7 +4196,7 @@ GrabToPan.prototype = { deactivate: function GrabToPan_deactivate() { if (this.active) { this.active = false; - this.element.removeEventListener('mousedown', this._onmousedown, true); + this.element.removeEventListener("mousedown", this._onmousedown, true); this._endPan(); @@ -4723,7 +4215,7 @@ GrabToPan.prototype = { } }, ignoreTarget: function GrabToPan_ignoreTarget(node) { - return node[matchesSelector]('a[href], a[href] *, input, textarea, button, button *, select, option'); + return node[matchesSelector]("a[href], a[href] *, input, textarea, button, button *, select, option"); }, _onmousedown: function GrabToPan__onmousedown(event) { if (event.button !== 0 || this.ignoreTarget(event.target)) { @@ -4742,19 +4234,19 @@ GrabToPan.prototype = { this.scrollTopStart = this.element.scrollTop; this.clientXStart = event.clientX; this.clientYStart = event.clientY; - this.document.addEventListener('mousemove', this._onmousemove, true); - this.document.addEventListener('mouseup', this._endPan, true); - this.element.addEventListener('scroll', this._endPan, true); + this.document.addEventListener("mousemove", this._onmousemove, true); + this.document.addEventListener("mouseup", this._endPan, true); + this.element.addEventListener("scroll", this._endPan, true); event.preventDefault(); event.stopPropagation(); - var focusedElement = document.activeElement; + const focusedElement = document.activeElement; if (focusedElement && !focusedElement.contains(event.target)) { focusedElement.blur(); } }, _onmousemove: function GrabToPan__onmousemove(event) { - this.element.removeEventListener('scroll', this._endPan, true); + this.element.removeEventListener("scroll", this._endPan, true); if (isLeftMouseReleased(event)) { this._endPan(); @@ -4762,16 +4254,16 @@ GrabToPan.prototype = { return; } - var xDiff = event.clientX - this.clientXStart; - var yDiff = event.clientY - this.clientYStart; - var scrollTop = this.scrollTopStart - yDiff; - var scrollLeft = this.scrollLeftStart - xDiff; + const xDiff = event.clientX - this.clientXStart; + const yDiff = event.clientY - this.clientYStart; + const scrollTop = this.scrollTopStart - yDiff; + const scrollLeft = this.scrollLeftStart - xDiff; if (this.element.scrollTo) { this.element.scrollTo({ top: scrollTop, left: scrollLeft, - behavior: 'instant' + behavior: "instant" }); } else { this.element.scrollTop = scrollTop; @@ -4783,21 +4275,21 @@ GrabToPan.prototype = { } }, _endPan: function GrabToPan__endPan() { - this.element.removeEventListener('scroll', this._endPan, true); - this.document.removeEventListener('mousemove', this._onmousemove, true); - this.document.removeEventListener('mouseup', this._endPan, true); + this.element.removeEventListener("scroll", this._endPan, true); + this.document.removeEventListener("mousemove", this._onmousemove, true); + this.document.removeEventListener("mouseup", this._endPan, true); this.overlay.remove(); } }; -var matchesSelector; -['webkitM', 'mozM', 'msM', 'oM', 'm'].some(function (prefix) { - var name = prefix + 'atches'; +let matchesSelector; +["webkitM", "mozM", "msM", "oM", "m"].some(function (prefix) { + let name = prefix + "atches"; if (name in document.documentElement) { matchesSelector = name; } - name += 'Selector'; + name += "Selector"; if (name in document.documentElement) { matchesSelector = name; @@ -4805,13 +4297,13 @@ var matchesSelector; return matchesSelector; }); -var isNotIEorIsIE10plus = !document.documentMode || document.documentMode > 9; -var chrome = window.chrome; -var isChrome15OrOpera15plus = chrome && (chrome.webstore || chrome.app); -var isSafari6plus = /Apple/.test(navigator.vendor) && /Version\/([6-9]\d*|[1-5]\d+)/.test(navigator.userAgent); +const isNotIEorIsIE10plus = !document.documentMode || document.documentMode > 9; +const chrome = window.chrome; +const isChrome15OrOpera15plus = chrome && (chrome.webstore || chrome.app); +const isSafari6plus = /Apple/.test(navigator.vendor) && /Version\/([6-9]\d*|[1-5]\d+)/.test(navigator.userAgent); function isLeftMouseReleased(event) { - if ('buttons' in event && isNotIEorIsIE10plus) { + if ("buttons" in event && isNotIEorIsIE10plus) { return !(event.buttons & 1); } @@ -4823,7 +4315,7 @@ function isLeftMouseReleased(event) { } /***/ }), -/* 11 */ +/* 8 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4833,15 +4325,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.PDFRenderingQueue = exports.RenderingStates = void 0; - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var CLEANUP_TIMEOUT = 30000; -var RenderingStates = { +const CLEANUP_TIMEOUT = 30000; +const RenderingStates = { INITIAL: 0, RUNNING: 1, PAUSED: 2, @@ -4849,12 +4334,8 @@ var RenderingStates = { }; exports.RenderingStates = RenderingStates; -var PDFRenderingQueue = -/*#__PURE__*/ -function () { - function PDFRenderingQueue() { - _classCallCheck(this, PDFRenderingQueue); - +class PDFRenderingQueue { + constructor() { this.pdfViewer = null; this.pdfThumbnailViewer = null; this.onIdle = null; @@ -4864,123 +4345,113 @@ function () { this.isThumbnailViewEnabled = false; } - _createClass(PDFRenderingQueue, [{ - key: "setViewer", - value: function setViewer(pdfViewer) { - this.pdfViewer = pdfViewer; - } - }, { - key: "setThumbnailViewer", - value: function setThumbnailViewer(pdfThumbnailViewer) { - this.pdfThumbnailViewer = pdfThumbnailViewer; - } - }, { - key: "isHighestPriority", - value: function isHighestPriority(view) { - return this.highestPriorityPage === view.renderingId; - } - }, { - key: "renderHighestPriority", - value: function renderHighestPriority(currentlyVisiblePages) { - if (this.idleTimeout) { - clearTimeout(this.idleTimeout); - this.idleTimeout = null; - } + setViewer(pdfViewer) { + this.pdfViewer = pdfViewer; + } - if (this.pdfViewer.forceRendering(currentlyVisiblePages)) { + setThumbnailViewer(pdfThumbnailViewer) { + this.pdfThumbnailViewer = pdfThumbnailViewer; + } + + isHighestPriority(view) { + return this.highestPriorityPage === view.renderingId; + } + + renderHighestPriority(currentlyVisiblePages) { + if (this.idleTimeout) { + clearTimeout(this.idleTimeout); + this.idleTimeout = null; + } + + if (this.pdfViewer.forceRendering(currentlyVisiblePages)) { + return; + } + + if (this.pdfThumbnailViewer && this.isThumbnailViewEnabled) { + if (this.pdfThumbnailViewer.forceRendering()) { return; } - - if (this.pdfThumbnailViewer && this.isThumbnailViewEnabled) { - if (this.pdfThumbnailViewer.forceRendering()) { - return; - } - } - - if (this.printing) { - return; - } - - if (this.onIdle) { - this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT); - } } - }, { - key: "getHighestPriority", - value: function getHighestPriority(visible, views, scrolledDown) { - var visibleViews = visible.views; - var numVisible = visibleViews.length; - if (numVisible === 0) { - return null; - } + if (this.printing) { + return; + } - for (var i = 0; i < numVisible; ++i) { - var view = visibleViews[i].view; + if (this.onIdle) { + this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT); + } + } - if (!this.isViewFinished(view)) { - return view; - } - } - - if (scrolledDown) { - var nextPageIndex = visible.last.id; - - if (views[nextPageIndex] && !this.isViewFinished(views[nextPageIndex])) { - return views[nextPageIndex]; - } - } else { - var previousPageIndex = visible.first.id - 2; - - if (views[previousPageIndex] && !this.isViewFinished(views[previousPageIndex])) { - return views[previousPageIndex]; - } - } + getHighestPriority(visible, views, scrolledDown) { + const visibleViews = visible.views; + const numVisible = visibleViews.length; + if (numVisible === 0) { return null; } - }, { - key: "isViewFinished", - value: function isViewFinished(view) { - return view.renderingState === RenderingStates.FINISHED; - } - }, { - key: "renderView", - value: function renderView(view) { - var _this = this; - switch (view.renderingState) { - case RenderingStates.FINISHED: - return false; + for (let i = 0; i < numVisible; ++i) { + const view = visibleViews[i].view; - case RenderingStates.PAUSED: - this.highestPriorityPage = view.renderingId; - view.resume(); - break; - - case RenderingStates.RUNNING: - this.highestPriorityPage = view.renderingId; - break; - - case RenderingStates.INITIAL: - this.highestPriorityPage = view.renderingId; - view.draw()["finally"](function () { - _this.renderHighestPriority(); - }); - break; + if (!this.isViewFinished(view)) { + return view; } - - return true; } - }]); - return PDFRenderingQueue; -}(); + if (scrolledDown) { + const nextPageIndex = visible.last.id; + + if (views[nextPageIndex] && !this.isViewFinished(views[nextPageIndex])) { + return views[nextPageIndex]; + } + } else { + const previousPageIndex = visible.first.id - 2; + + if (views[previousPageIndex] && !this.isViewFinished(views[previousPageIndex])) { + return views[previousPageIndex]; + } + } + + return null; + } + + isViewFinished(view) { + return view.renderingState === RenderingStates.FINISHED; + } + + renderView(view) { + switch (view.renderingState) { + case RenderingStates.FINISHED: + return false; + + case RenderingStates.PAUSED: + this.highestPriorityPage = view.renderingId; + view.resume(); + break; + + case RenderingStates.RUNNING: + this.highestPriorityPage = view.renderingId; + break; + + case RenderingStates.INITIAL: + this.highestPriorityPage = view.renderingId; + view.draw().finally(() => { + this.renderHighestPriority(); + }).catch(reason => { + console.error(`renderView: "${reason}"`); + }); + break; + } + + return true; + } + +} exports.PDFRenderingQueue = PDFRenderingQueue; /***/ }), -/* 12 */ +/* 9 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4991,18 +4462,12 @@ Object.defineProperty(exports, "__esModule", { }); exports.PDFSidebar = exports.SidebarView = void 0; -var _ui_utils = __webpack_require__(5); +var _ui_utils = __webpack_require__(2); -var _pdf_rendering_queue = __webpack_require__(11); +var _pdf_rendering_queue = __webpack_require__(8); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var UI_NOTIFICATION_CLASS = 'pdfSidebarNotification'; -var SidebarView = { +const UI_NOTIFICATION_CLASS = "pdfSidebarNotification"; +const SidebarView = { UNKNOWN: -1, NONE: 0, THUMBS: 1, @@ -5012,21 +4477,15 @@ var SidebarView = { }; exports.SidebarView = SidebarView; -var PDFSidebar = -/*#__PURE__*/ -function () { - function PDFSidebar(_ref) { - var elements = _ref.elements, - pdfViewer = _ref.pdfViewer, - pdfThumbnailViewer = _ref.pdfThumbnailViewer, - eventBus = _ref.eventBus, - _ref$l10n = _ref.l10n, - l10n = _ref$l10n === void 0 ? _ui_utils.NullL10n : _ref$l10n, - _ref$disableNotificat = _ref.disableNotification, - disableNotification = _ref$disableNotificat === void 0 ? false : _ref$disableNotificat; - - _classCallCheck(this, PDFSidebar); - +class PDFSidebar { + constructor({ + elements, + pdfViewer, + pdfThumbnailViewer, + eventBus, + l10n = _ui_utils.NullL10n, + disableNotification = false + }) { this.isOpen = false; this.active = SidebarView.THUMBS; this.isInitialViewSet = false; @@ -5039,9 +4498,11 @@ function () { this.thumbnailButton = elements.thumbnailButton; this.outlineButton = elements.outlineButton; this.attachmentsButton = elements.attachmentsButton; + this.layersButton = elements.layersButton; this.thumbnailView = elements.thumbnailView; this.outlineView = elements.outlineView; this.attachmentsView = elements.attachmentsView; + this.layersView = elements.layersView; this.eventBus = eventBus; this.l10n = l10n; this._disableNotification = disableNotification; @@ -5049,355 +4510,737 @@ function () { this._addEventListeners(); } - _createClass(PDFSidebar, [{ - key: "reset", - value: function reset() { - this.isInitialViewSet = false; + reset() { + this.isInitialViewSet = false; - this._hideUINotification(null); + this._hideUINotification(null); + this.switchView(SidebarView.THUMBS); + this.outlineButton.disabled = false; + this.attachmentsButton.disabled = false; + this.layersButton.disabled = false; + } + + get visibleView() { + return this.isOpen ? this.active : SidebarView.NONE; + } + + get isThumbnailViewVisible() { + return this.isOpen && this.active === SidebarView.THUMBS; + } + + get isOutlineViewVisible() { + return this.isOpen && this.active === SidebarView.OUTLINE; + } + + get isAttachmentsViewVisible() { + return this.isOpen && this.active === SidebarView.ATTACHMENTS; + } + + get isLayersViewVisible() { + return this.isOpen && this.active === SidebarView.LAYERS; + } + + setInitialView(view = SidebarView.NONE) { + if (this.isInitialViewSet) { + return; + } + + this.isInitialViewSet = true; + + if (view === SidebarView.NONE || view === SidebarView.UNKNOWN) { + this._dispatchEvent(); + + return; + } + + if (!this._switchView(view, true)) { + this._dispatchEvent(); + } + } + + switchView(view, forceOpen = false) { + this._switchView(view, forceOpen); + } + + _switchView(view, forceOpen = false) { + const isViewChanged = view !== this.active; + let shouldForceRendering = false; + + switch (view) { + case SidebarView.NONE: + if (this.isOpen) { + this.close(); + return true; + } + + return false; + + case SidebarView.THUMBS: + if (this.isOpen && isViewChanged) { + shouldForceRendering = true; + } + + break; + + case SidebarView.OUTLINE: + if (this.outlineButton.disabled) { + return false; + } + + break; + + case SidebarView.ATTACHMENTS: + if (this.attachmentsButton.disabled) { + return false; + } + + break; + + case SidebarView.LAYERS: + if (this.layersButton.disabled) { + return false; + } + + break; + + default: + console.error(`PDFSidebar._switchView: "${view}" is not a valid view.`); + return false; + } + + this.active = view; + this.thumbnailButton.classList.toggle("toggled", view === SidebarView.THUMBS); + this.outlineButton.classList.toggle("toggled", view === SidebarView.OUTLINE); + this.attachmentsButton.classList.toggle("toggled", view === SidebarView.ATTACHMENTS); + this.layersButton.classList.toggle("toggled", view === SidebarView.LAYERS); + this.thumbnailView.classList.toggle("hidden", view !== SidebarView.THUMBS); + this.outlineView.classList.toggle("hidden", view !== SidebarView.OUTLINE); + this.attachmentsView.classList.toggle("hidden", view !== SidebarView.ATTACHMENTS); + this.layersView.classList.toggle("hidden", view !== SidebarView.LAYERS); + + if (forceOpen && !this.isOpen) { + this.open(); + return true; + } + + if (shouldForceRendering) { + this._updateThumbnailViewer(); + + this._forceRendering(); + } + + if (isViewChanged) { + this._dispatchEvent(); + } + + this._hideUINotification(this.active); + + return isViewChanged; + } + + open() { + if (this.isOpen) { + return; + } + + this.isOpen = true; + this.toggleButton.classList.add("toggled"); + this.outerContainer.classList.add("sidebarMoving", "sidebarOpen"); + + if (this.active === SidebarView.THUMBS) { + this._updateThumbnailViewer(); + } + + this._forceRendering(); + + this._dispatchEvent(); + + this._hideUINotification(this.active); + } + + close() { + if (!this.isOpen) { + return; + } + + this.isOpen = false; + this.toggleButton.classList.remove("toggled"); + this.outerContainer.classList.add("sidebarMoving"); + this.outerContainer.classList.remove("sidebarOpen"); + + this._forceRendering(); + + this._dispatchEvent(); + } + + toggle() { + if (this.isOpen) { + this.close(); + } else { + this.open(); + } + } + + _dispatchEvent() { + this.eventBus.dispatch("sidebarviewchanged", { + source: this, + view: this.visibleView + }); + } + + _forceRendering() { + if (this.onToggled) { + this.onToggled(); + } else { + this.pdfViewer.forceRendering(); + this.pdfThumbnailViewer.forceRendering(); + } + } + + _updateThumbnailViewer() { + const { + pdfViewer, + pdfThumbnailViewer + } = this; + const pagesCount = pdfViewer.pagesCount; + + for (let pageIndex = 0; pageIndex < pagesCount; pageIndex++) { + const pageView = pdfViewer.getPageView(pageIndex); + + if (pageView && pageView.renderingState === _pdf_rendering_queue.RenderingStates.FINISHED) { + const thumbnailView = pdfThumbnailViewer.getThumbnail(pageIndex); + thumbnailView.setImage(pageView); + } + } + + pdfThumbnailViewer.scrollThumbnailIntoView(pdfViewer.currentPageNumber); + } + + _showUINotification(view) { + if (this._disableNotification) { + return; + } + + this.l10n.get("toggle_sidebar_notification2.title", null, "Toggle Sidebar (document contains outline/attachments/layers)").then(msg => { + this.toggleButton.title = msg; + }); + + if (!this.isOpen) { + this.toggleButton.classList.add(UI_NOTIFICATION_CLASS); + } else if (view === this.active) { + return; + } + + switch (view) { + case SidebarView.OUTLINE: + this.outlineButton.classList.add(UI_NOTIFICATION_CLASS); + break; + + case SidebarView.ATTACHMENTS: + this.attachmentsButton.classList.add(UI_NOTIFICATION_CLASS); + break; + + case SidebarView.LAYERS: + this.layersButton.classList.add(UI_NOTIFICATION_CLASS); + break; + } + } + + _hideUINotification(view) { + if (this._disableNotification) { + return; + } + + const removeNotification = sidebarView => { + switch (sidebarView) { + case SidebarView.OUTLINE: + this.outlineButton.classList.remove(UI_NOTIFICATION_CLASS); + break; + + case SidebarView.ATTACHMENTS: + this.attachmentsButton.classList.remove(UI_NOTIFICATION_CLASS); + break; + + case SidebarView.LAYERS: + this.layersButton.classList.remove(UI_NOTIFICATION_CLASS); + break; + } + }; + + if (!this.isOpen && view !== null) { + return; + } + + this.toggleButton.classList.remove(UI_NOTIFICATION_CLASS); + + if (view !== null) { + removeNotification(view); + return; + } + + for (view in SidebarView) { + removeNotification(SidebarView[view]); + } + + this.l10n.get("toggle_sidebar.title", null, "Toggle Sidebar").then(msg => { + this.toggleButton.title = msg; + }); + } + + _addEventListeners() { + this.viewerContainer.addEventListener("transitionend", evt => { + if (evt.target === this.viewerContainer) { + this.outerContainer.classList.remove("sidebarMoving"); + } + }); + this.toggleButton.addEventListener("click", () => { + this.toggle(); + }); + this.thumbnailButton.addEventListener("click", () => { this.switchView(SidebarView.THUMBS); - this.outlineButton.disabled = false; - this.attachmentsButton.disabled = false; - } - }, { - key: "setInitialView", - value: function setInitialView() { - var view = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SidebarView.NONE; + }); + this.outlineButton.addEventListener("click", () => { + this.switchView(SidebarView.OUTLINE); + }); + this.outlineButton.addEventListener("dblclick", () => { + this.eventBus.dispatch("toggleoutlinetree", { + source: this + }); + }); + this.attachmentsButton.addEventListener("click", () => { + this.switchView(SidebarView.ATTACHMENTS); + }); + this.layersButton.addEventListener("click", () => { + this.switchView(SidebarView.LAYERS); + }); + this.layersButton.addEventListener("dblclick", () => { + this.eventBus.dispatch("resetlayers", { + source: this + }); + }); - if (this.isInitialViewSet) { - return; + const onTreeLoaded = (count, button, view) => { + button.disabled = !count; + + if (count) { + this._showUINotification(view); + } else if (this.active === view) { + this.switchView(SidebarView.THUMBS); } + }; - this.isInitialViewSet = true; + this.eventBus._on("outlineloaded", evt => { + onTreeLoaded(evt.outlineCount, this.outlineButton, SidebarView.OUTLINE); + }); - if (view === SidebarView.NONE || view === SidebarView.UNKNOWN) { - this._dispatchEvent(); + this.eventBus._on("attachmentsloaded", evt => { + onTreeLoaded(evt.attachmentsCount, this.attachmentsButton, SidebarView.ATTACHMENTS); + }); - return; - } + this.eventBus._on("layersloaded", evt => { + onTreeLoaded(evt.layersCount, this.layersButton, SidebarView.LAYERS); + }); - if (!this._switchView(view, true)) { - this._dispatchEvent(); - } - } - }, { - key: "switchView", - value: function switchView(view) { - var forceOpen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - this._switchView(view, forceOpen); - } - }, { - key: "_switchView", - value: function _switchView(view) { - var forceOpen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var isViewChanged = view !== this.active; - var shouldForceRendering = false; - - switch (view) { - case SidebarView.NONE: - if (this.isOpen) { - this.close(); - return true; - } - - return false; - - case SidebarView.THUMBS: - if (this.isOpen && isViewChanged) { - shouldForceRendering = true; - } - - break; - - case SidebarView.OUTLINE: - if (this.outlineButton.disabled) { - return false; - } - - break; - - case SidebarView.ATTACHMENTS: - if (this.attachmentsButton.disabled) { - return false; - } - - break; - - default: - console.error("PDFSidebar._switchView: \"".concat(view, "\" is not a valid view.")); - return false; - } - - this.active = view; - this.thumbnailButton.classList.toggle('toggled', view === SidebarView.THUMBS); - this.outlineButton.classList.toggle('toggled', view === SidebarView.OUTLINE); - this.attachmentsButton.classList.toggle('toggled', view === SidebarView.ATTACHMENTS); - this.thumbnailView.classList.toggle('hidden', view !== SidebarView.THUMBS); - this.outlineView.classList.toggle('hidden', view !== SidebarView.OUTLINE); - this.attachmentsView.classList.toggle('hidden', view !== SidebarView.ATTACHMENTS); - - if (forceOpen && !this.isOpen) { - this.open(); - return true; - } - - if (shouldForceRendering) { - this._updateThumbnailViewer(); - - this._forceRendering(); - } - - if (isViewChanged) { - this._dispatchEvent(); - } - - this._hideUINotification(this.active); - - return isViewChanged; - } - }, { - key: "open", - value: function open() { - if (this.isOpen) { - return; - } - - this.isOpen = true; - this.toggleButton.classList.add('toggled'); - this.outerContainer.classList.add('sidebarMoving', 'sidebarOpen'); - - if (this.active === SidebarView.THUMBS) { + this.eventBus._on("presentationmodechanged", evt => { + if (!evt.active && !evt.switchInProgress && this.isThumbnailViewVisible) { this._updateThumbnailViewer(); } + }); + } - this._forceRendering(); - - this._dispatchEvent(); - - this._hideUINotification(this.active); - } - }, { - key: "close", - value: function close() { - if (!this.isOpen) { - return; - } - - this.isOpen = false; - this.toggleButton.classList.remove('toggled'); - this.outerContainer.classList.add('sidebarMoving'); - this.outerContainer.classList.remove('sidebarOpen'); - - this._forceRendering(); - - this._dispatchEvent(); - } - }, { - key: "toggle", - value: function toggle() { - if (this.isOpen) { - this.close(); - } else { - this.open(); - } - } - }, { - key: "_dispatchEvent", - value: function _dispatchEvent() { - this.eventBus.dispatch('sidebarviewchanged', { - source: this, - view: this.visibleView - }); - } - }, { - key: "_forceRendering", - value: function _forceRendering() { - if (this.onToggled) { - this.onToggled(); - } else { - this.pdfViewer.forceRendering(); - this.pdfThumbnailViewer.forceRendering(); - } - } - }, { - key: "_updateThumbnailViewer", - value: function _updateThumbnailViewer() { - var pdfViewer = this.pdfViewer, - pdfThumbnailViewer = this.pdfThumbnailViewer; - var pagesCount = pdfViewer.pagesCount; - - for (var pageIndex = 0; pageIndex < pagesCount; pageIndex++) { - var pageView = pdfViewer.getPageView(pageIndex); - - if (pageView && pageView.renderingState === _pdf_rendering_queue.RenderingStates.FINISHED) { - var thumbnailView = pdfThumbnailViewer.getThumbnail(pageIndex); - thumbnailView.setImage(pageView); - } - } - - pdfThumbnailViewer.scrollThumbnailIntoView(pdfViewer.currentPageNumber); - } - }, { - key: "_showUINotification", - value: function _showUINotification(view) { - var _this = this; - - if (this._disableNotification) { - return; - } - - this.l10n.get('toggle_sidebar_notification.title', null, 'Toggle Sidebar (document contains outline/attachments)').then(function (msg) { - _this.toggleButton.title = msg; - }); - - if (!this.isOpen) { - this.toggleButton.classList.add(UI_NOTIFICATION_CLASS); - } else if (view === this.active) { - return; - } - - switch (view) { - case SidebarView.OUTLINE: - this.outlineButton.classList.add(UI_NOTIFICATION_CLASS); - break; - - case SidebarView.ATTACHMENTS: - this.attachmentsButton.classList.add(UI_NOTIFICATION_CLASS); - break; - } - } - }, { - key: "_hideUINotification", - value: function _hideUINotification(view) { - var _this2 = this; - - if (this._disableNotification) { - return; - } - - var removeNotification = function removeNotification(view) { - switch (view) { - case SidebarView.OUTLINE: - _this2.outlineButton.classList.remove(UI_NOTIFICATION_CLASS); - - break; - - case SidebarView.ATTACHMENTS: - _this2.attachmentsButton.classList.remove(UI_NOTIFICATION_CLASS); - - break; - } - }; - - if (!this.isOpen && view !== null) { - return; - } - - this.toggleButton.classList.remove(UI_NOTIFICATION_CLASS); - - if (view !== null) { - removeNotification(view); - return; - } - - for (view in SidebarView) { - removeNotification(SidebarView[view]); - } - - this.l10n.get('toggle_sidebar.title', null, 'Toggle Sidebar').then(function (msg) { - _this2.toggleButton.title = msg; - }); - } - }, { - key: "_addEventListeners", - value: function _addEventListeners() { - var _this3 = this; - - this.viewerContainer.addEventListener('transitionend', function (evt) { - if (evt.target === _this3.viewerContainer) { - _this3.outerContainer.classList.remove('sidebarMoving'); - } - }); - this.thumbnailButton.addEventListener('click', function () { - _this3.switchView(SidebarView.THUMBS); - }); - this.outlineButton.addEventListener('click', function () { - _this3.switchView(SidebarView.OUTLINE); - }); - this.outlineButton.addEventListener('dblclick', function () { - _this3.eventBus.dispatch('toggleoutlinetree', { - source: _this3 - }); - }); - this.attachmentsButton.addEventListener('click', function () { - _this3.switchView(SidebarView.ATTACHMENTS); - }); - this.eventBus.on('outlineloaded', function (evt) { - var outlineCount = evt.outlineCount; - _this3.outlineButton.disabled = !outlineCount; - - if (outlineCount) { - _this3._showUINotification(SidebarView.OUTLINE); - } else if (_this3.active === SidebarView.OUTLINE) { - _this3.switchView(SidebarView.THUMBS); - } - }); - this.eventBus.on('attachmentsloaded', function (evt) { - if (evt.attachmentsCount) { - _this3.attachmentsButton.disabled = false; - - _this3._showUINotification(SidebarView.ATTACHMENTS); - - return; - } - - Promise.resolve().then(function () { - if (_this3.attachmentsView.hasChildNodes()) { - return; - } - - _this3.attachmentsButton.disabled = true; - - if (_this3.active === SidebarView.ATTACHMENTS) { - _this3.switchView(SidebarView.THUMBS); - } - }); - }); - this.eventBus.on('presentationmodechanged', function (evt) { - if (!evt.active && !evt.switchInProgress && _this3.isThumbnailViewVisible) { - _this3._updateThumbnailViewer(); - } - }); - } - }, { - key: "visibleView", - get: function get() { - return this.isOpen ? this.active : SidebarView.NONE; - } - }, { - key: "isThumbnailViewVisible", - get: function get() { - return this.isOpen && this.active === SidebarView.THUMBS; - } - }, { - key: "isOutlineViewVisible", - get: function get() { - return this.isOpen && this.active === SidebarView.OUTLINE; - } - }, { - key: "isAttachmentsViewVisible", - get: function get() { - return this.isOpen && this.active === SidebarView.ATTACHMENTS; - } - }]); - - return PDFSidebar; -}(); +} exports.PDFSidebar = PDFSidebar; +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.OverlayManager = void 0; + +class OverlayManager { + constructor() { + this._overlays = {}; + this._active = null; + this._keyDownBound = this._keyDown.bind(this); + } + + get active() { + return this._active; + } + + async register(name, element, callerCloseMethod = null, canForceClose = false) { + let container; + + if (!name || !element || !(container = element.parentNode)) { + throw new Error("Not enough parameters."); + } else if (this._overlays[name]) { + throw new Error("The overlay is already registered."); + } + + this._overlays[name] = { + element, + container, + callerCloseMethod, + canForceClose + }; + } + + async unregister(name) { + if (!this._overlays[name]) { + throw new Error("The overlay does not exist."); + } else if (this._active === name) { + throw new Error("The overlay cannot be removed while it is active."); + } + + delete this._overlays[name]; + } + + async open(name) { + if (!this._overlays[name]) { + throw new Error("The overlay does not exist."); + } else if (this._active) { + if (this._overlays[name].canForceClose) { + this._closeThroughCaller(); + } else if (this._active === name) { + throw new Error("The overlay is already active."); + } else { + throw new Error("Another overlay is currently active."); + } + } + + this._active = name; + + this._overlays[this._active].element.classList.remove("hidden"); + + this._overlays[this._active].container.classList.remove("hidden"); + + window.addEventListener("keydown", this._keyDownBound); + } + + async close(name) { + if (!this._overlays[name]) { + throw new Error("The overlay does not exist."); + } else if (!this._active) { + throw new Error("The overlay is currently not active."); + } else if (this._active !== name) { + throw new Error("Another overlay is currently active."); + } + + this._overlays[this._active].container.classList.add("hidden"); + + this._overlays[this._active].element.classList.add("hidden"); + + this._active = null; + window.removeEventListener("keydown", this._keyDownBound); + } + + _keyDown(evt) { + if (this._active && evt.keyCode === 27) { + this._closeThroughCaller(); + + evt.preventDefault(); + } + } + + _closeThroughCaller() { + if (this._overlays[this._active].callerCloseMethod) { + this._overlays[this._active].callerCloseMethod(); + } + + if (this._active) { + this.close(this._active); + } + } + +} + +exports.OverlayManager = OverlayManager; + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PasswordPrompt = void 0; + +var _ui_utils = __webpack_require__(2); + +var _pdfjsLib = __webpack_require__(5); + +class PasswordPrompt { + constructor(options, overlayManager, l10n = _ui_utils.NullL10n) { + this.overlayName = options.overlayName; + this.container = options.container; + this.label = options.label; + this.input = options.input; + this.submitButton = options.submitButton; + this.cancelButton = options.cancelButton; + this.overlayManager = overlayManager; + this.l10n = l10n; + this.updateCallback = null; + this.reason = null; + this.submitButton.addEventListener("click", this.verify.bind(this)); + this.cancelButton.addEventListener("click", this.close.bind(this)); + this.input.addEventListener("keydown", e => { + if (e.keyCode === 13) { + this.verify(); + } + }); + this.overlayManager.register(this.overlayName, this.container, this.close.bind(this), true); + } + + open() { + this.overlayManager.open(this.overlayName).then(() => { + this.input.focus(); + let promptString; + + if (this.reason === _pdfjsLib.PasswordResponses.INCORRECT_PASSWORD) { + promptString = this.l10n.get("password_invalid", null, "Invalid password. Please try again."); + } else { + promptString = this.l10n.get("password_label", null, "Enter the password to open this PDF file."); + } + + promptString.then(msg => { + this.label.textContent = msg; + }); + }); + } + + close() { + this.overlayManager.close(this.overlayName).then(() => { + this.input.value = ""; + }); + } + + verify() { + const password = this.input.value; + + if (password && password.length > 0) { + this.close(); + this.updateCallback(password); + } + } + + setUpdateCallback(updateCallback, reason) { + this.updateCallback = updateCallback; + this.reason = reason; + } + +} + +exports.PasswordPrompt = PasswordPrompt; + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFAttachmentViewer = void 0; + +var _pdfjsLib = __webpack_require__(5); + +var _base_tree_viewer = __webpack_require__(13); + +var _viewer_compatibility = __webpack_require__(4); + +const PdfFileRegExp = /\.pdf$/i; + +class PDFAttachmentViewer extends _base_tree_viewer.BaseTreeViewer { + constructor(options) { + super(options); + this.downloadManager = options.downloadManager; + + this.eventBus._on("fileattachmentannotation", this._appendAttachment.bind(this)); + } + + reset(keepRenderedCapability = false) { + super.reset(); + this._attachments = null; + + if (!keepRenderedCapability) { + this._renderedCapability = (0, _pdfjsLib.createPromiseCapability)(); + } + + if (this._pendingDispatchEvent) { + clearTimeout(this._pendingDispatchEvent); + } + + this._pendingDispatchEvent = null; + } + + _dispatchEvent(attachmentsCount) { + this._renderedCapability.resolve(); + + if (this._pendingDispatchEvent) { + clearTimeout(this._pendingDispatchEvent); + this._pendingDispatchEvent = null; + } + + if (attachmentsCount === 0) { + this._pendingDispatchEvent = setTimeout(() => { + this.eventBus.dispatch("attachmentsloaded", { + source: this, + attachmentsCount: 0 + }); + this._pendingDispatchEvent = null; + }); + return; + } + + this.eventBus.dispatch("attachmentsloaded", { + source: this, + attachmentsCount + }); + } + + _bindPdfLink(element, { + content, + filename + }) { + let blobUrl; + + element.onclick = () => { + if (!blobUrl) { + blobUrl = URL.createObjectURL(new Blob([content], { + type: "application/pdf" + })); + } + + let viewerUrl; + viewerUrl = "?file=" + encodeURIComponent(blobUrl + "#" + filename); + + try { + window.open(viewerUrl); + } catch (ex) { + console.error(`_bindPdfLink: ${ex}`); + URL.revokeObjectURL(blobUrl); + blobUrl = null; + this.downloadManager.downloadData(content, filename, "application/pdf"); + } + + return false; + }; + } + + _bindLink(element, { + content, + filename + }) { + element.onclick = () => { + const contentType = PdfFileRegExp.test(filename) ? "application/pdf" : ""; + this.downloadManager.downloadData(content, filename, contentType); + return false; + }; + } + + render({ + attachments, + keepRenderedCapability = false + }) { + if (this._attachments) { + this.reset(keepRenderedCapability); + } + + this._attachments = attachments || null; + + if (!attachments) { + this._dispatchEvent(0); + + return; + } + + const names = Object.keys(attachments).sort(function (a, b) { + return a.toLowerCase().localeCompare(b.toLowerCase()); + }); + const fragment = document.createDocumentFragment(); + let attachmentsCount = 0; + + for (const name of names) { + const item = attachments[name]; + const filename = (0, _pdfjsLib.getFilenameFromUrl)(item.filename); + const div = document.createElement("div"); + div.className = "treeItem"; + const element = document.createElement("a"); + + if (PdfFileRegExp.test(filename) && !_viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL) { + this._bindPdfLink(element, { + content: item.content, + filename + }); + } else { + this._bindLink(element, { + content: item.content, + filename + }); + } + + element.textContent = this._normalizeTextContent(filename); + div.appendChild(element); + fragment.appendChild(div); + attachmentsCount++; + } + + this.container.appendChild(fragment); + + this._dispatchEvent(attachmentsCount); + } + + _appendAttachment({ + id, + filename, + content + }) { + const renderedPromise = this._renderedCapability.promise; + renderedPromise.then(() => { + if (renderedPromise !== this._renderedCapability.promise) { + return; + } + + let attachments = this._attachments; + + if (!attachments) { + attachments = Object.create(null); + } else { + for (const name in attachments) { + if (id === name) { + return; + } + } + } + + attachments[id] = { + filename, + content + }; + this.render({ + attachments, + keepRenderedCapability: true + }); + }); + } + +} + +exports.PDFAttachmentViewer = PDFAttachmentViewer; + /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { @@ -5408,282 +5251,80 @@ exports.PDFSidebar = PDFSidebar; Object.defineProperty(exports, "__esModule", { value: true }); -exports.OverlayManager = void 0; +exports.BaseTreeViewer = void 0; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); +var _pdfjsLib = __webpack_require__(5); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +class BaseTreeViewer { + constructor(options) { + if (this.constructor === BaseTreeViewer) { + throw new Error("Cannot initialize BaseTreeViewer."); + } -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var OverlayManager = -/*#__PURE__*/ -function () { - function OverlayManager() { - _classCallCheck(this, OverlayManager); - - this._overlays = {}; - this._active = null; - this._keyDownBound = this._keyDown.bind(this); + this.container = options.container; + this.eventBus = options.eventBus; + this.reset(); } - _createClass(OverlayManager, [{ - key: "register", - value: function () { - var _register = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(name, element) { - var callerCloseMethod, - canForceClose, - container, - _args = arguments; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - callerCloseMethod = _args.length > 2 && _args[2] !== undefined ? _args[2] : null; - canForceClose = _args.length > 3 && _args[3] !== undefined ? _args[3] : false; + reset() { + this._lastToggleIsShow = true; + this.container.textContent = ""; + this.container.classList.remove("treeWithDeepNesting"); + } - if (!(!name || !element || !(container = element.parentNode))) { - _context.next = 6; - break; - } + _dispatchEvent(count) { + throw new Error("Not implemented: _dispatchEvent"); + } - throw new Error('Not enough parameters.'); + _bindLink(element, params) { + throw new Error("Not implemented: _bindLink"); + } - case 6: - if (!this._overlays[name]) { - _context.next = 8; - break; - } + _normalizeTextContent(str) { + return (0, _pdfjsLib.removeNullCharacters)(str) || "\u2013"; + } - throw new Error('The overlay is already registered.'); + _addToggleButton(div, hidden = false) { + const toggler = document.createElement("div"); + toggler.className = "treeItemToggler"; - case 8: - this._overlays[name] = { - element: element, - container: container, - callerCloseMethod: callerCloseMethod, - canForceClose: canForceClose - }; - - case 9: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function register(_x, _x2) { - return _register.apply(this, arguments); - } - - return register; - }() - }, { - key: "unregister", - value: function () { - var _unregister = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2(name) { - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (this._overlays[name]) { - _context2.next = 4; - break; - } - - throw new Error('The overlay does not exist.'); - - case 4: - if (!(this._active === name)) { - _context2.next = 6; - break; - } - - throw new Error('The overlay cannot be removed while it is active.'); - - case 6: - delete this._overlays[name]; - - case 7: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function unregister(_x3) { - return _unregister.apply(this, arguments); - } - - return unregister; - }() - }, { - key: "open", - value: function () { - var _open = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee3(name) { - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - if (this._overlays[name]) { - _context3.next = 4; - break; - } - - throw new Error('The overlay does not exist.'); - - case 4: - if (!this._active) { - _context3.next = 14; - break; - } - - if (!this._overlays[name].canForceClose) { - _context3.next = 9; - break; - } - - this._closeThroughCaller(); - - _context3.next = 14; - break; - - case 9: - if (!(this._active === name)) { - _context3.next = 13; - break; - } - - throw new Error('The overlay is already active.'); - - case 13: - throw new Error('Another overlay is currently active.'); - - case 14: - this._active = name; - - this._overlays[this._active].element.classList.remove('hidden'); - - this._overlays[this._active].container.classList.remove('hidden'); - - window.addEventListener('keydown', this._keyDownBound); - - case 18: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - - function open(_x4) { - return _open.apply(this, arguments); - } - - return open; - }() - }, { - key: "close", - value: function () { - var _close = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee4(name) { - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - if (this._overlays[name]) { - _context4.next = 4; - break; - } - - throw new Error('The overlay does not exist.'); - - case 4: - if (this._active) { - _context4.next = 8; - break; - } - - throw new Error('The overlay is currently not active.'); - - case 8: - if (!(this._active !== name)) { - _context4.next = 10; - break; - } - - throw new Error('Another overlay is currently active.'); - - case 10: - this._overlays[this._active].container.classList.add('hidden'); - - this._overlays[this._active].element.classList.add('hidden'); - - this._active = null; - window.removeEventListener('keydown', this._keyDownBound); - - case 14: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - - function close(_x5) { - return _close.apply(this, arguments); - } - - return close; - }() - }, { - key: "_keyDown", - value: function _keyDown(evt) { - if (this._active && evt.keyCode === 27) { - this._closeThroughCaller(); - - evt.preventDefault(); - } + if (hidden) { + toggler.classList.add("treeItemsHidden"); } - }, { - key: "_closeThroughCaller", - value: function _closeThroughCaller() { - if (this._overlays[this._active].callerCloseMethod) { - this._overlays[this._active].callerCloseMethod(); + + toggler.onclick = evt => { + evt.stopPropagation(); + toggler.classList.toggle("treeItemsHidden"); + + if (evt.shiftKey) { + const shouldShowAll = !toggler.classList.contains("treeItemsHidden"); + + this._toggleTreeItem(div, shouldShowAll); } + }; - if (this._active) { - this.close(this._active); - } + div.insertBefore(toggler, div.firstChild); + } + + _toggleTreeItem(root, show = false) { + this._lastToggleIsShow = show; + + for (const toggler of root.querySelectorAll(".treeItemToggler")) { + toggler.classList.toggle("treeItemsHidden", !show); } - }, { - key: "active", - get: function get() { - return this._active; - } - }]); + } - return OverlayManager; -}(); + _toggleAllTreeItems() { + this._toggleTreeItem(this.container, !this._lastToggleIsShow); + } -exports.OverlayManager = OverlayManager; + render(params) { + throw new Error("Not implemented: render"); + } + +} + +exports.BaseTreeViewer = BaseTreeViewer; /***/ }), /* 14 */ @@ -5695,100 +5336,290 @@ exports.OverlayManager = OverlayManager; Object.defineProperty(exports, "__esModule", { value: true }); -exports.PasswordPrompt = void 0; +exports.PDFDocumentProperties = void 0; -var _ui_utils = __webpack_require__(5); +var _pdfjsLib = __webpack_require__(5); -var _pdfjsLib = __webpack_require__(7); +var _ui_utils = __webpack_require__(2); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +const DEFAULT_FIELD_CONTENT = "-"; +const NON_METRIC_LOCALES = ["en-us", "en-lr", "my"]; +const US_PAGE_NAMES = { + "8.5x11": "Letter", + "8.5x14": "Legal" +}; +const METRIC_PAGE_NAMES = { + "297x420": "A3", + "210x297": "A4" +}; -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } +function getPageName(size, isPortrait, pageNames) { + const width = isPortrait ? size.width : size.height; + const height = isPortrait ? size.height : size.width; + return pageNames[`${width}x${height}`]; +} -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var PasswordPrompt = -/*#__PURE__*/ -function () { - function PasswordPrompt(options, overlayManager) { - var _this = this; - - var l10n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _ui_utils.NullL10n; - - _classCallCheck(this, PasswordPrompt); - - this.overlayName = options.overlayName; - this.container = options.container; - this.label = options.label; - this.input = options.input; - this.submitButton = options.submitButton; - this.cancelButton = options.cancelButton; +class PDFDocumentProperties { + constructor({ + overlayName, + fields, + container, + closeButton + }, overlayManager, eventBus, l10n = _ui_utils.NullL10n) { + this.overlayName = overlayName; + this.fields = fields; + this.container = container; this.overlayManager = overlayManager; this.l10n = l10n; - this.updateCallback = null; - this.reason = null; - this.submitButton.addEventListener('click', this.verify.bind(this)); - this.cancelButton.addEventListener('click', this.close.bind(this)); - this.input.addEventListener('keydown', function (e) { - if (e.keyCode === 13) { - _this.verify(); - } + + this._reset(); + + closeButton.addEventListener("click", this.close.bind(this)); + this.overlayManager.register(this.overlayName, this.container, this.close.bind(this)); + + eventBus._on("pagechanging", evt => { + this._currentPageNumber = evt.pageNumber; + }); + + eventBus._on("rotationchanging", evt => { + this._pagesRotation = evt.pagesRotation; + }); + + this._isNonMetricLocale = true; + l10n.getLanguage().then(locale => { + this._isNonMetricLocale = NON_METRIC_LOCALES.includes(locale); }); - this.overlayManager.register(this.overlayName, this.container, this.close.bind(this), true); } - _createClass(PasswordPrompt, [{ - key: "open", - value: function open() { - var _this2 = this; + open() { + const freezeFieldData = data => { + Object.defineProperty(this, "fieldData", { + value: Object.freeze(data), + writable: false, + enumerable: true, + configurable: true + }); + }; - this.overlayManager.open(this.overlayName).then(function () { - _this2.input.focus(); + Promise.all([this.overlayManager.open(this.overlayName), this._dataAvailableCapability.promise]).then(() => { + const currentPageNumber = this._currentPageNumber; + const pagesRotation = this._pagesRotation; - var promptString; + if (this.fieldData && currentPageNumber === this.fieldData._currentPageNumber && pagesRotation === this.fieldData._pagesRotation) { + this._updateUI(); - if (_this2.reason === _pdfjsLib.PasswordResponses.INCORRECT_PASSWORD) { - promptString = _this2.l10n.get('password_invalid', null, 'Invalid password. Please try again.'); - } else { - promptString = _this2.l10n.get('password_label', null, 'Enter the password to open this PDF file.'); + return; + } + + this.pdfDocument.getMetadata().then(({ + info, + metadata, + contentDispositionFilename + }) => { + return Promise.all([info, metadata, contentDispositionFilename || (0, _ui_utils.getPDFFileNameFromURL)(this.url), this._parseFileSize(this.maybeFileSize), this._parseDate(info.CreationDate), this._parseDate(info.ModDate), this.pdfDocument.getPage(currentPageNumber).then(pdfPage => { + return this._parsePageSize((0, _ui_utils.getPageSizeInches)(pdfPage), pagesRotation); + }), this._parseLinearization(info.IsLinearized)]); + }).then(([info, metadata, fileName, fileSize, creationDate, modDate, pageSize, isLinearized]) => { + freezeFieldData({ + fileName, + fileSize, + title: info.Title, + author: info.Author, + subject: info.Subject, + keywords: info.Keywords, + creationDate, + modificationDate: modDate, + creator: info.Creator, + producer: info.Producer, + version: info.PDFFormatVersion, + pageCount: this.pdfDocument.numPages, + pageSize, + linearized: isLinearized, + _currentPageNumber: currentPageNumber, + _pagesRotation: pagesRotation + }); + + this._updateUI(); + + return this.pdfDocument.getDownloadInfo(); + }).then(({ + length + }) => { + this.maybeFileSize = length; + return this._parseFileSize(length); + }).then(fileSize => { + if (fileSize === this.fieldData.fileSize) { + return; } - promptString.then(function (msg) { - _this2.label.textContent = msg; - }); - }); - } - }, { - key: "close", - value: function close() { - var _this3 = this; + const data = Object.assign(Object.create(null), this.fieldData); + data.fileSize = fileSize; + freezeFieldData(data); - this.overlayManager.close(this.overlayName).then(function () { - _this3.input.value = ''; + this._updateUI(); }); - } - }, { - key: "verify", - value: function verify() { - var password = this.input.value; + }); + } - if (password && password.length > 0) { - this.close(); - this.updateCallback(password); + close() { + this.overlayManager.close(this.overlayName); + } + + setDocument(pdfDocument, url = null) { + if (this.pdfDocument) { + this._reset(); + + this._updateUI(true); + } + + if (!pdfDocument) { + return; + } + + this.pdfDocument = pdfDocument; + this.url = url; + + this._dataAvailableCapability.resolve(); + } + + setFileSize(fileSize) { + if (Number.isInteger(fileSize) && fileSize > 0) { + this.maybeFileSize = fileSize; + } + } + + _reset() { + this.pdfDocument = null; + this.url = null; + this.maybeFileSize = 0; + delete this.fieldData; + this._dataAvailableCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._currentPageNumber = 1; + this._pagesRotation = 0; + } + + _updateUI(reset = false) { + if (reset || !this.fieldData) { + for (const id in this.fields) { + this.fields[id].textContent = DEFAULT_FIELD_CONTENT; + } + + return; + } + + if (this.overlayManager.active !== this.overlayName) { + return; + } + + for (const id in this.fields) { + const content = this.fieldData[id]; + this.fields[id].textContent = content || content === 0 ? content : DEFAULT_FIELD_CONTENT; + } + } + + async _parseFileSize(fileSize = 0) { + const kb = fileSize / 1024; + + if (!kb) { + return undefined; + } else if (kb < 1024) { + return this.l10n.get("document_properties_kb", { + size_kb: (+kb.toPrecision(3)).toLocaleString(), + size_b: fileSize.toLocaleString() + }, "{{size_kb}} KB ({{size_b}} bytes)"); + } + + return this.l10n.get("document_properties_mb", { + size_mb: (+(kb / 1024).toPrecision(3)).toLocaleString(), + size_b: fileSize.toLocaleString() + }, "{{size_mb}} MB ({{size_b}} bytes)"); + } + + async _parsePageSize(pageSizeInches, pagesRotation) { + if (!pageSizeInches) { + return undefined; + } + + if (pagesRotation % 180 !== 0) { + pageSizeInches = { + width: pageSizeInches.height, + height: pageSizeInches.width + }; + } + + const isPortrait = (0, _ui_utils.isPortraitOrientation)(pageSizeInches); + let sizeInches = { + width: Math.round(pageSizeInches.width * 100) / 100, + height: Math.round(pageSizeInches.height * 100) / 100 + }; + let sizeMillimeters = { + width: Math.round(pageSizeInches.width * 25.4 * 10) / 10, + height: Math.round(pageSizeInches.height * 25.4 * 10) / 10 + }; + let pageName = null; + let rawName = getPageName(sizeInches, isPortrait, US_PAGE_NAMES) || getPageName(sizeMillimeters, isPortrait, METRIC_PAGE_NAMES); + + if (!rawName && !(Number.isInteger(sizeMillimeters.width) && Number.isInteger(sizeMillimeters.height))) { + const exactMillimeters = { + width: pageSizeInches.width * 25.4, + height: pageSizeInches.height * 25.4 + }; + const intMillimeters = { + width: Math.round(sizeMillimeters.width), + height: Math.round(sizeMillimeters.height) + }; + + if (Math.abs(exactMillimeters.width - intMillimeters.width) < 0.1 && Math.abs(exactMillimeters.height - intMillimeters.height) < 0.1) { + rawName = getPageName(intMillimeters, isPortrait, METRIC_PAGE_NAMES); + + if (rawName) { + sizeInches = { + width: Math.round(intMillimeters.width / 25.4 * 100) / 100, + height: Math.round(intMillimeters.height / 25.4 * 100) / 100 + }; + sizeMillimeters = intMillimeters; + } } } - }, { - key: "setUpdateCallback", - value: function setUpdateCallback(updateCallback, reason) { - this.updateCallback = updateCallback; - this.reason = reason; + + if (rawName) { + pageName = this.l10n.get("document_properties_page_size_name_" + rawName.toLowerCase(), null, rawName); } - }]); - return PasswordPrompt; -}(); + return Promise.all([this._isNonMetricLocale ? sizeInches : sizeMillimeters, this.l10n.get("document_properties_page_size_unit_" + (this._isNonMetricLocale ? "inches" : "millimeters"), null, this._isNonMetricLocale ? "in" : "mm"), pageName, this.l10n.get("document_properties_page_size_orientation_" + (isPortrait ? "portrait" : "landscape"), null, isPortrait ? "portrait" : "landscape")]).then(([{ + width, + height + }, unit, name, orientation]) => { + return this.l10n.get("document_properties_page_size_dimension_" + (name ? "name_" : "") + "string", { + width: width.toLocaleString(), + height: height.toLocaleString(), + unit, + name, + orientation + }, "{{width}} × {{height}} {{unit}} (" + (name ? "{{name}}, " : "") + "{{orientation}})"); + }); + } -exports.PasswordPrompt = PasswordPrompt; + async _parseDate(inputDate) { + const dateObject = _pdfjsLib.PDFDateString.toDateObject(inputDate); + + if (!dateObject) { + return undefined; + } + + return this.l10n.get("document_properties_date_string", { + date: dateObject.toLocaleDateString(), + time: dateObject.toLocaleTimeString() + }, "{{date}}, {{time}}"); + } + + _parseLinearization(isLinearized) { + return this.l10n.get("document_properties_linearized_" + (isLinearized ? "yes" : "no"), null, isLinearized ? "Yes" : "No"); + } + +} + +exports.PDFDocumentProperties = PDFDocumentProperties; /***/ }), /* 15 */ @@ -5797,657 +5628,19 @@ exports.PasswordPrompt = PasswordPrompt; "use strict"; -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.PDFAttachmentViewer = void 0; - -var _pdfjsLib = __webpack_require__(7); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var PDFAttachmentViewer = -/*#__PURE__*/ -function () { - function PDFAttachmentViewer(_ref) { - var container = _ref.container, - eventBus = _ref.eventBus, - downloadManager = _ref.downloadManager; - - _classCallCheck(this, PDFAttachmentViewer); - - this.container = container; - this.eventBus = eventBus; - this.downloadManager = downloadManager; - this.reset(); - this.eventBus.on('fileattachmentannotation', this._appendAttachment.bind(this)); - } - - _createClass(PDFAttachmentViewer, [{ - key: "reset", - value: function reset() { - var keepRenderedCapability = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - this.attachments = null; - this.container.textContent = ''; - - if (!keepRenderedCapability) { - this._renderedCapability = (0, _pdfjsLib.createPromiseCapability)(); - } - } - }, { - key: "_dispatchEvent", - value: function _dispatchEvent(attachmentsCount) { - this._renderedCapability.resolve(); - - this.eventBus.dispatch('attachmentsloaded', { - source: this, - attachmentsCount: attachmentsCount - }); - } - }, { - key: "_bindPdfLink", - value: function _bindPdfLink(button, content, filename) { - if (this.downloadManager.disableCreateObjectURL) { - throw new Error('bindPdfLink: Unsupported "disableCreateObjectURL" value.'); - } - - var blobUrl; - - button.onclick = function () { - if (!blobUrl) { - blobUrl = (0, _pdfjsLib.createObjectURL)(content, 'application/pdf'); - } - - var viewerUrl; - viewerUrl = '?file=' + encodeURIComponent(blobUrl + '#' + filename); - window.open(viewerUrl); - return false; - }; - } - }, { - key: "_bindLink", - value: function _bindLink(button, content, filename) { - var _this = this; - - button.onclick = function () { - _this.downloadManager.downloadData(content, filename, ''); - - return false; - }; - } - }, { - key: "render", - value: function render(_ref2) { - var attachments = _ref2.attachments, - _ref2$keepRenderedCap = _ref2.keepRenderedCapability, - keepRenderedCapability = _ref2$keepRenderedCap === void 0 ? false : _ref2$keepRenderedCap; - var attachmentsCount = 0; - - if (this.attachments) { - this.reset(keepRenderedCapability === true); - } - - this.attachments = attachments || null; - - if (!attachments) { - this._dispatchEvent(attachmentsCount); - - return; - } - - var names = Object.keys(attachments).sort(function (a, b) { - return a.toLowerCase().localeCompare(b.toLowerCase()); - }); - attachmentsCount = names.length; - - for (var i = 0; i < attachmentsCount; i++) { - var item = attachments[names[i]]; - var filename = (0, _pdfjsLib.removeNullCharacters)((0, _pdfjsLib.getFilenameFromUrl)(item.filename)); - var div = document.createElement('div'); - div.className = 'attachmentsItem'; - var button = document.createElement('button'); - button.textContent = filename; - - if (/\.pdf$/i.test(filename) && !this.downloadManager.disableCreateObjectURL) { - this._bindPdfLink(button, item.content, filename); - } else { - this._bindLink(button, item.content, filename); - } - - div.appendChild(button); - this.container.appendChild(div); - } - - this._dispatchEvent(attachmentsCount); - } - }, { - key: "_appendAttachment", - value: function _appendAttachment(_ref3) { - var _this2 = this; - - var id = _ref3.id, - filename = _ref3.filename, - content = _ref3.content; - - this._renderedCapability.promise.then(function () { - var attachments = _this2.attachments; - - if (!attachments) { - attachments = Object.create(null); - } else { - for (var name in attachments) { - if (id === name) { - return; - } - } - } - - attachments[id] = { - filename: filename, - content: content - }; - - _this2.render({ - attachments: attachments, - keepRenderedCapability: true - }); - }); - } - }]); - - return PDFAttachmentViewer; -}(); - -exports.PDFAttachmentViewer = PDFAttachmentViewer; - -/***/ }), -/* 16 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.PDFDocumentProperties = void 0; - -var _regenerator = _interopRequireDefault(__webpack_require__(2)); - -var _pdfjsLib = __webpack_require__(7); - -var _ui_utils = __webpack_require__(5); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var DEFAULT_FIELD_CONTENT = '-'; -var NON_METRIC_LOCALES = ['en-us', 'en-lr', 'my']; -var US_PAGE_NAMES = { - '8.5x11': 'Letter', - '8.5x14': 'Legal' -}; -var METRIC_PAGE_NAMES = { - '297x420': 'A3', - '210x297': 'A4' -}; - -function getPageName(size, isPortrait, pageNames) { - var width = isPortrait ? size.width : size.height; - var height = isPortrait ? size.height : size.width; - return pageNames["".concat(width, "x").concat(height)]; -} - -var PDFDocumentProperties = -/*#__PURE__*/ -function () { - function PDFDocumentProperties(_ref, overlayManager, eventBus) { - var _this = this; - - var overlayName = _ref.overlayName, - fields = _ref.fields, - container = _ref.container, - closeButton = _ref.closeButton; - var l10n = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _ui_utils.NullL10n; - - _classCallCheck(this, PDFDocumentProperties); - - this.overlayName = overlayName; - this.fields = fields; - this.container = container; - this.overlayManager = overlayManager; - this.l10n = l10n; - - this._reset(); - - if (closeButton) { - closeButton.addEventListener('click', this.close.bind(this)); - } - - this.overlayManager.register(this.overlayName, this.container, this.close.bind(this)); - - if (eventBus) { - eventBus.on('pagechanging', function (evt) { - _this._currentPageNumber = evt.pageNumber; - }); - eventBus.on('rotationchanging', function (evt) { - _this._pagesRotation = evt.pagesRotation; - }); - } - - this._isNonMetricLocale = true; - l10n.getLanguage().then(function (locale) { - _this._isNonMetricLocale = NON_METRIC_LOCALES.includes(locale); - }); - } - - _createClass(PDFDocumentProperties, [{ - key: "open", - value: function open() { - var _this2 = this; - - var freezeFieldData = function freezeFieldData(data) { - Object.defineProperty(_this2, 'fieldData', { - value: Object.freeze(data), - writable: false, - enumerable: true, - configurable: true - }); - }; - - Promise.all([this.overlayManager.open(this.overlayName), this._dataAvailableCapability.promise]).then(function () { - var currentPageNumber = _this2._currentPageNumber; - var pagesRotation = _this2._pagesRotation; - - if (_this2.fieldData && currentPageNumber === _this2.fieldData['_currentPageNumber'] && pagesRotation === _this2.fieldData['_pagesRotation']) { - _this2._updateUI(); - - return; - } - - _this2.pdfDocument.getMetadata().then(function (_ref2) { - var info = _ref2.info, - metadata = _ref2.metadata, - contentDispositionFilename = _ref2.contentDispositionFilename; - return Promise.all([info, metadata, contentDispositionFilename || (0, _ui_utils.getPDFFileNameFromURL)(_this2.url || ''), _this2._parseFileSize(_this2.maybeFileSize), _this2._parseDate(info.CreationDate), _this2._parseDate(info.ModDate), _this2.pdfDocument.getPage(currentPageNumber).then(function (pdfPage) { - return _this2._parsePageSize((0, _ui_utils.getPageSizeInches)(pdfPage), pagesRotation); - }), _this2._parseLinearization(info.IsLinearized)]); - }).then(function (_ref3) { - var _ref4 = _slicedToArray(_ref3, 8), - info = _ref4[0], - metadata = _ref4[1], - fileName = _ref4[2], - fileSize = _ref4[3], - creationDate = _ref4[4], - modDate = _ref4[5], - pageSize = _ref4[6], - isLinearized = _ref4[7]; - - freezeFieldData({ - 'fileName': fileName, - 'fileSize': fileSize, - 'title': info.Title, - 'author': info.Author, - 'subject': info.Subject, - 'keywords': info.Keywords, - 'creationDate': creationDate, - 'modificationDate': modDate, - 'creator': info.Creator, - 'producer': info.Producer, - 'version': info.PDFFormatVersion, - 'pageCount': _this2.pdfDocument.numPages, - 'pageSize': pageSize, - 'linearized': isLinearized, - '_currentPageNumber': currentPageNumber, - '_pagesRotation': pagesRotation - }); - - _this2._updateUI(); - - return _this2.pdfDocument.getDownloadInfo(); - }).then(function (_ref5) { - var length = _ref5.length; - _this2.maybeFileSize = length; - return _this2._parseFileSize(length); - }).then(function (fileSize) { - if (fileSize === _this2.fieldData['fileSize']) { - return; - } - - var data = Object.assign(Object.create(null), _this2.fieldData); - data['fileSize'] = fileSize; - freezeFieldData(data); - - _this2._updateUI(); - }); - }); - } - }, { - key: "close", - value: function close() { - this.overlayManager.close(this.overlayName); - } - }, { - key: "setDocument", - value: function setDocument(pdfDocument) { - var url = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - - if (this.pdfDocument) { - this._reset(); - - this._updateUI(true); - } - - if (!pdfDocument) { - return; - } - - this.pdfDocument = pdfDocument; - this.url = url; - - this._dataAvailableCapability.resolve(); - } - }, { - key: "setFileSize", - value: function setFileSize(fileSize) { - if (Number.isInteger(fileSize) && fileSize > 0) { - this.maybeFileSize = fileSize; - } - } - }, { - key: "_reset", - value: function _reset() { - this.pdfDocument = null; - this.url = null; - this.maybeFileSize = 0; - delete this.fieldData; - this._dataAvailableCapability = (0, _pdfjsLib.createPromiseCapability)(); - this._currentPageNumber = 1; - this._pagesRotation = 0; - } - }, { - key: "_updateUI", - value: function _updateUI() { - var reset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - if (reset || !this.fieldData) { - for (var id in this.fields) { - this.fields[id].textContent = DEFAULT_FIELD_CONTENT; - } - - return; - } - - if (this.overlayManager.active !== this.overlayName) { - return; - } - - for (var _id in this.fields) { - var content = this.fieldData[_id]; - this.fields[_id].textContent = content || content === 0 ? content : DEFAULT_FIELD_CONTENT; - } - } - }, { - key: "_parseFileSize", - value: function () { - var _parseFileSize2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee() { - var fileSize, - kb, - _args = arguments; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - fileSize = _args.length > 0 && _args[0] !== undefined ? _args[0] : 0; - kb = fileSize / 1024; - - if (kb) { - _context.next = 6; - break; - } - - return _context.abrupt("return", undefined); - - case 6: - if (!(kb < 1024)) { - _context.next = 8; - break; - } - - return _context.abrupt("return", this.l10n.get('document_properties_kb', { - size_kb: (+kb.toPrecision(3)).toLocaleString(), - size_b: fileSize.toLocaleString() - }, '{{size_kb}} KB ({{size_b}} bytes)')); - - case 8: - return _context.abrupt("return", this.l10n.get('document_properties_mb', { - size_mb: (+(kb / 1024).toPrecision(3)).toLocaleString(), - size_b: fileSize.toLocaleString() - }, '{{size_mb}} MB ({{size_b}} bytes)')); - - case 9: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function _parseFileSize() { - return _parseFileSize2.apply(this, arguments); - } - - return _parseFileSize; - }() - }, { - key: "_parsePageSize", - value: function () { - var _parsePageSize2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2(pageSizeInches, pagesRotation) { - var _this3 = this; - - var isPortrait, sizeInches, sizeMillimeters, pageName, name, exactMillimeters, intMillimeters; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (pageSizeInches) { - _context2.next = 2; - break; - } - - return _context2.abrupt("return", undefined); - - case 2: - if (pagesRotation % 180 !== 0) { - pageSizeInches = { - width: pageSizeInches.height, - height: pageSizeInches.width - }; - } - - isPortrait = (0, _ui_utils.isPortraitOrientation)(pageSizeInches); - sizeInches = { - width: Math.round(pageSizeInches.width * 100) / 100, - height: Math.round(pageSizeInches.height * 100) / 100 - }; - sizeMillimeters = { - width: Math.round(pageSizeInches.width * 25.4 * 10) / 10, - height: Math.round(pageSizeInches.height * 25.4 * 10) / 10 - }; - pageName = null; - name = getPageName(sizeInches, isPortrait, US_PAGE_NAMES) || getPageName(sizeMillimeters, isPortrait, METRIC_PAGE_NAMES); - - if (!name && !(Number.isInteger(sizeMillimeters.width) && Number.isInteger(sizeMillimeters.height))) { - exactMillimeters = { - width: pageSizeInches.width * 25.4, - height: pageSizeInches.height * 25.4 - }; - intMillimeters = { - width: Math.round(sizeMillimeters.width), - height: Math.round(sizeMillimeters.height) - }; - - if (Math.abs(exactMillimeters.width - intMillimeters.width) < 0.1 && Math.abs(exactMillimeters.height - intMillimeters.height) < 0.1) { - name = getPageName(intMillimeters, isPortrait, METRIC_PAGE_NAMES); - - if (name) { - sizeInches = { - width: Math.round(intMillimeters.width / 25.4 * 100) / 100, - height: Math.round(intMillimeters.height / 25.4 * 100) / 100 - }; - sizeMillimeters = intMillimeters; - } - } - } - - if (name) { - pageName = this.l10n.get('document_properties_page_size_name_' + name.toLowerCase(), null, name); - } - - return _context2.abrupt("return", Promise.all([this._isNonMetricLocale ? sizeInches : sizeMillimeters, this.l10n.get('document_properties_page_size_unit_' + (this._isNonMetricLocale ? 'inches' : 'millimeters'), null, this._isNonMetricLocale ? 'in' : 'mm'), pageName, this.l10n.get('document_properties_page_size_orientation_' + (isPortrait ? 'portrait' : 'landscape'), null, isPortrait ? 'portrait' : 'landscape')]).then(function (_ref6) { - var _ref7 = _slicedToArray(_ref6, 4), - _ref7$ = _ref7[0], - width = _ref7$.width, - height = _ref7$.height, - unit = _ref7[1], - name = _ref7[2], - orientation = _ref7[3]; - - return _this3.l10n.get('document_properties_page_size_dimension_' + (name ? 'name_' : '') + 'string', { - width: width.toLocaleString(), - height: height.toLocaleString(), - unit: unit, - name: name, - orientation: orientation - }, '{{width}} × {{height}} {{unit}} (' + (name ? '{{name}}, ' : '') + '{{orientation}})'); - })); - - case 11: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function _parsePageSize(_x, _x2) { - return _parsePageSize2.apply(this, arguments); - } - - return _parsePageSize; - }() - }, { - key: "_parseDate", - value: function () { - var _parseDate2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee3(inputDate) { - var dateObject; - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - dateObject = _pdfjsLib.PDFDateString.toDateObject(inputDate); - - if (dateObject) { - _context3.next = 3; - break; - } - - return _context3.abrupt("return", undefined); - - case 3: - return _context3.abrupt("return", this.l10n.get('document_properties_date_string', { - date: dateObject.toLocaleDateString(), - time: dateObject.toLocaleTimeString() - }, '{{date}}, {{time}}')); - - case 4: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - - function _parseDate(_x3) { - return _parseDate2.apply(this, arguments); - } - - return _parseDate; - }() - }, { - key: "_parseLinearization", - value: function _parseLinearization(isLinearized) { - return this.l10n.get('document_properties_linearized_' + (isLinearized ? 'yes' : 'no'), null, isLinearized ? 'Yes' : 'No'); - } - }]); - - return PDFDocumentProperties; -}(); - -exports.PDFDocumentProperties = PDFDocumentProperties; - -/***/ }), -/* 17 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - Object.defineProperty(exports, "__esModule", { value: true }); exports.PDFFindBar = void 0; -var _ui_utils = __webpack_require__(5); +var _pdf_find_controller = __webpack_require__(16); -var _pdf_find_controller = __webpack_require__(18); +var _ui_utils = __webpack_require__(2); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var MATCHES_COUNT_LIMIT = 1000; - -var PDFFindBar = -/*#__PURE__*/ -function () { - function PDFFindBar(options) { - var _this = this; - - var eventBus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (0, _ui_utils.getGlobalEventBus)(); - var l10n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _ui_utils.NullL10n; - - _classCallCheck(this, PDFFindBar); +const MATCHES_COUNT_LIMIT = 1000; +class PDFFindBar { + constructor(options, eventBus, l10n = _ui_utils.NullL10n) { this.opened = false; this.bar = options.bar || null; this.toggleButton = options.toggleButton || null; @@ -6461,205 +5654,186 @@ function () { this.findNextButton = options.findNextButton || null; this.eventBus = eventBus; this.l10n = l10n; - this.toggleButton.addEventListener('click', function () { - _this.toggle(); + this.toggleButton.addEventListener("click", () => { + this.toggle(); }); - this.findField.addEventListener('input', function () { - _this.dispatchEvent(''); + this.findField.addEventListener("input", () => { + this.dispatchEvent(""); }); - this.bar.addEventListener('keydown', function (e) { + this.bar.addEventListener("keydown", e => { switch (e.keyCode) { case 13: - if (e.target === _this.findField) { - _this.dispatchEvent('again', e.shiftKey); + if (e.target === this.findField) { + this.dispatchEvent("again", e.shiftKey); } break; case 27: - _this.close(); - + this.close(); break; } }); - this.findPreviousButton.addEventListener('click', function () { - _this.dispatchEvent('again', true); + this.findPreviousButton.addEventListener("click", () => { + this.dispatchEvent("again", true); }); - this.findNextButton.addEventListener('click', function () { - _this.dispatchEvent('again', false); + this.findNextButton.addEventListener("click", () => { + this.dispatchEvent("again", false); }); - this.highlightAll.addEventListener('click', function () { - _this.dispatchEvent('highlightallchange'); + this.highlightAll.addEventListener("click", () => { + this.dispatchEvent("highlightallchange"); }); - this.caseSensitive.addEventListener('click', function () { - _this.dispatchEvent('casesensitivitychange'); + this.caseSensitive.addEventListener("click", () => { + this.dispatchEvent("casesensitivitychange"); }); - this.entireWord.addEventListener('click', function () { - _this.dispatchEvent('entirewordchange'); + this.entireWord.addEventListener("click", () => { + this.dispatchEvent("entirewordchange"); }); - this.eventBus.on('resize', this._adjustWidth.bind(this)); + + this.eventBus._on("resize", this._adjustWidth.bind(this)); } - _createClass(PDFFindBar, [{ - key: "reset", - value: function reset() { - this.updateUIState(); - } - }, { - key: "dispatchEvent", - value: function dispatchEvent(type, findPrev) { - this.eventBus.dispatch('find', { - source: this, - type: type, - query: this.findField.value, - phraseSearch: true, - caseSensitive: this.caseSensitive.checked, - entireWord: this.entireWord.checked, - highlightAll: this.highlightAll.checked, - findPrevious: findPrev - }); - } - }, { - key: "updateUIState", - value: function updateUIState(state, previous, matchesCount) { - var _this2 = this; + reset() { + this.updateUIState(); + } - var notFound = false; - var findMsg = ''; - var status = ''; + dispatchEvent(type, findPrev) { + this.eventBus.dispatch("find", { + source: this, + type, + query: this.findField.value, + phraseSearch: true, + caseSensitive: this.caseSensitive.checked, + entireWord: this.entireWord.checked, + highlightAll: this.highlightAll.checked, + findPrevious: findPrev + }); + } - switch (state) { - case _pdf_find_controller.FindState.FOUND: - break; + updateUIState(state, previous, matchesCount) { + let notFound = false; + let findMsg = ""; + let status = ""; - case _pdf_find_controller.FindState.PENDING: - status = 'pending'; - break; + switch (state) { + case _pdf_find_controller.FindState.FOUND: + break; - case _pdf_find_controller.FindState.NOT_FOUND: - findMsg = this.l10n.get('find_not_found', null, 'Phrase not found'); - notFound = true; - break; + case _pdf_find_controller.FindState.PENDING: + status = "pending"; + break; - case _pdf_find_controller.FindState.WRAPPED: - if (previous) { - findMsg = this.l10n.get('find_reached_top', null, 'Reached top of document, continued from bottom'); - } else { - findMsg = this.l10n.get('find_reached_bottom', null, 'Reached end of document, continued from top'); - } + case _pdf_find_controller.FindState.NOT_FOUND: + findMsg = this.l10n.get("find_not_found", null, "Phrase not found"); + notFound = true; + break; - break; - } - - this.findField.classList.toggle('notFound', notFound); - this.findField.setAttribute('data-status', status); - Promise.resolve(findMsg).then(function (msg) { - _this2.findMsg.textContent = msg; - - _this2._adjustWidth(); - }); - this.updateResultsCount(matchesCount); - } - }, { - key: "updateResultsCount", - value: function updateResultsCount() { - var _this3 = this; - - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref$current = _ref.current, - current = _ref$current === void 0 ? 0 : _ref$current, - _ref$total = _ref.total, - total = _ref$total === void 0 ? 0 : _ref$total; - - if (!this.findResultsCount) { - return; - } - - var matchesCountMsg = '', - limit = MATCHES_COUNT_LIMIT; - - if (total > 0) { - if (total > limit) { - matchesCountMsg = this.l10n.get('find_match_count_limit', { - limit: limit - }, 'More than {{limit}} match' + (limit !== 1 ? 'es' : '')); + case _pdf_find_controller.FindState.WRAPPED: + if (previous) { + findMsg = this.l10n.get("find_reached_top", null, "Reached top of document, continued from bottom"); } else { - matchesCountMsg = this.l10n.get('find_match_count', { - current: current, - total: total - }, '{{current}} of {{total}} match' + (total !== 1 ? 'es' : '')); + findMsg = this.l10n.get("find_reached_bottom", null, "Reached end of document, continued from top"); } - } - Promise.resolve(matchesCountMsg).then(function (msg) { - _this3.findResultsCount.textContent = msg; - - _this3.findResultsCount.classList.toggle('hidden', !total); - - _this3._adjustWidth(); - }); + break; } - }, { - key: "open", - value: function open() { - if (!this.opened) { - this.opened = true; - this.toggleButton.classList.add('toggled'); - this.bar.classList.remove('hidden'); - } - this.findField.select(); - this.findField.focus(); + this.findField.classList.toggle("notFound", notFound); + this.findField.setAttribute("data-status", status); + Promise.resolve(findMsg).then(msg => { + this.findMsg.textContent = msg; this._adjustWidth(); - } - }, { - key: "close", - value: function close() { - if (!this.opened) { - return; - } + }); + this.updateResultsCount(matchesCount); + } - this.opened = false; - this.toggleButton.classList.remove('toggled'); - this.bar.classList.add('hidden'); - this.eventBus.dispatch('findbarclose', { - source: this - }); + updateResultsCount({ + current = 0, + total = 0 + } = {}) { + if (!this.findResultsCount) { + return; } - }, { - key: "toggle", - value: function toggle() { - if (this.opened) { - this.close(); + + const limit = MATCHES_COUNT_LIMIT; + let matchesCountMsg = ""; + + if (total > 0) { + if (total > limit) { + matchesCountMsg = this.l10n.get("find_match_count_limit", { + limit + }, "More than {{limit}} match" + (limit !== 1 ? "es" : "")); } else { - this.open(); + matchesCountMsg = this.l10n.get("find_match_count", { + current, + total + }, "{{current}} of {{total}} match" + (total !== 1 ? "es" : "")); } } - }, { - key: "_adjustWidth", - value: function _adjustWidth() { - if (!this.opened) { - return; - } - this.bar.classList.remove('wrapContainers'); - var findbarHeight = this.bar.clientHeight; - var inputContainerHeight = this.bar.firstElementChild.clientHeight; + Promise.resolve(matchesCountMsg).then(msg => { + this.findResultsCount.textContent = msg; + this.findResultsCount.classList.toggle("hidden", !total); - if (findbarHeight > inputContainerHeight) { - this.bar.classList.add('wrapContainers'); - } + this._adjustWidth(); + }); + } + + open() { + if (!this.opened) { + this.opened = true; + this.toggleButton.classList.add("toggled"); + this.bar.classList.remove("hidden"); } - }]); - return PDFFindBar; -}(); + this.findField.select(); + this.findField.focus(); + + this._adjustWidth(); + } + + close() { + if (!this.opened) { + return; + } + + this.opened = false; + this.toggleButton.classList.remove("toggled"); + this.bar.classList.add("hidden"); + this.eventBus.dispatch("findbarclose", { + source: this + }); + } + + toggle() { + if (this.opened) { + this.close(); + } else { + this.open(); + } + } + + _adjustWidth() { + if (!this.opened) { + return; + } + + this.bar.classList.remove("wrapContainers"); + const findbarHeight = this.bar.clientHeight; + const inputContainerHeight = this.bar.firstElementChild.clientHeight; + + if (findbarHeight > inputContainerHeight) { + this.bar.classList.add("wrapContainers"); + } + } + +} exports.PDFFindBar = PDFFindBar; /***/ }), -/* 18 */ +/* 16 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -6670,47 +5844,41 @@ Object.defineProperty(exports, "__esModule", { }); exports.PDFFindController = exports.FindState = void 0; -var _ui_utils = __webpack_require__(5); +var _pdfjsLib = __webpack_require__(5); -var _pdfjsLib = __webpack_require__(7); +var _pdf_find_utils = __webpack_require__(17); -var _pdf_find_utils = __webpack_require__(19); +var _ui_utils = __webpack_require__(2); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var FindState = { +const FindState = { FOUND: 0, NOT_FOUND: 1, WRAPPED: 2, PENDING: 3 }; exports.FindState = FindState; -var FIND_TIMEOUT = 250; -var MATCH_SCROLL_OFFSET_TOP = -50; -var MATCH_SCROLL_OFFSET_LEFT = -400; -var CHARACTERS_TO_NORMALIZE = { - "\u2018": '\'', - "\u2019": '\'', - "\u201A": '\'', - "\u201B": '\'', +const FIND_TIMEOUT = 250; +const MATCH_SCROLL_OFFSET_TOP = -50; +const MATCH_SCROLL_OFFSET_LEFT = -400; +const CHARACTERS_TO_NORMALIZE = { + "\u2018": "'", + "\u2019": "'", + "\u201A": "'", + "\u201B": "'", "\u201C": '"', "\u201D": '"', "\u201E": '"', "\u201F": '"', - "\xBC": '1/4', - "\xBD": '1/2', - "\xBE": '3/4' + "\u00BC": "1/4", + "\u00BD": "1/2", + "\u00BE": "3/4" }; -var normalizationRegex = null; +let normalizationRegex = null; function normalize(text) { if (!normalizationRegex) { - var replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(''); - normalizationRegex = new RegExp("[".concat(replace, "]"), 'g'); + const replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(""); + normalizationRegex = new RegExp(`[${replace}]`, "g"); } return text.replace(normalizationRegex, function (ch) { @@ -6718,686 +5886,636 @@ function normalize(text) { }); } -var PDFFindController = -/*#__PURE__*/ -function () { - function PDFFindController(_ref) { - var linkService = _ref.linkService, - _ref$eventBus = _ref.eventBus, - eventBus = _ref$eventBus === void 0 ? (0, _ui_utils.getGlobalEventBus)() : _ref$eventBus; - - _classCallCheck(this, PDFFindController); - +class PDFFindController { + constructor({ + linkService, + eventBus + }) { this._linkService = linkService; this._eventBus = eventBus; this._reset(); - eventBus.on('findbarclose', this._onFindBarClose.bind(this)); + eventBus._on("findbarclose", this._onFindBarClose.bind(this)); } - _createClass(PDFFindController, [{ - key: "setDocument", - value: function setDocument(pdfDocument) { - if (this._pdfDocument) { - this._reset(); - } + get highlightMatches() { + return this._highlightMatches; + } - if (!pdfDocument) { - return; - } + get pageMatches() { + return this._pageMatches; + } - this._pdfDocument = pdfDocument; + get pageMatchesLength() { + return this._pageMatchesLength; + } - this._firstPageCapability.resolve(); + get selected() { + return this._selected; + } + + get state() { + return this._state; + } + + setDocument(pdfDocument) { + if (this._pdfDocument) { + this._reset(); } - }, { - key: "executeCommand", - value: function executeCommand(cmd, state) { - var _this = this; - if (!state) { + if (!pdfDocument) { + return; + } + + this._pdfDocument = pdfDocument; + + this._firstPageCapability.resolve(); + } + + executeCommand(cmd, state) { + if (!state) { + return; + } + + const pdfDocument = this._pdfDocument; + + if (this._state === null || this._shouldDirtyMatch(cmd, state)) { + this._dirtyMatch = true; + } + + this._state = state; + + if (cmd !== "findhighlightallchange") { + this._updateUIState(FindState.PENDING); + } + + this._firstPageCapability.promise.then(() => { + if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) { return; } - var pdfDocument = this._pdfDocument; + this._extractText(); - if (this._state === null || this._shouldDirtyMatch(cmd, state)) { - this._dirtyMatch = true; + const findbarClosed = !this._highlightMatches; + const pendingTimeout = !!this._findTimeout; + + if (this._findTimeout) { + clearTimeout(this._findTimeout); + this._findTimeout = null; } - this._state = state; + if (cmd === "find") { + this._findTimeout = setTimeout(() => { + this._nextMatch(); - if (cmd !== 'findhighlightallchange') { - this._updateUIState(FindState.PENDING); - } + this._findTimeout = null; + }, FIND_TIMEOUT); + } else if (this._dirtyMatch) { + this._nextMatch(); + } else if (cmd === "findagain") { + this._nextMatch(); - this._firstPageCapability.promise.then(function () { - if (!_this._pdfDocument || pdfDocument && _this._pdfDocument !== pdfDocument) { - return; + if (findbarClosed && this._state.highlightAll) { + this._updateAllPages(); } - - _this._extractText(); - - var findbarClosed = !_this._highlightMatches; - var pendingTimeout = !!_this._findTimeout; - - if (_this._findTimeout) { - clearTimeout(_this._findTimeout); - _this._findTimeout = null; - } - - if (cmd === 'find') { - _this._findTimeout = setTimeout(function () { - _this._nextMatch(); - - _this._findTimeout = null; - }, FIND_TIMEOUT); - } else if (_this._dirtyMatch) { - _this._nextMatch(); - } else if (cmd === 'findagain') { - _this._nextMatch(); - - if (findbarClosed && _this._state.highlightAll) { - _this._updateAllPages(); - } - } else if (cmd === 'findhighlightallchange') { - if (pendingTimeout) { - _this._nextMatch(); - } else { - _this._highlightMatches = true; - } - - _this._updateAllPages(); + } else if (cmd === "findhighlightallchange") { + if (pendingTimeout) { + this._nextMatch(); } else { - _this._nextMatch(); + this._highlightMatches = true; } - }); - } - }, { - key: "scrollMatchIntoView", - value: function scrollMatchIntoView(_ref2) { - var _ref2$element = _ref2.element, - element = _ref2$element === void 0 ? null : _ref2$element, - _ref2$pageIndex = _ref2.pageIndex, - pageIndex = _ref2$pageIndex === void 0 ? -1 : _ref2$pageIndex, - _ref2$matchIndex = _ref2.matchIndex, - matchIndex = _ref2$matchIndex === void 0 ? -1 : _ref2$matchIndex; - if (!this._scrollMatches || !element) { - return; - } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) { - return; - } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) { - return; + this._updateAllPages(); + } else { + this._nextMatch(); } + }); + } - this._scrollMatches = false; - var spot = { - top: MATCH_SCROLL_OFFSET_TOP, - left: MATCH_SCROLL_OFFSET_LEFT - }; - (0, _ui_utils.scrollIntoView)(element, spot, true); + scrollMatchIntoView({ + element = null, + pageIndex = -1, + matchIndex = -1 + }) { + if (!this._scrollMatches || !element) { + return; + } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) { + return; + } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) { + return; } - }, { - key: "_reset", - value: function _reset() { - this._highlightMatches = false; - this._scrollMatches = false; - this._pdfDocument = null; - this._pageMatches = []; - this._pageMatchesLength = []; - this._state = null; - this._selected = { - pageIdx: -1, - matchIdx: -1 - }; - this._offset = { - pageIdx: null, - matchIdx: null, - wrapped: false - }; - this._extractTextPromises = []; - this._pageContents = []; - this._matchesCountTotal = 0; - this._pagesToSearch = null; - this._pendingFindMatches = Object.create(null); - this._resumePageIdx = null; - this._dirtyMatch = false; - clearTimeout(this._findTimeout); - this._findTimeout = null; - this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)(); + + this._scrollMatches = false; + const spot = { + top: MATCH_SCROLL_OFFSET_TOP, + left: MATCH_SCROLL_OFFSET_LEFT + }; + (0, _ui_utils.scrollIntoView)(element, spot, true); + } + + _reset() { + this._highlightMatches = false; + this._scrollMatches = false; + this._pdfDocument = null; + this._pageMatches = []; + this._pageMatchesLength = []; + this._state = null; + this._selected = { + pageIdx: -1, + matchIdx: -1 + }; + this._offset = { + pageIdx: null, + matchIdx: null, + wrapped: false + }; + this._extractTextPromises = []; + this._pageContents = []; + this._matchesCountTotal = 0; + this._pagesToSearch = null; + this._pendingFindMatches = Object.create(null); + this._resumePageIdx = null; + this._dirtyMatch = false; + clearTimeout(this._findTimeout); + this._findTimeout = null; + this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)(); + } + + get _query() { + if (this._state.query !== this._rawQuery) { + this._rawQuery = this._state.query; + this._normalizedQuery = normalize(this._state.query); } - }, { - key: "_shouldDirtyMatch", - value: function _shouldDirtyMatch(cmd, state) { - if (state.query !== this._state.query) { - return true; - } - switch (cmd) { - case 'findagain': - var pageNumber = this._selected.pageIdx + 1; - var linkService = this._linkService; - - if (pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !linkService.isPageVisible(pageNumber)) { - return true; - } - - return false; - - case 'findhighlightallchange': - return false; - } + return this._normalizedQuery; + } + _shouldDirtyMatch(cmd, state) { + if (state.query !== this._state.query) { return true; } - }, { - key: "_prepareMatches", - value: function _prepareMatches(matchesWithLength, matches, matchesLength) { - function isSubTerm(matchesWithLength, currentIndex) { - var currentElem = matchesWithLength[currentIndex]; - var nextElem = matchesWithLength[currentIndex + 1]; - if (currentIndex < matchesWithLength.length - 1 && currentElem.match === nextElem.match) { - currentElem.skipped = true; + switch (cmd) { + case "findagain": + const pageNumber = this._selected.pageIdx + 1; + const linkService = this._linkService; + + if (pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !linkService.isPageVisible(pageNumber)) { return true; } - for (var i = currentIndex - 1; i >= 0; i--) { - var prevElem = matchesWithLength[i]; - - if (prevElem.skipped) { - continue; - } - - if (prevElem.match + prevElem.matchLength < currentElem.match) { - break; - } - - if (prevElem.match + prevElem.matchLength >= currentElem.match + currentElem.matchLength) { - currentElem.skipped = true; - return true; - } - } - return false; - } - matchesWithLength.sort(function (a, b) { - return a.match === b.match ? a.matchLength - b.matchLength : a.match - b.match; - }); - - for (var i = 0, len = matchesWithLength.length; i < len; i++) { - if (isSubTerm(matchesWithLength, i)) { - continue; - } - - matches.push(matchesWithLength[i].match); - matchesLength.push(matchesWithLength[i].matchLength); - } + case "findhighlightallchange": + return false; } - }, { - key: "_isEntireWord", - value: function _isEntireWord(content, startIdx, length) { - if (startIdx > 0) { - var first = content.charCodeAt(startIdx); - var limit = content.charCodeAt(startIdx - 1); - if ((0, _pdf_find_utils.getCharacterType)(first) === (0, _pdf_find_utils.getCharacterType)(limit)) { - return false; - } - } + return true; + } - var endIdx = startIdx + length - 1; - - if (endIdx < content.length - 1) { - var last = content.charCodeAt(endIdx); - - var _limit = content.charCodeAt(endIdx + 1); - - if ((0, _pdf_find_utils.getCharacterType)(last) === (0, _pdf_find_utils.getCharacterType)(_limit)) { - return false; - } - } - - return true; - } - }, { - key: "_calculatePhraseMatch", - value: function _calculatePhraseMatch(query, pageIndex, pageContent, entireWord) { - var matches = []; - var queryLen = query.length; - var matchIdx = -queryLen; - - while (true) { - matchIdx = pageContent.indexOf(query, matchIdx + queryLen); - - if (matchIdx === -1) { - break; - } - - if (entireWord && !this._isEntireWord(pageContent, matchIdx, queryLen)) { - continue; - } - - matches.push(matchIdx); - } - - this._pageMatches[pageIndex] = matches; - } - }, { - key: "_calculateWordMatch", - value: function _calculateWordMatch(query, pageIndex, pageContent, entireWord) { - var matchesWithLength = []; - var queryArray = query.match(/\S+/g); - - for (var i = 0, len = queryArray.length; i < len; i++) { - var subquery = queryArray[i]; - var subqueryLen = subquery.length; - var matchIdx = -subqueryLen; - - while (true) { - matchIdx = pageContent.indexOf(subquery, matchIdx + subqueryLen); - - if (matchIdx === -1) { - break; - } - - if (entireWord && !this._isEntireWord(pageContent, matchIdx, subqueryLen)) { - continue; - } - - matchesWithLength.push({ - match: matchIdx, - matchLength: subqueryLen, - skipped: false - }); - } - } - - this._pageMatchesLength[pageIndex] = []; - this._pageMatches[pageIndex] = []; - - this._prepareMatches(matchesWithLength, this._pageMatches[pageIndex], this._pageMatchesLength[pageIndex]); - } - }, { - key: "_calculateMatch", - value: function _calculateMatch(pageIndex) { - var pageContent = this._pageContents[pageIndex]; - var query = this._query; - var _this$_state = this._state, - caseSensitive = _this$_state.caseSensitive, - entireWord = _this$_state.entireWord, - phraseSearch = _this$_state.phraseSearch; - - if (query.length === 0) { - return; - } - - if (!caseSensitive) { - pageContent = pageContent.toLowerCase(); - query = query.toLowerCase(); - } - - if (phraseSearch) { - this._calculatePhraseMatch(query, pageIndex, pageContent, entireWord); - } else { - this._calculateWordMatch(query, pageIndex, pageContent, entireWord); - } - - if (this._state.highlightAll) { - this._updatePage(pageIndex); - } - - if (this._resumePageIdx === pageIndex) { - this._resumePageIdx = null; - - this._nextPageMatch(); - } - - var pageMatchesCount = this._pageMatches[pageIndex].length; - - if (pageMatchesCount > 0) { - this._matchesCountTotal += pageMatchesCount; - - this._updateUIResultsCount(); - } - } - }, { - key: "_extractText", - value: function _extractText() { - var _this2 = this; - - if (this._extractTextPromises.length > 0) { - return; - } - - var promise = Promise.resolve(); - - var _loop = function _loop(i, ii) { - var extractTextCapability = (0, _pdfjsLib.createPromiseCapability)(); - _this2._extractTextPromises[i] = extractTextCapability.promise; - promise = promise.then(function () { - return _this2._pdfDocument.getPage(i + 1).then(function (pdfPage) { - return pdfPage.getTextContent({ - normalizeWhitespace: true - }); - }).then(function (textContent) { - var textItems = textContent.items; - var strBuf = []; - - for (var j = 0, jj = textItems.length; j < jj; j++) { - strBuf.push(textItems[j].str); - } - - _this2._pageContents[i] = normalize(strBuf.join('')); - extractTextCapability.resolve(i); - }, function (reason) { - console.error("Unable to get text content for page ".concat(i + 1), reason); - _this2._pageContents[i] = ''; - extractTextCapability.resolve(i); - }); - }); - }; - - for (var i = 0, ii = this._linkService.pagesCount; i < ii; i++) { - _loop(i, ii); - } - } - }, { - key: "_updatePage", - value: function _updatePage(index) { - if (this._scrollMatches && this._selected.pageIdx === index) { - this._linkService.page = index + 1; - } - - this._eventBus.dispatch('updatetextlayermatches', { - source: this, - pageIndex: index - }); - } - }, { - key: "_updateAllPages", - value: function _updateAllPages() { - this._eventBus.dispatch('updatetextlayermatches', { - source: this, - pageIndex: -1 - }); - } - }, { - key: "_nextMatch", - value: function _nextMatch() { - var _this3 = this; - - var previous = this._state.findPrevious; - var currentPageIndex = this._linkService.page - 1; - var numPages = this._linkService.pagesCount; - this._highlightMatches = true; - - if (this._dirtyMatch) { - this._dirtyMatch = false; - this._selected.pageIdx = this._selected.matchIdx = -1; - this._offset.pageIdx = currentPageIndex; - this._offset.matchIdx = null; - this._offset.wrapped = false; - this._resumePageIdx = null; - this._pageMatches.length = 0; - this._pageMatchesLength.length = 0; - this._matchesCountTotal = 0; - - this._updateAllPages(); - - for (var i = 0; i < numPages; i++) { - if (this._pendingFindMatches[i] === true) { - continue; - } - - this._pendingFindMatches[i] = true; - - this._extractTextPromises[i].then(function (pageIdx) { - delete _this3._pendingFindMatches[pageIdx]; - - _this3._calculateMatch(pageIdx); - }); - } - } - - if (this._query === '') { - this._updateUIState(FindState.FOUND); - - return; - } - - if (this._resumePageIdx) { - return; - } - - var offset = this._offset; - this._pagesToSearch = numPages; - - if (offset.matchIdx !== null) { - var numPageMatches = this._pageMatches[offset.pageIdx].length; - - if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) { - offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1; - - this._updateMatch(true); - - return; - } - - this._advanceOffsetPage(previous); - } - - this._nextPageMatch(); - } - }, { - key: "_matchesReady", - value: function _matchesReady(matches) { - var offset = this._offset; - var numMatches = matches.length; - var previous = this._state.findPrevious; - - if (numMatches) { - offset.matchIdx = previous ? numMatches - 1 : 0; - - this._updateMatch(true); + _prepareMatches(matchesWithLength, matches, matchesLength) { + function isSubTerm(currentIndex) { + const currentElem = matchesWithLength[currentIndex]; + const nextElem = matchesWithLength[currentIndex + 1]; + if (currentIndex < matchesWithLength.length - 1 && currentElem.match === nextElem.match) { + currentElem.skipped = true; return true; } - this._advanceOffsetPage(previous); + for (let i = currentIndex - 1; i >= 0; i--) { + const prevElem = matchesWithLength[i]; - if (offset.wrapped) { - offset.matchIdx = null; + if (prevElem.skipped) { + continue; + } - if (this._pagesToSearch < 0) { - this._updateMatch(false); + if (prevElem.match + prevElem.matchLength < currentElem.match) { + break; + } + if (prevElem.match + prevElem.matchLength >= currentElem.match + currentElem.matchLength) { + currentElem.skipped = true; return true; } } return false; } - }, { - key: "_nextPageMatch", - value: function _nextPageMatch() { - if (this._resumePageIdx !== null) { - console.error('There can only be one pending page.'); + + matchesWithLength.sort(function (a, b) { + return a.match === b.match ? a.matchLength - b.matchLength : a.match - b.match; + }); + + for (let i = 0, len = matchesWithLength.length; i < len; i++) { + if (isSubTerm(i)) { + continue; } - var matches = null; + matches.push(matchesWithLength[i].match); + matchesLength.push(matchesWithLength[i].matchLength); + } + } - do { - var pageIdx = this._offset.pageIdx; - matches = this._pageMatches[pageIdx]; + _isEntireWord(content, startIdx, length) { + if (startIdx > 0) { + const first = content.charCodeAt(startIdx); + const limit = content.charCodeAt(startIdx - 1); - if (!matches) { - this._resumePageIdx = pageIdx; + if ((0, _pdf_find_utils.getCharacterType)(first) === (0, _pdf_find_utils.getCharacterType)(limit)) { + return false; + } + } + + const endIdx = startIdx + length - 1; + + if (endIdx < content.length - 1) { + const last = content.charCodeAt(endIdx); + const limit = content.charCodeAt(endIdx + 1); + + if ((0, _pdf_find_utils.getCharacterType)(last) === (0, _pdf_find_utils.getCharacterType)(limit)) { + return false; + } + } + + return true; + } + + _calculatePhraseMatch(query, pageIndex, pageContent, entireWord) { + const matches = []; + const queryLen = query.length; + let matchIdx = -queryLen; + + while (true) { + matchIdx = pageContent.indexOf(query, matchIdx + queryLen); + + if (matchIdx === -1) { + break; + } + + if (entireWord && !this._isEntireWord(pageContent, matchIdx, queryLen)) { + continue; + } + + matches.push(matchIdx); + } + + this._pageMatches[pageIndex] = matches; + } + + _calculateWordMatch(query, pageIndex, pageContent, entireWord) { + const matchesWithLength = []; + const queryArray = query.match(/\S+/g); + + for (let i = 0, len = queryArray.length; i < len; i++) { + const subquery = queryArray[i]; + const subqueryLen = subquery.length; + let matchIdx = -subqueryLen; + + while (true) { + matchIdx = pageContent.indexOf(subquery, matchIdx + subqueryLen); + + if (matchIdx === -1) { break; } - } while (!this._matchesReady(matches)); - } - }, { - key: "_advanceOffsetPage", - value: function _advanceOffsetPage(previous) { - var offset = this._offset; - var numPages = this._linkService.pagesCount; - offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1; - offset.matchIdx = null; - this._pagesToSearch--; - if (offset.pageIdx >= numPages || offset.pageIdx < 0) { - offset.pageIdx = previous ? numPages - 1 : 0; - offset.wrapped = true; + if (entireWord && !this._isEntireWord(pageContent, matchIdx, subqueryLen)) { + continue; + } + + matchesWithLength.push({ + match: matchIdx, + matchLength: subqueryLen, + skipped: false + }); } } - }, { - key: "_updateMatch", - value: function _updateMatch() { - var found = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var state = FindState.NOT_FOUND; - var wrapped = this._offset.wrapped; + + this._pageMatchesLength[pageIndex] = []; + this._pageMatches[pageIndex] = []; + + this._prepareMatches(matchesWithLength, this._pageMatches[pageIndex], this._pageMatchesLength[pageIndex]); + } + + _calculateMatch(pageIndex) { + let pageContent = this._pageContents[pageIndex]; + let query = this._query; + const { + caseSensitive, + entireWord, + phraseSearch + } = this._state; + + if (query.length === 0) { + return; + } + + if (!caseSensitive) { + pageContent = pageContent.toLowerCase(); + query = query.toLowerCase(); + } + + if (phraseSearch) { + this._calculatePhraseMatch(query, pageIndex, pageContent, entireWord); + } else { + this._calculateWordMatch(query, pageIndex, pageContent, entireWord); + } + + if (this._state.highlightAll) { + this._updatePage(pageIndex); + } + + if (this._resumePageIdx === pageIndex) { + this._resumePageIdx = null; + + this._nextPageMatch(); + } + + const pageMatchesCount = this._pageMatches[pageIndex].length; + + if (pageMatchesCount > 0) { + this._matchesCountTotal += pageMatchesCount; + + this._updateUIResultsCount(); + } + } + + _extractText() { + if (this._extractTextPromises.length > 0) { + return; + } + + let promise = Promise.resolve(); + + for (let i = 0, ii = this._linkService.pagesCount; i < ii; i++) { + const extractTextCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._extractTextPromises[i] = extractTextCapability.promise; + promise = promise.then(() => { + return this._pdfDocument.getPage(i + 1).then(pdfPage => { + return pdfPage.getTextContent({ + normalizeWhitespace: true + }); + }).then(textContent => { + const textItems = textContent.items; + const strBuf = []; + + for (let j = 0, jj = textItems.length; j < jj; j++) { + strBuf.push(textItems[j].str); + } + + this._pageContents[i] = normalize(strBuf.join("")); + extractTextCapability.resolve(i); + }, reason => { + console.error(`Unable to get text content for page ${i + 1}`, reason); + this._pageContents[i] = ""; + extractTextCapability.resolve(i); + }); + }); + } + } + + _updatePage(index) { + if (this._scrollMatches && this._selected.pageIdx === index) { + this._linkService.page = index + 1; + } + + this._eventBus.dispatch("updatetextlayermatches", { + source: this, + pageIndex: index + }); + } + + _updateAllPages() { + this._eventBus.dispatch("updatetextlayermatches", { + source: this, + pageIndex: -1 + }); + } + + _nextMatch() { + const previous = this._state.findPrevious; + const currentPageIndex = this._linkService.page - 1; + const numPages = this._linkService.pagesCount; + this._highlightMatches = true; + + if (this._dirtyMatch) { + this._dirtyMatch = false; + this._selected.pageIdx = this._selected.matchIdx = -1; + this._offset.pageIdx = currentPageIndex; + this._offset.matchIdx = null; this._offset.wrapped = false; + this._resumePageIdx = null; + this._pageMatches.length = 0; + this._pageMatchesLength.length = 0; + this._matchesCountTotal = 0; - if (found) { - var previousPage = this._selected.pageIdx; - this._selected.pageIdx = this._offset.pageIdx; - this._selected.matchIdx = this._offset.matchIdx; - state = wrapped ? FindState.WRAPPED : FindState.FOUND; + this._updateAllPages(); - if (previousPage !== -1 && previousPage !== this._selected.pageIdx) { - this._updatePage(previousPage); - } - } - - this._updateUIState(state, this._state.findPrevious); - - if (this._selected.pageIdx !== -1) { - this._scrollMatches = true; - - this._updatePage(this._selected.pageIdx); - } - } - }, { - key: "_onFindBarClose", - value: function _onFindBarClose(evt) { - var _this4 = this; - - var pdfDocument = this._pdfDocument; - - this._firstPageCapability.promise.then(function () { - if (!_this4._pdfDocument || pdfDocument && _this4._pdfDocument !== pdfDocument) { - return; + for (let i = 0; i < numPages; i++) { + if (this._pendingFindMatches[i] === true) { + continue; } - if (_this4._findTimeout) { - clearTimeout(_this4._findTimeout); - _this4._findTimeout = null; - } + this._pendingFindMatches[i] = true; - if (_this4._resumePageIdx) { - _this4._resumePageIdx = null; - _this4._dirtyMatch = true; - } + this._extractTextPromises[i].then(pageIdx => { + delete this._pendingFindMatches[pageIdx]; - _this4._updateUIState(FindState.FOUND); - - _this4._highlightMatches = false; - - _this4._updateAllPages(); - }); + this._calculateMatch(pageIdx); + }); + } } - }, { - key: "_requestMatchesCount", - value: function _requestMatchesCount() { - var _this$_selected = this._selected, - pageIdx = _this$_selected.pageIdx, - matchIdx = _this$_selected.matchIdx; - var current = 0, - total = this._matchesCountTotal; - if (matchIdx !== -1) { - for (var i = 0; i < pageIdx; i++) { - current += this._pageMatches[i] && this._pageMatches[i].length || 0; - } + if (this._query === "") { + this._updateUIState(FindState.FOUND); - current += matchIdx + 1; + return; + } + + if (this._resumePageIdx) { + return; + } + + const offset = this._offset; + this._pagesToSearch = numPages; + + if (offset.matchIdx !== null) { + const numPageMatches = this._pageMatches[offset.pageIdx].length; + + if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) { + offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1; + + this._updateMatch(true); + + return; } - if (current < 1 || current > total) { - current = total = 0; + this._advanceOffsetPage(previous); + } + + this._nextPageMatch(); + } + + _matchesReady(matches) { + const offset = this._offset; + const numMatches = matches.length; + const previous = this._state.findPrevious; + + if (numMatches) { + offset.matchIdx = previous ? numMatches - 1 : 0; + + this._updateMatch(true); + + return true; + } + + this._advanceOffsetPage(previous); + + if (offset.wrapped) { + offset.matchIdx = null; + + if (this._pagesToSearch < 0) { + this._updateMatch(false); + + return true; + } + } + + return false; + } + + _nextPageMatch() { + if (this._resumePageIdx !== null) { + console.error("There can only be one pending page."); + } + + let matches = null; + + do { + const pageIdx = this._offset.pageIdx; + matches = this._pageMatches[pageIdx]; + + if (!matches) { + this._resumePageIdx = pageIdx; + break; + } + } while (!this._matchesReady(matches)); + } + + _advanceOffsetPage(previous) { + const offset = this._offset; + const numPages = this._linkService.pagesCount; + offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1; + offset.matchIdx = null; + this._pagesToSearch--; + + if (offset.pageIdx >= numPages || offset.pageIdx < 0) { + offset.pageIdx = previous ? numPages - 1 : 0; + offset.wrapped = true; + } + } + + _updateMatch(found = false) { + let state = FindState.NOT_FOUND; + const wrapped = this._offset.wrapped; + this._offset.wrapped = false; + + if (found) { + const previousPage = this._selected.pageIdx; + this._selected.pageIdx = this._offset.pageIdx; + this._selected.matchIdx = this._offset.matchIdx; + state = wrapped ? FindState.WRAPPED : FindState.FOUND; + + if (previousPage !== -1 && previousPage !== this._selected.pageIdx) { + this._updatePage(previousPage); + } + } + + this._updateUIState(state, this._state.findPrevious); + + if (this._selected.pageIdx !== -1) { + this._scrollMatches = true; + + this._updatePage(this._selected.pageIdx); + } + } + + _onFindBarClose(evt) { + const pdfDocument = this._pdfDocument; + + this._firstPageCapability.promise.then(() => { + if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) { + return; } - return { - current: current, - total: total - }; - } - }, { - key: "_updateUIResultsCount", - value: function _updateUIResultsCount() { - this._eventBus.dispatch('updatefindmatchescount', { - source: this, - matchesCount: this._requestMatchesCount() - }); - } - }, { - key: "_updateUIState", - value: function _updateUIState(state, previous) { - this._eventBus.dispatch('updatefindcontrolstate', { - source: this, - state: state, - previous: previous, - matchesCount: this._requestMatchesCount() - }); - } - }, { - key: "highlightMatches", - get: function get() { - return this._highlightMatches; - } - }, { - key: "pageMatches", - get: function get() { - return this._pageMatches; - } - }, { - key: "pageMatchesLength", - get: function get() { - return this._pageMatchesLength; - } - }, { - key: "selected", - get: function get() { - return this._selected; - } - }, { - key: "state", - get: function get() { - return this._state; - } - }, { - key: "_query", - get: function get() { - if (this._state.query !== this._rawQuery) { - this._rawQuery = this._state.query; - this._normalizedQuery = normalize(this._state.query); + if (this._findTimeout) { + clearTimeout(this._findTimeout); + this._findTimeout = null; } - return this._normalizedQuery; - } - }]); + if (this._resumePageIdx) { + this._resumePageIdx = null; + this._dirtyMatch = true; + } - return PDFFindController; -}(); + this._updateUIState(FindState.FOUND); + + this._highlightMatches = false; + + this._updateAllPages(); + }); + } + + _requestMatchesCount() { + const { + pageIdx, + matchIdx + } = this._selected; + let current = 0, + total = this._matchesCountTotal; + + if (matchIdx !== -1) { + for (let i = 0; i < pageIdx; i++) { + current += this._pageMatches[i] && this._pageMatches[i].length || 0; + } + + current += matchIdx + 1; + } + + if (current < 1 || current > total) { + current = total = 0; + } + + return { + current, + total + }; + } + + _updateUIResultsCount() { + this._eventBus.dispatch("updatefindmatchescount", { + source: this, + matchesCount: this._requestMatchesCount() + }); + } + + _updateUIState(state, previous) { + this._eventBus.dispatch("updatefindcontrolstate", { + source: this, + state, + previous, + matchesCount: this._requestMatchesCount(), + rawQuery: this._state ? this._state.query : null + }); + } + +} exports.PDFFindController = PDFFindController; /***/ }), -/* 19 */ +/* 17 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -7408,7 +6526,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.getCharacterType = getCharacterType; exports.CharacterType = void 0; -var CharacterType = { +const CharacterType = { SPACE: 0, ALPHA_LETTER: 1, PUNCT: 2, @@ -7421,15 +6539,15 @@ var CharacterType = { exports.CharacterType = CharacterType; function isAlphabeticalScript(charCode) { - return charCode < 0x2E80; + return charCode < 0x2e80; } function isAscii(charCode) { - return (charCode & 0xFF80) === 0; + return (charCode & 0xff80) === 0; } function isAsciiAlpha(charCode) { - return charCode >= 0x61 && charCode <= 0x7A || charCode >= 0x41 && charCode <= 0x5A; + return charCode >= 0x61 && charCode <= 0x7a || charCode >= 0x41 && charCode <= 0x5a; } function isAsciiDigit(charCode) { @@ -7437,27 +6555,27 @@ function isAsciiDigit(charCode) { } function isAsciiSpace(charCode) { - return charCode === 0x20 || charCode === 0x09 || charCode === 0x0D || charCode === 0x0A; + return charCode === 0x20 || charCode === 0x09 || charCode === 0x0d || charCode === 0x0a; } function isHan(charCode) { - return charCode >= 0x3400 && charCode <= 0x9FFF || charCode >= 0xF900 && charCode <= 0xFAFF; + return charCode >= 0x3400 && charCode <= 0x9fff || charCode >= 0xf900 && charCode <= 0xfaff; } function isKatakana(charCode) { - return charCode >= 0x30A0 && charCode <= 0x30FF; + return charCode >= 0x30a0 && charCode <= 0x30ff; } function isHiragana(charCode) { - return charCode >= 0x3040 && charCode <= 0x309F; + return charCode >= 0x3040 && charCode <= 0x309f; } function isHalfwidthKatakana(charCode) { - return charCode >= 0xFF60 && charCode <= 0xFF9F; + return charCode >= 0xff60 && charCode <= 0xff9f; } function isThai(charCode) { - return (charCode & 0xFF80) === 0x0E00; + return (charCode & 0xff80) === 0x0e00; } function getCharacterType(charCode) { @@ -7465,14 +6583,14 @@ function getCharacterType(charCode) { if (isAscii(charCode)) { if (isAsciiSpace(charCode)) { return CharacterType.SPACE; - } else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5F) { + } else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5f) { return CharacterType.ALPHA_LETTER; } return CharacterType.PUNCT; } else if (isThai(charCode)) { return CharacterType.THAI_LETTER; - } else if (charCode === 0xA0) { + } else if (charCode === 0xa0) { return CharacterType.SPACE; } @@ -7493,7 +6611,7 @@ function getCharacterType(charCode) { } /***/ }), -/* 20 */ +/* 18 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -7506,528 +6624,518 @@ exports.isDestHashesEqual = isDestHashesEqual; exports.isDestArraysEqual = isDestArraysEqual; exports.PDFHistory = void 0; -var _ui_utils = __webpack_require__(5); +var _ui_utils = __webpack_require__(2); -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var HASH_CHANGE_TIMEOUT = 1000; -var POSITION_UPDATED_THRESHOLD = 50; -var UPDATE_VIEWAREA_TIMEOUT = 1000; +const HASH_CHANGE_TIMEOUT = 1000; +const POSITION_UPDATED_THRESHOLD = 50; +const UPDATE_VIEWAREA_TIMEOUT = 1000; function getCurrentHash() { return document.location.hash; } -function parseCurrentHash(linkService) { - var hash = unescape(getCurrentHash()).substring(1); - var params = (0, _ui_utils.parseQueryString)(hash); - var page = params.page | 0; - - if (!(Number.isInteger(page) && page > 0 && page <= linkService.pagesCount)) { - page = null; - } - - return { - hash: hash, - page: page, - rotation: linkService.rotation - }; -} - -var PDFHistory = -/*#__PURE__*/ -function () { - function PDFHistory(_ref) { - var _this = this; - - var linkService = _ref.linkService, - eventBus = _ref.eventBus; - - _classCallCheck(this, PDFHistory); - +class PDFHistory { + constructor({ + linkService, + eventBus + }) { this.linkService = linkService; - this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)(); - this.initialized = false; - this.initialBookmark = null; - this.initialRotation = null; - this._boundEvents = Object.create(null); + this.eventBus = eventBus; + this._initialized = false; + this._fingerprint = ""; + this.reset(); + this._boundEvents = null; this._isViewerInPresentationMode = false; - this._isPagesLoaded = false; - this.eventBus.on('presentationmodechanged', function (evt) { - _this._isViewerInPresentationMode = evt.active || evt.switchInProgress; + + this.eventBus._on("presentationmodechanged", evt => { + this._isViewerInPresentationMode = evt.active || evt.switchInProgress; }); - this.eventBus.on('pagesloaded', function (evt) { - _this._isPagesLoaded = !!evt.pagesCount; + + this.eventBus._on("pagesinit", () => { + this._isPagesLoaded = false; + + const onPagesLoaded = evt => { + this.eventBus._off("pagesloaded", onPagesLoaded); + + this._isPagesLoaded = !!evt.pagesCount; + }; + + this.eventBus._on("pagesloaded", onPagesLoaded); }); } - _createClass(PDFHistory, [{ - key: "initialize", - value: function initialize(_ref2) { - var fingerprint = _ref2.fingerprint, - _ref2$resetHistory = _ref2.resetHistory, - resetHistory = _ref2$resetHistory === void 0 ? false : _ref2$resetHistory, - _ref2$updateUrl = _ref2.updateUrl, - updateUrl = _ref2$updateUrl === void 0 ? false : _ref2$updateUrl; - - if (!fingerprint || typeof fingerprint !== 'string') { - console.error('PDFHistory.initialize: The "fingerprint" must be a non-empty string.'); - return; - } - - var reInitialized = this.initialized && this.fingerprint !== fingerprint; - this.fingerprint = fingerprint; - this._updateUrl = updateUrl === true; - - if (!this.initialized) { - this._bindEvents(); - } - - var state = window.history.state; - this.initialized = true; - this.initialBookmark = null; - this.initialRotation = null; - this._popStateInProgress = false; - this._blockHashChange = 0; - this._currentHash = getCurrentHash(); - this._numPositionUpdates = 0; - this._uid = this._maxUid = 0; - this._destination = null; - this._position = null; - - if (!this._isValidState(state, true) || resetHistory) { - var _parseCurrentHash = parseCurrentHash(this.linkService), - hash = _parseCurrentHash.hash, - page = _parseCurrentHash.page, - rotation = _parseCurrentHash.rotation; - - if (!hash || reInitialized || resetHistory) { - this._pushOrReplaceState(null, true); - - return; - } - - this._pushOrReplaceState({ - hash: hash, - page: page, - rotation: rotation - }, true); - - return; - } - - var destination = state.destination; - - this._updateInternalState(destination, state.uid, true); - - if (this._uid > this._maxUid) { - this._maxUid = this._uid; - } - - if (destination.rotation !== undefined) { - this.initialRotation = destination.rotation; - } - - if (destination.dest) { - this.initialBookmark = JSON.stringify(destination.dest); - this._destination.page = null; - } else if (destination.hash) { - this.initialBookmark = destination.hash; - } else if (destination.page) { - this.initialBookmark = "page=".concat(destination.page); - } + initialize({ + fingerprint, + resetHistory = false, + updateUrl = false + }) { + if (!fingerprint || typeof fingerprint !== "string") { + console.error('PDFHistory.initialize: The "fingerprint" must be a non-empty string.'); + return; } - }, { - key: "push", - value: function push(_ref3) { - var _this2 = this; - var _ref3$namedDest = _ref3.namedDest, - namedDest = _ref3$namedDest === void 0 ? null : _ref3$namedDest, - explicitDest = _ref3.explicitDest, - pageNumber = _ref3.pageNumber; + if (this._initialized) { + this.reset(); + } - if (!this.initialized) { - return; - } + const reInitialized = this._fingerprint !== "" && this._fingerprint !== fingerprint; + this._fingerprint = fingerprint; + this._updateUrl = updateUrl === true; + this._initialized = true; - if (namedDest && typeof namedDest !== 'string') { - console.error('PDFHistory.push: ' + "\"".concat(namedDest, "\" is not a valid namedDest parameter.")); - return; - } else if (!Array.isArray(explicitDest)) { - console.error('PDFHistory.push: ' + "\"".concat(explicitDest, "\" is not a valid explicitDest parameter.")); - return; - } else if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.linkService.pagesCount)) { - if (pageNumber !== null || this._destination) { - console.error('PDFHistory.push: ' + "\"".concat(pageNumber, "\" is not a valid pageNumber parameter.")); - return; - } - } + this._bindEvents(); - var hash = namedDest || JSON.stringify(explicitDest); + const state = window.history.state; + this._popStateInProgress = false; + this._blockHashChange = 0; + this._currentHash = getCurrentHash(); + this._numPositionUpdates = 0; + this._uid = this._maxUid = 0; + this._destination = null; + this._position = null; - if (!hash) { - return; - } + if (!this._isValidState(state, true) || resetHistory) { + const { + hash, + page, + rotation + } = this._parseCurrentHash(true); - var forceReplace = false; + if (!hash || reInitialized || resetHistory) { + this._pushOrReplaceState(null, true); - if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) { - if (this._destination.page) { - return; - } - - forceReplace = true; - } - - if (this._popStateInProgress && !forceReplace) { return; } this._pushOrReplaceState({ - dest: explicitDest, - hash: hash, - page: pageNumber, - rotation: this.linkService.rotation - }, forceReplace); + hash, + page, + rotation + }, true); - if (!this._popStateInProgress) { - this._popStateInProgress = true; - Promise.resolve().then(function () { - _this2._popStateInProgress = false; - }); + return; + } + + const destination = state.destination; + + this._updateInternalState(destination, state.uid, true); + + if (this._uid > this._maxUid) { + this._maxUid = this._uid; + } + + if (destination.rotation !== undefined) { + this._initialRotation = destination.rotation; + } + + if (destination.dest) { + this._initialBookmark = JSON.stringify(destination.dest); + this._destination.page = null; + } else if (destination.hash) { + this._initialBookmark = destination.hash; + } else if (destination.page) { + this._initialBookmark = `page=${destination.page}`; + } + } + + reset() { + if (this._initialized) { + this._pageHide(); + + this._initialized = false; + + this._unbindEvents(); + } + + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + + this._initialBookmark = null; + this._initialRotation = null; + } + + push({ + namedDest = null, + explicitDest, + pageNumber + }) { + if (!this._initialized) { + return; + } + + if (namedDest && typeof namedDest !== "string") { + console.error("PDFHistory.push: " + `"${namedDest}" is not a valid namedDest parameter.`); + return; + } else if (!Array.isArray(explicitDest)) { + console.error("PDFHistory.push: " + `"${explicitDest}" is not a valid explicitDest parameter.`); + return; + } else if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.linkService.pagesCount)) { + if (pageNumber !== null || this._destination) { + console.error("PDFHistory.push: " + `"${pageNumber}" is not a valid pageNumber parameter.`); + return; } } - }, { - key: "pushCurrentPosition", - value: function pushCurrentPosition() { - if (!this.initialized || this._popStateInProgress) { - return; - } - this._tryPushCurrentPosition(); + const hash = namedDest || JSON.stringify(explicitDest); + + if (!hash) { + return; } - }, { - key: "back", - value: function back() { - if (!this.initialized || this._popStateInProgress) { + + let forceReplace = false; + + if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) { + if (this._destination.page) { return; } - var state = window.history.state; - - if (this._isValidState(state) && state.uid > 0) { - window.history.back(); - } + forceReplace = true; } - }, { - key: "forward", - value: function forward() { - if (!this.initialized || this._popStateInProgress) { - return; - } - var state = window.history.state; - - if (this._isValidState(state) && state.uid < this._maxUid) { - window.history.forward(); - } + if (this._popStateInProgress && !forceReplace) { + return; } - }, { - key: "_pushOrReplaceState", - value: function _pushOrReplaceState(destination) { - var forceReplace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var shouldReplace = forceReplace || !this._destination; - var newState = { - fingerprint: this.fingerprint, - uid: shouldReplace ? this._uid : this._uid + 1, - destination: destination - }; - this._updateInternalState(destination, newState.uid); - - var newUrl; - - if (this._updateUrl && destination && destination.hash) { - var baseUrl = document.location.href.split('#')[0]; - - if (!baseUrl.startsWith('file://')) { - newUrl = "".concat(baseUrl, "#").concat(destination.hash); - } - } - - if (shouldReplace) { - if (newUrl) { - window.history.replaceState(newState, '', newUrl); - } else { - window.history.replaceState(newState, ''); - } - } else { - this._maxUid = this._uid; - - if (newUrl) { - window.history.pushState(newState, '', newUrl); - } else { - window.history.pushState(newState, ''); - } - } - } - }, { - key: "_tryPushCurrentPosition", - value: function _tryPushCurrentPosition() { - var temporary = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - if (!this._position) { - return; - } - - var position = this._position; - - if (temporary) { - position = Object.assign(Object.create(null), this._position); - position.temporary = true; - } - - if (!this._destination) { - this._pushOrReplaceState(position); - - return; - } - - if (this._destination.temporary) { - this._pushOrReplaceState(position, true); - - return; - } - - if (this._destination.hash === position.hash) { - return; - } - - if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) { - return; - } - - var forceReplace = false; - - if (this._destination.page >= position.first && this._destination.page <= position.page) { - if (this._destination.dest || !this._destination.first) { - return; - } - - forceReplace = true; - } - - this._pushOrReplaceState(position, forceReplace); - } - }, { - key: "_isValidState", - value: function _isValidState(state) { - var checkReload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - if (!state) { - return false; - } - - if (state.fingerprint !== this.fingerprint) { - if (checkReload) { - if (typeof state.fingerprint !== 'string' || state.fingerprint.length !== this.fingerprint.length) { - return false; - } - - var _performance$getEntri = performance.getEntriesByType('navigation'), - _performance$getEntri2 = _slicedToArray(_performance$getEntri, 1), - perfEntry = _performance$getEntri2[0]; - - if (!perfEntry || perfEntry.type !== 'reload') { - return false; - } - } else { - return false; - } - } - - if (!Number.isInteger(state.uid) || state.uid < 0) { - return false; - } - - if (state.destination === null || _typeof(state.destination) !== 'object') { - return false; - } - - return true; - } - }, { - key: "_updateInternalState", - value: function _updateInternalState(destination, uid) { - var removeTemporary = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - if (this._updateViewareaTimeout) { - clearTimeout(this._updateViewareaTimeout); - this._updateViewareaTimeout = null; - } - - if (removeTemporary && destination && destination.temporary) { - delete destination.temporary; - } - - this._destination = destination; - this._uid = uid; - this._numPositionUpdates = 0; - } - }, { - key: "_updateViewarea", - value: function _updateViewarea(_ref4) { - var _this3 = this; - - var location = _ref4.location; - - if (this._updateViewareaTimeout) { - clearTimeout(this._updateViewareaTimeout); - this._updateViewareaTimeout = null; - } - - this._position = { - hash: this._isViewerInPresentationMode ? "page=".concat(location.pageNumber) : location.pdfOpenParams.substring(1), - page: this.linkService.page, - first: location.pageNumber, - rotation: location.rotation - }; - - if (this._popStateInProgress) { - return; - } - - if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) { - this._numPositionUpdates++; - } - - if (UPDATE_VIEWAREA_TIMEOUT > 0) { - this._updateViewareaTimeout = setTimeout(function () { - if (!_this3._popStateInProgress) { - _this3._tryPushCurrentPosition(true); - } - - _this3._updateViewareaTimeout = null; - }, UPDATE_VIEWAREA_TIMEOUT); - } - } - }, { - key: "_popState", - value: function _popState(_ref5) { - var _this4 = this; - - var state = _ref5.state; - var newHash = getCurrentHash(), - hashChanged = this._currentHash !== newHash; - this._currentHash = newHash; - - if (!state || false) { - this._uid++; - - var _parseCurrentHash2 = parseCurrentHash(this.linkService), - hash = _parseCurrentHash2.hash, - page = _parseCurrentHash2.page, - rotation = _parseCurrentHash2.rotation; - - this._pushOrReplaceState({ - hash: hash, - page: page, - rotation: rotation - }, true); - - return; - } - - if (!this._isValidState(state)) { - return; - } + this._pushOrReplaceState({ + dest: explicitDest, + hash, + page: pageNumber, + rotation: this.linkService.rotation + }, forceReplace); + if (!this._popStateInProgress) { this._popStateInProgress = true; - - if (hashChanged) { - this._blockHashChange++; - (0, _ui_utils.waitOnEventOrTimeout)({ - target: window, - name: 'hashchange', - delay: HASH_CHANGE_TIMEOUT - }).then(function () { - _this4._blockHashChange--; - }); - } - - var destination = state.destination; - - this._updateInternalState(destination, state.uid, true); - - if (this._uid > this._maxUid) { - this._maxUid = this._uid; - } - - if ((0, _ui_utils.isValidRotation)(destination.rotation)) { - this.linkService.rotation = destination.rotation; - } - - if (destination.dest) { - this.linkService.navigateTo(destination.dest); - } else if (destination.hash) { - this.linkService.setHash(destination.hash); - } else if (destination.page) { - this.linkService.page = destination.page; - } - - Promise.resolve().then(function () { - _this4._popStateInProgress = false; + Promise.resolve().then(() => { + this._popStateInProgress = false; }); } - }, { - key: "_bindEvents", - value: function _bindEvents() { - var _this5 = this; + } - var _boundEvents = this._boundEvents, - eventBus = this.eventBus; - _boundEvents.updateViewarea = this._updateViewarea.bind(this); - _boundEvents.popState = this._popState.bind(this); + pushCurrentPosition() { + if (!this._initialized || this._popStateInProgress) { + return; + } - _boundEvents.pageHide = function (evt) { - if (!_this5._destination || _this5._destination.temporary) { - _this5._tryPushCurrentPosition(); + this._tryPushCurrentPosition(); + } + + back() { + if (!this._initialized || this._popStateInProgress) { + return; + } + + const state = window.history.state; + + if (this._isValidState(state) && state.uid > 0) { + window.history.back(); + } + } + + forward() { + if (!this._initialized || this._popStateInProgress) { + return; + } + + const state = window.history.state; + + if (this._isValidState(state) && state.uid < this._maxUid) { + window.history.forward(); + } + } + + get popStateInProgress() { + return this._initialized && (this._popStateInProgress || this._blockHashChange > 0); + } + + get initialBookmark() { + return this._initialized ? this._initialBookmark : null; + } + + get initialRotation() { + return this._initialized ? this._initialRotation : null; + } + + _pushOrReplaceState(destination, forceReplace = false) { + const shouldReplace = forceReplace || !this._destination; + const newState = { + fingerprint: this._fingerprint, + uid: shouldReplace ? this._uid : this._uid + 1, + destination + }; + + this._updateInternalState(destination, newState.uid); + + let newUrl; + + if (this._updateUrl && destination && destination.hash) { + const baseUrl = document.location.href.split("#")[0]; + + if (!baseUrl.startsWith("file://")) { + newUrl = `${baseUrl}#${destination.hash}`; + } + } + + if (shouldReplace) { + window.history.replaceState(newState, "", newUrl); + } else { + this._maxUid = this._uid; + window.history.pushState(newState, "", newUrl); + } + } + + _tryPushCurrentPosition(temporary = false) { + if (!this._position) { + return; + } + + let position = this._position; + + if (temporary) { + position = Object.assign(Object.create(null), this._position); + position.temporary = true; + } + + if (!this._destination) { + this._pushOrReplaceState(position); + + return; + } + + if (this._destination.temporary) { + this._pushOrReplaceState(position, true); + + return; + } + + if (this._destination.hash === position.hash) { + return; + } + + if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) { + return; + } + + let forceReplace = false; + + if (this._destination.page >= position.first && this._destination.page <= position.page) { + if (this._destination.dest || !this._destination.first) { + return; + } + + forceReplace = true; + } + + this._pushOrReplaceState(position, forceReplace); + } + + _isValidState(state, checkReload = false) { + if (!state) { + return false; + } + + if (state.fingerprint !== this._fingerprint) { + if (checkReload) { + if (typeof state.fingerprint !== "string" || state.fingerprint.length !== this._fingerprint.length) { + return false; } - }; - eventBus.on('updateviewarea', _boundEvents.updateViewarea); - window.addEventListener('popstate', _boundEvents.popState); - window.addEventListener('pagehide', _boundEvents.pageHide); - } - }, { - key: "popStateInProgress", - get: function get() { - return this.initialized && (this._popStateInProgress || this._blockHashChange > 0); - } - }]); + const [perfEntry] = performance.getEntriesByType("navigation"); - return PDFHistory; -}(); + if (!perfEntry || perfEntry.type !== "reload") { + return false; + } + } else { + return false; + } + } + + if (!Number.isInteger(state.uid) || state.uid < 0) { + return false; + } + + if (state.destination === null || typeof state.destination !== "object") { + return false; + } + + return true; + } + + _updateInternalState(destination, uid, removeTemporary = false) { + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + + if (removeTemporary && destination && destination.temporary) { + delete destination.temporary; + } + + this._destination = destination; + this._uid = uid; + this._numPositionUpdates = 0; + } + + _parseCurrentHash(checkNameddest = false) { + const hash = unescape(getCurrentHash()).substring(1); + const params = (0, _ui_utils.parseQueryString)(hash); + const nameddest = params.nameddest || ""; + let page = params.page | 0; + + if (!(Number.isInteger(page) && page > 0 && page <= this.linkService.pagesCount) || checkNameddest && nameddest.length > 0) { + page = null; + } + + return { + hash, + page, + rotation: this.linkService.rotation + }; + } + + _updateViewarea({ + location + }) { + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + + this._position = { + hash: this._isViewerInPresentationMode ? `page=${location.pageNumber}` : location.pdfOpenParams.substring(1), + page: this.linkService.page, + first: location.pageNumber, + rotation: location.rotation + }; + + if (this._popStateInProgress) { + return; + } + + if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) { + this._numPositionUpdates++; + } + + if (UPDATE_VIEWAREA_TIMEOUT > 0) { + this._updateViewareaTimeout = setTimeout(() => { + if (!this._popStateInProgress) { + this._tryPushCurrentPosition(true); + } + + this._updateViewareaTimeout = null; + }, UPDATE_VIEWAREA_TIMEOUT); + } + } + + _popState({ + state + }) { + const newHash = getCurrentHash(), + hashChanged = this._currentHash !== newHash; + this._currentHash = newHash; + + if (!state) { + this._uid++; + + const { + hash, + page, + rotation + } = this._parseCurrentHash(); + + this._pushOrReplaceState({ + hash, + page, + rotation + }, true); + + return; + } + + if (!this._isValidState(state)) { + return; + } + + this._popStateInProgress = true; + + if (hashChanged) { + this._blockHashChange++; + (0, _ui_utils.waitOnEventOrTimeout)({ + target: window, + name: "hashchange", + delay: HASH_CHANGE_TIMEOUT + }).then(() => { + this._blockHashChange--; + }); + } + + const destination = state.destination; + + this._updateInternalState(destination, state.uid, true); + + if (this._uid > this._maxUid) { + this._maxUid = this._uid; + } + + if ((0, _ui_utils.isValidRotation)(destination.rotation)) { + this.linkService.rotation = destination.rotation; + } + + if (destination.dest) { + this.linkService.navigateTo(destination.dest); + } else if (destination.hash) { + this.linkService.setHash(destination.hash); + } else if (destination.page) { + this.linkService.page = destination.page; + } + + Promise.resolve().then(() => { + this._popStateInProgress = false; + }); + } + + _pageHide() { + if (!this._destination || this._destination.temporary) { + this._tryPushCurrentPosition(); + } + } + + _bindEvents() { + if (this._boundEvents) { + return; + } + + this._boundEvents = { + updateViewarea: this._updateViewarea.bind(this), + popState: this._popState.bind(this), + pageHide: this._pageHide.bind(this) + }; + + this.eventBus._on("updateviewarea", this._boundEvents.updateViewarea); + + window.addEventListener("popstate", this._boundEvents.popState); + window.addEventListener("pagehide", this._boundEvents.pageHide); + } + + _unbindEvents() { + if (!this._boundEvents) { + return; + } + + this.eventBus._off("updateviewarea", this._boundEvents.updateViewarea); + + window.removeEventListener("popstate", this._boundEvents.popState); + window.removeEventListener("pagehide", this._boundEvents.pageHide); + this._boundEvents = null; + } + +} exports.PDFHistory = PDFHistory; function isDestHashesEqual(destHash, pushHash) { - if (typeof destHash !== 'string' || typeof pushHash !== 'string') { + if (typeof destHash !== "string" || typeof pushHash !== "string") { return false; } @@ -8035,8 +7143,9 @@ function isDestHashesEqual(destHash, pushHash) { return true; } - var _parseQueryString = (0, _ui_utils.parseQueryString)(destHash), - nameddest = _parseQueryString.nameddest; + const { + nameddest + } = (0, _ui_utils.parseQueryString)(destHash); if (nameddest === pushHash) { return true; @@ -8047,7 +7156,7 @@ function isDestHashesEqual(destHash, pushHash) { function isDestArraysEqual(firstDest, secondDest) { function isEntryEqual(first, second) { - if (_typeof(first) !== _typeof(second)) { + if (typeof first !== typeof second) { return false; } @@ -8055,12 +7164,12 @@ function isDestArraysEqual(firstDest, secondDest) { return false; } - if (first !== null && _typeof(first) === 'object' && second !== null) { + if (first !== null && typeof first === "object" && second !== null) { if (Object.keys(first).length !== Object.keys(second).length) { return false; } - for (var key in first) { + for (const key in first) { if (!isEntryEqual(first[key], second[key])) { return false; } @@ -8080,7 +7189,7 @@ function isDestArraysEqual(firstDest, secondDest) { return false; } - for (var i = 0, ii = firstDest.length; i < ii; i++) { + for (let i = 0, ii = firstDest.length; i < ii; i++) { if (!isEntryEqual(firstDest[i], secondDest[i])) { return false; } @@ -8090,7 +7199,200 @@ function isDestArraysEqual(firstDest, secondDest) { } /***/ }), -/* 21 */ +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFLayerViewer = void 0; + +var _base_tree_viewer = __webpack_require__(13); + +class PDFLayerViewer extends _base_tree_viewer.BaseTreeViewer { + constructor(options) { + super(options); + this.l10n = options.l10n; + + this.eventBus._on("resetlayers", this._resetLayers.bind(this)); + + this.eventBus._on("togglelayerstree", this._toggleAllTreeItems.bind(this)); + } + + reset() { + super.reset(); + this._optionalContentConfig = null; + this._pdfDocument = null; + } + + _dispatchEvent(layersCount) { + this.eventBus.dispatch("layersloaded", { + source: this, + layersCount + }); + } + + _bindLink(element, { + groupId, + input + }) { + const setVisibility = () => { + this._optionalContentConfig.setVisibility(groupId, input.checked); + + this.eventBus.dispatch("optionalcontentconfig", { + source: this, + promise: Promise.resolve(this._optionalContentConfig) + }); + }; + + element.onclick = evt => { + if (evt.target === input) { + setVisibility(); + return true; + } else if (evt.target !== element) { + return true; + } + + input.checked = !input.checked; + setVisibility(); + return false; + }; + } + + async _setNestedName(element, { + name = null + }) { + if (typeof name === "string") { + element.textContent = this._normalizeTextContent(name); + return; + } + + element.textContent = await this.l10n.get("additional_layers", null, "Additional Layers"); + element.style.fontStyle = "italic"; + } + + _addToggleButton(div, { + name = null + }) { + super._addToggleButton(div, name === null); + } + + _toggleAllTreeItems() { + if (!this._optionalContentConfig) { + return; + } + + super._toggleAllTreeItems(); + } + + render({ + optionalContentConfig, + pdfDocument + }) { + if (this._optionalContentConfig) { + this.reset(); + } + + this._optionalContentConfig = optionalContentConfig || null; + this._pdfDocument = pdfDocument || null; + const groups = optionalContentConfig && optionalContentConfig.getOrder(); + + if (!groups) { + this._dispatchEvent(0); + + return; + } + + const fragment = document.createDocumentFragment(), + queue = [{ + parent: fragment, + groups + }]; + let layersCount = 0, + hasAnyNesting = false; + + while (queue.length > 0) { + const levelData = queue.shift(); + + for (const groupId of levelData.groups) { + const div = document.createElement("div"); + div.className = "treeItem"; + const element = document.createElement("a"); + div.appendChild(element); + + if (typeof groupId === "object") { + hasAnyNesting = true; + + this._addToggleButton(div, groupId); + + this._setNestedName(element, groupId); + + const itemsDiv = document.createElement("div"); + itemsDiv.className = "treeItems"; + div.appendChild(itemsDiv); + queue.push({ + parent: itemsDiv, + groups: groupId.order + }); + } else { + const group = optionalContentConfig.getGroup(groupId); + const input = document.createElement("input"); + + this._bindLink(element, { + groupId, + input + }); + + input.type = "checkbox"; + input.id = groupId; + input.checked = group.visible; + const label = document.createElement("label"); + label.setAttribute("for", groupId); + label.textContent = this._normalizeTextContent(group.name); + element.appendChild(input); + element.appendChild(label); + layersCount++; + } + + levelData.parent.appendChild(div); + } + } + + if (hasAnyNesting) { + this.container.classList.add("treeWithDeepNesting"); + this._lastToggleIsShow = fragment.querySelectorAll(".treeItemsHidden").length === 0; + } + + this.container.appendChild(fragment); + + this._dispatchEvent(layersCount); + } + + async _resetLayers() { + if (!this._optionalContentConfig) { + return; + } + + const optionalContentConfig = await this._pdfDocument.getOptionalContentConfig(); + this.eventBus.dispatch("optionalcontentconfig", { + source: this, + promise: Promise.resolve(optionalContentConfig) + }); + this.render({ + optionalContentConfig, + pdfDocument: this._pdfDocument + }); + } + +} + +exports.PDFLayerViewer = PDFLayerViewer; + +/***/ }), +/* 20 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -8101,32 +7403,21 @@ Object.defineProperty(exports, "__esModule", { }); exports.SimpleLinkService = exports.PDFLinkService = void 0; -var _ui_utils = __webpack_require__(5); +var _ui_utils = __webpack_require__(2); -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var PDFLinkService = -/*#__PURE__*/ -function () { - function PDFLinkService() { - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - eventBus = _ref.eventBus, - _ref$externalLinkTarg = _ref.externalLinkTarget, - externalLinkTarget = _ref$externalLinkTarg === void 0 ? null : _ref$externalLinkTarg, - _ref$externalLinkRel = _ref.externalLinkRel, - externalLinkRel = _ref$externalLinkRel === void 0 ? null : _ref$externalLinkRel; - - _classCallCheck(this, PDFLinkService); - - this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)(); +class PDFLinkService { + constructor({ + eventBus, + externalLinkTarget = null, + externalLinkRel = null, + externalLinkEnabled = true, + ignoreDestinationZoom = false + } = {}) { + this.eventBus = eventBus; this.externalLinkTarget = externalLinkTarget; this.externalLinkRel = externalLinkRel; + this.externalLinkEnabled = externalLinkEnabled; + this._ignoreDestinationZoom = ignoreDestinationZoom; this.baseUrl = null; this.pdfDocument = null; this.pdfViewer = null; @@ -8134,311 +7425,290 @@ function () { this._pagesRefCache = null; } - _createClass(PDFLinkService, [{ - key: "setDocument", - value: function setDocument(pdfDocument) { - var baseUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - this.baseUrl = baseUrl; - this.pdfDocument = pdfDocument; - this._pagesRefCache = Object.create(null); - } - }, { - key: "setViewer", - value: function setViewer(pdfViewer) { - this.pdfViewer = pdfViewer; - } - }, { - key: "setHistory", - value: function setHistory(pdfHistory) { - this.pdfHistory = pdfHistory; - } - }, { - key: "navigateTo", - value: function navigateTo(dest) { - var _this = this; + setDocument(pdfDocument, baseUrl = null) { + this.baseUrl = baseUrl; + this.pdfDocument = pdfDocument; + this._pagesRefCache = Object.create(null); + } - var goToDestination = function goToDestination(_ref2) { - var namedDest = _ref2.namedDest, - explicitDest = _ref2.explicitDest; - var destRef = explicitDest[0], - pageNumber; + setViewer(pdfViewer) { + this.pdfViewer = pdfViewer; + } - if (destRef instanceof Object) { - pageNumber = _this._cachedPageNumber(destRef); + setHistory(pdfHistory) { + this.pdfHistory = pdfHistory; + } - if (pageNumber === null) { - _this.pdfDocument.getPageIndex(destRef).then(function (pageIndex) { - _this.cachePageRef(pageIndex + 1, destRef); + get pagesCount() { + return this.pdfDocument ? this.pdfDocument.numPages : 0; + } - goToDestination({ - namedDest: namedDest, - explicitDest: explicitDest - }); - })["catch"](function () { - console.error("PDFLinkService.navigateTo: \"".concat(destRef, "\" is not ") + "a valid page reference, for dest=\"".concat(dest, "\".")); + get page() { + return this.pdfViewer.currentPageNumber; + } + + set page(value) { + this.pdfViewer.currentPageNumber = value; + } + + get rotation() { + return this.pdfViewer.pagesRotation; + } + + set rotation(value) { + this.pdfViewer.pagesRotation = value; + } + + navigateTo(dest) { + const goToDestination = ({ + namedDest, + explicitDest + }) => { + const destRef = explicitDest[0]; + let pageNumber; + + if (destRef instanceof Object) { + pageNumber = this._cachedPageNumber(destRef); + + if (pageNumber === null) { + this.pdfDocument.getPageIndex(destRef).then(pageIndex => { + this.cachePageRef(pageIndex + 1, destRef); + goToDestination({ + namedDest, + explicitDest }); - - return; - } - } else if (Number.isInteger(destRef)) { - pageNumber = destRef + 1; - } else { - console.error("PDFLinkService.navigateTo: \"".concat(destRef, "\" is not ") + "a valid destination reference, for dest=\"".concat(dest, "\".")); + }).catch(() => { + console.error(`PDFLinkService.navigateTo: "${destRef}" is not ` + `a valid page reference, for dest="${dest}".`); + }); return; } - - if (!pageNumber || pageNumber < 1 || pageNumber > _this.pagesCount) { - console.error("PDFLinkService.navigateTo: \"".concat(pageNumber, "\" is not ") + "a valid page number, for dest=\"".concat(dest, "\".")); - return; - } - - if (_this.pdfHistory) { - _this.pdfHistory.pushCurrentPosition(); - - _this.pdfHistory.push({ - namedDest: namedDest, - explicitDest: explicitDest, - pageNumber: pageNumber - }); - } - - _this.pdfViewer.scrollPageIntoView({ - pageNumber: pageNumber, - destArray: explicitDest - }); - }; - - new Promise(function (resolve, reject) { - if (typeof dest === 'string') { - _this.pdfDocument.getDestination(dest).then(function (destArray) { - resolve({ - namedDest: dest, - explicitDest: destArray - }); - }); - - return; - } - - resolve({ - namedDest: '', - explicitDest: dest - }); - }).then(function (data) { - if (!Array.isArray(data.explicitDest)) { - console.error("PDFLinkService.navigateTo: \"".concat(data.explicitDest, "\" is") + " not a valid destination array, for dest=\"".concat(dest, "\".")); - return; - } - - goToDestination(data); - }); - } - }, { - key: "getDestinationHash", - value: function getDestinationHash(dest) { - if (typeof dest === 'string') { - return this.getAnchorUrl('#' + escape(dest)); - } - - if (Array.isArray(dest)) { - var str = JSON.stringify(dest); - return this.getAnchorUrl('#' + escape(str)); - } - - return this.getAnchorUrl(''); - } - }, { - key: "getAnchorUrl", - value: function getAnchorUrl(anchor) { - return (this.baseUrl || '') + anchor; - } - }, { - key: "setHash", - value: function setHash(hash) { - var pageNumber, dest; - - if (hash.includes('=')) { - var params = (0, _ui_utils.parseQueryString)(hash); - - if ('search' in params) { - this.eventBus.dispatch('findfromurlhash', { - source: this, - query: params['search'].replace(/"/g, ''), - phraseSearch: params['phrase'] === 'true' - }); - } - - if ('nameddest' in params) { - this.navigateTo(params.nameddest); - return; - } - - if ('page' in params) { - pageNumber = params.page | 0 || 1; - } - - if ('zoom' in params) { - var zoomArgs = params.zoom.split(','); - var zoomArg = zoomArgs[0]; - var zoomArgNumber = parseFloat(zoomArg); - - if (!zoomArg.includes('Fit')) { - dest = [null, { - name: 'XYZ' - }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg]; - } else { - if (zoomArg === 'Fit' || zoomArg === 'FitB') { - dest = [null, { - name: zoomArg - }]; - } else if (zoomArg === 'FitH' || zoomArg === 'FitBH' || zoomArg === 'FitV' || zoomArg === 'FitBV') { - dest = [null, { - name: zoomArg - }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null]; - } else if (zoomArg === 'FitR') { - if (zoomArgs.length !== 5) { - console.error('PDFLinkService.setHash: Not enough parameters for "FitR".'); - } else { - dest = [null, { - name: zoomArg - }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0]; - } - } else { - console.error("PDFLinkService.setHash: \"".concat(zoomArg, "\" is not ") + 'a valid zoom value.'); - } - } - } - - if (dest) { - this.pdfViewer.scrollPageIntoView({ - pageNumber: pageNumber || this.page, - destArray: dest, - allowNegativeOffset: true - }); - } else if (pageNumber) { - this.page = pageNumber; - } - - if ('pagemode' in params) { - this.eventBus.dispatch('pagemode', { - source: this, - mode: params.pagemode - }); - } + } else if (Number.isInteger(destRef)) { + pageNumber = destRef + 1; } else { - dest = unescape(hash); - - try { - dest = JSON.parse(dest); - - if (!Array.isArray(dest)) { - dest = dest.toString(); - } - } catch (ex) {} - - if (typeof dest === 'string' || isValidExplicitDestination(dest)) { - this.navigateTo(dest); - return; - } - - console.error("PDFLinkService.setHash: \"".concat(unescape(hash), "\" is not ") + 'a valid destination.'); - } - } - }, { - key: "executeNamedAction", - value: function executeNamedAction(action) { - switch (action) { - case 'GoBack': - if (this.pdfHistory) { - this.pdfHistory.back(); - } - - break; - - case 'GoForward': - if (this.pdfHistory) { - this.pdfHistory.forward(); - } - - break; - - case 'NextPage': - if (this.page < this.pagesCount) { - this.page++; - } - - break; - - case 'PrevPage': - if (this.page > 1) { - this.page--; - } - - break; - - case 'LastPage': - this.page = this.pagesCount; - break; - - case 'FirstPage': - this.page = 1; - break; - - default: - break; - } - - this.eventBus.dispatch('namedaction', { - source: this, - action: action - }); - } - }, { - key: "cachePageRef", - value: function cachePageRef(pageNum, pageRef) { - if (!pageRef) { + console.error(`PDFLinkService.navigateTo: "${destRef}" is not ` + `a valid destination reference, for dest="${dest}".`); return; } - var refStr = pageRef.num + ' ' + pageRef.gen + ' R'; - this._pagesRefCache[refStr] = pageNum; - } - }, { - key: "_cachedPageNumber", - value: function _cachedPageNumber(pageRef) { - var refStr = pageRef.num + ' ' + pageRef.gen + ' R'; - return this._pagesRefCache && this._pagesRefCache[refStr] || null; - } - }, { - key: "isPageVisible", - value: function isPageVisible(pageNumber) { - return this.pdfViewer.isPageVisible(pageNumber); - } - }, { - key: "pagesCount", - get: function get() { - return this.pdfDocument ? this.pdfDocument.numPages : 0; - } - }, { - key: "page", - get: function get() { - return this.pdfViewer.currentPageNumber; - }, - set: function set(value) { - this.pdfViewer.currentPageNumber = value; - } - }, { - key: "rotation", - get: function get() { - return this.pdfViewer.pagesRotation; - }, - set: function set(value) { - this.pdfViewer.pagesRotation = value; - } - }]); + if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) { + console.error(`PDFLinkService.navigateTo: "${pageNumber}" is not ` + `a valid page number, for dest="${dest}".`); + return; + } - return PDFLinkService; -}(); + if (this.pdfHistory) { + this.pdfHistory.pushCurrentPosition(); + this.pdfHistory.push({ + namedDest, + explicitDest, + pageNumber + }); + } + + this.pdfViewer.scrollPageIntoView({ + pageNumber, + destArray: explicitDest, + ignoreDestinationZoom: this._ignoreDestinationZoom + }); + }; + + new Promise((resolve, reject) => { + if (typeof dest === "string") { + this.pdfDocument.getDestination(dest).then(destArray => { + resolve({ + namedDest: dest, + explicitDest: destArray + }); + }); + return; + } + + resolve({ + namedDest: "", + explicitDest: dest + }); + }).then(data => { + if (!Array.isArray(data.explicitDest)) { + console.error(`PDFLinkService.navigateTo: "${data.explicitDest}" is` + ` not a valid destination array, for dest="${dest}".`); + return; + } + + goToDestination(data); + }); + } + + getDestinationHash(dest) { + if (typeof dest === "string") { + return this.getAnchorUrl("#" + escape(dest)); + } + + if (Array.isArray(dest)) { + const str = JSON.stringify(dest); + return this.getAnchorUrl("#" + escape(str)); + } + + return this.getAnchorUrl(""); + } + + getAnchorUrl(anchor) { + return (this.baseUrl || "") + anchor; + } + + setHash(hash) { + let pageNumber, dest; + + if (hash.includes("=")) { + const params = (0, _ui_utils.parseQueryString)(hash); + + if ("search" in params) { + this.eventBus.dispatch("findfromurlhash", { + source: this, + query: params.search.replace(/"/g, ""), + phraseSearch: params.phrase === "true" + }); + } + + if ("page" in params) { + pageNumber = params.page | 0 || 1; + } + + if ("zoom" in params) { + const zoomArgs = params.zoom.split(","); + const zoomArg = zoomArgs[0]; + const zoomArgNumber = parseFloat(zoomArg); + + if (!zoomArg.includes("Fit")) { + dest = [null, { + name: "XYZ" + }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg]; + } else { + if (zoomArg === "Fit" || zoomArg === "FitB") { + dest = [null, { + name: zoomArg + }]; + } else if (zoomArg === "FitH" || zoomArg === "FitBH" || zoomArg === "FitV" || zoomArg === "FitBV") { + dest = [null, { + name: zoomArg + }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null]; + } else if (zoomArg === "FitR") { + if (zoomArgs.length !== 5) { + console.error('PDFLinkService.setHash: Not enough parameters for "FitR".'); + } else { + dest = [null, { + name: zoomArg + }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0]; + } + } else { + console.error(`PDFLinkService.setHash: "${zoomArg}" is not ` + "a valid zoom value."); + } + } + } + + if (dest) { + this.pdfViewer.scrollPageIntoView({ + pageNumber: pageNumber || this.page, + destArray: dest, + allowNegativeOffset: true + }); + } else if (pageNumber) { + this.page = pageNumber; + } + + if ("pagemode" in params) { + this.eventBus.dispatch("pagemode", { + source: this, + mode: params.pagemode + }); + } + + if ("nameddest" in params) { + this.navigateTo(params.nameddest); + } + } else { + dest = unescape(hash); + + try { + dest = JSON.parse(dest); + + if (!Array.isArray(dest)) { + dest = dest.toString(); + } + } catch (ex) {} + + if (typeof dest === "string" || isValidExplicitDestination(dest)) { + this.navigateTo(dest); + return; + } + + console.error(`PDFLinkService.setHash: "${unescape(hash)}" is not ` + "a valid destination."); + } + } + + executeNamedAction(action) { + switch (action) { + case "GoBack": + if (this.pdfHistory) { + this.pdfHistory.back(); + } + + break; + + case "GoForward": + if (this.pdfHistory) { + this.pdfHistory.forward(); + } + + break; + + case "NextPage": + if (this.page < this.pagesCount) { + this.page++; + } + + break; + + case "PrevPage": + if (this.page > 1) { + this.page--; + } + + break; + + case "LastPage": + this.page = this.pagesCount; + break; + + case "FirstPage": + this.page = 1; + break; + + default: + break; + } + + this.eventBus.dispatch("namedaction", { + source: this, + action + }); + } + + cachePageRef(pageNum, pageRef) { + if (!pageRef) { + return; + } + + const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`; + this._pagesRefCache[refStr] = pageNum; + } + + _cachedPageNumber(pageRef) { + const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`; + return this._pagesRefCache && this._pagesRefCache[refStr] || null; + } + + isPageVisible(pageNumber) { + return this.pdfViewer.isPageVisible(pageNumber); + } + +} exports.PDFLinkService = PDFLinkService; @@ -8447,48 +7717,49 @@ function isValidExplicitDestination(dest) { return false; } - var destLength = dest.length, - allowNull = true; + const destLength = dest.length; if (destLength < 2) { return false; } - var page = dest[0]; + const page = dest[0]; - if (!(_typeof(page) === 'object' && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) { + if (!(typeof page === "object" && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) { return false; } - var zoom = dest[1]; + const zoom = dest[1]; - if (!(_typeof(zoom) === 'object' && typeof zoom.name === 'string')) { + if (!(typeof zoom === "object" && typeof zoom.name === "string")) { return false; } + let allowNull = true; + switch (zoom.name) { - case 'XYZ': + case "XYZ": if (destLength !== 5) { return false; } break; - case 'Fit': - case 'FitB': + case "Fit": + case "FitB": return destLength === 2; - case 'FitH': - case 'FitBH': - case 'FitV': - case 'FitBV': + case "FitH": + case "FitBH": + case "FitV": + case "FitBV": if (destLength !== 3) { return false; } break; - case 'FitR': + case "FitR": if (destLength !== 6) { return false; } @@ -8500,10 +7771,10 @@ function isValidExplicitDestination(dest) { return false; } - for (var i = 2; i < destLength; i++) { - var param = dest[i]; + for (let i = 2; i < destLength; i++) { + const param = dest[i]; - if (!(typeof param === 'number' || allowNull && param === null)) { + if (!(typeof param === "number" || allowNull && param === null)) { return false; } } @@ -8511,67 +7782,221 @@ function isValidExplicitDestination(dest) { return true; } -var SimpleLinkService = -/*#__PURE__*/ -function () { - function SimpleLinkService() { - _classCallCheck(this, SimpleLinkService); - +class SimpleLinkService { + constructor() { this.externalLinkTarget = null; this.externalLinkRel = null; + this.externalLinkEnabled = true; + this._ignoreDestinationZoom = false; } - _createClass(SimpleLinkService, [{ - key: "navigateTo", - value: function navigateTo(dest) {} - }, { - key: "getDestinationHash", - value: function getDestinationHash(dest) { - return '#'; - } - }, { - key: "getAnchorUrl", - value: function getAnchorUrl(hash) { - return '#'; - } - }, { - key: "setHash", - value: function setHash(hash) {} - }, { - key: "executeNamedAction", - value: function executeNamedAction(action) {} - }, { - key: "cachePageRef", - value: function cachePageRef(pageNum, pageRef) {} - }, { - key: "isPageVisible", - value: function isPageVisible(pageNumber) { - return true; - } - }, { - key: "pagesCount", - get: function get() { - return 0; - } - }, { - key: "page", - get: function get() { - return 0; - }, - set: function set(value) {} - }, { - key: "rotation", - get: function get() { - return 0; - }, - set: function set(value) {} - }]); + get pagesCount() { + return 0; + } - return SimpleLinkService; -}(); + get page() { + return 0; + } + + set page(value) {} + + get rotation() { + return 0; + } + + set rotation(value) {} + + navigateTo(dest) {} + + getDestinationHash(dest) { + return "#"; + } + + getAnchorUrl(hash) { + return "#"; + } + + setHash(hash) {} + + executeNamedAction(action) {} + + cachePageRef(pageNum, pageRef) {} + + isPageVisible(pageNumber) { + return true; + } + +} exports.SimpleLinkService = SimpleLinkService; +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFOutlineViewer = void 0; + +var _pdfjsLib = __webpack_require__(5); + +var _base_tree_viewer = __webpack_require__(13); + +class PDFOutlineViewer extends _base_tree_viewer.BaseTreeViewer { + constructor(options) { + super(options); + this.linkService = options.linkService; + + this.eventBus._on("toggleoutlinetree", this._toggleAllTreeItems.bind(this)); + } + + reset() { + super.reset(); + this._outline = null; + } + + _dispatchEvent(outlineCount) { + this.eventBus.dispatch("outlineloaded", { + source: this, + outlineCount + }); + } + + _bindLink(element, { + url, + newWindow, + dest + }) { + const { + linkService + } = this; + + if (url) { + (0, _pdfjsLib.addLinkAttributes)(element, { + url, + target: newWindow ? _pdfjsLib.LinkTarget.BLANK : linkService.externalLinkTarget, + rel: linkService.externalLinkRel, + enabled: linkService.externalLinkEnabled + }); + return; + } + + element.href = linkService.getDestinationHash(dest); + + element.onclick = () => { + if (dest) { + linkService.navigateTo(dest); + } + + return false; + }; + } + + _setStyles(element, { + bold, + italic + }) { + if (bold) { + element.style.fontWeight = "bold"; + } + + if (italic) { + element.style.fontStyle = "italic"; + } + } + + _addToggleButton(div, { + count, + items + }) { + const hidden = count < 0 && Math.abs(count) === items.length; + + super._addToggleButton(div, hidden); + } + + _toggleAllTreeItems() { + if (!this._outline) { + return; + } + + super._toggleAllTreeItems(); + } + + render({ + outline + }) { + if (this._outline) { + this.reset(); + } + + this._outline = outline || null; + + if (!outline) { + this._dispatchEvent(0); + + return; + } + + const fragment = document.createDocumentFragment(); + const queue = [{ + parent: fragment, + items: outline + }]; + let outlineCount = 0, + hasAnyNesting = false; + + while (queue.length > 0) { + const levelData = queue.shift(); + + for (const item of levelData.items) { + const div = document.createElement("div"); + div.className = "treeItem"; + const element = document.createElement("a"); + + this._bindLink(element, item); + + this._setStyles(element, item); + + element.textContent = this._normalizeTextContent(item.title); + div.appendChild(element); + + if (item.items.length > 0) { + hasAnyNesting = true; + + this._addToggleButton(div, item); + + const itemsDiv = document.createElement("div"); + itemsDiv.className = "treeItems"; + div.appendChild(itemsDiv); + queue.push({ + parent: itemsDiv, + items: item.items + }); + } + + levelData.parent.appendChild(div); + outlineCount++; + } + } + + if (hasAnyNesting) { + this.container.classList.add("treeWithDeepNesting"); + this._lastToggleIsShow = fragment.querySelectorAll(".treeItemsHidden").length === 0; + } + + this.container.appendChild(fragment); + + this._dispatchEvent(outlineCount); + } + +} + +exports.PDFOutlineViewer = PDFOutlineViewer; + /***/ }), /* 22 */ /***/ (function(module, exports, __webpack_require__) { @@ -8582,255 +8007,404 @@ exports.SimpleLinkService = SimpleLinkService; Object.defineProperty(exports, "__esModule", { value: true }); -exports.PDFOutlineViewer = void 0; +exports.PDFPresentationMode = void 0; -var _pdfjsLib = __webpack_require__(7); +var _ui_utils = __webpack_require__(2); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var DEFAULT_TITLE = "\u2013"; - -var PDFOutlineViewer = -/*#__PURE__*/ -function () { - function PDFOutlineViewer(_ref) { - var container = _ref.container, - linkService = _ref.linkService, - eventBus = _ref.eventBus; - - _classCallCheck(this, PDFOutlineViewer); +const DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS = 1500; +const DELAY_BEFORE_HIDING_CONTROLS = 3000; +const ACTIVE_SELECTOR = "pdfPresentationMode"; +const CONTROLS_SELECTOR = "pdfPresentationModeControls"; +const MOUSE_SCROLL_COOLDOWN_TIME = 50; +const PAGE_SWITCH_THRESHOLD = 0.1; +const SWIPE_MIN_DISTANCE_THRESHOLD = 50; +const SWIPE_ANGLE_THRESHOLD = Math.PI / 6; +class PDFPresentationMode { + constructor({ + container, + pdfViewer, + eventBus, + contextMenuItems = null + }) { this.container = container; - this.linkService = linkService; + this.pdfViewer = pdfViewer; this.eventBus = eventBus; - this.reset(); - eventBus.on('toggleoutlinetree', this.toggleOutlineTree.bind(this)); - } + this.active = false; + this.args = null; + this.contextMenuOpen = false; + this.mouseScrollTimeStamp = 0; + this.mouseScrollDelta = 0; + this.touchSwipeState = null; - _createClass(PDFOutlineViewer, [{ - key: "reset", - value: function reset() { - this.outline = null; - this.lastToggleIsShow = true; - this.container.textContent = ''; - this.container.classList.remove('outlineWithDeepNesting'); - } - }, { - key: "_dispatchEvent", - value: function _dispatchEvent(outlineCount) { - this.eventBus.dispatch('outlineloaded', { - source: this, - outlineCount: outlineCount + if (contextMenuItems) { + contextMenuItems.contextFirstPage.addEventListener("click", () => { + this.contextMenuOpen = false; + this.eventBus.dispatch("firstpage", { + source: this + }); + }); + contextMenuItems.contextLastPage.addEventListener("click", () => { + this.contextMenuOpen = false; + this.eventBus.dispatch("lastpage", { + source: this + }); + }); + contextMenuItems.contextPageRotateCw.addEventListener("click", () => { + this.contextMenuOpen = false; + this.eventBus.dispatch("rotatecw", { + source: this + }); + }); + contextMenuItems.contextPageRotateCcw.addEventListener("click", () => { + this.contextMenuOpen = false; + this.eventBus.dispatch("rotateccw", { + source: this + }); }); } - }, { - key: "_bindLink", - value: function _bindLink(element, _ref2) { - var url = _ref2.url, - newWindow = _ref2.newWindow, - dest = _ref2.dest; - var linkService = this.linkService; + } - if (url) { - (0, _pdfjsLib.addLinkAttributes)(element, { - url: url, - target: newWindow ? _pdfjsLib.LinkTarget.BLANK : linkService.externalLinkTarget, - rel: linkService.externalLinkRel - }); - return; - } - - element.href = linkService.getDestinationHash(dest); - - element.onclick = function () { - if (dest) { - linkService.navigateTo(dest); - } - - return false; - }; + request() { + if (this.switchInProgress || this.active || !this.pdfViewer.pagesCount) { + return false; } - }, { - key: "_setStyles", - value: function _setStyles(element, _ref3) { - var bold = _ref3.bold, - italic = _ref3.italic; - var styleStr = ''; - if (bold) { - styleStr += 'font-weight: bold;'; - } + this._addFullscreenChangeListeners(); - if (italic) { - styleStr += 'font-style: italic;'; - } + this._setSwitchInProgress(); - if (styleStr) { - element.setAttribute('style', styleStr); + this._notifyStateChange(); + + if (this.container.requestFullscreen) { + this.container.requestFullscreen(); + } else if (this.container.mozRequestFullScreen) { + this.container.mozRequestFullScreen(); + } else if (this.container.webkitRequestFullscreen) { + this.container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); + } else if (this.container.msRequestFullscreen) { + this.container.msRequestFullscreen(); + } else { + return false; + } + + this.args = { + page: this.pdfViewer.currentPageNumber, + previousScale: this.pdfViewer.currentScaleValue + }; + return true; + } + + _mouseWheel(evt) { + if (!this.active) { + return; + } + + evt.preventDefault(); + const delta = (0, _ui_utils.normalizeWheelEventDelta)(evt); + const currentTime = new Date().getTime(); + const storedTime = this.mouseScrollTimeStamp; + + if (currentTime > storedTime && currentTime - storedTime < MOUSE_SCROLL_COOLDOWN_TIME) { + return; + } + + if (this.mouseScrollDelta > 0 && delta < 0 || this.mouseScrollDelta < 0 && delta > 0) { + this._resetMouseScrollState(); + } + + this.mouseScrollDelta += delta; + + if (Math.abs(this.mouseScrollDelta) >= PAGE_SWITCH_THRESHOLD) { + const totalDelta = this.mouseScrollDelta; + + this._resetMouseScrollState(); + + const success = totalDelta > 0 ? this._goToPreviousPage() : this._goToNextPage(); + + if (success) { + this.mouseScrollTimeStamp = currentTime; } } - }, { - key: "_addToggleButton", - value: function _addToggleButton(div, _ref4) { - var _this = this; + } - var count = _ref4.count, - items = _ref4.items; - var toggler = document.createElement('div'); - toggler.className = 'outlineItemToggler'; + get isFullscreen() { + return !!(document.fullscreenElement || document.mozFullScreen || document.webkitIsFullScreen || document.msFullscreenElement); + } - if (count < 0 && Math.abs(count) === items.length) { - toggler.classList.add('outlineItemsHidden'); - } + _goToPreviousPage() { + const page = this.pdfViewer.currentPageNumber; - toggler.onclick = function (evt) { - evt.stopPropagation(); - toggler.classList.toggle('outlineItemsHidden'); + if (page <= 1) { + return false; + } + + this.pdfViewer.currentPageNumber = page - 1; + return true; + } + + _goToNextPage() { + const page = this.pdfViewer.currentPageNumber; + + if (page >= this.pdfViewer.pagesCount) { + return false; + } + + this.pdfViewer.currentPageNumber = page + 1; + return true; + } + + _notifyStateChange() { + this.eventBus.dispatch("presentationmodechanged", { + source: this, + active: this.active, + switchInProgress: !!this.switchInProgress + }); + } + + _setSwitchInProgress() { + if (this.switchInProgress) { + clearTimeout(this.switchInProgress); + } + + this.switchInProgress = setTimeout(() => { + this._removeFullscreenChangeListeners(); + + delete this.switchInProgress; + + this._notifyStateChange(); + }, DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS); + } + + _resetSwitchInProgress() { + if (this.switchInProgress) { + clearTimeout(this.switchInProgress); + delete this.switchInProgress; + } + } + + _enter() { + this.active = true; + + this._resetSwitchInProgress(); + + this._notifyStateChange(); + + this.container.classList.add(ACTIVE_SELECTOR); + setTimeout(() => { + this.pdfViewer.currentPageNumber = this.args.page; + this.pdfViewer.currentScaleValue = "page-fit"; + }, 0); + + this._addWindowListeners(); + + this._showControls(); + + this.contextMenuOpen = false; + this.container.setAttribute("contextmenu", "viewerContextMenu"); + window.getSelection().removeAllRanges(); + } + + _exit() { + const page = this.pdfViewer.currentPageNumber; + this.container.classList.remove(ACTIVE_SELECTOR); + setTimeout(() => { + this.active = false; + + this._removeFullscreenChangeListeners(); + + this._notifyStateChange(); + + this.pdfViewer.currentScaleValue = this.args.previousScale; + this.pdfViewer.currentPageNumber = page; + this.args = null; + }, 0); + + this._removeWindowListeners(); + + this._hideControls(); + + this._resetMouseScrollState(); + + this.container.removeAttribute("contextmenu"); + this.contextMenuOpen = false; + } + + _mouseDown(evt) { + if (this.contextMenuOpen) { + this.contextMenuOpen = false; + evt.preventDefault(); + return; + } + + if (evt.button === 0) { + const isInternalLink = evt.target.href && evt.target.classList.contains("internalLink"); + + if (!isInternalLink) { + evt.preventDefault(); if (evt.shiftKey) { - var shouldShowAll = !toggler.classList.contains('outlineItemsHidden'); - - _this._toggleOutlineItem(div, shouldShowAll); - } - }; - - div.insertBefore(toggler, div.firstChild); - } - }, { - key: "_toggleOutlineItem", - value: function _toggleOutlineItem(root) { - var show = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - this.lastToggleIsShow = show; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = root.querySelectorAll('.outlineItemToggler')[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var toggler = _step.value; - toggler.classList.toggle('outlineItemsHidden', !show); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } + this._goToPreviousPage(); + } else { + this._goToNextPage(); } } } - }, { - key: "toggleOutlineTree", - value: function toggleOutlineTree() { - if (!this.outline) { - return; - } + } - this._toggleOutlineItem(this.container, !this.lastToggleIsShow); + _contextMenu() { + this.contextMenuOpen = true; + } + + _showControls() { + if (this.controlsTimeout) { + clearTimeout(this.controlsTimeout); + } else { + this.container.classList.add(CONTROLS_SELECTOR); } - }, { - key: "render", - value: function render(_ref5) { - var outline = _ref5.outline; - var outlineCount = 0; - if (this.outline) { - this.reset(); - } + this.controlsTimeout = setTimeout(() => { + this.container.classList.remove(CONTROLS_SELECTOR); + delete this.controlsTimeout; + }, DELAY_BEFORE_HIDING_CONTROLS); + } - this.outline = outline || null; + _hideControls() { + if (!this.controlsTimeout) { + return; + } - if (!outline) { - this._dispatchEvent(outlineCount); + clearTimeout(this.controlsTimeout); + this.container.classList.remove(CONTROLS_SELECTOR); + delete this.controlsTimeout; + } - return; - } + _resetMouseScrollState() { + this.mouseScrollTimeStamp = 0; + this.mouseScrollDelta = 0; + } - var fragment = document.createDocumentFragment(); - var queue = [{ - parent: fragment, - items: this.outline - }]; - var hasAnyNesting = false; + _touchSwipe(evt) { + if (!this.active) { + return; + } - while (queue.length > 0) { - var levelData = queue.shift(); - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; + if (evt.touches.length > 1) { + this.touchSwipeState = null; + return; + } - try { - for (var _iterator2 = levelData.items[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var item = _step2.value; - var div = document.createElement('div'); - div.className = 'outlineItem'; - var element = document.createElement('a'); + switch (evt.type) { + case "touchstart": + this.touchSwipeState = { + startX: evt.touches[0].pageX, + startY: evt.touches[0].pageY, + endX: evt.touches[0].pageX, + endY: evt.touches[0].pageY + }; + break; - this._bindLink(element, item); - - this._setStyles(element, item); - - element.textContent = (0, _pdfjsLib.removeNullCharacters)(item.title) || DEFAULT_TITLE; - div.appendChild(element); - - if (item.items.length > 0) { - hasAnyNesting = true; - - this._addToggleButton(div, item); - - var itemsDiv = document.createElement('div'); - itemsDiv.className = 'outlineItems'; - div.appendChild(itemsDiv); - queue.push({ - parent: itemsDiv, - items: item.items - }); - } - - levelData.parent.appendChild(div); - outlineCount++; - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } + case "touchmove": + if (this.touchSwipeState === null) { + return; } - } - if (hasAnyNesting) { - this.container.classList.add('outlineWithDeepNesting'); - this.lastToggleIsShow = fragment.querySelectorAll('.outlineItemsHidden').length === 0; - } + this.touchSwipeState.endX = evt.touches[0].pageX; + this.touchSwipeState.endY = evt.touches[0].pageY; + evt.preventDefault(); + break; - this.container.appendChild(fragment); + case "touchend": + if (this.touchSwipeState === null) { + return; + } - this._dispatchEvent(outlineCount); + let delta = 0; + const dx = this.touchSwipeState.endX - this.touchSwipeState.startX; + const dy = this.touchSwipeState.endY - this.touchSwipeState.startY; + const absAngle = Math.abs(Math.atan2(dy, dx)); + + if (Math.abs(dx) > SWIPE_MIN_DISTANCE_THRESHOLD && (absAngle <= SWIPE_ANGLE_THRESHOLD || absAngle >= Math.PI - SWIPE_ANGLE_THRESHOLD)) { + delta = dx; + } else if (Math.abs(dy) > SWIPE_MIN_DISTANCE_THRESHOLD && Math.abs(absAngle - Math.PI / 2) <= SWIPE_ANGLE_THRESHOLD) { + delta = dy; + } + + if (delta > 0) { + this._goToPreviousPage(); + } else if (delta < 0) { + this._goToNextPage(); + } + + break; } - }]); + } - return PDFOutlineViewer; -}(); + _addWindowListeners() { + this.showControlsBind = this._showControls.bind(this); + this.mouseDownBind = this._mouseDown.bind(this); + this.mouseWheelBind = this._mouseWheel.bind(this); + this.resetMouseScrollStateBind = this._resetMouseScrollState.bind(this); + this.contextMenuBind = this._contextMenu.bind(this); + this.touchSwipeBind = this._touchSwipe.bind(this); + window.addEventListener("mousemove", this.showControlsBind); + window.addEventListener("mousedown", this.mouseDownBind); + window.addEventListener("wheel", this.mouseWheelBind, { + passive: false + }); + window.addEventListener("keydown", this.resetMouseScrollStateBind); + window.addEventListener("contextmenu", this.contextMenuBind); + window.addEventListener("touchstart", this.touchSwipeBind); + window.addEventListener("touchmove", this.touchSwipeBind); + window.addEventListener("touchend", this.touchSwipeBind); + } -exports.PDFOutlineViewer = PDFOutlineViewer; + _removeWindowListeners() { + window.removeEventListener("mousemove", this.showControlsBind); + window.removeEventListener("mousedown", this.mouseDownBind); + window.removeEventListener("wheel", this.mouseWheelBind, { + passive: false + }); + window.removeEventListener("keydown", this.resetMouseScrollStateBind); + window.removeEventListener("contextmenu", this.contextMenuBind); + window.removeEventListener("touchstart", this.touchSwipeBind); + window.removeEventListener("touchmove", this.touchSwipeBind); + window.removeEventListener("touchend", this.touchSwipeBind); + delete this.showControlsBind; + delete this.mouseDownBind; + delete this.mouseWheelBind; + delete this.resetMouseScrollStateBind; + delete this.contextMenuBind; + delete this.touchSwipeBind; + } + + _fullscreenChange() { + if (this.isFullscreen) { + this._enter(); + } else { + this._exit(); + } + } + + _addFullscreenChangeListeners() { + this.fullscreenChangeBind = this._fullscreenChange.bind(this); + window.addEventListener("fullscreenchange", this.fullscreenChangeBind); + window.addEventListener("mozfullscreenchange", this.fullscreenChangeBind); + window.addEventListener("webkitfullscreenchange", this.fullscreenChangeBind); + window.addEventListener("MSFullscreenChange", this.fullscreenChangeBind); + } + + _removeFullscreenChangeListeners() { + window.removeEventListener("fullscreenchange", this.fullscreenChangeBind); + window.removeEventListener("mozfullscreenchange", this.fullscreenChangeBind); + window.removeEventListener("webkitfullscreenchange", this.fullscreenChangeBind); + window.removeEventListener("MSFullscreenChange", this.fullscreenChangeBind); + delete this.fullscreenChangeBind; + } + +} + +exports.PDFPresentationMode = PDFPresentationMode; /***/ }), /* 23 */ @@ -8839,491 +8413,19 @@ exports.PDFOutlineViewer = PDFOutlineViewer; "use strict"; -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.PDFPresentationMode = void 0; - -var _ui_utils = __webpack_require__(5); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS = 1500; -var DELAY_BEFORE_HIDING_CONTROLS = 3000; -var ACTIVE_SELECTOR = 'pdfPresentationMode'; -var CONTROLS_SELECTOR = 'pdfPresentationModeControls'; -var MOUSE_SCROLL_COOLDOWN_TIME = 50; -var PAGE_SWITCH_THRESHOLD = 0.1; -var SWIPE_MIN_DISTANCE_THRESHOLD = 50; -var SWIPE_ANGLE_THRESHOLD = Math.PI / 6; - -var PDFPresentationMode = -/*#__PURE__*/ -function () { - function PDFPresentationMode(_ref) { - var _this = this; - - var container = _ref.container, - _ref$viewer = _ref.viewer, - viewer = _ref$viewer === void 0 ? null : _ref$viewer, - pdfViewer = _ref.pdfViewer, - eventBus = _ref.eventBus, - _ref$contextMenuItems = _ref.contextMenuItems, - contextMenuItems = _ref$contextMenuItems === void 0 ? null : _ref$contextMenuItems; - - _classCallCheck(this, PDFPresentationMode); - - this.container = container; - this.viewer = viewer || container.firstElementChild; - this.pdfViewer = pdfViewer; - this.eventBus = eventBus; - this.active = false; - this.args = null; - this.contextMenuOpen = false; - this.mouseScrollTimeStamp = 0; - this.mouseScrollDelta = 0; - this.touchSwipeState = null; - - if (contextMenuItems) { - contextMenuItems.contextFirstPage.addEventListener('click', function () { - _this.contextMenuOpen = false; - - _this.eventBus.dispatch('firstpage', { - source: _this - }); - }); - contextMenuItems.contextLastPage.addEventListener('click', function () { - _this.contextMenuOpen = false; - - _this.eventBus.dispatch('lastpage', { - source: _this - }); - }); - contextMenuItems.contextPageRotateCw.addEventListener('click', function () { - _this.contextMenuOpen = false; - - _this.eventBus.dispatch('rotatecw', { - source: _this - }); - }); - contextMenuItems.contextPageRotateCcw.addEventListener('click', function () { - _this.contextMenuOpen = false; - - _this.eventBus.dispatch('rotateccw', { - source: _this - }); - }); - } - } - - _createClass(PDFPresentationMode, [{ - key: "request", - value: function request() { - if (this.switchInProgress || this.active || !this.viewer.hasChildNodes()) { - return false; - } - - this._addFullscreenChangeListeners(); - - this._setSwitchInProgress(); - - this._notifyStateChange(); - - if (this.container.requestFullscreen) { - this.container.requestFullscreen(); - } else if (this.container.mozRequestFullScreen) { - this.container.mozRequestFullScreen(); - } else if (this.container.webkitRequestFullscreen) { - this.container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); - } else if (this.container.msRequestFullscreen) { - this.container.msRequestFullscreen(); - } else { - return false; - } - - this.args = { - page: this.pdfViewer.currentPageNumber, - previousScale: this.pdfViewer.currentScaleValue - }; - return true; - } - }, { - key: "_mouseWheel", - value: function _mouseWheel(evt) { - if (!this.active) { - return; - } - - evt.preventDefault(); - var delta = (0, _ui_utils.normalizeWheelEventDelta)(evt); - var currentTime = new Date().getTime(); - var storedTime = this.mouseScrollTimeStamp; - - if (currentTime > storedTime && currentTime - storedTime < MOUSE_SCROLL_COOLDOWN_TIME) { - return; - } - - if (this.mouseScrollDelta > 0 && delta < 0 || this.mouseScrollDelta < 0 && delta > 0) { - this._resetMouseScrollState(); - } - - this.mouseScrollDelta += delta; - - if (Math.abs(this.mouseScrollDelta) >= PAGE_SWITCH_THRESHOLD) { - var totalDelta = this.mouseScrollDelta; - - this._resetMouseScrollState(); - - var success = totalDelta > 0 ? this._goToPreviousPage() : this._goToNextPage(); - - if (success) { - this.mouseScrollTimeStamp = currentTime; - } - } - } - }, { - key: "_goToPreviousPage", - value: function _goToPreviousPage() { - var page = this.pdfViewer.currentPageNumber; - - if (page <= 1) { - return false; - } - - this.pdfViewer.currentPageNumber = page - 1; - return true; - } - }, { - key: "_goToNextPage", - value: function _goToNextPage() { - var page = this.pdfViewer.currentPageNumber; - - if (page >= this.pdfViewer.pagesCount) { - return false; - } - - this.pdfViewer.currentPageNumber = page + 1; - return true; - } - }, { - key: "_notifyStateChange", - value: function _notifyStateChange() { - this.eventBus.dispatch('presentationmodechanged', { - source: this, - active: this.active, - switchInProgress: !!this.switchInProgress - }); - } - }, { - key: "_setSwitchInProgress", - value: function _setSwitchInProgress() { - var _this2 = this; - - if (this.switchInProgress) { - clearTimeout(this.switchInProgress); - } - - this.switchInProgress = setTimeout(function () { - _this2._removeFullscreenChangeListeners(); - - delete _this2.switchInProgress; - - _this2._notifyStateChange(); - }, DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS); - } - }, { - key: "_resetSwitchInProgress", - value: function _resetSwitchInProgress() { - if (this.switchInProgress) { - clearTimeout(this.switchInProgress); - delete this.switchInProgress; - } - } - }, { - key: "_enter", - value: function _enter() { - var _this3 = this; - - this.active = true; - - this._resetSwitchInProgress(); - - this._notifyStateChange(); - - this.container.classList.add(ACTIVE_SELECTOR); - setTimeout(function () { - _this3.pdfViewer.currentPageNumber = _this3.args.page; - _this3.pdfViewer.currentScaleValue = 'page-fit'; - }, 0); - - this._addWindowListeners(); - - this._showControls(); - - this.contextMenuOpen = false; - this.container.setAttribute('contextmenu', 'viewerContextMenu'); - window.getSelection().removeAllRanges(); - } - }, { - key: "_exit", - value: function _exit() { - var _this4 = this; - - var page = this.pdfViewer.currentPageNumber; - this.container.classList.remove(ACTIVE_SELECTOR); - setTimeout(function () { - _this4.active = false; - - _this4._removeFullscreenChangeListeners(); - - _this4._notifyStateChange(); - - _this4.pdfViewer.currentScaleValue = _this4.args.previousScale; - _this4.pdfViewer.currentPageNumber = page; - _this4.args = null; - }, 0); - - this._removeWindowListeners(); - - this._hideControls(); - - this._resetMouseScrollState(); - - this.container.removeAttribute('contextmenu'); - this.contextMenuOpen = false; - } - }, { - key: "_mouseDown", - value: function _mouseDown(evt) { - if (this.contextMenuOpen) { - this.contextMenuOpen = false; - evt.preventDefault(); - return; - } - - if (evt.button === 0) { - var isInternalLink = evt.target.href && evt.target.classList.contains('internalLink'); - - if (!isInternalLink) { - evt.preventDefault(); - - if (evt.shiftKey) { - this._goToPreviousPage(); - } else { - this._goToNextPage(); - } - } - } - } - }, { - key: "_contextMenu", - value: function _contextMenu() { - this.contextMenuOpen = true; - } - }, { - key: "_showControls", - value: function _showControls() { - var _this5 = this; - - if (this.controlsTimeout) { - clearTimeout(this.controlsTimeout); - } else { - this.container.classList.add(CONTROLS_SELECTOR); - } - - this.controlsTimeout = setTimeout(function () { - _this5.container.classList.remove(CONTROLS_SELECTOR); - - delete _this5.controlsTimeout; - }, DELAY_BEFORE_HIDING_CONTROLS); - } - }, { - key: "_hideControls", - value: function _hideControls() { - if (!this.controlsTimeout) { - return; - } - - clearTimeout(this.controlsTimeout); - this.container.classList.remove(CONTROLS_SELECTOR); - delete this.controlsTimeout; - } - }, { - key: "_resetMouseScrollState", - value: function _resetMouseScrollState() { - this.mouseScrollTimeStamp = 0; - this.mouseScrollDelta = 0; - } - }, { - key: "_touchSwipe", - value: function _touchSwipe(evt) { - if (!this.active) { - return; - } - - if (evt.touches.length > 1) { - this.touchSwipeState = null; - return; - } - - switch (evt.type) { - case 'touchstart': - this.touchSwipeState = { - startX: evt.touches[0].pageX, - startY: evt.touches[0].pageY, - endX: evt.touches[0].pageX, - endY: evt.touches[0].pageY - }; - break; - - case 'touchmove': - if (this.touchSwipeState === null) { - return; - } - - this.touchSwipeState.endX = evt.touches[0].pageX; - this.touchSwipeState.endY = evt.touches[0].pageY; - evt.preventDefault(); - break; - - case 'touchend': - if (this.touchSwipeState === null) { - return; - } - - var delta = 0; - var dx = this.touchSwipeState.endX - this.touchSwipeState.startX; - var dy = this.touchSwipeState.endY - this.touchSwipeState.startY; - var absAngle = Math.abs(Math.atan2(dy, dx)); - - if (Math.abs(dx) > SWIPE_MIN_DISTANCE_THRESHOLD && (absAngle <= SWIPE_ANGLE_THRESHOLD || absAngle >= Math.PI - SWIPE_ANGLE_THRESHOLD)) { - delta = dx; - } else if (Math.abs(dy) > SWIPE_MIN_DISTANCE_THRESHOLD && Math.abs(absAngle - Math.PI / 2) <= SWIPE_ANGLE_THRESHOLD) { - delta = dy; - } - - if (delta > 0) { - this._goToPreviousPage(); - } else if (delta < 0) { - this._goToNextPage(); - } - - break; - } - } - }, { - key: "_addWindowListeners", - value: function _addWindowListeners() { - this.showControlsBind = this._showControls.bind(this); - this.mouseDownBind = this._mouseDown.bind(this); - this.mouseWheelBind = this._mouseWheel.bind(this); - this.resetMouseScrollStateBind = this._resetMouseScrollState.bind(this); - this.contextMenuBind = this._contextMenu.bind(this); - this.touchSwipeBind = this._touchSwipe.bind(this); - window.addEventListener('mousemove', this.showControlsBind); - window.addEventListener('mousedown', this.mouseDownBind); - window.addEventListener('wheel', this.mouseWheelBind); - window.addEventListener('keydown', this.resetMouseScrollStateBind); - window.addEventListener('contextmenu', this.contextMenuBind); - window.addEventListener('touchstart', this.touchSwipeBind); - window.addEventListener('touchmove', this.touchSwipeBind); - window.addEventListener('touchend', this.touchSwipeBind); - } - }, { - key: "_removeWindowListeners", - value: function _removeWindowListeners() { - window.removeEventListener('mousemove', this.showControlsBind); - window.removeEventListener('mousedown', this.mouseDownBind); - window.removeEventListener('wheel', this.mouseWheelBind); - window.removeEventListener('keydown', this.resetMouseScrollStateBind); - window.removeEventListener('contextmenu', this.contextMenuBind); - window.removeEventListener('touchstart', this.touchSwipeBind); - window.removeEventListener('touchmove', this.touchSwipeBind); - window.removeEventListener('touchend', this.touchSwipeBind); - delete this.showControlsBind; - delete this.mouseDownBind; - delete this.mouseWheelBind; - delete this.resetMouseScrollStateBind; - delete this.contextMenuBind; - delete this.touchSwipeBind; - } - }, { - key: "_fullscreenChange", - value: function _fullscreenChange() { - if (this.isFullscreen) { - this._enter(); - } else { - this._exit(); - } - } - }, { - key: "_addFullscreenChangeListeners", - value: function _addFullscreenChangeListeners() { - this.fullscreenChangeBind = this._fullscreenChange.bind(this); - window.addEventListener('fullscreenchange', this.fullscreenChangeBind); - window.addEventListener('mozfullscreenchange', this.fullscreenChangeBind); - window.addEventListener('webkitfullscreenchange', this.fullscreenChangeBind); - window.addEventListener('MSFullscreenChange', this.fullscreenChangeBind); - } - }, { - key: "_removeFullscreenChangeListeners", - value: function _removeFullscreenChangeListeners() { - window.removeEventListener('fullscreenchange', this.fullscreenChangeBind); - window.removeEventListener('mozfullscreenchange', this.fullscreenChangeBind); - window.removeEventListener('webkitfullscreenchange', this.fullscreenChangeBind); - window.removeEventListener('MSFullscreenChange', this.fullscreenChangeBind); - delete this.fullscreenChangeBind; - } - }, { - key: "isFullscreen", - get: function get() { - return !!(document.fullscreenElement || document.mozFullScreen || document.webkitIsFullScreen || document.msFullscreenElement); - } - }]); - - return PDFPresentationMode; -}(); - -exports.PDFPresentationMode = PDFPresentationMode; - -/***/ }), -/* 24 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - Object.defineProperty(exports, "__esModule", { value: true }); exports.PDFSidebarResizer = void 0; -var _ui_utils = __webpack_require__(5); +var _ui_utils = __webpack_require__(2); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var SIDEBAR_WIDTH_VAR = '--sidebar-width'; -var SIDEBAR_MIN_WIDTH = 200; -var SIDEBAR_RESIZING_CLASS = 'sidebarResizing'; - -var PDFSidebarResizer = -/*#__PURE__*/ -function () { - function PDFSidebarResizer(options, eventBus) { - var _this = this; - - var l10n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _ui_utils.NullL10n; - - _classCallCheck(this, PDFSidebarResizer); +const SIDEBAR_WIDTH_VAR = "--sidebar-width"; +const SIDEBAR_MIN_WIDTH = 200; +const SIDEBAR_RESIZING_CLASS = "sidebarResizing"; +class PDFSidebarResizer { + constructor(options, eventBus, l10n = _ui_utils.NullL10n) { this.enabled = false; this.isRTL = false; this.sidebarOpen = false; @@ -9336,136 +8438,396 @@ function () { this.eventBus = eventBus; this.l10n = l10n; - if (typeof CSS === 'undefined' || typeof CSS.supports !== 'function' || !CSS.supports(SIDEBAR_WIDTH_VAR, "calc(-1 * ".concat(SIDEBAR_MIN_WIDTH, "px)"))) { - console.warn('PDFSidebarResizer: ' + 'The browser does not support resizing of the sidebar.'); + if (typeof CSS === "undefined" || typeof CSS.supports !== "function" || !CSS.supports(SIDEBAR_WIDTH_VAR, `calc(-1 * ${SIDEBAR_MIN_WIDTH}px)`)) { + console.warn("PDFSidebarResizer: " + "The browser does not support resizing of the sidebar."); return; } this.enabled = true; - this.resizer.classList.remove('hidden'); - this.l10n.getDirection().then(function (dir) { - _this.isRTL = dir === 'rtl'; + this.resizer.classList.remove("hidden"); + this.l10n.getDirection().then(dir => { + this.isRTL = dir === "rtl"; }); this._addEventListeners(); } - _createClass(PDFSidebarResizer, [{ - key: "_updateWidth", - value: function _updateWidth() { - var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; - - if (!this.enabled) { - return false; - } - - var maxWidth = Math.floor(this.outerContainerWidth / 2); - - if (width > maxWidth) { - width = maxWidth; - } - - if (width < SIDEBAR_MIN_WIDTH) { - width = SIDEBAR_MIN_WIDTH; - } - - if (width === this._width) { - return false; - } - - this._width = width; - this.doc.style.setProperty(SIDEBAR_WIDTH_VAR, "".concat(width, "px")); - return true; + get outerContainerWidth() { + if (!this._outerContainerWidth) { + this._outerContainerWidth = this.outerContainer.clientWidth; } - }, { - key: "_mouseMove", - value: function _mouseMove(evt) { - var width = evt.clientX; - if (this.isRTL) { - width = this.outerContainerWidth - width; - } + return this._outerContainerWidth; + } - this._updateWidth(width); + _updateWidth(width = 0) { + if (!this.enabled) { + return false; } - }, { - key: "_mouseUp", - value: function _mouseUp(evt) { - this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); - this.eventBus.dispatch('resize', { - source: this - }); - var _boundEvents = this._boundEvents; - window.removeEventListener('mousemove', _boundEvents.mouseMove); - window.removeEventListener('mouseup', _boundEvents.mouseUp); - } - }, { - key: "_addEventListeners", - value: function _addEventListeners() { - var _this2 = this; - if (!this.enabled) { + const newWidth = (0, _ui_utils.clamp)(width, SIDEBAR_MIN_WIDTH, Math.floor(this.outerContainerWidth / 2)); + + if (newWidth === this._width) { + return false; + } + + this._width = newWidth; + this.doc.style.setProperty(SIDEBAR_WIDTH_VAR, `${newWidth}px`); + return true; + } + + _mouseMove(evt) { + let width = evt.clientX; + + if (this.isRTL) { + width = this.outerContainerWidth - width; + } + + this._updateWidth(width); + } + + _mouseUp(evt) { + this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); + this.eventBus.dispatch("resize", { + source: this + }); + const _boundEvents = this._boundEvents; + window.removeEventListener("mousemove", _boundEvents.mouseMove); + window.removeEventListener("mouseup", _boundEvents.mouseUp); + } + + _addEventListeners() { + if (!this.enabled) { + return; + } + + const _boundEvents = this._boundEvents; + _boundEvents.mouseMove = this._mouseMove.bind(this); + _boundEvents.mouseUp = this._mouseUp.bind(this); + this.resizer.addEventListener("mousedown", evt => { + if (evt.button !== 0) { return; } - var _boundEvents = this._boundEvents; - _boundEvents.mouseMove = this._mouseMove.bind(this); - _boundEvents.mouseUp = this._mouseUp.bind(this); - this.resizer.addEventListener('mousedown', function (evt) { - if (evt.button !== 0) { - return; - } + this.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); + window.addEventListener("mousemove", _boundEvents.mouseMove); + window.addEventListener("mouseup", _boundEvents.mouseUp); + }); - _this2.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); + this.eventBus._on("sidebarviewchanged", evt => { + this.sidebarOpen = !!(evt && evt.view); + }); - window.addEventListener('mousemove', _boundEvents.mouseMove); - window.addEventListener('mouseup', _boundEvents.mouseUp); - }); - this.eventBus.on('sidebarviewchanged', function (evt) { - _this2.sidebarOpen = !!(evt && evt.view); - }); - this.eventBus.on('resize', function (evt) { - if (evt && evt.source === window) { - _this2._outerContainerWidth = null; - - if (_this2._width) { - if (_this2.sidebarOpen) { - _this2.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); - - var updated = _this2._updateWidth(_this2._width); - - Promise.resolve().then(function () { - _this2.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); - - if (updated) { - _this2.eventBus.dispatch('resize', { - source: _this2 - }); - } - }); - } else { - _this2._updateWidth(_this2._width); - } - } - } - }); - } - }, { - key: "outerContainerWidth", - get: function get() { - if (!this._outerContainerWidth) { - this._outerContainerWidth = this.outerContainer.clientWidth; + this.eventBus._on("resize", evt => { + if (!evt || evt.source !== window) { + return; } - return this._outerContainerWidth; - } - }]); + this._outerContainerWidth = null; - return PDFSidebarResizer; -}(); + if (!this._width) { + return; + } + + if (!this.sidebarOpen) { + this._updateWidth(this._width); + + return; + } + + this.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); + + const updated = this._updateWidth(this._width); + + Promise.resolve().then(() => { + this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); + + if (updated) { + this.eventBus.dispatch("resize", { + source: this + }); + } + }); + }); + } + +} exports.PDFSidebarResizer = PDFSidebarResizer; +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFThumbnailViewer = void 0; + +var _ui_utils = __webpack_require__(2); + +var _pdf_thumbnail_view = __webpack_require__(25); + +const THUMBNAIL_SCROLL_MARGIN = -19; +const THUMBNAIL_SELECTED_CLASS = "selected"; + +class PDFThumbnailViewer { + constructor({ + container, + eventBus, + linkService, + renderingQueue, + l10n = _ui_utils.NullL10n + }) { + this.container = container; + this.linkService = linkService; + this.renderingQueue = renderingQueue; + this.l10n = l10n; + this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdated.bind(this)); + + this._resetView(); + + eventBus._on("optionalcontentconfigchanged", () => { + this._setImageDisabled = true; + }); + } + + _scrollUpdated() { + this.renderingQueue.renderHighestPriority(); + } + + getThumbnail(index) { + return this._thumbnails[index]; + } + + _getVisibleThumbs() { + return (0, _ui_utils.getVisibleElements)(this.container, this._thumbnails); + } + + scrollThumbnailIntoView(pageNumber) { + if (!this.pdfDocument) { + return; + } + + const thumbnailView = this._thumbnails[pageNumber - 1]; + + if (!thumbnailView) { + console.error('scrollThumbnailIntoView: Invalid "pageNumber" parameter.'); + return; + } + + if (pageNumber !== this._currentPageNumber) { + const prevThumbnailView = this._thumbnails[this._currentPageNumber - 1]; + prevThumbnailView.div.classList.remove(THUMBNAIL_SELECTED_CLASS); + thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); + } + + const visibleThumbs = this._getVisibleThumbs(); + + const numVisibleThumbs = visibleThumbs.views.length; + + if (numVisibleThumbs > 0) { + const first = visibleThumbs.first.id; + const last = numVisibleThumbs > 1 ? visibleThumbs.last.id : first; + let shouldScroll = false; + + if (pageNumber <= first || pageNumber >= last) { + shouldScroll = true; + } else { + visibleThumbs.views.some(function (view) { + if (view.id !== pageNumber) { + return false; + } + + shouldScroll = view.percent < 100; + return true; + }); + } + + if (shouldScroll) { + (0, _ui_utils.scrollIntoView)(thumbnailView.div, { + top: THUMBNAIL_SCROLL_MARGIN + }); + } + } + + this._currentPageNumber = pageNumber; + } + + get pagesRotation() { + return this._pagesRotation; + } + + set pagesRotation(rotation) { + if (!(0, _ui_utils.isValidRotation)(rotation)) { + throw new Error("Invalid thumbnails rotation angle."); + } + + if (!this.pdfDocument) { + return; + } + + if (this._pagesRotation === rotation) { + return; + } + + this._pagesRotation = rotation; + + for (let i = 0, ii = this._thumbnails.length; i < ii; i++) { + this._thumbnails[i].update(rotation); + } + } + + cleanup() { + _pdf_thumbnail_view.PDFThumbnailView.cleanup(); + } + + _resetView() { + this._thumbnails = []; + this._currentPageNumber = 1; + this._pageLabels = null; + this._pagesRotation = 0; + this._optionalContentConfigPromise = null; + this._pagesRequests = new WeakMap(); + this._setImageDisabled = false; + this.container.textContent = ""; + } + + setDocument(pdfDocument) { + if (this.pdfDocument) { + this._cancelRendering(); + + this._resetView(); + } + + this.pdfDocument = pdfDocument; + + if (!pdfDocument) { + return; + } + + const firstPagePromise = pdfDocument.getPage(1); + const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig(); + firstPagePromise.then(firstPdfPage => { + this._optionalContentConfigPromise = optionalContentConfigPromise; + const pagesCount = pdfDocument.numPages; + const viewport = firstPdfPage.getViewport({ + scale: 1 + }); + + const checkSetImageDisabled = () => { + return this._setImageDisabled; + }; + + for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) { + const thumbnail = new _pdf_thumbnail_view.PDFThumbnailView({ + container: this.container, + id: pageNum, + defaultViewport: viewport.clone(), + optionalContentConfigPromise, + linkService: this.linkService, + renderingQueue: this.renderingQueue, + checkSetImageDisabled, + disableCanvasToImageConversion: false, + l10n: this.l10n + }); + + this._thumbnails.push(thumbnail); + } + + const firstThumbnailView = this._thumbnails[0]; + + if (firstThumbnailView) { + firstThumbnailView.setPdfPage(firstPdfPage); + } + + const thumbnailView = this._thumbnails[this._currentPageNumber - 1]; + thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); + }).catch(reason => { + console.error("Unable to initialize thumbnail viewer", reason); + }); + } + + _cancelRendering() { + for (let i = 0, ii = this._thumbnails.length; i < ii; i++) { + if (this._thumbnails[i]) { + this._thumbnails[i].cancelRendering(); + } + } + } + + setPageLabels(labels) { + if (!this.pdfDocument) { + return; + } + + if (!labels) { + this._pageLabels = null; + } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { + this._pageLabels = null; + console.error("PDFThumbnailViewer_setPageLabels: Invalid page labels."); + } else { + this._pageLabels = labels; + } + + for (let i = 0, ii = this._thumbnails.length; i < ii; i++) { + const label = this._pageLabels && this._pageLabels[i]; + + this._thumbnails[i].setPageLabel(label); + } + } + + _ensurePdfPageLoaded(thumbView) { + if (thumbView.pdfPage) { + return Promise.resolve(thumbView.pdfPage); + } + + if (this._pagesRequests.has(thumbView)) { + return this._pagesRequests.get(thumbView); + } + + const promise = this.pdfDocument.getPage(thumbView.id).then(pdfPage => { + if (!thumbView.pdfPage) { + thumbView.setPdfPage(pdfPage); + } + + this._pagesRequests.delete(thumbView); + + return pdfPage; + }).catch(reason => { + console.error("Unable to get page for thumb view", reason); + + this._pagesRequests.delete(thumbView); + }); + + this._pagesRequests.set(thumbView, promise); + + return promise; + } + + forceRendering() { + const visibleThumbs = this._getVisibleThumbs(); + + const thumbView = this.renderingQueue.getHighestPriority(visibleThumbs, this._thumbnails, this.scroll.down); + + if (thumbView) { + this._ensurePdfPageLoaded(thumbView).then(() => { + this.renderingQueue.renderView(thumbView); + }); + + return true; + } + + return false; + } + +} + +exports.PDFThumbnailViewer = PDFThumbnailViewer; + /***/ }), /* 25 */ /***/ (function(module, exports, __webpack_require__) { @@ -9476,272 +8838,422 @@ exports.PDFSidebarResizer = PDFSidebarResizer; Object.defineProperty(exports, "__esModule", { value: true }); -exports.PDFThumbnailViewer = void 0; +exports.PDFThumbnailView = void 0; -var _ui_utils = __webpack_require__(5); +var _pdfjsLib = __webpack_require__(5); -var _pdf_thumbnail_view = __webpack_require__(26); +var _ui_utils = __webpack_require__(2); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _pdf_rendering_queue = __webpack_require__(8); -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } +const MAX_NUM_SCALING_STEPS = 3; +const THUMBNAIL_CANVAS_BORDER_WIDTH = 1; +const THUMBNAIL_WIDTH = 98; -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +const TempImageFactory = function TempImageFactoryClosure() { + let tempCanvasCache = null; + return { + getCanvas(width, height) { + let tempCanvas = tempCanvasCache; -var THUMBNAIL_SCROLL_MARGIN = -19; -var THUMBNAIL_SELECTED_CLASS = 'selected'; - -var PDFThumbnailViewer = -/*#__PURE__*/ -function () { - function PDFThumbnailViewer(_ref) { - var container = _ref.container, - linkService = _ref.linkService, - renderingQueue = _ref.renderingQueue, - _ref$l10n = _ref.l10n, - l10n = _ref$l10n === void 0 ? _ui_utils.NullL10n : _ref$l10n; - - _classCallCheck(this, PDFThumbnailViewer); - - this.container = container; - this.linkService = linkService; - this.renderingQueue = renderingQueue; - this.l10n = l10n; - this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdated.bind(this)); - - this._resetView(); - } - - _createClass(PDFThumbnailViewer, [{ - key: "_scrollUpdated", - value: function _scrollUpdated() { - this.renderingQueue.renderHighestPriority(); - } - }, { - key: "getThumbnail", - value: function getThumbnail(index) { - return this._thumbnails[index]; - } - }, { - key: "_getVisibleThumbs", - value: function _getVisibleThumbs() { - return (0, _ui_utils.getVisibleElements)(this.container, this._thumbnails); - } - }, { - key: "scrollThumbnailIntoView", - value: function scrollThumbnailIntoView(pageNumber) { - if (!this.pdfDocument) { - return; + if (!tempCanvas) { + tempCanvas = document.createElement("canvas"); + tempCanvasCache = tempCanvas; } - var thumbnailView = this._thumbnails[pageNumber - 1]; - - if (!thumbnailView) { - console.error('scrollThumbnailIntoView: Invalid "pageNumber" parameter.'); - return; - } - - if (pageNumber !== this._currentPageNumber) { - var prevThumbnailView = this._thumbnails[this._currentPageNumber - 1]; - prevThumbnailView.div.classList.remove(THUMBNAIL_SELECTED_CLASS); - thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); - } - - var visibleThumbs = this._getVisibleThumbs(); - - var numVisibleThumbs = visibleThumbs.views.length; - - if (numVisibleThumbs > 0) { - var first = visibleThumbs.first.id; - var last = numVisibleThumbs > 1 ? visibleThumbs.last.id : first; - var shouldScroll = false; - - if (pageNumber <= first || pageNumber >= last) { - shouldScroll = true; - } else { - visibleThumbs.views.some(function (view) { - if (view.id !== pageNumber) { - return false; - } - - shouldScroll = view.percent < 100; - return true; - }); - } - - if (shouldScroll) { - (0, _ui_utils.scrollIntoView)(thumbnailView.div, { - top: THUMBNAIL_SCROLL_MARGIN - }); - } - } - - this._currentPageNumber = pageNumber; - } - }, { - key: "cleanup", - value: function cleanup() { - _pdf_thumbnail_view.PDFThumbnailView.cleanup(); - } - }, { - key: "_resetView", - value: function _resetView() { - this._thumbnails = []; - this._currentPageNumber = 1; - this._pageLabels = null; - this._pagesRotation = 0; - this._pagesRequests = []; - this.container.textContent = ''; - } - }, { - key: "setDocument", - value: function setDocument(pdfDocument) { - var _this = this; - - if (this.pdfDocument) { - this._cancelRendering(); - - this._resetView(); - } - - this.pdfDocument = pdfDocument; - - if (!pdfDocument) { - return; - } - - pdfDocument.getPage(1).then(function (firstPage) { - var pagesCount = pdfDocument.numPages; - var viewport = firstPage.getViewport({ - scale: 1 - }); - - for (var pageNum = 1; pageNum <= pagesCount; ++pageNum) { - var thumbnail = new _pdf_thumbnail_view.PDFThumbnailView({ - container: _this.container, - id: pageNum, - defaultViewport: viewport.clone(), - linkService: _this.linkService, - renderingQueue: _this.renderingQueue, - disableCanvasToImageConversion: false, - l10n: _this.l10n - }); - - _this._thumbnails.push(thumbnail); - } - - var thumbnailView = _this._thumbnails[_this._currentPageNumber - 1]; - thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); - })["catch"](function (reason) { - console.error('Unable to initialize thumbnail viewer', reason); + tempCanvas.width = width; + tempCanvas.height = height; + tempCanvas.mozOpaque = true; + const ctx = tempCanvas.getContext("2d", { + alpha: false }); - } - }, { - key: "_cancelRendering", - value: function _cancelRendering() { - for (var i = 0, ii = this._thumbnails.length; i < ii; i++) { - if (this._thumbnails[i]) { - this._thumbnails[i].cancelRendering(); - } - } - } - }, { - key: "setPageLabels", - value: function setPageLabels(labels) { - if (!this.pdfDocument) { - return; - } - - if (!labels) { - this._pageLabels = null; - } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { - this._pageLabels = null; - console.error('PDFThumbnailViewer_setPageLabels: Invalid page labels.'); - } else { - this._pageLabels = labels; - } - - for (var i = 0, ii = this._thumbnails.length; i < ii; i++) { - var label = this._pageLabels && this._pageLabels[i]; - - this._thumbnails[i].setPageLabel(label); - } - } - }, { - key: "_ensurePdfPageLoaded", - value: function _ensurePdfPageLoaded(thumbView) { - var _this2 = this; - - if (thumbView.pdfPage) { - return Promise.resolve(thumbView.pdfPage); - } - - var pageNumber = thumbView.id; - - if (this._pagesRequests[pageNumber]) { - return this._pagesRequests[pageNumber]; - } - - var promise = this.pdfDocument.getPage(pageNumber).then(function (pdfPage) { - thumbView.setPdfPage(pdfPage); - _this2._pagesRequests[pageNumber] = null; - return pdfPage; - })["catch"](function (reason) { - console.error('Unable to get page for thumb view', reason); - _this2._pagesRequests[pageNumber] = null; - }); - this._pagesRequests[pageNumber] = promise; - return promise; - } - }, { - key: "forceRendering", - value: function forceRendering() { - var _this3 = this; - - var visibleThumbs = this._getVisibleThumbs(); - - var thumbView = this.renderingQueue.getHighestPriority(visibleThumbs, this._thumbnails, this.scroll.down); - - if (thumbView) { - this._ensurePdfPageLoaded(thumbView).then(function () { - _this3.renderingQueue.renderView(thumbView); - }); - - return true; - } - - return false; - } - }, { - key: "pagesRotation", - get: function get() { - return this._pagesRotation; + ctx.save(); + ctx.fillStyle = "rgb(255, 255, 255)"; + ctx.fillRect(0, 0, width, height); + ctx.restore(); + return tempCanvas; }, - set: function set(rotation) { - if (!(0, _ui_utils.isValidRotation)(rotation)) { - throw new Error('Invalid thumbnails rotation angle.'); + + destroyCanvas() { + const tempCanvas = tempCanvasCache; + + if (tempCanvas) { + tempCanvas.width = 0; + tempCanvas.height = 0; } - if (!this.pdfDocument) { - return; - } - - if (this._pagesRotation === rotation) { - return; - } - - this._pagesRotation = rotation; - - for (var i = 0, ii = this._thumbnails.length; i < ii; i++) { - this._thumbnails[i].update(rotation); - } + tempCanvasCache = null; } - }]); - return PDFThumbnailViewer; + }; }(); -exports.PDFThumbnailViewer = PDFThumbnailViewer; +class PDFThumbnailView { + constructor({ + container, + id, + defaultViewport, + optionalContentConfigPromise, + linkService, + renderingQueue, + checkSetImageDisabled, + disableCanvasToImageConversion = false, + l10n = _ui_utils.NullL10n + }) { + this.id = id; + this.renderingId = "thumbnail" + id; + this.pageLabel = null; + this.pdfPage = null; + this.rotation = 0; + this.viewport = defaultViewport; + this.pdfPageRotate = defaultViewport.rotation; + this._optionalContentConfigPromise = optionalContentConfigPromise || null; + this.linkService = linkService; + this.renderingQueue = renderingQueue; + this.renderTask = null; + this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; + this.resume = null; + + this._checkSetImageDisabled = checkSetImageDisabled || function () { + return false; + }; + + this.disableCanvasToImageConversion = disableCanvasToImageConversion; + this.pageWidth = this.viewport.width; + this.pageHeight = this.viewport.height; + this.pageRatio = this.pageWidth / this.pageHeight; + this.canvasWidth = THUMBNAIL_WIDTH; + this.canvasHeight = this.canvasWidth / this.pageRatio | 0; + this.scale = this.canvasWidth / this.pageWidth; + this.l10n = l10n; + const anchor = document.createElement("a"); + anchor.href = linkService.getAnchorUrl("#page=" + id); + + this._thumbPageTitle.then(msg => { + anchor.title = msg; + }); + + anchor.onclick = function () { + linkService.page = id; + return false; + }; + + this.anchor = anchor; + const div = document.createElement("div"); + div.className = "thumbnail"; + div.setAttribute("data-page-number", this.id); + this.div = div; + const ring = document.createElement("div"); + ring.className = "thumbnailSelectionRing"; + const borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH; + ring.style.width = this.canvasWidth + borderAdjustment + "px"; + ring.style.height = this.canvasHeight + borderAdjustment + "px"; + this.ring = ring; + div.appendChild(ring); + anchor.appendChild(div); + container.appendChild(anchor); + } + + setPdfPage(pdfPage) { + this.pdfPage = pdfPage; + this.pdfPageRotate = pdfPage.rotate; + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = pdfPage.getViewport({ + scale: 1, + rotation: totalRotation + }); + this.reset(); + } + + reset() { + this.cancelRendering(); + this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; + this.pageWidth = this.viewport.width; + this.pageHeight = this.viewport.height; + this.pageRatio = this.pageWidth / this.pageHeight; + this.canvasHeight = this.canvasWidth / this.pageRatio | 0; + this.scale = this.canvasWidth / this.pageWidth; + this.div.removeAttribute("data-loaded"); + const ring = this.ring; + const childNodes = ring.childNodes; + + for (let i = childNodes.length - 1; i >= 0; i--) { + ring.removeChild(childNodes[i]); + } + + const borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH; + ring.style.width = this.canvasWidth + borderAdjustment + "px"; + ring.style.height = this.canvasHeight + borderAdjustment + "px"; + + if (this.canvas) { + this.canvas.width = 0; + this.canvas.height = 0; + delete this.canvas; + } + + if (this.image) { + this.image.removeAttribute("src"); + delete this.image; + } + } + + update(rotation) { + if (typeof rotation !== "undefined") { + this.rotation = rotation; + } + + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = this.viewport.clone({ + scale: 1, + rotation: totalRotation + }); + this.reset(); + } + + cancelRendering() { + if (this.renderTask) { + this.renderTask.cancel(); + this.renderTask = null; + } + + this.resume = null; + } + + _getPageDrawContext(noCtxScale = false) { + const canvas = document.createElement("canvas"); + this.canvas = canvas; + canvas.mozOpaque = true; + const ctx = canvas.getContext("2d", { + alpha: false + }); + const outputScale = (0, _ui_utils.getOutputScale)(ctx); + canvas.width = this.canvasWidth * outputScale.sx | 0; + canvas.height = this.canvasHeight * outputScale.sy | 0; + canvas.style.width = this.canvasWidth + "px"; + canvas.style.height = this.canvasHeight + "px"; + + if (!noCtxScale && outputScale.scaled) { + ctx.scale(outputScale.sx, outputScale.sy); + } + + return ctx; + } + + _convertCanvasToImage() { + if (!this.canvas) { + return; + } + + if (this.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { + return; + } + + const className = "thumbnailImage"; + + if (this.disableCanvasToImageConversion) { + this.canvas.className = className; + + this._thumbPageCanvas.then(msg => { + this.canvas.setAttribute("aria-label", msg); + }); + + this.div.setAttribute("data-loaded", true); + this.ring.appendChild(this.canvas); + return; + } + + const image = document.createElement("img"); + image.className = className; + + this._thumbPageCanvas.then(msg => { + image.setAttribute("aria-label", msg); + }); + + image.style.width = this.canvasWidth + "px"; + image.style.height = this.canvasHeight + "px"; + image.src = this.canvas.toDataURL(); + this.image = image; + this.div.setAttribute("data-loaded", true); + this.ring.appendChild(image); + this.canvas.width = 0; + this.canvas.height = 0; + delete this.canvas; + } + + draw() { + if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { + console.error("Must be in new state before drawing"); + return Promise.resolve(undefined); + } + + const { + pdfPage + } = this; + + if (!pdfPage) { + this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; + return Promise.reject(new Error("pdfPage is not loaded")); + } + + this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; + const renderCapability = (0, _pdfjsLib.createPromiseCapability)(); + + const finishRenderTask = error => { + if (renderTask === this.renderTask) { + this.renderTask = null; + } + + if (error instanceof _pdfjsLib.RenderingCancelledException) { + renderCapability.resolve(undefined); + return; + } + + this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; + + this._convertCanvasToImage(); + + if (!error) { + renderCapability.resolve(undefined); + } else { + renderCapability.reject(error); + } + }; + + const ctx = this._getPageDrawContext(); + + const drawViewport = this.viewport.clone({ + scale: this.scale + }); + + const renderContinueCallback = cont => { + if (!this.renderingQueue.isHighestPriority(this)) { + this.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED; + + this.resume = () => { + this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; + cont(); + }; + + return; + } + + cont(); + }; + + const renderContext = { + canvasContext: ctx, + viewport: drawViewport, + optionalContentConfigPromise: this._optionalContentConfigPromise + }; + const renderTask = this.renderTask = pdfPage.render(renderContext); + renderTask.onContinue = renderContinueCallback; + renderTask.promise.then(function () { + finishRenderTask(null); + }, function (error) { + finishRenderTask(error); + }); + return renderCapability.promise; + } + + setImage(pageView) { + if (this._checkSetImageDisabled()) { + return; + } + + if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { + return; + } + + const img = pageView.canvas; + + if (!img) { + return; + } + + if (!this.pdfPage) { + this.setPdfPage(pageView.pdfPage); + } + + this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; + + const ctx = this._getPageDrawContext(true); + + const canvas = ctx.canvas; + + if (img.width <= 2 * canvas.width) { + ctx.drawImage(img, 0, 0, img.width, img.height, 0, 0, canvas.width, canvas.height); + + this._convertCanvasToImage(); + + return; + } + + let reducedWidth = canvas.width << MAX_NUM_SCALING_STEPS; + let reducedHeight = canvas.height << MAX_NUM_SCALING_STEPS; + const reducedImage = TempImageFactory.getCanvas(reducedWidth, reducedHeight); + const reducedImageCtx = reducedImage.getContext("2d"); + + while (reducedWidth > img.width || reducedHeight > img.height) { + reducedWidth >>= 1; + reducedHeight >>= 1; + } + + reducedImageCtx.drawImage(img, 0, 0, img.width, img.height, 0, 0, reducedWidth, reducedHeight); + + while (reducedWidth > 2 * canvas.width) { + reducedImageCtx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, reducedWidth >> 1, reducedHeight >> 1); + reducedWidth >>= 1; + reducedHeight >>= 1; + } + + ctx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, canvas.width, canvas.height); + + this._convertCanvasToImage(); + } + + get _thumbPageTitle() { + var _this$pageLabel; + + return this.l10n.get("thumb_page_title", { + page: (_this$pageLabel = this.pageLabel) != null ? _this$pageLabel : this.id + }, "Page {{page}}"); + } + + get _thumbPageCanvas() { + var _this$pageLabel2; + + return this.l10n.get("thumb_page_canvas", { + page: (_this$pageLabel2 = this.pageLabel) != null ? _this$pageLabel2 : this.id + }, "Thumbnail of Page {{page}}"); + } + + setPageLabel(label) { + this.pageLabel = typeof label === "string" ? label : null; + + this._thumbPageTitle.then(msg => { + this.anchor.title = msg; + }); + + if (this.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { + return; + } + + this._thumbPageCanvas.then(msg => { + if (this.image) { + this.image.setAttribute("aria-label", msg); + } else if (this.disableCanvasToImageConversion && this.canvas) { + this.canvas.setAttribute("aria-label", msg); + } + }); + } + + static cleanup() { + TempImageFactory.destroyCanvas(); + } + +} + +exports.PDFThumbnailView = PDFThumbnailView; /***/ }), /* 26 */ @@ -9753,426 +9265,82 @@ exports.PDFThumbnailViewer = PDFThumbnailViewer; Object.defineProperty(exports, "__esModule", { value: true }); -exports.PDFThumbnailView = void 0; +exports.PDFViewer = void 0; -var _pdfjsLib = __webpack_require__(7); +var _base_viewer = __webpack_require__(27); -var _ui_utils = __webpack_require__(5); +var _pdfjsLib = __webpack_require__(5); -var _pdf_rendering_queue = __webpack_require__(11); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var MAX_NUM_SCALING_STEPS = 3; -var THUMBNAIL_CANVAS_BORDER_WIDTH = 1; -var THUMBNAIL_WIDTH = 98; - -var TempImageFactory = function TempImageFactoryClosure() { - var tempCanvasCache = null; - return { - getCanvas: function getCanvas(width, height) { - var tempCanvas = tempCanvasCache; - - if (!tempCanvas) { - tempCanvas = document.createElement('canvas'); - tempCanvasCache = tempCanvas; - } - - tempCanvas.width = width; - tempCanvas.height = height; - tempCanvas.mozOpaque = true; - var ctx = tempCanvas.getContext('2d', { - alpha: false - }); - ctx.save(); - ctx.fillStyle = 'rgb(255, 255, 255)'; - ctx.fillRect(0, 0, width, height); - ctx.restore(); - return tempCanvas; - }, - destroyCanvas: function destroyCanvas() { - var tempCanvas = tempCanvasCache; - - if (tempCanvas) { - tempCanvas.width = 0; - tempCanvas.height = 0; - } - - tempCanvasCache = null; - } - }; -}(); - -var PDFThumbnailView = -/*#__PURE__*/ -function () { - function PDFThumbnailView(_ref) { - var container = _ref.container, - id = _ref.id, - defaultViewport = _ref.defaultViewport, - linkService = _ref.linkService, - renderingQueue = _ref.renderingQueue, - _ref$disableCanvasToI = _ref.disableCanvasToImageConversion, - disableCanvasToImageConversion = _ref$disableCanvasToI === void 0 ? false : _ref$disableCanvasToI, - _ref$l10n = _ref.l10n, - l10n = _ref$l10n === void 0 ? _ui_utils.NullL10n : _ref$l10n; - - _classCallCheck(this, PDFThumbnailView); - - this.id = id; - this.renderingId = 'thumbnail' + id; - this.pageLabel = null; - this.pdfPage = null; - this.rotation = 0; - this.viewport = defaultViewport; - this.pdfPageRotate = defaultViewport.rotation; - this.linkService = linkService; - this.renderingQueue = renderingQueue; - this.renderTask = null; - this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; - this.resume = null; - this.disableCanvasToImageConversion = disableCanvasToImageConversion; - this.pageWidth = this.viewport.width; - this.pageHeight = this.viewport.height; - this.pageRatio = this.pageWidth / this.pageHeight; - this.canvasWidth = THUMBNAIL_WIDTH; - this.canvasHeight = this.canvasWidth / this.pageRatio | 0; - this.scale = this.canvasWidth / this.pageWidth; - this.l10n = l10n; - var anchor = document.createElement('a'); - anchor.href = linkService.getAnchorUrl('#page=' + id); - this.l10n.get('thumb_page_title', { - page: id - }, 'Page {{page}}').then(function (msg) { - anchor.title = msg; - }); - - anchor.onclick = function () { - linkService.page = id; - return false; - }; - - this.anchor = anchor; - var div = document.createElement('div'); - div.className = 'thumbnail'; - div.setAttribute('data-page-number', this.id); - this.div = div; - var ring = document.createElement('div'); - ring.className = 'thumbnailSelectionRing'; - var borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH; - ring.style.width = this.canvasWidth + borderAdjustment + 'px'; - ring.style.height = this.canvasHeight + borderAdjustment + 'px'; - this.ring = ring; - div.appendChild(ring); - anchor.appendChild(div); - container.appendChild(anchor); +class PDFViewer extends _base_viewer.BaseViewer { + get _viewerElement() { + return (0, _pdfjsLib.shadow)(this, "_viewerElement", this.viewer); } - _createClass(PDFThumbnailView, [{ - key: "setPdfPage", - value: function setPdfPage(pdfPage) { - this.pdfPage = pdfPage; - this.pdfPageRotate = pdfPage.rotate; - var totalRotation = (this.rotation + this.pdfPageRotate) % 360; - this.viewport = pdfPage.getViewport({ - scale: 1, - rotation: totalRotation - }); - this.reset(); - } - }, { - key: "reset", - value: function reset() { - this.cancelRendering(); - this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; - this.pageWidth = this.viewport.width; - this.pageHeight = this.viewport.height; - this.pageRatio = this.pageWidth / this.pageHeight; - this.canvasHeight = this.canvasWidth / this.pageRatio | 0; - this.scale = this.canvasWidth / this.pageWidth; - this.div.removeAttribute('data-loaded'); - var ring = this.ring; - var childNodes = ring.childNodes; + _scrollIntoView({ + pageDiv, + pageSpot = null, + pageNumber = null + }) { + if (!pageSpot && !this.isInPresentationMode) { + const left = pageDiv.offsetLeft + pageDiv.clientLeft; + const right = left + pageDiv.clientWidth; + const { + scrollLeft, + clientWidth + } = this.container; - for (var i = childNodes.length - 1; i >= 0; i--) { - ring.removeChild(childNodes[i]); - } - - var borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH; - ring.style.width = this.canvasWidth + borderAdjustment + 'px'; - ring.style.height = this.canvasHeight + borderAdjustment + 'px'; - - if (this.canvas) { - this.canvas.width = 0; - this.canvas.height = 0; - delete this.canvas; - } - - if (this.image) { - this.image.removeAttribute('src'); - delete this.image; + if (this._isScrollModeHorizontal || left < scrollLeft || right > scrollLeft + clientWidth) { + pageSpot = { + left: 0, + top: 0 + }; } } - }, { - key: "update", - value: function update(rotation) { - if (typeof rotation !== 'undefined') { - this.rotation = rotation; - } - var totalRotation = (this.rotation + this.pdfPageRotate) % 360; - this.viewport = this.viewport.clone({ - scale: 1, - rotation: totalRotation - }); - this.reset(); + super._scrollIntoView({ + pageDiv, + pageSpot, + pageNumber + }); + } + + _getVisiblePages() { + if (this.isInPresentationMode) { + return this._getCurrentVisiblePage(); } - }, { - key: "cancelRendering", - value: function cancelRendering() { - if (this.renderTask) { - this.renderTask.cancel(); - this.renderTask = null; - } - this.resume = null; + return super._getVisiblePages(); + } + + _updateHelper(visiblePages) { + if (this.isInPresentationMode) { + return; } - }, { - key: "_getPageDrawContext", - value: function _getPageDrawContext() { - var noCtxScale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var canvas = document.createElement('canvas'); - this.canvas = canvas; - canvas.mozOpaque = true; - var ctx = canvas.getContext('2d', { - alpha: false - }); - var outputScale = (0, _ui_utils.getOutputScale)(ctx); - canvas.width = this.canvasWidth * outputScale.sx | 0; - canvas.height = this.canvasHeight * outputScale.sy | 0; - canvas.style.width = this.canvasWidth + 'px'; - canvas.style.height = this.canvasHeight + 'px'; - if (!noCtxScale && outputScale.scaled) { - ctx.scale(outputScale.sx, outputScale.sy); + let currentId = this._currentPageNumber; + let stillFullyVisible = false; + + for (const page of visiblePages) { + if (page.percent < 100) { + break; } - return ctx; + if (page.id === currentId) { + stillFullyVisible = true; + break; + } } - }, { - key: "_convertCanvasToImage", - value: function _convertCanvasToImage() { - var _this = this; - if (!this.canvas) { - return; - } - - if (this.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { - return; - } - - var id = this.renderingId; - var className = 'thumbnailImage'; - - if (this.disableCanvasToImageConversion) { - this.canvas.id = id; - this.canvas.className = className; - this.l10n.get('thumb_page_canvas', { - page: this.pageId - }, 'Thumbnail of Page {{page}}').then(function (msg) { - _this.canvas.setAttribute('aria-label', msg); - }); - this.div.setAttribute('data-loaded', true); - this.ring.appendChild(this.canvas); - return; - } - - var image = document.createElement('img'); - image.id = id; - image.className = className; - this.l10n.get('thumb_page_canvas', { - page: this.pageId - }, 'Thumbnail of Page {{page}}').then(function (msg) { - image.setAttribute('aria-label', msg); - }); - image.style.width = this.canvasWidth + 'px'; - image.style.height = this.canvasHeight + 'px'; - image.src = this.canvas.toDataURL(); - this.image = image; - this.div.setAttribute('data-loaded', true); - this.ring.appendChild(image); - this.canvas.width = 0; - this.canvas.height = 0; - delete this.canvas; + if (!stillFullyVisible) { + currentId = visiblePages[0].id; } - }, { - key: "draw", - value: function draw() { - var _this2 = this; - if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { - console.error('Must be in new state before drawing'); - return Promise.resolve(undefined); - } + this._setCurrentPageNumber(currentId); + } - this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; - var renderCapability = (0, _pdfjsLib.createPromiseCapability)(); +} - var finishRenderTask = function finishRenderTask(error) { - if (renderTask === _this2.renderTask) { - _this2.renderTask = null; - } - - if (error instanceof _pdfjsLib.RenderingCancelledException) { - renderCapability.resolve(undefined); - return; - } - - _this2.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; - - _this2._convertCanvasToImage(); - - if (!error) { - renderCapability.resolve(undefined); - } else { - renderCapability.reject(error); - } - }; - - var ctx = this._getPageDrawContext(); - - var drawViewport = this.viewport.clone({ - scale: this.scale - }); - - var renderContinueCallback = function renderContinueCallback(cont) { - if (!_this2.renderingQueue.isHighestPriority(_this2)) { - _this2.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED; - - _this2.resume = function () { - _this2.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; - cont(); - }; - - return; - } - - cont(); - }; - - var renderContext = { - canvasContext: ctx, - viewport: drawViewport - }; - var renderTask = this.renderTask = this.pdfPage.render(renderContext); - renderTask.onContinue = renderContinueCallback; - renderTask.promise.then(function () { - finishRenderTask(null); - }, function (error) { - finishRenderTask(error); - }); - return renderCapability.promise; - } - }, { - key: "setImage", - value: function setImage(pageView) { - if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { - return; - } - - var img = pageView.canvas; - - if (!img) { - return; - } - - if (!this.pdfPage) { - this.setPdfPage(pageView.pdfPage); - } - - this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; - - var ctx = this._getPageDrawContext(true); - - var canvas = ctx.canvas; - - if (img.width <= 2 * canvas.width) { - ctx.drawImage(img, 0, 0, img.width, img.height, 0, 0, canvas.width, canvas.height); - - this._convertCanvasToImage(); - - return; - } - - var reducedWidth = canvas.width << MAX_NUM_SCALING_STEPS; - var reducedHeight = canvas.height << MAX_NUM_SCALING_STEPS; - var reducedImage = TempImageFactory.getCanvas(reducedWidth, reducedHeight); - var reducedImageCtx = reducedImage.getContext('2d'); - - while (reducedWidth > img.width || reducedHeight > img.height) { - reducedWidth >>= 1; - reducedHeight >>= 1; - } - - reducedImageCtx.drawImage(img, 0, 0, img.width, img.height, 0, 0, reducedWidth, reducedHeight); - - while (reducedWidth > 2 * canvas.width) { - reducedImageCtx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, reducedWidth >> 1, reducedHeight >> 1); - reducedWidth >>= 1; - reducedHeight >>= 1; - } - - ctx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, canvas.width, canvas.height); - - this._convertCanvasToImage(); - } - }, { - key: "setPageLabel", - value: function setPageLabel(label) { - var _this3 = this; - - this.pageLabel = typeof label === 'string' ? label : null; - this.l10n.get('thumb_page_title', { - page: this.pageId - }, 'Page {{page}}').then(function (msg) { - _this3.anchor.title = msg; - }); - - if (this.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { - return; - } - - this.l10n.get('thumb_page_canvas', { - page: this.pageId - }, 'Thumbnail of Page {{page}}').then(function (ariaLabel) { - if (_this3.image) { - _this3.image.setAttribute('aria-label', ariaLabel); - } else if (_this3.disableCanvasToImageConversion && _this3.canvas) { - _this3.canvas.setAttribute('aria-label', ariaLabel); - } - }); - } - }, { - key: "pageId", - get: function get() { - return this.pageLabel !== null ? this.pageLabel : this.id; - } - }], [{ - key: "cleanup", - value: function cleanup() { - TempImageFactory.destroyCanvas(); - } - }]); - - return PDFThumbnailView; -}(); - -exports.PDFThumbnailView = PDFThumbnailView; +exports.PDFViewer = PDFViewer; /***/ }), /* 27 */ @@ -10181,185 +9349,32 @@ exports.PDFThumbnailView = PDFThumbnailView; "use strict"; -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.PDFViewer = void 0; - -var _base_viewer = __webpack_require__(28); - -var _pdfjsLib = __webpack_require__(7); - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } - -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -var PDFViewer = -/*#__PURE__*/ -function (_BaseViewer) { - _inherits(PDFViewer, _BaseViewer); - - function PDFViewer() { - _classCallCheck(this, PDFViewer); - - return _possibleConstructorReturn(this, _getPrototypeOf(PDFViewer).apply(this, arguments)); - } - - _createClass(PDFViewer, [{ - key: "_scrollIntoView", - value: function _scrollIntoView(_ref) { - var pageDiv = _ref.pageDiv, - _ref$pageSpot = _ref.pageSpot, - pageSpot = _ref$pageSpot === void 0 ? null : _ref$pageSpot, - _ref$pageNumber = _ref.pageNumber, - pageNumber = _ref$pageNumber === void 0 ? null : _ref$pageNumber; - - if (!pageSpot && !this.isInPresentationMode) { - var left = pageDiv.offsetLeft + pageDiv.clientLeft; - var right = left + pageDiv.clientWidth; - var _this$container = this.container, - scrollLeft = _this$container.scrollLeft, - clientWidth = _this$container.clientWidth; - - if (this._isScrollModeHorizontal || left < scrollLeft || right > scrollLeft + clientWidth) { - pageSpot = { - left: 0, - top: 0 - }; - } - } - - _get(_getPrototypeOf(PDFViewer.prototype), "_scrollIntoView", this).call(this, { - pageDiv: pageDiv, - pageSpot: pageSpot, - pageNumber: pageNumber - }); - } - }, { - key: "_getVisiblePages", - value: function _getVisiblePages() { - if (this.isInPresentationMode) { - return this._getCurrentVisiblePage(); - } - - return _get(_getPrototypeOf(PDFViewer.prototype), "_getVisiblePages", this).call(this); - } - }, { - key: "_updateHelper", - value: function _updateHelper(visiblePages) { - if (this.isInPresentationMode) { - return; - } - - var currentId = this._currentPageNumber; - var stillFullyVisible = false; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = visiblePages[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var page = _step.value; - - if (page.percent < 100) { - break; - } - - if (page.id === currentId) { - stillFullyVisible = true; - break; - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - if (!stillFullyVisible) { - currentId = visiblePages[0].id; - } - - this._setCurrentPageNumber(currentId); - } - }, { - key: "_setDocumentViewerElement", - get: function get() { - return (0, _pdfjsLib.shadow)(this, '_setDocumentViewerElement', this.viewer); - } - }]); - - return PDFViewer; -}(_base_viewer.BaseViewer); - -exports.PDFViewer = PDFViewer; - -/***/ }), -/* 28 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - Object.defineProperty(exports, "__esModule", { value: true }); exports.BaseViewer = void 0; -var _ui_utils = __webpack_require__(5); +var _ui_utils = __webpack_require__(2); -var _pdf_rendering_queue = __webpack_require__(11); +var _pdf_rendering_queue = __webpack_require__(8); -var _annotation_layer_builder = __webpack_require__(29); +var _annotation_layer_builder = __webpack_require__(28); -var _pdfjsLib = __webpack_require__(7); +var _pdfjsLib = __webpack_require__(5); -var _pdf_page_view = __webpack_require__(30); +var _pdf_page_view = __webpack_require__(29); -var _pdf_link_service = __webpack_require__(21); +var _pdf_link_service = __webpack_require__(20); -var _text_layer_builder = __webpack_require__(31); +var _text_layer_builder = __webpack_require__(30); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var DEFAULT_CACHE_SIZE = 10; +const DEFAULT_CACHE_SIZE = 10; function PDFPageViewBuffer(size) { - var data = []; + const data = []; this.push = function (view) { - var i = data.indexOf(view); + const i = data.indexOf(view); if (i >= 0) { data.splice(i, 1); @@ -10376,9 +9391,9 @@ function PDFPageViewBuffer(size) { size = newSize; if (pagesToKeep) { - var pageIdsToKeep = new Set(); + const pageIdsToKeep = new Set(); - for (var i = 0, iMax = pagesToKeep.length; i < iMax; ++i) { + for (let i = 0, iMax = pagesToKeep.length; i < iMax; ++i) { pageIdsToKeep.add(pagesToKeep[i].id); } @@ -10405,29 +9420,28 @@ function isSameScale(oldScale, newScale) { return false; } -var BaseViewer = -/*#__PURE__*/ -function () { - function BaseViewer(options) { - var _this = this; - - _classCallCheck(this, BaseViewer); - +class BaseViewer { + constructor(options) { if (this.constructor === BaseViewer) { - throw new Error('Cannot initialize BaseViewer.'); + throw new Error("Cannot initialize BaseViewer."); } this._name = this.constructor.name; this.container = options.container; this.viewer = options.viewer || options.container.firstElementChild; - this.eventBus = options.eventBus || (0, _ui_utils.getGlobalEventBus)(); + + if (!(this.container instanceof HTMLDivElement && this.viewer instanceof HTMLDivElement)) { + throw new Error("Invalid `container` and/or `viewer` option."); + } + + this.eventBus = options.eventBus; this.linkService = options.linkService || new _pdf_link_service.SimpleLinkService(); this.downloadManager = options.downloadManager || null; this.findController = options.findController || null; this.removePageBorders = options.removePageBorders || false; this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE; - this.imageResourcesPath = options.imageResourcesPath || ''; - this.renderInteractiveForms = options.renderInteractiveForms || false; + this.imageResourcesPath = options.imageResourcesPath || ""; + this.renderInteractiveForms = typeof options.renderInteractiveForms === "boolean" ? options.renderInteractiveForms : true; this.enablePrintAutoRotate = options.enablePrintAutoRotate || false; this.renderer = options.renderer || _ui_utils.RendererType.CANVAS; this.enableWebGL = options.enableWebGL || false; @@ -10445,1016 +9459,1173 @@ function () { this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdate.bind(this)); this.presentationModeState = _ui_utils.PresentationModeState.UNKNOWN; + this._onBeforeDraw = this._onAfterDraw = null; this._resetView(); if (this.removePageBorders) { - this.viewer.classList.add('removePageBorders'); + this.viewer.classList.add("removePageBorders"); } - Promise.resolve().then(function () { - _this.eventBus.dispatch('baseviewerinit', { - source: _this + Promise.resolve().then(() => { + this.eventBus.dispatch("baseviewerinit", { + source: this }); }); } - _createClass(BaseViewer, [{ - key: "getPageView", - value: function getPageView(index) { - return this._pages[index]; + get pagesCount() { + return this._pages.length; + } + + getPageView(index) { + return this._pages[index]; + } + + get pageViewsReady() { + if (!this._pagesCapability.settled) { + return false; } - }, { - key: "_setCurrentPageNumber", - value: function _setCurrentPageNumber(val) { - var resetCurrentPageView = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - if (this._currentPageNumber === val) { - if (resetCurrentPageView) { - this._resetCurrentPageView(); - } + return this._pages.every(function (pageView) { + return pageView && pageView.pdfPage; + }); + } - return true; - } + get currentPageNumber() { + return this._currentPageNumber; + } - if (!(0 < val && val <= this.pagesCount)) { - return false; - } + set currentPageNumber(val) { + if (!Number.isInteger(val)) { + throw new Error("Invalid page number."); + } - this._currentPageNumber = val; - this.eventBus.dispatch('pagechanging', { - source: this, - pageNumber: val, - pageLabel: this._pageLabels && this._pageLabels[val - 1] - }); + if (!this.pdfDocument) { + return; + } + if (!this._setCurrentPageNumber(val, true)) { + console.error(`${this._name}.currentPageNumber: "${val}" is not a valid page.`); + } + } + + _setCurrentPageNumber(val, resetCurrentPageView = false) { + if (this._currentPageNumber === val) { if (resetCurrentPageView) { this._resetCurrentPageView(); } return true; } - }, { - key: "setDocument", - value: function setDocument(pdfDocument) { - var _this2 = this; - if (this.pdfDocument) { - this._cancelRendering(); - - this._resetView(); - - if (this.findController) { - this.findController.setDocument(null); - } - } - - this.pdfDocument = pdfDocument; - - if (!pdfDocument) { - return; - } - - var pagesCount = pdfDocument.numPages; - var pagesCapability = (0, _pdfjsLib.createPromiseCapability)(); - this.pagesPromise = pagesCapability.promise; - pagesCapability.promise.then(function () { - _this2._pageViewsReady = true; - - _this2.eventBus.dispatch('pagesloaded', { - source: _this2, - pagesCount: pagesCount - }); - }); - var onePageRenderedCapability = (0, _pdfjsLib.createPromiseCapability)(); - this.onePageRendered = onePageRenderedCapability.promise; - - var bindOnAfterAndBeforeDraw = function bindOnAfterAndBeforeDraw(pageView) { - pageView.onBeforeDraw = function () { - _this2._buffer.push(pageView); - }; - - pageView.onAfterDraw = function () { - if (!onePageRenderedCapability.settled) { - onePageRenderedCapability.resolve(); - } - }; - }; - - var firstPagePromise = pdfDocument.getPage(1); - this.firstPagePromise = firstPagePromise; - firstPagePromise.then(function (pdfPage) { - var scale = _this2.currentScale; - var viewport = pdfPage.getViewport({ - scale: scale * _ui_utils.CSS_UNITS - }); - - for (var pageNum = 1; pageNum <= pagesCount; ++pageNum) { - var textLayerFactory = null; - - if (_this2.textLayerMode !== _ui_utils.TextLayerMode.DISABLE) { - textLayerFactory = _this2; - } - - var pageView = new _pdf_page_view.PDFPageView({ - container: _this2._setDocumentViewerElement, - eventBus: _this2.eventBus, - id: pageNum, - scale: scale, - defaultViewport: viewport.clone(), - renderingQueue: _this2.renderingQueue, - textLayerFactory: textLayerFactory, - textLayerMode: _this2.textLayerMode, - annotationLayerFactory: _this2, - imageResourcesPath: _this2.imageResourcesPath, - renderInteractiveForms: _this2.renderInteractiveForms, - renderer: _this2.renderer, - enableWebGL: _this2.enableWebGL, - useOnlyCssZoom: _this2.useOnlyCssZoom, - maxCanvasPixels: _this2.maxCanvasPixels, - l10n: _this2.l10n - }); - bindOnAfterAndBeforeDraw(pageView); - - _this2._pages.push(pageView); - } - - if (_this2._spreadMode !== _ui_utils.SpreadMode.NONE) { - _this2._updateSpreadMode(); - } - - onePageRenderedCapability.promise.then(function () { - if (_this2.findController) { - _this2.findController.setDocument(pdfDocument); - } - - if (pdfDocument.loadingParams['disableAutoFetch']) { - pagesCapability.resolve(); - return; - } - - var getPagesLeft = pagesCount; - - var _loop = function _loop(_pageNum) { - pdfDocument.getPage(_pageNum).then(function (pdfPage) { - var pageView = _this2._pages[_pageNum - 1]; - - if (!pageView.pdfPage) { - pageView.setPdfPage(pdfPage); - } - - _this2.linkService.cachePageRef(_pageNum, pdfPage.ref); - - if (--getPagesLeft === 0) { - pagesCapability.resolve(); - } - }, function (reason) { - console.error("Unable to get page ".concat(_pageNum, " to initialize viewer"), reason); - - if (--getPagesLeft === 0) { - pagesCapability.resolve(); - } - }); - }; - - for (var _pageNum = 1; _pageNum <= pagesCount; ++_pageNum) { - _loop(_pageNum); - } - }); - - _this2.eventBus.dispatch('pagesinit', { - source: _this2 - }); - - if (_this2.defaultRenderingQueue) { - _this2.update(); - } - })["catch"](function (reason) { - console.error('Unable to initialize viewer', reason); - }); + if (!(0 < val && val <= this.pagesCount)) { + return false; } - }, { - key: "setPageLabels", - value: function setPageLabels(labels) { - if (!this.pdfDocument) { - return; - } - if (!labels) { - this._pageLabels = null; - } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { - this._pageLabels = null; - console.error("".concat(this._name, ".setPageLabels: Invalid page labels.")); - } else { - this._pageLabels = labels; - } + this._currentPageNumber = val; + this.eventBus.dispatch("pagechanging", { + source: this, + pageNumber: val, + pageLabel: this._pageLabels && this._pageLabels[val - 1] + }); - for (var i = 0, ii = this._pages.length; i < ii; i++) { - var pageView = this._pages[i]; - var label = this._pageLabels && this._pageLabels[i]; - pageView.setPageLabel(label); + if (resetCurrentPageView) { + this._resetCurrentPageView(); + } + + return true; + } + + get currentPageLabel() { + return this._pageLabels && this._pageLabels[this._currentPageNumber - 1]; + } + + set currentPageLabel(val) { + if (!this.pdfDocument) { + return; + } + + let page = val | 0; + + if (this._pageLabels) { + const i = this._pageLabels.indexOf(val); + + if (i >= 0) { + page = i + 1; } } - }, { - key: "_resetView", - value: function _resetView() { - this._pages = []; - this._currentPageNumber = 1; - this._currentScale = _ui_utils.UNKNOWN_SCALE; - this._currentScaleValue = null; - this._pageLabels = null; - this._buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE); - this._location = null; - this._pagesRotation = 0; - this._pagesRequests = []; - this._pageViewsReady = false; - this._scrollMode = _ui_utils.ScrollMode.VERTICAL; - this._spreadMode = _ui_utils.SpreadMode.NONE; - this.viewer.textContent = ''; - this._updateScrollMode(); + if (!this._setCurrentPageNumber(page, true)) { + console.error(`${this._name}.currentPageLabel: "${val}" is not a valid page.`); } - }, { - key: "_scrollUpdate", - value: function _scrollUpdate() { - if (this.pagesCount === 0) { - return; - } + } + get currentScale() { + return this._currentScale !== _ui_utils.UNKNOWN_SCALE ? this._currentScale : _ui_utils.DEFAULT_SCALE; + } + + set currentScale(val) { + if (isNaN(val)) { + throw new Error("Invalid numeric scale."); + } + + if (!this.pdfDocument) { + return; + } + + this._setScale(val, false); + } + + get currentScaleValue() { + return this._currentScaleValue; + } + + set currentScaleValue(val) { + if (!this.pdfDocument) { + return; + } + + this._setScale(val, false); + } + + get pagesRotation() { + return this._pagesRotation; + } + + set pagesRotation(rotation) { + if (!(0, _ui_utils.isValidRotation)(rotation)) { + throw new Error("Invalid pages rotation angle."); + } + + if (!this.pdfDocument) { + return; + } + + if (this._pagesRotation === rotation) { + return; + } + + this._pagesRotation = rotation; + const pageNumber = this._currentPageNumber; + + for (let i = 0, ii = this._pages.length; i < ii; i++) { + const pageView = this._pages[i]; + pageView.update(pageView.scale, rotation); + } + + if (this._currentScaleValue) { + this._setScale(this._currentScaleValue, true); + } + + this.eventBus.dispatch("rotationchanging", { + source: this, + pagesRotation: rotation, + pageNumber + }); + + if (this.defaultRenderingQueue) { this.update(); } - }, { - key: "_scrollIntoView", - value: function _scrollIntoView(_ref) { - var pageDiv = _ref.pageDiv, - _ref$pageSpot = _ref.pageSpot, - pageSpot = _ref$pageSpot === void 0 ? null : _ref$pageSpot, - _ref$pageNumber = _ref.pageNumber, - pageNumber = _ref$pageNumber === void 0 ? null : _ref$pageNumber; - (0, _ui_utils.scrollIntoView)(pageDiv, pageSpot); + } + + get firstPagePromise() { + return this.pdfDocument ? this._firstPageCapability.promise : null; + } + + get onePageRendered() { + return this.pdfDocument ? this._onePageRenderedCapability.promise : null; + } + + get pagesPromise() { + return this.pdfDocument ? this._pagesCapability.promise : null; + } + + get _viewerElement() { + throw new Error("Not implemented: _viewerElement"); + } + + _onePageRenderedOrForceFetch() { + if (!this.container.offsetParent || this._getVisiblePages().views.length === 0) { + return Promise.resolve(); } - }, { - key: "_setScaleUpdatePages", - value: function _setScaleUpdatePages(newScale, newValue) { - var noScroll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - var preset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - this._currentScaleValue = newValue.toString(); - if (isSameScale(this._currentScale, newScale)) { - if (preset) { - this.eventBus.dispatch('scalechanging', { - source: this, - scale: newScale, - presetValue: newValue - }); - } + return this._onePageRenderedCapability.promise; + } + setDocument(pdfDocument) { + if (this.pdfDocument) { + this._cancelRendering(); + + this._resetView(); + + if (this.findController) { + this.findController.setDocument(null); + } + } + + this.pdfDocument = pdfDocument; + + if (!pdfDocument) { + return; + } + + const pagesCount = pdfDocument.numPages; + const firstPagePromise = pdfDocument.getPage(1); + const annotationStorage = pdfDocument.annotationStorage; + const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig(); + + this._pagesCapability.promise.then(() => { + this.eventBus.dispatch("pagesloaded", { + source: this, + pagesCount + }); + }); + + this._onBeforeDraw = evt => { + const pageView = this._pages[evt.pageNumber - 1]; + + if (!pageView) { return; } - for (var i = 0, ii = this._pages.length; i < ii; i++) { - this._pages[i].update(newScale); + this._buffer.push(pageView); + }; + + this.eventBus._on("pagerender", this._onBeforeDraw); + + this._onAfterDraw = evt => { + if (evt.cssTransform || this._onePageRenderedCapability.settled) { + return; } - this._currentScale = newScale; + this._onePageRenderedCapability.resolve(); - if (!noScroll) { - var page = this._currentPageNumber, - dest; + this.eventBus._off("pagerendered", this._onAfterDraw); - if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) { - page = this._location.pageNumber; - dest = [null, { - name: 'XYZ' - }, this._location.left, this._location.top, null]; + this._onAfterDraw = null; + }; + + this.eventBus._on("pagerendered", this._onAfterDraw); + + firstPagePromise.then(firstPdfPage => { + this._firstPageCapability.resolve(firstPdfPage); + + this._optionalContentConfigPromise = optionalContentConfigPromise; + const scale = this.currentScale; + const viewport = firstPdfPage.getViewport({ + scale: scale * _ui_utils.CSS_UNITS + }); + const textLayerFactory = this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE ? this : null; + + for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) { + const pageView = new _pdf_page_view.PDFPageView({ + container: this._viewerElement, + eventBus: this.eventBus, + id: pageNum, + scale, + defaultViewport: viewport.clone(), + annotationStorage, + optionalContentConfigPromise, + renderingQueue: this.renderingQueue, + textLayerFactory, + textLayerMode: this.textLayerMode, + annotationLayerFactory: this, + imageResourcesPath: this.imageResourcesPath, + renderInteractiveForms: this.renderInteractiveForms, + renderer: this.renderer, + enableWebGL: this.enableWebGL, + useOnlyCssZoom: this.useOnlyCssZoom, + maxCanvasPixels: this.maxCanvasPixels, + l10n: this.l10n + }); + + this._pages.push(pageView); + } + + const firstPageView = this._pages[0]; + + if (firstPageView) { + firstPageView.setPdfPage(firstPdfPage); + this.linkService.cachePageRef(1, firstPdfPage.ref); + } + + if (this._spreadMode !== _ui_utils.SpreadMode.NONE) { + this._updateSpreadMode(); + } + + this._onePageRenderedOrForceFetch().then(() => { + if (this.findController) { + this.findController.setDocument(pdfDocument); } - this.scrollPageIntoView({ - pageNumber: page, - destArray: dest, - allowNegativeOffset: true - }); - } + if (pdfDocument.loadingParams.disableAutoFetch || pagesCount > 7500) { + this._pagesCapability.resolve(); - this.eventBus.dispatch('scalechanging', { - source: this, - scale: newScale, - presetValue: preset ? newValue : undefined + return; + } + + let getPagesLeft = pagesCount - 1; + + if (getPagesLeft <= 0) { + this._pagesCapability.resolve(); + + return; + } + + for (let pageNum = 2; pageNum <= pagesCount; ++pageNum) { + pdfDocument.getPage(pageNum).then(pdfPage => { + const pageView = this._pages[pageNum - 1]; + + if (!pageView.pdfPage) { + pageView.setPdfPage(pdfPage); + } + + this.linkService.cachePageRef(pageNum, pdfPage.ref); + + if (--getPagesLeft === 0) { + this._pagesCapability.resolve(); + } + }, reason => { + console.error(`Unable to get page ${pageNum} to initialize viewer`, reason); + + if (--getPagesLeft === 0) { + this._pagesCapability.resolve(); + } + }); + } + }); + + this.eventBus.dispatch("pagesinit", { + source: this }); if (this.defaultRenderingQueue) { this.update(); } + }).catch(reason => { + console.error("Unable to initialize viewer", reason); + }); + } + + setPageLabels(labels) { + if (!this.pdfDocument) { + return; } - }, { - key: "_setScale", - value: function _setScale(value) { - var noScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var scale = parseFloat(value); - if (scale > 0) { - this._setScaleUpdatePages(scale, value, noScroll, false); - } else { - var currentPage = this._pages[this._currentPageNumber - 1]; - - if (!currentPage) { - return; - } - - var noPadding = this.isInPresentationMode || this.removePageBorders; - var hPadding = noPadding ? 0 : _ui_utils.SCROLLBAR_PADDING; - var vPadding = noPadding ? 0 : _ui_utils.VERTICAL_PADDING; - - if (!noPadding && this._isScrollModeHorizontal) { - var _ref2 = [vPadding, hPadding]; - hPadding = _ref2[0]; - vPadding = _ref2[1]; - } - - var pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale; - var pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale; - - switch (value) { - case 'page-actual': - scale = 1; - break; - - case 'page-width': - scale = pageWidthScale; - break; - - case 'page-height': - scale = pageHeightScale; - break; - - case 'page-fit': - scale = Math.min(pageWidthScale, pageHeightScale); - break; - - case 'auto': - var horizontalScale = (0, _ui_utils.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale); - scale = Math.min(_ui_utils.MAX_AUTO_SCALE, horizontalScale); - break; - - default: - console.error("".concat(this._name, "._setScale: \"").concat(value, "\" is an unknown zoom value.")); - return; - } - - this._setScaleUpdatePages(scale, value, noScroll, true); - } + if (!labels) { + this._pageLabels = null; + } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { + this._pageLabels = null; + console.error(`${this._name}.setPageLabels: Invalid page labels.`); + } else { + this._pageLabels = labels; } - }, { - key: "_resetCurrentPageView", - value: function _resetCurrentPageView() { - if (this.isInPresentationMode) { - this._setScale(this._currentScaleValue, true); + + for (let i = 0, ii = this._pages.length; i < ii; i++) { + const pageView = this._pages[i]; + const label = this._pageLabels && this._pageLabels[i]; + pageView.setPageLabel(label); + } + } + + _resetView() { + this._pages = []; + this._currentPageNumber = 1; + this._currentScale = _ui_utils.UNKNOWN_SCALE; + this._currentScaleValue = null; + this._pageLabels = null; + this._buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE); + this._location = null; + this._pagesRotation = 0; + this._optionalContentConfigPromise = null; + this._pagesRequests = new WeakMap(); + this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._onePageRenderedCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._pagesCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._scrollMode = _ui_utils.ScrollMode.VERTICAL; + this._spreadMode = _ui_utils.SpreadMode.NONE; + + if (this._onBeforeDraw) { + this.eventBus._off("pagerender", this._onBeforeDraw); + + this._onBeforeDraw = null; + } + + if (this._onAfterDraw) { + this.eventBus._off("pagerendered", this._onAfterDraw); + + this._onAfterDraw = null; + } + + this.viewer.textContent = ""; + + this._updateScrollMode(); + } + + _scrollUpdate() { + if (this.pagesCount === 0) { + return; + } + + this.update(); + } + + _scrollIntoView({ + pageDiv, + pageSpot = null, + pageNumber = null + }) { + (0, _ui_utils.scrollIntoView)(pageDiv, pageSpot); + } + + _setScaleUpdatePages(newScale, newValue, noScroll = false, preset = false) { + this._currentScaleValue = newValue.toString(); + + if (isSameScale(this._currentScale, newScale)) { + if (preset) { + this.eventBus.dispatch("scalechanging", { + source: this, + scale: newScale, + presetValue: newValue + }); } - var pageView = this._pages[this._currentPageNumber - 1]; + return; + } - this._scrollIntoView({ - pageDiv: pageView.div + for (let i = 0, ii = this._pages.length; i < ii; i++) { + this._pages[i].update(newScale); + } + + this._currentScale = newScale; + + if (!noScroll) { + let page = this._currentPageNumber, + dest; + + if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) { + page = this._location.pageNumber; + dest = [null, { + name: "XYZ" + }, this._location.left, this._location.top, null]; + } + + this.scrollPageIntoView({ + pageNumber: page, + destArray: dest, + allowNegativeOffset: true }); } - }, { - key: "scrollPageIntoView", - value: function scrollPageIntoView(_ref3) { - var pageNumber = _ref3.pageNumber, - _ref3$destArray = _ref3.destArray, - destArray = _ref3$destArray === void 0 ? null : _ref3$destArray, - _ref3$allowNegativeOf = _ref3.allowNegativeOffset, - allowNegativeOffset = _ref3$allowNegativeOf === void 0 ? false : _ref3$allowNegativeOf; - if (!this.pdfDocument) { + this.eventBus.dispatch("scalechanging", { + source: this, + scale: newScale, + presetValue: preset ? newValue : undefined + }); + + if (this.defaultRenderingQueue) { + this.update(); + } + } + + _setScale(value, noScroll = false) { + let scale = parseFloat(value); + + if (scale > 0) { + this._setScaleUpdatePages(scale, value, noScroll, false); + } else { + const currentPage = this._pages[this._currentPageNumber - 1]; + + if (!currentPage) { return; } - var pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1]; + const noPadding = this.isInPresentationMode || this.removePageBorders; + let hPadding = noPadding ? 0 : _ui_utils.SCROLLBAR_PADDING; + let vPadding = noPadding ? 0 : _ui_utils.VERTICAL_PADDING; - if (!pageView) { - console.error("".concat(this._name, ".scrollPageIntoView: ") + "\"".concat(pageNumber, "\" is not a valid pageNumber parameter.")); - return; + if (!noPadding && this._isScrollModeHorizontal) { + [hPadding, vPadding] = [vPadding, hPadding]; } - if (this.isInPresentationMode || !destArray) { - this._setCurrentPageNumber(pageNumber, true); + const pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale; + const pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale; - return; - } - - var x = 0, - y = 0; - var width = 0, - height = 0, - widthScale, - heightScale; - var changeOrientation = pageView.rotation % 180 === 0 ? false : true; - var pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / _ui_utils.CSS_UNITS; - var pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / _ui_utils.CSS_UNITS; - var scale = 0; - - switch (destArray[1].name) { - case 'XYZ': - x = destArray[2]; - y = destArray[3]; - scale = destArray[4]; - x = x !== null ? x : 0; - y = y !== null ? y : pageHeight; + switch (value) { + case "page-actual": + scale = 1; break; - case 'Fit': - case 'FitB': - scale = 'page-fit'; + case "page-width": + scale = pageWidthScale; break; - case 'FitH': - case 'FitBH': - y = destArray[2]; - scale = 'page-width'; - - if (y === null && this._location) { - x = this._location.left; - y = this._location.top; - } - + case "page-height": + scale = pageHeightScale; break; - case 'FitV': - case 'FitBV': - x = destArray[2]; - width = pageWidth; - height = pageHeight; - scale = 'page-height'; + case "page-fit": + scale = Math.min(pageWidthScale, pageHeightScale); break; - case 'FitR': - x = destArray[2]; - y = destArray[3]; - width = destArray[4] - x; - height = destArray[5] - y; - var hPadding = this.removePageBorders ? 0 : _ui_utils.SCROLLBAR_PADDING; - var vPadding = this.removePageBorders ? 0 : _ui_utils.VERTICAL_PADDING; - widthScale = (this.container.clientWidth - hPadding) / width / _ui_utils.CSS_UNITS; - heightScale = (this.container.clientHeight - vPadding) / height / _ui_utils.CSS_UNITS; - scale = Math.min(Math.abs(widthScale), Math.abs(heightScale)); + case "auto": + const horizontalScale = (0, _ui_utils.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale); + scale = Math.min(_ui_utils.MAX_AUTO_SCALE, horizontalScale); break; default: - console.error("".concat(this._name, ".scrollPageIntoView: ") + "\"".concat(destArray[1].name, "\" is not a valid destination type.")); + console.error(`${this._name}._setScale: "${value}" is an unknown zoom value.`); return; } + this._setScaleUpdatePages(scale, value, noScroll, true); + } + } + + _resetCurrentPageView() { + if (this.isInPresentationMode) { + this._setScale(this._currentScaleValue, true); + } + + const pageView = this._pages[this._currentPageNumber - 1]; + + this._scrollIntoView({ + pageDiv: pageView.div + }); + } + + scrollPageIntoView({ + pageNumber, + destArray = null, + allowNegativeOffset = false, + ignoreDestinationZoom = false + }) { + if (!this.pdfDocument) { + return; + } + + const pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1]; + + if (!pageView) { + console.error(`${this._name}.scrollPageIntoView: ` + `"${pageNumber}" is not a valid pageNumber parameter.`); + return; + } + + if (this.isInPresentationMode || !destArray) { + this._setCurrentPageNumber(pageNumber, true); + + return; + } + + let x = 0, + y = 0; + let width = 0, + height = 0, + widthScale, + heightScale; + const changeOrientation = pageView.rotation % 180 !== 0; + const pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / _ui_utils.CSS_UNITS; + const pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / _ui_utils.CSS_UNITS; + let scale = 0; + + switch (destArray[1].name) { + case "XYZ": + x = destArray[2]; + y = destArray[3]; + scale = destArray[4]; + x = x !== null ? x : 0; + y = y !== null ? y : pageHeight; + break; + + case "Fit": + case "FitB": + scale = "page-fit"; + break; + + case "FitH": + case "FitBH": + y = destArray[2]; + scale = "page-width"; + + if (y === null && this._location) { + x = this._location.left; + y = this._location.top; + } + + break; + + case "FitV": + case "FitBV": + x = destArray[2]; + width = pageWidth; + height = pageHeight; + scale = "page-height"; + break; + + case "FitR": + x = destArray[2]; + y = destArray[3]; + width = destArray[4] - x; + height = destArray[5] - y; + const hPadding = this.removePageBorders ? 0 : _ui_utils.SCROLLBAR_PADDING; + const vPadding = this.removePageBorders ? 0 : _ui_utils.VERTICAL_PADDING; + widthScale = (this.container.clientWidth - hPadding) / width / _ui_utils.CSS_UNITS; + heightScale = (this.container.clientHeight - vPadding) / height / _ui_utils.CSS_UNITS; + scale = Math.min(Math.abs(widthScale), Math.abs(heightScale)); + break; + + default: + console.error(`${this._name}.scrollPageIntoView: ` + `"${destArray[1].name}" is not a valid destination type.`); + return; + } + + if (!ignoreDestinationZoom) { if (scale && scale !== this._currentScale) { this.currentScaleValue = scale; } else if (this._currentScale === _ui_utils.UNKNOWN_SCALE) { this.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; } + } - if (scale === 'page-fit' && !destArray[4]) { - this._scrollIntoView({ - pageDiv: pageView.div, - pageNumber: pageNumber - }); - - return; - } - - var boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)]; - var left = Math.min(boundingRect[0][0], boundingRect[1][0]); - var top = Math.min(boundingRect[0][1], boundingRect[1][1]); - - if (!allowNegativeOffset) { - left = Math.max(left, 0); - top = Math.max(top, 0); - } - + if (scale === "page-fit" && !destArray[4]) { this._scrollIntoView({ pageDiv: pageView.div, - pageSpot: { - left: left, - top: top - }, - pageNumber: pageNumber + pageNumber }); - } - }, { - key: "_updateLocation", - value: function _updateLocation(firstPage) { - var currentScale = this._currentScale; - var currentScaleValue = this._currentScaleValue; - var normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue; - var pageNumber = firstPage.id; - var pdfOpenParams = '#page=' + pageNumber; - pdfOpenParams += '&zoom=' + normalizedScaleValue; - var currentPageView = this._pages[pageNumber - 1]; - var container = this.container; - var topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y); - var intLeft = Math.round(topLeft[0]); - var intTop = Math.round(topLeft[1]); - pdfOpenParams += ',' + intLeft + ',' + intTop; - this._location = { - pageNumber: pageNumber, - scale: normalizedScaleValue, - top: intTop, - left: intLeft, - rotation: this._pagesRotation, - pdfOpenParams: pdfOpenParams - }; - } - }, { - key: "_updateHelper", - value: function _updateHelper(visiblePages) { - throw new Error('Not implemented: _updateHelper'); - } - }, { - key: "update", - value: function update() { - var visible = this._getVisiblePages(); - var visiblePages = visible.views, + return; + } + + const boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)]; + let left = Math.min(boundingRect[0][0], boundingRect[1][0]); + let top = Math.min(boundingRect[0][1], boundingRect[1][1]); + + if (!allowNegativeOffset) { + left = Math.max(left, 0); + top = Math.max(top, 0); + } + + this._scrollIntoView({ + pageDiv: pageView.div, + pageSpot: { + left, + top + }, + pageNumber + }); + } + + _updateLocation(firstPage) { + const currentScale = this._currentScale; + const currentScaleValue = this._currentScaleValue; + const normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue; + const pageNumber = firstPage.id; + let pdfOpenParams = "#page=" + pageNumber; + pdfOpenParams += "&zoom=" + normalizedScaleValue; + const currentPageView = this._pages[pageNumber - 1]; + const container = this.container; + const topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y); + const intLeft = Math.round(topLeft[0]); + const intTop = Math.round(topLeft[1]); + pdfOpenParams += "," + intLeft + "," + intTop; + this._location = { + pageNumber, + scale: normalizedScaleValue, + top: intTop, + left: intLeft, + rotation: this._pagesRotation, + pdfOpenParams + }; + } + + _updateHelper(visiblePages) { + throw new Error("Not implemented: _updateHelper"); + } + + update() { + const visible = this._getVisiblePages(); + + const visiblePages = visible.views, numVisiblePages = visiblePages.length; - if (numVisiblePages === 0) { - return; - } - - var newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1); - - this._buffer.resize(newCacheSize, visiblePages); - - this.renderingQueue.renderHighestPriority(visible); - - this._updateHelper(visiblePages); - - this._updateLocation(visible.first); - - this.eventBus.dispatch('updateviewarea', { - source: this, - location: this._location - }); + if (numVisiblePages === 0) { + return; } - }, { - key: "containsElement", - value: function containsElement(element) { - return this.container.contains(element); - } - }, { - key: "focus", - value: function focus() { - this.container.focus(); - } - }, { - key: "_getCurrentVisiblePage", - value: function _getCurrentVisiblePage() { - if (!this.pagesCount) { - return { - views: [] - }; - } - var pageView = this._pages[this._currentPageNumber - 1]; - var element = pageView.div; - var view = { - id: pageView.id, - x: element.offsetLeft + element.clientLeft, - y: element.offsetTop + element.clientTop, - view: pageView - }; + const newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1); + + this._buffer.resize(newCacheSize, visiblePages); + + this.renderingQueue.renderHighestPriority(visible); + + this._updateHelper(visiblePages); + + this._updateLocation(visible.first); + + this.eventBus.dispatch("updateviewarea", { + source: this, + location: this._location + }); + } + + containsElement(element) { + return this.container.contains(element); + } + + focus() { + this.container.focus(); + } + + get _isScrollModeHorizontal() { + return this.isInPresentationMode ? false : this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL; + } + + get isInPresentationMode() { + return this.presentationModeState === _ui_utils.PresentationModeState.FULLSCREEN; + } + + get isChangingPresentationMode() { + return this.presentationModeState === _ui_utils.PresentationModeState.CHANGING; + } + + get isHorizontalScrollbarEnabled() { + return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth; + } + + get isVerticalScrollbarEnabled() { + return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight; + } + + _getCurrentVisiblePage() { + if (!this.pagesCount) { return { - first: view, - last: view, - views: [view] + views: [] }; } - }, { - key: "_getVisiblePages", - value: function _getVisiblePages() { - return (0, _ui_utils.getVisibleElements)(this.container, this._pages, true, this._isScrollModeHorizontal); - } - }, { - key: "isPageVisible", - value: function isPageVisible(pageNumber) { - if (!this.pdfDocument) { - return false; - } - if (this.pageNumber < 1 || pageNumber > this.pagesCount) { - console.error("".concat(this._name, ".isPageVisible: \"").concat(pageNumber, "\" is out of bounds.")); - return false; - } + const pageView = this._pages[this._currentPageNumber - 1]; + const element = pageView.div; + const view = { + id: pageView.id, + x: element.offsetLeft + element.clientLeft, + y: element.offsetTop + element.clientTop, + view: pageView + }; + return { + first: view, + last: view, + views: [view] + }; + } - return this._getVisiblePages().views.some(function (view) { - return view.id === pageNumber; - }); - } - }, { - key: "cleanup", - value: function cleanup() { - for (var i = 0, ii = this._pages.length; i < ii; i++) { - if (this._pages[i] && this._pages[i].renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { - this._pages[i].reset(); - } - } - } - }, { - key: "_cancelRendering", - value: function _cancelRendering() { - for (var i = 0, ii = this._pages.length; i < ii; i++) { - if (this._pages[i]) { - this._pages[i].cancelRendering(); - } - } - } - }, { - key: "_ensurePdfPageLoaded", - value: function _ensurePdfPageLoaded(pageView) { - var _this3 = this; - - if (pageView.pdfPage) { - return Promise.resolve(pageView.pdfPage); - } - - var pageNumber = pageView.id; - - if (this._pagesRequests[pageNumber]) { - return this._pagesRequests[pageNumber]; - } - - var promise = this.pdfDocument.getPage(pageNumber).then(function (pdfPage) { - if (!pageView.pdfPage) { - pageView.setPdfPage(pdfPage); - } - - _this3._pagesRequests[pageNumber] = null; - return pdfPage; - })["catch"](function (reason) { - console.error('Unable to get page for page view', reason); - _this3._pagesRequests[pageNumber] = null; - }); - this._pagesRequests[pageNumber] = promise; - return promise; - } - }, { - key: "forceRendering", - value: function forceRendering(currentlyVisiblePages) { - var _this4 = this; - - var visiblePages = currentlyVisiblePages || this._getVisiblePages(); - - var scrollAhead = this._isScrollModeHorizontal ? this.scroll.right : this.scroll.down; - var pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead); - - if (pageView) { - this._ensurePdfPageLoaded(pageView).then(function () { - _this4.renderingQueue.renderView(pageView); - }); - - return true; - } + _getVisiblePages() { + return (0, _ui_utils.getVisibleElements)(this.container, this._pages, true, this._isScrollModeHorizontal); + } + isPageVisible(pageNumber) { + if (!this.pdfDocument) { return false; } - }, { - key: "createTextLayerBuilder", - value: function createTextLayerBuilder(textLayerDiv, pageIndex, viewport) { - var enhanceTextSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - return new _text_layer_builder.TextLayerBuilder({ - textLayerDiv: textLayerDiv, - eventBus: this.eventBus, - pageIndex: pageIndex, - viewport: viewport, - findController: this.isInPresentationMode ? null : this.findController, - enhanceTextSelection: this.isInPresentationMode ? false : enhanceTextSelection + + if (pageNumber < 1 || pageNumber > this.pagesCount) { + console.error(`${this._name}.isPageVisible: "${pageNumber}" is out of bounds.`); + return false; + } + + return this._getVisiblePages().views.some(function (view) { + return view.id === pageNumber; + }); + } + + cleanup() { + for (let i = 0, ii = this._pages.length; i < ii; i++) { + if (this._pages[i] && this._pages[i].renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { + this._pages[i].reset(); + } + } + } + + _cancelRendering() { + for (let i = 0, ii = this._pages.length; i < ii; i++) { + if (this._pages[i]) { + this._pages[i].cancelRendering(); + } + } + } + + _ensurePdfPageLoaded(pageView) { + if (pageView.pdfPage) { + return Promise.resolve(pageView.pdfPage); + } + + if (this._pagesRequests.has(pageView)) { + return this._pagesRequests.get(pageView); + } + + const promise = this.pdfDocument.getPage(pageView.id).then(pdfPage => { + if (!pageView.pdfPage) { + pageView.setPdfPage(pdfPage); + } + + this._pagesRequests.delete(pageView); + + return pdfPage; + }).catch(reason => { + console.error("Unable to get page for page view", reason); + + this._pagesRequests.delete(pageView); + }); + + this._pagesRequests.set(pageView, promise); + + return promise; + } + + forceRendering(currentlyVisiblePages) { + const visiblePages = currentlyVisiblePages || this._getVisiblePages(); + + const scrollAhead = this._isScrollModeHorizontal ? this.scroll.right : this.scroll.down; + const pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead); + + if (pageView) { + this._ensurePdfPageLoaded(pageView).then(() => { + this.renderingQueue.renderView(pageView); }); - } - }, { - key: "createAnnotationLayerBuilder", - value: function createAnnotationLayerBuilder(pageDiv, pdfPage) { - var imageResourcesPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; - var renderInteractiveForms = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - var l10n = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _ui_utils.NullL10n; - return new _annotation_layer_builder.AnnotationLayerBuilder({ - pageDiv: pageDiv, - pdfPage: pdfPage, - imageResourcesPath: imageResourcesPath, - renderInteractiveForms: renderInteractiveForms, - linkService: this.linkService, - downloadManager: this.downloadManager, - l10n: l10n - }); - } - }, { - key: "getPagesOverview", - value: function getPagesOverview() { - var pagesOverview = this._pages.map(function (pageView) { - var viewport = pageView.pdfPage.getViewport({ - scale: 1 - }); - return { - width: viewport.width, - height: viewport.height, - rotation: viewport.rotation - }; - }); - - if (!this.enablePrintAutoRotate) { - return pagesOverview; - } - - var isFirstPagePortrait = (0, _ui_utils.isPortraitOrientation)(pagesOverview[0]); - return pagesOverview.map(function (size) { - if (isFirstPagePortrait === (0, _ui_utils.isPortraitOrientation)(size)) { - return size; - } - - return { - width: size.height, - height: size.width, - rotation: (size.rotation + 90) % 360 - }; - }); - } - }, { - key: "_updateScrollMode", - value: function _updateScrollMode() { - var pageNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; - var scrollMode = this._scrollMode, - viewer = this.viewer; - viewer.classList.toggle('scrollHorizontal', scrollMode === _ui_utils.ScrollMode.HORIZONTAL); - viewer.classList.toggle('scrollWrapped', scrollMode === _ui_utils.ScrollMode.WRAPPED); - - if (!this.pdfDocument || !pageNumber) { - return; - } - - if (this._currentScaleValue && isNaN(this._currentScaleValue)) { - this._setScale(this._currentScaleValue, true); - } - - this._setCurrentPageNumber(pageNumber, true); - - this.update(); - } - }, { - key: "_updateSpreadMode", - value: function _updateSpreadMode() { - var pageNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; - - if (!this.pdfDocument) { - return; - } - - var viewer = this.viewer, - pages = this._pages; - viewer.textContent = ''; - - if (this._spreadMode === _ui_utils.SpreadMode.NONE) { - for (var i = 0, iMax = pages.length; i < iMax; ++i) { - viewer.appendChild(pages[i].div); - } - } else { - var parity = this._spreadMode - 1; - var spread = null; - - for (var _i = 0, _iMax = pages.length; _i < _iMax; ++_i) { - if (spread === null) { - spread = document.createElement('div'); - spread.className = 'spread'; - viewer.appendChild(spread); - } else if (_i % 2 === parity) { - spread = spread.cloneNode(false); - viewer.appendChild(spread); - } - - spread.appendChild(pages[_i].div); - } - } - - if (!pageNumber) { - return; - } - - this._setCurrentPageNumber(pageNumber, true); - - this.update(); - } - }, { - key: "pagesCount", - get: function get() { - return this._pages.length; - } - }, { - key: "pageViewsReady", - get: function get() { - return this._pageViewsReady; - } - }, { - key: "currentPageNumber", - get: function get() { - return this._currentPageNumber; - }, - set: function set(val) { - if (!Number.isInteger(val)) { - throw new Error('Invalid page number.'); - } - - if (!this.pdfDocument) { - return; - } - - if (!this._setCurrentPageNumber(val, true)) { - console.error("".concat(this._name, ".currentPageNumber: \"").concat(val, "\" is not a valid page.")); - } - } - }, { - key: "currentPageLabel", - get: function get() { - return this._pageLabels && this._pageLabels[this._currentPageNumber - 1]; - }, - set: function set(val) { - if (!this.pdfDocument) { - return; - } - - var page = val | 0; - - if (this._pageLabels) { - var i = this._pageLabels.indexOf(val); - - if (i >= 0) { - page = i + 1; - } - } - - if (!this._setCurrentPageNumber(page, true)) { - console.error("".concat(this._name, ".currentPageLabel: \"").concat(val, "\" is not a valid page.")); - } - } - }, { - key: "currentScale", - get: function get() { - return this._currentScale !== _ui_utils.UNKNOWN_SCALE ? this._currentScale : _ui_utils.DEFAULT_SCALE; - }, - set: function set(val) { - if (isNaN(val)) { - throw new Error('Invalid numeric scale.'); - } - - if (!this.pdfDocument) { - return; - } - - this._setScale(val, false); - } - }, { - key: "currentScaleValue", - get: function get() { - return this._currentScaleValue; - }, - set: function set(val) { - if (!this.pdfDocument) { - return; - } - - this._setScale(val, false); - } - }, { - key: "pagesRotation", - get: function get() { - return this._pagesRotation; - }, - set: function set(rotation) { - if (!(0, _ui_utils.isValidRotation)(rotation)) { - throw new Error('Invalid pages rotation angle.'); - } - - if (!this.pdfDocument) { - return; - } - - if (this._pagesRotation === rotation) { - return; - } - - this._pagesRotation = rotation; - var pageNumber = this._currentPageNumber; - - for (var i = 0, ii = this._pages.length; i < ii; i++) { - var pageView = this._pages[i]; - pageView.update(pageView.scale, rotation); - } - - if (this._currentScaleValue) { - this._setScale(this._currentScaleValue, true); - } - - this.eventBus.dispatch('rotationchanging', { - source: this, - pagesRotation: rotation, - pageNumber: pageNumber - }); - - if (this.defaultRenderingQueue) { - this.update(); - } - } - }, { - key: "_setDocumentViewerElement", - get: function get() { - throw new Error('Not implemented: _setDocumentViewerElement'); - } - }, { - key: "_isScrollModeHorizontal", - get: function get() { - return this.isInPresentationMode ? false : this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL; - } - }, { - key: "isInPresentationMode", - get: function get() { - return this.presentationModeState === _ui_utils.PresentationModeState.FULLSCREEN; - } - }, { - key: "isChangingPresentationMode", - get: function get() { - return this.presentationModeState === _ui_utils.PresentationModeState.CHANGING; - } - }, { - key: "isHorizontalScrollbarEnabled", - get: function get() { - return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth; - } - }, { - key: "isVerticalScrollbarEnabled", - get: function get() { - return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight; - } - }, { - key: "hasEqualPageSizes", - get: function get() { - var firstPageView = this._pages[0]; - - for (var i = 1, ii = this._pages.length; i < ii; ++i) { - var pageView = this._pages[i]; - - if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) { - return false; - } - } return true; } - }, { - key: "scrollMode", - get: function get() { - return this._scrollMode; - }, - set: function set(mode) { - if (this._scrollMode === mode) { - return; + + return false; + } + + createTextLayerBuilder(textLayerDiv, pageIndex, viewport, enhanceTextSelection = false, eventBus) { + return new _text_layer_builder.TextLayerBuilder({ + textLayerDiv, + eventBus, + pageIndex, + viewport, + findController: this.isInPresentationMode ? null : this.findController, + enhanceTextSelection: this.isInPresentationMode ? false : enhanceTextSelection + }); + } + + createAnnotationLayerBuilder(pageDiv, pdfPage, annotationStorage = null, imageResourcesPath = "", renderInteractiveForms = false, l10n = _ui_utils.NullL10n) { + return new _annotation_layer_builder.AnnotationLayerBuilder({ + pageDiv, + pdfPage, + annotationStorage, + imageResourcesPath, + renderInteractiveForms, + linkService: this.linkService, + downloadManager: this.downloadManager, + l10n + }); + } + + get hasEqualPageSizes() { + const firstPageView = this._pages[0]; + + for (let i = 1, ii = this._pages.length; i < ii; ++i) { + const pageView = this._pages[i]; + + if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) { + return false; } - - if (!(0, _ui_utils.isValidScrollMode)(mode)) { - throw new Error("Invalid scroll mode: ".concat(mode)); - } - - this._scrollMode = mode; - this.eventBus.dispatch('scrollmodechanged', { - source: this, - mode: mode - }); - - this._updateScrollMode(this._currentPageNumber); } - }, { - key: "spreadMode", - get: function get() { - return this._spreadMode; - }, - set: function set(mode) { - if (this._spreadMode === mode) { - return; - } - if (!(0, _ui_utils.isValidSpreadMode)(mode)) { - throw new Error("Invalid spread mode: ".concat(mode)); - } + return true; + } - this._spreadMode = mode; - this.eventBus.dispatch('spreadmodechanged', { - source: this, - mode: mode + getPagesOverview() { + const pagesOverview = this._pages.map(function (pageView) { + const viewport = pageView.pdfPage.getViewport({ + scale: 1 }); + return { + width: viewport.width, + height: viewport.height, + rotation: viewport.rotation + }; + }); - this._updateSpreadMode(this._currentPageNumber); + if (!this.enablePrintAutoRotate) { + return pagesOverview; } - }]); - return BaseViewer; -}(); + return pagesOverview.map(function (size) { + if ((0, _ui_utils.isPortraitOrientation)(size)) { + return size; + } + + return { + width: size.height, + height: size.width, + rotation: (size.rotation + 90) % 360 + }; + }); + } + + get optionalContentConfigPromise() { + if (!this.pdfDocument) { + return Promise.resolve(null); + } + + if (!this._optionalContentConfigPromise) { + return this.pdfDocument.getOptionalContentConfig(); + } + + return this._optionalContentConfigPromise; + } + + set optionalContentConfigPromise(promise) { + if (!(promise instanceof Promise)) { + throw new Error(`Invalid optionalContentConfigPromise: ${promise}`); + } + + if (!this.pdfDocument) { + return; + } + + if (!this._optionalContentConfigPromise) { + return; + } + + this._optionalContentConfigPromise = promise; + + for (const pageView of this._pages) { + pageView.update(pageView.scale, pageView.rotation, promise); + } + + this.update(); + this.eventBus.dispatch("optionalcontentconfigchanged", { + source: this, + promise + }); + } + + get scrollMode() { + return this._scrollMode; + } + + set scrollMode(mode) { + if (this._scrollMode === mode) { + return; + } + + if (!(0, _ui_utils.isValidScrollMode)(mode)) { + throw new Error(`Invalid scroll mode: ${mode}`); + } + + this._scrollMode = mode; + this.eventBus.dispatch("scrollmodechanged", { + source: this, + mode + }); + + this._updateScrollMode(this._currentPageNumber); + } + + _updateScrollMode(pageNumber = null) { + const scrollMode = this._scrollMode, + viewer = this.viewer; + viewer.classList.toggle("scrollHorizontal", scrollMode === _ui_utils.ScrollMode.HORIZONTAL); + viewer.classList.toggle("scrollWrapped", scrollMode === _ui_utils.ScrollMode.WRAPPED); + + if (!this.pdfDocument || !pageNumber) { + return; + } + + if (this._currentScaleValue && isNaN(this._currentScaleValue)) { + this._setScale(this._currentScaleValue, true); + } + + this._setCurrentPageNumber(pageNumber, true); + + this.update(); + } + + get spreadMode() { + return this._spreadMode; + } + + set spreadMode(mode) { + if (this._spreadMode === mode) { + return; + } + + if (!(0, _ui_utils.isValidSpreadMode)(mode)) { + throw new Error(`Invalid spread mode: ${mode}`); + } + + this._spreadMode = mode; + this.eventBus.dispatch("spreadmodechanged", { + source: this, + mode + }); + + this._updateSpreadMode(this._currentPageNumber); + } + + _updateSpreadMode(pageNumber = null) { + if (!this.pdfDocument) { + return; + } + + const viewer = this.viewer, + pages = this._pages; + viewer.textContent = ""; + + if (this._spreadMode === _ui_utils.SpreadMode.NONE) { + for (let i = 0, iMax = pages.length; i < iMax; ++i) { + viewer.appendChild(pages[i].div); + } + } else { + const parity = this._spreadMode - 1; + let spread = null; + + for (let i = 0, iMax = pages.length; i < iMax; ++i) { + if (spread === null) { + spread = document.createElement("div"); + spread.className = "spread"; + viewer.appendChild(spread); + } else if (i % 2 === parity) { + spread = spread.cloneNode(false); + viewer.appendChild(spread); + } + + spread.appendChild(pages[i].div); + } + } + + if (!pageNumber) { + return; + } + + this._setCurrentPageNumber(pageNumber, true); + + this.update(); + } + +} exports.BaseViewer = BaseViewer; +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.DefaultAnnotationLayerFactory = exports.AnnotationLayerBuilder = void 0; + +var _pdfjsLib = __webpack_require__(5); + +var _ui_utils = __webpack_require__(2); + +var _pdf_link_service = __webpack_require__(20); + +class AnnotationLayerBuilder { + constructor({ + pageDiv, + pdfPage, + linkService, + downloadManager, + annotationStorage = null, + imageResourcesPath = "", + renderInteractiveForms = true, + l10n = _ui_utils.NullL10n + }) { + this.pageDiv = pageDiv; + this.pdfPage = pdfPage; + this.linkService = linkService; + this.downloadManager = downloadManager; + this.imageResourcesPath = imageResourcesPath; + this.renderInteractiveForms = renderInteractiveForms; + this.l10n = l10n; + this.annotationStorage = annotationStorage; + this.div = null; + this._cancelled = false; + } + + render(viewport, intent = "display") { + return this.pdfPage.getAnnotations({ + intent + }).then(annotations => { + if (this._cancelled) { + return; + } + + if (annotations.length === 0) { + return; + } + + const parameters = { + viewport: viewport.clone({ + dontFlip: true + }), + div: this.div, + annotations, + page: this.pdfPage, + imageResourcesPath: this.imageResourcesPath, + renderInteractiveForms: this.renderInteractiveForms, + linkService: this.linkService, + downloadManager: this.downloadManager, + annotationStorage: this.annotationStorage + }; + + if (this.div) { + _pdfjsLib.AnnotationLayer.update(parameters); + } else { + this.div = document.createElement("div"); + this.div.className = "annotationLayer"; + this.pageDiv.appendChild(this.div); + parameters.div = this.div; + + _pdfjsLib.AnnotationLayer.render(parameters); + + this.l10n.translate(this.div); + } + }); + } + + cancel() { + this._cancelled = true; + } + + hide() { + if (!this.div) { + return; + } + + this.div.setAttribute("hidden", "true"); + } + +} + +exports.AnnotationLayerBuilder = AnnotationLayerBuilder; + +class DefaultAnnotationLayerFactory { + createAnnotationLayerBuilder(pageDiv, pdfPage, annotationStorage = null, imageResourcesPath = "", renderInteractiveForms = true, l10n = _ui_utils.NullL10n) { + return new AnnotationLayerBuilder({ + pageDiv, + pdfPage, + imageResourcesPath, + renderInteractiveForms, + linkService: new _pdf_link_service.SimpleLinkService(), + l10n, + annotationStorage + }); + } + +} + +exports.DefaultAnnotationLayerFactory = DefaultAnnotationLayerFactory; + /***/ }), /* 29 */ /***/ (function(module, exports, __webpack_require__) { @@ -11462,206 +10633,42 @@ exports.BaseViewer = BaseViewer; "use strict"; -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.DefaultAnnotationLayerFactory = exports.AnnotationLayerBuilder = void 0; - -var _pdfjsLib = __webpack_require__(7); - -var _ui_utils = __webpack_require__(5); - -var _pdf_link_service = __webpack_require__(21); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var AnnotationLayerBuilder = -/*#__PURE__*/ -function () { - function AnnotationLayerBuilder(_ref) { - var pageDiv = _ref.pageDiv, - pdfPage = _ref.pdfPage, - linkService = _ref.linkService, - downloadManager = _ref.downloadManager, - _ref$imageResourcesPa = _ref.imageResourcesPath, - imageResourcesPath = _ref$imageResourcesPa === void 0 ? '' : _ref$imageResourcesPa, - _ref$renderInteractiv = _ref.renderInteractiveForms, - renderInteractiveForms = _ref$renderInteractiv === void 0 ? false : _ref$renderInteractiv, - _ref$l10n = _ref.l10n, - l10n = _ref$l10n === void 0 ? _ui_utils.NullL10n : _ref$l10n; - - _classCallCheck(this, AnnotationLayerBuilder); - - this.pageDiv = pageDiv; - this.pdfPage = pdfPage; - this.linkService = linkService; - this.downloadManager = downloadManager; - this.imageResourcesPath = imageResourcesPath; - this.renderInteractiveForms = renderInteractiveForms; - this.l10n = l10n; - this.div = null; - this._cancelled = false; - } - - _createClass(AnnotationLayerBuilder, [{ - key: "render", - value: function render(viewport) { - var _this = this; - - var intent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'display'; - this.pdfPage.getAnnotations({ - intent: intent - }).then(function (annotations) { - if (_this._cancelled) { - return; - } - - var parameters = { - viewport: viewport.clone({ - dontFlip: true - }), - div: _this.div, - annotations: annotations, - page: _this.pdfPage, - imageResourcesPath: _this.imageResourcesPath, - renderInteractiveForms: _this.renderInteractiveForms, - linkService: _this.linkService, - downloadManager: _this.downloadManager - }; - - if (_this.div) { - _pdfjsLib.AnnotationLayer.update(parameters); - } else { - if (annotations.length === 0) { - return; - } - - _this.div = document.createElement('div'); - _this.div.className = 'annotationLayer'; - - _this.pageDiv.appendChild(_this.div); - - parameters.div = _this.div; - - _pdfjsLib.AnnotationLayer.render(parameters); - - _this.l10n.translate(_this.div); - } - }); - } - }, { - key: "cancel", - value: function cancel() { - this._cancelled = true; - } - }, { - key: "hide", - value: function hide() { - if (!this.div) { - return; - } - - this.div.setAttribute('hidden', 'true'); - } - }]); - - return AnnotationLayerBuilder; -}(); - -exports.AnnotationLayerBuilder = AnnotationLayerBuilder; - -var DefaultAnnotationLayerFactory = -/*#__PURE__*/ -function () { - function DefaultAnnotationLayerFactory() { - _classCallCheck(this, DefaultAnnotationLayerFactory); - } - - _createClass(DefaultAnnotationLayerFactory, [{ - key: "createAnnotationLayerBuilder", - value: function createAnnotationLayerBuilder(pageDiv, pdfPage) { - var imageResourcesPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; - var renderInteractiveForms = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - var l10n = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _ui_utils.NullL10n; - return new AnnotationLayerBuilder({ - pageDiv: pageDiv, - pdfPage: pdfPage, - imageResourcesPath: imageResourcesPath, - renderInteractiveForms: renderInteractiveForms, - linkService: new _pdf_link_service.SimpleLinkService(), - l10n: l10n - }); - } - }]); - - return DefaultAnnotationLayerFactory; -}(); - -exports.DefaultAnnotationLayerFactory = DefaultAnnotationLayerFactory; - -/***/ }), -/* 30 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - Object.defineProperty(exports, "__esModule", { value: true }); exports.PDFPageView = void 0; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); +var _ui_utils = __webpack_require__(2); -var _ui_utils = __webpack_require__(5); +var _pdfjsLib = __webpack_require__(5); -var _pdfjsLib = __webpack_require__(7); +var _pdf_rendering_queue = __webpack_require__(8); -var _pdf_rendering_queue = __webpack_require__(11); +var _viewer_compatibility = __webpack_require__(4); -var _viewer_compatibility = __webpack_require__(8); +const MAX_CANVAS_PIXELS = _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels || 16777216; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var MAX_CANVAS_PIXELS = _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels || 16777216; - -var PDFPageView = -/*#__PURE__*/ -function () { - function PDFPageView(options) { - _classCallCheck(this, PDFPageView); - - var container = options.container; - var defaultViewport = options.defaultViewport; +class PDFPageView { + constructor(options) { + const container = options.container; + const defaultViewport = options.defaultViewport; this.id = options.id; - this.renderingId = 'page' + this.id; + this.renderingId = "page" + this.id; this.pdfPage = null; this.pageLabel = null; this.rotation = 0; this.scale = options.scale || _ui_utils.DEFAULT_SCALE; this.viewport = defaultViewport; this.pdfPageRotate = defaultViewport.rotation; + this._annotationStorage = options.annotationStorage || null; + this._optionalContentConfigPromise = options.optionalContentConfigPromise || null; this.hasRestrictedScaling = false; this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE; - this.imageResourcesPath = options.imageResourcesPath || ''; - this.renderInteractiveForms = options.renderInteractiveForms || false; + this.imageResourcesPath = options.imageResourcesPath || ""; + this.renderInteractiveForms = typeof options.renderInteractiveForms === "boolean" ? options.renderInteractiveForms : true; this.useOnlyCssZoom = options.useOnlyCssZoom || false; this.maxCanvasPixels = options.maxCanvasPixels || MAX_CANVAS_PIXELS; - this.eventBus = options.eventBus || (0, _ui_utils.getGlobalEventBus)(); + this.eventBus = options.eventBus; this.renderingQueue = options.renderingQueue; this.textLayerFactory = options.textLayerFactory; this.annotationLayerFactory = options.annotationLayerFactory; @@ -11673,598 +10680,575 @@ function () { this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; this.resume = null; this.error = null; - this.onBeforeDraw = null; - this.onAfterDraw = null; this.annotationLayer = null; this.textLayer = null; this.zoomLayer = null; - var div = document.createElement('div'); - div.className = 'page'; - div.style.width = Math.floor(this.viewport.width) + 'px'; - div.style.height = Math.floor(this.viewport.height) + 'px'; - div.setAttribute('data-page-number', this.id); + const div = document.createElement("div"); + div.className = "page"; + div.style.width = Math.floor(this.viewport.width) + "px"; + div.style.height = Math.floor(this.viewport.height) + "px"; + div.setAttribute("data-page-number", this.id); this.div = div; container.appendChild(div); } - _createClass(PDFPageView, [{ - key: "setPdfPage", - value: function setPdfPage(pdfPage) { - this.pdfPage = pdfPage; - this.pdfPageRotate = pdfPage.rotate; - var totalRotation = (this.rotation + this.pdfPageRotate) % 360; - this.viewport = pdfPage.getViewport({ - scale: this.scale * _ui_utils.CSS_UNITS, - rotation: totalRotation + setPdfPage(pdfPage) { + this.pdfPage = pdfPage; + this.pdfPageRotate = pdfPage.rotate; + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = pdfPage.getViewport({ + scale: this.scale * _ui_utils.CSS_UNITS, + rotation: totalRotation + }); + this.stats = pdfPage.stats; + this.reset(); + } + + destroy() { + this.reset(); + + if (this.pdfPage) { + this.pdfPage.cleanup(); + } + } + + async _renderAnnotationLayer() { + let error = null; + + try { + await this.annotationLayer.render(this.viewport, "display"); + } catch (ex) { + error = ex; + } finally { + this.eventBus.dispatch("annotationlayerrendered", { + source: this, + pageNumber: this.id, + error }); - this.stats = pdfPage.stats; - this.reset(); } - }, { - key: "destroy", - value: function destroy() { - this.reset(); + } - if (this.pdfPage) { - this.pdfPage.cleanup(); - } + _resetZoomLayer(removeFromDOM = false) { + if (!this.zoomLayer) { + return; } - }, { - key: "_resetZoomLayer", - value: function _resetZoomLayer() { - var removeFromDOM = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - if (!this.zoomLayer) { - return; - } + const zoomLayerCanvas = this.zoomLayer.firstChild; + this.paintedViewportMap.delete(zoomLayerCanvas); + zoomLayerCanvas.width = 0; + zoomLayerCanvas.height = 0; - var zoomLayerCanvas = this.zoomLayer.firstChild; - this.paintedViewportMap["delete"](zoomLayerCanvas); - zoomLayerCanvas.width = 0; - zoomLayerCanvas.height = 0; - - if (removeFromDOM) { - this.zoomLayer.remove(); - } - - this.zoomLayer = null; + if (removeFromDOM) { + this.zoomLayer.remove(); } - }, { - key: "reset", - value: function reset() { - var keepZoomLayer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var keepAnnotations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - this.cancelRendering(keepAnnotations); - this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; - var div = this.div; - div.style.width = Math.floor(this.viewport.width) + 'px'; - div.style.height = Math.floor(this.viewport.height) + 'px'; - var childNodes = div.childNodes; - var currentZoomLayerNode = keepZoomLayer && this.zoomLayer || null; - var currentAnnotationNode = keepAnnotations && this.annotationLayer && this.annotationLayer.div || null; - for (var i = childNodes.length - 1; i >= 0; i--) { - var node = childNodes[i]; + this.zoomLayer = null; + } - if (currentZoomLayerNode === node || currentAnnotationNode === node) { - continue; - } + reset(keepZoomLayer = false, keepAnnotations = false) { + this.cancelRendering(keepAnnotations); + this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; + const div = this.div; + div.style.width = Math.floor(this.viewport.width) + "px"; + div.style.height = Math.floor(this.viewport.height) + "px"; + const childNodes = div.childNodes; + const currentZoomLayerNode = keepZoomLayer && this.zoomLayer || null; + const currentAnnotationNode = keepAnnotations && this.annotationLayer && this.annotationLayer.div || null; - div.removeChild(node); + for (let i = childNodes.length - 1; i >= 0; i--) { + const node = childNodes[i]; + + if (currentZoomLayerNode === node || currentAnnotationNode === node) { + continue; } - div.removeAttribute('data-loaded'); - - if (currentAnnotationNode) { - this.annotationLayer.hide(); - } else if (this.annotationLayer) { - this.annotationLayer.cancel(); - this.annotationLayer = null; - } - - if (!currentZoomLayerNode) { - if (this.canvas) { - this.paintedViewportMap["delete"](this.canvas); - this.canvas.width = 0; - this.canvas.height = 0; - delete this.canvas; - } - - this._resetZoomLayer(); - } - - if (this.svg) { - this.paintedViewportMap["delete"](this.svg); - delete this.svg; - } - - this.loadingIconDiv = document.createElement('div'); - this.loadingIconDiv.className = 'loadingIcon'; - div.appendChild(this.loadingIconDiv); + div.removeChild(node); } - }, { - key: "update", - value: function update(scale, rotation) { - this.scale = scale || this.scale; - if (typeof rotation !== 'undefined') { - this.rotation = rotation; + div.removeAttribute("data-loaded"); + + if (currentAnnotationNode) { + this.annotationLayer.hide(); + } else if (this.annotationLayer) { + this.annotationLayer.cancel(); + this.annotationLayer = null; + } + + if (!currentZoomLayerNode) { + if (this.canvas) { + this.paintedViewportMap.delete(this.canvas); + this.canvas.width = 0; + this.canvas.height = 0; + delete this.canvas; } - var totalRotation = (this.rotation + this.pdfPageRotate) % 360; - this.viewport = this.viewport.clone({ - scale: this.scale * _ui_utils.CSS_UNITS, - rotation: totalRotation + this._resetZoomLayer(); + } + + if (this.svg) { + this.paintedViewportMap.delete(this.svg); + delete this.svg; + } + + this.loadingIconDiv = document.createElement("div"); + this.loadingIconDiv.className = "loadingIcon"; + div.appendChild(this.loadingIconDiv); + } + + update(scale, rotation, optionalContentConfigPromise = null) { + this.scale = scale || this.scale; + + if (typeof rotation !== "undefined") { + this.rotation = rotation; + } + + if (optionalContentConfigPromise instanceof Promise) { + this._optionalContentConfigPromise = optionalContentConfigPromise; + } + + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = this.viewport.clone({ + scale: this.scale * _ui_utils.CSS_UNITS, + rotation: totalRotation + }); + + if (this.svg) { + this.cssTransform(this.svg, true); + this.eventBus.dispatch("pagerendered", { + source: this, + pageNumber: this.id, + cssTransform: true, + timestamp: performance.now() }); + return; + } - if (this.svg) { - this.cssTransform(this.svg, true); - this.eventBus.dispatch('pagerendered', { + let isScalingRestricted = false; + + if (this.canvas && this.maxCanvasPixels > 0) { + const outputScale = this.outputScale; + + if ((Math.floor(this.viewport.width) * outputScale.sx | 0) * (Math.floor(this.viewport.height) * outputScale.sy | 0) > this.maxCanvasPixels) { + isScalingRestricted = true; + } + } + + if (this.canvas) { + if (this.useOnlyCssZoom || this.hasRestrictedScaling && isScalingRestricted) { + this.cssTransform(this.canvas, true); + this.eventBus.dispatch("pagerendered", { source: this, pageNumber: this.id, - cssTransform: true + cssTransform: true, + timestamp: performance.now() }); return; } - var isScalingRestricted = false; + if (!this.zoomLayer && !this.canvas.hasAttribute("hidden")) { + this.zoomLayer = this.canvas.parentNode; + this.zoomLayer.style.position = "absolute"; + } + } - if (this.canvas && this.maxCanvasPixels > 0) { - var outputScale = this.outputScale; + if (this.zoomLayer) { + this.cssTransform(this.zoomLayer.firstChild); + } - if ((Math.floor(this.viewport.width) * outputScale.sx | 0) * (Math.floor(this.viewport.height) * outputScale.sy | 0) > this.maxCanvasPixels) { - isScalingRestricted = true; - } + this.reset(true, true); + } + + cancelRendering(keepAnnotations = false) { + if (this.paintTask) { + this.paintTask.cancel(); + this.paintTask = null; + } + + this.resume = null; + + if (this.textLayer) { + this.textLayer.cancel(); + this.textLayer = null; + } + + if (!keepAnnotations && this.annotationLayer) { + this.annotationLayer.cancel(); + this.annotationLayer = null; + } + } + + cssTransform(target, redrawAnnotations = false) { + const width = this.viewport.width; + const height = this.viewport.height; + const div = this.div; + target.style.width = target.parentNode.style.width = div.style.width = Math.floor(width) + "px"; + target.style.height = target.parentNode.style.height = div.style.height = Math.floor(height) + "px"; + const relativeRotation = this.viewport.rotation - this.paintedViewportMap.get(target).rotation; + const absRotation = Math.abs(relativeRotation); + let scaleX = 1, + scaleY = 1; + + if (absRotation === 90 || absRotation === 270) { + scaleX = height / width; + scaleY = width / height; + } + + const cssTransform = "rotate(" + relativeRotation + "deg) " + "scale(" + scaleX + "," + scaleY + ")"; + target.style.transform = cssTransform; + + if (this.textLayer) { + const textLayerViewport = this.textLayer.viewport; + const textRelativeRotation = this.viewport.rotation - textLayerViewport.rotation; + const textAbsRotation = Math.abs(textRelativeRotation); + let scale = width / textLayerViewport.width; + + if (textAbsRotation === 90 || textAbsRotation === 270) { + scale = width / textLayerViewport.height; } - if (this.canvas) { - if (this.useOnlyCssZoom || this.hasRestrictedScaling && isScalingRestricted) { - this.cssTransform(this.canvas, true); - this.eventBus.dispatch('pagerendered', { - source: this, - pageNumber: this.id, - cssTransform: true - }); + const textLayerDiv = this.textLayer.textLayerDiv; + let transX, transY; + + switch (textAbsRotation) { + case 0: + transX = transY = 0; + break; + + case 90: + transX = 0; + transY = "-" + textLayerDiv.style.height; + break; + + case 180: + transX = "-" + textLayerDiv.style.width; + transY = "-" + textLayerDiv.style.height; + break; + + case 270: + transX = "-" + textLayerDiv.style.width; + transY = 0; + break; + + default: + console.error("Bad rotation value."); + break; + } + + textLayerDiv.style.transform = "rotate(" + textAbsRotation + "deg) " + "scale(" + scale + ", " + scale + ") " + "translate(" + transX + ", " + transY + ")"; + textLayerDiv.style.transformOrigin = "0% 0%"; + } + + if (redrawAnnotations && this.annotationLayer) { + this._renderAnnotationLayer(); + } + } + + get width() { + return this.viewport.width; + } + + get height() { + return this.viewport.height; + } + + getPagePoint(x, y) { + return this.viewport.convertToPdfPoint(x, y); + } + + draw() { + if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { + console.error("Must be in new state before drawing"); + this.reset(); + } + + const { + div, + pdfPage + } = this; + + if (!pdfPage) { + this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; + + if (this.loadingIconDiv) { + div.removeChild(this.loadingIconDiv); + delete this.loadingIconDiv; + } + + return Promise.reject(new Error("pdfPage is not loaded")); + } + + this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; + const canvasWrapper = document.createElement("div"); + canvasWrapper.style.width = div.style.width; + canvasWrapper.style.height = div.style.height; + canvasWrapper.classList.add("canvasWrapper"); + + if (this.annotationLayer && this.annotationLayer.div) { + div.insertBefore(canvasWrapper, this.annotationLayer.div); + } else { + div.appendChild(canvasWrapper); + } + + let textLayer = null; + + if (this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE && this.textLayerFactory) { + const textLayerDiv = document.createElement("div"); + textLayerDiv.className = "textLayer"; + textLayerDiv.style.width = canvasWrapper.style.width; + textLayerDiv.style.height = canvasWrapper.style.height; + + if (this.annotationLayer && this.annotationLayer.div) { + div.insertBefore(textLayerDiv, this.annotationLayer.div); + } else { + div.appendChild(textLayerDiv); + } + + textLayer = this.textLayerFactory.createTextLayerBuilder(textLayerDiv, this.id - 1, this.viewport, this.textLayerMode === _ui_utils.TextLayerMode.ENABLE_ENHANCE, this.eventBus); + } + + this.textLayer = textLayer; + let renderContinueCallback = null; + + if (this.renderingQueue) { + renderContinueCallback = cont => { + if (!this.renderingQueue.isHighestPriority(this)) { + this.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED; + + this.resume = () => { + this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; + cont(); + }; + return; } - if (!this.zoomLayer && !this.canvas.hasAttribute('hidden')) { - this.zoomLayer = this.canvas.parentNode; - this.zoomLayer.style.position = 'absolute'; - } - } - - if (this.zoomLayer) { - this.cssTransform(this.zoomLayer.firstChild); - } - - this.reset(true, true); + cont(); + }; } - }, { - key: "cancelRendering", - value: function cancelRendering() { - var keepAnnotations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - if (this.paintTask) { - this.paintTask.cancel(); + const finishPaintTask = async error => { + if (paintTask === this.paintTask) { this.paintTask = null; } - this.resume = null; - - if (this.textLayer) { - this.textLayer.cancel(); - this.textLayer = null; + if (error instanceof _pdfjsLib.RenderingCancelledException) { + this.error = null; + return; } - if (!keepAnnotations && this.annotationLayer) { - this.annotationLayer.cancel(); - this.annotationLayer = null; - } - } - }, { - key: "cssTransform", - value: function cssTransform(target) { - var redrawAnnotations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var width = this.viewport.width; - var height = this.viewport.height; - var div = this.div; - target.style.width = target.parentNode.style.width = div.style.width = Math.floor(width) + 'px'; - target.style.height = target.parentNode.style.height = div.style.height = Math.floor(height) + 'px'; - var relativeRotation = this.viewport.rotation - this.paintedViewportMap.get(target).rotation; - var absRotation = Math.abs(relativeRotation); - var scaleX = 1, - scaleY = 1; + this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; - if (absRotation === 90 || absRotation === 270) { - scaleX = height / width; - scaleY = width / height; + if (this.loadingIconDiv) { + div.removeChild(this.loadingIconDiv); + delete this.loadingIconDiv; } - var cssTransform = 'rotate(' + relativeRotation + 'deg) ' + 'scale(' + scaleX + ',' + scaleY + ')'; - target.style.transform = cssTransform; + this._resetZoomLayer(true); - if (this.textLayer) { - var textLayerViewport = this.textLayer.viewport; - var textRelativeRotation = this.viewport.rotation - textLayerViewport.rotation; - var textAbsRotation = Math.abs(textRelativeRotation); - var scale = width / textLayerViewport.width; - - if (textAbsRotation === 90 || textAbsRotation === 270) { - scale = width / textLayerViewport.height; - } - - var textLayerDiv = this.textLayer.textLayerDiv; - var transX, transY; - - switch (textAbsRotation) { - case 0: - transX = transY = 0; - break; - - case 90: - transX = 0; - transY = '-' + textLayerDiv.style.height; - break; - - case 180: - transX = '-' + textLayerDiv.style.width; - transY = '-' + textLayerDiv.style.height; - break; - - case 270: - transX = '-' + textLayerDiv.style.width; - transY = 0; - break; - - default: - console.error('Bad rotation value.'); - break; - } - - textLayerDiv.style.transform = 'rotate(' + textAbsRotation + 'deg) ' + 'scale(' + scale + ', ' + scale + ') ' + 'translate(' + transX + ', ' + transY + ')'; - textLayerDiv.style.transformOrigin = '0% 0%'; - } - - if (redrawAnnotations && this.annotationLayer) { - this.annotationLayer.render(this.viewport, 'display'); - } - } - }, { - key: "getPagePoint", - value: function getPagePoint(x, y) { - return this.viewport.convertToPdfPoint(x, y); - } - }, { - key: "draw", - value: function draw() { - var _this = this; - - if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { - console.error('Must be in new state before drawing'); - this.reset(); - } - - if (!this.pdfPage) { - this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; - return Promise.reject(new Error('Page is not loaded')); - } - - this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; - var pdfPage = this.pdfPage; - var div = this.div; - var canvasWrapper = document.createElement('div'); - canvasWrapper.style.width = div.style.width; - canvasWrapper.style.height = div.style.height; - canvasWrapper.classList.add('canvasWrapper'); - - if (this.annotationLayer && this.annotationLayer.div) { - div.insertBefore(canvasWrapper, this.annotationLayer.div); - } else { - div.appendChild(canvasWrapper); - } - - var textLayer = null; - - if (this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE && this.textLayerFactory) { - var textLayerDiv = document.createElement('div'); - textLayerDiv.className = 'textLayer'; - textLayerDiv.style.width = canvasWrapper.style.width; - textLayerDiv.style.height = canvasWrapper.style.height; - - if (this.annotationLayer && this.annotationLayer.div) { - div.insertBefore(textLayerDiv, this.annotationLayer.div); - } else { - div.appendChild(textLayerDiv); - } - - textLayer = this.textLayerFactory.createTextLayerBuilder(textLayerDiv, this.id - 1, this.viewport, this.textLayerMode === _ui_utils.TextLayerMode.ENABLE_ENHANCE); - } - - this.textLayer = textLayer; - var renderContinueCallback = null; - - if (this.renderingQueue) { - renderContinueCallback = function renderContinueCallback(cont) { - if (!_this.renderingQueue.isHighestPriority(_this)) { - _this.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED; - - _this.resume = function () { - _this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; - cont(); - }; - - return; - } - - cont(); - }; - } - - var finishPaintTask = - /*#__PURE__*/ - function () { - var _ref = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(error) { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (paintTask === _this.paintTask) { - _this.paintTask = null; - } - - if (!(error instanceof _pdfjsLib.RenderingCancelledException)) { - _context.next = 4; - break; - } - - _this.error = null; - return _context.abrupt("return"); - - case 4: - _this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; - - if (_this.loadingIconDiv) { - div.removeChild(_this.loadingIconDiv); - delete _this.loadingIconDiv; - } - - _this._resetZoomLayer(true); - - _this.error = error; - _this.stats = pdfPage.stats; - - if (_this.onAfterDraw) { - _this.onAfterDraw(); - } - - _this.eventBus.dispatch('pagerendered', { - source: _this, - pageNumber: _this.id, - cssTransform: false - }); - - if (!error) { - _context.next = 13; - break; - } - - throw error; - - case 13: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - - return function finishPaintTask(_x) { - return _ref.apply(this, arguments); - }; - }(); - - var paintTask = this.renderer === _ui_utils.RendererType.SVG ? this.paintOnSvg(canvasWrapper) : this.paintOnCanvas(canvasWrapper); - paintTask.onRenderContinue = renderContinueCallback; - this.paintTask = paintTask; - var resultPromise = paintTask.promise.then(function () { - return finishPaintTask(null).then(function () { - if (textLayer) { - var readableStream = pdfPage.streamTextContent({ - normalizeWhitespace: true - }); - textLayer.setTextContentStream(readableStream); - textLayer.render(); - } - }); - }, function (reason) { - return finishPaintTask(reason); + this.error = error; + this.stats = pdfPage.stats; + this.eventBus.dispatch("pagerendered", { + source: this, + pageNumber: this.id, + cssTransform: false, + timestamp: performance.now() }); - if (this.annotationLayerFactory) { - if (!this.annotationLayer) { - this.annotationLayer = this.annotationLayerFactory.createAnnotationLayerBuilder(div, pdfPage, this.imageResourcesPath, this.renderInteractiveForms, this.l10n); - } - - this.annotationLayer.render(this.viewport, 'display'); + if (error) { + throw error; } + }; - div.setAttribute('data-loaded', true); - - if (this.onBeforeDraw) { - this.onBeforeDraw(); - } - - return resultPromise; - } - }, { - key: "paintOnCanvas", - value: function paintOnCanvas(canvasWrapper) { - var renderCapability = (0, _pdfjsLib.createPromiseCapability)(); - var result = { - promise: renderCapability.promise, - onRenderContinue: function onRenderContinue(cont) { - cont(); - }, - cancel: function cancel() { - renderTask.cancel(); + const paintTask = this.renderer === _ui_utils.RendererType.SVG ? this.paintOnSvg(canvasWrapper) : this.paintOnCanvas(canvasWrapper); + paintTask.onRenderContinue = renderContinueCallback; + this.paintTask = paintTask; + const resultPromise = paintTask.promise.then(function () { + return finishPaintTask(null).then(function () { + if (textLayer) { + const readableStream = pdfPage.streamTextContent({ + normalizeWhitespace: true + }); + textLayer.setTextContentStream(readableStream); + textLayer.render(); } - }; - var viewport = this.viewport; - var canvas = document.createElement('canvas'); - canvas.id = this.renderingId; - canvas.setAttribute('hidden', 'hidden'); - var isCanvasHidden = true; - - var showCanvas = function showCanvas() { - if (isCanvasHidden) { - canvas.removeAttribute('hidden'); - isCanvasHidden = false; - } - }; - - canvasWrapper.appendChild(canvas); - this.canvas = canvas; - canvas.mozOpaque = true; - var ctx = canvas.getContext('2d', { - alpha: false }); - var outputScale = (0, _ui_utils.getOutputScale)(ctx); - this.outputScale = outputScale; + }, function (reason) { + return finishPaintTask(reason); + }); - if (this.useOnlyCssZoom) { - var actualSizeViewport = viewport.clone({ - scale: _ui_utils.CSS_UNITS - }); - outputScale.sx *= actualSizeViewport.width / viewport.width; - outputScale.sy *= actualSizeViewport.height / viewport.height; - outputScale.scaled = true; + if (this.annotationLayerFactory) { + if (!this.annotationLayer) { + this.annotationLayer = this.annotationLayerFactory.createAnnotationLayerBuilder(div, pdfPage, this._annotationStorage, this.imageResourcesPath, this.renderInteractiveForms, this.l10n); } - if (this.maxCanvasPixels > 0) { - var pixelsInViewport = viewport.width * viewport.height; - var maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport); - - if (outputScale.sx > maxScale || outputScale.sy > maxScale) { - outputScale.sx = maxScale; - outputScale.sy = maxScale; - outputScale.scaled = true; - this.hasRestrictedScaling = true; - } else { - this.hasRestrictedScaling = false; - } - } - - var sfx = (0, _ui_utils.approximateFraction)(outputScale.sx); - var sfy = (0, _ui_utils.approximateFraction)(outputScale.sy); - canvas.width = (0, _ui_utils.roundToDivide)(viewport.width * outputScale.sx, sfx[0]); - canvas.height = (0, _ui_utils.roundToDivide)(viewport.height * outputScale.sy, sfy[0]); - canvas.style.width = (0, _ui_utils.roundToDivide)(viewport.width, sfx[1]) + 'px'; - canvas.style.height = (0, _ui_utils.roundToDivide)(viewport.height, sfy[1]) + 'px'; - this.paintedViewportMap.set(canvas, viewport); - var transform = !outputScale.scaled ? null : [outputScale.sx, 0, 0, outputScale.sy, 0, 0]; - var renderContext = { - canvasContext: ctx, - transform: transform, - viewport: this.viewport, - enableWebGL: this.enableWebGL, - renderInteractiveForms: this.renderInteractiveForms - }; - var renderTask = this.pdfPage.render(renderContext); - - renderTask.onContinue = function (cont) { - showCanvas(); - - if (result.onRenderContinue) { - result.onRenderContinue(cont); - } else { - cont(); - } - }; - - renderTask.promise.then(function () { - showCanvas(); - renderCapability.resolve(undefined); - }, function (error) { - showCanvas(); - renderCapability.reject(error); - }); - return result; + this._renderAnnotationLayer(); } - }, { - key: "paintOnSvg", - value: function paintOnSvg(wrapper) { - var _this2 = this; - var cancelled = false; + div.setAttribute("data-loaded", true); + this.eventBus.dispatch("pagerender", { + source: this, + pageNumber: this.id + }); + return resultPromise; + } - var ensureNotCancelled = function ensureNotCancelled() { - if (cancelled) { - throw new _pdfjsLib.RenderingCancelledException('Rendering cancelled, page ' + _this2.id, 'svg'); - } - }; + paintOnCanvas(canvasWrapper) { + const renderCapability = (0, _pdfjsLib.createPromiseCapability)(); + const result = { + promise: renderCapability.promise, - var pdfPage = this.pdfPage; - var actualSizeViewport = this.viewport.clone({ + onRenderContinue(cont) { + cont(); + }, + + cancel() { + renderTask.cancel(); + } + + }; + const viewport = this.viewport; + const canvas = document.createElement("canvas"); + this.l10n.get("page_canvas", { + page: this.id + }, "Page {{page}}").then(msg => { + canvas.setAttribute("aria-label", msg); + }); + canvas.setAttribute("hidden", "hidden"); + let isCanvasHidden = true; + + const showCanvas = function () { + if (isCanvasHidden) { + canvas.removeAttribute("hidden"); + isCanvasHidden = false; + } + }; + + canvasWrapper.appendChild(canvas); + this.canvas = canvas; + canvas.mozOpaque = true; + const ctx = canvas.getContext("2d", { + alpha: false + }); + const outputScale = (0, _ui_utils.getOutputScale)(ctx); + this.outputScale = outputScale; + + if (this.useOnlyCssZoom) { + const actualSizeViewport = viewport.clone({ scale: _ui_utils.CSS_UNITS }); - var promise = pdfPage.getOperatorList().then(function (opList) { - ensureNotCancelled(); - var svgGfx = new _pdfjsLib.SVGGraphics(pdfPage.commonObjs, pdfPage.objs); - return svgGfx.getSVG(opList, actualSizeViewport).then(function (svg) { - ensureNotCancelled(); - _this2.svg = svg; - - _this2.paintedViewportMap.set(svg, actualSizeViewport); - - svg.style.width = wrapper.style.width; - svg.style.height = wrapper.style.height; - _this2.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; - wrapper.appendChild(svg); - }); - }); - return { - promise: promise, - onRenderContinue: function onRenderContinue(cont) { - cont(); - }, - cancel: function cancel() { - cancelled = true; - } - }; + outputScale.sx *= actualSizeViewport.width / viewport.width; + outputScale.sy *= actualSizeViewport.height / viewport.height; + outputScale.scaled = true; } - }, { - key: "setPageLabel", - value: function setPageLabel(label) { - this.pageLabel = typeof label === 'string' ? label : null; - if (this.pageLabel !== null) { - this.div.setAttribute('data-page-label', this.pageLabel); + if (this.maxCanvasPixels > 0) { + const pixelsInViewport = viewport.width * viewport.height; + const maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport); + + if (outputScale.sx > maxScale || outputScale.sy > maxScale) { + outputScale.sx = maxScale; + outputScale.sy = maxScale; + outputScale.scaled = true; + this.hasRestrictedScaling = true; } else { - this.div.removeAttribute('data-page-label'); + this.hasRestrictedScaling = false; } } - }, { - key: "width", - get: function get() { - return this.viewport.width; - } - }, { - key: "height", - get: function get() { - return this.viewport.height; - } - }]); - return PDFPageView; -}(); + const sfx = (0, _ui_utils.approximateFraction)(outputScale.sx); + const sfy = (0, _ui_utils.approximateFraction)(outputScale.sy); + canvas.width = (0, _ui_utils.roundToDivide)(viewport.width * outputScale.sx, sfx[0]); + canvas.height = (0, _ui_utils.roundToDivide)(viewport.height * outputScale.sy, sfy[0]); + canvas.style.width = (0, _ui_utils.roundToDivide)(viewport.width, sfx[1]) + "px"; + canvas.style.height = (0, _ui_utils.roundToDivide)(viewport.height, sfy[1]) + "px"; + this.paintedViewportMap.set(canvas, viewport); + const transform = !outputScale.scaled ? null : [outputScale.sx, 0, 0, outputScale.sy, 0, 0]; + const renderContext = { + canvasContext: ctx, + transform, + viewport: this.viewport, + enableWebGL: this.enableWebGL, + renderInteractiveForms: this.renderInteractiveForms, + optionalContentConfigPromise: this._optionalContentConfigPromise + }; + const renderTask = this.pdfPage.render(renderContext); + + renderTask.onContinue = function (cont) { + showCanvas(); + + if (result.onRenderContinue) { + result.onRenderContinue(cont); + } else { + cont(); + } + }; + + renderTask.promise.then(function () { + showCanvas(); + renderCapability.resolve(undefined); + }, function (error) { + showCanvas(); + renderCapability.reject(error); + }); + return result; + } + + paintOnSvg(wrapper) { + let cancelled = false; + + const ensureNotCancelled = () => { + if (cancelled) { + throw new _pdfjsLib.RenderingCancelledException(`Rendering cancelled, page ${this.id}`, "svg"); + } + }; + + const pdfPage = this.pdfPage; + const actualSizeViewport = this.viewport.clone({ + scale: _ui_utils.CSS_UNITS + }); + const promise = pdfPage.getOperatorList().then(opList => { + ensureNotCancelled(); + const svgGfx = new _pdfjsLib.SVGGraphics(pdfPage.commonObjs, pdfPage.objs); + return svgGfx.getSVG(opList, actualSizeViewport).then(svg => { + ensureNotCancelled(); + this.svg = svg; + this.paintedViewportMap.set(svg, actualSizeViewport); + svg.style.width = wrapper.style.width; + svg.style.height = wrapper.style.height; + this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; + wrapper.appendChild(svg); + }); + }); + return { + promise, + + onRenderContinue(cont) { + cont(); + }, + + cancel() { + cancelled = true; + } + + }; + } + + setPageLabel(label) { + this.pageLabel = typeof label === "string" ? label : null; + + if (this.pageLabel !== null) { + this.div.setAttribute("data-page-label", this.pageLabel); + } else { + this.div.removeAttribute("data-page-label"); + } + } + +} exports.PDFPageView = PDFPageView; /***/ }), -/* 31 */ +/* 30 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -12275,35 +11259,21 @@ Object.defineProperty(exports, "__esModule", { }); exports.DefaultTextLayerFactory = exports.TextLayerBuilder = void 0; -var _ui_utils = __webpack_require__(5); +var _pdfjsLib = __webpack_require__(5); -var _pdfjsLib = __webpack_require__(7); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var EXPAND_DIVS_TIMEOUT = 300; - -var TextLayerBuilder = -/*#__PURE__*/ -function () { - function TextLayerBuilder(_ref) { - var textLayerDiv = _ref.textLayerDiv, - eventBus = _ref.eventBus, - pageIndex = _ref.pageIndex, - viewport = _ref.viewport, - _ref$findController = _ref.findController, - findController = _ref$findController === void 0 ? null : _ref$findController, - _ref$enhanceTextSelec = _ref.enhanceTextSelection, - enhanceTextSelection = _ref$enhanceTextSelec === void 0 ? false : _ref$enhanceTextSelec; - - _classCallCheck(this, TextLayerBuilder); +const EXPAND_DIVS_TIMEOUT = 300; +class TextLayerBuilder { + constructor({ + textLayerDiv, + eventBus, + pageIndex, + viewport, + findController = null, + enhanceTextSelection = false + }) { this.textLayerDiv = textLayerDiv; - this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)(); + this.eventBus = eventBus; this.textContent = null; this.textContentItemsStr = []; this.textContentStream = null; @@ -12321,369 +11291,348 @@ function () { this._bindMouse(); } - _createClass(TextLayerBuilder, [{ - key: "_finishRendering", - value: function _finishRendering() { - this.renderingDone = true; + _finishRendering() { + this.renderingDone = true; - if (!this.enhanceTextSelection) { - var endOfContent = document.createElement('div'); - endOfContent.className = 'endOfContent'; - this.textLayerDiv.appendChild(endOfContent); - } - - this.eventBus.dispatch('textlayerrendered', { - source: this, - pageNumber: this.pageNumber, - numTextDivs: this.textDivs.length - }); + if (!this.enhanceTextSelection) { + const endOfContent = document.createElement("div"); + endOfContent.className = "endOfContent"; + this.textLayerDiv.appendChild(endOfContent); } - }, { - key: "render", - value: function render() { - var _this = this; - var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + this.eventBus.dispatch("textlayerrendered", { + source: this, + pageNumber: this.pageNumber, + numTextDivs: this.textDivs.length + }); + } - if (!(this.textContent || this.textContentStream) || this.renderingDone) { - return; - } - - this.cancel(); - this.textDivs = []; - var textLayerFrag = document.createDocumentFragment(); - this.textLayerRenderTask = (0, _pdfjsLib.renderTextLayer)({ - textContent: this.textContent, - textContentStream: this.textContentStream, - container: textLayerFrag, - viewport: this.viewport, - textDivs: this.textDivs, - textContentItemsStr: this.textContentItemsStr, - timeout: timeout, - enhanceTextSelection: this.enhanceTextSelection - }); - this.textLayerRenderTask.promise.then(function () { - _this.textLayerDiv.appendChild(textLayerFrag); - - _this._finishRendering(); - - _this._updateMatches(); - }, function (reason) {}); - - if (!this._onUpdateTextLayerMatches) { - this._onUpdateTextLayerMatches = function (evt) { - if (evt.pageIndex === _this.pageIdx || evt.pageIndex === -1) { - _this._updateMatches(); - } - }; - - this.eventBus.on('updatetextlayermatches', this._onUpdateTextLayerMatches); - } + render(timeout = 0) { + if (!(this.textContent || this.textContentStream) || this.renderingDone) { + return; } - }, { - key: "cancel", - value: function cancel() { - if (this.textLayerRenderTask) { - this.textLayerRenderTask.cancel(); - this.textLayerRenderTask = null; - } - if (this._onUpdateTextLayerMatches) { - this.eventBus.off('updatetextlayermatches', this._onUpdateTextLayerMatches); - this._onUpdateTextLayerMatches = null; - } - } - }, { - key: "setTextContentStream", - value: function setTextContentStream(readableStream) { - this.cancel(); - this.textContentStream = readableStream; - } - }, { - key: "setTextContent", - value: function setTextContent(textContent) { - this.cancel(); - this.textContent = textContent; - } - }, { - key: "_convertMatches", - value: function _convertMatches(matches, matchesLength) { - if (!matches) { - return []; - } + this.cancel(); + this.textDivs = []; + const textLayerFrag = document.createDocumentFragment(); + this.textLayerRenderTask = (0, _pdfjsLib.renderTextLayer)({ + textContent: this.textContent, + textContentStream: this.textContentStream, + container: textLayerFrag, + viewport: this.viewport, + textDivs: this.textDivs, + textContentItemsStr: this.textContentItemsStr, + timeout, + enhanceTextSelection: this.enhanceTextSelection + }); + this.textLayerRenderTask.promise.then(() => { + this.textLayerDiv.appendChild(textLayerFrag); - var findController = this.findController, - textContentItemsStr = this.textContentItemsStr; - var i = 0, - iIndex = 0; - var end = textContentItemsStr.length - 1; - var queryLen = findController.state.query.length; - var result = []; + this._finishRendering(); - for (var m = 0, mm = matches.length; m < mm; m++) { - var matchIdx = matches[m]; + this._updateMatches(); + }, function (reason) {}); - while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) { - iIndex += textContentItemsStr[i].length; - i++; + if (!this._onUpdateTextLayerMatches) { + this._onUpdateTextLayerMatches = evt => { + if (evt.pageIndex === this.pageIdx || evt.pageIndex === -1) { + this._updateMatches(); } - - if (i === textContentItemsStr.length) { - console.error('Could not find a matching mapping'); - } - - var match = { - begin: { - divIdx: i, - offset: matchIdx - iIndex - } - }; - - if (matchesLength) { - matchIdx += matchesLength[m]; - } else { - matchIdx += queryLen; - } - - while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) { - iIndex += textContentItemsStr[i].length; - i++; - } - - match.end = { - divIdx: i, - offset: matchIdx - iIndex - }; - result.push(match); - } - - return result; - } - }, { - key: "_renderMatches", - value: function _renderMatches(matches) { - if (matches.length === 0) { - return; - } - - var findController = this.findController, - pageIdx = this.pageIdx, - textContentItemsStr = this.textContentItemsStr, - textDivs = this.textDivs; - var isSelectedPage = pageIdx === findController.selected.pageIdx; - var selectedMatchIdx = findController.selected.matchIdx; - var highlightAll = findController.state.highlightAll; - var prevEnd = null; - var infinity = { - divIdx: -1, - offset: undefined }; - function beginText(begin, className) { - var divIdx = begin.divIdx; - textDivs[divIdx].textContent = ''; - appendTextToDiv(divIdx, 0, begin.offset, className); + this.eventBus._on("updatetextlayermatches", this._onUpdateTextLayerMatches); + } + } + + cancel() { + if (this.textLayerRenderTask) { + this.textLayerRenderTask.cancel(); + this.textLayerRenderTask = null; + } + + if (this._onUpdateTextLayerMatches) { + this.eventBus._off("updatetextlayermatches", this._onUpdateTextLayerMatches); + + this._onUpdateTextLayerMatches = null; + } + } + + setTextContentStream(readableStream) { + this.cancel(); + this.textContentStream = readableStream; + } + + setTextContent(textContent) { + this.cancel(); + this.textContent = textContent; + } + + _convertMatches(matches, matchesLength) { + if (!matches) { + return []; + } + + const { + findController, + textContentItemsStr + } = this; + let i = 0, + iIndex = 0; + const end = textContentItemsStr.length - 1; + const queryLen = findController.state.query.length; + const result = []; + + for (let m = 0, mm = matches.length; m < mm; m++) { + let matchIdx = matches[m]; + + while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) { + iIndex += textContentItemsStr[i].length; + i++; } - function appendTextToDiv(divIdx, fromOffset, toOffset, className) { - var div = textDivs[divIdx]; - var content = textContentItemsStr[divIdx].substring(fromOffset, toOffset); - var node = document.createTextNode(content); + if (i === textContentItemsStr.length) { + console.error("Could not find a matching mapping"); + } - if (className) { - var span = document.createElement('span'); - span.className = className; - span.appendChild(node); - div.appendChild(span); - return; + const match = { + begin: { + divIdx: i, + offset: matchIdx - iIndex } + }; - div.appendChild(node); + if (matchesLength) { + matchIdx += matchesLength[m]; + } else { + matchIdx += queryLen; } - var i0 = selectedMatchIdx, - i1 = i0 + 1; + while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) { + iIndex += textContentItemsStr[i].length; + i++; + } - if (highlightAll) { - i0 = 0; - i1 = matches.length; - } else if (!isSelectedPage) { + match.end = { + divIdx: i, + offset: matchIdx - iIndex + }; + result.push(match); + } + + return result; + } + + _renderMatches(matches) { + if (matches.length === 0) { + return; + } + + const { + findController, + pageIdx, + textContentItemsStr, + textDivs + } = this; + const isSelectedPage = pageIdx === findController.selected.pageIdx; + const selectedMatchIdx = findController.selected.matchIdx; + const highlightAll = findController.state.highlightAll; + let prevEnd = null; + const infinity = { + divIdx: -1, + offset: undefined + }; + + function beginText(begin, className) { + const divIdx = begin.divIdx; + textDivs[divIdx].textContent = ""; + appendTextToDiv(divIdx, 0, begin.offset, className); + } + + function appendTextToDiv(divIdx, fromOffset, toOffset, className) { + const div = textDivs[divIdx]; + const content = textContentItemsStr[divIdx].substring(fromOffset, toOffset); + const node = document.createTextNode(content); + + if (className) { + const span = document.createElement("span"); + span.className = className; + span.appendChild(node); + div.appendChild(span); return; } - for (var i = i0; i < i1; i++) { - var match = matches[i]; - var begin = match.begin; - var end = match.end; - var isSelected = isSelectedPage && i === selectedMatchIdx; - var highlightSuffix = isSelected ? ' selected' : ''; - - if (isSelected) { - findController.scrollMatchIntoView({ - element: textDivs[begin.divIdx], - pageIndex: pageIdx, - matchIndex: selectedMatchIdx - }); - } - - if (!prevEnd || begin.divIdx !== prevEnd.divIdx) { - if (prevEnd !== null) { - appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); - } - - beginText(begin); - } else { - appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset); - } - - if (begin.divIdx === end.divIdx) { - appendTextToDiv(begin.divIdx, begin.offset, end.offset, 'highlight' + highlightSuffix); - } else { - appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, 'highlight begin' + highlightSuffix); - - for (var n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) { - textDivs[n0].className = 'highlight middle' + highlightSuffix; - } - - beginText(end, 'highlight end' + highlightSuffix); - } - - prevEnd = end; - } - - if (prevEnd) { - appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); - } + div.appendChild(node); } - }, { - key: "_updateMatches", - value: function _updateMatches() { - if (!this.renderingDone) { + + let i0 = selectedMatchIdx, + i1 = i0 + 1; + + if (highlightAll) { + i0 = 0; + i1 = matches.length; + } else if (!isSelectedPage) { + return; + } + + for (let i = i0; i < i1; i++) { + const match = matches[i]; + const begin = match.begin; + const end = match.end; + const isSelected = isSelectedPage && i === selectedMatchIdx; + const highlightSuffix = isSelected ? " selected" : ""; + + if (isSelected) { + findController.scrollMatchIntoView({ + element: textDivs[begin.divIdx], + pageIndex: pageIdx, + matchIndex: selectedMatchIdx + }); + } + + if (!prevEnd || begin.divIdx !== prevEnd.divIdx) { + if (prevEnd !== null) { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); + } + + beginText(begin); + } else { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset); + } + + if (begin.divIdx === end.divIdx) { + appendTextToDiv(begin.divIdx, begin.offset, end.offset, "highlight" + highlightSuffix); + } else { + appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, "highlight begin" + highlightSuffix); + + for (let n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) { + textDivs[n0].className = "highlight middle" + highlightSuffix; + } + + beginText(end, "highlight end" + highlightSuffix); + } + + prevEnd = end; + } + + if (prevEnd) { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); + } + } + + _updateMatches() { + if (!this.renderingDone) { + return; + } + + const { + findController, + matches, + pageIdx, + textContentItemsStr, + textDivs + } = this; + let clearedUntilDivIdx = -1; + + for (let i = 0, ii = matches.length; i < ii; i++) { + const match = matches[i]; + const begin = Math.max(clearedUntilDivIdx, match.begin.divIdx); + + for (let n = begin, end = match.end.divIdx; n <= end; n++) { + const div = textDivs[n]; + div.textContent = textContentItemsStr[n]; + div.className = ""; + } + + clearedUntilDivIdx = match.end.divIdx + 1; + } + + if (!findController || !findController.highlightMatches) { + return; + } + + const pageMatches = findController.pageMatches[pageIdx] || null; + const pageMatchesLength = findController.pageMatchesLength[pageIdx] || null; + this.matches = this._convertMatches(pageMatches, pageMatchesLength); + + this._renderMatches(this.matches); + } + + _bindMouse() { + const div = this.textLayerDiv; + let expandDivsTimer = null; + div.addEventListener("mousedown", evt => { + if (this.enhanceTextSelection && this.textLayerRenderTask) { + this.textLayerRenderTask.expandTextDivs(true); + + if (expandDivsTimer) { + clearTimeout(expandDivsTimer); + expandDivsTimer = null; + } + return; } - var findController = this.findController, - matches = this.matches, - pageIdx = this.pageIdx, - textContentItemsStr = this.textContentItemsStr, - textDivs = this.textDivs; - var clearedUntilDivIdx = -1; + const end = div.querySelector(".endOfContent"); - for (var i = 0, ii = matches.length; i < ii; i++) { - var match = matches[i]; - var begin = Math.max(clearedUntilDivIdx, match.begin.divIdx); - - for (var n = begin, end = match.end.divIdx; n <= end; n++) { - var div = textDivs[n]; - div.textContent = textContentItemsStr[n]; - div.className = ''; - } - - clearedUntilDivIdx = match.end.divIdx + 1; - } - - if (!findController || !findController.highlightMatches) { + if (!end) { return; } - var pageMatches = findController.pageMatches[pageIdx] || null; - var pageMatchesLength = findController.pageMatchesLength[pageIdx] || null; - this.matches = this._convertMatches(pageMatches, pageMatchesLength); + let adjustTop = evt.target !== div; + adjustTop = adjustTop && window.getComputedStyle(end).getPropertyValue("-moz-user-select") !== "none"; - this._renderMatches(this.matches); - } - }, { - key: "_bindMouse", - value: function _bindMouse() { - var _this2 = this; + if (adjustTop) { + const divBounds = div.getBoundingClientRect(); + const r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height); + end.style.top = (r * 100).toFixed(2) + "%"; + } - var div = this.textLayerDiv; - var expandDivsTimer = null; - div.addEventListener('mousedown', function (evt) { - if (_this2.enhanceTextSelection && _this2.textLayerRenderTask) { - _this2.textLayerRenderTask.expandTextDivs(true); - - if (expandDivsTimer) { - clearTimeout(expandDivsTimer); - expandDivsTimer = null; + end.classList.add("active"); + }); + div.addEventListener("mouseup", () => { + if (this.enhanceTextSelection && this.textLayerRenderTask) { + expandDivsTimer = setTimeout(() => { + if (this.textLayerRenderTask) { + this.textLayerRenderTask.expandTextDivs(false); } - return; - } + expandDivsTimer = null; + }, EXPAND_DIVS_TIMEOUT); + return; + } - var end = div.querySelector('.endOfContent'); + const end = div.querySelector(".endOfContent"); - if (!end) { - return; - } + if (!end) { + return; + } - var adjustTop = evt.target !== div; - adjustTop = adjustTop && window.getComputedStyle(end).getPropertyValue('-moz-user-select') !== 'none'; + end.style.top = ""; + end.classList.remove("active"); + }); + } - if (adjustTop) { - var divBounds = div.getBoundingClientRect(); - var r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height); - end.style.top = (r * 100).toFixed(2) + '%'; - } - - end.classList.add('active'); - }); - div.addEventListener('mouseup', function () { - if (_this2.enhanceTextSelection && _this2.textLayerRenderTask) { - expandDivsTimer = setTimeout(function () { - if (_this2.textLayerRenderTask) { - _this2.textLayerRenderTask.expandTextDivs(false); - } - - expandDivsTimer = null; - }, EXPAND_DIVS_TIMEOUT); - return; - } - - var end = div.querySelector('.endOfContent'); - - if (!end) { - return; - } - - end.style.top = ''; - end.classList.remove('active'); - }); - } - }]); - - return TextLayerBuilder; -}(); +} exports.TextLayerBuilder = TextLayerBuilder; -var DefaultTextLayerFactory = -/*#__PURE__*/ -function () { - function DefaultTextLayerFactory() { - _classCallCheck(this, DefaultTextLayerFactory); +class DefaultTextLayerFactory { + createTextLayerBuilder(textLayerDiv, pageIndex, viewport, enhanceTextSelection = false, eventBus) { + return new TextLayerBuilder({ + textLayerDiv, + pageIndex, + viewport, + enhanceTextSelection, + eventBus + }); } - _createClass(DefaultTextLayerFactory, [{ - key: "createTextLayerBuilder", - value: function createTextLayerBuilder(textLayerDiv, pageIndex, viewport) { - var enhanceTextSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - return new TextLayerBuilder({ - textLayerDiv: textLayerDiv, - pageIndex: pageIndex, - viewport: viewport, - enhanceTextSelection: enhanceTextSelection - }); - } - }]); - - return DefaultTextLayerFactory; -}(); +} exports.DefaultTextLayerFactory = DefaultTextLayerFactory; /***/ }), -/* 32 */ +/* 31 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -12694,44 +11643,32 @@ Object.defineProperty(exports, "__esModule", { }); exports.SecondaryToolbar = void 0; -var _ui_utils = __webpack_require__(5); +var _ui_utils = __webpack_require__(2); -var _pdf_cursor_tools = __webpack_require__(9); +var _pdf_cursor_tools = __webpack_require__(6); -var _pdf_single_page_viewer = __webpack_require__(33); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var SecondaryToolbar = -/*#__PURE__*/ -function () { - function SecondaryToolbar(options, mainContainer, eventBus) { - var _this = this; - - _classCallCheck(this, SecondaryToolbar); +var _pdf_single_page_viewer = __webpack_require__(32); +class SecondaryToolbar { + constructor(options, mainContainer, eventBus) { this.toolbar = options.toolbar; this.toggleButton = options.toggleButton; this.toolbarButtonContainer = options.toolbarButtonContainer; this.buttons = [{ element: options.presentationModeButton, - eventName: 'presentationmode', + eventName: "presentationmode", close: true }, { element: options.openFileButton, - eventName: 'openfile', + eventName: "openfile", close: true }, { element: options.printButton, - eventName: 'print', + eventName: "print", close: true }, { element: options.downloadButton, - eventName: 'download', + eventName: "download", close: true }, { element: options.viewBookmarkButton, @@ -12739,79 +11676,79 @@ function () { close: true }, { element: options.firstPageButton, - eventName: 'firstpage', + eventName: "firstpage", close: true }, { element: options.lastPageButton, - eventName: 'lastpage', + eventName: "lastpage", close: true }, { element: options.pageRotateCwButton, - eventName: 'rotatecw', + eventName: "rotatecw", close: false }, { element: options.pageRotateCcwButton, - eventName: 'rotateccw', + eventName: "rotateccw", close: false }, { element: options.cursorSelectToolButton, - eventName: 'switchcursortool', + eventName: "switchcursortool", eventDetails: { tool: _pdf_cursor_tools.CursorTool.SELECT }, close: true }, { element: options.cursorHandToolButton, - eventName: 'switchcursortool', + eventName: "switchcursortool", eventDetails: { tool: _pdf_cursor_tools.CursorTool.HAND }, close: true }, { element: options.scrollVerticalButton, - eventName: 'switchscrollmode', + eventName: "switchscrollmode", eventDetails: { mode: _ui_utils.ScrollMode.VERTICAL }, close: true }, { element: options.scrollHorizontalButton, - eventName: 'switchscrollmode', + eventName: "switchscrollmode", eventDetails: { mode: _ui_utils.ScrollMode.HORIZONTAL }, close: true }, { element: options.scrollWrappedButton, - eventName: 'switchscrollmode', + eventName: "switchscrollmode", eventDetails: { mode: _ui_utils.ScrollMode.WRAPPED }, close: true }, { element: options.spreadNoneButton, - eventName: 'switchspreadmode', + eventName: "switchspreadmode", eventDetails: { mode: _ui_utils.SpreadMode.NONE }, close: true }, { element: options.spreadOddButton, - eventName: 'switchspreadmode', + eventName: "switchspreadmode", eventDetails: { mode: _ui_utils.SpreadMode.ODD }, close: true }, { element: options.spreadEvenButton, - eventName: 'switchspreadmode', + eventName: "switchspreadmode", eventDetails: { mode: _ui_utils.SpreadMode.EVEN }, close: true }, { element: options.documentPropertiesButton, - eventName: 'documentproperties', + eventName: "documentproperties", close: true }]; this.items = { @@ -12835,205 +11772,307 @@ function () { this._bindSpreadModeListener(options); - this.eventBus.on('resize', this._setMaxHeight.bind(this)); - this.eventBus.on('baseviewerinit', function (evt) { + this.eventBus._on("resize", this._setMaxHeight.bind(this)); + + this.eventBus._on("baseviewerinit", evt => { if (evt.source instanceof _pdf_single_page_viewer.PDFSinglePageViewer) { - _this.toolbarButtonContainer.classList.add('hiddenScrollModeButtons', 'hiddenSpreadModeButtons'); + this.toolbarButtonContainer.classList.add("hiddenScrollModeButtons", "hiddenSpreadModeButtons"); } else { - _this.toolbarButtonContainer.classList.remove('hiddenScrollModeButtons', 'hiddenSpreadModeButtons'); + this.toolbarButtonContainer.classList.remove("hiddenScrollModeButtons", "hiddenSpreadModeButtons"); } }); } - _createClass(SecondaryToolbar, [{ - key: "setPageNumber", - value: function setPageNumber(pageNumber) { - this.pageNumber = pageNumber; + get isOpen() { + return this.opened; + } - this._updateUIState(); + setPageNumber(pageNumber) { + this.pageNumber = pageNumber; + + this._updateUIState(); + } + + setPagesCount(pagesCount) { + this.pagesCount = pagesCount; + + this._updateUIState(); + } + + reset() { + this.pageNumber = 0; + this.pagesCount = 0; + + this._updateUIState(); + + this.eventBus.dispatch("secondarytoolbarreset", { + source: this + }); + } + + _updateUIState() { + this.items.firstPage.disabled = this.pageNumber <= 1; + this.items.lastPage.disabled = this.pageNumber >= this.pagesCount; + this.items.pageRotateCw.disabled = this.pagesCount === 0; + this.items.pageRotateCcw.disabled = this.pagesCount === 0; + } + + _bindClickListeners() { + this.toggleButton.addEventListener("click", this.toggle.bind(this)); + + for (const { + element, + eventName, + close, + eventDetails + } of this.buttons) { + if (element) { + element.addEventListener("click", evt => { + if (eventName !== null) { + const details = { + source: this + }; + + for (const property in eventDetails) { + details[property] = eventDetails[property]; + } + + this.eventBus.dispatch(eventName, details); + } + + if (close) { + this.close(); + } + }); + } } - }, { - key: "setPagesCount", - value: function setPagesCount(pagesCount) { - this.pagesCount = pagesCount; + } - this._updateUIState(); + _bindCursorToolsListener(buttons) { + this.eventBus._on("cursortoolchanged", function ({ + tool + }) { + buttons.cursorSelectToolButton.classList.toggle("toggled", tool === _pdf_cursor_tools.CursorTool.SELECT); + buttons.cursorHandToolButton.classList.toggle("toggled", tool === _pdf_cursor_tools.CursorTool.HAND); + }); + } + + _bindScrollModeListener(buttons) { + function scrollModeChanged({ + mode + }) { + buttons.scrollVerticalButton.classList.toggle("toggled", mode === _ui_utils.ScrollMode.VERTICAL); + buttons.scrollHorizontalButton.classList.toggle("toggled", mode === _ui_utils.ScrollMode.HORIZONTAL); + buttons.scrollWrappedButton.classList.toggle("toggled", mode === _ui_utils.ScrollMode.WRAPPED); + const isScrollModeHorizontal = mode === _ui_utils.ScrollMode.HORIZONTAL; + buttons.spreadNoneButton.disabled = isScrollModeHorizontal; + buttons.spreadOddButton.disabled = isScrollModeHorizontal; + buttons.spreadEvenButton.disabled = isScrollModeHorizontal; } - }, { - key: "reset", - value: function reset() { - this.pageNumber = 0; - this.pagesCount = 0; - this._updateUIState(); + this.eventBus._on("scrollmodechanged", scrollModeChanged); - this.eventBus.dispatch('secondarytoolbarreset', { - source: this - }); - } - }, { - key: "_updateUIState", - value: function _updateUIState() { - this.items.firstPage.disabled = this.pageNumber <= 1; - this.items.lastPage.disabled = this.pageNumber >= this.pagesCount; - this.items.pageRotateCw.disabled = this.pagesCount === 0; - this.items.pageRotateCcw.disabled = this.pagesCount === 0; - } - }, { - key: "_bindClickListeners", - value: function _bindClickListeners() { - var _this2 = this; - - this.toggleButton.addEventListener('click', this.toggle.bind(this)); - - var _loop = function _loop(button) { - var _this2$buttons$button = _this2.buttons[button], - element = _this2$buttons$button.element, - eventName = _this2$buttons$button.eventName, - close = _this2$buttons$button.close, - eventDetails = _this2$buttons$button.eventDetails; - if (element) { - element.addEventListener('click', function (evt) { - if (eventName !== null) { - var details = { - source: _this2 - }; - - for (var property in eventDetails) { - details[property] = eventDetails[property]; - } - - _this2.eventBus.dispatch(eventName, details); - } - - if (close) { - _this2.close(); - } - }); - } - }; - - for (var button in this.buttons) { - _loop(button); + this.eventBus._on("secondarytoolbarreset", evt => { + if (evt.source === this) { + scrollModeChanged({ + mode: _ui_utils.ScrollMode.VERTICAL + }); } - } - }, { - key: "_bindCursorToolsListener", - value: function _bindCursorToolsListener(buttons) { - this.eventBus.on('cursortoolchanged', function (_ref) { - var tool = _ref.tool; - buttons.cursorSelectToolButton.classList.toggle('toggled', tool === _pdf_cursor_tools.CursorTool.SELECT); - buttons.cursorHandToolButton.classList.toggle('toggled', tool === _pdf_cursor_tools.CursorTool.HAND); - }); - } - }, { - key: "_bindScrollModeListener", - value: function _bindScrollModeListener(buttons) { - var _this3 = this; + }); + } - function scrollModeChanged(_ref2) { - var mode = _ref2.mode; - buttons.scrollVerticalButton.classList.toggle('toggled', mode === _ui_utils.ScrollMode.VERTICAL); - buttons.scrollHorizontalButton.classList.toggle('toggled', mode === _ui_utils.ScrollMode.HORIZONTAL); - buttons.scrollWrappedButton.classList.toggle('toggled', mode === _ui_utils.ScrollMode.WRAPPED); - var isScrollModeHorizontal = mode === _ui_utils.ScrollMode.HORIZONTAL; - buttons.spreadNoneButton.disabled = isScrollModeHorizontal; - buttons.spreadOddButton.disabled = isScrollModeHorizontal; - buttons.spreadEvenButton.disabled = isScrollModeHorizontal; + _bindSpreadModeListener(buttons) { + function spreadModeChanged({ + mode + }) { + buttons.spreadNoneButton.classList.toggle("toggled", mode === _ui_utils.SpreadMode.NONE); + buttons.spreadOddButton.classList.toggle("toggled", mode === _ui_utils.SpreadMode.ODD); + buttons.spreadEvenButton.classList.toggle("toggled", mode === _ui_utils.SpreadMode.EVEN); + } + + this.eventBus._on("spreadmodechanged", spreadModeChanged); + + this.eventBus._on("secondarytoolbarreset", evt => { + if (evt.source === this) { + spreadModeChanged({ + mode: _ui_utils.SpreadMode.NONE + }); } + }); + } - this.eventBus.on('scrollmodechanged', scrollModeChanged); - this.eventBus.on('secondarytoolbarreset', function (evt) { - if (evt.source === _this3) { - scrollModeChanged({ - mode: _ui_utils.ScrollMode.VERTICAL - }); - } - }); + open() { + if (this.opened) { + return; } - }, { - key: "_bindSpreadModeListener", - value: function _bindSpreadModeListener(buttons) { - var _this4 = this; - function spreadModeChanged(_ref3) { - var mode = _ref3.mode; - buttons.spreadNoneButton.classList.toggle('toggled', mode === _ui_utils.SpreadMode.NONE); - buttons.spreadOddButton.classList.toggle('toggled', mode === _ui_utils.SpreadMode.ODD); - buttons.spreadEvenButton.classList.toggle('toggled', mode === _ui_utils.SpreadMode.EVEN); - } + this.opened = true; - this.eventBus.on('spreadmodechanged', spreadModeChanged); - this.eventBus.on('secondarytoolbarreset', function (evt) { - if (evt.source === _this4) { - spreadModeChanged({ - mode: _ui_utils.SpreadMode.NONE - }); - } - }); + this._setMaxHeight(); + + this.toggleButton.classList.add("toggled"); + this.toolbar.classList.remove("hidden"); + } + + close() { + if (!this.opened) { + return; } - }, { - key: "open", - value: function open() { - if (this.opened) { - return; - } - this.opened = true; + this.opened = false; + this.toolbar.classList.add("hidden"); + this.toggleButton.classList.remove("toggled"); + } - this._setMaxHeight(); - - this.toggleButton.classList.add('toggled'); - this.toolbar.classList.remove('hidden'); + toggle() { + if (this.opened) { + this.close(); + } else { + this.open(); } - }, { - key: "close", - value: function close() { - if (!this.opened) { - return; - } + } - this.opened = false; - this.toolbar.classList.add('hidden'); - this.toggleButton.classList.remove('toggled'); + _setMaxHeight() { + if (!this.opened) { + return; } - }, { - key: "toggle", - value: function toggle() { - if (this.opened) { - this.close(); - } else { - this.open(); - } + + this.containerHeight = this.mainContainer.clientHeight; + + if (this.containerHeight === this.previousContainerHeight) { + return; } - }, { - key: "_setMaxHeight", - value: function _setMaxHeight() { - if (!this.opened) { - return; - } - this.containerHeight = this.mainContainer.clientHeight; + this.toolbarButtonContainer.style.maxHeight = `${this.containerHeight - _ui_utils.SCROLLBAR_PADDING}px`; + this.previousContainerHeight = this.containerHeight; + } - if (this.containerHeight === this.previousContainerHeight) { - return; - } - - this.toolbarButtonContainer.setAttribute('style', 'max-height: ' + (this.containerHeight - _ui_utils.SCROLLBAR_PADDING) + 'px;'); - this.previousContainerHeight = this.containerHeight; - } - }, { - key: "isOpen", - get: function get() { - return this.opened; - } - }]); - - return SecondaryToolbar; -}(); +} exports.SecondaryToolbar = SecondaryToolbar; +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFSinglePageViewer = void 0; + +var _base_viewer = __webpack_require__(27); + +var _pdfjsLib = __webpack_require__(5); + +class PDFSinglePageViewer extends _base_viewer.BaseViewer { + constructor(options) { + super(options); + + this.eventBus._on("pagesinit", evt => { + this._ensurePageViewVisible(); + }); + } + + get _viewerElement() { + return (0, _pdfjsLib.shadow)(this, "_viewerElement", this._shadowViewer); + } + + _resetView() { + super._resetView(); + + this._previousPageNumber = 1; + this._shadowViewer = document.createDocumentFragment(); + this._updateScrollDown = null; + } + + _ensurePageViewVisible() { + const pageView = this._pages[this._currentPageNumber - 1]; + const previousPageView = this._pages[this._previousPageNumber - 1]; + const viewerNodes = this.viewer.childNodes; + + switch (viewerNodes.length) { + case 0: + this.viewer.appendChild(pageView.div); + break; + + case 1: + if (viewerNodes[0] !== previousPageView.div) { + throw new Error("_ensurePageViewVisible: Unexpected previously visible page."); + } + + if (pageView === previousPageView) { + break; + } + + this._shadowViewer.appendChild(previousPageView.div); + + this.viewer.appendChild(pageView.div); + this.container.scrollTop = 0; + break; + + default: + throw new Error("_ensurePageViewVisible: Only one page should be visible at a time."); + } + + this._previousPageNumber = this._currentPageNumber; + } + + _scrollUpdate() { + if (this._updateScrollDown) { + this._updateScrollDown(); + } + + super._scrollUpdate(); + } + + _scrollIntoView({ + pageDiv, + pageSpot = null, + pageNumber = null + }) { + if (pageNumber) { + this._setCurrentPageNumber(pageNumber); + } + + const scrolledDown = this._currentPageNumber >= this._previousPageNumber; + + this._ensurePageViewVisible(); + + this.update(); + + super._scrollIntoView({ + pageDiv, + pageSpot, + pageNumber + }); + + this._updateScrollDown = () => { + this.scroll.down = scrolledDown; + this._updateScrollDown = null; + }; + } + + _getVisiblePages() { + return this._getCurrentVisiblePage(); + } + + _updateHelper(visiblePages) {} + + get _isScrollModeHorizontal() { + return (0, _pdfjsLib.shadow)(this, "_isScrollModeHorizontal", false); + } + + _updateScrollMode() {} + + _updateSpreadMode() {} + +} + +exports.PDFSinglePageViewer = PDFSinglePageViewer; + /***/ }), /* 33 */ /***/ (function(module, exports, __webpack_require__) { @@ -13044,166 +12083,267 @@ exports.SecondaryToolbar = SecondaryToolbar; Object.defineProperty(exports, "__esModule", { value: true }); -exports.PDFSinglePageViewer = void 0; +exports.Toolbar = void 0; -var _base_viewer = __webpack_require__(28); +var _ui_utils = __webpack_require__(2); -var _pdfjsLib = __webpack_require__(7); +const PAGE_NUMBER_LOADING_INDICATOR = "visiblePageIsLoading"; +const SCALE_SELECT_CONTAINER_WIDTH = 140; +const SCALE_SELECT_WIDTH = 162; -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +class Toolbar { + constructor(options, eventBus, l10n = _ui_utils.NullL10n) { + this.toolbar = options.container; + this.eventBus = eventBus; + this.l10n = l10n; + this.buttons = [{ + element: options.previous, + eventName: "previouspage" + }, { + element: options.next, + eventName: "nextpage" + }, { + element: options.zoomIn, + eventName: "zoomin" + }, { + element: options.zoomOut, + eventName: "zoomout" + }, { + element: options.openFile, + eventName: "openfile" + }, { + element: options.print, + eventName: "print" + }, { + element: options.presentationModeButton, + eventName: "presentationmode" + }, { + element: options.download, + eventName: "download" + }, { + element: options.viewBookmark, + eventName: null + }]; + this.items = { + numPages: options.numPages, + pageNumber: options.pageNumber, + scaleSelectContainer: options.scaleSelectContainer, + scaleSelect: options.scaleSelect, + customScaleOption: options.customScaleOption, + previous: options.previous, + next: options.next, + zoomIn: options.zoomIn, + zoomOut: options.zoomOut + }; + this._wasLocalized = false; + this.reset(); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } - -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -var PDFSinglePageViewer = -/*#__PURE__*/ -function (_BaseViewer) { - _inherits(PDFSinglePageViewer, _BaseViewer); - - function PDFSinglePageViewer(options) { - var _this; - - _classCallCheck(this, PDFSinglePageViewer); - - _this = _possibleConstructorReturn(this, _getPrototypeOf(PDFSinglePageViewer).call(this, options)); - - _this.eventBus.on('pagesinit', function (evt) { - _this._ensurePageViewVisible(); - }); - - return _this; + this._bindListeners(); } - _createClass(PDFSinglePageViewer, [{ - key: "_resetView", - value: function _resetView() { - _get(_getPrototypeOf(PDFSinglePageViewer.prototype), "_resetView", this).call(this); + setPageNumber(pageNumber, pageLabel) { + this.pageNumber = pageNumber; + this.pageLabel = pageLabel; - this._previousPageNumber = 1; - this._shadowViewer = document.createDocumentFragment(); - this._updateScrollDown = null; + this._updateUIState(false); + } + + setPagesCount(pagesCount, hasPageLabels) { + this.pagesCount = pagesCount; + this.hasPageLabels = hasPageLabels; + + this._updateUIState(true); + } + + setPageScale(pageScaleValue, pageScale) { + this.pageScaleValue = (pageScaleValue || pageScale).toString(); + this.pageScale = pageScale; + + this._updateUIState(false); + } + + reset() { + this.pageNumber = 0; + this.pageLabel = null; + this.hasPageLabels = false; + this.pagesCount = 0; + this.pageScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; + this.pageScale = _ui_utils.DEFAULT_SCALE; + + this._updateUIState(true); + + this.updateLoadingIndicatorState(); + } + + _bindListeners() { + const { + pageNumber, + scaleSelect + } = this.items; + const self = this; + + for (const { + element, + eventName + } of this.buttons) { + if (element) { + element.addEventListener("click", evt => { + if (eventName !== null) { + this.eventBus.dispatch(eventName, { + source: this + }); + } + }); + } } - }, { - key: "_ensurePageViewVisible", - value: function _ensurePageViewVisible() { - var pageView = this._pages[this._currentPageNumber - 1]; - var previousPageView = this._pages[this._previousPageNumber - 1]; - var viewerNodes = this.viewer.childNodes; - switch (viewerNodes.length) { - case 0: - this.viewer.appendChild(pageView.div); - break; - - case 1: - if (viewerNodes[0] !== previousPageView.div) { - throw new Error('_ensurePageViewVisible: Unexpected previously visible page.'); - } - - if (pageView === previousPageView) { - break; - } - - this._shadowViewer.appendChild(previousPageView.div); - - this.viewer.appendChild(pageView.div); - this.container.scrollTop = 0; - break; - - default: - throw new Error('_ensurePageViewVisible: Only one page should be visible at a time.'); - } - - this._previousPageNumber = this._currentPageNumber; - } - }, { - key: "_scrollUpdate", - value: function _scrollUpdate() { - if (this._updateScrollDown) { - this._updateScrollDown(); - } - - _get(_getPrototypeOf(PDFSinglePageViewer.prototype), "_scrollUpdate", this).call(this); - } - }, { - key: "_scrollIntoView", - value: function _scrollIntoView(_ref) { - var _this2 = this; - - var pageDiv = _ref.pageDiv, - _ref$pageSpot = _ref.pageSpot, - pageSpot = _ref$pageSpot === void 0 ? null : _ref$pageSpot, - _ref$pageNumber = _ref.pageNumber, - pageNumber = _ref$pageNumber === void 0 ? null : _ref$pageNumber; - - if (pageNumber) { - this._setCurrentPageNumber(pageNumber); - } - - var scrolledDown = this._currentPageNumber >= this._previousPageNumber; - - this._ensurePageViewVisible(); - - this.update(); - - _get(_getPrototypeOf(PDFSinglePageViewer.prototype), "_scrollIntoView", this).call(this, { - pageDiv: pageDiv, - pageSpot: pageSpot, - pageNumber: pageNumber + pageNumber.addEventListener("click", function () { + this.select(); + }); + pageNumber.addEventListener("change", function () { + self.eventBus.dispatch("pagenumberchanged", { + source: self, + value: this.value }); + }); + scaleSelect.addEventListener("change", function () { + if (this.value === "custom") { + return; + } - this._updateScrollDown = function () { - _this2.scroll.down = scrolledDown; - _this2._updateScrollDown = null; - }; - } - }, { - key: "_getVisiblePages", - value: function _getVisiblePages() { - return this._getCurrentVisiblePage(); - } - }, { - key: "_updateHelper", - value: function _updateHelper(visiblePages) {} - }, { - key: "_updateScrollMode", - value: function _updateScrollMode() {} - }, { - key: "_updateSpreadMode", - value: function _updateSpreadMode() {} - }, { - key: "_setDocumentViewerElement", - get: function get() { - return (0, _pdfjsLib.shadow)(this, '_setDocumentViewerElement', this._shadowViewer); - } - }, { - key: "_isScrollModeHorizontal", - get: function get() { - return (0, _pdfjsLib.shadow)(this, '_isScrollModeHorizontal', false); - } - }]); + self.eventBus.dispatch("scalechanged", { + source: self, + value: this.value + }); + }); + scaleSelect.oncontextmenu = _ui_utils.noContextMenuHandler; - return PDFSinglePageViewer; -}(_base_viewer.BaseViewer); + this.eventBus._on("localized", () => { + this._wasLocalized = true; -exports.PDFSinglePageViewer = PDFSinglePageViewer; + this._adjustScaleWidth(); + + this._updateUIState(true); + }); + } + + _updateUIState(resetNumPages = false) { + if (!this._wasLocalized) { + return; + } + + const { + pageNumber, + pagesCount, + pageScaleValue, + pageScale, + items + } = this; + + if (resetNumPages) { + if (this.hasPageLabels) { + items.pageNumber.type = "text"; + } else { + items.pageNumber.type = "number"; + this.l10n.get("of_pages", { + pagesCount + }, "of {{pagesCount}}").then(msg => { + items.numPages.textContent = msg; + }); + } + + items.pageNumber.max = pagesCount; + } + + if (this.hasPageLabels) { + items.pageNumber.value = this.pageLabel; + this.l10n.get("page_of_pages", { + pageNumber, + pagesCount + }, "({{pageNumber}} of {{pagesCount}})").then(msg => { + items.numPages.textContent = msg; + }); + } else { + items.pageNumber.value = pageNumber; + } + + items.previous.disabled = pageNumber <= 1; + items.next.disabled = pageNumber >= pagesCount; + items.zoomOut.disabled = pageScale <= _ui_utils.MIN_SCALE; + items.zoomIn.disabled = pageScale >= _ui_utils.MAX_SCALE; + const customScale = Math.round(pageScale * 10000) / 100; + this.l10n.get("page_scale_percent", { + scale: customScale + }, "{{scale}}%").then(msg => { + let predefinedValueFound = false; + + for (const option of items.scaleSelect.options) { + if (option.value !== pageScaleValue) { + option.selected = false; + continue; + } + + option.selected = true; + predefinedValueFound = true; + } + + if (!predefinedValueFound) { + items.customScaleOption.textContent = msg; + items.customScaleOption.selected = true; + } + }); + } + + updateLoadingIndicatorState(loading = false) { + const pageNumberInput = this.items.pageNumber; + pageNumberInput.classList.toggle(PAGE_NUMBER_LOADING_INDICATOR, loading); + } + + async _adjustScaleWidth() { + const { + items, + l10n + } = this; + const predefinedValuesPromise = Promise.all([l10n.get("page_scale_auto", null, "Automatic Zoom"), l10n.get("page_scale_actual", null, "Actual Size"), l10n.get("page_scale_fit", null, "Page Fit"), l10n.get("page_scale_width", null, "Page Width")]); + let canvas = document.createElement("canvas"); + canvas.mozOpaque = true; + let ctx = canvas.getContext("2d", { + alpha: false + }); + await _ui_utils.animationStarted; + const { + fontSize, + fontFamily + } = getComputedStyle(items.scaleSelect); + ctx.font = `${fontSize} ${fontFamily}`; + let maxWidth = 0; + + for (const predefinedValue of await predefinedValuesPromise) { + const { + width + } = ctx.measureText(predefinedValue); + + if (width > maxWidth) { + maxWidth = width; + } + } + + const overflow = SCALE_SELECT_WIDTH - SCALE_SELECT_CONTAINER_WIDTH; + maxWidth += 2 * overflow; + + if (maxWidth > SCALE_SELECT_CONTAINER_WIDTH) { + items.scaleSelect.style.width = `${maxWidth + overflow}px`; + items.scaleSelectContainer.style.width = `${maxWidth}px`; + } + + canvas.width = 0; + canvas.height = 0; + canvas = ctx = null; + } + +} + +exports.Toolbar = Toolbar; /***/ }), /* 34 */ @@ -13215,262 +12355,91 @@ exports.PDFSinglePageViewer = PDFSinglePageViewer; Object.defineProperty(exports, "__esModule", { value: true }); -exports.Toolbar = void 0; +exports.ViewHistory = void 0; +const DEFAULT_VIEW_HISTORY_CACHE_SIZE = 20; -var _ui_utils = __webpack_require__(5); +class ViewHistory { + constructor(fingerprint, cacheSize = DEFAULT_VIEW_HISTORY_CACHE_SIZE) { + this.fingerprint = fingerprint; + this.cacheSize = cacheSize; + this._initializedPromise = this._readFromStorage().then(databaseStr => { + const database = JSON.parse(databaseStr || "{}"); + let index = -1; -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + if (!Array.isArray(database.files)) { + database.files = []; + } else { + while (database.files.length >= this.cacheSize) { + database.files.shift(); + } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + for (let i = 0, ii = database.files.length; i < ii; i++) { + const branch = database.files[i]; -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + if (branch.fingerprint === this.fingerprint) { + index = i; + break; + } + } + } -var PAGE_NUMBER_LOADING_INDICATOR = 'visiblePageIsLoading'; -var SCALE_SELECT_CONTAINER_PADDING = 8; -var SCALE_SELECT_PADDING = 22; + if (index === -1) { + index = database.files.push({ + fingerprint: this.fingerprint + }) - 1; + } -var Toolbar = -/*#__PURE__*/ -function () { - function Toolbar(options, eventBus) { - var l10n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _ui_utils.NullL10n; - - _classCallCheck(this, Toolbar); - - this.toolbar = options.container; - this.eventBus = eventBus; - this.l10n = l10n; - this.items = options; - this._wasLocalized = false; - this.reset(); - - this._bindListeners(); + this.file = database.files[index]; + this.database = database; + }); } - _createClass(Toolbar, [{ - key: "setPageNumber", - value: function setPageNumber(pageNumber, pageLabel) { - this.pageNumber = pageNumber; - this.pageLabel = pageLabel; + async _writeToStorage() { + const databaseStr = JSON.stringify(this.database); + localStorage.setItem("pdfjs.history", databaseStr); + } - this._updateUIState(false); + async _readFromStorage() { + return localStorage.getItem("pdfjs.history"); + } + + async set(name, val) { + await this._initializedPromise; + this.file[name] = val; + return this._writeToStorage(); + } + + async setMultiple(properties) { + await this._initializedPromise; + + for (const name in properties) { + this.file[name] = properties[name]; } - }, { - key: "setPagesCount", - value: function setPagesCount(pagesCount, hasPageLabels) { - this.pagesCount = pagesCount; - this.hasPageLabels = hasPageLabels; - this._updateUIState(true); + return this._writeToStorage(); + } + + async get(name, defaultValue) { + await this._initializedPromise; + const val = this.file[name]; + return val !== undefined ? val : defaultValue; + } + + async getMultiple(properties) { + await this._initializedPromise; + const values = Object.create(null); + + for (const name in properties) { + const val = this.file[name]; + values[name] = val !== undefined ? val : properties[name]; } - }, { - key: "setPageScale", - value: function setPageScale(pageScaleValue, pageScale) { - this.pageScaleValue = (pageScaleValue || pageScale).toString(); - this.pageScale = pageScale; - this._updateUIState(false); - } - }, { - key: "reset", - value: function reset() { - this.pageNumber = 0; - this.pageLabel = null; - this.hasPageLabels = false; - this.pagesCount = 0; - this.pageScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; - this.pageScale = _ui_utils.DEFAULT_SCALE; + return values; + } - this._updateUIState(true); - } - }, { - key: "_bindListeners", - value: function _bindListeners() { - var _this = this; +} - var eventBus = this.eventBus, - items = this.items; - var self = this; - items.previous.addEventListener('click', function () { - eventBus.dispatch('previouspage', { - source: self - }); - }); - items.next.addEventListener('click', function () { - eventBus.dispatch('nextpage', { - source: self - }); - }); - items.zoomIn.addEventListener('click', function () { - eventBus.dispatch('zoomin', { - source: self - }); - }); - items.zoomOut.addEventListener('click', function () { - eventBus.dispatch('zoomout', { - source: self - }); - }); - items.pageNumber.addEventListener('click', function () { - this.select(); - }); - items.pageNumber.addEventListener('change', function () { - eventBus.dispatch('pagenumberchanged', { - source: self, - value: this.value - }); - }); - items.scaleSelect.addEventListener('change', function () { - if (this.value === 'custom') { - return; - } - - eventBus.dispatch('scalechanged', { - source: self, - value: this.value - }); - }); - items.presentationModeButton.addEventListener('click', function () { - eventBus.dispatch('presentationmode', { - source: self - }); - }); - items.openFile.addEventListener('click', function () { - eventBus.dispatch('openfile', { - source: self - }); - }); - if (items.print) { - items.print.addEventListener('click', function () { - eventBus.dispatch('print', { - source: self - }); - }); - } - if (items.download) { - items.download.addEventListener('click', function () { - eventBus.dispatch('download', { - source: self - }); - }); - } - items.scaleSelect.oncontextmenu = _ui_utils.noContextMenuHandler; - eventBus.on('localized', function () { - _this._localized(); - }); - } - }, { - key: "_localized", - value: function _localized() { - this._wasLocalized = true; - - this._adjustScaleWidth(); - - this._updateUIState(true); - } - }, { - key: "_updateUIState", - value: function _updateUIState() { - var resetNumPages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - if (!this._wasLocalized) { - return; - } - - var pageNumber = this.pageNumber, - pagesCount = this.pagesCount, - pageScaleValue = this.pageScaleValue, - pageScale = this.pageScale, - items = this.items; - - if (resetNumPages) { - if (this.hasPageLabels) { - items.pageNumber.type = 'text'; - } else { - items.pageNumber.type = 'number'; - this.l10n.get('of_pages', { - pagesCount: pagesCount - }, 'of {{pagesCount}}').then(function (msg) { - items.numPages.textContent = msg; - }); - } - - items.pageNumber.max = pagesCount; - } - - if (this.hasPageLabels) { - items.pageNumber.value = this.pageLabel; - this.l10n.get('page_of_pages', { - pageNumber: pageNumber, - pagesCount: pagesCount - }, '({{pageNumber}} of {{pagesCount}})').then(function (msg) { - items.numPages.textContent = msg; - }); - } else { - items.pageNumber.value = pageNumber; - } - - items.previous.disabled = pageNumber <= 1; - items.next.disabled = pageNumber >= pagesCount; - items.zoomOut.disabled = pageScale <= _ui_utils.MIN_SCALE; - items.zoomIn.disabled = pageScale >= _ui_utils.MAX_SCALE; - var customScale = Math.round(pageScale * 10000) / 100; - this.l10n.get('page_scale_percent', { - scale: customScale - }, '{{scale}}%').then(function (msg) { - var options = items.scaleSelect.options; - var predefinedValueFound = false; - - for (var i = 0, ii = options.length; i < ii; i++) { - var option = options[i]; - - if (option.value !== pageScaleValue) { - option.selected = false; - continue; - } - - option.selected = true; - predefinedValueFound = true; - } - - if (!predefinedValueFound) { - items.customScaleOption.textContent = msg; - items.customScaleOption.selected = true; - } - }); - } - }, { - key: "updateLoadingIndicatorState", - value: function updateLoadingIndicatorState() { - var loading = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var pageNumberInput = this.items.pageNumber; - pageNumberInput.classList.toggle(PAGE_NUMBER_LOADING_INDICATOR, loading); - } - }, { - key: "_adjustScaleWidth", - value: function _adjustScaleWidth() { - var container = this.items.scaleSelectContainer; - var select = this.items.scaleSelect; - - _ui_utils.animationStarted.then(function () { - if (container.clientWidth === 0) { - container.setAttribute('style', 'display: inherit;'); - } - - if (container.clientWidth > 0) { - select.setAttribute('style', 'min-width: inherit;'); - var width = select.clientWidth + SCALE_SELECT_CONTAINER_PADDING; - select.setAttribute('style', 'min-width: ' + (width + SCALE_SELECT_PADDING) + 'px;'); - container.setAttribute('style', 'min-width: ' + width + 'px; ' + 'max-width: ' + width + 'px;'); - } - }); - } - }]); - - return Toolbar; -}(); - -exports.Toolbar = Toolbar; +exports.ViewHistory = ViewHistory; /***/ }), /* 35 */ @@ -13482,265 +12451,49 @@ exports.Toolbar = Toolbar; Object.defineProperty(exports, "__esModule", { value: true }); -exports.ViewHistory = void 0; +exports.GenericCom = void 0; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); +var _app = __webpack_require__(1); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _preferences = __webpack_require__(36); -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +var _download_manager = __webpack_require__(37); -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +var _genericl10n = __webpack_require__(38); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +; +const GenericCom = {}; +exports.GenericCom = GenericCom; -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var DEFAULT_VIEW_HISTORY_CACHE_SIZE = 20; - -var ViewHistory = -/*#__PURE__*/ -function () { - function ViewHistory(fingerprint) { - var _this = this; - - var cacheSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_VIEW_HISTORY_CACHE_SIZE; - - _classCallCheck(this, ViewHistory); - - this.fingerprint = fingerprint; - this.cacheSize = cacheSize; - this._initializedPromise = this._readFromStorage().then(function (databaseStr) { - var database = JSON.parse(databaseStr || '{}'); - - if (!('files' in database)) { - database.files = []; - } else { - while (database.files.length >= _this.cacheSize) { - database.files.shift(); - } - } - - var index = -1; - - for (var i = 0, length = database.files.length; i < length; i++) { - var branch = database.files[i]; - - if (branch.fingerprint === _this.fingerprint) { - index = i; - break; - } - } - - if (index === -1) { - index = database.files.push({ - fingerprint: _this.fingerprint - }) - 1; - } - - _this.file = database.files[index]; - _this.database = database; - }); +class GenericPreferences extends _preferences.BasePreferences { + async _writeToStorage(prefObj) { + localStorage.setItem("pdfjs.preferences", JSON.stringify(prefObj)); } - _createClass(ViewHistory, [{ - key: "_writeToStorage", - value: function () { - var _writeToStorage2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee() { - var databaseStr; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - databaseStr = JSON.stringify(this.database); - localStorage.setItem('pdfjs.history', databaseStr); + async _readFromStorage(prefObj) { + return JSON.parse(localStorage.getItem("pdfjs.preferences")); + } - case 2: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); +} - function _writeToStorage() { - return _writeToStorage2.apply(this, arguments); - } +class GenericExternalServices extends _app.DefaultExternalServices { + static createDownloadManager(options) { + return new _download_manager.DownloadManager(options); + } - return _writeToStorage; - }() - }, { - key: "_readFromStorage", - value: function () { - var _readFromStorage2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2() { - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", localStorage.getItem('pdfjs.history')); + static createPreferences() { + return new GenericPreferences(); + } - case 1: - case "end": - return _context2.stop(); - } - } - }, _callee2); - })); + static createL10n({ + locale = "en-US" + }) { + return new _genericl10n.GenericL10n(locale); + } - function _readFromStorage() { - return _readFromStorage2.apply(this, arguments); - } +} - return _readFromStorage; - }() - }, { - key: "set", - value: function () { - var _set = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee3(name, val) { - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - _context3.next = 2; - return this._initializedPromise; - - case 2: - this.file[name] = val; - return _context3.abrupt("return", this._writeToStorage()); - - case 4: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - - function set(_x, _x2) { - return _set.apply(this, arguments); - } - - return set; - }() - }, { - key: "setMultiple", - value: function () { - var _setMultiple = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee4(properties) { - var name; - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - _context4.next = 2; - return this._initializedPromise; - - case 2: - for (name in properties) { - this.file[name] = properties[name]; - } - - return _context4.abrupt("return", this._writeToStorage()); - - case 4: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - - function setMultiple(_x3) { - return _setMultiple.apply(this, arguments); - } - - return setMultiple; - }() - }, { - key: "get", - value: function () { - var _get = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee5(name, defaultValue) { - var val; - return _regenerator["default"].wrap(function _callee5$(_context5) { - while (1) { - switch (_context5.prev = _context5.next) { - case 0: - _context5.next = 2; - return this._initializedPromise; - - case 2: - val = this.file[name]; - return _context5.abrupt("return", val !== undefined ? val : defaultValue); - - case 4: - case "end": - return _context5.stop(); - } - } - }, _callee5, this); - })); - - function get(_x4, _x5) { - return _get.apply(this, arguments); - } - - return get; - }() - }, { - key: "getMultiple", - value: function () { - var _getMultiple = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee6(properties) { - var values, name, val; - return _regenerator["default"].wrap(function _callee6$(_context6) { - while (1) { - switch (_context6.prev = _context6.next) { - case 0: - _context6.next = 2; - return this._initializedPromise; - - case 2: - values = Object.create(null); - - for (name in properties) { - val = this.file[name]; - values[name] = val !== undefined ? val : properties[name]; - } - - return _context6.abrupt("return", values); - - case 5: - case "end": - return _context6.stop(); - } - } - }, _callee6, this); - })); - - function getMultiple(_x6) { - return _getMultiple.apply(this, arguments); - } - - return getMultiple; - }() - }]); - - return ViewHistory; -}(); - -exports.ViewHistory = ViewHistory; +_app.PDFViewerApplication.externalServices = GenericExternalServices; /***/ }), /* 36 */ @@ -13749,164 +12502,14 @@ exports.ViewHistory = ViewHistory; "use strict"; -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.GenericCom = void 0; - -var _regenerator = _interopRequireDefault(__webpack_require__(2)); - -var _app = __webpack_require__(1); - -var _preferences = __webpack_require__(37); - -var _download_manager = __webpack_require__(38); - -var _genericl10n = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -; -var GenericCom = {}; -exports.GenericCom = GenericCom; - -var GenericPreferences = -/*#__PURE__*/ -function (_BasePreferences) { - _inherits(GenericPreferences, _BasePreferences); - - function GenericPreferences() { - _classCallCheck(this, GenericPreferences); - - return _possibleConstructorReturn(this, _getPrototypeOf(GenericPreferences).apply(this, arguments)); - } - - _createClass(GenericPreferences, [{ - key: "_writeToStorage", - value: function () { - var _writeToStorage2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(prefObj) { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - localStorage.setItem('pdfjs.preferences', JSON.stringify(prefObj)); - - case 1: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - - function _writeToStorage(_x) { - return _writeToStorage2.apply(this, arguments); - } - - return _writeToStorage; - }() - }, { - key: "_readFromStorage", - value: function () { - var _readFromStorage2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2(prefObj) { - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", JSON.parse(localStorage.getItem('pdfjs.preferences'))); - - case 1: - case "end": - return _context2.stop(); - } - } - }, _callee2); - })); - - function _readFromStorage(_x2) { - return _readFromStorage2.apply(this, arguments); - } - - return _readFromStorage; - }() - }]); - - return GenericPreferences; -}(_preferences.BasePreferences); - -var GenericExternalServices = Object.create(_app.DefaultExternalServices); - -GenericExternalServices.createDownloadManager = function (options) { - return new _download_manager.DownloadManager(options); -}; - -GenericExternalServices.createPreferences = function () { - return new GenericPreferences(); -}; - -GenericExternalServices.createL10n = function (_ref) { - var _ref$locale = _ref.locale, - locale = _ref$locale === void 0 ? 'en-US' : _ref$locale; - return new _genericl10n.GenericL10n(locale); -}; - -_app.PDFViewerApplication.externalServices = GenericExternalServices; - -/***/ }), -/* 37 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - Object.defineProperty(exports, "__esModule", { value: true }); exports.BasePreferences = void 0; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); +var _app_options = __webpack_require__(3); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var defaultPreferences = null; +let defaultPreferences = null; function getDefaultPreferences() { if (!defaultPreferences) { @@ -13914,14 +12517,15 @@ function getDefaultPreferences() { "cursorToolOnLoad": 0, "defaultZoomValue": "", "disablePageLabels": false, + "enablePermissions": false, "enablePrintAutoRotate": false, "enableWebGL": false, - "eventBusDispatchToDOM": false, "externalLinkTarget": 0, "historyUpdateUrl": false, + "ignoreDestinationZoom": false, "pdfBugEnabled": false, "renderer": "canvas", - "renderInteractiveForms": false, + "renderInteractiveForms": true, "sidebarViewOnLoad": -1, "scrollModeOnLoad": -1, "spreadModeOnLoad": -1, @@ -13938,300 +12542,189 @@ function getDefaultPreferences() { return defaultPreferences; } -var BasePreferences = -/*#__PURE__*/ -function () { - function BasePreferences() { - var _this = this; - - _classCallCheck(this, BasePreferences); - +class BasePreferences { + constructor() { if (this.constructor === BasePreferences) { - throw new Error('Cannot initialize BasePreferences.'); + throw new Error("Cannot initialize BasePreferences."); } this.prefs = null; - this._initializedPromise = getDefaultPreferences().then(function (defaults) { - Object.defineProperty(_this, 'defaults', { + this._initializedPromise = getDefaultPreferences().then(defaults => { + Object.defineProperty(this, "defaults", { value: Object.freeze(defaults), writable: false, enumerable: true, configurable: false }); - _this.prefs = Object.assign(Object.create(null), defaults); - return _this._readFromStorage(defaults); - }).then(function (prefs) { + this.prefs = Object.assign(Object.create(null), defaults); + return this._readFromStorage(defaults); + }).then(prefs => { if (!prefs) { return; } - for (var name in prefs) { - var defaultValue = _this.defaults[name], - prefValue = prefs[name]; + for (const name in prefs) { + const defaultValue = this.defaults[name], + prefValue = prefs[name]; - if (defaultValue === undefined || _typeof(prefValue) !== _typeof(defaultValue)) { + if (defaultValue === undefined || typeof prefValue !== typeof defaultValue) { continue; } - _this.prefs[name] = prefValue; + this.prefs[name] = prefValue; } }); } - _createClass(BasePreferences, [{ - key: "_writeToStorage", - value: function () { - var _writeToStorage2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(prefObj) { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - throw new Error('Not implemented: _writeToStorage'); + async _writeToStorage(prefObj) { + throw new Error("Not implemented: _writeToStorage"); + } - case 1: - case "end": - return _context.stop(); - } - } - }, _callee); - })); + async _readFromStorage(prefObj) { + throw new Error("Not implemented: _readFromStorage"); + } - function _writeToStorage(_x) { - return _writeToStorage2.apply(this, arguments); + async reset() { + await this._initializedPromise; + this.prefs = Object.assign(Object.create(null), this.defaults); + return this._writeToStorage(this.defaults); + } + + async set(name, value) { + await this._initializedPromise; + const defaultValue = this.defaults[name]; + + if (defaultValue === undefined) { + throw new Error(`Set preference: "${name}" is undefined.`); + } else if (value === undefined) { + throw new Error("Set preference: no value is specified."); + } + + const valueType = typeof value; + const defaultType = typeof defaultValue; + + if (valueType !== defaultType) { + if (valueType === "number" && defaultType === "string") { + value = value.toString(); + } else { + throw new Error(`Set preference: "${value}" is a ${valueType}, ` + `expected a ${defaultType}.`); } - - return _writeToStorage; - }() - }, { - key: "_readFromStorage", - value: function () { - var _readFromStorage2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2(prefObj) { - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - throw new Error('Not implemented: _readFromStorage'); - - case 1: - case "end": - return _context2.stop(); - } - } - }, _callee2); - })); - - function _readFromStorage(_x2) { - return _readFromStorage2.apply(this, arguments); + } else { + if (valueType === "number" && !Number.isInteger(value)) { + throw new Error(`Set preference: "${value}" must be an integer.`); } + } - return _readFromStorage; - }() - }, { - key: "reset", - value: function () { - var _reset = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee3() { - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - _context3.next = 2; - return this._initializedPromise; + this.prefs[name] = value; + return this._writeToStorage(this.prefs); + } - case 2: - this.prefs = Object.assign(Object.create(null), this.defaults); - return _context3.abrupt("return", this._writeToStorage(this.defaults)); + async get(name) { + await this._initializedPromise; + const defaultValue = this.defaults[name]; - case 4: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); + if (defaultValue === undefined) { + throw new Error(`Get preference: "${name}" is undefined.`); + } else { + const prefValue = this.prefs[name]; - function reset() { - return _reset.apply(this, arguments); + if (prefValue !== undefined) { + return prefValue; } + } - return reset; - }() - }, { - key: "set", - value: function () { - var _set = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee4(name, value) { - var defaultValue, valueType, defaultType; - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - _context4.next = 2; - return this._initializedPromise; + return defaultValue; + } - case 2: - defaultValue = this.defaults[name]; + async getAll() { + await this._initializedPromise; + return Object.assign(Object.create(null), this.defaults, this.prefs); + } - if (!(defaultValue === undefined)) { - _context4.next = 7; - break; - } - - throw new Error("Set preference: \"".concat(name, "\" is undefined.")); - - case 7: - if (!(value === undefined)) { - _context4.next = 9; - break; - } - - throw new Error('Set preference: no value is specified.'); - - case 9: - valueType = _typeof(value); - defaultType = _typeof(defaultValue); - - if (!(valueType !== defaultType)) { - _context4.next = 19; - break; - } - - if (!(valueType === 'number' && defaultType === 'string')) { - _context4.next = 16; - break; - } - - value = value.toString(); - _context4.next = 17; - break; - - case 16: - throw new Error("Set preference: \"".concat(value, "\" is a ").concat(valueType, ", ") + "expected a ".concat(defaultType, ".")); - - case 17: - _context4.next = 21; - break; - - case 19: - if (!(valueType === 'number' && !Number.isInteger(value))) { - _context4.next = 21; - break; - } - - throw new Error("Set preference: \"".concat(value, "\" must be an integer.")); - - case 21: - this.prefs[name] = value; - return _context4.abrupt("return", this._writeToStorage(this.prefs)); - - case 23: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - - function set(_x3, _x4) { - return _set.apply(this, arguments); - } - - return set; - }() - }, { - key: "get", - value: function () { - var _get = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee5(name) { - var defaultValue, prefValue; - return _regenerator["default"].wrap(function _callee5$(_context5) { - while (1) { - switch (_context5.prev = _context5.next) { - case 0: - _context5.next = 2; - return this._initializedPromise; - - case 2: - defaultValue = this.defaults[name]; - - if (!(defaultValue === undefined)) { - _context5.next = 7; - break; - } - - throw new Error("Get preference: \"".concat(name, "\" is undefined.")); - - case 7: - prefValue = this.prefs[name]; - - if (!(prefValue !== undefined)) { - _context5.next = 10; - break; - } - - return _context5.abrupt("return", prefValue); - - case 10: - return _context5.abrupt("return", defaultValue); - - case 11: - case "end": - return _context5.stop(); - } - } - }, _callee5, this); - })); - - function get(_x5) { - return _get.apply(this, arguments); - } - - return get; - }() - }, { - key: "getAll", - value: function () { - var _getAll = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee6() { - return _regenerator["default"].wrap(function _callee6$(_context6) { - while (1) { - switch (_context6.prev = _context6.next) { - case 0: - _context6.next = 2; - return this._initializedPromise; - - case 2: - return _context6.abrupt("return", Object.assign(Object.create(null), this.defaults, this.prefs)); - - case 3: - case "end": - return _context6.stop(); - } - } - }, _callee6, this); - })); - - function getAll() { - return _getAll.apply(this, arguments); - } - - return getAll; - }() - }]); - - return BasePreferences; -}(); +} exports.BasePreferences = BasePreferences; +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.DownloadManager = void 0; + +var _pdfjsLib = __webpack_require__(5); + +var _viewer_compatibility = __webpack_require__(4); + +; + +function download(blobUrl, filename) { + const a = document.createElement("a"); + + if (!a.click) { + throw new Error('DownloadManager: "a.click()" is not supported.'); + } + + a.href = blobUrl; + a.target = "_parent"; + + if ("download" in a) { + a.download = filename; + } + + (document.body || document.documentElement).appendChild(a); + a.click(); + a.remove(); +} + +class DownloadManager { + downloadUrl(url, filename) { + if (!(0, _pdfjsLib.createValidAbsoluteUrl)(url, "http://example.com")) { + return; + } + + download(url + "#pdfjs.action=download", filename); + } + + downloadData(data, filename, contentType) { + if (navigator.msSaveBlob) { + navigator.msSaveBlob(new Blob([data], { + type: contentType + }), filename); + return; + } + + const blobUrl = (0, _pdfjsLib.createObjectURL)(data, contentType, _viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL); + download(blobUrl, filename); + } + + download(blob, url, filename, sourceEventType = "download") { + if (navigator.msSaveBlob) { + if (!navigator.msSaveBlob(blob, filename)) { + this.downloadUrl(url, filename); + } + + return; + } + + if (_viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL) { + this.downloadUrl(url, filename); + return; + } + + const blobUrl = URL.createObjectURL(blob); + download(blobUrl, filename); + } + +} + +exports.DownloadManager = DownloadManager; + /***/ }), /* 38 */ /***/ (function(module, exports, __webpack_require__) { @@ -14239,284 +12732,51 @@ exports.BasePreferences = BasePreferences; "use strict"; -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.DownloadManager = void 0; - -var _pdfjsLib = __webpack_require__(7); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -; -var DISABLE_CREATE_OBJECT_URL = _pdfjsLib.apiCompatibilityParams.disableCreateObjectURL || false; - -function _download(blobUrl, filename) { - var a = document.createElement('a'); - - if (!a.click) { - throw new Error('DownloadManager: "a.click()" is not supported.'); - } - - a.href = blobUrl; - a.target = '_parent'; - - if ('download' in a) { - a.download = filename; - } - - (document.body || document.documentElement).appendChild(a); - a.click(); - a.remove(); -} - -var DownloadManager = -/*#__PURE__*/ -function () { - function DownloadManager(_ref) { - var _ref$disableCreateObj = _ref.disableCreateObjectURL, - disableCreateObjectURL = _ref$disableCreateObj === void 0 ? DISABLE_CREATE_OBJECT_URL : _ref$disableCreateObj; - - _classCallCheck(this, DownloadManager); - - this.disableCreateObjectURL = disableCreateObjectURL; - } - - _createClass(DownloadManager, [{ - key: "downloadUrl", - value: function downloadUrl(url, filename) { - if (!(0, _pdfjsLib.createValidAbsoluteUrl)(url, 'http://example.com')) { - return; - } - - _download(url + '#pdfjs.action=download', filename); - } - }, { - key: "downloadData", - value: function downloadData(data, filename, contentType) { - if (navigator.msSaveBlob) { - navigator.msSaveBlob(new Blob([data], { - type: contentType - }), filename); - return; - } - - var blobUrl = (0, _pdfjsLib.createObjectURL)(data, contentType, this.disableCreateObjectURL); - - _download(blobUrl, filename); - } - }, { - key: "download", - value: function download(blob, url, filename) { - if (navigator.msSaveBlob) { - if (!navigator.msSaveBlob(blob, filename)) { - this.downloadUrl(url, filename); - } - - return; - } - - if (this.disableCreateObjectURL) { - this.downloadUrl(url, filename); - return; - } - - var blobUrl = _pdfjsLib.URL.createObjectURL(blob); - - _download(blobUrl, filename); - } - }]); - - return DownloadManager; -}(); - -exports.DownloadManager = DownloadManager; - -/***/ }), -/* 39 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - Object.defineProperty(exports, "__esModule", { value: true }); exports.GenericL10n = void 0; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); +__webpack_require__(39); -__webpack_require__(40); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var webL10n = document.webL10n; - -var GenericL10n = -/*#__PURE__*/ -function () { - function GenericL10n(lang) { - _classCallCheck(this, GenericL10n); +const webL10n = document.webL10n; +class GenericL10n { + constructor(lang) { this._lang = lang; - this._ready = new Promise(function (resolve, reject) { - webL10n.setLanguage(lang, function () { + this._ready = new Promise((resolve, reject) => { + webL10n.setLanguage(lang, () => { resolve(webL10n); }); }); } - _createClass(GenericL10n, [{ - key: "getLanguage", - value: function () { - var _getLanguage = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee() { - var l10n; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return this._ready; + async getLanguage() { + const l10n = await this._ready; + return l10n.getLanguage(); + } - case 2: - l10n = _context.sent; - return _context.abrupt("return", l10n.getLanguage()); + async getDirection() { + const l10n = await this._ready; + return l10n.getDirection(); + } - case 4: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); + async get(property, args, fallback) { + const l10n = await this._ready; + return l10n.get(property, args, fallback); + } - function getLanguage() { - return _getLanguage.apply(this, arguments); - } + async translate(element) { + const l10n = await this._ready; + return l10n.translate(element); + } - return getLanguage; - }() - }, { - key: "getDirection", - value: function () { - var _getDirection = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2() { - var l10n; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _context2.next = 2; - return this._ready; - - case 2: - l10n = _context2.sent; - return _context2.abrupt("return", l10n.getDirection()); - - case 4: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function getDirection() { - return _getDirection.apply(this, arguments); - } - - return getDirection; - }() - }, { - key: "get", - value: function () { - var _get = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee3(property, args, fallback) { - var l10n; - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - _context3.next = 2; - return this._ready; - - case 2: - l10n = _context3.sent; - return _context3.abrupt("return", l10n.get(property, args, fallback)); - - case 4: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - - function get(_x, _x2, _x3) { - return _get.apply(this, arguments); - } - - return get; - }() - }, { - key: "translate", - value: function () { - var _translate = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee4(element) { - var l10n; - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - _context4.next = 2; - return this._ready; - - case 2: - l10n = _context4.sent; - return _context4.abrupt("return", l10n.translate(element)); - - case 4: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - - function translate(_x4) { - return _translate.apply(this, arguments); - } - - return translate; - }() - }]); - - return GenericL10n; -}(); +} exports.GenericL10n = GenericL10n; /***/ }), -/* 40 */ +/* 39 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14564,13 +12824,6 @@ document.webL10n = function (window, document, undefined) { }; } - function fireL10nReadyEvent(lang) { - var evtObject = document.createEvent('Event'); - evtObject.initEvent('localized', true, false); - evtObject.language = lang; - document.dispatchEvent(evtObject); - } - function xhrLoadText(url, onSuccess, onFailure) { onSuccess = onSuccess || function _onSuccess(data) {}; @@ -14749,7 +13002,6 @@ document.webL10n = function (window, document, undefined) { console.log('no resource to load, early way out'); } - fireL10nReadyEvent(lang); gReadyState = 'complete'; return; } @@ -14757,12 +13009,11 @@ document.webL10n = function (window, document, undefined) { var onResourceLoaded = null; var gResourceCount = 0; - onResourceLoaded = function onResourceLoaded() { + onResourceLoaded = function () { gResourceCount++; if (gResourceCount >= langCount) { callback(); - fireL10nReadyEvent(lang); gReadyState = 'complete'; } }; @@ -14975,10 +13226,10 @@ document.webL10n = function (window, document, undefined) { } var pluralRules = { - '0': function _(n) { + '0': function (n) { return 'other'; }, - '1': function _(n) { + '1': function (n) { if (isBetween(n % 100, 3, 10)) return 'few'; if (n === 0) return 'zero'; if (isBetween(n % 100, 11, 99)) return 'many'; @@ -14986,85 +13237,85 @@ document.webL10n = function (window, document, undefined) { if (n == 1) return 'one'; return 'other'; }, - '2': function _(n) { + '2': function (n) { if (n !== 0 && n % 10 === 0) return 'many'; if (n == 2) return 'two'; if (n == 1) return 'one'; return 'other'; }, - '3': function _(n) { + '3': function (n) { if (n == 1) return 'one'; return 'other'; }, - '4': function _(n) { + '4': function (n) { if (isBetween(n, 0, 1)) return 'one'; return 'other'; }, - '5': function _(n) { + '5': function (n) { if (isBetween(n, 0, 2) && n != 2) return 'one'; return 'other'; }, - '6': function _(n) { + '6': function (n) { if (n === 0) return 'zero'; if (n % 10 == 1 && n % 100 != 11) return 'one'; return 'other'; }, - '7': function _(n) { + '7': function (n) { if (n == 2) return 'two'; if (n == 1) return 'one'; return 'other'; }, - '8': function _(n) { + '8': function (n) { if (isBetween(n, 3, 6)) return 'few'; if (isBetween(n, 7, 10)) return 'many'; if (n == 2) return 'two'; if (n == 1) return 'one'; return 'other'; }, - '9': function _(n) { + '9': function (n) { if (n === 0 || n != 1 && isBetween(n % 100, 1, 19)) return 'few'; if (n == 1) return 'one'; return 'other'; }, - '10': function _(n) { + '10': function (n) { if (isBetween(n % 10, 2, 9) && !isBetween(n % 100, 11, 19)) return 'few'; if (n % 10 == 1 && !isBetween(n % 100, 11, 19)) return 'one'; return 'other'; }, - '11': function _(n) { + '11': function (n) { if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few'; if (n % 10 === 0 || isBetween(n % 10, 5, 9) || isBetween(n % 100, 11, 14)) return 'many'; if (n % 10 == 1 && n % 100 != 11) return 'one'; return 'other'; }, - '12': function _(n) { + '12': function (n) { if (isBetween(n, 2, 4)) return 'few'; if (n == 1) return 'one'; return 'other'; }, - '13': function _(n) { + '13': function (n) { if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few'; if (n != 1 && isBetween(n % 10, 0, 1) || isBetween(n % 10, 5, 9) || isBetween(n % 100, 12, 14)) return 'many'; if (n == 1) return 'one'; return 'other'; }, - '14': function _(n) { + '14': function (n) { if (isBetween(n % 100, 3, 4)) return 'few'; if (n % 100 == 2) return 'two'; if (n % 100 == 1) return 'one'; return 'other'; }, - '15': function _(n) { + '15': function (n) { if (n === 0 || isBetween(n % 100, 2, 10)) return 'few'; if (isBetween(n % 100, 11, 19)) return 'many'; if (n == 1) return 'one'; return 'other'; }, - '16': function _(n) { + '16': function (n) { if (n % 10 == 1 && n != 11) return 'one'; return 'other'; }, - '17': function _(n) { + '17': function (n) { if (n == 3) return 'few'; if (n === 0) return 'zero'; if (n == 6) return 'many'; @@ -15072,37 +13323,37 @@ document.webL10n = function (window, document, undefined) { if (n == 1) return 'one'; return 'other'; }, - '18': function _(n) { + '18': function (n) { if (n === 0) return 'zero'; if (isBetween(n, 0, 2) && n !== 0 && n != 2) return 'one'; return 'other'; }, - '19': function _(n) { + '19': function (n) { if (isBetween(n, 2, 10)) return 'few'; if (isBetween(n, 0, 1)) return 'one'; return 'other'; }, - '20': function _(n) { + '20': function (n) { if ((isBetween(n % 10, 3, 4) || n % 10 == 9) && !(isBetween(n % 100, 10, 19) || isBetween(n % 100, 70, 79) || isBetween(n % 100, 90, 99))) return 'few'; if (n % 1000000 === 0 && n !== 0) return 'many'; if (n % 10 == 2 && !isIn(n % 100, [12, 72, 92])) return 'two'; if (n % 10 == 1 && !isIn(n % 100, [11, 71, 91])) return 'one'; return 'other'; }, - '21': function _(n) { + '21': function (n) { if (n === 0) return 'zero'; if (n == 1) return 'one'; return 'other'; }, - '22': function _(n) { + '22': function (n) { if (isBetween(n, 0, 1) || isBetween(n, 11, 99)) return 'one'; return 'other'; }, - '23': function _(n) { + '23': function (n) { if (isBetween(n % 10, 1, 2) || n % 20 === 0) return 'one'; return 'other'; }, - '24': function _(n) { + '24': function (n) { if (isBetween(n, 3, 10) || isBetween(n, 13, 19)) return 'few'; if (isIn(n, [2, 12])) return 'two'; if (isIn(n, [1, 11])) return 'one'; @@ -15283,7 +13534,7 @@ document.webL10n = function (window, document, undefined) { } return { - get: function get(key, args, fallbackString) { + get: function (key, args, fallbackString) { var index = key.lastIndexOf('.'); var prop = gTextProp; @@ -15307,30 +13558,30 @@ document.webL10n = function (window, document, undefined) { return '{{' + key + '}}'; }, - getData: function getData() { + getData: function () { return gL10nData; }, - getText: function getText() { + getText: function () { return gTextData; }, - getLanguage: function getLanguage() { + getLanguage: function () { return gLanguage; }, - setLanguage: function setLanguage(lang, callback) { + setLanguage: function (lang, callback) { loadLocale(lang, function () { if (callback) callback(); }); }, - getDirection: function getDirection() { + getDirection: function () { var rtlList = ['ar', 'he', 'fa', 'ps', 'ur']; var shortCode = gLanguage.split('-', 1)[0]; return rtlList.indexOf(shortCode) >= 0 ? 'rtl' : 'ltr'; }, translate: translateFragment, - getReadyState: function getReadyState() { + getReadyState: function () { return gReadyState; }, - ready: function ready(callback) { + ready: function (callback) { if (!callback) { return; } else if (gReadyState == 'complete' || gReadyState == 'interactive') { @@ -15348,7 +13599,7 @@ document.webL10n = function (window, document, undefined) { }(window, document); /***/ }), -/* 41 */ +/* 40 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15359,83 +13610,86 @@ Object.defineProperty(exports, "__esModule", { }); exports.PDFPrintService = PDFPrintService; -var _ui_utils = __webpack_require__(5); +var _ui_utils = __webpack_require__(2); var _app = __webpack_require__(1); -var _app_options = __webpack_require__(6); +var _viewer_compatibility = __webpack_require__(4); -var _pdfjsLib = __webpack_require__(7); +let activeService = null; +let overlayManager = null; -var activeService = null; -var overlayManager = null; - -function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size) { - var scratchCanvas = activeService.scratchCanvas; - var PRINT_RESOLUTION = _app_options.AppOptions.get('printResolution') || 150; - var PRINT_UNITS = PRINT_RESOLUTION / 72.0; +function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size, printResolution, optionalContentConfigPromise) { + const scratchCanvas = activeService.scratchCanvas; + const PRINT_UNITS = printResolution / 72.0; scratchCanvas.width = Math.floor(size.width * PRINT_UNITS); scratchCanvas.height = Math.floor(size.height * PRINT_UNITS); - var width = Math.floor(size.width * _ui_utils.CSS_UNITS) + 'px'; - var height = Math.floor(size.height * _ui_utils.CSS_UNITS) + 'px'; - var ctx = scratchCanvas.getContext('2d'); + const width = Math.floor(size.width * _ui_utils.CSS_UNITS) + "px"; + const height = Math.floor(size.height * _ui_utils.CSS_UNITS) + "px"; + const ctx = scratchCanvas.getContext("2d"); ctx.save(); - ctx.fillStyle = 'rgb(255, 255, 255)'; + ctx.fillStyle = "rgb(255, 255, 255)"; ctx.fillRect(0, 0, scratchCanvas.width, scratchCanvas.height); ctx.restore(); return pdfDocument.getPage(pageNumber).then(function (pdfPage) { - var renderContext = { + const renderContext = { canvasContext: ctx, transform: [PRINT_UNITS, 0, 0, PRINT_UNITS, 0, 0], viewport: pdfPage.getViewport({ scale: 1, rotation: size.rotation }), - intent: 'print' + intent: "print", + annotationStorage: pdfDocument.annotationStorage, + optionalContentConfigPromise }; return pdfPage.render(renderContext).promise; }).then(function () { return { - width: width, - height: height + width, + height }; }); } -function PDFPrintService(pdfDocument, pagesOverview, printContainer, l10n) { +function PDFPrintService(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise = null, l10n) { this.pdfDocument = pdfDocument; this.pagesOverview = pagesOverview; this.printContainer = printContainer; + this._printResolution = printResolution || 150; + this._optionalContentConfigPromise = optionalContentConfigPromise || pdfDocument.getOptionalContentConfig(); this.l10n = l10n || _ui_utils.NullL10n; - this.disableCreateObjectURL = pdfDocument.loadingParams['disableCreateObjectURL']; this.currentPage = -1; - this.scratchCanvas = document.createElement('canvas'); + this.scratchCanvas = document.createElement("canvas"); } PDFPrintService.prototype = { - layout: function layout() { + layout() { this.throwIfInactive(); - var body = document.querySelector('body'); - body.setAttribute('data-pdfjsprinting', true); - var hasEqualPageSizes = this.pagesOverview.every(function (size) { + const body = document.querySelector("body"); + body.setAttribute("data-pdfjsprinting", true); + const hasEqualPageSizes = this.pagesOverview.every(function (size) { return size.width === this.pagesOverview[0].width && size.height === this.pagesOverview[0].height; }, this); if (!hasEqualPageSizes) { - console.warn('Not all pages have the same size. The printed ' + 'result may be incorrect!'); + console.warn("Not all pages have the same size. The printed " + "result may be incorrect!"); } - this.pageStyleSheet = document.createElement('style'); - var pageSize = this.pagesOverview[0]; - this.pageStyleSheet.textContent = '@supports ((size:A4) and (size:1pt 1pt)) {' + '@page { size: ' + pageSize.width + 'pt ' + pageSize.height + 'pt;}' + '}'; + this.pageStyleSheet = document.createElement("style"); + const pageSize = this.pagesOverview[0]; + this.pageStyleSheet.textContent = "@supports ((size:A4) and (size:1pt 1pt)) {" + "@page { size: " + pageSize.width + "pt " + pageSize.height + "pt;}" + "}"; body.appendChild(this.pageStyleSheet); }, - destroy: function destroy() { + + destroy() { if (activeService !== this) { return; } - this.printContainer.textContent = ''; + this.printContainer.textContent = ""; + const body = document.querySelector("body"); + body.removeAttribute("data-pdfjsprinting"); if (this.pageStyleSheet) { this.pageStyleSheet.remove(); @@ -15446,52 +13700,52 @@ PDFPrintService.prototype = { this.scratchCanvas = null; activeService = null; ensureOverlay().then(function () { - if (overlayManager.active !== 'printServiceOverlay') { + if (overlayManager.active !== "printServiceOverlay") { return; } - overlayManager.close('printServiceOverlay'); + overlayManager.close("printServiceOverlay"); }); }, - renderPages: function renderPages() { - var _this = this; - var pageCount = this.pagesOverview.length; + renderPages() { + const pageCount = this.pagesOverview.length; - var renderNextPage = function renderNextPage(resolve, reject) { - _this.throwIfInactive(); + const renderNextPage = (resolve, reject) => { + this.throwIfInactive(); - if (++_this.currentPage >= pageCount) { - renderProgress(pageCount, pageCount, _this.l10n); + if (++this.currentPage >= pageCount) { + renderProgress(pageCount, pageCount, this.l10n); resolve(); return; } - var index = _this.currentPage; - renderProgress(index, pageCount, _this.l10n); - renderPage(_this, _this.pdfDocument, index + 1, _this.pagesOverview[index]).then(_this.useRenderedPage.bind(_this)).then(function () { + const index = this.currentPage; + renderProgress(index, pageCount, this.l10n); + renderPage(this, this.pdfDocument, index + 1, this.pagesOverview[index], this._printResolution, this._optionalContentConfigPromise).then(this.useRenderedPage.bind(this)).then(function () { renderNextPage(resolve, reject); }, reject); }; return new Promise(renderNextPage); }, - useRenderedPage: function useRenderedPage(printItem) { + + useRenderedPage(printItem) { this.throwIfInactive(); - var img = document.createElement('img'); + const img = document.createElement("img"); img.style.width = printItem.width; img.style.height = printItem.height; - var scratchCanvas = this.scratchCanvas; + const scratchCanvas = this.scratchCanvas; - if ('toBlob' in scratchCanvas && !this.disableCreateObjectURL) { + if ("toBlob" in scratchCanvas && !_viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL) { scratchCanvas.toBlob(function (blob) { - img.src = _pdfjsLib.URL.createObjectURL(blob); + img.src = URL.createObjectURL(blob); }); } else { img.src = scratchCanvas.toDataURL(); } - var wrapper = document.createElement('div'); + const wrapper = document.createElement("div"); wrapper.appendChild(img); this.printContainer.appendChild(wrapper); return new Promise(function (resolve, reject) { @@ -15499,13 +13753,12 @@ PDFPrintService.prototype = { img.onerror = reject; }); }, - performPrint: function performPrint() { - var _this2 = this; + performPrint() { this.throwIfInactive(); - return new Promise(function (resolve) { - setTimeout(function () { - if (!_this2.active) { + return new Promise(resolve => { + setTimeout(() => { + if (!this.active) { resolve(); return; } @@ -15520,43 +13773,44 @@ PDFPrintService.prototype = { return this === activeService; }, - throwIfInactive: function throwIfInactive() { + throwIfInactive() { if (!this.active) { - throw new Error('This print request was cancelled or completed.'); + throw new Error("This print request was cancelled or completed."); } } -}; -var print = window.print; -window.print = function print() { +}; +const print = window.print; + +window.print = function () { if (activeService) { - console.warn('Ignored window.print() because of a pending print job.'); + console.warn("Ignored window.print() because of a pending print job."); return; } ensureOverlay().then(function () { if (activeService) { - overlayManager.open('printServiceOverlay'); + overlayManager.open("printServiceOverlay"); } }); try { - dispatchEvent('beforeprint'); + dispatchEvent("beforeprint"); } finally { if (!activeService) { - console.error('Expected print service to be initialized.'); + console.error("Expected print service to be initialized."); ensureOverlay().then(function () { - if (overlayManager.active === 'printServiceOverlay') { - overlayManager.close('printServiceOverlay'); + if (overlayManager.active === "printServiceOverlay") { + overlayManager.close("printServiceOverlay"); } }); return; } - var activeServiceOnEntry = activeService; + const activeServiceOnEntry = activeService; activeService.renderPages().then(function () { return activeServiceOnEntry.performPrint(); - })["catch"](function () {}).then(function () { + }).catch(function () {}).then(function () { if (activeServiceOnEntry.active) { abort(); } @@ -15565,40 +13819,34 @@ window.print = function print() { }; function dispatchEvent(eventType) { - var event = document.createEvent('CustomEvent'); - event.initCustomEvent(eventType, false, false, 'custom'); + const event = document.createEvent("CustomEvent"); + event.initCustomEvent(eventType, false, false, "custom"); window.dispatchEvent(event); } function abort() { if (activeService) { activeService.destroy(); - dispatchEvent('afterprint'); + dispatchEvent("afterprint"); } } function renderProgress(index, total, l10n) { - var progressContainer = document.getElementById('printServiceOverlay'); - var progress = Math.round(100 * index / total); - var progressBar = progressContainer.querySelector('progress'); - var progressPerc = progressContainer.querySelector('.relative-progress'); + const progressContainer = document.getElementById("printServiceOverlay"); + const progress = Math.round(100 * index / total); + const progressBar = progressContainer.querySelector("progress"); + const progressPerc = progressContainer.querySelector(".relative-progress"); progressBar.value = progress; - l10n.get('print_progress_percent', { - progress: progress - }, progress + '%').then(function (msg) { + l10n.get("print_progress_percent", { + progress + }, progress + "%").then(msg => { progressPerc.textContent = msg; }); } -var hasAttachEvent = !!document.attachEvent; -window.addEventListener('keydown', function (event) { +window.addEventListener("keydown", function (event) { if (event.keyCode === 80 && (event.ctrlKey || event.metaKey) && !event.altKey && (!event.shiftKey || window.chrome || window.opera)) { window.print(); - - if (hasAttachEvent) { - return; - } - event.preventDefault(); if (event.stopImmediatePropagation) { @@ -15606,45 +13854,32 @@ window.addEventListener('keydown', function (event) { } else { event.stopPropagation(); } - - return; } }, true); -if (hasAttachEvent) { - document.attachEvent('onkeydown', function (event) { - event = event || window.event; - - if (event.keyCode === 80 && event.ctrlKey) { - event.keyCode = 0; - return false; - } - }); -} - -if ('onbeforeprint' in window) { - var stopPropagationIfNeeded = function stopPropagationIfNeeded(event) { - if (event.detail !== 'custom' && event.stopImmediatePropagation) { +if ("onbeforeprint" in window) { + const stopPropagationIfNeeded = function (event) { + if (event.detail !== "custom" && event.stopImmediatePropagation) { event.stopImmediatePropagation(); } }; - window.addEventListener('beforeprint', stopPropagationIfNeeded); - window.addEventListener('afterprint', stopPropagationIfNeeded); + window.addEventListener("beforeprint", stopPropagationIfNeeded); + window.addEventListener("afterprint", stopPropagationIfNeeded); } -var overlayPromise; +let overlayPromise; function ensureOverlay() { if (!overlayPromise) { overlayManager = _app.PDFViewerApplication.overlayManager; if (!overlayManager) { - throw new Error('The overlay manager has not yet been initialized.'); + throw new Error("The overlay manager has not yet been initialized."); } - overlayPromise = overlayManager.register('printServiceOverlay', document.getElementById('printServiceOverlay'), abort, true); - document.getElementById('printCancel').onclick = abort; + overlayPromise = overlayManager.register("printServiceOverlay", document.getElementById("printServiceOverlay"), abort, true); + document.getElementById("printCancel").onclick = abort; } return overlayPromise; @@ -15652,14 +13887,16 @@ function ensureOverlay() { _app.PDFPrintServiceFactory.instance = { supportsPrinting: true, - createPrintService: function createPrintService(pdfDocument, pagesOverview, printContainer, l10n) { + + createPrintService(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, l10n) { if (activeService) { - throw new Error('The print service is created and active.'); + throw new Error("The print service is created and active."); } - activeService = new PDFPrintService(pdfDocument, pagesOverview, printContainer, l10n); + activeService = new PDFPrintService(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, l10n); return activeService; } + }; /***/ }) diff --git a/cps/static/locale/ach/viewer.properties b/cps/static/locale/ach/viewer.properties index 57c6a912..46e36fb7 100644 --- a/cps/static/locale/ach/viewer.properties +++ b/cps/static/locale/ach/viewer.properties @@ -204,4 +204,3 @@ password_cancel=Juki printing_not_supported=Ciko: Layeny ma pe teno goyo liweng. printing_not_ready=Ciko: PDF pe ocane weng me agoya. web_fonts_disabled=Kijuko dit pa coc me kakube woko: pe romo tic ki dit pa coc me PDF ma kiketo i kine. -document_colors_not_allowed=Pe ki yee ki gin acoya me PDF me tic ki rangi gi kengi: Kijuko woko “Yee pot buk me yero rangi mamegi kengi” ki i layeny. diff --git a/cps/static/locale/af/viewer.properties b/cps/static/locale/af/viewer.properties index 8cf08808..c7d6c42b 100644 --- a/cps/static/locale/af/viewer.properties +++ b/cps/static/locale/af/viewer.properties @@ -181,4 +181,3 @@ password_cancel=Kanselleer printing_not_supported=Waarskuwing: Dié blaaier ondersteun nie drukwerk ten volle nie. printing_not_ready=Waarskuwing: Die PDF is nog nie volledig gelaai vir drukwerk nie. web_fonts_disabled=Webfonte is gedeaktiveer: kan nie PDF-fonte wat ingebed is, gebruik nie. -document_colors_not_allowed=PDF-dokumente word nie toegelaat om hul eie kleure te gebruik nie: “Laat bladsye toe om hul eie kleure te kies” is gedeaktiveer in die blaaier. diff --git a/cps/static/locale/ak/viewer.properties b/cps/static/locale/ak/viewer.properties deleted file mode 100644 index 25dc62e3..00000000 --- a/cps/static/locale/ak/viewer.properties +++ /dev/null @@ -1,130 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) -previous.title=Krataafa baako a etwa mu -previous_label=Ekyiri-baako -next.title=Krataafa a edi so baako -next_label=Dea-ɛ-di-so-baako - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. - -zoom_out.title=Zuum pue -zoom_out_label=Zuum ba abɔnten -zoom_in.title=Zuum kɔ mu -zoom_in_label=Zuum kɔ mu -zoom.title=Zuum -presentation_mode.title=Sesa kɔ Yɛkyerɛ Tebea mu -presentation_mode_label=Yɛkyerɛ Tebea -open_file.title=Bue Fael -open_file_label=Bue -print.title=Prente -print_label=Prente -download.title=Twe -download_label=Twe -bookmark.title=Seisei nhwɛ (fa anaaso bue wɔ tokuro foforo mu) -bookmark_label=Seisei nhwɛ - -# Secondary toolbar and context menu - - -# Document properties dialog box -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_title=Ti asɛm: -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. - -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) -toggle_sidebar.title=Sɔ anaaso dum saedbaa -toggle_sidebar_label=Sɔ anaaso dum saedbaa -document_outline_label=Dɔkomɛnt bɔbea -thumbs.title=Kyerɛ mfoniwaa -thumbs_label=Mfoniwaa -findbar.title=Hu wɔ dɔkomɛnt no mu - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -thumb_page_title=Krataafa {{page}} -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. -thumb_page_canvas=Krataafa ne mfoniwaa {{page}} - -# Find panel button title and messages -find_previous.title=San hu fres wɔ ekyiri baako -find_previous_label=Ekyiri baako -find_next.title=San hu fres no wɔ enim baako -find_next_label=Ndiso -find_highlight=Hyɛ bibiara nso -find_match_case_label=Fa susu kaase -find_reached_top=Edu krataafa ne soro, atoa so efiri ase -find_reached_bottom=Edu krataafa n'ewiei, atoa so efiri soro -find_not_found=Ennhu fres - -# Error panel labels -error_more_info=Infɔmehyɛn bio a wɔka ho -error_less_info=Te infɔmehyɛn bio a wɔka ho so -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -error_version_info=PDF.js v{{vɛɛhyen}} (nsi: {{si}}) -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -error_message=Nkrato: {{message}} -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -error_stack=Staake: {{stack}} -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -error_file=Fael: {{file}} -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number -error_line=Laen: {{line}} -rendering_error=Mfomso bae wɔ bere a wɔ rekyerɛ krataafa no. - -# Predefined zoom values -page_scale_width=Krataafa tɛtrɛtɛ -page_scale_fit=Krataafa ehimtwa -page_scale_auto=Zuum otomatik -page_scale_actual=Kɛseyɛ ankasa -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. - -# Loading indicator messages -loading_error_indicator=Mfomso -loading_error=Mfomso bae wɔ bere a wɔreloode PDF no. -invalid_file_error=PDF fael no nndi mu anaaso ho atɔ kyima. -missing_file_error=PDF fael no ayera. - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -text_annotation_type.alt=[{{type}} Tɛkst-nyiano] -password_ok=OK - -printing_not_supported=Kɔkɔbɔ: Brawsa yi nnhyɛ daa mma prent ho kwan. -printing_not_ready=Kɔkɔbɔ: Wɔnntwee PDF fael no nyinara mmbaee ama wo ɛ tumi aprente. -web_fonts_disabled=Ɔedum wɛb-mfɔnt: nntumi mmfa PDF mfɔnt a wɔhyɛ mu nndi dwuma. -document_colors_not_allowed=Wɔmma ho kwan sɛ PDF adɔkomɛnt de wɔn ara wɔn ahosu bɛdi dwuma: wɔ adum 'Ma ho kwan ma nkrataafa mpaw wɔn ara wɔn ahosu' wɔ brawsa yi mu. diff --git a/cps/static/locale/an/viewer.properties b/cps/static/locale/an/viewer.properties index 35761347..7e3504c7 100644 --- a/cps/static/locale/an/viewer.properties +++ b/cps/static/locale/an/viewer.properties @@ -181,4 +181,3 @@ password_cancel=Cancelar printing_not_supported=Pare cuenta: Iste navegador no maneya totalment as impresions. printing_not_ready=Aviso: Encara no se ha cargau completament o PDF ta imprentar-lo. web_fonts_disabled=As fuents web son desactivadas: no se puet incrustar fichers PDF. -document_colors_not_allowed=Los documentos PDF no pueden fer servir las suyas propias colors: 'Permitir que as pachinas triguen as suyas propias colors' ye desactivau en o navegador. diff --git a/cps/static/locale/ar/viewer.properties b/cps/static/locale/ar/viewer.properties index b42ba74c..cffa8bec 100644 --- a/cps/static/locale/ar/viewer.properties +++ b/cps/static/locale/ar/viewer.properties @@ -243,4 +243,3 @@ password_cancel=ألغِ printing_not_supported=تحذير: لا يدعم هذا المتصفح الطباعة بشكل كامل. printing_not_ready=تحذير: ملف PDF لم يُحمّل كاملًا للطباعة. web_fonts_disabled=خطوط الوب مُعطّلة: تعذّر استخدام خطوط PDF المُضمّنة. -document_colors_not_allowed=ليس مسموحًا لملفات PDF باستخدام ألوانها الخاصة: خيار ”اسمح للصفحات باختيار ألوانها الخاصة“ ليس مُفعّلًا في المتصفح. diff --git a/cps/static/locale/as/viewer.properties b/cps/static/locale/as/viewer.properties deleted file mode 100644 index ea3ecc79..00000000 --- a/cps/static/locale/as/viewer.properties +++ /dev/null @@ -1,167 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) -previous.title=পূৰ্বৱৰ্তী পৃষ্ঠা -previous_label=পূৰ্বৱৰ্তী -next.title=পৰৱৰ্তী পৃষ্ঠা -next_label=পৰৱৰ্তী - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. - -zoom_out.title=জুম আউট -zoom_out_label=জুম আউট -zoom_in.title=জুম ইন -zoom_in_label=জুম ইন -zoom.title=জুম কৰক -presentation_mode.title=উপস্থাপন অৱস্থালে যাওক -presentation_mode_label=উপস্থাপন অৱস্থা -open_file.title=ফাইল খোলক -open_file_label=খোলক -print.title=প্ৰিন্ট কৰক -print_label=প্ৰিন্ট কৰক -download.title=ডাউনল'ড কৰক -download_label=ডাউনল'ড কৰক -bookmark.title=বৰ্তমান দৃশ্য (কপি কৰক অথবা নতুন উইন্ডোত খোলক) -bookmark_label=বৰ্তমান দৃশ্য - -# Secondary toolbar and context menu -tools.title=সঁজুলিসমূহ -tools_label=সঁজুলিসমূহ -first_page.title=প্ৰথম পৃষ্ঠাত যাওক -first_page.label=প্ৰথম পৃষ্ঠাত যাওক -first_page_label=প্ৰথম পৃষ্ঠাত যাওক -last_page.title=সৰ্বশেষ পৃষ্ঠাত যাওক -last_page.label=সৰ্বশেষ পৃষ্ঠাত যাওক -last_page_label=সৰ্বশেষ পৃষ্ঠাত যাওক -page_rotate_cw.title=ঘড়ীৰ দিশত ঘুৰাওক -page_rotate_cw.label=ঘড়ীৰ দিশত ঘুৰাওক -page_rotate_cw_label=ঘড়ীৰ দিশত ঘুৰাওক -page_rotate_ccw.title=ঘড়ীৰ ওলোটা দিশত ঘুৰাওক -page_rotate_ccw.label=ঘড়ীৰ ওলোটা দিশত ঘুৰাওক -page_rotate_ccw_label=ঘড়ীৰ ওলোটা দিশত ঘুৰাওক - - -# Document properties dialog box -document_properties.title=দস্তাবেজৰ বৈশিষ্ট্যসমূহ… -document_properties_label=দস্তাবেজৰ বৈশিষ্ট্যসমূহ… -document_properties_file_name=ফাইল নাম: -document_properties_file_size=ফাইলৰ আকাৰ: -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -document_properties_kb={{size_kb}} KB ({{size_b}} bytes) -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_mb={{size_mb}} MB ({{size_b}} bytes) -document_properties_title=শীৰ্ষক: -document_properties_author=লেখক: -document_properties_subject=বিষয়: -document_properties_keywords=কিৱাৰ্ডসমূহ: -document_properties_creation_date=সৃষ্টিৰ তাৰিখ: -document_properties_modification_date=পৰিবৰ্তনৰ তাৰিখ: -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. -document_properties_date_string={{date}}, {{time}} -document_properties_creator=সৃষ্টিকৰ্তা: -document_properties_producer=PDF উৎপাদক: -document_properties_version=PDF সংস্কৰণ: -document_properties_page_count=পৃষ্ঠাৰ গণনা: -document_properties_close=বন্ধ কৰক - -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) -toggle_sidebar.title=কাষবাৰ টগল কৰক -toggle_sidebar_label=কাষবাৰ টগল কৰক -document_outline_label=দস্তাবেজ আউটলাইন -attachments.title=এটাচমেন্টসমূহ দেখুৱাওক -attachments_label=এটাচমেন্টসমূহ -thumbs.title=থাম্বনেইলসমূহ দেখুৱাওক -thumbs_label=থাম্বনেইলসমূহ -findbar.title=দস্তাবেজত সন্ধান কৰক - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -thumb_page_title=পৃষ্ঠা {{page}} -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. -thumb_page_canvas=পৃষ্ঠাৰ থাম্বনেইল {{page}} - -# Find panel button title and messages -find_previous.title=বাক্যাংশৰ পূৰ্বৱৰ্তী উপস্থিতি সন্ধান কৰক -find_previous_label=পূৰ্বৱৰ্তী -find_next.title=বাক্যাংশৰ পৰৱৰ্তী উপস্থিতি সন্ধান কৰক -find_next_label=পৰৱৰ্তী -find_highlight=সকলো উজ্জ্বল কৰক -find_match_case_label=ফলা মিলাওক -find_reached_top=তলৰ পৰা আৰম্ভ কৰি, দস্তাবেজৰ ওপৰলৈ অহা হৈছে -find_reached_bottom=ওপৰৰ পৰা আৰম্ভ কৰি, দস্তাবেজৰ তললৈ অহা হৈছে -find_not_found=বাক্যাংশ পোৱা নগল - -# Error panel labels -error_more_info=অধিক তথ্য -error_less_info=কম তথ্য -error_close=বন্ধ কৰক -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -error_version_info=PDF.js v{{version}} (build: {{build}}) -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -error_message=বাৰ্তা: {{message}} -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -error_stack=স্টেক: {{stack}} -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -error_file=ফাইল: {{file}} -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number -error_line=শাৰী: {{line}} -rendering_error=এই পৃষ্ঠা ৰেণ্ডাৰ কৰোতে এটা ত্ৰুটি দেখা দিলে। - -# Predefined zoom values -page_scale_width=পৃষ্ঠাৰ প্ৰস্থ -page_scale_fit=পৃষ্ঠা খাপ -page_scale_auto=স্বচালিত জুম -page_scale_actual=প্ৰকৃত আকাৰ -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. - -# Loading indicator messages -loading_error_indicator=ত্ৰুটি -loading_error=PDF ল'ড কৰোতে এটা ত্ৰুটি দেখা দিলে। -invalid_file_error=অবৈধ অথবা ক্ষতিগ্ৰস্থ PDF file। -missing_file_error=সন্ধানহিন PDF ফাইল। -unexpected_response_error=অপ্ৰত্যাশিত চাৰ্ভাৰ প্ৰতিক্ৰিয়া। - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -text_annotation_type.alt=[{{type}} টোকা] -password_label=এই PDF ফাইল খোলিবলৈ পাছৱৰ্ড সুমুৱাওক। -password_invalid=অবৈধ পাছৱৰ্ড। অনুগ্ৰহ কৰি পুনৰ চেষ্টা কৰক। -password_ok=ঠিক আছে - -printing_not_supported=সতৰ্কবাৰ্তা: প্ৰিন্টিং এই ব্ৰাউছাৰ দ্বাৰা সম্পূৰ্ণভাৱে সমৰ্থিত নহয়। -printing_not_ready=সতৰ্কবাৰ্তা: PDF প্ৰিন্টিংৰ বাবে সম্পূৰ্ণভাৱে ল'ডেড নহয়। -web_fonts_disabled=ৱেব ফন্টসমূহ অসামৰ্থবান কৰা আছে: অন্তৰ্ভুক্ত PDF ফন্টসমূহ ব্যৱহাৰ কৰিবলে অক্ষম। -document_colors_not_allowed=PDF দস্তাবেজসমূহৰ সিহতৰ নিজস্ব ৰঙ ব্যৱহাৰ কৰাৰ অনুমতি নাই: ব্ৰাউছাৰত 'পৃষ্ঠাসমূহক সিহতৰ নিজস্ব ৰঙ নিৰ্বাচন কৰাৰ অনুমতি দিয়ক' অসামৰ্থবান কৰা আছে। diff --git a/cps/static/locale/ast/viewer.properties b/cps/static/locale/ast/viewer.properties index f973a9b2..5f6d5e7c 100644 --- a/cps/static/locale/ast/viewer.properties +++ b/cps/static/locale/ast/viewer.properties @@ -57,6 +57,8 @@ page_rotate_ccw.title=Xirar en sen antihorariu page_rotate_ccw_label=Xirar en sen antihorariu +scroll_vertical_label=Desplazamientu vertical +scroll_horizontal_label=Desplazamientu horizontal # Document properties dialog box @@ -138,6 +140,7 @@ find_next.title=Alcontrar la siguiente apaición d'esta fras find_next_label=Siguiente find_highlight=Remarcar toos find_match_case_label=Coincidencia de mayús./minús. +find_entire_word_label=Pallabres enteres find_reached_top=Algamóse'l principiu del documentu, siguir dende'l final find_reached_bottom=Algamóse'l final del documentu, siguir dende'l principiu # LOCALIZATION NOTE (find_match_count): The supported plural forms are @@ -185,6 +188,9 @@ invalid_file_error=Ficheru PDF inválidu o corruptu. missing_file_error=Nun hai ficheru PDF. unexpected_response_error=Rempuesta inesperada del sirvidor. +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. + # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # "{{type}}" will be replaced with an annotation type from a list defined in # the PDF spec (32000-1:2008 Table 169 – Annotation types). @@ -198,4 +204,3 @@ password_cancel=Encaboxar printing_not_supported=Alvertencia: La imprentación entá nun ta sofitada dafechu nesti restolador. printing_not_ready=Avisu: Esti PDF nun se cargó completamente pa poder imprentase. web_fonts_disabled=Les fontes web tán desactivaes: ye imposible usar les fontes PDF embebíes. -document_colors_not_allowed=Los documentos PDF nun tienen permisu pa usar les sos colores: «Permitir que les páxines escueyan les sos colores» ta desactivao nel restolador. diff --git a/cps/static/locale/az/viewer.properties b/cps/static/locale/az/viewer.properties index 46fb51c0..8f61d964 100644 --- a/cps/static/locale/az/viewer.properties +++ b/cps/static/locale/az/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Kiçik şəkillər findbar.title=Sənəddə Tap findbar_label=Tap +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Səhifə {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -226,6 +228,10 @@ invalid_file_error=Səhv və ya zədələnmiş olmuş PDF fayl. missing_file_error=PDF fayl yoxdur. unexpected_response_error=Gözlənilməz server cavabı. +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. +annotation_date_string={{date}}, {{time}} + # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # "{{type}}" will be replaced with an annotation type from a list defined in # the PDF spec (32000-1:2008 Table 169 – Annotation types). @@ -239,4 +245,3 @@ password_cancel=Ləğv et printing_not_supported=Xəbərdarlıq: Çap bu səyyah tərəfindən tam olaraq dəstəklənmir. printing_not_ready=Xəbərdarlıq: PDF çap üçün tam yüklənməyib. web_fonts_disabled=Web Şriftlər söndürülüb: yerləşdirilmiş PDF şriftlərini istifadə etmək mümkün deyil. -document_colors_not_allowed=PDF sənədlərə öz rənglərini işlətməyə icazə verilmir: “Səhifələrə öz rənglərini istifadə etməyə icazə ver”mə səyyahda söndürülüb. diff --git a/cps/static/locale/be/viewer.properties b/cps/static/locale/be/viewer.properties index d3f81887..6ac71928 100644 --- a/cps/static/locale/be/viewer.properties +++ b/cps/static/locale/be/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Мініяцюры findbar.title=Пошук у дакуменце findbar_label=Знайсці +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Старонка {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Скасаваць printing_not_supported=Папярэджанне: друк не падтрымліваецца цалкам гэтым браўзерам. printing_not_ready=Увага: PDF не сцягнуты цалкам для друкавання. web_fonts_disabled=Шрыфты Сеціва забаронены: немагчыма ўжываць укладзеныя шрыфты PDF. -document_colors_not_allowed=PDF-дакументам не дазволена выкарыстоўваць свае колеры: у браўзеры адключаны параметр "Дазволіць вэб-сайтам выкарыстоўваць свае колеры". diff --git a/cps/static/locale/bg/viewer.properties b/cps/static/locale/bg/viewer.properties index 713b1138..b93e3d1e 100644 --- a/cps/static/locale/bg/viewer.properties +++ b/cps/static/locale/bg/viewer.properties @@ -239,4 +239,3 @@ password_cancel=Отказ printing_not_supported=Внимание: Този четец няма пълна поддръжка на отпечатване. printing_not_ready=Внимание: Този PDF файл не е напълно зареден за печат. web_fonts_disabled=Уеб-шрифтовете са забранени: разрешаване на използването на вградените PDF шрифтове. -document_colors_not_allowed=На документите от вид PDF не е разрешено да използват собствени цветове: „Разрешаване на страниците да избират собствени цветове“ е изключено в четеца. diff --git a/cps/static/locale/bn-IN/viewer.properties b/cps/static/locale/bn-IN/viewer.properties deleted file mode 100644 index 550cefff..00000000 --- a/cps/static/locale/bn-IN/viewer.properties +++ /dev/null @@ -1,242 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) -previous.title=পূর্ববর্তী পৃষ্ঠা -previous_label=পূর্ববর্তী -next.title=পরবর্তী পৃষ্ঠা -next_label=পরবর্তী - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -page.title=পেজ -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -of_pages={{pagesCount}} -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. -page_of_pages=({{pagesCount}} এর {{pageNumber}}) - -zoom_out.title=ছোট মাপে প্রদর্শন -zoom_out_label=ছোট মাপে প্রদর্শন -zoom_in.title=বড় মাপে প্রদর্শন -zoom_in_label=বড় মাপে প্রদর্শন -zoom.title=প্রদর্শনের মাপ -presentation_mode.title=উপস্থাপনা মোড স্যুইচ করুন -presentation_mode_label=উপস্থাপনা মোড -open_file.title=ফাইল খুলুন -open_file_label=খুলুন -print.title=প্রিন্ট করুন -print_label=প্রিন্ট করুন -download.title=ডাউনলোড করুন -download_label=ডাউনলোড করুন -bookmark.title=বর্তমান প্রদর্শন (কপি করুন অথবা নতুন উইন্ডোতে খুলুন) -bookmark_label=বর্তমান প্রদর্শন - -# Secondary toolbar and context menu -tools.title=সরঞ্জাম -tools_label=সরঞ্জাম -first_page.title=প্রথম পৃষ্ঠায় চলুন -first_page.label=প্রথম পৃষ্ঠায় চলুন -first_page_label=প্রথম পৃষ্ঠায় চলুন -last_page.title=সর্বশেষ পৃষ্ঠায় চলুন -last_page.label=সর্বশেষ পৃষ্ঠায় চলুন -last_page_label=সর্বশেষ পৃষ্ঠায় চলুন -page_rotate_cw.title=ডানদিকে ঘোরানো হবে -page_rotate_cw.label=ডানদিকে ঘোরানো হবে -page_rotate_cw_label=ডানদিকে ঘোরানো হবে -page_rotate_ccw.title=বাঁদিকে ঘোরানো হবে -page_rotate_ccw.label=বাঁদিকে ঘোরানো হবে -page_rotate_ccw_label=বাঁদিকে ঘোরানো হবে - -cursor_text_select_tool.title=টেক্সট নির্বাচন সরঞ্জাম সক্রিয় করুন -cursor_text_select_tool_label=টেক্সট নির্বাচনের সরঞ্জাম -cursor_hand_tool.title=হ্যান্ড টুল সক্রিয় করুন -cursor_hand_tool_label=হ্যান্ড টুল - -scroll_vertical.title=উল্লম্ব স্ক্রোলিং ব্যবহার করুন -scroll_vertical_label=উল্লম্ব স্ক্রোলিং -scroll_horizontal.title=অনুভূমিক স্ক্রোলিং ব্যবহার করুন -scroll_horizontal_label=অনুভূমিক স্ক্রোলিং -scroll_wrapped.title=আবৃত স্ক্রোলিং ব্যবহার করুন -scroll_wrapped_label=আবৃত স্ক্রোলিং - -spread_none.title=ছড়িয়ে পরা পাতাকে যোগ করবেন না -spread_none_label=ছড়ানো নয় -spread_odd.title=বিজোড়-সংখ্যার পৃষ্ঠাগুলির সাথে শুরু হওয়া পৃষ্ঠা স্প্রেডগুলিতে যোগদান করুন -spread_odd_label=বিজোড় স্প্রেডস -spread_even.title=জোড়-সংখ্যার পৃষ্ঠাগুলির সাথে শুরু হওয়া পৃষ্ঠা স্প্রেডগুলিতে যোগদান করুন -spread_even_label=জোড় স্প্রেড - -# Document properties dialog box -document_properties.title=নথির বৈশিষ্ট্য… -document_properties_label=নথির বৈশিষ্ট্য… -document_properties_file_name=ফাইলের নাম: -document_properties_file_size=ফাইলের মাপ: -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -document_properties_kb={{size_kb}} KB ({{size_b}} bytes) -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_mb={{size_mb}} মেগাবাইট ({{size_b}} bytes) -document_properties_title=শিরোনাম: -document_properties_author=লেখক: -document_properties_subject=বিষয়: -document_properties_keywords=নির্দেশক শব্দ: -document_properties_creation_date=নির্মাণের তারিখ: -document_properties_modification_date=পরিবর্তনের তারিখ: -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. -document_properties_date_string={{date}}, {{time}} -document_properties_creator=নির্মাতা: -document_properties_producer=PDF নির্মাতা: -document_properties_version=PDF সংস্করণ: -document_properties_page_count=মোট পৃষ্ঠা: -document_properties_page_size=পৃষ্ঠার সাইজ: -document_properties_page_size_unit_inches=in -document_properties_page_size_unit_millimeters=mm -document_properties_page_size_orientation_portrait=উলম্ব -document_properties_page_size_orientation_landscape=আড়াআড়ি -document_properties_page_size_name_a3=A3 -document_properties_page_size_name_a4=A4 -document_properties_page_size_name_letter=লেটার -document_properties_page_size_name_legal=লিগাল -# LOCALIZATION NOTE (document_properties_page_size_dimension_string): -# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by -# the size, respectively their unit of measurement and orientation, of the (current) page. -document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}}) -# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string): -# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by -# the size, respectively their unit of measurement, name, and orientation, of the (current) page. -document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}}) -# LOCALIZATION NOTE (document_properties_linearized): The linearization status of -# the document; usually called "Fast Web View" in English locales of Adobe software. -document_properties_linearized=দ্রুত ওয়েব প্রদর্শন: -document_properties_linearized_yes=হ্যাঁ -document_properties_linearized_no=না -document_properties_close=বন্ধ করুন - -print_progress_message=ডকুমেন্ট প্রিন্টিং-র জন্য তৈরি করা হচ্ছে... -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. -print_progress_percent={{progress}}% -print_progress_close=বাতিল - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) -toggle_sidebar.title=সাইডবার টগল করুন -toggle_sidebar_notification.title=সাইডবার টগল করুন (নথিতে রয়েছে আউটলাইন/সংযুক্তি) -toggle_sidebar_label=সাইডবার টগল করুন -document_outline.title=ডকুমেন্ট আউটলাইন দেখান (দুবার ক্লিক করুন বাড়াতে//collapse সমস্ত আইটেম) -document_outline_label=ডকুমেন্ট আউটলাইন -attachments.title=সংযুক্তিসমূহ দেখান -attachments_label=সংযুক্ত বস্তু -thumbs.title=থাম্ব-নেইল প্রদর্শন -thumbs_label=থাম্ব-নেইল প্রদর্শন -findbar.title=নথিতে খুঁজুন -findbar_label=অনুসন্ধান করুন - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -thumb_page_title=পৃষ্ঠা {{page}} -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. -thumb_page_canvas=পৃষ্ঠা {{page}}-র থাম্ব-নেইল - -# Find panel button title and messages -find_input.title=খুঁজুন -find_input.placeholder=নথির মধ্যে খুঁজুন… -find_previous.title=চিহ্নিত পংক্তির পূর্ববর্তী উপস্থিতি অনুসন্ধান করুন -find_previous_label=পূর্ববর্তী -find_next.title=চিহ্নিত পংক্তির পরবর্তী উপস্থিতি অনুসন্ধান করুন -find_next_label=পরবর্তী -find_highlight=সমগ্র উজ্জ্বল করুন -find_match_case_label=হরফের ছাঁদ মেলানো হবে -find_entire_word_label=সম্পূর্ণ শব্দগুলি -find_reached_top=পৃষ্ঠার প্রারম্ভে পৌছে গেছে, নীচের অংশ থেকে আরম্ভ করা হবে -find_reached_bottom=পৃষ্ঠার অন্তিম প্রান্তে পৌছে গেছে, প্রথম অংশ থেকে আরম্ভ করা হবে -# LOCALIZATION NOTE (find_match_count): The supported plural forms are -# [one|two|few|many|other], with [other] as the default value. -# "{{current}}" and "{{total}}" will be replaced by a number representing the -# index of the currently active find result, respectively a number representing -# the total number of matches in the document. -find_match_count={[ plural(total) ]} -find_match_count[one]={{total}} এর {{current}} এ মিল -find_match_count[two]={{total}} এর {{current}} মিলছে -find_match_count[few]={{total}} এর {{current}} মিলছে -find_match_count[many]={{total}} এর {{current}} মিলছে -find_match_count[other]={{total}} এর {{current}} মিলছে -# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are -# [zero|one|two|few|many|other], with [other] as the default value. -# "{{limit}}" will be replaced by a numerical value. -find_match_count_limit={[ plural(limit) ]} -find_match_count_limit[zero]={{limit}} এর বেশি মিলছে -find_match_count_limit[one]={{limit}} এর থেকে বেশি মিলছে -find_match_count_limit[two]={{limit}} এর থেকে বেশি মিলছে -find_match_count_limit[few]={{limit}} এর থেকে বেশি মিলছে -find_match_count_limit[many]={{limit}} এর থেকে বেশি মিলছে -find_match_count_limit[other]={{limit}} এর থেকে বেশি মিলছে -find_not_found=পংক্তি পাওয়া যায়নি - -# Error panel labels -error_more_info=অতিরিক্ত তথ্য -error_less_info=কম তথ্য -error_close=বন্ধ করুন -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -error_version_info=PDF.js v{{version}} (build: {{build}}) -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -error_message=Message: {{message}} -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -error_stack=Stack: {{stack}} -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -error_file=File: {{file}} -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number -error_line=Line: {{line}} -rendering_error=পৃষ্ঠা প্রদর্শনকালে একটি সমস্যা দেখা দিয়েছে। - -# Predefined zoom values -page_scale_width=পৃষ্ঠার প্রস্থ অনুযায়ী -page_scale_fit=পৃষ্ঠার মাপ অনুযায়ী -page_scale_auto=স্বয়ংক্রিয় মাপ নির্ধারণ -page_scale_actual=প্রকৃত মাপ -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. -page_scale_percent={{scale}}% - -# Loading indicator messages -loading_error_indicator=ত্রুটি -loading_error=PDF লোড করার সময় সমস্যা দেখা দিয়েছে। -invalid_file_error=অবৈধ বা ক্ষতিগ্রস্ত পিডিএফ ফাইল। -missing_file_error=অনুপস্থিত PDF ফাইল -unexpected_response_error=সার্ভার থেকে অপ্রত্যাশিত সাড়া পাওয়া গেছে। - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -text_annotation_type.alt=[{{type}} Annotation] -password_label=এই PDF ফাইল খোলার জন্য পাসওয়ার্ড দিন। -password_invalid=পাসওয়ার্ড সঠিক নয়। অনুগ্রহ করে পুনরায় প্রচেষ্টা করুন। -password_ok=OK -password_cancel=বাতিল করুন - -printing_not_supported=সতর্কবার্তা: এই ব্রাউজার দ্বারা প্রিন্ট ব্যবস্থা সম্পূর্ণরূপে সমর্থিত নয়। -printing_not_ready=সতর্কবাণী: পিডিএফ সম্পূর্ণরূপে মুদ্রণের জন্য লোড করা হয় না. -web_fonts_disabled=ওয়েব ফন্ট নিষ্ক্রিয় করা হয়েছে: এমবেডেড পিডিএফ ফন্ট ব্যবহার করতে অক্ষম. -document_colors_not_allowed=পিডিএফ নথি তাদের নিজস্ব রং ব্যবহার করার জন্য অনুমতিপ্রাপ্ত নয়: ব্রাউজারে নিষ্ক্রিয় করা হয়েছে য়েন 'পেজ তাদের নিজস্ব রং নির্বাচন করার অনুমতি প্রদান করা য়ায়।' diff --git a/cps/static/locale/bn-BD/viewer.properties b/cps/static/locale/bn/viewer.properties similarity index 94% rename from cps/static/locale/bn-BD/viewer.properties rename to cps/static/locale/bn/viewer.properties index 9fc785d6..c106df10 100644 --- a/cps/static/locale/bn-BD/viewer.properties +++ b/cps/static/locale/bn/viewer.properties @@ -69,7 +69,13 @@ scroll_vertical.title=উলম্ব স্ক্রলিং ব্যবহ scroll_vertical_label=উলম্ব স্ক্রলিং scroll_horizontal.title=অনুভূমিক স্ক্রলিং ব্যবহার করুন scroll_horizontal_label=অনুভূমিক স্ক্রলিং +scroll_wrapped.title=Wrapped স্ক্রোলিং ব্যবহার করুন +scroll_wrapped_label=Wrapped স্ক্রোলিং +spread_none.title=পেজ স্প্রেডগুলোতে যোগদান করবেন না +spread_none_label=Spreads নেই +spread_odd_label=বিজোড় Spreads +spread_even_label=জোড় Spreads # Document properties dialog box document_properties.title=নথি বৈশিষ্ট্য… @@ -114,6 +120,7 @@ document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}}) # LOCALIZATION NOTE (document_properties_linearized): The linearization status of # the document; usually called "Fast Web View" in English locales of Adobe software. +document_properties_linearized=Fast Web View: document_properties_linearized_yes=হ্যাঁ document_properties_linearized_no=না document_properties_close=বন্ধ @@ -139,6 +146,8 @@ thumbs_label=থাম্বনেইল সমূহ findbar.title=নথির মধ্যে খুঁজুন findbar_label=খুঁজুন +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=পাতা {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -156,6 +165,7 @@ find_next.title=বাক্যাংশের পরবর্তী উপস find_next_label=পরবর্তী find_highlight=সব হাইলাইট করা হবে find_match_case_label=অক্ষরের ছাঁদ মেলানো +find_entire_word_label=সম্পূর্ণ শব্দ find_reached_top=পাতার শুরুতে পৌছে গেছে, নীচ থেকে আরম্ভ করা হয়েছে find_reached_bottom=পাতার শেষে পৌছে গেছে, উপর থেকে আরম্ভ করা হয়েছে # LOCALIZATION NOTE (find_match_count): The supported plural forms are @@ -216,6 +226,10 @@ invalid_file_error=অকার্যকর অথবা ক্ষতিগ্ missing_file_error=নিখোঁজ PDF ফাইল। unexpected_response_error=অপ্রত্যাশীত সার্ভার প্রতিক্রিয়া। +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. +annotation_date_string={{date}}, {{time}} + # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # "{{type}}" will be replaced with an annotation type from a list defined in # the PDF spec (32000-1:2008 Table 169 – Annotation types). @@ -229,4 +243,3 @@ password_cancel=বাতিল printing_not_supported=সতর্কতা: এই ব্রাউজারে মুদ্রণ সম্পূর্ণভাবে সমর্থিত নয়। printing_not_ready=সতর্কীকরণ: পিডিএফটি মুদ্রণের জন্য সম্পূর্ণ লোড হয়নি। web_fonts_disabled=ওয়েব ফন্ট নিষ্ক্রিয়: সংযুক্ত পিডিএফ ফন্ট ব্যবহার করা যাচ্ছে না। -document_colors_not_allowed=পিডিএফ ডকুমেন্টকে তাদের নিজস্ব রঙ ব্যবহারে অনুমতি নেই: 'পাতা তাদের নিজেস্ব রঙ নির্বাচন করতে অনুমতি দিন' এই ব্রাউজারে নিষ্ক্রিয় রয়েছে। diff --git a/cps/static/locale/en-ZA/viewer.properties b/cps/static/locale/bo/viewer.properties similarity index 61% rename from cps/static/locale/en-ZA/viewer.properties rename to cps/static/locale/bo/viewer.properties index 832d5586..3ffa8481 100644 --- a/cps/static/locale/en-ZA/viewer.properties +++ b/cps/static/locale/bo/viewer.properties @@ -13,18 +13,20 @@ # limitations under the License. # Main toolbar buttons (tooltips and alt text for images) -previous.title=Previous Page -previous_label=Previous -next.title=Next Page -next_label=Next +previous.title=དྲ་ངོས་སྔོན་མ +previous_label=སྔོན་མ +next.title=དྲ་ངོས་རྗེས་མ +next_label=རྗེས་མ # LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. +page.title=ཤོག་ངོས # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number # representing the total number of pages in the document. of_pages=of {{pagesCount}} # LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" # will be replaced by a number representing the currently visible page, # respectively a number representing the total number of pages in the document. +page_of_pages=({{pageNumber}} of {{pagesCount}}) zoom_out.title=Zoom Out zoom_out_label=Zoom Out @@ -58,6 +60,24 @@ page_rotate_ccw.title=Rotate Counterclockwise page_rotate_ccw.label=Rotate Counterclockwise page_rotate_ccw_label=Rotate Counterclockwise +cursor_text_select_tool.title=Enable Text Selection Tool +cursor_text_select_tool_label=Text Selection Tool +cursor_hand_tool.title=Enable Hand Tool +cursor_hand_tool_label=Hand Tool + +scroll_vertical.title=Use Vertical Scrolling +scroll_vertical_label=Vertical Scrolling +scroll_horizontal.title=Use Horizontal Scrolling +scroll_horizontal_label=Horizontal Scrolling +scroll_wrapped.title=Use Wrapped Scrolling +scroll_wrapped_label=Wrapped Scrolling + +spread_none.title=Do not join page spreads +spread_none_label=No Spreads +spread_odd.title=Join page spreads starting with odd-numbered pages +spread_odd_label=Odd Spreads +spread_even.title=Join page spreads starting with even-numbered pages +spread_even_label=Even Spreads # Document properties dialog box document_properties.title=Document Properties… @@ -83,15 +103,41 @@ document_properties_creator=Creator: document_properties_producer=PDF Producer: document_properties_version=PDF Version: document_properties_page_count=Page Count: +document_properties_page_size=Page Size: +document_properties_page_size_unit_inches=in +document_properties_page_size_unit_millimeters=mm +document_properties_page_size_orientation_portrait=portrait +document_properties_page_size_orientation_landscape=landscape +document_properties_page_size_name_a3=A3 +document_properties_page_size_name_a4=A4 +document_properties_page_size_name_letter=Letter +document_properties_page_size_name_legal=Legal +# LOCALIZATION NOTE (document_properties_page_size_dimension_string): +# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by +# the size, respectively their unit of measurement and orientation, of the (current) page. +document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}}) +# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string): +# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by +# the size, respectively their unit of measurement, name, and orientation, of the (current) page. +document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}}) +# LOCALIZATION NOTE (document_properties_linearized): The linearization status of +# the document; usually called "Fast Web View" in English locales of Adobe software. +document_properties_linearized=Fast Web View: +document_properties_linearized_yes=Yes +document_properties_linearized_no=No document_properties_close=Close +print_progress_message=Preparing document for printing… # LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by # a numerical per cent value. +print_progress_percent={{progress}}% +print_progress_close=Cancel # Tooltips and alt text for side panel toolbar buttons # (the _label strings are alt text for the buttons, the .title strings are # tooltips) toggle_sidebar.title=Toggle Sidebar +toggle_sidebar_notification.title=Toggle Sidebar (document contains outline/attachments) toggle_sidebar_label=Toggle Sidebar document_outline.title=Show Document Outline (double-click to expand/collapse all items) document_outline_label=Document Outline @@ -100,6 +146,7 @@ attachments_label=Attachments thumbs.title=Show Thumbnails thumbs_label=Thumbnails findbar.title=Find in Document +findbar_label=Find # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page @@ -110,14 +157,38 @@ thumb_page_title=Page {{page}} thumb_page_canvas=Thumbnail of Page {{page}} # Find panel button title and messages +find_input.title=Find +find_input.placeholder=Find in document… find_previous.title=Find the previous occurrence of the phrase find_previous_label=Previous find_next.title=Find the next occurrence of the phrase find_next_label=Next find_highlight=Highlight all find_match_case_label=Match case +find_entire_word_label=Whole words find_reached_top=Reached top of document, continued from bottom find_reached_bottom=Reached end of document, continued from top +# LOCALIZATION NOTE (find_match_count): The supported plural forms are +# [one|two|few|many|other], with [other] as the default value. +# "{{current}}" and "{{total}}" will be replaced by a number representing the +# index of the currently active find result, respectively a number representing +# the total number of matches in the document. +find_match_count={[ plural(total) ]} +find_match_count[one]={{current}} of {{total}} match +find_match_count[two]={{current}} of {{total}} matches +find_match_count[few]={{current}} of {{total}} matches +find_match_count[many]={{current}} of {{total}} matches +find_match_count[other]={{current}} of {{total}} matches +# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are +# [zero|one|two|few|many|other], with [other] as the default value. +# "{{limit}}" will be replaced by a numerical value. +find_match_count_limit={[ plural(limit) ]} +find_match_count_limit[zero]=More than {{limit}} matches +find_match_count_limit[one]=More than {{limit}} match +find_match_count_limit[two]=More than {{limit}} matches +find_match_count_limit[few]=More than {{limit}} matches +find_match_count_limit[many]=More than {{limit}} matches +find_match_count_limit[other]=More than {{limit}} matches find_not_found=Phrase not found # Error panel labels @@ -155,6 +226,9 @@ invalid_file_error=Invalid or corrupted PDF file. missing_file_error=Missing PDF file. unexpected_response_error=Unexpected server response. +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. + # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # "{{type}}" will be replaced with an annotation type from a list defined in # the PDF spec (32000-1:2008 Table 169 – Annotation types). @@ -163,8 +237,8 @@ text_annotation_type.alt=[{{type}} Annotation] password_label=Enter the password to open this PDF file. password_invalid=Invalid password. Please try again. password_ok=OK +password_cancel=Cancel printing_not_supported=Warning: Printing is not fully supported by this browser. printing_not_ready=Warning: The PDF is not fully loaded for printing. web_fonts_disabled=Web fonts are disabled: unable to use embedded PDF fonts. -document_colors_not_allowed=PDF documents are not allowed to use their own colours: “Allow pages to choose their own colours” is deactivated in the browser. diff --git a/cps/static/locale/br/viewer.properties b/cps/static/locale/br/viewer.properties index ac2558e1..9add9a43 100644 --- a/cps/static/locale/br/viewer.properties +++ b/cps/static/locale/br/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Melvennoù findbar.title=Klask e-barzh an teuliad findbar_label=Klask +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Pajenn {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Nullañ printing_not_supported=Kemenn : N'eo ket skoret penn-da-benn ar moullañ gant ar merdeer-mañ. printing_not_ready=Kemenn : N'hall ket bezañ moullet ar restr PDF rak n'eo ket karget penn-da-benn. web_fonts_disabled=Diweredekaet eo an nodrezhoù web : n'haller ket arverañ an nodrezhoù PDF enframmet. -document_colors_not_allowed=N'eo ket aotreet an teuliadoù PDF da arverañ o livioù dezho : diweredekaet eo “Aotren ar pajennoù da zibab o livioù dezho” e-barzh ar merdeer. diff --git a/cps/static/locale/brx/viewer.properties b/cps/static/locale/brx/viewer.properties index 2ddc52c1..cd365638 100644 --- a/cps/static/locale/brx/viewer.properties +++ b/cps/static/locale/brx/viewer.properties @@ -19,11 +19,14 @@ next.title=उननि बिलाइ next_label=उननि # LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. +page.title=बिलाइ # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number # representing the total number of pages in the document. +of_pages={{pagesCount}} नि # LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" # will be replaced by a number representing the currently visible page, # respectively a number representing the total number of pages in the document. +page_of_pages=({{pagesCount}} नि {{pageNumber}}) zoom_out.title=फिसायै जुम खालाम zoom_out_label=फिसायै जुम खालाम @@ -58,6 +61,8 @@ page_rotate_ccw.label=घरि गिदिंनाय उल्था फा page_rotate_ccw_label=घरि गिदिंनाय उल्था फार्से फिदिं + + # Document properties dialog box document_properties.title=फोरमान बिलाइनि आखुथाय... document_properties_label=फोरमान बिलाइनि आखुथाय... @@ -82,10 +87,31 @@ document_properties_creator=सोरजिग्रा: document_properties_producer=PDF दिहुनग्रा: document_properties_version=PDF बिसान: document_properties_page_count=बिलाइनि हिसाब: +document_properties_page_size_unit_inches=in +document_properties_page_size_unit_millimeters=mm +document_properties_page_size_orientation_portrait=प'र्ट्रेट +document_properties_page_size_orientation_landscape=लेण्डस्केप +document_properties_page_size_name_a3=A3 +document_properties_page_size_name_a4=A4 +document_properties_page_size_name_letter=लायजाम +# LOCALIZATION NOTE (document_properties_page_size_dimension_string): +# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by +# the size, respectively their unit of measurement and orientation, of the (current) page. +document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}}) +# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string): +# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by +# the size, respectively their unit of measurement, name, and orientation, of the (current) page. +document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}}) +# LOCALIZATION NOTE (document_properties_linearized): The linearization status of +# the document; usually called "Fast Web View" in English locales of Adobe software. +document_properties_linearized_yes=नंगौ +document_properties_linearized_no=नङा document_properties_close=बन्द खालाम # LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by # a numerical per cent value. +print_progress_percent={{progress}}% +print_progress_close=नेवसि # Tooltips and alt text for side panel toolbar buttons # (the _label strings are alt text for the buttons, the .title strings are @@ -98,6 +124,7 @@ attachments_label=नांजाब होनाय thumbs.title=थामनेइलखौ दिन्थि thumbs_label=थामनेइल findbar.title=फोरमान बिलाइआव नागिरना दिहुन +findbar_label=नायगिरना दिहुन # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page @@ -108,6 +135,8 @@ thumb_page_title=बिलाइ {{page}} thumb_page_canvas=बिलाइ {{page}} नि थामनेइल # Find panel button title and messages +find_input.title=नायगिरना दिहुन +find_input.placeholder=फोरमान बिलाइआव नागिरना दिहुन... find_previous.title=बाथ्रा खोन्दोबनि सिगांनि नुजाथिनायखौ नागिर find_previous_label=आगोलनि find_next.title=बाथ्रा खोन्दोबनि उननि नुजाथिनायखौ नागिर @@ -116,6 +145,15 @@ find_highlight=गासैखौबो हाइलाइट खालाम find_match_case_label=गोरोबनाय केस find_reached_top=थालो निफ्राय जागायनानै फोरमान बिलाइनि बिजौआव सौहैबाय find_reached_bottom=बिजौ निफ्राय जागायनानै फोरमान बिलाइनि बिजौआव सौहैबाय +# LOCALIZATION NOTE (find_match_count): The supported plural forms are +# [one|two|few|many|other], with [other] as the default value. +# "{{current}}" and "{{total}}" will be replaced by a number representing the +# index of the currently active find result, respectively a number representing +# the total number of matches in the document. +# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are +# [zero|one|two|few|many|other], with [other] as the default value. +# "{{limit}}" will be replaced by a numerical value. +find_match_count_limit={[ plural(limit) ]} find_not_found=बाथ्रा खोन्दोब मोनाखै # Error panel labels @@ -144,6 +182,7 @@ page_scale_auto=गावनोगाव जुम page_scale_actual=थार महर # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a # numerical scale value. +page_scale_percent={{scale}}% # Loading indicator messages loading_error_indicator=गोरोन्थि @@ -152,6 +191,10 @@ invalid_file_error=बाहायजायै एबा गाज्रि ज missing_file_error=गोमानाय PDF फाइल unexpected_response_error=मिजिंथियै सार्भार फिननाय। +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. +annotation_date_string={{date}}, {{time}} + # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # "{{type}}" will be replaced with an annotation type from a list defined in # the PDF spec (32000-1:2008 Table 169 – Annotation types). @@ -160,8 +203,8 @@ text_annotation_type.alt=[{{type}} सोदोब बेखेवनाय] password_label=बे PDF फाइलखौ खेवनो पासवार्ड हाबहो। password_invalid=बाहायजायै पासवार्ड। अननानै फिन नाजा। password_ok=OK +password_cancel=नेवसि printing_not_supported=सांग्रांथि: साफायनाया बे ब्राउजारजों आबुङै हेफाजाब होजाया। printing_not_ready=सांग्रांथि: PDF खौ साफायनायनि थाखाय फुरायै ल'ड खालामाखै। web_fonts_disabled=वेब फन्टखौ लोरबां खालामबाय: अरजाबहोनाय PDF फन्टखौ बाहायनो हायाखै। -document_colors_not_allowed=PDF फोरमान बिलाइखौ बिसोरनि निजि गाब बाहायनो गनायथि होनाय जाया: 'बिसोरनि निजि गाब बासिखनो बिलाइखौ गनायथि हो'-खौ ब्राउजारआव लोरबां खालामनाय जायो। diff --git a/cps/static/locale/bs/viewer.properties b/cps/static/locale/bs/viewer.properties index 6c2122b8..e5346cb0 100644 --- a/cps/static/locale/bs/viewer.properties +++ b/cps/static/locale/bs/viewer.properties @@ -198,4 +198,3 @@ password_cancel=Otkaži printing_not_supported=Upozorenje: Štampanje nije u potpunosti podržano u ovom browseru. printing_not_ready=Upozorenje: PDF nije u potpunosti učitan za štampanje. web_fonts_disabled=Web fontovi su onemogućeni: nemoguće koristiti ubačene PDF fontove. -document_colors_not_allowed=PDF dokumentima nije dozvoljeno da koriste vlastite boje: 'Dozvoli stranicama da izaberu vlastite boje' je deaktivirano u browseru. diff --git a/cps/static/locale/ca/viewer.properties b/cps/static/locale/ca/viewer.properties index 77f421a4..ac6fb779 100644 --- a/cps/static/locale/ca/viewer.properties +++ b/cps/static/locale/ca/viewer.properties @@ -28,10 +28,10 @@ of_pages=de {{pagesCount}} # respectively a number representing the total number of pages in the document. page_of_pages=({{pageNumber}} de {{pagesCount}}) -zoom_out.title=Allunya -zoom_out_label=Allunya -zoom_in.title=Apropa -zoom_in_label=Apropa +zoom_out.title=Redueix +zoom_out_label=Redueix +zoom_in.title=Amplia +zoom_in_label=Amplia zoom.title=Escala presentation_mode.title=Canvia al mode de presentació presentation_mode_label=Mode de presentació @@ -72,6 +72,12 @@ scroll_horizontal_label=Desplaçament horitzontal scroll_wrapped.title=Activa el desplaçament continu scroll_wrapped_label=Desplaçament continu +spread_none.title=No agrupis les pàgines de dues en dues +spread_none_label=Una sola pàgina +spread_odd.title=Mostra dues pàgines començant per les pàgines de numeració senar +spread_odd_label=Doble pàgina (senar) +spread_even.title=Mostra dues pàgines començant per les pàgines de numeració parell +spread_even_label=Doble pàgina (parell) # Document properties dialog box document_properties.title=Propietats del document… @@ -142,6 +148,8 @@ thumbs_label=Miniatures findbar.title=Cerca al document findbar_label=Cerca +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Pàgina {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -220,6 +228,10 @@ invalid_file_error=El fitxer PDF no és vàlid o està malmès. missing_file_error=Falta el fitxer PDF. unexpected_response_error=Resposta inesperada del servidor. +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. +annotation_date_string={{date}}, {{time}} + # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # "{{type}}" will be replaced with an annotation type from a list defined in # the PDF spec (32000-1:2008 Table 169 – Annotation types). @@ -233,4 +245,3 @@ password_cancel=Cancel·la printing_not_supported=Avís: la impressió no és plenament funcional en aquest navegador. printing_not_ready=Atenció: el PDF no s'ha acabat de carregar per imprimir-lo. web_fonts_disabled=Els tipus de lletra web estan desactivats: no es poden utilitzar els tipus de lletra incrustats al PDF. -document_colors_not_allowed=Els documents PDF no poden usar els seus colors propis: «Permet a les pàgines triar els colors propis» es troba desactivat al navegador. diff --git a/cps/static/locale/cak/viewer.properties b/cps/static/locale/cak/viewer.properties index 8086f32a..d4eae51a 100644 --- a/cps/static/locale/cak/viewer.properties +++ b/cps/static/locale/cak/viewer.properties @@ -14,7 +14,7 @@ # Main toolbar buttons (tooltips and alt text for images) previous.title=Jun kan ruxaq -previous_label=Chuwäch +previous_label=Jun kan next.title=Jun chik ruxaq next_label=Jun chik @@ -35,7 +35,7 @@ zoom_in_label=Tinimirisäx zoom.title=Sum presentation_mode.title=Tijal ri rub'anikil niwachin presentation_mode_label=Pa rub'eyal niwachin -open_file.title=Tijaq yakb'äl +open_file.title=Tijaq Yakb'äl open_file_label=Tijaq print.title=Titz'ajb'äx print_label=Titz'ajb'äx @@ -111,7 +111,7 @@ document_properties_page_size_orientation_landscape=rukotz'olem document_properties_page_size_name_a3=A3 document_properties_page_size_name_a4=A4 document_properties_page_size_name_letter=Loman wuj -document_properties_page_size_name_legal=Nïm wuj +document_properties_page_size_name_legal=Taqanel tzijol # LOCALIZATION NOTE (document_properties_page_size_dimension_string): # "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by # the size, respectively their unit of measurement and orientation, of the (current) page. @@ -141,13 +141,15 @@ toggle_sidebar_notification.title=Tik'ex ri ajxikin yuqkajtz'ik (ri wuj eruk'wan toggle_sidebar_label=Tijal ri ajxikin kajtz'ik document_outline.title=Tik'ut pe ruch'akulal wuj (kamul-pitz'oj richin nirik'/nich'utinirisäx ronojel ruch'akulal) document_outline_label=Ruch'akulal wuj -attachments.title=Kek'ut pe taq taqoj +attachments.title=Kek'ut pe ri taq taqoj attachments_label=Taq taqoj thumbs.title=Kek'ut pe taq ch'utiq thumbs_label=Koköj findbar.title=Tikanöx chupam ri wuj findbar_label=Tikanöx +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Ruxaq {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -214,7 +216,7 @@ rendering_error=Xk'ulwachitäj jun sachoj toq ninuk'wachij ri ruxaq. page_scale_width=Ruwa ruxaq page_scale_fit=Tinuk' ruxaq page_scale_auto=Yonil chi nimilem -page_scale_actual=Runimilem +page_scale_actual=Runimilem Wakami # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a # numerical scale value. page_scale_percent={{scale}}% @@ -243,4 +245,3 @@ password_cancel=Tiq'at printing_not_supported=Rutzijol k'ayewal: Ri rutz'ajb'axik man koch'el ta ronojel pa re okik'amaya'l re'. printing_not_ready=Rutzijol k'ayewal: Ri PDF man xusamajij ta ronojel richin nitz'ajb'äx. web_fonts_disabled=E chupül ri taq ajk'amaya'l tz'ib': man tikirel ta nokisäx ri taq tz'ib' PDF pa ch'ikenïk -document_colors_not_allowed=Ri taq wuj pa PDF man ya'on ta q'ij chi ke richin nikokisaj ri taq kib'onil: “Tiya' q'ij chi ke ri taq ruxaq chi kekicha' ri taq kib'onil” chupun pa ri awokik'amaya'l. diff --git a/cps/static/locale/rw/viewer.properties b/cps/static/locale/ckb/viewer.properties similarity index 59% rename from cps/static/locale/rw/viewer.properties rename to cps/static/locale/ckb/viewer.properties index 68a893d3..d1bed431 100644 --- a/cps/static/locale/rw/viewer.properties +++ b/cps/static/locale/ckb/viewer.properties @@ -13,37 +13,61 @@ # limitations under the License. # Main toolbar buttons (tooltips and alt text for images) +next.title=پەڕەی دوواتر +next_label=دوواتر # LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. +page.title=پەرە # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number # representing the total number of pages in the document. # LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" # will be replaced by a number representing the currently visible page, # respectively a number representing the total number of pages in the document. -zoom.title=Ihindurangano -open_file.title=Gufungura Dosiye -open_file_label=Gufungura +open_file.title=پەڕگە بکەرەوە +open_file_label=کردنەوە +print.title=چاپکردن +download.title=داگرتن # Secondary toolbar and context menu +tools.title=ئامرازەکان +first_page.title=برۆ بۆ یەکەم پەڕە + + # Document properties dialog box +document_properties_file_name=ناوی پەڕگە: +document_properties_file_size=قەبارەی پەڕگە: # LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" # will be replaced by the PDF file size in kilobytes, respectively in bytes. # LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" # will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_title=Umutwe: +document_properties_title=سەردێڕ: +document_properties_author=نووسەر +document_properties_keywords=کلیلەوشە: # LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" # will be replaced by the creation/modification date, and time, of the PDF file. +# LOCALIZATION NOTE (document_properties_page_size_dimension_string): +# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by +# the size, respectively their unit of measurement and orientation, of the (current) page. +# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string): +# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by +# the size, respectively their unit of measurement, name, and orientation, of the (current) page. +# LOCALIZATION NOTE (document_properties_linearized): The linearization status of +# the document; usually called "Fast Web View" in English locales of Adobe software. +document_properties_close=داخستن # LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by # a numerical per cent value. +print_progress_close=پاشگەزبوونەوە # Tooltips and alt text for side panel toolbar buttons # (the _label strings are alt text for the buttons, the .title strings are # tooltips) +findbar_label=دۆزینەوە +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -51,9 +75,15 @@ document_properties_title=Umutwe: # number. # Find panel button title and messages -find_previous.title=Gushaka aho uyu murongo ugaruka mbere y'aha -find_next.title=Gushaka aho uyu murongo wongera kugaruka -find_not_found=Umurongo ntubonetse +find_input.title=دۆزینەوە +# LOCALIZATION NOTE (find_match_count): The supported plural forms are +# [one|two|few|many|other], with [other] as the default value. +# "{{current}}" and "{{total}}" will be replaced by a number representing the +# index of the currently active find result, respectively a number representing +# the total number of matches in the document. +# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are +# [zero|one|two|few|many|other], with [other] as the default value. +# "{{limit}}" will be replaced by a numerical value. # Error panel labels # LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be @@ -70,12 +100,12 @@ find_not_found=Umurongo ntubonetse # numerical scale value. # Loading indicator messages -loading_error_indicator=Ikosa + +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # "{{type}}" will be replaced with an annotation type from a list defined in # the PDF spec (32000-1:2008 Table 169 – Annotation types). # Some common types are e.g.: "Check", "Text", "Comment", "Note" -password_invalid=Ijambo ry'ibanga ridahari. Wakongera ukagerageza -password_ok=YEGO diff --git a/cps/static/locale/crh/viewer.properties b/cps/static/locale/crh/viewer.properties deleted file mode 100644 index c6ba334d..00000000 --- a/cps/static/locale/crh/viewer.properties +++ /dev/null @@ -1,242 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) -previous.title=Evvelki Saife -previous_label=Evvelki -next.title=Soñraki Saife -next_label=Soñraki - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -page.title=Saife -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -of_pages=/ {{pagesCount}} -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. -page_of_pages=({{pageNumber}} / {{pagesCount}}) - -zoom_out.title=Uzaqlaștır -zoom_out_label=Uzaqlaștır -zoom_in.title=Yaqınlaştır -zoom_in_label=Yaqınlaştır -zoom.title=Miqyasla -presentation_mode.title=Taqdim Tarzına Almaş -presentation_mode_label=Taqdim Tarzı -open_file.title=Dosye Aç -open_file_label=Aç -print.title=Bastır -print_label=Bastır -download.title=Endir -download_label=Endir -bookmark.title=Cari körünim (kopiyala yaki yañı pencerede aç) -bookmark_label=Cari körünim - -# Secondary toolbar and context menu -tools.title=Aletler -tools_label=Aletler -first_page.title=İlk Saifege Bar -first_page.label=İlk Saifege Bar -first_page_label=İlk Saifege Bar -last_page.title=Soñ Saifege Bar -last_page.label=Soñ Saifege Bar -last_page_label=Soñ Saifege Bar -page_rotate_cw.title=Saat Yönünde Devrettir -page_rotate_cw.label=Saat Yönünde Aylandır -page_rotate_cw_label=Saat Yönünde Aylandır -page_rotate_ccw.title=Saat Yönüniñ Tersine Devrettir -page_rotate_ccw.label=Saat Yönüniñ Tersine Aylandır -page_rotate_ccw_label=Saat Yönüniñ Tersine Aylandır - -cursor_text_select_tool.title=Metin Saylamı Aletini Qabilleştir -cursor_text_select_tool_label=Metin Saylamı Aleti -cursor_hand_tool.title=El Aletini Qabilleştir -cursor_hand_tool_label=El Aleti - -scroll_vertical.title=Şaquliy Taydırmanı Qullan -scroll_vertical_label=Şaquliy Taydırma -scroll_horizontal.title=Ufqiy Taydırmanı Qullan -scroll_horizontal_label=Ufqiy Taydırma -scroll_wrapped.title=Türülgen Taydırmanı Qullan -scroll_wrapped_label=Türülgen Taydırma - -spread_none.title=Saife yaymalarını qoşma -spread_none_label=Yaymasız -spread_odd.title=Saife yaymalarını tek-sayılı saifeler ile başlayaraq qoş -spread_odd_label=Tek Yaymalar -spread_even.title=Saife yaymalarını çift-sayılı saifeler ile başlayaraq qoş -spread_even_label=Çift Yaymalar - -# Document properties dialog box -document_properties.title=Vesiqa Hasiyetleri… -document_properties_label=Vesiqa Hasiyetleri… -document_properties_file_name=Dosye adı: -document_properties_file_size=Dosye ölçüsi: -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -document_properties_kb={{size_kb}} KB ({{size_b}} bayt) -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_mb={{size_mb}} MB ({{size_b}} bayt) -document_properties_title=Serleva: -document_properties_author=Müellif: -document_properties_subject=Mevzu: -document_properties_keywords=Anahtar-sözler: -document_properties_creation_date=İcat Tarihı: -document_properties_modification_date=Başqalaştırma Tarihi: -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. -document_properties_date_string={{date}}, {{time}} -document_properties_creator=Mücit: -document_properties_producer=PDF İstisalcısı: -document_properties_version=PDF Sürümi: -document_properties_page_count=Saife Adedi: -document_properties_page_size=Saife Ölçüsi: -document_properties_page_size_unit_inches=düym -document_properties_page_size_unit_millimeters=mm -document_properties_page_size_orientation_portrait=portret -document_properties_page_size_orientation_landscape=manzara -document_properties_page_size_name_a3=A3 -document_properties_page_size_name_a4=A4 -document_properties_page_size_name_letter=Mektüp -document_properties_page_size_name_legal=Uquqiy -# LOCALIZATION NOTE (document_properties_page_size_dimension_string): -# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by -# the size, respectively their unit of measurement and orientation, of the (current) page. -document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}}) -# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string): -# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by -# the size, respectively their unit of measurement, name, and orientation, of the (current) page. -document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}}) -# LOCALIZATION NOTE (document_properties_linearized): The linearization status of -# the document; usually called "Fast Web View" in English locales of Adobe software. -document_properties_linearized=Tez Ağ Körünimi: -document_properties_linearized_yes=Ebet -document_properties_linearized_no=Hayır -document_properties_close=Qapat - -print_progress_message=Vesiqa bastırılmağa azırlanıla… -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. -print_progress_percent=%{{progress}} -print_progress_close=Vazgeç - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) -toggle_sidebar.title=Yan-çubuqnı Tönter -toggle_sidebar_notification.title=Yançubuqnı Tönter (vesiqa tış-hizanı/ilişiklerni ihtiva ete) -toggle_sidebar_label=Yan-çubuqnı Tönter -document_outline.title=Vesiqa Tış-hizasını Köster (unsurlarnıñ episini cayıldırmaq/eştirmek içün çifte-çertiñiz) -document_outline_label=Vesiqa Tış-hizası -attachments.title=İlişiklerni Köster -attachments_label=İlişikler -thumbs.title=Tırnaq-Resimlerni Köster -thumbs_label=Tırnaq-Resimler -findbar.title=Vesiqada Tap -findbar_label=Tap - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -thumb_page_title=Saife {{page}} -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. -thumb_page_canvas={{page}}. Saifeniñ Tırnaq-Resmi - -# Find panel button title and messages -find_input.title=Tap -find_input.placeholder=Vesiqada tap… -find_previous.title=İbareniñ evvelki rastkelişini tap -find_previous_label=Evvelki -find_next.title=İbareniñ soñraki rastkelişini tap -find_next_label=Soñraki -find_highlight=Episini ışıqlandır -find_match_case_label=Büyük-ufaq hassasiyeti -find_entire_word_label=Bütün sözler -find_reached_top=Saifeniñ töpesi irişildi, tüpten devam etildi -find_reached_bottom=Saifeniñ soñu irişildi, töpeden devam etildi -# LOCALIZATION NOTE (find_match_count): The supported plural forms are -# [one|two|few|many|other], with [other] as the default value. -# "{{current}}" and "{{total}}" will be replaced by a number representing the -# index of the currently active find result, respectively a number representing -# the total number of matches in the document. -find_match_count={[ plural(total) ]} -find_match_count[one]={{total}} eşleşmeden {{current}} eşleşme -find_match_count[two]={{total}} eşleşmeden {{current}}. eşleşme -find_match_count[few]={{total}} eşleşmeden {{current}}. eşleşme -find_match_count[many]={{total}} eşleşmeden {{current}}. eşleşme -find_match_count[other]={{total}} eşleşmeden {{current}}. eşleşme -# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are -# [zero|one|two|few|many|other], with [other] as the default value. -# "{{limit}}" will be replaced by a numerical value. -find_match_count_limit={[ plural(limit) ]} -find_match_count_limit[zero]={{limit}} eşleşmeden fazla -find_match_count_limit[one]={{limit}} eşleşmeden fazla -find_match_count_limit[two]={{limit}} eşleşmeden fazla -find_match_count_limit[few]={{limit}} eşleşmeden fazla -find_match_count_limit[many]={{limit}} eşleşmeden fazla -find_match_count_limit[other]={{limit}} eşleşmeden fazla -find_not_found=İbare tapılmadı - -# Error panel labels -error_more_info=Daa Çoq Malümat -error_less_info=Daa Az Malümat -error_close=Qapat -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -error_version_info=PDF.js s{{version}} (inşa: {{build}}) -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -error_message=Mesaj: {{message}} -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -error_stack=Çeren: {{stack}} -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -error_file=Dosye: {{file}} -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number -error_line=Satır: {{line}} -rendering_error=Saife qılınğanda bir hata ortağa çıqtı. - -# Predefined zoom values -page_scale_width=Saife Kenişligi -page_scale_fit=Saifeni Sığdır -page_scale_auto=Öz-özünden Miqyasla -page_scale_actual=Fiiliy Ölçü -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. -page_scale_percent=%{{scale}} - -# Loading indicator messages -loading_error_indicator=Hata -loading_error=PDF yüklengende bir hata ortağa çıqtı. -invalid_file_error=Keçersiz yaki ifsat etilgen PDF dosyesi. -missing_file_error=Eksik PDF dosyesi. -unexpected_response_error=Beklenmegen sunucı cevabı. - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -text_annotation_type.alt=[{{type}} Notlandırması] -password_label=Bu PDF dosyesini açmaq içün sır-sözni kirsetiñiz. -password_invalid=Keçersiz sır-söz. Lütfen yañıdan deñeñiz. -password_ok=Tamam -password_cancel=Vazgeç - -printing_not_supported=Tenbi: Bastıruv bu kezici tarafından tam olaraq desteklenmey. -printing_not_ready=Tenbi: PDF bastıruv içün bütünley yüklengen degildir. -web_fonts_disabled=Ağ urufatları naqabildir: içeri-yatqızılğan PDF urufatları qullanılalmay. -document_colors_not_allowed=PDF vesiqalarınıñ öz tüslerini qullanması caiz degildir: “Saifelerge öz tüslerini seçmege izin ber” kezicide ğayrıfaalleştirilgendir. diff --git a/cps/static/locale/cs/viewer.properties b/cps/static/locale/cs/viewer.properties index 1dd8a36c..646f410b 100644 --- a/cps/static/locale/cs/viewer.properties +++ b/cps/static/locale/cs/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Náhledy findbar.title=Najde v dokumentu findbar_label=Najít +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Strana {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -217,7 +219,7 @@ page_scale_auto=Automatická velikost page_scale_actual=Skutečná velikost # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a # numerical scale value. -page_scale_percent={{scale}}% +page_scale_percent={{scale}} % # Loading indicator messages loading_error_indicator=Chyba @@ -243,4 +245,3 @@ password_cancel=Zrušit printing_not_supported=Upozornění: Tisk není v tomto prohlížeči plně podporován. printing_not_ready=Upozornění: Dokument PDF není kompletně načten. web_fonts_disabled=Webová písma jsou zakázána, proto není možné použít vložená písma PDF. -document_colors_not_allowed=PDF dokumenty nemají povoleno používat vlastní barvy: volba 'Povolit stránkám používat vlastní barvy' je v prohlížeči deaktivována. diff --git a/cps/static/locale/csb/viewer.properties b/cps/static/locale/csb/viewer.properties deleted file mode 100644 index 293a353c..00000000 --- a/cps/static/locale/csb/viewer.properties +++ /dev/null @@ -1,134 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - -# Main toolbar buttons (tooltips and alt text for images) -previous.title=Pòprzédnô strona -previous_label=Pòprzédnô -next.title=Nôslédnô strona -next_label=Nôslédnô - -# LOCALIZATION NOTE (page_label, page_of): -# These strings are concatenated to form the "Page: X of Y" string. -# Do not translate "{{pageCount}}", it will be substituted with a number -# representing the total number of pages. -page_label=Strona: -page_of=z {{pageCount}} - -zoom_out.title=Zmniészë -zoom_out_label=Zmniészë -zoom_in.title=Zwikszë -zoom_in_label=Wiôlgòsc -zoom.title=Wiôlgòsc -print.title=Drëkùjë -print_label=Drëkùjë -presentation_mode.title=Przéńdzë w trib prezentacje -presentation_mode_label=Trib prezentacje -open_file.title=Òtemkni lopk -open_file_label=Òtemkni -download.title=Zladënk -download_label=Zladënk -bookmark.title=Spamiãtôj wëzdrzatk (kòpérëje, abò òtemkni w nowim òknnie) -bookmark_label=Aktualny wëzdrzatk - -find_label=Szëkôj: -find_previous.title=Biéj do pòprzédnégò wënikù szëkbë -find_previous_label=Pòprzédny -find_next.title=Biéj do nôslédnégò wënikù szëkbë -find_next_label=Nôslédny -find_highlight=Pòdszkrzëni wszëtczé -find_match_case_label=Rozeznôwôj miarã lëterów -find_not_found=Nie nalôzł tekstu -find_reached_bottom=Doszedł do kùńca dokùmentu, zaczinającë òd górë -find_reached_top=Doszedł do pòczątkù dokùmentu, zaczinającë òd dołù - -toggle_sidebar.title=Pòsuwk wëbiérkù -toggle_sidebar_label=Pòsuwk wëbiérkù - -outline.title=Wëskrzëni òbcéch dokùmentu -outline_label=Òbcéch dokùmentu -thumbs.title=Wëskrzëni miniaturë -thumbs_label=Miniaturë -findbar.title=Przeszëkôj dokùment -findbar_label=Nalezë -tools_label=Nôrzãdła -first_page.title=Biéj do pierszi stronë -first_page.label=Biéj do pierszi stronë -last_page.label=Biéj do òstatny stronë -invalid_file_error=Lëchi ôrt, abò pòpsëti lopk PDF. - - - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -thumb_page_title=Strona {{page}} -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. -thumb_page_canvas=Miniatura stronë {{page}} - -# Error panel labels -error_more_info=Wicy infòrmacje -error_less_info=Mni infòrmacje -error_close=Close -error_version_info=PDF.js v{{version}} (build: {{build}}) - - -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -error_message=Message: {{wiadło}} -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -error_stack=Stack: {{stóg}} -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -error_file=File: {{lopk}} -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number -error_line=Line: {{line}} -rendering_error=Pòkôza sã fela przë renderowanim stronë. - -# Predefined zoom values -page_scale_width=Szérzawa stronë -page_scale_fit=Dopasëje stronã -page_scale_auto=Aùtomatnô wiôlgòsc -page_scale_actual=Naturalnô wiôlgòsc - -# Loading indicator messages -# LOCALIZATION NOTE (error_line): "{{[percent}}" will be replaced with a percentage -loading_error_indicator=Fela -loading_error=Pòkôza sã fela przë wczëtiwanim PDFù. - -# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip. -# "{{[type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" - -request_password=PDF je zabezpieczony parolą: -printing_not_supported = Òstrzéga: przezérnik nie je do kùńca wspieróny przez drëkôrze - -# Context menu -page_rotate_cw.label=Òbkrãcë w prawò -page_rotate_ccw.label=Òbkrãcë w lewò - - -last_page.title=Biéj do pòprzédny stronë -last_page_label=Biéj do pòprzédny stronë -page_rotate_cw.title=Òbkrãcë w prawò -page_rotate_cw_label=Òbkrãcë w prawò -page_rotate_ccw.title=Òbkrãcë w lewò -page_rotate_ccw_label=Òbkrãcë w lewò - - -web_fonts_disabled=Sécowé czconczi są wëłączoné: włączë je, bë móc ùżiwac òsadzonëch czconków w lopkach PDF. - - -missing_file_error=Felëje lopka PDF. -printing_not_ready = Òstrzéga: lopk mùszi sã do kùńca wczëtac zanim gò mòże drëkòwac - -document_colors_disabled=Dokùmentë PDF nie mògą ù swòjich farwów: \'Pòzwòlë stronóm wëbierac swòje farwë\' je wëłączoné w przezérnikù. -invalid_password=Lëchô parola. -text_annotation_type.alt=[Adnotacjô {{type}}] - -tools.title=Tools -first_page_label=Go to First Page - - diff --git a/cps/static/locale/cy/viewer.properties b/cps/static/locale/cy/viewer.properties index 45493a54..16cda5fd 100644 --- a/cps/static/locale/cy/viewer.properties +++ b/cps/static/locale/cy/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Lluniau Bach findbar.title=Canfod yn y Ddogfen findbar_label=Canfod +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Tudalen {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Diddymu printing_not_supported=Rhybudd: Nid yw argraffu yn cael ei gynnal yn llawn gan y porwr. printing_not_ready=Rhybudd: Nid yw'r PDF wedi ei lwytho'n llawn ar gyfer argraffu. web_fonts_disabled=Ffontiau gwe wedi eu hanalluogi: methu defnyddio ffontiau PDF mewnblanedig. -document_colors_not_allowed=Nid oes caniatâd i ddogfennau PDF i ddefnyddio eu lliwiau eu hunain: Mae “Caniatáu i dudalennau ddefnyddio eu lliwiau eu hunain” wedi ei atal yn y porwr. diff --git a/cps/static/locale/da/viewer.properties b/cps/static/locale/da/viewer.properties index dce46725..38ed99d0 100644 --- a/cps/static/locale/da/viewer.properties +++ b/cps/static/locale/da/viewer.properties @@ -33,12 +33,12 @@ zoom_out_label=Zoom ud zoom_in.title=Zoom ind zoom_in_label=Zoom ind zoom.title=Zoom -print.title=Udskriv -print_label=Udskriv presentation_mode.title=Skift til fuldskærmsvisning presentation_mode_label=Fuldskærmsvisning open_file.title=Åbn fil open_file_label=Åbn +print.title=Udskriv +print_label=Udskriv download.title=Hent download_label=Hent bookmark.title=Aktuel visning (kopier eller åbn i et nyt vindue) @@ -148,6 +148,8 @@ thumbs_label=Miniaturer findbar.title=Find i dokument findbar_label=Find +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Side {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Fortryd printing_not_supported=Advarsel: Udskrivning er ikke fuldt understøttet af browseren. printing_not_ready=Advarsel: PDF-filen er ikke fuldt indlæst til udskrivning. web_fonts_disabled=Webskrifttyper er deaktiverede. De indlejrede skrifttyper i PDF-filen kan ikke anvendes. -document_colors_not_allowed=PDF-dokumenter må ikke bruge deres egne farver: 'Tillad sider at vælge deres egne farver' er deaktiveret i browseren. diff --git a/cps/static/locale/de/viewer.properties b/cps/static/locale/de/viewer.properties index cea73190..26b682eb 100644 --- a/cps/static/locale/de/viewer.properties +++ b/cps/static/locale/de/viewer.properties @@ -130,7 +130,7 @@ document_properties_close=Schließen print_progress_message=Dokument wird für Drucken vorbereitet… # LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by # a numerical per cent value. -print_progress_percent={{progress}}% +print_progress_percent={{progress}} % print_progress_close=Abbrechen # Tooltips and alt text for side panel toolbar buttons @@ -148,6 +148,8 @@ thumbs_label=Miniaturansichten findbar.title=Dokument durchsuchen findbar_label=Suchen +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Seite {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -217,7 +219,7 @@ page_scale_auto=Automatischer Zoom page_scale_actual=Originalgröße # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a # numerical scale value. -page_scale_percent={{scale}}% +page_scale_percent={{scale}} % # Loading indicator messages loading_error_indicator=Fehler @@ -243,4 +245,3 @@ password_cancel=Abbrechen printing_not_supported=Warnung: Die Drucken-Funktion wird durch diesen Browser nicht vollständig unterstützt. printing_not_ready=Warnung: Die PDF-Datei ist nicht vollständig geladen, dies ist für das Drucken aber empfohlen. web_fonts_disabled=Web-Schriftarten sind deaktiviert: Eingebettete PDF-Schriftarten konnten nicht geladen werden. -document_colors_not_allowed=PDF-Dokumenten ist es nicht erlaubt, ihre eigenen Farben zu verwenden: 'Seiten das Verwenden von eigenen Farben erlauben' ist im Browser deaktiviert. diff --git a/cps/static/locale/dsb/viewer.properties b/cps/static/locale/dsb/viewer.properties new file mode 100644 index 00000000..468ccd74 --- /dev/null +++ b/cps/static/locale/dsb/viewer.properties @@ -0,0 +1,247 @@ +# 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. + +# Main toolbar buttons (tooltips and alt text for images) +previous.title=Pjerwjejšny bok +previous_label=Slědk +next.title=Pśiducy bok +next_label=Dalej + +# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. +page.title=Bok +# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number +# representing the total number of pages in the document. +of_pages=z {{pagesCount}} +# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" +# will be replaced by a number representing the currently visible page, +# respectively a number representing the total number of pages in the document. +page_of_pages=({{pageNumber}} z {{pagesCount}}) + +zoom_out.title=Pómjeńšyś +zoom_out_label=Pómjeńšyś +zoom_in.title=Pówětšyś +zoom_in_label=Pówětšyś +zoom.title=Skalěrowanje +presentation_mode.title=Do prezentaciskego modusa pśejś +presentation_mode_label=Prezentaciski modus +open_file.title=Dataju wócyniś +open_file_label=Wócyniś +print.title=Śišćaś +print_label=Śišćaś +download.title=Ześěgnuś +download_label=Ześěgnuś +bookmark.title=Aktualny naglěd (kopěrowaś abo w nowem woknje wócyniś) +bookmark_label=Aktualny naglěd + +# Secondary toolbar and context menu +tools.title=Rědy +tools_label=Rědy +first_page.title=K prědnemu bokoju +first_page.label=K prědnemu bokoju +first_page_label=K prědnemu bokoju +last_page.title=K slědnemu bokoju +last_page.label=K slědnemu bokoju +last_page_label=K slědnemu bokoju +page_rotate_cw.title=Wobwjertnuś ako špěra źo +page_rotate_cw.label=Wobwjertnuś ako špěra źo +page_rotate_cw_label=Wobwjertnuś ako špěra źo +page_rotate_ccw.title=Wobwjertnuś nawopaki ako špěra źo +page_rotate_ccw.label=Wobwjertnuś nawopaki ako špěra źo +page_rotate_ccw_label=Wobwjertnuś nawopaki ako špěra źo + +cursor_text_select_tool.title=Rěd za wuběranje teksta zmóžniś +cursor_text_select_tool_label=Rěd za wuběranje teksta +cursor_hand_tool.title=Rucny rěd zmóžniś +cursor_hand_tool_label=Rucny rěd + +scroll_vertical.title=Wertikalne suwanje wužywaś +scroll_vertical_label=Wertikalnje suwanje +scroll_horizontal.title=Horicontalne suwanje wužywaś +scroll_horizontal_label=Horicontalne suwanje +scroll_wrapped.title=Pózlažke suwanje wužywaś +scroll_wrapped_label=Pózlažke suwanje + +spread_none.title=Boki njezwězaś +spread_none_label=Žeden dwójny bok +spread_odd.title=Boki zachopinajucy z njerownymi bokami zwězaś +spread_odd_label=Njerowne boki +spread_even.title=Boki zachopinajucy z rownymi bokami zwězaś +spread_even_label=Rowne boki + +# Document properties dialog box +document_properties.title=Dokumentowe kakosći… +document_properties_label=Dokumentowe kakosći… +document_properties_file_name=Mě dataje: +document_properties_file_size=Wjelikosć dataje: +# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" +# will be replaced by the PDF file size in kilobytes, respectively in bytes. +document_properties_kb={{size_kb}} KB ({{size_b}} bajtow) +# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" +# will be replaced by the PDF file size in megabytes, respectively in bytes. +document_properties_mb={{size_mb}} MB ({{size_b}} bajtow) +document_properties_title=Titel: +document_properties_author=Awtor: +document_properties_subject=Tema: +document_properties_keywords=Klucowe słowa: +document_properties_creation_date=Datum napóranja: +document_properties_modification_date=Datum změny: +# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" +# will be replaced by the creation/modification date, and time, of the PDF file. +document_properties_date_string={{date}}, {{time}} +document_properties_creator=Awtor: +document_properties_producer=PDF-gótowaŕ: +document_properties_version=PDF-wersija: +document_properties_page_count=Licba bokow: +document_properties_page_size=Wjelikosć boka: +document_properties_page_size_unit_inches=col +document_properties_page_size_unit_millimeters=mm +document_properties_page_size_orientation_portrait=wusoki format +document_properties_page_size_orientation_landscape=prěcny format +document_properties_page_size_name_a3=A3 +document_properties_page_size_name_a4=A4 +document_properties_page_size_name_letter=Letter +document_properties_page_size_name_legal=Legal +# LOCALIZATION NOTE (document_properties_page_size_dimension_string): +# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by +# the size, respectively their unit of measurement and orientation, of the (current) page. +document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}}) +# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string): +# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by +# the size, respectively their unit of measurement, name, and orientation, of the (current) page. +document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}}) +# LOCALIZATION NOTE (document_properties_linearized): The linearization status of +# the document; usually called "Fast Web View" in English locales of Adobe software. +document_properties_linearized=Fast Web View: +document_properties_linearized_yes=Jo +document_properties_linearized_no=Ně +document_properties_close=Zacyniś + +print_progress_message=Dokument pśigótujo se za śišćanje… +# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by +# a numerical per cent value. +print_progress_percent={{progress}}% +print_progress_close=Pśetergnuś + +# Tooltips and alt text for side panel toolbar buttons +# (the _label strings are alt text for the buttons, the .title strings are +# tooltips) +toggle_sidebar.title=Bócnicu pokazaś/schowaś +toggle_sidebar_notification.title=Bocnicu pśešaltowaś (dokument wopśimujo pśeglěd/pśipiski) +toggle_sidebar_label=Bócnicu pokazaś/schowaś +document_outline.title=Dokumentowe naraźenje pokazaś (dwójne kliknjenje, aby se wšykne zapiski pokazali/schowali) +document_outline_label=Dokumentowa struktura +attachments.title=Pśidanki pokazaś +attachments_label=Pśidanki +thumbs.title=Miniatury pokazaś +thumbs_label=Miniatury +findbar.title=W dokumenśe pytaś +findbar_label=Pytaś + +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Bok {{page}} +# Thumbnails panel item (tooltip and alt text for images) +# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page +# number. +thumb_page_title=Bok {{page}} +# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page +# number. +thumb_page_canvas=Miniatura boka {{page}} + +# Find panel button title and messages +find_input.title=Pytaś +find_input.placeholder=W dokumenśe pytaś… +find_previous.title=Pjerwjejšne wustupowanje pytańskego wuraza pytaś +find_previous_label=Slědk +find_next.title=Pśidujuce wustupowanje pytańskego wuraza pytaś +find_next_label=Dalej +find_highlight=Wšykne wuzwignuś +find_match_case_label=Na wjelikopisanje źiwaś +find_entire_word_label=Cełe słowa +find_reached_top=Zachopjeńk dokumenta dostany, pókšacujo se z kóńcom +find_reached_bottom=Kóńc dokumenta dostany, pókšacujo se ze zachopjeńkom +# LOCALIZATION NOTE (find_match_count): The supported plural forms are +# [one|two|few|many|other], with [other] as the default value. +# "{{current}}" and "{{total}}" will be replaced by a number representing the +# index of the currently active find result, respectively a number representing +# the total number of matches in the document. +find_match_count={[ plural(total) ]} +find_match_count[one]={{current}} z {{total}} wótpowědnika +find_match_count[two]={{current}} z {{total}} wótpowědnikowu +find_match_count[few]={{current}} z {{total}} wótpowědnikow +find_match_count[many]={{current}} z {{total}} wótpowědnikow +find_match_count[other]={{current}} z {{total}} wótpowědnikow +# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are +# [zero|one|two|few|many|other], with [other] as the default value. +# "{{limit}}" will be replaced by a numerical value. +find_match_count_limit={[ plural(limit) ]} +find_match_count_limit[zero]=Wěcej ako {{limit}} wótpowědnikow +find_match_count_limit[one]=Wěcej ako {{limit}} wótpowědnik +find_match_count_limit[two]=Wěcej ako {{limit}} wótpowědnika +find_match_count_limit[few]=Wěcej ako {{limit}} wótpowědniki +find_match_count_limit[many]=Wěcej ako {{limit}} wótpowědnikow +find_match_count_limit[other]=Wěcej ako {{limit}} wótpowědnikow +find_not_found=Pytański wuraz njejo se namakał + +# Error panel labels +error_more_info=Wěcej informacijow +error_less_info=Mjenjej informacijow +error_close=Zacyniś +# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be +# replaced by the PDF.JS version and build ID. +error_version_info=PDF.js v{{version}} (build: {{build}}) +# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an +# english string describing the error. +error_message=Powěźenka: {{message}} +# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack +# trace. +error_stack=Lisćina zawołanjow: {{stack}} +# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename +error_file=Dataja: {{file}} +# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number +error_line=Smužka: {{line}} +rendering_error=Pśi zwobraznjanju boka jo zmólka nastała. + +# Predefined zoom values +page_scale_width=Šyrokosć boka +page_scale_fit=Wjelikosć boka +page_scale_auto=Awtomatiske skalěrowanje +page_scale_actual=Aktualna wjelikosć +# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a +# numerical scale value. +page_scale_percent={{scale}}% + +# Loading indicator messages +loading_error_indicator=Zmólka +loading_error=Pśi zacytowanju PDF jo zmólka nastała. +invalid_file_error=Njepłaśiwa abo wobškóźona PDF-dataja. +missing_file_error=Felujuca PDF-dataja. +unexpected_response_error=Njewócakane serwerowe wótegrono. + +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. +annotation_date_string={{date}}, {{time}} + +# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. +# "{{type}}" will be replaced with an annotation type from a list defined in +# the PDF spec (32000-1:2008 Table 169 – Annotation types). +# Some common types are e.g.: "Check", "Text", "Comment", "Note" +text_annotation_type.alt=[Typ pśipiskow: {{type}}] +password_label=Zapódajśo gronidło, aby PDF-dataju wócynił. +password_invalid=Njepłaśiwe gronidło. Pšosym wopytajśo hyšći raz. +password_ok=W pórěźe +password_cancel=Pśetergnuś + +printing_not_supported=Warnowanje: Śišćanje njepódpěra se połnje pśez toś ten wobglědowak. +printing_not_ready=Warnowanje: PDF njejo se za śišćanje dopołnje zacytał. +web_fonts_disabled=Webpisma su znjemóžnjone: njejo móžno, zasajźone PDF-pisma wužywaś. diff --git a/cps/static/locale/el/viewer.properties b/cps/static/locale/el/viewer.properties index d7a6abc1..896bbeef 100644 --- a/cps/static/locale/el/viewer.properties +++ b/cps/static/locale/el/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Μικρογραφίες findbar.title=Εύρεση στο έγγραφο findbar_label=Εύρεση +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Σελίδα {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Ακύρωση printing_not_supported=Προειδοποίηση: Η εκτύπωση δεν υποστηρίζεται πλήρως από αυτόν τον περιηγητή. printing_not_ready=Προειδοποίηση: Το PDF δεν φορτώθηκε πλήρως για εκτύπωση. web_fonts_disabled=Οι γραμματοσειρές Web απενεργοποιημένες: αδυναμία χρήσης των ενσωματωμένων γραμματοσειρών PDF. -document_colors_not_allowed=Στα PDF έγγραφα δεν επιτρέπεται να χρησιμοποιούν τα δικά τους χρώματα: Το “Να επιτρέπεται στις σελίδες να επιλέγουν τα δικά τους χρώματα” είναι απενεργοποιημένο στον περιηγητή. diff --git a/cps/static/locale/en-CA/viewer.properties b/cps/static/locale/en-CA/viewer.properties index e52573b1..554a0e17 100644 --- a/cps/static/locale/en-CA/viewer.properties +++ b/cps/static/locale/en-CA/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Thumbnails findbar.title=Find in Document findbar_label=Find +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Page {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Cancel printing_not_supported=Warning: Printing is not fully supported by this browser. printing_not_ready=Warning: The PDF is not fully loaded for printing. web_fonts_disabled=Web fonts are disabled: unable to use embedded PDF fonts. -document_colors_not_allowed=PDF documents are not allowed to use their own colours: “Allow pages to choose their own colours” is deactivated in the browser. diff --git a/cps/static/locale/en-GB/viewer.properties b/cps/static/locale/en-GB/viewer.properties index e52573b1..554a0e17 100644 --- a/cps/static/locale/en-GB/viewer.properties +++ b/cps/static/locale/en-GB/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Thumbnails findbar.title=Find in Document findbar_label=Find +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Page {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Cancel printing_not_supported=Warning: Printing is not fully supported by this browser. printing_not_ready=Warning: The PDF is not fully loaded for printing. web_fonts_disabled=Web fonts are disabled: unable to use embedded PDF fonts. -document_colors_not_allowed=PDF documents are not allowed to use their own colours: “Allow pages to choose their own colours” is deactivated in the browser. diff --git a/cps/static/locale/en-US/viewer.properties b/cps/static/locale/en-US/viewer.properties index 2dd7751a..d31103c0 100644 --- a/cps/static/locale/en-US/viewer.properties +++ b/cps/static/locale/en-US/viewer.properties @@ -137,17 +137,22 @@ print_progress_close=Cancel # (the _label strings are alt text for the buttons, the .title strings are # tooltips) toggle_sidebar.title=Toggle Sidebar -toggle_sidebar_notification.title=Toggle Sidebar (document contains outline/attachments) +toggle_sidebar_notification2.title=Toggle Sidebar (document contains outline/attachments/layers) toggle_sidebar_label=Toggle Sidebar document_outline.title=Show Document Outline (double-click to expand/collapse all items) document_outline_label=Document Outline attachments.title=Show Attachments attachments_label=Attachments +layers.title=Show Layers (double-click to reset all layers to the default state) +layers_label=Layers thumbs.title=Show Thumbnails thumbs_label=Thumbnails findbar.title=Find in Document findbar_label=Find +additional_layers=Additional Layers +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Page {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +248,3 @@ password_cancel=Cancel printing_not_supported=Warning: Printing is not fully supported by this browser. printing_not_ready=Warning: The PDF is not fully loaded for printing. web_fonts_disabled=Web fonts are disabled: unable to use embedded PDF fonts. -document_colors_not_allowed=PDF documents are not allowed to use their own colors: “Allow pages to choose their own colors” is deactivated in the browser. diff --git a/cps/static/locale/eo/viewer.properties b/cps/static/locale/eo/viewer.properties index eb294955..804bd984 100644 --- a/cps/static/locale/eo/viewer.properties +++ b/cps/static/locale/eo/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Miniaturoj findbar.title=Serĉi en dokumento findbar_label=Serĉi +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Paĝo {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Nuligi printing_not_supported=Averto: tiu ĉi retumilo ne plene subtenas presadon. printing_not_ready=Averto: la PDF dosiero ne estas plene ŝargita por presado. web_fonts_disabled=Neaktivaj teksaĵaj tiparoj: ne elbas uzi enmetitajn tiparojn de PDF. -document_colors_not_allowed=PDF dokumentoj ne rajtas uzi siajn proprajn kolorojn: 'Permesi al paĝoj uzi siajn proprajn kolorojn' ne estas aktiva en la retumilo. diff --git a/cps/static/locale/es-AR/viewer.properties b/cps/static/locale/es-AR/viewer.properties index 6f3662c7..ca2c87ba 100644 --- a/cps/static/locale/es-AR/viewer.properties +++ b/cps/static/locale/es-AR/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Miniaturas findbar.title=Buscar en documento findbar_label=Buscar +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Página {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Cancelar printing_not_supported=Advertencia: La impresión no está totalmente soportada por este navegador. printing_not_ready=Advertencia: El PDF no está completamente cargado para impresión. web_fonts_disabled=Tipografía web deshabilitada: no se pueden usar tipos incrustados en PDF. -document_colors_not_allowed=Los documentos PDF no tienen permitido usar sus propios colores: 'Permitir a las páginas elegir sus propios colores' está desactivado en el navegador. diff --git a/cps/static/locale/es-CL/viewer.properties b/cps/static/locale/es-CL/viewer.properties index 7691ed7f..b6ac4093 100644 --- a/cps/static/locale/es-CL/viewer.properties +++ b/cps/static/locale/es-CL/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Miniaturas findbar.title=Buscar en el documento findbar_label=Buscar +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Página {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -208,7 +210,7 @@ error_stack=Pila: {{stack}} error_file=Archivo: {{file}} # LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number error_line=Línea: {{line}} -rendering_error=Ha ocurrido un error al renderizar la página. +rendering_error=Ocurrió un error al renderizar la página. # Predefined zoom values page_scale_width=Ancho de página @@ -221,7 +223,7 @@ page_scale_percent={{scale}}% # Loading indicator messages loading_error_indicator=Error -loading_error=Ha ocurrido un error al cargar el PDF. +loading_error=Ocurrió un error al cargar el PDF. invalid_file_error=Archivo PDF inválido o corrupto. missing_file_error=Falta el archivo PDF. unexpected_response_error=Respuesta del servidor inesperada. @@ -243,4 +245,3 @@ password_cancel=Cancelar printing_not_supported=Advertencia: Imprimir no está soportado completamente por este navegador. printing_not_ready=Advertencia: El PDF no está completamente cargado para ser impreso. web_fonts_disabled=Las tipografías web están desactivadas: imposible usar las fuentes PDF embebidas. -document_colors_not_allowed=Los documentos PDF no tienen permitido usar sus propios colores: 'Permitir a las páginas elegir sus propios colores' está desactivado en el navegador. diff --git a/cps/static/locale/es-ES/viewer.properties b/cps/static/locale/es-ES/viewer.properties index 0a632ece..75e5f0ad 100644 --- a/cps/static/locale/es-ES/viewer.properties +++ b/cps/static/locale/es-ES/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Miniaturas findbar.title=Buscar en el documento findbar_label=Buscar +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Página {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Cancelar printing_not_supported=Advertencia: Imprimir no está totalmente soportado por este navegador. printing_not_ready=Advertencia: Este PDF no se ha cargado completamente para poder imprimirse. web_fonts_disabled=Las tipografías web están desactivadas: es imposible usar las tipografías PDF embebidas. -document_colors_not_allowed=Los documentos PDF no tienen permitido usar sus propios colores: 'Permitir a las páginas elegir sus propios colores' está desactivado en el navegador. diff --git a/cps/static/locale/es-MX/viewer.properties b/cps/static/locale/es-MX/viewer.properties index 211b19e4..5098ad19 100644 --- a/cps/static/locale/es-MX/viewer.properties +++ b/cps/static/locale/es-MX/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Miniaturas findbar.title=Buscar en el documento findbar_label=Buscar +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Página {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -226,6 +228,10 @@ invalid_file_error=Archivo PDF invalido o dañado. missing_file_error=Archivo PDF no encontrado. unexpected_response_error=Respuesta inesperada del servidor. +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. +annotation_date_string={{date}}, {{time}} + # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # "{{type}}" will be replaced with an annotation type from a list defined in # the PDF spec (32000-1:2008 Table 169 – Annotation types). @@ -239,4 +245,3 @@ password_cancel=Cancelar printing_not_supported=Advertencia: La impresión no esta completamente soportada por este navegador. printing_not_ready=Advertencia: El PDF no cargo completamente para impresión. web_fonts_disabled=Las fuentes web están desactivadas: es imposible usar las fuentes PDF embebidas. -document_colors_not_allowed=Los documentos PDF no tienen permiso de usar sus propios colores: 'Permitir que las páginas elijan sus propios colores' esta desactivada en el navegador. diff --git a/cps/static/locale/et/viewer.properties b/cps/static/locale/et/viewer.properties index 11f47c1c..97f2c9bd 100644 --- a/cps/static/locale/et/viewer.properties +++ b/cps/static/locale/et/viewer.properties @@ -243,4 +243,3 @@ password_cancel=Loobu printing_not_supported=Hoiatus: printimine pole selle brauseri poolt täielikult toetatud. printing_not_ready=Hoiatus: PDF pole printimiseks täielikult laaditud. web_fonts_disabled=Veebifondid on keelatud: PDFiga kaasatud fonte pole võimalik kasutada. -document_colors_not_allowed=PDF-dokumentidel pole oma värvide kasutamine lubatud: “Veebilehtedel on lubatud kasutada oma värve” on brauseris deaktiveeritud. diff --git a/cps/static/locale/eu/viewer.properties b/cps/static/locale/eu/viewer.properties index a3f230a5..5700d601 100644 --- a/cps/static/locale/eu/viewer.properties +++ b/cps/static/locale/eu/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Koadro txikiak findbar.title=Bilatu dokumentuan findbar_label=Bilatu +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas={{page}}. orria # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Utzi printing_not_supported=Abisua: inprimatzeko euskarria ez da erabatekoa nabigatzaile honetan. printing_not_ready=Abisua: PDFa ez dago erabat kargatuta inprimatzeko. web_fonts_disabled=Webeko letra-tipoak desgaituta daude: ezin dira kapsulatutako PDF letra-tipoak erabili. -document_colors_not_allowed=PDF dokumentuek ez dute beraien koloreak erabiltzeko baimenik: 'Baimendu orriak beraien letra-tipoak aukeratzea' desaktibatuta dago nabigatzailean. diff --git a/cps/static/locale/fa/viewer.properties b/cps/static/locale/fa/viewer.properties index e95738c6..9886b39d 100644 --- a/cps/static/locale/fa/viewer.properties +++ b/cps/static/locale/fa/viewer.properties @@ -220,4 +220,3 @@ password_cancel=لغو printing_not_supported=هشدار: قابلیت چاپ بهطور کامل در این مرورگر پشتیبانی نمیشود. printing_not_ready=اخطار: پرونده PDF بطور کامل بارگیری نشده و امکان چاپ وجود ندارد. web_fonts_disabled=فونت های تحت وب غیر فعال شده اند: امکان استفاده از نمایش دهنده داخلی PDF وجود ندارد. -document_colors_not_allowed=فایلهای PDF اجازه ندارند تا از رنگهای خود استفاده کنند: گزینه «به صفحات اجازه بده تا از رنگهای خود استفاده کنند» در مرورگر غیر فعال است. diff --git a/cps/static/locale/ff/viewer.properties b/cps/static/locale/ff/viewer.properties index 2e94346a..0a081021 100644 --- a/cps/static/locale/ff/viewer.properties +++ b/cps/static/locale/ff/viewer.properties @@ -239,4 +239,3 @@ password_cancel=Haaytu printing_not_supported=Reentino: Winnditagol tammbitaaka no feewi e ndee wanngorde. printing_not_ready=Reentino: PDF oo loowaaki haa timmi ngam winnditagol. web_fonts_disabled=Ponte geese ko daaƴaaɗe: horiima huutoraade ponte PDF coomtoraaɗe. -document_colors_not_allowed=Piilanɗe PDF njamiraaka yoo kuutoro goobuuji mum'en keeriiɗi: 'Yamir kello yoo kuutoro goobuuki keeriiɗi' koko daaƴaa e wanngorde ndee. diff --git a/cps/static/locale/fi/viewer.properties b/cps/static/locale/fi/viewer.properties index bb4d44ae..38c40a39 100644 --- a/cps/static/locale/fi/viewer.properties +++ b/cps/static/locale/fi/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Pienoiskuvat findbar.title=Etsi dokumentista findbar_label=Etsi +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Sivu {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -167,7 +169,7 @@ find_highlight=Korosta kaikki find_match_case_label=Huomioi kirjainkoko find_entire_word_label=Kokonaiset sanat find_reached_top=Päästiin dokumentin alkuun, jatketaan lopusta -find_reached_bottom=Päästiin sivun loppuun, jatketaan alusta +find_reached_bottom=Päästiin dokumentin loppuun, jatketaan alusta # LOCALIZATION NOTE (find_match_count): The supported plural forms are # [one|two|few|many|other], with [other] as the default value. # "{{current}}" and "{{total}}" will be replaced by a number representing the @@ -243,4 +245,3 @@ password_cancel=Peruuta printing_not_supported=Varoitus: Selain ei tue kaikkia tulostustapoja. printing_not_ready=Varoitus: PDF-tiedosto ei ole vielä latautunut kokonaan, eikä sitä voi vielä tulostaa. web_fonts_disabled=Verkkosivujen omat kirjasinlajit on estetty: ei voida käyttää upotettuja PDF-kirjasinlajeja. -document_colors_not_allowed=PDF-dokumenttien ei ole sallittua käyttää omia värejään: Asetusta ”Sivut saavat käyttää omia värejään oletusten sijaan” ei ole valittu selaimen asetuksissa. diff --git a/cps/static/locale/fr/viewer.properties b/cps/static/locale/fr/viewer.properties index 10559f70..589a4185 100644 --- a/cps/static/locale/fr/viewer.properties +++ b/cps/static/locale/fr/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Vignettes findbar.title=Rechercher dans le document findbar_label=Rechercher +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Page {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -159,9 +161,9 @@ thumb_page_canvas=Vignette de la page {{page}} # Find panel button title and messages find_input.title=Rechercher find_input.placeholder=Rechercher dans le document… -find_previous.title=Trouver l’occurrence précédente de la phrase +find_previous.title=Trouver l’occurrence précédente de l’expression find_previous_label=Précédent -find_next.title=Trouver la prochaine occurrence de la phrase +find_next.title=Trouver la prochaine occurrence de l’expression find_next_label=Suivant find_highlight=Tout surligner find_match_case_label=Respecter la casse @@ -189,7 +191,7 @@ find_match_count_limit[two]=Plus de {{limit}} correspondances find_match_count_limit[few]=Plus de {{limit}} correspondances find_match_count_limit[many]=Plus de {{limit}} correspondances find_match_count_limit[other]=Plus de {{limit}} correspondances -find_not_found=Phrase introuvable +find_not_found=Expression non trouvée # Error panel labels error_more_info=Plus d’informations @@ -243,4 +245,3 @@ password_cancel=Annuler printing_not_supported=Attention : l’impression n’est pas totalement prise en charge par ce navigateur. printing_not_ready=Attention : le PDF n’est pas entièrement chargé pour pouvoir l’imprimer. web_fonts_disabled=Les polices web sont désactivées : impossible d’utiliser les polices intégrées au PDF. -document_colors_not_allowed=Les documents PDF ne peuvent pas utiliser leurs propres couleurs : « Autoriser les pages web à utiliser leurs propres couleurs » est désactivé dans le navigateur. diff --git a/cps/static/locale/fy-NL/viewer.properties b/cps/static/locale/fy-NL/viewer.properties index ddba4cc0..5a506540 100644 --- a/cps/static/locale/fy-NL/viewer.properties +++ b/cps/static/locale/fy-NL/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Foarbylden findbar.title=Sykje yn dokumint findbar_label=Sykje +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Side {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Annulearje printing_not_supported=Warning: Printen is net folslein stipe troch dizze browser. printing_not_ready=Warning: PDF is net folslein laden om ôf te drukken. web_fonts_disabled=Weblettertypen binne útskeakele: gebrûk fan ynsluten PDF-lettertypen is net mooglik. -document_colors_not_allowed=PDF-dokuminten meie harren eigen kleuren net brûke: ‘Siden tastean om harren eigen kleuren te kiezen’ is útskeakele yn de browser. diff --git a/cps/static/locale/ga-IE/viewer.properties b/cps/static/locale/ga-IE/viewer.properties index 62f1a551..f606e81b 100644 --- a/cps/static/locale/ga-IE/viewer.properties +++ b/cps/static/locale/ga-IE/viewer.properties @@ -181,4 +181,3 @@ password_cancel=Cealaigh printing_not_supported=Rabhadh: Ní thacaíonn an brabhsálaí le priontáil go hiomlán. printing_not_ready=Rabhadh: Ní féidir an PDF a phriontáil go dtí go mbeidh an cháipéis iomlán lódáilte. web_fonts_disabled=Tá clófhoirne Gréasáin díchumasaithe: ní féidir clófhoirne leabaithe PDF a úsáid. -document_colors_not_allowed=Níl cead ag cáipéisí PDF a ndathanna féin a roghnú: tá “Tabhair cead do leathanaigh a ndathanna féin a roghnú” díchumasaithe sa mbrabhsálaí. diff --git a/cps/static/locale/gd/viewer.properties b/cps/static/locale/gd/viewer.properties index 2712568e..af4433e3 100644 --- a/cps/static/locale/gd/viewer.properties +++ b/cps/static/locale/gd/viewer.properties @@ -239,4 +239,3 @@ password_cancel=Sguir dheth printing_not_supported=Rabhadh: Chan eil am brabhsair seo a' cur làn-taic ri clò-bhualadh. printing_not_ready=Rabhadh: Cha deach am PDF a luchdadh gu tur airson clò-bhualadh. web_fonts_disabled=Tha cruthan-clò lìn à comas: Chan urrainn dhuinn cruthan-clò PDF leabaichte a chleachdadh. -document_colors_not_allowed=Chan fhaod sgrìobhainnean PDF na dathan aca fhèin a chleachdadh: Tha “Leig le duilleagan na dathan aca fhèin a chleachdadh” à comas sa bhrabhsair. diff --git a/cps/static/locale/gl/viewer.properties b/cps/static/locale/gl/viewer.properties index 187dbf15..c3a30fec 100644 --- a/cps/static/locale/gl/viewer.properties +++ b/cps/static/locale/gl/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Miniaturas findbar.title=Atopar no documento findbar_label=Atopar +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Páxina {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -226,6 +228,10 @@ invalid_file_error=Ficheiro PDF danado ou non válido. missing_file_error=Falta o ficheiro PDF. unexpected_response_error=Resposta inesperada do servidor. +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. +annotation_date_string={{date}}, {{time}} + # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # "{{type}}" will be replaced with an annotation type from a list defined in # the PDF spec (32000-1:2008 Table 169 – Annotation types). @@ -239,4 +245,3 @@ password_cancel=Cancelar printing_not_supported=Aviso: A impresión non é compatíbel de todo con este navegador. printing_not_ready=Aviso: O PDF non se cargou completamente para imprimirse. web_fonts_disabled=Desactiváronse as fontes web: foi imposíbel usar as fontes incrustadas no PDF. -document_colors_not_allowed=Os documentos PDF non poden usar as súas propias cores: «Permitir que as páxinas escollan as súas propias cores» está desactivado no navegador. diff --git a/cps/static/locale/gn/viewer.properties b/cps/static/locale/gn/viewer.properties index 692d1d72..4b893971 100644 --- a/cps/static/locale/gn/viewer.properties +++ b/cps/static/locale/gn/viewer.properties @@ -60,8 +60,8 @@ page_rotate_ccw.title=Aravo rapykue gotyo mbojere page_rotate_ccw.label=Aravo rapykue gotyo mbojere page_rotate_ccw_label=Aravo rapykue gotyo mbojere -cursor_text_select_tool.title=Emyandy moñe'ẽrã jeporavo rembipuru -cursor_text_select_tool_label=Moñe'ẽrã jeporavo rembipuru +cursor_text_select_tool.title=Emyandy moñe’ẽrã jeporavo rembipuru +cursor_text_select_tool_label=Moñe’ẽrã jeporavo rembipuru cursor_hand_tool.title=Tembipuru po pegua myandy cursor_hand_tool_label=Tembipuru po pegua @@ -80,8 +80,8 @@ spread_even.title=Embojuaju kuatiarogue jepysokue eñepyrũvo kuatiarogue par-va spread_even_label=Ipukuve uvei # Document properties dialog box -document_properties.title=Kuatia mba'etee… -document_properties_label=Kuatia mba'etee… +document_properties.title=Kuatia mba’etee… +document_properties_label=Kuatia mba’etee… document_properties_file_name=Marandurenda réra: document_properties_file_size=Marandurenda tuichakue: # LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" @@ -92,15 +92,15 @@ document_properties_kb={{size_kb}} KB ({{size_b}} bytes) document_properties_mb={{size_mb}} MB ({{size_b}} bytes) document_properties_title=Teratee: document_properties_author=Apohára: -document_properties_subject=Mba'egua: +document_properties_subject=Mba’egua: document_properties_keywords=Jehero: document_properties_creation_date=Teñoihague arange: document_properties_modification_date=Iñambue hague arange: # LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" # will be replaced by the creation/modification date, and time, of the PDF file. document_properties_date_string={{date}}, {{time}} -document_properties_creator=Apo'ypyha: -document_properties_producer=PDF mbosako'iha: +document_properties_creator=Apo’ypyha: +document_properties_producer=PDF mbosako’iha: document_properties_version=PDF mbojuehegua: document_properties_page_count=Kuatiarogue papapy: document_properties_page_size=Kuatiarogue tuichakue: @@ -110,7 +110,7 @@ document_properties_page_size_orientation_portrait=Oĩháicha document_properties_page_size_orientation_landscape=apaisado document_properties_page_size_name_a3=A3 document_properties_page_size_name_a4=A4 -document_properties_page_size_name_letter=Kuatiañe'ẽ +document_properties_page_size_name_letter=Kuatiañe’ẽ document_properties_page_size_name_legal=Tee # LOCALIZATION NOTE (document_properties_page_size_dimension_string): # "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by @@ -127,7 +127,7 @@ document_properties_linearized_yes=Añete document_properties_linearized_no=Ahániri document_properties_close=Mboty -print_progress_message=Embosako'i kuatia emonguatia hag̃ua… +print_progress_message=Embosako’i kuatia emonguatia hag̃ua… # LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by # a numerical per cent value. print_progress_percent={{progress}}% @@ -139,35 +139,37 @@ print_progress_close=Heja toggle_sidebar.title=Tenda yke moambue toggle_sidebar_notification.title=Embojopyru tenda ykegua (kuatia oguereko kora/marandurenda moirũha) toggle_sidebar_label=Tenda yke moambue -document_outline.title=Ehechauka kuatia rape (eikutu mokõi jey embotuicha/emomichĩ hag̃ua opavavete mba'epuru) +document_outline.title=Ehechauka kuatia rape (eikutu mokõi jey embotuicha/emomichĩ hag̃ua opavavete mba’epuru) document_outline_label=Kuatia apopyre attachments.title=Moirũha jehechauka attachments_label=Moirũha -thumbs.title=Mba'emirĩ jehechauka -thumbs_label=Mba'emirĩ +thumbs.title=Mba’emirĩ jehechauka +thumbs_label=Mba’emirĩ findbar.title=Kuatiápe jeheka findbar_label=Juhu +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Kuatiarogue {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. thumb_page_title=Kuatiarogue {{page}} # LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page # number. -thumb_page_canvas=Kuatiarogue mba'emirĩ {{page}} +thumb_page_canvas=Kuatiarogue mba’emirĩ {{page}} # Find panel button title and messages find_input.title=Juhu find_input.placeholder=Kuatiápe jejuhu… -find_previous.title=Ejuhu ñe'ẽrysýi osẽ'ypy hague +find_previous.title=Ejuhu ñe’ẽrysýi osẽ’ypy hague find_previous_label=Mboyvegua -find_next.title=Eho ñe'ẽ juhupyre upeiguávape +find_next.title=Eho ñe’ẽ juhupyre upeiguávape find_next_label=Upeigua find_highlight=Embojekuaavepa find_match_case_label=Ejesareko taiguasu/taimichĩre find_entire_word_label=Ñe’ẽ oĩmbáva -find_reached_top=Ojehupyty kuatia ñepyrũ, oku'ejeýta kuatia paha guive -find_reached_bottom=Ojehupyty kuatia paha, oku'ejeýta kuatia ñepyrũ guive +find_reached_top=Ojehupyty kuatia ñepyrũ, oku’ejeýta kuatia paha guive +find_reached_bottom=Ojehupyty kuatia paha, oku’ejeýta kuatia ñepyrũ guive # LOCALIZATION NOTE (find_match_count): The supported plural forms are # [one|two|few|many|other], with [other] as the default value. # "{{current}}" and "{{total}}" will be replaced by a number representing the @@ -189,21 +191,21 @@ find_match_count_limit[two]=Hetave {{limit}} ojojoguáva find_match_count_limit[few]=Hetave {{limit}} ojojoguáva find_match_count_limit[many]=Hetave {{limit}} ojojoguáva find_match_count_limit[other]=Hetave {{limit}} ojojoguáva -find_not_found=Ñe'ẽrysýi ojejuhu'ỹva +find_not_found=Ñe’ẽrysýi ojejuhu’ỹva # Error panel labels error_more_info=Maranduve -error_less_info=Sa'ive marandu +error_less_info=Sa’ive marandu error_close=Mboty # LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be # replaced by the PDF.JS version and build ID. error_version_info=PDF.js v{{version}} (build: {{build}}) # LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an # english string describing the error. -error_message=Ñe'ẽmondo: {{message}} +error_message=Ñe’ẽmondo: {{message}} # LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack # trace. -error_stack=Mbojo'apy: {{stack}} +error_stack=Mbojo’apy: {{stack}} # LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename error_file=Marandurenda: {{file}} # LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number @@ -224,7 +226,7 @@ loading_error_indicator=Oĩvaíva loading_error=Oiko jejavy PDF oñemyeñyhẽnguévo. invalid_file_error=PDF marandurenda ndoikóiva térã ivaipyréva. missing_file_error=Ndaipóri PDF marandurenda -unexpected_response_error=Mohendahavusu mbohovái ñeha'arõ'ỹva. +unexpected_response_error=Mohendahavusu mbohovái ñeha’arõ’ỹva. # LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be # replaced by the modification date, and time, of the annotation. @@ -235,12 +237,11 @@ annotation_date_string={{date}}, {{time}} # the PDF spec (32000-1:2008 Table 169 – Annotation types). # Some common types are e.g.: "Check", "Text", "Comment", "Note" text_annotation_type.alt=[Jehaipy {{type}}] -password_label=Emoinge ñe'ẽñemi eipe'a hag̃ua ko marandurenda PDF. -password_invalid=Ñe'ẽñemi ndoikóiva. Eha'ã jey. +password_label=Emoinge ñe’ẽñemi eipe’a hag̃ua ko marandurenda PDF. +password_invalid=Ñe’ẽñemi ndoikóiva. Eha’ã jey. password_ok=MONEĨ password_cancel=Heja printing_not_supported=Kyhyjerã: Ñembokuatia ndojokupytypái ko kundahára ndive. printing_not_ready=Kyhyjerã: Ko PDF nahenyhẽmbái oñembokuatia hag̃uáicha. -web_fonts_disabled=Ñanduti taity oñemongéma: ndaikatumo'ãi eipuru PDF jehai'íva taity. -document_colors_not_allowed=Kuatiakuéra PDF ndaikatúi oipuru isa'ykuéra tee: “Emoneĩ kuatiaroguépe toiporavo isa'ykuéra tee” oñemongehína kundahárape. +web_fonts_disabled=Ñanduti taity oñemongéma: ndaikatumo’ãi eipuru PDF jehai’íva taity. diff --git a/cps/static/locale/gu-IN/viewer.properties b/cps/static/locale/gu-IN/viewer.properties index cce4bec1..579c068d 100644 --- a/cps/static/locale/gu-IN/viewer.properties +++ b/cps/static/locale/gu-IN/viewer.properties @@ -239,4 +239,3 @@ password_cancel=રદ કરો printing_not_supported=ચેતવણી: છાપવાનું આ બ્રાઉઝર દ્દારા સંપૂર્ણપણે આધારભૂત નથી. printing_not_ready=Warning: PDF એ છાપવા માટે સંપૂર્ણપણે લાવેલ છે. web_fonts_disabled=વેબ ફોન્ટ નિષ્ક્રિય થયેલ છે: ઍમ્બેડ થયેલ PDF ફોન્ટને વાપરવાનું અસમર્થ. -document_colors_not_allowed=PDF દસ્તાવેજો તેનાં પોતાના રંગોને વાપરવા પરવાનગી આપતા નથી: 'તેનાં પોતાનાં રંગોને પસંદ કરવા માટે પાનાંને પરવાનગી આપો' બ્રાઉઝરમાં નિષ્ક્રિય થયેલ છે. diff --git a/cps/static/locale/he/viewer.properties b/cps/static/locale/he/viewer.properties index f0259f79..06647892 100644 --- a/cps/static/locale/he/viewer.properties +++ b/cps/static/locale/he/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=תצוגה מקדימה findbar.title=חיפוש במסמך findbar_label=חיפוש +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=עמוד {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -159,9 +161,9 @@ thumb_page_canvas=תצוגה מקדימה של עמוד {{page}} # Find panel button title and messages find_input.title=חיפוש find_input.placeholder=חיפוש במסמך… -find_previous.title=חיפוש מופע קודם של הביטוי +find_previous.title=מציאת המופע הקודם של הביטוי find_previous_label=קודם -find_next.title=חיפוש המופע הבא של הביטוי +find_next.title=מציאת המופע הבא של הביטוי find_next_label=הבא find_highlight=הדגשת הכול find_match_case_label=התאמת אותיות @@ -214,7 +216,7 @@ rendering_error=אירעה שגיאה בעת עיבוד הדף. page_scale_width=רוחב העמוד page_scale_fit=התאמה לעמוד page_scale_auto=מרחק מתצוגה אוטומטי -page_scale_actual=גודל אמתי +page_scale_actual=גודל אמיתי # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a # numerical scale value. page_scale_percent={{scale}}% @@ -243,4 +245,3 @@ password_cancel=ביטול printing_not_supported=אזהרה: הדפסה אינה נתמכת במלואה בדפדפן זה. printing_not_ready=אזהרה: ה־PDF לא ניתן לחלוטין עד מצב שמאפשר הדפסה. web_fonts_disabled=גופני רשת מנוטרלים: לא ניתן להשתמש בגופני PDF מוטבעים. -document_colors_not_allowed=מסמכי PDF אינם מורשים להשתמש בצבעים משלהם: האפשרות „אפשר לעמודים לבחור צבעים משלהם” אינה פעילה בדפדפן. diff --git a/cps/static/locale/hi-IN/viewer.properties b/cps/static/locale/hi-IN/viewer.properties index 67d00053..6a49a9a9 100644 --- a/cps/static/locale/hi-IN/viewer.properties +++ b/cps/static/locale/hi-IN/viewer.properties @@ -72,6 +72,7 @@ scroll_horizontal_label=क्षितिजिय स्क्रॉलिं scroll_wrapped.title=व्राप्पेड स्क्रॉलिंग का उपयोग करें spread_none_label=कोई स्प्रेड उपलब्ध नहीं +spread_odd.title=विषम-क्रमांकित पृष्ठों से प्रारंभ होने वाले पृष्ठ स्प्रेड में शामिल हों spread_odd_label=विषम फैलाव # Document properties dialog box @@ -143,6 +144,8 @@ thumbs_label=लघु छवि findbar.title=\u0020दस्तावेज़ में ढूँढ़ें findbar_label=ढूँढें +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=पृष्ठ {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -168,9 +171,22 @@ find_reached_bottom=पृष्ठ के नीचे में जा पह # "{{current}}" and "{{total}}" will be replaced by a number representing the # index of the currently active find result, respectively a number representing # the total number of matches in the document. +find_match_count={[ plural(total) ]} +find_match_count[one]={{total}} में {{current}} मेल +find_match_count[two]={{total}} में {{current}} मेल +find_match_count[few]={{total}} में {{current}} मेल +find_match_count[many]={{total}} में {{current}} मेल +find_match_count[other]={{total}} में {{current}} मेल # LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are # [zero|one|two|few|many|other], with [other] as the default value. # "{{limit}}" will be replaced by a numerical value. +find_match_count_limit={[ plural(limit) ]} +find_match_count_limit[zero]={{limit}} से अधिक मेल +find_match_count_limit[one]={{limit}} से अधिक मेल +find_match_count_limit[two]={{limit}} से अधिक मेल +find_match_count_limit[few]={{limit}} से अधिक मेल +find_match_count_limit[many]={{limit}} से अधिक मेल +find_match_count_limit[other]={{limit}} से अधिक मेल find_not_found=वाक्यांश नहीं मिला # Error panel labels @@ -225,4 +241,3 @@ password_cancel=रद्द करें printing_not_supported=चेतावनी: इस ब्राउज़र पर छपाई पूरी तरह से समर्थित नहीं है. printing_not_ready=चेतावनी: PDF छपाई के लिए पूरी तरह से लोड नहीं है. web_fonts_disabled=वेब फॉन्ट्स निष्क्रिय हैं: अंतःस्थापित PDF फॉन्टस के उपयोग में असमर्थ. -document_colors_not_allowed=PDF दस्तावेज़ उनके अपने रंग को उपयोग करने के लिए अनुमति प्राप्त नहीं है: "पृष्ठों को उनके अपने रंग को चुनने के लिए स्वीकृति दें" कि वह उस ब्राउज़र में निष्क्रिय है. diff --git a/cps/static/locale/hr/viewer.properties b/cps/static/locale/hr/viewer.properties index 4f1f3c49..bfe10f80 100644 --- a/cps/static/locale/hr/viewer.properties +++ b/cps/static/locale/hr/viewer.properties @@ -28,21 +28,21 @@ of_pages=od {{pagesCount}} # respectively a number representing the total number of pages in the document. page_of_pages=({{pageNumber}} od {{pagesCount}}) -zoom_out.title=Uvećaj -zoom_out_label=Smanji +zoom_out.title=Umanji +zoom_out_label=Umanji zoom_in.title=Uvećaj -zoom_in_label=Smanji -zoom.title=Uvećanje +zoom_in_label=Uvećaj +zoom.title=Zumiranje presentation_mode.title=Prebaci u prezentacijski način rada presentation_mode_label=Prezentacijski način rada open_file.title=Otvori datoteku open_file_label=Otvori -print.title=Ispis -print_label=Ispis +print.title=Ispiši +print_label=Ispiši download.title=Preuzmi download_label=Preuzmi -bookmark.title=Trenutni prikaz (kopiraj ili otvori u novom prozoru) -bookmark_label=Trenutni prikaz +bookmark.title=Trenutačni prikaz (kopiraj ili otvori u novom prozoru) +bookmark_label=Trenutačni prikaz # Secondary toolbar and context menu tools.title=Alati @@ -69,15 +69,15 @@ scroll_vertical.title=Koristi okomito pomicanje scroll_vertical_label=Okomito pomicanje scroll_horizontal.title=Koristi vodoravno pomicanje scroll_horizontal_label=Vodoravno pomicanje -scroll_wrapped.title=Koristi omotano pomicanje -scroll_wrapped_label=Omotano pomicanje +scroll_wrapped.title=Koristi kontinuirani raspored stranica +scroll_wrapped_label=Kontinuirani raspored stranica -spread_none.title=Ne pridružuj razmake stranica -spread_none_label=Bez razmaka -spread_odd.title=Pridruži razmake stranica počinjući od neparnih stranica -spread_odd_label=Neparni razmaci -spread_even.title=Pridruži razmake stranica počinjući od parnih stranica -spread_even_label=Parni razmaci +spread_none.title=Ne izrađuj duplerice +spread_none_label=Pojedinačne stranice +spread_odd.title=Izradi duplerice koje počinju s neparnim stranicama +spread_odd_label=Neparne duplerice +spread_even.title=Izradi duplerice koje počinju s parnim stranicama +spread_even_label=Parne duplerice # Document properties dialog box document_properties.title=Svojstva dokumenta... @@ -101,17 +101,17 @@ document_properties_modification_date=Datum promjene: document_properties_date_string={{date}}, {{time}} document_properties_creator=Stvaratelj: document_properties_producer=PDF stvaratelj: -document_properties_version=PDF inačica: +document_properties_version=PDF verzija: document_properties_page_count=Broj stranica: document_properties_page_size=Dimenzije stranice: document_properties_page_size_unit_inches=in document_properties_page_size_unit_millimeters=mm -document_properties_page_size_orientation_portrait=portret -document_properties_page_size_orientation_landscape=pejzaž +document_properties_page_size_orientation_portrait=uspravno +document_properties_page_size_orientation_landscape=položeno document_properties_page_size_name_a3=A3 document_properties_page_size_name_a4=A4 -document_properties_page_size_name_letter=Pismo -document_properties_page_size_name_legal=Pravno +document_properties_page_size_name_letter=Letter +document_properties_page_size_name_legal=Legal # LOCALIZATION NOTE (document_properties_page_size_dimension_string): # "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by # the size, respectively their unit of measurement and orientation, of the (current) page. @@ -139,35 +139,37 @@ print_progress_close=Odustani toggle_sidebar.title=Prikaži/sakrij bočnu traku toggle_sidebar_notification.title=Prikazivanje i sklanjanje bočne trake (dokument sadrži konturu/privitke) toggle_sidebar_label=Prikaži/sakrij bočnu traku -document_outline.title=Prikaži obris dokumenta (dvostruki klik za proširivanje/skupljanje svih stavki) -document_outline_label=Obris dokumenta +document_outline.title=Prikaži strukturu dokumenta (dvostruki klik za rasklapanje/sklapanje svih stavki) +document_outline_label=Struktura dokumenta attachments.title=Prikaži privitke attachments_label=Privitci -thumbs.title=Prikaži sličice -thumbs_label=Sličice +thumbs.title=Prikaži minijature +thumbs_label=Minijature findbar.title=Traži u dokumentu findbar_label=Traži +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Stranica br. {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. thumb_page_title=Stranica {{page}} # LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page # number. -thumb_page_canvas=Sličica stranice {{page}} +thumb_page_canvas=Minijatura stranice {{page}} # Find panel button title and messages find_input.title=Traži find_input.placeholder=Traži u dokumentu… -find_previous.title=Pronađi prethodno javljanje ovog izraza +find_previous.title=Pronađi prethodno pojavljivanje ovog izraza find_previous_label=Prethodno -find_next.title=Pronađi iduće javljanje ovog izraza +find_next.title=Pronađi sljedeće pojavljivanje ovog izraza find_next_label=Sljedeće find_highlight=Istankni sve -find_match_case_label=Slučaj podudaranja +find_match_case_label=Razlikovanje velikih i malih slova find_entire_word_label=Cijele riječi -find_reached_top=Dosegnut vrh dokumenta, nastavak od dna -find_reached_bottom=Dosegnut vrh dokumenta, nastavak od vrha +find_reached_top=Dosegnut početak dokumenta, nastavak s kraja +find_reached_bottom=Dosegnut kraj dokumenta, nastavak s početka # LOCALIZATION NOTE (find_match_count): The supported plural forms are # [one|two|few|many|other], with [other] as the default value. # "{{current}}" and "{{total}}" will be replaced by a number representing the @@ -211,18 +213,18 @@ error_line=Redak: {{line}} rendering_error=Došlo je do greške prilikom iscrtavanja stranice. # Predefined zoom values -page_scale_width=Širina stranice -page_scale_fit=Pristajanje stranici -page_scale_auto=Automatsko uvećanje -page_scale_actual=Prava veličina +page_scale_width=Prilagodi širini prozora +page_scale_fit=Prilagodi veličini prozora +page_scale_auto=Automatsko zumiranje +page_scale_actual=Stvarna veličina # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a # numerical scale value. -page_scale_percent={{scale}}% +page_scale_percent={{scale}} % # Loading indicator messages loading_error_indicator=Greška loading_error=Došlo je do greške pri učitavanju PDF-a. -invalid_file_error=Kriva ili oštećena PDF datoteka. +invalid_file_error=Neispravna ili oštećena PDF datoteka. missing_file_error=Nedostaje PDF datoteka. unexpected_response_error=Neočekivani odgovor poslužitelja. @@ -235,12 +237,11 @@ annotation_date_string={{date}}, {{time}} # the PDF spec (32000-1:2008 Table 169 – Annotation types). # Some common types are e.g.: "Check", "Text", "Comment", "Note" text_annotation_type.alt=[{{type}} Bilješka] -password_label=Upišite lozinku da biste otvorili ovu PDF datoteku. -password_invalid=Neispravna lozinka. Pokušajte ponovo. +password_label=Za otvoranje ove PDF datoteku upiši lozinku. +password_invalid=Neispravna lozinka. Pokušaj ponovo. password_ok=U redu password_cancel=Odustani -printing_not_supported=Upozorenje: Ispisivanje nije potpuno podržano u ovom pregledniku. +printing_not_supported=Upozorenje: Ovaj preglednik ne podržava u potpunosti ispisivanje. printing_not_ready=Upozorenje: PDF nije u potpunosti učitan za ispis. -web_fonts_disabled=Web fontovi su onemogućeni: nije moguće koristiti umetnute PDF fontove. -document_colors_not_allowed=PDF dokumenti nemaju dopuštene koristiti vlastite boje: opcija 'Dopusti stranicama da koriste vlastite boje' je deaktivirana. +web_fonts_disabled=Web fontovi su deaktivirani: nije moguće koristiti ugrađene PDF fontove. diff --git a/cps/static/locale/hsb/viewer.properties b/cps/static/locale/hsb/viewer.properties index 790f7235..9ba3c15a 100644 --- a/cps/static/locale/hsb/viewer.properties +++ b/cps/static/locale/hsb/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Miniatury findbar.title=W dokumenće pytać findbar_label=Pytać +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Strona {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Přetorhnyć printing_not_supported=Warnowanje: Ćišćenje so přez tutón wobhladowak połnje njepodpěruje. printing_not_ready=Warnowanje: PDF njeje so za ćišćenje dospołnje začitał. web_fonts_disabled=Webpisma su znjemóžnjene: njeje móžno, zasadźene PDF-pisma wužiwać. -document_colors_not_allowed=PDF-dokumenty njesmědźa swoje barby wužiwać: 'Stronam dowolić, swoje barby wužiwać' je we wobhladowaku znjemóžnjene. diff --git a/cps/static/locale/hto/viewer.properties b/cps/static/locale/hto/viewer.properties deleted file mode 100644 index ed984ea5..00000000 --- a/cps/static/locale/hto/viewer.properties +++ /dev/null @@ -1,127 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. - -open_file_label=Tuide -print.title=Rábe fɨnoraɨma -print_label=Rábe fɨnoraɨma -download.title=Yúnua -download_label=Yúnua -bookmark.title=Bírui éroika (kómue éroirafo tuño fakayena) -bookmark_label=Bírui éroika - -# Secondary toolbar and context menu -tools.title=Ránɨaɨ táɨjɨyena -tools_label=Ránɨaɨ táɨjɨyena -first_page.title=Nano fueñe rabemo jaíri -first_page.label=Nano fueñe rabemo jaíri -first_page_label=Nano fueñe rabemo jaíri -last_page.title=Ɨ́kóɨ fueñe rabemo jaíri -last_page.label=Ɨ́kóɨ fueñe rabemo jaíri -last_page_label=Ɨ́kóɨ fueñe rabemo jaíri -page_rotate_cw.title=Nabene jɨrekai -page_rotate_cw.label=Nabene jɨrekai -page_rotate_cw_label=Nabene jɨrekai -page_rotate_ccw.title=Jarɨ́fene jirekaɨ -page_rotate_ccw.label=Jarɨ́fene jirekaɨ -page_rotate_ccw_label=Jarɨ́fene jirekaɨ - - -# Document properties dialog box -document_properties_file_name=Ráanɨ mamékɨ: -document_properties_file_size=Ráanɨ dɨeze: -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -document_properties_kb={{size_kb}} KB ({{size_b}} bytes) -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_mb={{size_mb}} MB ({{size_b}} bytes) -document_properties_title=Kúega mámekɨ: -document_properties_author=Fɨnokamɨe: -document_properties_subject=Mɨnɨka: -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. -document_properties_date_string={{date}}, {{time}} -document_properties_creator=Fɨnoraɨma: -document_properties_version=Yóga ráfue PDF: -document_properties_close=Ɨ́baide - -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) -attachments.title=Dájemo jónega akatairi -attachments_label=Dano jónega -thumbs.title=Dúe íya akatairi -thumbs_label=Dúe íya - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -thumb_page_title=Rabe {{page}} -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. -thumb_page_canvas=Dúe íya rabe {{page}} - -# Find panel button title and messages -find_previous_label=Jɨáɨkena\u0020 -find_next_label=Báɨfene -find_highlight=Nana rɨgɨno -find_not_found=Daɨna báñeiga - -# Error panel labels -error_more_info=Jamano ráfue -error_less_info=Dúe ráfue -error_close=Ɨ́bai -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -error_version_info=PDF.js v{{version}} (build: {{build}}) -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -error_message=Úaina: {{message}} -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -error_stack=Pila: {{stack}} -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -error_file=Jónia ráa: {{file}} -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number -error_line=Ida: {{line}} - -# Predefined zoom values -page_scale_auto=Zoom dama fɨnode -page_scale_actual=Bírui dɨeze -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. -page_scale_percent={{scale}}% - -# Loading indicator messages -loading_error_indicator=Fɨgòñede - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -text_annotation_type.alt=[{{type}} baítade] -password_ok=Jɨɨ - diff --git a/cps/static/locale/hu/viewer.properties b/cps/static/locale/hu/viewer.properties index fb5e35f4..88c1d079 100644 --- a/cps/static/locale/hu/viewer.properties +++ b/cps/static/locale/hu/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Bélyegképek findbar.title=Keresés a dokumentumban findbar_label=Keresés +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas={{page}}. oldal # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Mégse printing_not_supported=Figyelmeztetés: Ez a böngésző nem teljesen támogatja a nyomtatást. printing_not_ready=Figyelmeztetés: A PDF nincs teljesen betöltve a nyomtatáshoz. web_fonts_disabled=Webes betűkészletek letiltva: nem használhatók a beágyazott PDF betűkészletek. -document_colors_not_allowed=A PDF dokumentumok nem használhatják saját színeiket: „Az oldalak a saját maguk által kiválasztott színeket használhatják” beállítás ki van kapcsolva a böngészőben. diff --git a/cps/static/locale/hy-AM/viewer.properties b/cps/static/locale/hy-AM/viewer.properties index e94633c0..09394f7d 100644 --- a/cps/static/locale/hy-AM/viewer.properties +++ b/cps/static/locale/hy-AM/viewer.properties @@ -35,7 +35,7 @@ zoom_in_label=Խոշորացնել zoom.title=Մասշտաբը\u0020 presentation_mode.title=Անցնել Ներկայացման եղանակին presentation_mode_label=Ներկայացման եղանակ -open_file.title=Բացել Ֆայլ +open_file.title=Բացել նիշք open_file_label=Բացել print.title=Տպել print_label=Տպել @@ -60,16 +60,30 @@ page_rotate_ccw.title=Պտտել հակառակ ժամացույցի սլաքի page_rotate_ccw.label=Պտտել հակառակ ժամացույցի սլաքի page_rotate_ccw_label=Պտտել հակառակ ժամացույցի սլաքի -cursor_text_select_tool.title=Միացնել Տեքստը ընտրելու գործիքը -cursor_text_select_tool_label=Տեքստը ընտրելու գործիք +cursor_text_select_tool.title=Միացնել գրույթ ընտրելու գործիքը +cursor_text_select_tool_label=Գրույթը ընտրելու գործիք cursor_hand_tool.title=Միացնել Ձեռքի գործիքը cursor_hand_tool_label=Ձեռքի գործիք +scroll_vertical.title=Օգտագործել ուղղահայաց ոլորում +scroll_vertical_label=Ուղղահայաց ոլորում +scroll_horizontal.title=Օգտագործել հորիզոնական ոլորում +scroll_horizontal_label=Հորիզոնական ոլորում +scroll_wrapped.title=Օգտագործել փաթաթված ոլորում +scroll_wrapped_label=Փաթաթված ոլորում + +spread_none.title=Մի միացեք էջի վերածածկերին +spread_none_label=Չկա վերածածկեր +spread_odd.title=Միացեք էջի վերածածկերին սկսելով՝ կենտ համարակալված էջերով +spread_odd_label=Կենտ վերածածկեր +spread_even.title=Միացեք էջի վերածածկերին սկսելով՝ զույգ համարակալված էջերով +spread_even_label=Զույգ վերածածկեր + # Document properties dialog box -document_properties.title=Փաստաթղթի հատկությունները... -document_properties_label=Փաստաթղթի հատկությունները... -document_properties_file_name=Ֆայլի անունը. -document_properties_file_size=Ֆայլի չափը. +document_properties.title=Փաստաթղթի հատկությունները… +document_properties_label=Փաստաթղթի հատկությունները… +document_properties_file_name=Նիշքի անունը. +document_properties_file_size=Նիշք չափը. # LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" # will be replaced by the PDF file size in kilobytes, respectively in bytes. document_properties_kb={{size_kb}} ԿԲ ({{size_b}} բայթ) @@ -90,7 +104,7 @@ document_properties_producer=PDF-ի հեղինակը. document_properties_version=PDF-ի տարբերակը. document_properties_page_count=Էջերի քանակը. document_properties_page_size=Էջի չափը. -document_properties_page_size_unit_inches=դյ. +document_properties_page_size_unit_inches=ում document_properties_page_size_unit_millimeters=մմ document_properties_page_size_orientation_portrait=ուղղաձիգ document_properties_page_size_orientation_landscape=հորիզոնական @@ -106,6 +120,11 @@ document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} # "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by # the size, respectively their unit of measurement, name, and orientation, of the (current) page. document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}}) +# LOCALIZATION NOTE (document_properties_linearized): The linearization status of +# the document; usually called "Fast Web View" in English locales of Adobe software. +document_properties_linearized=Արագ վեբ դիտում․ +document_properties_linearized_yes=Այո +document_properties_linearized_no=Ոչ document_properties_close=Փակել print_progress_message=Նախապատրաստում է փաստաթուղթը տպելուն... @@ -118,9 +137,9 @@ print_progress_close=Չեղարկել # (the _label strings are alt text for the buttons, the .title strings are # tooltips) toggle_sidebar.title=Բացել/Փակել Կողային վահանակը -toggle_sidebar_notification.title=Փոխանջատել Կողային գոտին (փաստաթուղթը պարունակում է ուրվագիծ/կցորդ) +toggle_sidebar_notification.title=Փոխարկել Կողային փեղկը (փաստաթուղթը պարունակում է ուրվագիծ/կցորդներ) toggle_sidebar_label=Բացել/Փակել Կողային վահանակը -document_outline.title=Ցուցադրել փաստաթղթի ուրվագիծը (կրկնակի սեղմեք՝ միույթները ընդարձակելու/կոծկելու համար) +document_outline.title=Ցուցադրել փաստաթղթի ուրվագիծը (կրկնակի սեղմեք՝ միավորները ընդարձակելու/կոծկելու համար) document_outline_label=Փաստաթղթի բովանդակությունը attachments.title=Ցուցադրել կցորդները attachments_label=Կցորդներ @@ -129,6 +148,8 @@ thumbs_label=Մանրապատկերը findbar.title=Գտնել փաստաթղթում findbar_label=Որոնում +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Էջ {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -146,8 +167,30 @@ find_next.title=Գտիր արտահայտության հաջորդ հանդիպ find_next_label=Հաջորդը find_highlight=Գունանշել բոլորը find_match_case_label=Մեծ(փոքր)ատառ հաշվի առնել +find_entire_word_label=Ամբողջ բառերը find_reached_top=Հասել եք փաստաթղթի վերևին, կշարունակվի ներքևից find_reached_bottom=Հասել եք փաստաթղթի վերջին, կշարունակվի վերևից +# LOCALIZATION NOTE (find_match_count): The supported plural forms are +# [one|two|few|many|other], with [other] as the default value. +# "{{current}}" and "{{total}}" will be replaced by a number representing the +# index of the currently active find result, respectively a number representing +# the total number of matches in the document. +find_match_count={[ հոգնակի(ընդհանուր) ]} +find_match_count[one]={{current}} {{total}}-ի համընկնումից +find_match_count[two]={{current}} {{total}}-ի համընկնումներից +find_match_count[few]={{current}} {{total}}-ի համընկնումներից +find_match_count[many]={{current}} {{total}}-ի համընկնումներից +find_match_count[other]={{current}} {{total}}-ի համընկնումներից +# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are +# [zero|one|two|few|many|other], with [other] as the default value. +# "{{limit}}" will be replaced by a numerical value. +find_match_count_limit={[ հոգնակի (սահմանը) ]} +find_match_count_limit[zero]=Ավելին քան {{limit}} համընկնումները +find_match_count_limit[one]=Ավելին քան {{limit}} համընկնումը +find_match_count_limit[two]=Ավելին քան {{limit}} համընկնումներներ +find_match_count_limit[few]=Ավելին քան {{limit}} համընկնումներներ +find_match_count_limit[many]=Ավելին քան {{limit}} համընկնումներներ +find_match_count_limit[other]=Ավելին քան {{limit}} համընկնումներներ find_not_found=Արտահայտությունը չգտնվեց # Error panel labels @@ -181,10 +224,14 @@ page_scale_percent={{scale}}% # Loading indicator messages loading_error_indicator=Սխալ loading_error=Սխալ՝ PDF ֆայլը բացելիս։ -invalid_file_error=Սխալ կամ բնասված PDF ֆայլ: +invalid_file_error=Սխալ կամ վնասված PDF ֆայլ: missing_file_error=PDF ֆայլը բացակայում է: unexpected_response_error=Սպասարկիչի անսպասելի պատասխան: +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. +annotation_date_string={{date}}, {{time}} + # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # "{{type}}" will be replaced with an annotation type from a list defined in # the PDF spec (32000-1:2008 Table 169 – Annotation types). @@ -198,4 +245,3 @@ password_cancel=Չեղարկել printing_not_supported=Զգուշացում. Տպելը ամբողջությամբ չի աջակցվում դիտարկիչի կողմից։ printing_not_ready=Զգուշացում. PDF-ը ամբողջությամբ չի բեռնավորվել տպելու համար: web_fonts_disabled=Վեբ-տառատեսակները անջատված են. հնարավոր չէ օգտագործել ներկառուցված PDF տառատեսակները: -document_colors_not_allowed=PDF փաստաթղթերին թույլատրված չէ օգտագործել իրենց սեփական գույները: “Թույլատրել էջերին ընտրել իրենց սեփական գույները“ ընտրանքը անջատված է դիտարկիչում: diff --git a/cps/static/locale/hye/viewer.properties b/cps/static/locale/hye/viewer.properties new file mode 100644 index 00000000..80d43019 --- /dev/null +++ b/cps/static/locale/hye/viewer.properties @@ -0,0 +1,246 @@ +# 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. + +# Main toolbar buttons (tooltips and alt text for images) +previous.title=Նախորդ էջ +previous_label=Նախորդը +next.title=Յաջորդ էջ +next_label=Յաջորդը + +# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. +page.title=էջ +# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number +# representing the total number of pages in the document. +of_pages={{pagesCount}}-ից\u0020 +# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" +# will be replaced by a number representing the currently visible page, +# respectively a number representing the total number of pages in the document. +page_of_pages=({{pageNumber}}-ը {{pagesCount}})-ից + +zoom_out.title=Փոքրացնել +zoom_out_label=Փոքրացնել +zoom_in.title=Խոշորացնել +zoom_in_label=Խոշորացնել +zoom.title=Խոշորացում +presentation_mode.title=Անցնել ներկայացման եղանակին +presentation_mode_label=Ներկայացման եղանակ +open_file.title=Բացել նիշքը +open_file_label=Բացել +print.title=Տպել +print_label=Տպել +download.title=Բեռնել +download_label=Բեռնել +bookmark.title=Ընթացիկ տեսքով (պատճէնել կամ բացել նոր պատուհանում) +bookmark_label=Ընթացիկ տեսք + +# Secondary toolbar and context menu +tools.title=Գործիքներ +tools_label=Գործիքներ +first_page.title=Գնալ դէպի առաջին էջ +first_page.label=Գնալ դէպի առաջին էջ +first_page_label=Գնալ դէպի առաջին էջ +last_page.title=Գնալ դէպի վերջին էջ +last_page.label=Գնալ դէպի վերջին էջ +last_page_label=Գնալ դէպի վերջին էջ +page_rotate_cw.title=Պտտել ժամացոյցի սլաքի ուղղութեամբ +page_rotate_cw.label=Պտտել ժամացոյցի սլաքի ուղղութեամբ +page_rotate_cw_label=Պտտել ժամացոյցի սլաքի ուղղութեամբ +page_rotate_ccw.title=Պտտել ժամացոյցի սլաքի հակառակ ուղղութեամբ +page_rotate_ccw.label=Պտտել ժամացոյցի սլաքի հակառակ ուղղութեամբ +page_rotate_ccw_label=Պտտել ժամացոյցի սլաքի հակառակ ուղղութեամբ + +cursor_text_select_tool.title=Միացնել գրոյթ ընտրելու գործիքը +cursor_text_select_tool_label=Գրուածք ընտրելու գործիք +cursor_hand_tool.title=Միացնել ձեռքի գործիքը +cursor_hand_tool_label=Ձեռքի գործիք + +scroll_vertical.title=Աւգտագործել ուղղահայեաց ոլորում +scroll_vertical_label=Ուղղահայեաց ոլորում +scroll_horizontal.title=Աւգտագործել հորիզոնական ոլորում +scroll_horizontal_label=Հորիզոնական ոլորում +scroll_wrapped.title=Աւգտագործել փաթաթուած ոլորում +scroll_wrapped_label=Փաթաթուած ոլորում + +spread_none.title=Մի միացէք էջի կոնտեքստում +spread_none_label=Չկայ կոնտեքստ +spread_odd.title=Միացէք էջի կոնտեքստին սկսելով՝ կենտ համարակալուած էջերով +spread_odd_label=Տարաւրինակ կոնտեքստ +spread_even.title=Միացէք էջի կոնտեքստին սկսելով՝ զոյգ համարակալուած էջերով + +# Document properties dialog box +document_properties.title=Փաստաթղթի հատկութիւնները… +document_properties_label=Փաստաթղթի յատկութիւնները… +document_properties_file_name=Նիշքի անունը․ +document_properties_file_size=Նիշք չափը. +# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" +# will be replaced by the PDF file size in kilobytes, respectively in bytes. +document_properties_kb={{size_kb}} ԿԲ ({{size_b}} բայթ) +# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" +# will be replaced by the PDF file size in megabytes, respectively in bytes. +document_properties_mb={{size_mb}} ՄԲ ({{size_b}} բայթ) +document_properties_title=Վերնագիր +document_properties_author=Հեղինակ․ +document_properties_subject=առարկայ +document_properties_keywords=Հիմնաբառեր +document_properties_creation_date=Ստեղծման ամսաթիւ +document_properties_modification_date=Փոփոխութեան ամսաթիւ. +# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" +# will be replaced by the creation/modification date, and time, of the PDF file. +document_properties_date_string={{date}}, {{time}} +document_properties_creator=Ստեղծող +document_properties_producer=PDF-ի Արտադրողը. +document_properties_version=PDF-ի տարբերակը. +document_properties_page_count=Էջերի քանակը. +document_properties_page_size=Էջի չափը. +document_properties_page_size_unit_inches=ում +document_properties_page_size_unit_millimeters=mm +document_properties_page_size_orientation_portrait=ուղղաձիգ +document_properties_page_size_orientation_landscape=հորիզոնական +document_properties_page_size_name_a3=A3 +document_properties_page_size_name_a4=A4 +document_properties_page_size_name_letter=Նամակ +document_properties_page_size_name_legal=Աւրինական +# LOCALIZATION NOTE (document_properties_page_size_dimension_string): +# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by +# the size, respectively their unit of measurement and orientation, of the (current) page. +document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}}) +# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string): +# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by +# the size, respectively their unit of measurement, name, and orientation, of the (current) page. +document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}}) +# LOCALIZATION NOTE (document_properties_linearized): The linearization status of +# the document; usually called "Fast Web View" in English locales of Adobe software. +document_properties_linearized=Արագ վեբ դիտում․ +document_properties_linearized_yes=Այո +document_properties_linearized_no=Ոչ +document_properties_close=Փակել + +print_progress_message=Նախապատրաստում է փաստաթուղթը տպելուն… +# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by +# a numerical per cent value. +print_progress_percent={{progress}}% +print_progress_close=Չեղարկել + +# Tooltips and alt text for side panel toolbar buttons +# (the _label strings are alt text for the buttons, the .title strings are +# tooltips) +toggle_sidebar.title=Փոխարկել կողային վահանակը +toggle_sidebar_notification.title=Փոխարկել կողային վահանակը (փաստաթուղթը պարունակում է ուրուագիծ/կցորդ) +toggle_sidebar_label=Փոխարկել կողային վահանակը +document_outline.title=Ցուցադրել փաստաթղթի ուրուագիծը (կրկնակի սեղմէք՝ միաւորները ընդարձակելու/կոծկելու համար) +document_outline_label=Փաստաթղթի ուրուագիծ +attachments.title=Ցուցադրել կցորդները +attachments_label=Կցորդներ +thumbs.title=Ցուցադրել մանրապատկերը +thumbs_label=Մանրապատկեր +findbar.title=Գտնել փաստաթղթում +findbar_label=Որոնում + +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Էջ {{page}} +# Thumbnails panel item (tooltip and alt text for images) +# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page +# number. +thumb_page_title=Էջը {{page}} +# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page +# number. +thumb_page_canvas=Էջի մանրապատկերը {{page}} + +# Find panel button title and messages +find_input.title=Որոնում +find_input.placeholder=Գտնել փաստաթղթում… +find_previous.title=Գտնել արտայայտութեան նախորդ արտայայտութիւնը +find_previous_label=Նախորդը +find_next.title=Գտիր արտայայտութեան յաջորդ արտայայտութիւնը +find_next_label=Հաջորդը +find_highlight=Գունանշել բոլորը +find_match_case_label=Հաշուի առնել հանգամանքը +find_entire_word_label=Ամբողջ բառերը +find_reached_top=Հասել եք փաստաթղթի վերեւին,շարունակել ներքեւից +find_reached_bottom=Հասել էք փաստաթղթի վերջին, շարունակել վերեւից +# LOCALIZATION NOTE (find_match_count): The supported plural forms are +# [one|two|few|many|other], with [other] as the default value. +# "{{current}}" and "{{total}}" will be replaced by a number representing the +# index of the currently active find result, respectively a number representing +# the total number of matches in the document. +find_match_count={[ հոգնակի(ընդհանուր) ]} +find_match_count[one]={{current}} {{total}}-ի համընկնումից +find_match_count[two]={{current}} {{total}}-ի համընկնումներից +find_match_count[few]={{current}} {{total}}-ի համընկնումներից +find_match_count[many]={{current}} {{total}}-ի համընկնումներից +find_match_count[other]={{current}} {{total}}-ի համընկնումներից +# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are +# [zero|one|two|few|many|other], with [other] as the default value. +# "{{limit}}" will be replaced by a numerical value. +find_match_count_limit={[ հոգնակի (սահմանը) ]} +find_match_count_limit[zero]=Աւելին քան {{limit}} համընկնումները +find_match_count_limit[one]=Աւելին քան {{limit}} համընկնումը +find_match_count_limit[two]=Աւելին քան {{limit}} համընկնումները +find_match_count_limit[few]=Աւելին քան {{limit}} համընկնումները +find_match_count_limit[many]=Աւելին քան {{limit}} համընկնումները +find_match_count_limit[other]=Աւելին քան {{limit}} համընկնումները +find_not_found=Արտայայտութիւնը չգտնուեց + +# Error panel labels +error_more_info=Աւելի շատ տեղեկութիւն +error_less_info=Քիչ տեղեկութիւն +error_close=Փակել +# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be +# replaced by the PDF.JS version and build ID. +error_version_info=PDF.js v{{version}} (կառուցումը. {{build}}) +# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an +# english string describing the error. +error_message=Գրութիւնը. {{message}} +# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack +# trace. +error_stack=Շեղջ. {{stack}} +# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename +error_file=նիշք․ {{file}} +# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number +error_line=Տողը. {{line}} +rendering_error=Սխալ է տեղի ունեցել էջի մեկնաբանման ժամանակ + +# Predefined zoom values +page_scale_width=Էջի լայնքը +page_scale_fit=Հարմարեցնել էջը +page_scale_auto=Ինքնաշխատ խոշորացում +page_scale_actual=Իրական չափը +# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a +# numerical scale value. +page_scale_percent={{scale}}% + +# Loading indicator messages +loading_error_indicator=Սխալ +loading_error=PDF նիշքը բացելիս սխալ է տեղի ունեցել։ +invalid_file_error=Սխալ կամ վնասուած PDF նիշք։ +missing_file_error=PDF նիշքը բացակաիւմ է։ +unexpected_response_error=Սպասարկիչի անսպասելի պատասխան։ + +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. +annotation_date_string={{date}}, {{time}} + +# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. +# "{{type}}" will be replaced with an annotation type from a list defined in +# the PDF spec (32000-1:2008 Table 169 – Annotation types). +# Some common types are e.g.: "Check", "Text", "Comment", "Note" +text_annotation_type.alt=[{{type}} Ծանոթութիւն] +password_label=Մուտքագրէք գաղտնաբառը այս PDF նիշքը բացելու համար +password_invalid=Գաղտնաբառը սխալ է: Կրկին փորձէք: +password_ok=Լաւ +password_cancel=Չեղարկել + +printing_not_supported=Զգուշացում. Տպելը ամբողջութեամբ չի աջակցուում զննարկիչի կողմից։ +printing_not_ready=Զգուշացում. PDF֊ը ամբողջութեամբ չի բեռնաւորուել տպելու համար։ +web_fonts_disabled=Վեբ-տառատեսակները անջատուած են. հնարաւոր չէ աւգտագործել ներկառուցուած PDF տառատեսակները։ diff --git a/cps/static/locale/ia/viewer.properties b/cps/static/locale/ia/viewer.properties index ee8842cf..167547ad 100644 --- a/cps/static/locale/ia/viewer.properties +++ b/cps/static/locale/ia/viewer.properties @@ -46,7 +46,7 @@ bookmark_label=Vista actual # Secondary toolbar and context menu tools.title=Instrumentos -tools_label=Intrumentos +tools_label=Instrumentos first_page.title=Ir al prime pagina first_page.label=Ir al prime pagina first_page_label=Ir al prime pagina @@ -145,9 +145,11 @@ attachments.title=Monstrar le annexos attachments_label=Annexos thumbs.title=Monstrar le vignettes thumbs_label=Vignettes -findbar.title=Recercar in le documento +findbar.title=Cercar in le documento findbar_label=Cercar +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Pagina {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -164,10 +166,10 @@ find_previous_label=Previe find_next.title=Trovar le successive occurrentia del phrase find_next_label=Sequente find_highlight=Evidentiar toto -find_match_case_label=Distinger majusculas/minusculas +find_match_case_label=Distinguer majusculas/minusculas find_entire_word_label=Parolas integre -find_reached_top=Le initio del documento ha essite attingite, on continua ab le fin -find_reached_bottom=Le fin del documento ha essite attingite, on continua ab le initio +find_reached_top=Initio del documento attingite, continuation ab fin +find_reached_bottom=Fin del documento attingite, continuation ab initio # LOCALIZATION NOTE (find_match_count): The supported plural forms are # [one|two|few|many|other], with [other] as the default value. # "{{current}}" and "{{total}}" will be replaced by a number representing the @@ -187,7 +189,7 @@ find_match_count_limit[zero]=Plus de {{limit}} concordantias find_match_count_limit[one]=Plus de {{limit}} concordantia find_match_count_limit[two]=Plus de {{limit}} concordantias find_match_count_limit[few]=Plus de {{limit}} concordantias -find_match_count_limit[many]=Plus de {{limit}} concordantias +find_match_count_limit[many]=Plus de {{limit}} correspondentias find_match_count_limit[other]=Plus de {{limit}} concordantias find_not_found=Phrase non trovate @@ -242,5 +244,4 @@ password_cancel=Cancellar printing_not_supported=Attention : le impression non es totalmente supportate per ce navigator. printing_not_ready=Attention: le file PDF non es integremente cargate pro lo poter imprimer. -web_fonts_disabled=Le typos de character de web es inactive: incapace de usar le typos de character incorporate al PDF. -document_colors_not_allowed=Le documentos PDF non pote utilisar lor proprie colores: “Autorisar le paginas web a utilisar lor proprie colores” es disactivate in le navigator. +web_fonts_disabled=Le typos de litteras web es disactivate: impossibile usar le typos de litteras PDF incorporate. diff --git a/cps/static/locale/id/viewer.properties b/cps/static/locale/id/viewer.properties index 58ebc40d..b9b9a730 100644 --- a/cps/static/locale/id/viewer.properties +++ b/cps/static/locale/id/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Miniatur findbar.title=Temukan di Dokumen findbar_label=Temukan +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Laman {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Batal printing_not_supported=Peringatan: Pencetakan tidak didukung secara lengkap pada peramban ini. printing_not_ready=Peringatan: Berkas PDF masih belum dimuat secara lengkap untuk dapat dicetak. web_fonts_disabled=Font web dinonaktifkan: tidak dapat menggunakan font PDF yang tersemat. -document_colors_not_allowed=Dokumen PDF tidak diizinkan untuk menggunakan warnanya sendiri karena setelan 'Izinkan laman memilih warna sendiri' dinonaktifkan pada pengaturan. diff --git a/cps/static/locale/is/viewer.properties b/cps/static/locale/is/viewer.properties index d24c2adf..72dc8acd 100644 --- a/cps/static/locale/is/viewer.properties +++ b/cps/static/locale/is/viewer.properties @@ -236,4 +236,3 @@ password_cancel=Hætta við printing_not_supported=Aðvörun: Prentun er ekki með fyllilegan stuðning á þessum vafra. printing_not_ready=Aðvörun: Ekki er búið að hlaða inn allri PDF skránni fyrir prentun. web_fonts_disabled=Vef leturgerðir eru óvirkar: get ekki notað innbyggðar PDF leturgerðir. -document_colors_not_allowed=PDF skjöl hafa ekki leyfi til að nota sína eigin liti: “Leyfa síðum að velja eigin liti” er óvirkt í vafranum. diff --git a/cps/static/locale/it/viewer.properties b/cps/static/locale/it/viewer.properties index cff0258b..87c4050d 100644 --- a/cps/static/locale/it/viewer.properties +++ b/cps/static/locale/it/viewer.properties @@ -2,13 +2,29 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. +# 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. + previous.title = Pagina precedente previous_label = Precedente next.title = Pagina successiva next_label = Successiva + page.title = Pagina of_pages = di {{pagesCount}} page_of_pages = ({{pageNumber}} di {{pagesCount}}) + zoom_out.title = Riduci zoom zoom_out_label = Riduci zoom zoom_in.title = Aumenta zoom @@ -24,6 +40,7 @@ download.title = Scarica questo documento download_label = Download bookmark.title = Visualizzazione corrente (copia o apri in una nuova finestra) bookmark_label = Visualizzazione corrente + tools.title = Strumenti tools_label = Strumenti first_page.title = Vai alla prima pagina @@ -38,22 +55,26 @@ page_rotate_cw_label = Ruota in senso orario page_rotate_ccw.title = Ruota in senso antiorario page_rotate_ccw.label = Ruota in senso antiorario page_rotate_ccw_label = Ruota in senso antiorario + cursor_text_select_tool.title = Attiva strumento di selezione testo cursor_text_select_tool_label = Strumento di selezione testo cursor_hand_tool.title = Attiva strumento mano cursor_hand_tool_label = Strumento mano + scroll_vertical.title = Scorri le pagine in verticale scroll_vertical_label = Scorrimento verticale scroll_horizontal.title = Scorri le pagine in orizzontale scroll_horizontal_label = Scorrimento orizzontale scroll_wrapped.title = Scorri le pagine in verticale, disponendole da sinistra a destra e andando a capo automaticamente scroll_wrapped_label = Scorrimento con a capo automatico + spread_none.title = Non raggruppare pagine spread_none_label = Nessun raggruppamento spread_odd.title = Crea gruppi di pagine che iniziano con numeri di pagina dispari spread_odd_label = Raggruppamento dispari spread_even.title = Crea gruppi di pagine che iniziano con numeri di pagina pari spread_even_label = Raggruppamento pari + document_properties.title = Proprietà del documento… document_properties_label = Proprietà del documento… document_properties_file_name = Nome file: @@ -86,9 +107,11 @@ document_properties_linearized = Visualizzazione web veloce: document_properties_linearized_yes = Sì document_properties_linearized_no = No document_properties_close = Chiudi + print_progress_message = Preparazione documento per la stampa… print_progress_percent = {{progress}}% print_progress_close = Annulla + toggle_sidebar.title = Attiva/disattiva barra laterale toggle_sidebar_notification.title = Attiva/disattiva barra laterale (il documento contiene struttura/allegati) toggle_sidebar_label = Attiva/disattiva barra laterale @@ -100,8 +123,11 @@ thumbs.title = Mostra le miniature thumbs_label = Miniature findbar.title = Trova nel documento findbar_label = Trova + +page_canvas = Pagina {{page}} thumb_page_title = Pagina {{page}} thumb_page_canvas = Miniatura della pagina {{page}} + find_input.title = Trova find_input.placeholder = Trova nel documento… find_previous.title = Trova l’occorrenza precedente del testo da cercare @@ -127,6 +153,7 @@ find_match_count_limit[few] = Più di {{limit}} corrispondenze find_match_count_limit[many] = Più di {{limit}} corrispondenze find_match_count_limit[other] = Più di {{limit}} corrispondenze find_not_found = Testo non trovato + error_more_info = Ulteriori informazioni error_less_info = Nascondi dettagli error_close = Chiudi @@ -136,23 +163,27 @@ error_stack = Stack: {{stack}} error_file = File: {{file}} error_line = Riga: {{line}} rendering_error = Si è verificato un errore durante il rendering della pagina. + page_scale_width = Larghezza pagina page_scale_fit = Adatta a una pagina page_scale_auto = Zoom automatico page_scale_actual = Dimensioni effettive page_scale_percent = {{scale}}% + loading_error_indicator = Errore loading_error = Si è verificato un errore durante il caricamento del PDF. invalid_file_error = File PDF non valido o danneggiato. missing_file_error = File PDF non disponibile. unexpected_response_error = Risposta imprevista del server + annotation_date_string = {{date}}, {{time}} + text_annotation_type.alt = [Annotazione: {{type}}] password_label = Inserire la password per aprire questo file PDF. password_invalid = Password non corretta. Riprovare. password_ok = OK password_cancel = Annulla + printing_not_supported = Attenzione: la stampa non è completamente supportata da questo browser. printing_not_ready = Attenzione: il PDF non è ancora stato caricato completamente per la stampa. -web_fonts_disabled = I web font risultano disattivati: impossibile utilizzare i caratteri inclusi nel PDF. -document_colors_not_allowed = Non è possibile visualizzare i colori originali definiti nel file PDF: l’opzione del browser “Consenti alle pagine di scegliere i propri colori invece di quelli impostati” è disattivata. +web_fonts_disabled = I web font risultano disattivati: impossibile utilizzare i caratteri incorporati nel PDF. diff --git a/cps/static/locale/ja/viewer.properties b/cps/static/locale/ja/viewer.properties index 3a90b47b..95732a07 100644 --- a/cps/static/locale/ja/viewer.properties +++ b/cps/static/locale/ja/viewer.properties @@ -148,13 +148,15 @@ thumbs_label=縮小版 findbar.title=文書内を検索します findbar_label=検索 +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas={{page}} ページ # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. thumb_page_title={{page}} ページ # LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page # number. -thumb_page_canvas=ページの縮小版 {{page}} +thumb_page_canvas={{page}} ページの縮小版 # Find panel button title and messages find_input.title=検索 diff --git a/cps/static/locale/ka/viewer.properties b/cps/static/locale/ka/viewer.properties index c7b2da8d..86e91bbd 100644 --- a/cps/static/locale/ka/viewer.properties +++ b/cps/static/locale/ka/viewer.properties @@ -91,7 +91,7 @@ document_properties_kb={{size_kb}} კბ ({{size_b}} ბაიტი) # will be replaced by the PDF file size in megabytes, respectively in bytes. document_properties_mb={{size_mb}} მბ ({{size_b}} ბაიტი) document_properties_title=სათაური: -document_properties_author=შემქმნელი: +document_properties_author=შემდგენი: document_properties_subject=თემა: document_properties_keywords=საკვანძო სიტყვები: document_properties_creation_date=შექმნის თარიღი: @@ -99,8 +99,8 @@ document_properties_modification_date=ჩასწორების თარ # LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" # will be replaced by the creation/modification date, and time, of the PDF file. document_properties_date_string={{date}}, {{time}} -document_properties_creator=გამომშვები: -document_properties_producer=PDF-გამომშვები: +document_properties_creator=შემქმნელი: +document_properties_producer=PDF-შემქმნელი: document_properties_version=PDF-ვერსია: document_properties_page_count=გვერდების რაოდენობა: document_properties_page_size=გვერდის ზომა: @@ -122,7 +122,7 @@ document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}}) # LOCALIZATION NOTE (document_properties_linearized): The linearization status of # the document; usually called "Fast Web View" in English locales of Adobe software. -document_properties_linearized=სწრაფი შეთვალიერება: +document_properties_linearized=მსუბუქი ვებჩვენება: document_properties_linearized_yes=დიახ document_properties_linearized_no=არა document_properties_close=დახურვა @@ -148,6 +148,8 @@ thumbs_label=ესკიზები findbar.title=პოვნა დოკუმენტში findbar_label=ძიება +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=გვერდი {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -164,7 +166,7 @@ find_previous_label=წინა find_next.title=ფრაზის შემდეგი კონტექსტის პოვნა find_next_label=შემდეგი find_highlight=ყველას მონიშვნა -find_match_case_label=მთავრულის გათვალისწინება +find_match_case_label=ემთხვევა მთავრული find_entire_word_label=მთლიანი სიტყვები find_reached_top=მიღწეულია დოკუმენტის დასაწყისი, გრძელდება ბოლოდან find_reached_bottom=მიღწეულია დოკუმენტის ბოლო, გრძელდება დასაწყისიდან @@ -243,4 +245,3 @@ password_cancel=გაუქმება printing_not_supported=გაფრთხილება: ამობეჭდვა ამ ბრაუზერში არაა სრულად მხარდაჭერილი. printing_not_ready=გაფრთხილება: PDF სრულად ჩატვირთული არაა, ამობეჭდვის დასაწყებად. web_fonts_disabled=ვებშრიფტები გამორთულია: ჩაშენებული PDF-შრიფტების გამოყენება ვერ ხერხდება. -document_colors_not_allowed=PDF-დოკუმენტებს არ აქვს საკუთარი ფერების გამოყენების ნებართვა: ბრაუზერში გამორთულია “გვერდებისთვის საკუთარი ფერების გამოყენების უფლება”. diff --git a/cps/static/locale/kab/viewer.properties b/cps/static/locale/kab/viewer.properties index db59ef71..a6f07f16 100644 --- a/cps/static/locale/kab/viewer.properties +++ b/cps/static/locale/kab/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Tinfulin findbar.title=Nadi deg isemli findbar_label=Nadi +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Asebter {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Sefsex printing_not_supported=Ɣuṛ-k: Asiggez ur ittusefrak ara yakan imaṛṛa deg iminig-a. printing_not_ready=Ɣuṛ-k: Afaylu PDF ur d-yuli ara imeṛṛa akken ad ittusiggez. web_fonts_disabled=Tisefsiyin web ttwassensent; D awezɣi useqdec n tsefsiyin yettwarnan ɣer PDF. -document_colors_not_allowed=Isemliyen PDF ur zmiren ara ad sqedcen initen-nsen: 'Sireg isebtar akken ad fernen initen-nsen' ur yermid ara deg iminig. diff --git a/cps/static/locale/kk/viewer.properties b/cps/static/locale/kk/viewer.properties index cc1b4f6a..afd679ac 100644 --- a/cps/static/locale/kk/viewer.properties +++ b/cps/static/locale/kk/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Кіші көріністер findbar.title=Құжаттан табу findbar_label=Табу +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Бет {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Бас тарту printing_not_supported=Ескерту: Баспаға шығаруды бұл браузер толығымен қолдамайды. printing_not_ready=Ескерту: Баспаға шығару үшін, бұл PDF толығымен жүктеліп алынбады. web_fonts_disabled=Веб қаріптері сөндірілген: құрамына енгізілген PDF қаріптерін қолдану мүмкін емес. -document_colors_not_allowed=PDF құжаттарына өздік түстерді қолдану рұқсат етілмеген: бұл браузерде 'Веб-сайттарға өздерінің түстерін қолдануға рұқсат беру' мүмкіндігі сөндірулі тұр. diff --git a/cps/static/locale/km/viewer.properties b/cps/static/locale/km/viewer.properties index e5403cc1..8615e838 100644 --- a/cps/static/locale/km/viewer.properties +++ b/cps/static/locale/km/viewer.properties @@ -181,4 +181,3 @@ password_cancel=បោះបង់ printing_not_supported=ការព្រមាន ៖ ការបោះពុម្ពមិនត្រូវបានគាំទ្រពេញលេញដោយកម្មវិធីរុករកនេះទេ ។ printing_not_ready=ព្រមាន៖ PDF មិនត្រូវបានផ្ទុកទាំងស្រុងដើម្បីបោះពុម្ពទេ។ web_fonts_disabled=បានបិទពុម្ពអក្សរបណ្ដាញ ៖ មិនអាចប្រើពុម្ពអក្សរ PDF ដែលបានបង្កប់បានទេ ។ -document_colors_not_allowed=ឯកសារ PDF មិនត្រូវបានអនុញ្ញាតឲ្យប្រើពណ៌ផ្ទាល់របស់វាទេ៖ 'អនុញ្ញាតឲ្យទំព័រជ្រើសពណ៌ផ្ទាល់ខ្លួន' ត្រូវបានធ្វើឲ្យអសកម្មក្នុងកម្មវិធីរុករក។ diff --git a/cps/static/locale/kn/viewer.properties b/cps/static/locale/kn/viewer.properties index cf3d0041..b37a71c2 100644 --- a/cps/static/locale/kn/viewer.properties +++ b/cps/static/locale/kn/viewer.properties @@ -190,4 +190,3 @@ password_cancel=ರದ್ದು ಮಾಡು printing_not_supported=ಎಚ್ಚರಿಕೆ: ಈ ಜಾಲವೀಕ್ಷಕದಲ್ಲಿ ಮುದ್ರಣಕ್ಕೆ ಸಂಪೂರ್ಣ ಬೆಂಬಲವಿಲ್ಲ. printing_not_ready=ಎಚ್ಚರಿಕೆ: PDF ಕಡತವು ಮುದ್ರಿಸಲು ಸಂಪೂರ್ಣವಾಗಿ ಲೋಡ್ ಆಗಿಲ್ಲ. web_fonts_disabled=ಜಾಲ ಅಕ್ಷರಶೈಲಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ: ಅಡಕಗೊಳಿಸಿದ PDF ಅಕ್ಷರಶೈಲಿಗಳನ್ನು ಬಳಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ. -document_colors_not_allowed=PDF ದಸ್ತಾವೇಜುಗಳು ತಮ್ಮದೆ ಆದ ಬಣ್ಣಗಳನ್ನು ಬಳಸಲು ಅನುಮತಿ ಇರುವುದಿಲ್ಲ: 'ಪುಟಗಳು ತಮ್ಮದೆ ಆದ ಬಣ್ಣವನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಅನುಮತಿಸು' ಅನ್ನು ಜಾಲವೀಕ್ಷಕದಲ್ಲಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿರುತ್ತದೆ. diff --git a/cps/static/locale/ko/viewer.properties b/cps/static/locale/ko/viewer.properties index d173a242..727f8d5c 100644 --- a/cps/static/locale/ko/viewer.properties +++ b/cps/static/locale/ko/viewer.properties @@ -22,7 +22,7 @@ next_label=다음 page.title=페이지 # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number # representing the total number of pages in the document. -of_pages=전체 {{pagesCount}} +of_pages=/ {{pagesCount}} # LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" # will be replaced by a number representing the currently visible page, # respectively a number representing the total number of pages in the document. @@ -41,8 +41,8 @@ print.title=인쇄 print_label=인쇄 download.title=다운로드 download_label=다운로드 -bookmark.title=현재 뷰 (복사하거나 새 창에 열기) -bookmark_label=현재 뷰 +bookmark.title=현재 보기 (복사 또는 새 창에 열기) +bookmark_label=현재 보기 # Secondary toolbar and context menu tools.title=도구 @@ -106,8 +106,8 @@ document_properties_page_count=페이지 수: document_properties_page_size=페이지 크기: document_properties_page_size_unit_inches=in document_properties_page_size_unit_millimeters=mm -document_properties_page_size_orientation_portrait=세로 -document_properties_page_size_orientation_landscape=가로 +document_properties_page_size_orientation_portrait=세로 방향 +document_properties_page_size_orientation_landscape=가로 방향 document_properties_page_size_name_a3=A3 document_properties_page_size_name_a4=A4 document_properties_page_size_name_letter=레터 @@ -127,7 +127,7 @@ document_properties_linearized_yes=예 document_properties_linearized_no=아니오 document_properties_close=닫기 -print_progress_message=인쇄 문서 준비중… +print_progress_message=인쇄 문서 준비 중… # LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by # a numerical per cent value. print_progress_percent={{progress}}% @@ -136,10 +136,10 @@ print_progress_close=취소 # Tooltips and alt text for side panel toolbar buttons # (the _label strings are alt text for the buttons, the .title strings are # tooltips) -toggle_sidebar.title=탐색창 열고 닫기 -toggle_sidebar_notification.title=탐색창 열고 닫기 (문서에 아웃라인이나 첨부파일이 들어있음) -toggle_sidebar_label=탐색창 열고 닫기 -document_outline.title=문서 아웃라인 보기(더블 클릭해서 모든 항목 열고 닫기) +toggle_sidebar.title=탐색창 표시/숨기기 +toggle_sidebar_notification.title=탐색창 표시/숨기기 (문서에 아웃라인/첨부파일 포함됨) +toggle_sidebar_label=탐색창 표시/숨기기 +document_outline.title=문서 아웃라인 보기(더블 클릭해서 모든 항목 펼치기/접기) document_outline_label=문서 아웃라인 attachments.title=첨부파일 보기 attachments_label=첨부파일 @@ -148,6 +148,8 @@ thumbs_label=미리보기 findbar.title=검색 findbar_label=검색 +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas={{page}} 페이지 # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -165,7 +167,7 @@ find_next.title=지정 문자열에 일치하는 다음 부분을 검색 find_next_label=다음 find_highlight=모두 강조 표시 find_match_case_label=대/소문자 구분 -find_entire_word_label=전체 단어 +find_entire_word_label=단어 단위로 find_reached_top=문서 처음까지 검색하고 끝으로 돌아와 검색했습니다. find_reached_bottom=문서 끝까지 검색하고 앞으로 돌아와 검색했습니다. # LOCALIZATION NOTE (find_match_count): The supported plural forms are @@ -208,7 +210,7 @@ error_stack=스택: {{stack}} error_file=파일: {{file}} # LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number error_line=줄 번호: {{line}} -rendering_error=페이지를 렌더링하는 중 오류가 발생했습니다. +rendering_error=페이지를 렌더링하는 동안 오류가 발생했습니다. # Predefined zoom values page_scale_width=페이지 너비에 맞춤 @@ -221,9 +223,9 @@ page_scale_percent={{scale}}% # Loading indicator messages loading_error_indicator=오류 -loading_error=PDF를 로드하는 중 오류가 발생했습니다. -invalid_file_error=유효하지 않거나 파손된 PDF 파일 -missing_file_error=PDF 파일이 없습니다. +loading_error=PDF를 로드하는 동안 오류가 발생했습니다. +invalid_file_error=잘못되었거나 손상된 PDF 파일. +missing_file_error=PDF 파일 없음. unexpected_response_error=예상치 못한 서버 응답입니다. # LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be @@ -235,12 +237,11 @@ annotation_date_string={{date}} {{time}} # the PDF spec (32000-1:2008 Table 169 – Annotation types). # Some common types are e.g.: "Check", "Text", "Comment", "Note" text_annotation_type.alt=[{{type}} 주석] -password_label=이 PDF 파일을 열 수 있는 비밀번호를 입력하십시오. -password_invalid=잘못된 비밀번호입니다. 다시 시도해 주십시오. +password_label=이 PDF 파일을 열 수 있는 비밀번호를 입력하세요. +password_invalid=잘못된 비밀번호입니다. 다시 시도하세요. password_ok=확인 password_cancel=취소 printing_not_supported=경고: 이 브라우저는 인쇄를 완전히 지원하지 않습니다. printing_not_ready=경고: 이 PDF를 인쇄를 할 수 있을 정도로 읽어들이지 못했습니다. web_fonts_disabled=웹 폰트가 비활성화됨: 내장된 PDF 글꼴을 사용할 수 없습니다. -document_colors_not_allowed=PDF 문서의 자체 색상 허용 안됨: “페이지 자체 색상 허용”이 브라우저에서 비활성화 되어 있습니다. diff --git a/cps/static/locale/kok/viewer.properties b/cps/static/locale/kok/viewer.properties deleted file mode 100644 index dbdd3df1..00000000 --- a/cps/static/locale/kok/viewer.properties +++ /dev/null @@ -1,167 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) -previous.title=फाटले पान -previous_label=फाटले -next.title=फुडले पान -next_label=फुडें - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. - -zoom_out.title=ल्हान करात -zoom_out_label=ल्हान करात -zoom_in.title=व्हड करात -zoom_in_label=व्हड करात -zoom.title=व्हड -presentation_mode.title=सादरीकरण स्थितींत वचात -presentation_mode_label=सादरीकरण स्थिती -open_file.title=फायल उगडात -open_file_label=उगडात -print.title=छापात -print_label=छापात -download.title=डावनलोड -download_label=डावनलोड -bookmark.title=सद्याचे दृश्य (नव्या जनेलांत प्रत करात वो उगडात) -bookmark_label=सद्याचे दृश्य - -# Secondary toolbar and context menu -tools.title=साधनां -tools_label=साधनां -first_page.title=पयल्या पानार वचात -first_page.label=पयल्या पानार वचात -first_page_label=पयल्या पानार वचात -last_page.title=निमण्या पानार वचात -last_page.label=निमण्या पानार वचात -last_page_label=निमण्या पानार वचात -page_rotate_cw.title=घड्याळाच्या दिकेन घुंवडायात -page_rotate_cw.label=घड्याळाच्या दिकेन घुंवडायात -page_rotate_cw_label=घड्याळाच्या दिकेन घुंवडायात -page_rotate_ccw.title=घड्याळाच्या उलट्या दिकेन घुंवडायात -page_rotate_ccw.label=घड्याळाच्या उलट्या दिकेन घुंवडायात -page_rotate_ccw_label=घड्याळाच्या उलट्या दिकेन घुंवडायात - - -# Document properties dialog box -document_properties.title=दस्तावेज वैशिश्ट्यां... -document_properties_label=दस्तावेज वैशिश्ट्यां... -document_properties_file_name=फायलीचे नाव: -document_properties_file_size=फायलीचो आकार: -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -document_properties_kb={{आकार_kb}} KB ({{आकार_b}} बायटस्) -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_mb={{आकार_mb}} MB ({{आकार_b}} बायटस्) -document_properties_title=मथळो: -document_properties_author=बरोवपी: -document_properties_subject=विशय: -document_properties_keywords=कीवर्डस्: -document_properties_creation_date=निर्मणी तारीक: -document_properties_modification_date=सुदार तारीक: -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. -document_properties_date_string={{तारीक}}, {{वेळ}} -document_properties_creator=निर्मातो: -document_properties_producer=\u0020PDF निर्मातो: -document_properties_version=PDF आवृत्ती: -document_properties_page_count=पान गणन: -document_properties_close=बंद - -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) -toggle_sidebar.title=सायडबार अदलाबदल -toggle_sidebar_label=सायडबार अदलाबदल -document_outline_label=दस्तावेज आउटलायन -attachments.title=जोड दाखयात -attachments_label=जोडी -thumbs.title=थंबनेल दाखयात -thumbs_label=थंबनेल -findbar.title=दस्तावेजांत सोदात - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -thumb_page_title=पान {{पान}} -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. -thumb_page_canvas={{पान}} पानाचे थंबनेल - -# Find panel button title and messages -find_previous.title=वाक्याचो पयलीचो अंश सोदात -find_previous_label=फाटले -find_next.title=वाक्याचो मुखावेलो अंश सोदात -find_next_label=फुडें -find_highlight=सगळे ठळक करात -find_match_case_label=केस जुळयात -find_reached_top=दस्तावेजाच्या वयर पावले. सकयल्यान सुरू करात -find_reached_bottom=दस्तावेजाच्या शेवटाक पावले, वयल्यान सुरू करात -find_not_found=वाक्य मेळूंक ना - -# Error panel labels -error_more_info=अदिक माहिती -error_less_info=कमी माहिती -error_close=बंद -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -error_version_info=PDF.js v{{आवृत्ती}} (build: {{build}}) -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -error_message=संदेश : {{संदेश}} -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -error_stack=दाळ: {{दाळ}} -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -error_file=फायल: {{फायल}} -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number -error_line=ओळ: {{ओळ}} -rendering_error=पान रेंडरिंग करतास्तना एरर आयलो - -# Predefined zoom values -page_scale_width=पानाची रुंदाय -page_scale_fit=पानार बसयात -page_scale_auto=आपशीच व्हड -page_scale_actual=मूळचो आकार -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. - -# Loading indicator messages -loading_error_indicator=एरर -loading_error=पीडीएफ चालू जातना एरर आयलो -invalid_file_error=अवैध वो वाट लागिल्ली PDF फायल -missing_file_error=शेणिल्ली PDF फायल. -unexpected_response_error=अनपेक्षित सर्व्हर प्रतिसाद - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -text_annotation_type.alt=[{{प्रकार}} टिप्पणी] -password_label=ही PDF फायल उगडपाक पासवर्ड दियात -password_invalid=अवैध पासवर्ड. परतून यत्न करात. -password_ok=बरें आसा - -printing_not_supported=शिटकावणी : हे ब्रावजर छापपाक फांटबळ दिना -printing_not_ready=शिटकावणी: PDF मुद्रणाखातीर पुराय लोड जावना. -web_fonts_disabled=वेब अक्षरसंच निश्क्रिय केल्यात: एम्बेडेड PDF अक्षरसंच वापरपाक शकना. -document_colors_not_allowed=PDF दस्तावेजांक तांचे स्वतःचे रंग वापरपाक अनुमती ना: 'पानांक तांचे स्वतःचे रंग निवडुपाक दियात' ब्रावजरान निश्क्रीय केला. diff --git a/cps/static/locale/ks/viewer.properties b/cps/static/locale/ks/viewer.properties deleted file mode 100644 index 63a9192e..00000000 --- a/cps/static/locale/ks/viewer.properties +++ /dev/null @@ -1,168 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) -previous.title=پتِم صفحە -previous_label=پتِم -next.title=برونٹھِم صفحە -next_label=برونٹھ - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. - -zoom_out.title=نەبر كڈیەو -zoom_out_label=نەبر كڈیەو -zoom_in.title=اندر ژٓانیو -zoom_in_label=اندر ژٓانیو -zoom.title=زوم -presentation_mode.title=پریزینٹیشن موڈس کُن کْریو سوچ -presentation_mode_label=پریزینٹیشن موڈ -open_file.title=فایل كھولیو -open_file_label=كھولیو -print.title=پرینٹ -print_label=پرینٹ -download.title=ڈاونلوڈ -download_label=ڈاونلوڈ -bookmark.title=حالُك نظارء (نقل كریو نتە كھولیەو بدل وِنڈو منز) -bookmark_label=حالُك نظارء - -# Secondary toolbar and context menu -tools.title=ٹول -tools_label=ٹول -first_page.title=گوڈنیکِس پیجس کُن گْژھیو\u0020 -first_page.label=گوڈنیکِس پیجس کُن گْژھیو\u0020 -first_page_label=گوڈنیکِس پیجس کُن گْژھیو\u0020 -last_page.title=\u0020پْتمِس پیجس کُن گْژھیو\u0020 -last_page.label=\u0020پْتمِس پیجس کُن گْژھیو\u0020 -last_page_label=\u0020پْتمِس پیجس کُن گْژھیو\u0020 -page_rotate_cw.title=کُلاک وایِز کْریو روٹیٹ\u0020 -page_rotate_cw.label=کُلاک وایِز کْریو روٹیٹ\u0020 -page_rotate_cw_label=کُلاک وایِز کْریو روٹیٹ\u0020 -page_rotate_ccw.title=\u0020کاونٹر کُلاک وایِز کْریو روٹیٹ -page_rotate_ccw.label=\u0020کاونٹر کُلاک وایِز کْریو روٹیٹ -page_rotate_ccw_label=\u0020کاونٹر کُلاک وایِز کْریو روٹیٹ - - -# Document properties dialog box -document_properties.title=دستاویز خصوصیات ۔ ۔ ۔ -document_properties_label=دستاویز خصوصیات ۔ ۔ ۔ -document_properties_file_name=فایل ناو: -document_properties_file_size=فایل سایِز: -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -document_properties_kb={{size_kb}} KB ({{size_b}} bytes) -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_mb={{size_kb}} KB ({{size_b}} bytes) -document_properties_title=عنوان: -document_properties_author=آتھر -document_properties_subject=موضوع: -document_properties_keywords=كی وٲرڈ: -document_properties_creation_date=بناونُک تأریخ -document_properties_modification_date=تبدیلی ہُند ڈاٹا -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. -document_properties_date_string={{تأریخ}}, {{ٹایم}} -document_properties_creator=بناون وول: -document_properties_producer=پی ڈی ایف پروڈوسر: -document_properties_version=پی ڈی ایف وْرجن: -document_properties_page_count=پیج کاوُنٹ: -document_properties_close=بند - -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) -toggle_sidebar.title=ٹوگل سایِڈ بار -toggle_sidebar_label=ٹوگل سایِڈ بار -document_outline_label=دستاەیزن ھِنز آوٹلاین -attachments.title=اٹیچمینٹ ہأیو -attachments_label=اٹیچمینٹ -thumbs.title=تھمبنیلس ھآویو -thumbs_label=تھمبنیلس\u0020 -findbar.title=دستاویزس منز وْچھیو - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -thumb_page_title=صفحە {{صفحە }} -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. -thumb_page_canvas=صفحُك تھمبنیل\u0020 - -# Find panel button title and messages -find_previous.title=جملُك پت۪یوم واقعئ ژئھنڈیو\u0020 -find_previous_label=پتِم -find_next.title=جملُك بیٲكھ واقعئ ژئھنڈیو\u0020 -find_next_label=برونٹھ -find_highlight=تمام کْریو ہاے لایِٹ -find_match_case_label=کیس کْریو میچ -find_reached_top=صفحہ كس ٹاپس پیٹھ وئت، بوْنئ پیٹھئ تھأیو جٲری -find_reached_bottom=صفحہ كس آخرس پیٹھ وئت، ہ۪یرئ پیٹھئ تھأو جئری -find_not_found=جملئ آو نئ اتھ۪ی - -# Error panel labels -error_more_info=مزید مولومات -error_less_info=كم مولەومات -error_close=بند -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -error_version_info=PDF.js v{{version}} (build: {{build}}) -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -error_message=شیچھ: {{شیچھ}} -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -error_stack=سٹیك: {{سٹیك}} -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -error_file=فایل: {{fileفایل}} -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number -error_line=ريخ: {{ریخ}} -rendering_error=صفحئ كھولُن ویز۪ی گئی غلطی - -# Predefined zoom values -page_scale_width=صفحُك كھَجَر -page_scale_fit=صفحئ برابر -page_scale_auto=پٲنٲی بڈٲویو -page_scale_actual=اصلی سایز -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. -page_scale_percent={{scale}}% - -# Loading indicator messages -loading_error_indicator=غلطی -loading_error=پی ڈی ایف كھولَن ویز۪ی گئی غلطی -invalid_file_error=ناکار یا خراب گأمْژ پی ڈی ایف فایل۔ -missing_file_error=میسینگ پی ڈی ایف فایل۔ -unexpected_response_error=غیر متوقع سْرور جواب۔ - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -text_annotation_type.alt=[{{قئسم}} اینوٹیشن] -password_label=پاس وأرڈ کْریو اینٹر یہ پی ڈی ایف فایل اوپْن کرنْہ باپت۔ -password_invalid=ناکار پاس وأرڈ۔ مہربأنی کْرتھ کْریو دوبار کوشش۔ -password_ok=\u0020OK - -printing_not_supported=آگہی۔ یتَھ براویزرَس چھُنَ چھَپاونئ خٲطرئ پورئ پٲٹھ تعاوُن -printing_not_ready=آگأہی: یہ پی ڈی ایف چُھ نْہ پورْ پأٹھ لوڈ پرینٹینگ باپت۔ -web_fonts_disabled=ویب فانٹ چھ ڈیسیبلْڈ: ایمبیڈیڈ پی ڈی ایف فانٹ استعمال کرنْہ باپت کْریو انیبْل۔ -document_colors_not_allowed=پی ڈی ایف دستاویز ہیکن نْہ پنْنئ رنگ استعمال کْرتھ: پیجن دِیو اجازت پنْنئ رنگ استعمال کرنس چُھ ڈی ایکٹیویٹ کرنْہ آمُت براوزرس منز۔ diff --git a/cps/static/locale/ku/viewer.properties b/cps/static/locale/ku/viewer.properties deleted file mode 100644 index c3462f67..00000000 --- a/cps/static/locale/ku/viewer.properties +++ /dev/null @@ -1,146 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) -previous.title=Rûpela berê -previous_label=Paşve -next.title=Rûpela pêş -next_label=Pêş - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. - -zoom_out.title=Dûr bike -zoom_out_label=Dûr bike -zoom_in.title=Nêzîk bike -zoom_in_label=Nêzîk bike -zoom.title=Nêzîk Bike -presentation_mode.title=Derbasî mûda pêşkêşkariyê bibe -presentation_mode_label=Moda Pêşkêşkariyê -open_file.title=Pelî veke -open_file_label=Veke -print.title=Çap bike -print_label=Çap bike -download.title=Jêbar bike -download_label=Jêbar bike -bookmark.title=Xuyakirina niha (kopî yan jî di pencereyeke nû de veke) -bookmark_label=Xuyakirina niha - -# Secondary toolbar and context menu -tools.title=Amûr -tools_label=Amûr -first_page.title=Here rûpela yekemîn -first_page.label=Here rûpela yekemîn -first_page_label=Here rûpela yekemîn -last_page.title=Here rûpela dawîn -last_page.label=Here rûpela dawîn -last_page_label=Here rûpela dawîn -page_rotate_cw.title=Bi aliyê saetê ve bizivirîne -page_rotate_cw.label=Bi aliyê saetê ve bizivirîne -page_rotate_cw_label=Bi aliyê saetê ve bizivirîne -page_rotate_ccw.title=Berevajî aliyê saetê ve bizivirîne -page_rotate_ccw.label=Berevajî aliyê saetê ve bizivirîne -page_rotate_ccw_label=Berevajî aliyê saetê ve bizivirîne - - -# Document properties dialog box -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_title=Sernav: -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. - -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) -toggle_sidebar.title=Darikê kêlekê veke/bigire -toggle_sidebar_label=Darikê kêlekê veke/bigire -document_outline_label=Şemaya belgeyê -thumbs.title=Wênekokan nîşan bide -thumbs_label=Wênekok -findbar.title=Di belgeyê de bibîne - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -thumb_page_title=Rûpel {{page}} -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. -thumb_page_canvas=Wênekoka rûpelê {{page}} - -# Find panel button title and messages -find_previous.title=Peyva berê bibîne -find_previous_label=Paşve -find_next.title=Peyya pêş bibîne -find_next_label=Pêşve -find_highlight=Tevî beloq bike -find_match_case_label=Ji bo tîpên hûrdek-girdek bihîstyar -find_reached_top=Gihîşt serê rûpelê, ji dawiya rûpelê bidomîne -find_reached_bottom=Gihîşt dawiya rûpelê, ji serê rûpelê bidomîne -find_not_found=Peyv nehat dîtin - -# Error panel labels -error_more_info=Zêdetir agahî -error_less_info=Zêdetir agahî -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -error_version_info=PDF.js versiyon {{version}} (avanî: {{build}}) -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -error_message=Peyam: {{message}} -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -error_stack=Komik: {{stack}} -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -error_file=Pel: {{file}} -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number -error_line=Rêzik: {{line}} -rendering_error=Di vehûrandina rûpelê de çewtî çêbû. - -# Predefined zoom values -page_scale_width=Firehiya rûpelê -page_scale_fit=Di rûpelê de bicî bike -page_scale_auto=Xweber nêzîk bike -page_scale_actual=Mezinahiya rastîn -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. - -# Loading indicator messages -loading_error_indicator=Xeletî -loading_error=Dema ku PDF dihat barkirin çewtiyek çêbû. -invalid_file_error=Pelê PDFê nederbasdar yan jî xirabe ye. -missing_file_error=Pelê PDFê kêm e. - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -text_annotation_type.alt=[Nîşaneya {{type}}ê] -password_label=Ji bo PDFê vekî şîfreyê binivîse. -password_invalid=Şîfre çewt e. Tika ye dîsa biceribîne. -password_ok=Temam - -printing_not_supported=Hişyarî: Çapkirin ji hêla vê gerokê ve bi temamî nayê destekirin. -printing_not_ready=Hişyarî: PDF bi temamî nehat barkirin û ji bo çapê ne amade ye. -web_fonts_disabled=Fontên Webê neçalak in: Fontên PDFê yên veşartî nayên bikaranîn. -document_colors_not_allowed=Destûr tune ye ku belgeyên PDFê rengên xwe bi kar bînin: Di gerokê de 'destûrê bide rûpelan ku rengên xwe bi kar bînin' nehatiye çalakirin. diff --git a/cps/static/locale/lij/viewer.properties b/cps/static/locale/lij/viewer.properties index 71a53062..0cfa7d27 100644 --- a/cps/static/locale/lij/viewer.properties +++ b/cps/static/locale/lij/viewer.properties @@ -239,4 +239,3 @@ password_cancel=Anulla printing_not_supported=Atençion: a stanpa a no l'é conpletamente soportâ da sto navegatô. printing_not_ready=Atençion: o PDF o no l'é ancon caregou conpletamente pe-a stanpa. web_fonts_disabled=I font do web en dizativæ: inposcibile adeuviâ i carateri do PDF. -document_colors_not_allowed=No l'é poscibile adeuviâ i pròpi coî pe-i documenti PDF: l'opçion do navegatô “Permetti a-e pagine de çerne i pròpi coî in cangio de quelli inpostæ” a l'é dizativâ. diff --git a/cps/static/locale/locale.properties b/cps/static/locale/locale.properties index 1ae959f5..372dd5d3 100644 --- a/cps/static/locale/locale.properties +++ b/cps/static/locale/locale.properties @@ -4,18 +4,12 @@ [af] @import url(af/viewer.properties) -[ak] -@import url(ak/viewer.properties) - [an] @import url(an/viewer.properties) [ar] @import url(ar/viewer.properties) -[as] -@import url(as/viewer.properties) - [ast] @import url(ast/viewer.properties) @@ -28,11 +22,11 @@ [bg] @import url(bg/viewer.properties) -[bn-BD] -@import url(bn-BD/viewer.properties) +[bn] +@import url(bn/viewer.properties) -[bn-IN] -@import url(bn-IN/viewer.properties) +[bo] +@import url(bo/viewer.properties) [br] @import url(br/viewer.properties) @@ -49,15 +43,12 @@ [cak] @import url(cak/viewer.properties) -[crh] -@import url(crh/viewer.properties) +[ckb] +@import url(ckb/viewer.properties) [cs] @import url(cs/viewer.properties) -[csb] -@import url(csb/viewer.properties) - [cy] @import url(cy/viewer.properties) @@ -67,6 +58,9 @@ [de] @import url(de/viewer.properties) +[dsb] +@import url(dsb/viewer.properties) + [el] @import url(el/viewer.properties) @@ -79,9 +73,6 @@ [en-US] @import url(en-US/viewer.properties) -[en-ZA] -@import url(en-ZA/viewer.properties) - [eo] @import url(eo/viewer.properties) @@ -145,15 +136,15 @@ [hsb] @import url(hsb/viewer.properties) -[hto] -@import url(hto/viewer.properties) - [hu] @import url(hu/viewer.properties) [hy-AM] @import url(hy-AM/viewer.properties) +[hye] +@import url(hye/viewer.properties) + [ia] @import url(ia/viewer.properties) @@ -187,18 +178,6 @@ [ko] @import url(ko/viewer.properties) -[kok] -@import url(kok/viewer.properties) - -[ks] -@import url(ks/viewer.properties) - -[ku] -@import url(ku/viewer.properties) - -[lg] -@import url(lg/viewer.properties) - [lij] @import url(lij/viewer.properties) @@ -214,21 +193,12 @@ [lv] @import url(lv/viewer.properties) -[mai] -@import url(mai/viewer.properties) - [meh] @import url(meh/viewer.properties) [mk] @import url(mk/viewer.properties) -[ml] -@import url(ml/viewer.properties) - -[mn] -@import url(mn/viewer.properties) - [mr] @import url(mr/viewer.properties) @@ -250,15 +220,9 @@ [nn-NO] @import url(nn-NO/viewer.properties) -[nso] -@import url(nso/viewer.properties) - [oc] @import url(oc/viewer.properties) -[or] -@import url(or/viewer.properties) - [pa-IN] @import url(pa-IN/viewer.properties) @@ -280,14 +244,8 @@ [ru] @import url(ru/viewer.properties) -[rw] -@import url(rw/viewer.properties) - -[sah] -@import url(sah/viewer.properties) - -[sat] -@import url(sat/viewer.properties) +[scn] +@import url(scn/viewer.properties) [si] @import url(si/viewer.properties) @@ -310,15 +268,12 @@ [sv-SE] @import url(sv-SE/viewer.properties) -[sw] -@import url(sw/viewer.properties) +[szl] +@import url(szl/viewer.properties) [ta] @import url(ta/viewer.properties) -[ta-LK] -@import url(ta-LK/viewer.properties) - [te] @import url(te/viewer.properties) @@ -328,14 +283,11 @@ [tl] @import url(tl/viewer.properties) -[tn] -@import url(tn/viewer.properties) - [tr] @import url(tr/viewer.properties) -[tsz] -@import url(tsz/viewer.properties) +[trs] +@import url(trs/viewer.properties) [uk] @import url(uk/viewer.properties) @@ -355,15 +307,9 @@ [xh] @import url(xh/viewer.properties) -[zam] -@import url(zam/viewer.properties) - [zh-CN] @import url(zh-CN/viewer.properties) [zh-TW] @import url(zh-TW/viewer.properties) -[zu] -@import url(zu/viewer.properties) - diff --git a/cps/static/locale/lt/viewer.properties b/cps/static/locale/lt/viewer.properties index 45ec3035..daa76787 100644 --- a/cps/static/locale/lt/viewer.properties +++ b/cps/static/locale/lt/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Miniatiūros findbar.title=Ieškoti dokumente findbar_label=Rasti +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas={{page}} puslapis # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Atsisakyti printing_not_supported=Dėmesio! Spausdinimas šioje naršyklėje nėra pilnai realizuotas. printing_not_ready=Dėmesio! PDF failas dar nėra pilnai įkeltas spausdinimui. web_fonts_disabled=Saityno šriftai išjungti – PDF faile esančių šriftų naudoti negalima. -document_colors_not_allowed=PDF dokumentams neleidžiama nurodyti savo spalvų, nes išjungta naršyklės nuostata „Leisti tinklalapiams nurodyti spalvas“. diff --git a/cps/static/locale/ltg/viewer.properties b/cps/static/locale/ltg/viewer.properties index ecdb7235..4fffa864 100644 --- a/cps/static/locale/ltg/viewer.properties +++ b/cps/static/locale/ltg/viewer.properties @@ -217,4 +217,3 @@ password_cancel=Atceļt printing_not_supported=Uzmaneibu: Drukuošona nu itei puorlūka dorbojās tikai daleji. printing_not_ready=Uzmaneibu: PDF nav pilneibā īluodeits drukuošonai. web_fonts_disabled=Šķārsteikla fonti nav aktivizāti: Navar īgult PDF fontus. -document_colors_not_allowed=PDF dokumentym nav atļauts izmantuot pošym sovys kruosys: „Atļaut lopom izavieleit pošom sovys kruosys“ ir deaktiveits puorlyukā. diff --git a/cps/static/locale/lv/viewer.properties b/cps/static/locale/lv/viewer.properties index 18ed55ef..b6d6ad38 100644 --- a/cps/static/locale/lv/viewer.properties +++ b/cps/static/locale/lv/viewer.properties @@ -239,4 +239,3 @@ password_cancel=Atcelt printing_not_supported=Uzmanību: Drukāšana no šī pārlūka darbojas tikai daļēji. printing_not_ready=Uzmanību: PDF nav pilnībā ielādēts drukāšanai. web_fonts_disabled=Tīmekļa fonti nav aktivizēti: Nevar iegult PDF fontus. -document_colors_not_allowed=PDF dokumentiem nav atļauts izmantot pašiem savas krāsas: „Atļaut lapām izvēlēties pašām savas krāsas“ ir deaktivēts pārlūkā. diff --git a/cps/static/locale/mai/viewer.properties b/cps/static/locale/mai/viewer.properties deleted file mode 100644 index 356223fe..00000000 --- a/cps/static/locale/mai/viewer.properties +++ /dev/null @@ -1,168 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) -previous.title=पछिला पृष्ठ -previous_label=पछिला -next.title=अगिला पृष्ठ -next_label=आगाँ - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. - -zoom_out.title=छोट करू -zoom_out_label=छोट करू -zoom_in.title=पैघ करू -zoom_in_label=जूम इन -zoom.title=छोट-पैघ करू\u0020 -presentation_mode.title=प्रस्तुति अवस्थामे जाउ -presentation_mode_label=प्रस्तुति अवस्था -open_file.title=फाइल खोलू -open_file_label=खोलू -print.title=छापू -print_label=छापू -download.title=डाउनलोड -download_label=डाउनलोड -bookmark.title=मोजुदा दृश्य (नव विंडोमे नकल लिअ अथवा खोलू) -bookmark_label=वर्तमान दृश्य - -# Secondary toolbar and context menu -tools.title=अओजार -tools_label=अओजार -first_page.title=प्रथम पृष्ठ पर जाउ -first_page.label=प्रथम पृष्ठ पर जाउ -first_page_label=प्रथम पृष्ठ पर जाउ -last_page.title=अंतिम पृष्ठ पर जाउ -last_page.label=अंतिम पृष्ठ पर जाउ -last_page_label=अंतिम पृष्ठ पर जाउ -page_rotate_cw.title=घड़ीक दिशा मे घुमाउ -page_rotate_cw.label=घड़ीक दिशा मे घुमाउ -page_rotate_cw_label=घड़ीक दिशा मे घुमाउ -page_rotate_ccw.title=घड़ीक दिशा सँ उनटा घुमाउ -page_rotate_ccw.label=घड़ीक दिशा सँ उनटा घुमाउ -page_rotate_ccw_label=घड़ीक दिशा सँ उनटा घुमाउ - - -# Document properties dialog box -document_properties.title=दस्तावेज़ विशेषता... -document_properties_label=दस्तावेज़ विशेषता... -document_properties_file_name=फाइल नाम: -document_properties_file_size=फ़ाइल आकार: -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -document_properties_kb={{size_kb}} KB ({{size_b}} बाइट) -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_mb={{size_mb}} MB ({{size_b}} बाइट) -document_properties_title=शीर्षक: -document_properties_author=लेखकः -document_properties_subject=विषय -document_properties_keywords=बीजशब्द -document_properties_creation_date=निर्माण तिथि: -document_properties_modification_date=संशोधन दिनांक: -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. -document_properties_date_string={{date}}, {{time}} -document_properties_creator=सृजक: -document_properties_producer=PDF उत्पादक: -document_properties_version=PDF संस्करण: -document_properties_page_count=पृष्ठ गिनती: -document_properties_close=बन्न करू - -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) -toggle_sidebar.title=स्लाइडर टागल -toggle_sidebar_label=स्लाइडर टागल -document_outline_label=दस्तावेज खाका -attachments.title=संलग्नक देखाबू -attachments_label=संलग्नक -thumbs.title=लघु-छवि देखाउ -thumbs_label=लघु छवि -findbar.title=दस्तावेजमे ढूँढू - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -thumb_page_title=पृष्ठ {{page}} -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. -thumb_page_canvas=पृष्ठ {{page}} का लघु-चित्र - -# Find panel button title and messages -find_previous.title=खोजक पछिला उपस्थिति ताकू -find_previous_label=पछिला -find_next.title=खोजक अगिला उपस्थिति ताकू -find_next_label=आगाँ -find_highlight=सभटा आलोकित करू -find_match_case_label=मिलान स्थिति -find_reached_top=पृष्ठक शीर्ष जाए पहुँचल, तल सँ जारी -find_reached_bottom=पृष्ठक तल मे जाए पहुँचल, शीर्ष सँ जारी -find_not_found=वाकींश नहि भेटल - -# Error panel labels -error_more_info=बेसी सूचना -error_less_info=कम सूचना -error_close=बन्न करू -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -error_version_info=PDF.js v{{version}} (build: {{build}}) -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -error_message=संदेश: {{message}} -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -error_stack=स्टैक: {{stack}} -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -error_file=फ़ाइल: {{file}} -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number -error_line=पंक्ति: {{line}} -rendering_error=पृष्ठ रेंडरिंगक समय त्रुटि आएल. - -# Predefined zoom values -page_scale_width=पृष्ठ चओड़ाइ -page_scale_fit=पृष्ठ फिट -page_scale_auto=स्वचालित जूम -page_scale_actual=सही आकार -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. -page_scale_percent={{scale}}% - -# Loading indicator messages -loading_error_indicator=त्रुटि -loading_error=पीडीएफ लोड करैत समय एकटा त्रुटि भेल. -invalid_file_error=अमान्य अथवा भ्रष्ट PDF फाइल. -missing_file_error=अनुपस्थित PDF फाइल. -unexpected_response_error=सर्वर सँ अप्रत्याशित प्रतिक्रिया. - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -text_annotation_type.alt=[{{type}} Annotation] -password_label=एहि पीडीएफ फ़ाइल केँ खोलबाक लेल कृपया कूटशब्द भरू. -password_invalid=अवैध कूटशब्द, कृपया फिनु कोशिश करू. -password_ok=बेस - -printing_not_supported=चेतावनी: ई ब्राउजर पर छपाइ पूर्ण तरह सँ समर्थित नहि अछि. -printing_not_ready=चेतावनी: पीडीएफ छपाइक लेल पूर्ण तरह सँ लोड नहि अछि. -web_fonts_disabled=वेब फॉन्ट्स निष्क्रिय अछि: अंतःस्थापित PDF फान्टसक उपयोगमे असमर्थ. -document_colors_not_allowed=PDF दस्तावेज़ हुकर अपन रंग केँ उपयोग करबाक लेल अनुमति प्राप्त नहि अछि: 'पृष्ठ केँ हुकर अपन रंग केँ चुनबाक लेल स्वीकृति दिअ जे ओ ओहि ब्राउज़र मे निष्क्रिय अछि. diff --git a/cps/static/locale/meh/viewer.properties b/cps/static/locale/meh/viewer.properties index 1d069866..7a1bf04a 100644 --- a/cps/static/locale/meh/viewer.properties +++ b/cps/static/locale/meh/viewer.properties @@ -13,6 +13,7 @@ # limitations under the License. # Main toolbar buttons (tooltips and alt text for images) +previous.title=Página yata # LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number @@ -22,10 +23,13 @@ # respectively a number representing the total number of pages in the document. zoom.title=Nasa´a ka´nu/Nasa´a luli +open_file_label=Síne # Secondary toolbar and context menu + + # Document properties dialog box # LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" # will be replaced by the PDF file size in kilobytes, respectively in bytes. @@ -33,13 +37,29 @@ zoom.title=Nasa´a ka´nu/Nasa´a luli # will be replaced by the PDF file size in megabytes, respectively in bytes. # LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" # will be replaced by the creation/modification date, and time, of the PDF file. +document_properties_date_string={{date}}, {{time}} +# LOCALIZATION NOTE (document_properties_page_size_dimension_string): +# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by +# the size, respectively their unit of measurement and orientation, of the (current) page. +document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}}) +# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string): +# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by +# the size, respectively their unit of measurement, name, and orientation, of the (current) page. +document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}}) +# LOCALIZATION NOTE (document_properties_linearized): The linearization status of +# the document; usually called "Fast Web View" in English locales of Adobe software. +document_properties_linearized_yes=Kuvi +document_properties_close=Nakasɨ # LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by # a numerical per cent value. +print_progress_percent={{progress}}% +print_progress_close=Nkuvi-ka # Tooltips and alt text for side panel toolbar buttons # (the _label strings are alt text for the buttons, the .title strings are # tooltips) +findbar_label=Nánuku # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page @@ -48,10 +68,23 @@ zoom.title=Nasa´a ka´nu/Nasa´a luli # number. # Find panel button title and messages +find_input.title=Nánuku +# LOCALIZATION NOTE (find_match_count): The supported plural forms are +# [one|two|few|many|other], with [other] as the default value. +# "{{current}}" and "{{total}}" will be replaced by a number representing the +# index of the currently active find result, respectively a number representing +# the total number of matches in the document. +find_match_count={[ plural(total) ]} +# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are +# [zero|one|two|few|many|other], with [other] as the default value. +# "{{limit}}" will be replaced by a numerical value. +find_match_count_limit={[ plural(limit) ]} # Error panel labels +error_close=Nakasɨ # LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be # replaced by the PDF.JS version and build ID. +error_version_info=PDF.js v{{version}} (build: {{build}}) # LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an # english string describing the error. # LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack @@ -62,11 +95,17 @@ zoom.title=Nasa´a ka´nu/Nasa´a luli # Predefined zoom values # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a # numerical scale value. +page_scale_percent={{scale}}% # Loading indicator messages +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. +annotation_date_string={{date}}, {{time}} + # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # "{{type}}" will be replaced with an annotation type from a list defined in # the PDF spec (32000-1:2008 Table 169 – Annotation types). # Some common types are e.g.: "Check", "Text", "Comment", "Note" +password_cancel=Nkuvi-ka diff --git a/cps/static/locale/mk/viewer.properties b/cps/static/locale/mk/viewer.properties index 85350255..c1b091ed 100644 --- a/cps/static/locale/mk/viewer.properties +++ b/cps/static/locale/mk/viewer.properties @@ -142,4 +142,3 @@ password_cancel=Откажи printing_not_supported=Предупредување: Печатењето не е целосно поддржано во овој прелистувач. printing_not_ready=Предупредување: PDF документот не е целосно вчитан за печатење. web_fonts_disabled=Интернет фонтовите се оневозможени: не може да се користат вградените PDF фонтови. -document_colors_not_allowed=PDF-документите немаат дозвола да користат сопствени бои: Поставката „Дозволи страниците сами да ги избираат своите бои“ е деактивирана од прелистувачот. diff --git a/cps/static/locale/ml/viewer.properties b/cps/static/locale/ml/viewer.properties deleted file mode 100644 index d4a9eb47..00000000 --- a/cps/static/locale/ml/viewer.properties +++ /dev/null @@ -1,184 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) -previous.title=മുമ്പുള്ള താള് -previous_label=മുമ്പു് -next.title=അടുത്ത താള് -next_label=അടുത്തതു് - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -page.title=താള് -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -of_pages={{pagesCount}} ലെ -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. -page_of_pages=({{pagesCount}} ലെ {{pageNumber}}) - -zoom_out.title=ചെറുതാക്കുക -zoom_out_label=ചെറുതാക്കുക -zoom_in.title=വലുതാക്കുക -zoom_in_label=വലുതാക്കുക -zoom.title=വ്യാപ്തി മാറ്റുക -presentation_mode.title=പ്രസന്റേഷന് രീതിയിലേക്കു് മാറ്റുക -presentation_mode_label=പ്രസന്റേഷന് രീതി -open_file.title=ഫയല് തുറക്കുക -open_file_label=തുറക്കുക -print.title=പ്രിന്റ് ചെയ്യുക -print_label=പ്രിന്റ് ചെയ്യുക -download.title=ഡൌണ്ലോഡ് ചെയ്യുക -download_label=ഡൌണ്ലോഡ് ചെയ്യുക -bookmark.title=നിലവിലുള്ള കാഴ്ച (പുതിയ ജാലകത്തില് പകര്ത്തുക അല്ലെങ്കില് തുറക്കുക) -bookmark_label=നിലവിലുള്ള കാഴ്ച - -# Secondary toolbar and context menu -tools.title=ഉപകരണങ്ങള് -tools_label=ഉപകരണങ്ങള് -first_page.title=ആദ്യത്തെ താളിലേയ്ക്കു് പോകുക -first_page.label=ആദ്യത്തെ താളിലേയ്ക്കു് പോകുക -first_page_label=ആദ്യത്തെ താളിലേയ്ക്കു് പോകുക -last_page.title=അവസാന താളിലേയ്ക്കു് പോകുക -last_page.label=അവസാന താളിലേയ്ക്കു് പോകുക -last_page_label=അവസാന താളിലേയ്ക്കു് പോകുക -page_rotate_cw.title=ഘടികാരദിശയില് കറക്കുക -page_rotate_cw.label=ഘടികാരദിശയില് കറക്കുക -page_rotate_cw_label=ഘടികാരദിശയില് കറക്കുക -page_rotate_ccw.title=ഘടികാര ദിശയ്ക്കു് വിപരീതമായി കറക്കുക -page_rotate_ccw.label=ഘടികാര ദിശയ്ക്കു് വിപരീതമായി കറക്കുക -page_rotate_ccw_label=ഘടികാര ദിശയ്ക്കു് വിപരീതമായി കറക്കുക - -cursor_text_select_tool.title=ടെക്സ്റ്റ് തിരഞ്ഞെടുക്കൽ ടൂള് പ്രാപ്തമാക്കുക -cursor_text_select_tool_label=ടെക്സ്റ്റ് തിരഞ്ഞെടുക്കൽ ടൂള് -cursor_hand_tool.title=ഹാന്റ് ടൂള് പ്രാപ്തമാക്കുക -cursor_hand_tool_label=ഹാന്റ് ടൂള് - -# Document properties dialog box -document_properties.title=രേഖയുടെ വിശേഷതകള്... -document_properties_label=രേഖയുടെ വിശേഷതകള്... -document_properties_file_name=ഫയലിന്റെ പേര്: -document_properties_file_size=ഫയലിന്റെ വലിപ്പം: -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -document_properties_kb={{size_kb}} കെബി ({{size_b}} ബൈറ്റുകള്) -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_mb={{size_mb}} എംബി ({{size_b}} ബൈറ്റുകള്) -document_properties_title=തലക്കെട്ട്\u0020 -document_properties_author=രചയിതാവ്: -document_properties_subject=വിഷയം: -document_properties_keywords=കീവേര്ഡുകള്: -document_properties_creation_date=പൂര്ത്തിയാകുന്ന തീയതി: -document_properties_modification_date=മാറ്റം വരുത്തിയ തീയതി: -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. -document_properties_date_string={{date}}, {{time}} -document_properties_creator=സൃഷ്ടികര്ത്താവ്: -document_properties_producer=പിഡിഎഫ് പ്രൊഡ്യൂസര്: -document_properties_version=പിഡിഎഫ് പതിപ്പ്: -document_properties_page_count=താളിന്റെ എണ്ണം: -document_properties_close=അടയ്ക്കുക - -print_progress_message=പ്രിന്റുചെയ്യുന്നതിന് ഡോക്യുമെന്റ് തയ്യാറാക്കുന്നു… -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. -print_progress_percent={{progress}}% -print_progress_close=റദ്ദാക്കുക - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) -toggle_sidebar.title=സൈഡ് ബാറിലേക്കു് മാറ്റുക -toggle_sidebar_notification.title=ടോഗിൾ സൈഡ്ബാർ (ഡോക്യുമെന്റില് ഔട്ട്ലൈൻ/അറ്റാച്ചുമെന്റുകൾ അടങ്ങിയിരിക്കുന്നു) -toggle_sidebar_label=സൈഡ് ബാറിലേക്കു് മാറ്റുക -document_outline.title=ഡോക്യുമെന്റിന്റെ ബാഹ്യരേഖ കാണിക്കുക (എല്ലാ ഇനങ്ങളും വിപുലീകരിക്കാനും ചുരുക്കാനും ഇരട്ട ക്ലിക്കുചെയ്യുക) -document_outline_label=രേഖയുടെ ഔട്ട്ലൈന് -attachments.title=അറ്റാച്മെന്റുകള് കാണിയ്ക്കുക -attachments_label=അറ്റാച്മെന്റുകള് -thumbs.title=തംബ്നെയിലുകള് കാണിയ്ക്കുക -thumbs_label=തംബ്നെയിലുകള് -findbar.title=രേഖയില് കണ്ടുപിടിയ്ക്കുക -findbar_label=കണ്ടെത്തുക - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -thumb_page_title=താള് {{page}} -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. -thumb_page_canvas={{page}} താളിനുള്ള തംബ്നെയില് - -# Find panel button title and messages -find_input.title=കണ്ടെത്തുക -find_input.placeholder=ഡോക്യുമെന്റില് കണ്ടെത്തുക… -find_previous.title=വാചകം ഇതിനു മുന്പ് ആവര്ത്തിച്ചത് കണ്ടെത്തുക\u0020 -find_previous_label=മുമ്പു് -find_next.title=വാചകം വീണ്ടും ആവര്ത്തിക്കുന്നത് കണ്ടെത്തുക\u0020 -find_next_label=അടുത്തതു് -find_highlight=എല്ലാം എടുത്തുകാണിയ്ക്കുക -find_match_case_label=അക്ഷരങ്ങള് ഒത്തുനോക്കുക -find_reached_top=രേഖയുടെ മുകളില് എത്തിയിരിക്കുന്നു, താഴെ നിന്നും തുടരുന്നു -find_reached_bottom=രേഖയുടെ അവസാനം വരെ എത്തിയിരിക്കുന്നു, മുകളില് നിന്നും തുടരുന്നു\u0020 -find_not_found=വാചകം കണ്ടെത്താനായില്ല\u0020 - -# Error panel labels -error_more_info=കൂടുതല് വിവരം -error_less_info=കുറച്ച് വിവരം -error_close=അടയ്ക്കുക -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -error_version_info=PDF.js v{{version}} (build: {{build}}) -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -error_message=സന്ദേശം: {{message}} -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -error_stack=സ്റ്റാക്ക്: {{stack}} -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -error_file=ഫയല്: {{file}} -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number -error_line=വരി: {{line}} -rendering_error=താള് റെണ്ടര് ചെയ്യുമ്പോള് പിശകുണ്ടായിരിയ്ക്കുന്നു. - -# Predefined zoom values -page_scale_width=താളിന്റെ വീതി -page_scale_fit=താള് പാകത്തിനാക്കുക -page_scale_auto=സ്വയമായി വലുതാക്കുക -page_scale_actual=യഥാര്ത്ഥ വ്യാപ്തി -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. -page_scale_percent={{scale}}% - -# Loading indicator messages -loading_error_indicator=പിശക് -loading_error=പിഡിഎഫ് ലഭ്യമാക്കുമ്പോള് പിശക് ഉണ്ടായിരിയ്ക്കുന്നു. -invalid_file_error=തെറ്റായ അല്ലെങ്കില് തകരാറുള്ള പിഡിഎഫ് ഫയല്. -missing_file_error=പിഡിഎഫ് ഫയല് ലഭ്യമല്ല. -unexpected_response_error=പ്രതീക്ഷിക്കാത്ത സെര്വര് മറുപടി. - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -text_annotation_type.alt=[{{type}} Annotation] -password_label=ഈ പിഡിഎഫ് ഫയല് തുറക്കുന്നതിനു് രഹസ്യവാക്ക് നല്കുക. -password_invalid=തെറ്റായ രഹസ്യവാക്ക്, ദയവായി വീണ്ടും ശ്രമിയ്ക്കുക. -password_ok=ശരി -password_cancel=റദ്ദാക്കുക - -printing_not_supported=മുന്നറിയിപ്പു്: ഈ ബ്രൌസര് പൂര്ണ്ണമായി പ്രിന്റിങ് പിന്തുണയ്ക്കുന്നില്ല. -printing_not_ready=മുന്നറിയിപ്പു്: പ്രിന്റ് ചെയ്യുന്നതിനു് പിഡിഎഫ് പൂര്ണ്ണമായി ലഭ്യമല്ല. -web_fonts_disabled=വെബിനുള്ള അക്ഷരസഞ്ചയങ്ങള് പ്രവര്ത്തന രഹിതം: എംബഡ്ഡ് ചെയ്ത പിഡിഎഫ് അക്ഷരസഞ്ചയങ്ങള് ഉപയോഗിയ്ക്കുവാന് സാധ്യമല്ല. -document_colors_not_allowed=സ്വന്തം നിറങ്ങള് ഉപയോഗിയ്ക്കുവാന് പിഡിഎഫ് രേഖകള്ക്കു് അനുവാദമില്ല: 'സ്വന്തം നിറങ്ങള് ഉപയോഗിയ്ക്കുവാന് താളുകളെ അനുവദിയ്ക്കുക' എന്നതു് ബ്രൌസറില് നിര്ജീവമാണു്. diff --git a/cps/static/locale/mn/viewer.properties b/cps/static/locale/mn/viewer.properties deleted file mode 100644 index 39edeb2b..00000000 --- a/cps/static/locale/mn/viewer.properties +++ /dev/null @@ -1,82 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. - -zoom.title=Тэлэлт -open_file.title=Файл нээ -open_file_label=Нээ - -# Secondary toolbar and context menu - - -# Document properties dialog box -document_properties_file_name=Файлын нэр: -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_title=Гарчиг: -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. - -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. - -# Find panel button title and messages -find_previous.title=Хайлтын өмнөх олдцыг харуулна -find_next.title=Хайлтын дараагийн олдцыг харуулна -find_not_found=Олдсонгүй - -# Error panel labels -error_more_info=Нэмэлт мэдээлэл -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number - -# Predefined zoom values -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. - -# Loading indicator messages -loading_error_indicator=Алдаа - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -password_ok=OK - diff --git a/cps/static/locale/mr/viewer.properties b/cps/static/locale/mr/viewer.properties index 67e419ec..b33646f5 100644 --- a/cps/static/locale/mr/viewer.properties +++ b/cps/static/locale/mr/viewer.properties @@ -166,10 +166,17 @@ find_reached_bottom=दस्तऐवजाच्या तळाला पो # index of the currently active find result, respectively a number representing # the total number of matches in the document. find_match_count={[ plural(total) ]} +find_match_count[one]={{total}} पैकी {{current}} सुसंगत +find_match_count[two]={{total}} पैकी {{current}} सुसंगत +find_match_count[few]={{total}} पैकी {{current}} सुसंगत +find_match_count[many]={{total}} पैकी {{current}} सुसंगत +find_match_count[other]={{total}} पैकी {{current}} सुसंगत # LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are # [zero|one|two|few|many|other], with [other] as the default value. # "{{limit}}" will be replaced by a numerical value. +find_match_count_limit={[ plural(limit) ]} find_match_count_limit[zero]={{limit}} पेक्षा अधिक जुळण्या +find_match_count_limit[one]={{limit}} पेक्षा अधिक जुळण्या find_match_count_limit[two]={{limit}} पेक्षा अधिक जुळण्या find_match_count_limit[few]={{limit}} पेक्षा अधिक जुळण्या find_match_count_limit[many]={{limit}} पेक्षा अधिक जुळण्या @@ -211,6 +218,10 @@ invalid_file_error=अवैध किंवा दोषीत PDF फाइल missing_file_error=न आढळणारी PDF फाइल. unexpected_response_error=अनपेक्षित सर्व्हर प्रतिसाद. +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. +annotation_date_string={{date}}, {{time}} + # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # "{{type}}" will be replaced with an annotation type from a list defined in # the PDF spec (32000-1:2008 Table 169 – Annotation types). @@ -224,4 +235,3 @@ password_cancel=रद्द करा printing_not_supported=सावधानता: या ब्राउझरतर्फे छपाइ पूर्णपणे समर्थीत नाही. printing_not_ready=सावधानता: छपाईकरिता PDF पूर्णतया लोड झाले नाही. web_fonts_disabled=वेब टंक असमर्थीत आहेत: एम्बेडेड PDF टंक वापर अशक्य. -document_colors_not_allowed=PDF दस्तऐवजांना त्यांचे रंग वापरण्यास अनुमती नाही: ब्राउझरमध्ये ' पृष्ठांना त्यांचे रंग निवडण्यास अनुमती द्या' बंद केले आहे. diff --git a/cps/static/locale/ms/viewer.properties b/cps/static/locale/ms/viewer.properties index 3bc7907b..61f15539 100644 --- a/cps/static/locale/ms/viewer.properties +++ b/cps/static/locale/ms/viewer.properties @@ -239,4 +239,3 @@ password_cancel=Batal printing_not_supported=Amaran: Cetakan ini tidak sepenuhnya disokong oleh pelayar ini. printing_not_ready=Amaran: PDF tidak sepenuhnya dimuatkan untuk dicetak. web_fonts_disabled=Fon web dinyahdayakan: tidak dapat menggunakan fon terbenam PDF. -document_colors_not_allowed=Dokumen PDF tidak dibenarkan untuk menggunakan warna sendiri: “Izinkan halaman untuk memilih warna sendiri” telah dinyahaktifkan dalam pelayar. diff --git a/cps/static/locale/my/viewer.properties b/cps/static/locale/my/viewer.properties index f5676198..3e6f2c30 100644 --- a/cps/static/locale/my/viewer.properties +++ b/cps/static/locale/my/viewer.properties @@ -195,4 +195,3 @@ password_cancel=ပယ်ဖျက်ပါ printing_not_supported=သတိပေးချက်၊ပရင့်ထုတ်ခြင်းကိုဤဘယောက်ဆာသည် ပြည့်ဝစွာထောက်ပံ့မထားပါ ။ printing_not_ready=သတိပေးချက်: ယခု PDF ဖိုင်သည် ပုံနှိပ်ရန် မပြည့်စုံပါ web_fonts_disabled=Web fonts are disabled: unable to use embedded PDF fonts. -document_colors_not_allowed=PDF ဖိုင်အား ၎င်းဤ ကိုယ်ပိုင်အရောင်များကို အသုံးပြုခွင့်မပေးထားပါ ။ 'စာမျက်နှာအားလုံးအားအရောင်ရွေးချယ်ခွင့်' အား ယခု ဘယောက်ဆာတွင် ပိတ်ထားခြင်းကြောင့်ဖြစ် သှ် diff --git a/cps/static/locale/nb-NO/viewer.properties b/cps/static/locale/nb-NO/viewer.properties index 8656cb4f..47b20904 100644 --- a/cps/static/locale/nb-NO/viewer.properties +++ b/cps/static/locale/nb-NO/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Miniatyrbilde findbar.title=Finn i dokumentet findbar_label=Finn +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Side {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Avbryt printing_not_supported=Advarsel: Utskrift er ikke fullstendig støttet av denne nettleseren. printing_not_ready=Advarsel: PDF er ikke fullstendig innlastet for utskrift. web_fonts_disabled=Web-fonter er avslått: Kan ikke bruke innbundne PDF-fonter. -document_colors_not_allowed=PDF-dokumenter tillates ikke å bruke deres egne farger: "Tillat sider å velge egne farger" er deaktivert i nettleseren. diff --git a/cps/static/locale/ne-NP/viewer.properties b/cps/static/locale/ne-NP/viewer.properties index 13bf69ba..3bf8ed8f 100644 --- a/cps/static/locale/ne-NP/viewer.properties +++ b/cps/static/locale/ne-NP/viewer.properties @@ -181,4 +181,3 @@ password_cancel=रद्द गर्नुहोस् printing_not_supported=चेतावनी: यो ब्राउजरमा मुद्रण पूर्णतया समर्थित छैन। printing_not_ready=चेतावनी: PDF मुद्रणका लागि पूर्णतया लोड भएको छैन। web_fonts_disabled=वेब फन्ट असक्षम छन्: एम्बेडेड PDF फन्ट प्रयोग गर्न असमर्थ। -document_colors_not_allowed=PDF कागजातहरूलाई आफ्नै रङ प्रयोग गर्न अनुमति छैन: 'पृष्ठलाई आफ्नै रङ चयन गर्न अनुमति दिने' ब्राउजरमा निष्क्रिय गरिएको छ। diff --git a/cps/static/locale/nl/viewer.properties b/cps/static/locale/nl/viewer.properties index c62110a4..b37f1abf 100644 --- a/cps/static/locale/nl/viewer.properties +++ b/cps/static/locale/nl/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Miniaturen findbar.title=Zoeken in document findbar_label=Zoeken +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Pagina {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Annuleren printing_not_supported=Waarschuwing: afdrukken wordt niet volledig ondersteund door deze browser. printing_not_ready=Waarschuwing: de PDF is niet volledig geladen voor afdrukken. web_fonts_disabled=Weblettertypen zijn uitgeschakeld: gebruik van ingebedde PDF-lettertypen is niet mogelijk. -document_colors_not_allowed=PDF-documenten mogen hun eigen kleuren niet gebruiken: ‘Pagina’s toestaan om hun eigen kleuren te kiezen’ is uitgeschakeld in de browser. diff --git a/cps/static/locale/nn-NO/viewer.properties b/cps/static/locale/nn-NO/viewer.properties index f0feeb40..c9bac101 100644 --- a/cps/static/locale/nn-NO/viewer.properties +++ b/cps/static/locale/nn-NO/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Miniatyrbilde findbar.title=Finn i dokumentet findbar_label=Finn +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Side {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Avbryt printing_not_supported=Åtvaring: Utskrift er ikkje fullstendig støtta av denne nettlesaren. printing_not_ready=Åtvaring: PDF ikkje fullstendig innlasta for utskrift. web_fonts_disabled=Web-skrifter er slått av: Kan ikkje bruke innbundne PDF-skrifter. -document_colors_not_allowed=PDF-dokument kan ikkje bruke eigne fargar: «Tillat sider å velje eigne fargar» er deaktivert i nettlesaren. diff --git a/cps/static/locale/nso/viewer.properties b/cps/static/locale/nso/viewer.properties deleted file mode 100644 index d95406c9..00000000 --- a/cps/static/locale/nso/viewer.properties +++ /dev/null @@ -1,130 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) -previous.title=Letlakala le fetilego -previous_label=Fetilego -next.title=Letlakala le latelago -next_label=Latelago - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. - -zoom_out.title=Bušetša ka gare -zoom_out_label=Bušetša ka gare -zoom_in.title=Godišetša ka ntle -zoom_in_label=Godišetša ka ntle -zoom.title=Godiša -presentation_mode.title=Fetogela go mokgwa wa tlhagišo -presentation_mode_label=Mokgwa wa tlhagišo -open_file.title=Bula faele -open_file_label=Bula -print.title=Gatiša -print_label=Gatiša -download.title=Laolla -download_label=Laolla -bookmark.title=Pono ya bjale (kopiša le go bula lefasetereng le leswa) -bookmark_label=Tebelelo ya gona bjale - -# Secondary toolbar and context menu - - -# Document properties dialog box -document_properties_file_name=Leina la faele: -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_title=Thaetlele: -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. - -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) -toggle_sidebar.title=Šielanya para ya ka thoko -toggle_sidebar_label=Šielanya para ya ka thoko -document_outline_label=Kakaretšo ya tokumente -thumbs.title=Laetša dikhutšofatšo -thumbs_label=Dikhutšofatšo -findbar.title=Hwetša go tokumente - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -thumb_page_title=Letlakala {{page}} -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. -thumb_page_canvas=Khutšofatšo ya letlakala {{page}} - -# Find panel button title and messages -find_previous.title=Hwetša tiragalo e fetilego ya sekafoko -find_previous_label=Fetilego -find_next.title=Hwetša tiragalo e latelago ya sekafoko -find_next_label=Latelago -find_highlight=Bonagatša tšohle -find_match_case_label=Swantšha kheisi -find_reached_top=Fihlile godimo ga tokumente, go tšwetšwe pele go tloga tlase -find_reached_bottom=Fihlile mafelelong a tokumente, go tšwetšwe pele go tloga godimo -find_not_found=Sekafoko ga sa hwetšwa - -# Error panel labels -error_more_info=Tshedimošo e oketšegilego -error_less_info=Tshedimošo ya tlasana -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -error_version_info=PDF.js v{{version}} (build: {{build}}) -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -error_message=Molaetša: {{message}} -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -error_stack=Mokgobo: {{stack}} -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -error_file=Faele: {{file}} -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number -error_line=Mothaladi: {{line}} -rendering_error=Go diregile phošo ge go be go gafelwa letlakala. - -# Predefined zoom values -page_scale_width=Bophara bja letlakala -page_scale_fit=Go lekana ga letlakala -page_scale_auto=Kgodišo ya maitirišo -page_scale_actual=Bogolo bja kgonthe -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. - -# Loading indicator messages -loading_error_indicator=Phošo -loading_error=Go diregile phošo ge go hlahlelwa PDF. -invalid_file_error=Faele ye e sa šomego goba e senyegilego ya PDF. -missing_file_error=Faele yeo e sego gona ya PDF. - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -text_annotation_type.alt=[{{type}} Tlhaloso] -password_ok=LOKILE - -printing_not_supported=Temošo: Go gatiša ga go thekgwe ke praosara ye ka botlalo. -printing_not_ready=Temošo: PDF ga ya hlahlelwa ka botlalo bakeng sa go gatišwa. -web_fonts_disabled=Difonte tša wepe di šitišitšwe: ga e kgone go diriša difonte tša PDF tše khutišitšwego. diff --git a/cps/static/locale/oc/viewer.properties b/cps/static/locale/oc/viewer.properties index 2c520c25..b1c6a3a0 100644 --- a/cps/static/locale/oc/viewer.properties +++ b/cps/static/locale/oc/viewer.properties @@ -69,7 +69,15 @@ scroll_vertical.title=Utilizar lo desfilament vertical scroll_vertical_label=Desfilament vertical scroll_horizontal.title=Utilizar lo desfilament orizontal scroll_horizontal_label=Desfilament orizontal +scroll_wrapped.title=Activar lo desfilament continú +scroll_wrapped_label=Desfilament continú +spread_none.title=Agropar pas las paginas doas a doas +spread_none_label=Una sola pagina +spread_odd.title=Mostrar doas paginas en començant per las paginas imparas a esquèrra +spread_odd_label=Dobla pagina, impara a drecha +spread_even.title=Mostrar doas paginas en començant per las paginas paras a esquèrra +spread_even_label=Dobla pagina, para a drecha # Document properties dialog box document_properties.title=Proprietats del document… @@ -78,10 +86,10 @@ document_properties_file_name=Nom del fichièr : document_properties_file_size=Talha del fichièr : # LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" # will be replaced by the PDF file size in kilobytes, respectively in bytes. -document_properties_kb={{size_kb}} Ko ({{size_b}} octets) +document_properties_kb={{size_kb}} Ko ({{size_b}} octets) # LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" # will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_mb={{size_mb}} Mo ({{size_b}} octets) +document_properties_mb={{size_mb}} Mo ({{size_b}} octets) document_properties_title=Títol : document_properties_author=Autor : document_properties_subject=Subjècte : @@ -90,12 +98,13 @@ document_properties_creation_date=Data de creacion : document_properties_modification_date=Data de modificacion : # LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" # will be replaced by the creation/modification date, and time, of the PDF file. -document_properties_date_string={{date}}, {{time}} +document_properties_date_string={{date}}, a {{time}} document_properties_creator=Creator : document_properties_producer=Aisina de conversion PDF : document_properties_version=Version PDF : document_properties_page_count=Nombre de paginas : document_properties_page_size=Talha de la pagina : +document_properties_page_size_unit_inches=in document_properties_page_size_unit_millimeters=mm document_properties_page_size_orientation_portrait=retrait document_properties_page_size_orientation_landscape=païsatge @@ -113,6 +122,7 @@ document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}}) # LOCALIZATION NOTE (document_properties_linearized): The linearization status of # the document; usually called "Fast Web View" in English locales of Adobe software. +document_properties_linearized=Vista web rapida : document_properties_linearized_yes=Òc document_properties_linearized_no=Non document_properties_close=Tampar @@ -135,9 +145,11 @@ attachments.title=Visualizar las pèças juntas attachments_label=Pèças juntas thumbs.title=Afichar las vinhetas thumbs_label=Vinhetas -findbar.title=Trobar dins lo document +findbar.title=Cercar dins lo document findbar_label=Recercar +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Pagina {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -155,8 +167,30 @@ find_next.title=Tròba l'ocurréncia venenta de la frasa find_next_label=Seguent find_highlight=Suslinhar tot find_match_case_label=Respectar la cassa +find_entire_word_label=Mots entièrs find_reached_top=Naut de la pagina atenh, perseguida del bas find_reached_bottom=Bas de la pagina atench, perseguida al començament +# LOCALIZATION NOTE (find_match_count): The supported plural forms are +# [one|two|few|many|other], with [other] as the default value. +# "{{current}}" and "{{total}}" will be replaced by a number representing the +# index of the currently active find result, respectively a number representing +# the total number of matches in the document. +find_match_count={[ plural(total) ]} +find_match_count[one]=Occuréncia {{current}} sus {{total}} +find_match_count[two]=Occuréncia {{current}} sus {{total}} +find_match_count[few]=Occuréncia {{current}} sus {{total}} +find_match_count[many]=Occuréncia {{current}} sus {{total}} +find_match_count[other]=Occuréncia {{current}} sus {{total}} +# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are +# [zero|one|two|few|many|other], with [other] as the default value. +# "{{limit}}" will be replaced by a numerical value. +find_match_count_limit={[ plural(limit) ]} +find_match_count_limit[zero]=Mai de {{limit}} occuréncias +find_match_count_limit[one]=Mai de {{limit}} occuréncia +find_match_count_limit[two]=Mai de {{limit}} occuréncias +find_match_count_limit[few]=Mai de {{limit}} occuréncias +find_match_count_limit[many]=Mai de {{limit}} occuréncias +find_match_count_limit[other]=Mai de {{limit}} occuréncias find_not_found=Frasa pas trobada # Error panel labels @@ -194,6 +228,10 @@ invalid_file_error=Fichièr PDF invalid o corromput. missing_file_error=Fichièr PDF mancant. unexpected_response_error=Responsa de servidor imprevista. +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. +annotation_date_string={{date}} a {{time}} + # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # "{{type}}" will be replaced with an annotation type from a list defined in # the PDF spec (32000-1:2008 Table 169 – Annotation types). @@ -207,4 +245,3 @@ password_cancel=Anullar printing_not_supported=Atencion : l'impression es pas completament gerida per aqueste navegador. printing_not_ready=Atencion : lo PDF es pas entièrament cargat per lo poder imprimir. web_fonts_disabled=Las poliças web son desactivadas : impossible d'utilizar las poliças integradas al PDF. -document_colors_not_allowed=Los documents PDF pòdon pas utilizar lors pròprias colors : « Autorizar las paginas web d'utilizar lors pròprias colors » es desactivat dins lo navegador. diff --git a/cps/static/locale/or/viewer.properties b/cps/static/locale/or/viewer.properties deleted file mode 100644 index 831eacee..00000000 --- a/cps/static/locale/or/viewer.properties +++ /dev/null @@ -1,167 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) -previous.title=ପୂର୍ବ ପୃଷ୍ଠା -previous_label=ପୂର୍ବ -next.title=ପର ପୃଷ୍ଠା -next_label=ପର - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. - -zoom_out.title=ଛୋଟ କରନ୍ତୁ -zoom_out_label=ଛୋଟ କରନ୍ତୁ -zoom_in.title=ବଡ଼ କରନ୍ତୁ -zoom_in_label=ବଡ଼ କରନ୍ତୁ -zoom.title=ଛୋଟ ବଡ଼ କରନ୍ତୁ -presentation_mode.title=ଉପସ୍ଥାପନ ଧାରାକୁ ବଦଳାନ୍ତୁ -presentation_mode_label=ଉପସ୍ଥାପନ ଧାରା -open_file.title=ଫାଇଲ ଖୋଲନ୍ତୁ -open_file_label=ଖୋଲନ୍ତୁ -print.title=ମୁଦ୍ରଣ -print_label=ମୁଦ୍ରଣ -download.title=ଆହରଣ -download_label=ଆହରଣ -bookmark.title=ପ୍ରଚଳିତ ଦୃଶ୍ୟ (ନକଲ କରନ୍ତୁ କିମ୍ବା ଏକ ନୂତନ ୱିଣ୍ଡୋରେ ଖୋଲନ୍ତୁ) -bookmark_label=ପ୍ରଚଳିତ ଦୃଶ୍ୟ - -# Secondary toolbar and context menu -tools.title=ସାଧନଗୁଡ଼ିକ -tools_label=ସାଧନଗୁଡ଼ିକ -first_page.title=ପ୍ରଥମ ପୃଷ୍ଠାକୁ ଯାଆନ୍ତୁ -first_page.label=ପ୍ରଥମ ପୃଷ୍ଠାକୁ ଯାଆନ୍ତୁ -first_page_label=ପ୍ରଥମ ପୃଷ୍ଠାକୁ ଯାଆନ୍ତୁ -last_page.title=ଶେଷ ପୃଷ୍ଠାକୁ ଯାଆନ୍ତୁ -last_page.label=ଶେଷ ପୃଷ୍ଠାକୁ ଯାଆନ୍ତୁ -last_page_label=ଶେଷ ପୃଷ୍ଠାକୁ ଯାଆନ୍ତୁ -page_rotate_cw.title=ଦକ୍ଷିଣାବର୍ତ୍ତୀ ଘୁରାନ୍ତୁ -page_rotate_cw.label=ଦକ୍ଷିଣାବର୍ତ୍ତୀ ଘୁରାନ୍ତୁ -page_rotate_cw_label=ଦକ୍ଷିଣାବର୍ତ୍ତୀ ଘୁରାନ୍ତୁ -page_rotate_ccw.title=ବାମାବର୍ତ୍ତୀ ଘୁରାନ୍ତୁ -page_rotate_ccw.label=ବାମାବର୍ତ୍ତୀ ଘୁରାନ୍ତୁ -page_rotate_ccw_label=ବାମାବର୍ତ୍ତୀ ଘୁରାନ୍ତୁ - - -# Document properties dialog box -document_properties.title=ଦଲିଲ ଗୁଣଧର୍ମ… -document_properties_label=ଦଲିଲ ଗୁଣଧର୍ମ… -document_properties_file_name=ଫାଇଲ ନାମ: -document_properties_file_size=ଫାଇଲ ଆକାର: -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -document_properties_kb={{size_kb}} KB ({{size_b}} bytes) -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_mb={{size_mb}} MB ({{size_b}} bytes) -document_properties_title=ଶୀର୍ଷକ: -document_properties_author=ଲେଖକ: -document_properties_subject=ବିଷୟ: -document_properties_keywords=ସୂଚକ ଶବ୍ଦ: -document_properties_creation_date=ନିର୍ମାଣ ତାରିଖ: -document_properties_modification_date=ପରିବର୍ତ୍ତନ ତାରିଖ: -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. -document_properties_date_string={{date}}, {{time}} -document_properties_creator=ନିର୍ମାତା: -document_properties_producer=PDF ପ୍ରଯୋଜକ: -document_properties_version=PDF ସଂସ୍କରଣ: -document_properties_page_count=ପୃଷ୍ଠା ଗଣନା: -document_properties_close=ବନ୍ଦ କରନ୍ତୁ - -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) -toggle_sidebar.title=ପାର୍ଶ୍ୱପଟିକୁ ଆଗପଛ କରନ୍ତୁ -toggle_sidebar_label=ପାର୍ଶ୍ୱପଟିକୁ ଆଗପଛ କରନ୍ତୁ -document_outline_label=ଦଲିଲ ସାରାଂଶ -attachments.title=ସଂଲଗ୍ନକଗୁଡ଼ିକୁ ଦର୍ଶାନ୍ତୁ -attachments_label=ସଲଗ୍ନକଗୁଡିକ -thumbs.title=ସଂକ୍ଷିପ୍ତ ବିବରଣୀ ଦର୍ଶାନ୍ତୁ -thumbs_label=ସଂକ୍ଷିପ୍ତ ବିବରଣୀ -findbar.title=ଦଲିଲରେ ଖୋଜନ୍ତୁ - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -thumb_page_title=ପୃଷ୍ଠା {{page}} -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. -thumb_page_canvas=ପୃଷ୍ଠାର ସଂକ୍ଷିପ୍ତ ବିବରଣୀ {{page}} - -# Find panel button title and messages -find_previous.title=ଏହି ବାକ୍ୟାଂଶର ପୂର୍ବ ଉପସ୍ଥିତିକୁ ଖୋଜନ୍ତୁ -find_previous_label=ପୂର୍ବବର୍ତ୍ତୀ -find_next.title=ଏହି ବାକ୍ୟାଂଶର ପରବର୍ତ୍ତୀ ଉପସ୍ଥିତିକୁ ଖୋଜନ୍ତୁ -find_next_label=ପରବର୍ତ୍ତୀ\u0020 -find_highlight=ସମସ୍ତଙ୍କୁ ଆଲୋକିତ କରନ୍ତୁ -find_match_case_label=ଅକ୍ଷର ମେଳାନ୍ତୁ -find_reached_top=ତଳୁ ଉପରକୁ ଗତି କରି ଦଲିଲର ଉପର ଭାଗରେ ପହଞ୍ଚି ଯାଇଛି -find_reached_bottom=ଉପରୁ ତଳକୁ ଗତି କରି ଦଲିଲର ଶେଷ ଭାଗରେ ପହଞ୍ଚି ଯାଇଛି -find_not_found=ବାକ୍ୟାଂଶ ମିଳିଲା ନାହିଁ - -# Error panel labels -error_more_info=ଅଧିକ ସୂଚନା -error_less_info=ସ୍ୱଳ୍ପ ସୂଚନା -error_close=ବନ୍ଦ କରନ୍ତୁ -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -error_version_info=PDF.js v{{version}} (build: {{build}}) -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -error_message=ସନ୍ଦେଶ: {{message}} -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -error_stack=ଷ୍ଟାକ: {{stack}} -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -error_file=ଫାଇଲ: {{file}} -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number -error_line=ଧାଡ଼ି: {{line}} -rendering_error=ପୃଷ୍ଠା ଚିତ୍ରଣ କରିବା ସମୟରେ ତ୍ରୁଟି ଘଟିଲା। - -# Predefined zoom values -page_scale_width=ପୃଷ୍ଠା ଓସାର -page_scale_fit=ପୃଷ୍ଠା ମେଳନ -page_scale_auto=ସ୍ୱୟଂଚାଳିତ ଭାବରେ ଛୋଟବଡ଼ କରିବା -page_scale_actual=ପ୍ରକୃତ ଆକାର -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. - -# Loading indicator messages -loading_error_indicator=ତ୍ରୁଟି -loading_error=PDF ଧାରଣ କରିବା ସମୟରେ ଏକ ତ୍ରୁଟି ଘଟିଲା। -invalid_file_error=ଅବୈଧ କିମ୍ବା ତ୍ରୁଟିଯୁକ୍ତ PDF ଫାଇଲ। -missing_file_error=ହଜିଯାଇଥିବା PDF ଫାଇଲ। -unexpected_response_error=ଅପ୍ରତ୍ୟାଶିତ ସର୍ଭର ଉତ୍ତର। - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -text_annotation_type.alt=[{{type}} Annotation] -password_label=ଏହି PDF ଫାଇଲକୁ ଖୋଲିବା ପାଇଁ ପ୍ରବେଶ ସଂକେତ ଭରଣ କରନ୍ତୁ। -password_invalid=ଭୁଲ ପ୍ରବେଶ ସଂକେତ। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ। -password_ok=ଠିକ ଅଛି - -printing_not_supported=ଚେତାବନୀ: ଏହି ବ୍ରାଉଜର ଦ୍ୱାରା ମୁଦ୍ରଣ କ୍ରିୟା ସମ୍ପୂର୍ଣ୍ଣ ଭାବରେ ସହାୟତା ପ୍ରାପ୍ତ ନୁହଁ। -printing_not_ready=ଚେତାବନୀ: PDF ଟି ମୁଦ୍ରଣ ପାଇଁ ସମ୍ପୂର୍ଣ୍ଣ ଭାବରେ ଧାରଣ ହୋଇ ନାହିଁ। -web_fonts_disabled=ୱେବ ଅକ୍ଷରରୂପଗୁଡ଼ିକୁ ନିଷ୍କ୍ରିୟ କରାଯାଇଛି: ସନ୍ନିହିତ PDF ଅକ୍ଷରରୂପଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିବାରେ ଅସମର୍ଥ। -document_colors_not_allowed=PDF ଦଲିଲଗୁଡ଼ିକ ସେମାନଙ୍କର ନିଜର ରଙ୍ଗ ବ୍ୟବହାର କରିବା ପାଇଁ ଅନୁମତି ପ୍ରାପ୍ତ ନୁହଁ: 'ସେମାନଙ୍କର ନିଜ ରଙ୍ଗ ବାଛିବା ପାଇଁ ପୃଷ୍ଠାଗୁଡ଼ିକୁ ଅନୁମତି ଦିଅନ୍ତୁ' କୁ ବ୍ରାଉଜରରେ ନିଷ୍କ୍ରିୟ କରାଯାଇଛି। diff --git a/cps/static/locale/pa-IN/viewer.properties b/cps/static/locale/pa-IN/viewer.properties index 8c624375..0ab56319 100644 --- a/cps/static/locale/pa-IN/viewer.properties +++ b/cps/static/locale/pa-IN/viewer.properties @@ -72,6 +72,10 @@ scroll_horizontal_label=ਲੇਟਵਾਂ ਸਰਕਾਉਣਾ scroll_wrapped.title=ਸਮੇਟੇ ਸਰਕਾਉਣ ਨੂੰ ਵਰਤੋਂ scroll_wrapped_label=ਸਮੇਟਿਆ ਸਰਕਾਉਣਾ +spread_none.title=ਸਫ਼ਾ ਫੈਲਾਅ ਵਿੱਚ ਸ਼ਾਮਲ ਨਾ ਹੋਵੋ +spread_none_label=ਕੋਈ ਫੈਲਾਅ ਨਹੀਂ +spread_odd.title=ਅਜੀਬ-ਨੰਬਰ ਵਾਲੇ ਪੰਨਿਆਂ ਨਾਲ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਪੰਨੇ ਸਪਰਸ਼ਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਵੋ +spread_even.title=ਜਿਸਤ ਨੰਬਰ ਵਾਲੇ ਸਫ਼ਿਆਂ ਨਾਲ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਸਫਿਆਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਵੋ # Document properties dialog box document_properties.title=…ਦਸਤਾਵੇਜ਼ ਦੀ ਵਿਸ਼ੇਸ਼ਤਾ @@ -142,6 +146,8 @@ thumbs_label=ਥੰਮਨੇਲ findbar.title=ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਲੱਭੋ findbar_label=ਲੱਭੋ +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=ਸਫ਼ਾ {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -220,6 +226,10 @@ invalid_file_error=ਗਲਤ ਜਾਂ ਨਿਕਾਰਾ PDF ਫਾਈਲ ਹ missing_file_error=ਨਾ-ਮੌਜੂਦ PDF ਫਾਈਲ। unexpected_response_error=ਅਣਜਾਣ ਸਰਵਰ ਜਵਾਬ। +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. +annotation_date_string={{date}}, {{time}} + # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # "{{type}}" will be replaced with an annotation type from a list defined in # the PDF spec (32000-1:2008 Table 169 – Annotation types). @@ -233,4 +243,3 @@ password_cancel=ਰੱਦ ਕਰੋ printing_not_supported=ਸਾਵਧਾਨ: ਇਹ ਬਰਾਊਜ਼ਰ ਪਰਿੰਟ ਕਰਨ ਲਈ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਹਾਇਕ ਨਹੀਂ ਹੈ। printing_not_ready=ਸਾਵਧਾਨ: PDF ਨੂੰ ਪਰਿੰਟ ਕਰਨ ਲਈ ਪੂਰੀ ਤਰ੍ਹਾਂ ਲੋਡ ਨਹੀਂ ਹੈ। web_fonts_disabled=ਵੈਬ ਫੋਂਟ ਬੰਦ ਹਨ: ਇੰਬੈਡ PDF ਫੋਂਟ ਨੂੰ ਵਰਤਣ ਲਈ ਅਸਮਰੱਥ ਹੈ। -document_colors_not_allowed=PDF ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ ਆਪਣੇ ਰੰਗ ਵਰਤਣ ਦੀ ਇਜ਼ਾਜ਼ਤ ਨਹੀਂ ਹੈ।: ਬਰਾਊਜ਼ਰ ਵਿੱਚ “ਸਫ਼ਿਆਂ ਨੂੰ ਆਪਣੇ ਰੰਗ ਚੁਣਨ ਦੀ ਇਜ਼ਾਜ਼ਤ ਦਿਓ” ਨਾ-ਸਰਗਰਮ ਹੈ। diff --git a/cps/static/locale/pl/viewer.properties b/cps/static/locale/pl/viewer.properties index 64a6504f..cf170c8d 100644 --- a/cps/static/locale/pl/viewer.properties +++ b/cps/static/locale/pl/viewer.properties @@ -28,18 +28,18 @@ of_pages=z {{pagesCount}} # respectively a number representing the total number of pages in the document. page_of_pages=({{pageNumber}} z {{pagesCount}}) -zoom_out.title=Pomniejszenie +zoom_out.title=Pomniejsz zoom_out_label=Pomniejsz -zoom_in.title=Powiększenie +zoom_in.title=Powiększ zoom_in_label=Powiększ zoom.title=Skala presentation_mode.title=Przełącz na tryb prezentacji presentation_mode_label=Tryb prezentacji -open_file.title=Otwieranie pliku +open_file.title=Otwórz plik open_file_label=Otwórz -print.title=Drukowanie +print.title=Drukuj print_label=Drukuj -download.title=Pobieranie +download.title=Pobierz download_label=Pobierz bookmark.title=Bieżąca pozycja (skopiuj lub otwórz jako odnośnik w nowym oknie) bookmark_label=Bieżąca pozycja @@ -47,27 +47,27 @@ bookmark_label=Bieżąca pozycja # Secondary toolbar and context menu tools.title=Narzędzia tools_label=Narzędzia -first_page.title=Przechodzenie do pierwszej strony +first_page.title=Przejdź do pierwszej strony first_page.label=Przejdź do pierwszej strony first_page_label=Przejdź do pierwszej strony -last_page.title=Przechodzenie do ostatniej strony +last_page.title=Przejdź do ostatniej strony last_page.label=Przejdź do ostatniej strony last_page_label=Przejdź do ostatniej strony -page_rotate_cw.title=Obracanie zgodnie z ruchem wskazówek zegara +page_rotate_cw.title=Obróć zgodnie z ruchem wskazówek zegara page_rotate_cw.label=Obróć zgodnie z ruchem wskazówek zegara page_rotate_cw_label=Obróć zgodnie z ruchem wskazówek zegara -page_rotate_ccw.title=Obracanie przeciwnie do ruchu wskazówek zegara +page_rotate_ccw.title=Obróć przeciwnie do ruchu wskazówek zegara page_rotate_ccw.label=Obróć przeciwnie do ruchu wskazówek zegara page_rotate_ccw_label=Obróć przeciwnie do ruchu wskazówek zegara -cursor_text_select_tool.title=Włącza narzędzie zaznaczania tekstu +cursor_text_select_tool.title=Włącz narzędzie zaznaczania tekstu cursor_text_select_tool_label=Narzędzie zaznaczania tekstu -cursor_hand_tool.title=Włącza narzędzie rączka +cursor_hand_tool.title=Włącz narzędzie rączka cursor_hand_tool_label=Narzędzie rączka -scroll_vertical.title=Przewijaj dokument w pionie +scroll_vertical.title=Przewijaj dokument w pionie scroll_vertical_label=Przewijanie pionowe -scroll_horizontal.title=Przewijaj dokument w poziomie +scroll_horizontal.title=Przewijaj dokument w poziomie scroll_horizontal_label=Przewijanie poziome scroll_wrapped.title=Strony dokumentu wyświetlaj i przewijaj w kolumnach scroll_wrapped_label=Widok dwóch stron @@ -136,28 +136,30 @@ print_progress_close=Anuluj # Tooltips and alt text for side panel toolbar buttons # (the _label strings are alt text for the buttons, the .title strings are # tooltips) -toggle_sidebar.title=Przełączanie panelu bocznego -toggle_sidebar_notification.title=Przełączanie panelu bocznego (dokument zawiera konspekt/załączniki) +toggle_sidebar.title=Przełącz panel boczny +toggle_sidebar_notification.title=Przełącz panel boczny (dokument zawiera konspekt/załączniki) toggle_sidebar_label=Przełącz panel boczny -document_outline.title=Wyświetlanie zarysu dokumentu (podwójne kliknięcie rozwija lub zwija wszystkie pozycje) -document_outline_label=Zarys dokumentu -attachments.title=Wyświetlanie załączników +document_outline.title=Konspekt dokumentu (podwójne kliknięcie rozwija lub zwija wszystkie pozycje) +document_outline_label=Konspekt dokumentu +attachments.title=Załączniki attachments_label=Załączniki -thumbs.title=Wyświetlanie miniaturek -thumbs_label=Miniaturki +thumbs.title=Miniatury +thumbs_label=Miniatury findbar.title=Znajdź w dokumencie findbar_label=Znajdź +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas={{page}}. strona # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. -thumb_page_title=Strona {{page}} +thumb_page_title={{page}}. strona # LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page # number. -thumb_page_canvas=Miniaturka strony {{page}} +thumb_page_canvas=Miniatura {{page}}. strony # Find panel button title and messages -find_input.title=Wyszukiwanie +find_input.title=Znajdź find_input.placeholder=Znajdź w dokumencie… find_previous.title=Znajdź poprzednie wystąpienie tekstu find_previous_label=Poprzednie @@ -200,7 +202,7 @@ error_close=Zamknij error_version_info=PDF.js v{{version}} (kompilacja: {{build}}) # LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an # english string describing the error. -error_message=Wiadomość: {{message}} +error_message=Komunikat: {{message}} # LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack # trace. error_stack=Stos: {{stack}} @@ -214,7 +216,7 @@ rendering_error=Podczas renderowania strony wystąpił błąd. page_scale_width=Szerokość strony page_scale_fit=Dopasowanie strony page_scale_auto=Skala automatyczna -page_scale_actual=Rozmiar rzeczywisty +page_scale_actual=Rozmiar oryginalny # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a # numerical scale value. page_scale_percent={{scale}}% @@ -240,7 +242,6 @@ password_invalid=Nieprawidłowe hasło. Proszę spróbować ponownie. password_ok=OK password_cancel=Anuluj -printing_not_supported=Ostrzeżenie: drukowanie nie jest w pełni obsługiwane przez przeglądarkę. +printing_not_supported=Ostrzeżenie: drukowanie nie jest w pełni obsługiwane przez tę przeglądarkę. printing_not_ready=Ostrzeżenie: dokument PDF nie jest całkowicie wczytany, więc nie można go wydrukować. web_fonts_disabled=Czcionki sieciowe są wyłączone: nie można użyć osadzonych czcionek PDF. -document_colors_not_allowed=Dokumenty PDF nie mogą używać własnych kolorów: opcja „Pozwalaj stronom stosować inne kolory” w przeglądarce jest nieaktywna. diff --git a/cps/static/locale/pt-BR/viewer.properties b/cps/static/locale/pt-BR/viewer.properties index d62dd5f9..ca592b8f 100644 --- a/cps/static/locale/pt-BR/viewer.properties +++ b/cps/static/locale/pt-BR/viewer.properties @@ -41,7 +41,7 @@ print.title=Imprimir print_label=Imprimir download.title=Download download_label=Download -bookmark.title=Visualização atual (copiar ou abrir em uma nova janela) +bookmark.title=Visão atual (copiar ou abrir em nova janela) bookmark_label=Visualização atual # Secondary toolbar and context menu @@ -72,11 +72,11 @@ scroll_horizontal_label=Rolagem horizontal scroll_wrapped.title=Usar rolagem contida scroll_wrapped_label=Rolagem contida -spread_none.title=Não associar à página estendidas +spread_none.title=Não reagrupar páginas spread_none_label=Não estender -spread_odd.title=Associar página estendida a partir de páginas com números ímpares +spread_odd.title=Agrupar páginas começando em páginas com números ímpares spread_odd_label=Estender ímpares -spread_even.title=Associar página estendida a partir de páginas com números pares +spread_even.title=Agrupar páginas começando em páginas com números pares spread_even_label=Estender pares # Document properties dialog box @@ -148,6 +148,8 @@ thumbs_label=Miniaturas findbar.title=Procurar no documento findbar_label=Procurar +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Página {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -163,7 +165,7 @@ find_previous.title=Procurar a ocorrência anterior da frase find_previous_label=Anterior find_next.title=Procurar a próxima ocorrência da frase find_next_label=Próxima -find_highlight=Realçar tudo +find_highlight=Destacar tudo find_match_case_label=Diferenciar maiúsculas/minúsculas find_entire_word_label=Palavras completas find_reached_top=Início do documento alcançado, continuando do fim @@ -243,4 +245,3 @@ password_cancel=Cancelar printing_not_supported=Aviso: a impressão não é totalmente suportada neste navegador. printing_not_ready=Aviso: o PDF não está totalmente carregado para impressão. web_fonts_disabled=As fontes web estão desativadas: não foi possível usar fontes incorporadas do PDF. -document_colors_not_allowed=Documentos PDF não estão autorizados a usar as próprias cores: a opção “Permitir que as páginas escolham suas próprias cores” está desativada no navegador. diff --git a/cps/static/locale/pt-PT/viewer.properties b/cps/static/locale/pt-PT/viewer.properties index 6fec54d9..57f48141 100644 --- a/cps/static/locale/pt-PT/viewer.properties +++ b/cps/static/locale/pt-PT/viewer.properties @@ -72,11 +72,11 @@ scroll_horizontal_label=Deslocação horizontal scroll_wrapped.title=Utilizar deslocação encapsulada scroll_wrapped_label=Deslocação encapsulada -spread_none.title=Não juntar spreads de páginas +spread_none.title=Não juntar páginas dispersas spread_none_label=Sem spreads -spread_odd.title=Juntar spreads de páginas a partir de páginas com números ímpares +spread_odd.title=Juntar páginas dispersas a partir de páginas com números ímpares spread_odd_label=Spreads ímpares -spread_even.title=Juntar spreads de páginas a partir de páginas com números pares +spread_even.title=Juntar páginas dispersas a partir de páginas com números pares spread_even_label=Spreads pares # Document properties dialog box @@ -148,6 +148,8 @@ thumbs_label=Miniaturas findbar.title=Localizar em documento findbar_label=Localizar +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Página {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -242,5 +244,4 @@ password_cancel=Cancelar printing_not_supported=Aviso: a impressão não é totalmente suportada por este navegador. printing_not_ready=Aviso: o PDF ainda não está totalmente carregado. -web_fonts_disabled=Os tipos de letra web estão desativados: não é possível utilizar os tipos de letra PDF incorporados. -document_colors_not_allowed=Os documentos PDF não permitem a utilização das suas próprias cores: “Permitir às páginas escolher as suas próprias cores” está desativado no navegador. +web_fonts_disabled=Os tipos de letra web estão desativados: não é possível utilizar os tipos de letra PDF embutidos. diff --git a/cps/static/locale/rm/viewer.properties b/cps/static/locale/rm/viewer.properties index 4ab7b7ce..8c8cab89 100644 --- a/cps/static/locale/rm/viewer.properties +++ b/cps/static/locale/rm/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Miniaturas findbar.title=Tschertgar en il document findbar_label=Tschertgar +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Pagina {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -226,6 +228,10 @@ invalid_file_error=Datoteca PDF nunvalida u donnegiada. missing_file_error=Datoteca PDF manconta. unexpected_response_error=Resposta nunspetgada dal server. +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. +annotation_date_string={{date}}, {{time}} + # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # "{{type}}" will be replaced with an annotation type from a list defined in # the PDF spec (32000-1:2008 Table 169 – Annotation types). @@ -239,4 +245,3 @@ password_cancel=Interrumper printing_not_supported=Attenziun: Il stampar na funcziunescha anc betg dal tut en quest navigatur. printing_not_ready=Attenziun: Il PDF n'è betg chargià cumplettamain per stampar. web_fonts_disabled=Scrittiras dal web èn deactivadas: impussibel dad utilisar las scrittiras integradas en il PDF. -document_colors_not_allowed=Documents da PDF na dastgan betg duvrar las atgnas colurs: 'Permetter a paginas da tscherner lur atgna colur' è deactivà en il navigatur. diff --git a/cps/static/locale/ro/viewer.properties b/cps/static/locale/ro/viewer.properties index f3a6b83c..0e4fbf70 100644 --- a/cps/static/locale/ro/viewer.properties +++ b/cps/static/locale/ro/viewer.properties @@ -53,12 +53,12 @@ first_page_label=Mergi la prima pagină last_page.title=Mergi la ultima pagină last_page.label=Mergi la ultima pagină last_page_label=Mergi la ultima pagină -page_rotate_cw.title=Rotește în sensul acelor de ceasornic -page_rotate_cw.label=Rotește în sensul acelor de ceasornic -page_rotate_cw_label=Rotește în sensul acelor de ceasornic -page_rotate_ccw.title=Rotește în sens invers al acelor de ceasornic -page_rotate_ccw.label=Rotește în sens invers al acelor de ceasornic -page_rotate_ccw_label=Rotește în sens invers al acelor de ceasornic +page_rotate_cw.title=Rotește în sensul acelor de ceas +page_rotate_cw.label=Rotește în sensul acelor de ceas +page_rotate_cw_label=Rotește în sensul acelor de ceas +page_rotate_ccw.title=Rotește în sens invers al acelor de ceas +page_rotate_ccw.label=Rotește în sens invers al acelor de ceas +page_rotate_ccw_label=Rotește în sens invers al acelor de ceas cursor_text_select_tool.title=Activează instrumentul de selecție a textului cursor_text_select_tool_label=Instrumentul de selecție a textului @@ -106,8 +106,8 @@ document_properties_page_count=Număr de pagini: document_properties_page_size=Mărimea paginii: document_properties_page_size_unit_inches=in document_properties_page_size_unit_millimeters=mm -document_properties_page_size_orientation_portrait=portret -document_properties_page_size_orientation_landscape=peisaj +document_properties_page_size_orientation_portrait=verticală +document_properties_page_size_orientation_landscape=orizontală document_properties_page_size_name_a3=A3 document_properties_page_size_name_a4=A4 document_properties_page_size_name_letter=Literă @@ -145,9 +145,11 @@ attachments.title=Afișează atașamentele attachments_label=Atașamente thumbs.title=Afișează miniaturi thumbs_label=Miniaturi -findbar.title=Găsește în document +findbar.title=Caută în document findbar_label=Caută +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Pagina {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -159,12 +161,12 @@ thumb_page_canvas=Miniatura paginii {{page}} # Find panel button title and messages find_input.title=Caută find_input.placeholder=Caută în document… -find_previous.title=Găsește instanța anterioară în frază -find_previous_label=Anterior -find_next.title=Găsește instanța următoare în frază -find_next_label=Următor +find_previous.title=Mergi la apariția anterioară a textului +find_previous_label=Înapoi +find_next.title=Mergi la apariția următoare a textului +find_next_label=Înainte find_highlight=Evidențiază toate aparițiile -find_match_case_label=Corelează literele mari și mici +find_match_case_label=Ține cont de majuscule și minuscule find_entire_word_label=Cuvinte întregi find_reached_top=Am ajuns la începutul documentului, continuă de la sfârșit find_reached_bottom=Am ajuns la sfârșitul documentului, continuă de la început @@ -211,7 +213,7 @@ error_line=Rând: {{line}} rendering_error=A intervenit o eroare la randarea paginii. # Predefined zoom values -page_scale_width=Lățimea paginii +page_scale_width=Lățime pagină page_scale_fit=Potrivire la pagină page_scale_auto=Zoom automat page_scale_actual=Mărime reală @@ -243,4 +245,3 @@ password_cancel=Renunță printing_not_supported=Avertisment: Tipărirea nu este suportată în totalitate de acest browser. printing_not_ready=Avertisment: PDF-ul nu este încărcat complet pentru tipărire. web_fonts_disabled=Fonturile web sunt dezactivate: nu se pot folosi fonturile PDF încorporate. -document_colors_not_allowed=Documentele PDF nu sunt autorizate să folosească propriile culori: „Permite paginilor să aleagă propriile culori” este dezactivat în browser. diff --git a/cps/static/locale/ru/viewer.properties b/cps/static/locale/ru/viewer.properties index be8aa5b0..dd4ee481 100644 --- a/cps/static/locale/ru/viewer.properties +++ b/cps/static/locale/ru/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Миниатюры findbar.title=Найти в документе findbar_label=Найти +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Страница {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Отмена printing_not_supported=Предупреждение: В этом браузере не полностью поддерживается печать. printing_not_ready=Предупреждение: PDF не полностью загружен для печати. web_fonts_disabled=Веб-шрифты отключены: невозможно использовать встроенные PDF-шрифты. -document_colors_not_allowed=PDF-документам не разрешено использовать свои цвета: в браузере отключён параметр «Разрешить веб-сайтам использовать свои цвета». diff --git a/cps/static/locale/sah/viewer.properties b/cps/static/locale/sah/viewer.properties deleted file mode 100644 index 1786c40d..00000000 --- a/cps/static/locale/sah/viewer.properties +++ /dev/null @@ -1,166 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) -previous.title=Инники сирэй -previous_label=Иннинээҕи -next.title=Аныгыскы сирэй -next_label=Аныгыскы - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. - -zoom_out.title=Куччат -zoom_out_label=Куччат -zoom_in.title=Улаатыннар -zoom_in_label=Улаатыннар -zoom.title=Улаатыннар -presentation_mode.title=Көрдөрөр эрэсиимҥэ -presentation_mode_label=Көрдөрөр эрэсиим -open_file.title=Билэни арый -open_file_label=Ас -print.title=Бэчээт -print_label=Бэчээт -download.title=Хачайдааһын -download_label=Хачайдааһын -bookmark.title=Билиҥҥи көстүүтэ (хатылаа эбэтэр саҥа түннүккэ арый) -bookmark_label=Билиҥҥи көстүүтэ - -# Secondary toolbar and context menu -tools.title=Тэриллэр -tools_label=Тэриллэр -first_page.title=Бастакы сирэйгэ көс -first_page.label=Бастакы сирэйгэ көс -first_page_label=Бастакы сирэйгэ көс -last_page.title=Тиһэх сирэйгэ көс -last_page.label=Тиһэх сирэйгэ көс -last_page_label=Тиһэх сирэйгэ көс -page_rotate_cw.title=Чаһы хоту эргит -page_rotate_cw.label=Чаһы хоту эргит -page_rotate_cw_label=Чаһы хоту эргит -page_rotate_ccw.title=Чаһы утары эргит -page_rotate_ccw.label=Чаһы утары эргит -page_rotate_ccw_label=Чаһы утары эргит - - -# Document properties dialog box -document_properties.title=Докумуон туруоруулара... -document_properties_label=Докумуон туруоруулара...\u0020 -document_properties_file_name=Билэ аата: -document_properties_file_size=Билэ кээмэйэ: -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -document_properties_kb={{size_kb}} КБ ({{size_b}} баайт) -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_mb={{size_mb}} МБ ({{size_b}} баайт) -document_properties_title=Баһа: -document_properties_author=Ааптар: -document_properties_subject=Тиэмэ: -document_properties_keywords=Күлүүс тыл: -document_properties_creation_date=Оҥоһуллубут кэмэ: -document_properties_modification_date=Уларытыллыбыт кэмэ: -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. -document_properties_date_string={{date}}, {{time}} -document_properties_producer=PDF оҥорооччу: -document_properties_version=PDF барыла: -document_properties_page_count=Сирэй ахсаана: -document_properties_close=Сап - -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) -toggle_sidebar.title=Ойоҕос хапталы арый/сап -toggle_sidebar_label=Ойоҕос хапталы арый/сап -document_outline_label=Дөкүмүөн иһинээҕитэ -attachments.title=Кыбытыктары көрдөр -attachments_label=Кыбытык -thumbs.title=Ойуучааннары көрдөр -thumbs_label=Ойуучааннар -findbar.title=Дөкүмүөнтэн бул - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -thumb_page_title=Сирэй {{page}} -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. -thumb_page_canvas=Сирэй ойуучаана {{page}} - -# Find panel button title and messages -find_previous.title=Этии тиэкискэ бу иннинээҕи киириитин бул -find_previous_label=Иннинээҕи -find_next.title=Этии тиэкискэ бу кэннинээҕи киириитин бул -find_next_label=Аныгыскы -find_highlight=Барытын сырдатан көрдөр -find_match_case_label=Буукуба улаханын-кыратын араар -find_reached_top=Сирэй үрдүгэр тиийдиҥ, салгыыта аллара -find_reached_bottom=Сирэй бүттэ, үөһэ салҕанна -find_not_found=Этии көстүбэтэ - -# Error panel labels -error_more_info=Сиһилии -error_less_info=Сиһилиитин кистээ -error_close=Сап -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -error_version_info=PDF.js v{{version}} (хомуйуута: {{build}}) -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -error_message=Этии: {{message}} -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -error_stack=Стeк: {{stack}} -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -error_file=Билэ: {{file}} -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number -error_line=Устуруока: {{line}} -rendering_error=Сирэйи айарга алҕас таҕыста. - -# Predefined zoom values -page_scale_width=Сирэй кэтитинэн -page_scale_fit=Сирэй кээмэйинэн -page_scale_auto=Аптамаатынан -page_scale_actual=Дьиҥнээх кээмэйэ -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. - -# Loading indicator messages -loading_error_indicator=Алҕас -loading_error=PDF-билэни хачайдыырга алҕас таҕыста. -invalid_file_error=Туох эрэ алҕастаах эбэтэр алдьаммыт PDF-билэ. -missing_file_error=PDF-билэ суох. -unexpected_response_error=Сиэрбэр хоруйдаабат. - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -text_annotation_type.alt=[{{type}} туһунан] -password_label=Бу PDF-билэни арыйарга көмүскэл тылы киллэриэхтээхин. -password_invalid=Киирии тыл алҕастаах. Бука диэн, хатылаан көр. -password_ok=СӨП - -printing_not_supported=Сэрэтии: Бу браузер бэчээттиири толору өйөөбөт. -printing_not_ready=Сэрэтии: PDF бэчээттииргэ толору хачайдана илик. -web_fonts_disabled=Ситим-бичиктэр араарыллыахтара: PDF бичиктэрэ кыайан көстүбэттэр. -document_colors_not_allowed=PDF-дөкүмүөүннэргэ бэйэлэрин өҥнөрүн туттар көҥүллэммэтэ: "Ситим-сирдэр бэйэлэрин өҥнөрүн тутталларын көҥүллүүргэ" диэн браузерга арахса сылдьар эбит. diff --git a/cps/static/locale/sat/viewer.properties b/cps/static/locale/sat/viewer.properties deleted file mode 100644 index 67340958..00000000 --- a/cps/static/locale/sat/viewer.properties +++ /dev/null @@ -1,134 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) -previous.title=पा़हिलाक् साहटा -next.title=इना़ तायोम साहटा - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. - -zoom.title=हुडिञ ला़टु तेयार -presentation_mode.title=उदुक् सोदोर ओबोसता रे ओताय मे -presentation_mode_label=उदुक् सोदोर ओबोसता -open_file.title=रेत् झिज मे -open_file_label=झिज मे झिच् -bookmark.title=नितोगाक् ञेल (नावा विंडो रे नोकोल आर बाङ झिज मे ) -bookmark_label=नितोगाक् ञेंल - -# Secondary toolbar and context menu - - -# Document properties dialog box -document_properties_file_name=रेत् ञुतुम: -document_properties_file_size=रेत् माराङ तेत्: -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -document_properties_kb={{माराङ तेत्_kb}} KB ({{माराङ तेत्_b}} बाइट्स) -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_mb={{माराङ तेत्_mb}} MB ({{माराङ तेत्_b}} बाइट्स) -document_properties_title=एम ञुतुम: -document_properties_author=ओनोलिया़: -document_properties_subject=बिसोय: -document_properties_keywords=का़ठी बोर्ड: -document_properties_creation_date=तेयार मा़हित्: -document_properties_modification_date=बोदोल होचो मा़हित्: -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. -document_properties_date_string={{मा़हित्}}, {{ओकतो}} -document_properties_creator=बेनाविच्: -document_properties_producer=PDF तेयार ओडोकिच्: -document_properties_version=PDF बार्सान: -document_properties_page_count=साहटा लेखा: - -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) -document_outline_label=दोलिल तेयार तेत् -attachments.title=लाठा सेलेद को उदुक् मे -attachments_label=लाठा सेलेद को -thumbs.title=चिता़र आहला को उदुगा मे -thumbs_label=चिता़र आहला को -findbar.title=दोलिल रे ञाम - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -thumb_page_title=साहटा {{साहटा}} -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. -thumb_page_canvas=साहटा रेयाक् चिता़र आहला {{साहटा}} - -# Find panel button title and messages -find_previous.title=आयात् हिंस रेयाक् पा़हिल सेदाक् ओडोक् ञाम मे -find_next.title=आयात् हिंस रेयाक् इना़ तायोम ओडोक् ञाम मे -find_highlight=जोतो उदुक् राकाब -find_match_case_label=जोड़ मामला -find_reached_top=दोलिल रेयाक् चोट रे सेटेर, लातार खोन लेताड़ -find_reached_bottom=दोलिल रेयाक् मुचा़त् रे सेटेर, चोट खोन लेताड़ -find_not_found=आयात् हिंस बाय ञाम लेना - -# Error panel labels -error_more_info=बाड़ती ला़य सोदोरढेर ला़य सोदोर -error_less_info=कोम ला़य सोदोर -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -error_version_info=PDF.js v{{बार्सान}} (तेयार: {{तेयार}}) -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -error_message=खोबोर: {{खोबोर}} -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -error_stack=डांग: {{डांग}} -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -error_file=रेत्: {{रेत्}} -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number -error_line=गार: {{गार}} -rendering_error=साहटा एम जोहोक मित् भुल हुय एना . - -# Predefined zoom values -page_scale_width=साहटा ओसार -page_scale_fit=साहटा खाप -page_scale_auto=आच् आच् ते हुडिञ ला़टु तेयार -page_scale_actual=ठिक माराङ तेत् -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. - -# Loading indicator messages -loading_error_indicator=भुल -loading_error=\u0020PDFलादे जोहोक् मित् भुल हुय एना. -invalid_file_error=बाङ बाताव आर बाङ PDF रेत्. -missing_file_error=आदाक् PDF रेत्. - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -text_annotation_type.alt=[{{लेकान}} बेयान एम] -password_label=नोवा PDF रेत् झिज ला़गित् दानाङ साबाद आदेर मे. -password_invalid=बाङ बातावाक् दानाङ साबाद. दोहड़ा कुरुमुटुय मे. -password_ok=OK - -printing_not_supported=होसियार: छापा नोवा पानतेयाक् दाराय ते पुरा़व बाय गोड़ोवाकाना . -printing_not_ready=होंसिया़र: छापा ला़गित् PDF पुरा़ बाय लादे आकाना. -web_fonts_disabled=वेब फॉन्ट बाङ हुय होचो आकाना: भितिर थापोन PDF फॉन्ट्स बेभार बाङ हुय केया. -document_colors_not_allowed=PDF दोलिल को आजाक् निजे रोङ बेभार बाताव बाय एमागाक् आ: 'आजाक् निजे रोङ को बाछाव ला़गित् बाताव एम साहटा कोदो ब्राउजार रे बाय चोगोड़ होचोवा. diff --git a/cps/static/locale/lg/viewer.properties b/cps/static/locale/scn/viewer.properties similarity index 65% rename from cps/static/locale/lg/viewer.properties rename to cps/static/locale/scn/viewer.properties index 5658d544..e9a650a9 100644 --- a/cps/static/locale/lg/viewer.properties +++ b/cps/static/locale/scn/viewer.properties @@ -13,34 +13,24 @@ # limitations under the License. # Main toolbar buttons (tooltips and alt text for images) -previous.title=Omuko Ogubadewo -next.title=Omuko Oguddako # LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number # representing the total number of pages in the document. -of_pages=ku {{pagesCount}} # LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" # will be replaced by a number representing the currently visible page, # respectively a number representing the total number of pages in the document. -zoom_out.title=Zimbulukusa -zoom_out_label=Zimbulukusa -zoom_in.title=Funza Munda -zoom_in_label=Funza Munda -zoom.title=Gezzamu -open_file.title=Bikula Fayiro -open_file_label=Ggulawo -print.title=Fulumya -print_label=Fulumya -download.title=Tikula -download_label=Tikula -bookmark.title=Endabika eriwo (koppa oba gulawo mu diriisa epya) -bookmark_label=Endabika Eriwo +zoom_out.title=Cchiù nicu +zoom_out_label=Cchiù nicu +zoom_in.title=Cchiù granni +zoom_in_label=Cchiù granni # Secondary toolbar and context menu + + # Document properties dialog box # LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" # will be replaced by the PDF file size in kilobytes, respectively in bytes. @@ -48,65 +38,64 @@ bookmark_label=Endabika Eriwo # will be replaced by the PDF file size in megabytes, respectively in bytes. # LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" # will be replaced by the creation/modification date, and time, of the PDF file. +# LOCALIZATION NOTE (document_properties_page_size_dimension_string): +# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by +# the size, respectively their unit of measurement and orientation, of the (current) page. +# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string): +# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by +# the size, respectively their unit of measurement, name, and orientation, of the (current) page. +# LOCALIZATION NOTE (document_properties_linearized): The linearization status of +# the document; usually called "Fast Web View" in English locales of Adobe software. +document_properties_linearized=Vista web lesta: +document_properties_linearized_yes=Se # LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by # a numerical per cent value. +print_progress_close=Sfai # Tooltips and alt text for side panel toolbar buttons # (the _label strings are alt text for the buttons, the .title strings are # tooltips) -document_outline_label=Ensalo ze Ekiwandiko -thumbs.title=Laga Ekifanyi Mubufunze -thumbs_label=Ekifanyi Mubufunze # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. -thumb_page_title=Omuko {{page}} # LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page # number. -thumb_page_canvas=Ekifananyi kyo Omuko Mubufunze {{page}} # Find panel button title and messages -find_previous.title=Zuula awayise mukweddamu mumiteddera -find_next.title=Zuula ekidako mukweddamu mumiteddera -find_highlight=Londa byonna -find_not_found=Emiteddera tezuuliddwa +# LOCALIZATION NOTE (find_match_count): The supported plural forms are +# [one|two|few|many|other], with [other] as the default value. +# "{{current}}" and "{{total}}" will be replaced by a number representing the +# index of the currently active find result, respectively a number representing +# the total number of matches in the document. +# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are +# [zero|one|two|few|many|other], with [other] as the default value. +# "{{limit}}" will be replaced by a numerical value. # Error panel labels -error_more_info=Ebisingawo -error_less_info=Mubumpimpi # LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be # replaced by the PDF.JS version and build ID. # LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an # english string describing the error. -error_message=Obubaaka: {{message}} # LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack # trace. -error_stack=Ebipangiddwa: {{stack}} # LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -error_file=Fayiro {{file}} # LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number -error_line=Layini: {{line}} -rendering_error=Wabadewo ensobi muku tekawo omuko. # Predefined zoom values -page_scale_width=Obugazi bwo Omuko -page_scale_fit=Okutuka kwo Omuko -page_scale_auto=Okwefunza no Kwegeza -page_scale_actual=Obunene Obutufu +page_scale_width=Larghizza dâ pàggina # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a # numerical scale value. # Loading indicator messages -loading_error_indicator=Ensobi -loading_error=Wabadewo ensobi mukutika PDF. + +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # "{{type}}" will be replaced with an annotation type from a list defined in # the PDF spec (32000-1:2008 Table 169 – Annotation types). # Some common types are e.g.: "Check", "Text", "Comment", "Note" -text_annotation_type.alt=[{{type}} Enyonyola] -password_ok=OK +password_cancel=Sfai -printing_not_supported=Okulaabula: Okulumya empapula tekuwagirwa enonyeso enno. diff --git a/cps/static/locale/sk/viewer.properties b/cps/static/locale/sk/viewer.properties index 00cf62e3..d86d77cf 100644 --- a/cps/static/locale/sk/viewer.properties +++ b/cps/static/locale/sk/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Miniatúry findbar.title=Hľadať v dokumente findbar_label=Hľadať +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Strana {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Zrušiť printing_not_supported=Upozornenie: tlač nie je v tomto prehliadači plne podporovaná. printing_not_ready=Upozornenie: súbor PDF nie je plne načítaný pre tlač. web_fonts_disabled=Webové písma sú vypnuté: nie je možné použiť písma vložené do súboru PDF. -document_colors_not_allowed=Dokumenty PDF nemajú povolené používať vlastné farby, pretože voľba "Povoliť stránkam používať vlastné farby" je v nastaveniach prehliadača vypnutá. diff --git a/cps/static/locale/sl/viewer.properties b/cps/static/locale/sl/viewer.properties index 790205de..25a5e9c5 100644 --- a/cps/static/locale/sl/viewer.properties +++ b/cps/static/locale/sl/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Sličice findbar.title=Iskanje po dokumentu findbar_label=Najdi +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Stran {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Prekliči printing_not_supported=Opozorilo: ta brskalnik ne podpira vseh možnosti tiskanja. printing_not_ready=Opozorilo: PDF ni v celoti naložen za tiskanje. web_fonts_disabled=Spletne pisave so onemogočene: vgradnih pisav za PDF ni mogoče uporabiti. -document_colors_not_allowed=Dokumenti PDF ne smejo uporabljati svojih lastnih barv: možnost 'Dovoli stranem uporabo lastnih barv' je v brskalniku onemogočena. diff --git a/cps/static/locale/son/viewer.properties b/cps/static/locale/son/viewer.properties index f5c1b46f..683ed14d 100644 --- a/cps/static/locale/son/viewer.properties +++ b/cps/static/locale/son/viewer.properties @@ -177,4 +177,3 @@ password_cancel=Naŋ printing_not_supported=Yaamar: Karyan ši tee ka timme nda ceecikaa woo. printing_not_ready=Yaamar: PDF ši zunbu ka timme karyan še. web_fonts_disabled=Interneti šigirawey kay: ši hin ka goy nda PDF šigira hurantey. -document_colors_not_allowed=PDF takaddawey ši duu fondo ka ngey boŋ noonawey zaa: “Naŋ moɲey ma ngey boŋ noonawey suuba” ši dira ceecikaa ga. diff --git a/cps/static/locale/sq/viewer.properties b/cps/static/locale/sq/viewer.properties index 153ab56e..f0710af5 100644 --- a/cps/static/locale/sq/viewer.properties +++ b/cps/static/locale/sq/viewer.properties @@ -28,9 +28,9 @@ of_pages=nga {{pagesCount}} gjithsej # respectively a number representing the total number of pages in the document. page_of_pages=({{pageNumber}} nga {{pagesCount}}) -zoom_out.title=Zvogëlim -zoom_out_label=Zvogëlojini -zoom_in.title=Zmadhim +zoom_out.title=Zvogëlojeni +zoom_out_label=Zvogëlojeni +zoom_in.title=Zmadhojeni zoom_in_label=Zmadhojini zoom.title=Zoom presentation_mode.title=Kalo te Mënyra Paraqitje @@ -98,7 +98,7 @@ document_properties_producer=Prodhues PDF-je: document_properties_version=Version PDF-je: document_properties_page_count=Numër Faqesh: document_properties_page_size=Madhësi Faqeje: -document_properties_page_size_unit_inches=in +document_properties_page_size_unit_inches=inç document_properties_page_size_unit_millimeters=mm document_properties_page_size_orientation_portrait=portret document_properties_page_size_orientation_landscape=së gjeri @@ -141,6 +141,8 @@ thumbs_label=Miniatura findbar.title=Gjeni në Dokument findbar_label=Gjej +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Faqja {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -150,7 +152,7 @@ thumb_page_title=Faqja {{page}} thumb_page_canvas=Miniaturë e Faqes {{page}} # Find panel button title and messages -find_input.title=Gjeje +find_input.title=Gjej find_input.placeholder=Gjeni në dokument… find_previous.title=Gjeni hasjen e mëparshme të togfjalëshit find_previous_label=E mëparshmja @@ -236,4 +238,3 @@ password_cancel=Anuloje printing_not_supported=Kujdes: Shtypja s’mbulohet plotësisht nga ky shfletues. printing_not_ready=Kujdes: PDF-ja s’është ngarkuar plotësisht që ta shtypni. web_fonts_disabled=Shkronjat Web janë të çaktivizuara: s’arrihet të përdoren shkronja të trupëzuara në PDF. -document_colors_not_allowed=Dokumenteve PDF s’u lejohet të përdorin ngjyrat e tyre: 'Lejoji faqet t’i zgjedhin vetë ngjyrat' është e çaktivizuar te shfletuesi. diff --git a/cps/static/locale/sr/viewer.properties b/cps/static/locale/sr/viewer.properties index 1b43b567..8c4e9241 100644 --- a/cps/static/locale/sr/viewer.properties +++ b/cps/static/locale/sr/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Сличице findbar.title=Пронађи у документу findbar_label=Пронађи +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Страница {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -165,8 +167,30 @@ find_next.title=Пронађи следећу појаву фразе find_next_label=Следећа find_highlight=Истакнути све find_match_case_label=Подударања +find_entire_word_label=Целе речи find_reached_top=Достигнут врх документа, наставио са дна find_reached_bottom=Достигнуто дно документа, наставио са врха +# LOCALIZATION NOTE (find_match_count): The supported plural forms are +# [one|two|few|many|other], with [other] as the default value. +# "{{current}}" and "{{total}}" will be replaced by a number representing the +# index of the currently active find result, respectively a number representing +# the total number of matches in the document. +find_match_count={[ plural(total) ]} +find_match_count[one]={{current}} од {{total}} одговара +find_match_count[two]={{current}} од {{total}} одговара +find_match_count[few]={{current}} од {{total}} одговара +find_match_count[many]={{current}} од {{total}} одговара +find_match_count[other]={{current}} од {{total}} одговара +# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are +# [zero|one|two|few|many|other], with [other] as the default value. +# "{{limit}}" will be replaced by a numerical value. +find_match_count_limit={[ plural(limit) ]} +find_match_count_limit[zero]=Више од {{limit}} одговара +find_match_count_limit[one]=Више од {{limit}} одговара +find_match_count_limit[two]=Више од {{limit}} одговара +find_match_count_limit[few]=Више од {{limit}} одговара +find_match_count_limit[many]=Више од {{limit}} одговара +find_match_count_limit[other]=Више од {{limit}} одговара find_not_found=Фраза није пронађена # Error panel labels @@ -204,6 +228,10 @@ invalid_file_error=PDF датотека је оштећена или је неи missing_file_error=PDF датотека није пронађена. unexpected_response_error=Неочекиван одговор од сервера. +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. +annotation_date_string={{date}}, {{time}} + # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # "{{type}}" will be replaced with an annotation type from a list defined in # the PDF spec (32000-1:2008 Table 169 – Annotation types). @@ -217,4 +245,3 @@ password_cancel=Откажи printing_not_supported=Упозорење: Штампање није у потпуности подржано у овом прегледачу. printing_not_ready=Упозорење: PDF није у потпуности учитан за штампу. web_fonts_disabled=Веб фонтови су онемогућени: не могу користити уграђене PDF фонтове. -document_colors_not_allowed=PDF документи не могу да користе сопствене боје: “Дозволи страницама да изаберу своје боје” је деактивирано у прегледачу. diff --git a/cps/static/locale/sv-SE/viewer.properties b/cps/static/locale/sv-SE/viewer.properties index b1b60bd4..7c75281c 100644 --- a/cps/static/locale/sv-SE/viewer.properties +++ b/cps/static/locale/sv-SE/viewer.properties @@ -137,17 +137,22 @@ print_progress_close=Avbryt # (the _label strings are alt text for the buttons, the .title strings are # tooltips) toggle_sidebar.title=Visa/dölj sidofält -toggle_sidebar_notification.title=Visa/dölj sidofält (dokument innehåller översikt/bilagor) +toggle_sidebar_notification2.title=Visa/dölj sidofält (dokument innehåller översikt/bilagor/lager) toggle_sidebar_label=Visa/dölj sidofält document_outline.title=Visa dokumentdisposition (dubbelklicka för att expandera/komprimera alla objekt) document_outline_label=Dokumentöversikt attachments.title=Visa Bilagor attachments_label=Bilagor +layers.title=Visa lager (dubbelklicka för att återställa alla lager till ursrungligt läge) +layers_label=Lager thumbs.title=Visa miniatyrer thumbs_label=Miniatyrer findbar.title=Sök i dokument findbar_label=Sök +additional_layers=Ytterligare lager +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Sida {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +248,3 @@ password_cancel=Avbryt printing_not_supported=Varning: Utskrifter stöds inte helt av den här webbläsaren. printing_not_ready=Varning: PDF:en är inte klar för utskrift. web_fonts_disabled=Webbtypsnitt är inaktiverade: kan inte använda inbäddade PDF-typsnitt. -document_colors_not_allowed=PDF-dokument tillåts inte använda egna färger: “Låt sidor använda egna färger” är inaktiverat i webbläsaren. diff --git a/cps/static/locale/sw/viewer.properties b/cps/static/locale/sw/viewer.properties deleted file mode 100644 index 9ec4e216..00000000 --- a/cps/static/locale/sw/viewer.properties +++ /dev/null @@ -1,128 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) -previous.title=Ukurasa Uliotangulia -previous_label=Iliyotangulia -next.title=Ukurasa Ufuatao -next_label=Ifuatayo - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. - -zoom_out.title=Kuza Nje -zoom_out_label=Kuza Nje -zoom_in.title=Kuza Ndani -zoom_in_label=Kuza Ndani -zoom.title=Kuza -presentation_mode.title=Badili kwa Hali ya Uwasilishaji -presentation_mode_label=Hali ya Uwasilishaji -open_file.title=Fungua Faili -open_file_label=Fungua -print.title=Chapisha -print_label=Chapisha -download.title=Pakua -download_label=Pakua -bookmark.title=Mwonekano wa sasa (nakili au ufungue katika dirisha mpya) -bookmark_label=Mwonekano wa Sasa - -# Secondary toolbar and context menu - - -# Document properties dialog box -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_title=Kichwa: -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. - -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) -toggle_sidebar.title=Kibiano cha Upau wa Kando -toggle_sidebar_label=Kibiano cha Upau wa Kando -document_outline_label=Ufupisho wa Waraka -thumbs.title=Onyesha Kijipicha -thumbs_label=Vijipicha -findbar.title=Pata katika Waraka - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -thumb_page_title=Ukurasa {{ukurasa}} -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. -thumb_page_canvas=Kijipicha cha ukurasa {{ukurasa}} - -# Find panel button title and messages -find_previous.title=Tafuta tukio kabla ya msemo huu -find_previous_label=Iliyotangulia -find_next.title=Tafuta tukio linalofuata la msemo -find_next_label=Ifuatayo -find_highlight=Angazia yote -find_match_case_label=Linganisha herufi -find_reached_top=Imefika juu ya waraka, imeendelea kutoka chini -find_reached_bottom=Imefika mwisho wa waraka, imeendelea kutoka juu -find_not_found=Msemo hukupatikana - -# Error panel labels -error_more_info=Maelezo Zaidi -error_less_info=Maelezo Kidogo -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -error_version_info=PDF.js v{{version}} (jenga: {{build}}) -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -error_message=Ujumbe: {{message}} -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -error_stack=Panganya: {{stack}} -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -error_file=Faili: {{faili}} -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number -error_line=Laini: {{laini}} -rendering_error=Hitilafu lilitokea wajati wa kutoa ukurasa - -# Predefined zoom values -page_scale_width=Upana wa Ukurasa -page_scale_fit=Usawa wa Ukurasa -page_scale_auto=Ukuzaji wa Kiotomatiki -page_scale_actual=Ukubwa Halisi -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. - -# Loading indicator messages -loading_error_indicator=Hitilafu -loading_error=Hitilafu lilitokea wakati wa kupakia PDF. -invalid_file_error=Faili ya PDF isiyohalali au potofu. -missing_file_error=Faili ya PDF isiyopo. - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -text_annotation_type.alt=[{{type}} Ufafanuzi] -password_ok=SAWA - -printing_not_supported=Onyo: Uchapishaji hauauniwi kabisa kwa kivinjari hiki. -web_fonts_disabled=Fonti za tovuti zimelemazwa: haziwezi kutumia fonti za PDF zilizopachikwa. diff --git a/cps/static/locale/szl/viewer.properties b/cps/static/locale/szl/viewer.properties new file mode 100644 index 00000000..282c5950 --- /dev/null +++ b/cps/static/locale/szl/viewer.properties @@ -0,0 +1,247 @@ +# 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. + +# Main toolbar buttons (tooltips and alt text for images) +previous.title=Piyrwyjszo strōna +previous_label=Piyrwyjszo +next.title=Nastympno strōna +next_label=Dalij + +# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. +page.title=Strōna +# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number +# representing the total number of pages in the document. +of_pages=ze {{pagesCount}} +# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" +# will be replaced by a number representing the currently visible page, +# respectively a number representing the total number of pages in the document. +page_of_pages=({{pageNumber}} ze {{pagesCount}}) + +zoom_out.title=Zmyńsz +zoom_out_label=Zmyńsz +zoom_in.title=Zwiynksz +zoom_in_label=Zwiynksz +zoom.title=Srogość +presentation_mode.title=Przełōncz na tryb prezyntacyje +presentation_mode_label=Tryb prezyntacyje +open_file.title=Ôdewrzij zbiōr +open_file_label=Ôdewrzij +print.title=Durkuj +print_label=Durkuj +download.title=Pobier +download_label=Pobier +bookmark.title=Aktualny widok (kopiuj abo ôdewrzij w nowym ôknie) +bookmark_label=Aktualny widok + +# Secondary toolbar and context menu +tools.title=Noczynia +tools_label=Noczynia +first_page.title=Idź ku piyrszyj strōnie +first_page.label=Idź ku piyrszyj strōnie +first_page_label=Idź ku piyrszyj strōnie +last_page.title=Idź ku ôstatnij strōnie +last_page.label=Idź ku ôstatnij strōnie +last_page_label=Idź ku ôstatnij strōnie +page_rotate_cw.title=Zwyrtnij w prawo +page_rotate_cw.label=Zwyrtnij w prawo +page_rotate_cw_label=Zwyrtnij w prawo +page_rotate_ccw.title=Zwyrtnij w lewo +page_rotate_ccw.label=Zwyrtnij w lewo +page_rotate_ccw_label=Zwyrtnij w lewo + +cursor_text_select_tool.title=Załōncz noczynie ôbiyranio tekstu +cursor_text_select_tool_label=Noczynie ôbiyranio tekstu +cursor_hand_tool.title=Załōncz noczynie rōnczka +cursor_hand_tool_label=Noczynie rōnczka + +scroll_vertical.title=Używej piōnowego przewijanio +scroll_vertical_label=Piōnowe przewijanie +scroll_horizontal.title=Używej poziōmego przewijanio +scroll_horizontal_label=Poziōme przewijanie +scroll_wrapped.title=Używej szichtowego przewijanio +scroll_wrapped_label=Szichtowe przewijanie + +spread_none.title=Niy dowej strōn w widoku po dwie +spread_none_label=Po jednyj strōnie +spread_odd.title=Dej strōny po dwie: niyparzysto i parzysto +spread_odd_label=Niyparzysto i parzysto +spread_even.title=Dej strōny po dwie: parzysto i niyparzysto +spread_even_label=Parzysto i niyparzysto + +# Document properties dialog box +document_properties.title=Włosności dokumyntu… +document_properties_label=Włosności dokumyntu… +document_properties_file_name=Miano zbioru: +document_properties_file_size=Srogość zbioru: +# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" +# will be replaced by the PDF file size in kilobytes, respectively in bytes. +document_properties_kb={{size_kb}} KB ({{size_b}} B) +# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" +# will be replaced by the PDF file size in megabytes, respectively in bytes. +document_properties_mb={{size_mb}} MB ({{size_b}} B) +document_properties_title=Tytuł: +document_properties_author=Autōr: +document_properties_subject=Tymat: +document_properties_keywords=Kluczowe słowa: +document_properties_creation_date=Data zrychtowanio: +document_properties_modification_date=Data zmiany: +# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" +# will be replaced by the creation/modification date, and time, of the PDF file. +document_properties_date_string={{date}}, {{time}} +document_properties_creator=Zrychtowane ôd: +document_properties_producer=PDF ôd: +document_properties_version=Wersyjo PDF: +document_properties_page_count=Wielość strōn: +document_properties_page_size=Srogość strōny: +document_properties_page_size_unit_inches=in +document_properties_page_size_unit_millimeters=mm +document_properties_page_size_orientation_portrait=piōnowo +document_properties_page_size_orientation_landscape=poziōmo +document_properties_page_size_name_a3=A3 +document_properties_page_size_name_a4=A4 +document_properties_page_size_name_letter=Letter +document_properties_page_size_name_legal=Legal +# LOCALIZATION NOTE (document_properties_page_size_dimension_string): +# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by +# the size, respectively their unit of measurement and orientation, of the (current) page. +document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}}) +# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string): +# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by +# the size, respectively their unit of measurement, name, and orientation, of the (current) page. +document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}}) +# LOCALIZATION NOTE (document_properties_linearized): The linearization status of +# the document; usually called "Fast Web View" in English locales of Adobe software. +document_properties_linearized=Gibki necowy podglōnd: +document_properties_linearized_yes=Ja +document_properties_linearized_no=Niy +document_properties_close=Zawrzij + +print_progress_message=Rychtowanie dokumyntu do durku… +# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by +# a numerical per cent value. +print_progress_percent={{progress}}% +print_progress_close=Pociep + +# Tooltips and alt text for side panel toolbar buttons +# (the _label strings are alt text for the buttons, the .title strings are +# tooltips) +toggle_sidebar.title=Przełōncz posek na rancie +toggle_sidebar_notification.title=Przełōncz posek na rancie (dokumynt mo struktura/przidowki) +toggle_sidebar_label=Przełōncz posek na rancie +document_outline.title=Pokoż struktura dokumyntu (tuplowane klikniyncie rozszyrzo/swijo wszyskie elymynty) +document_outline_label=Struktura dokumyntu +attachments.title=Pokoż przidowki +attachments_label=Przidowki +thumbs.title=Pokoż miniatury +thumbs_label=Miniatury +findbar.title=Znojdź w dokumyncie +findbar_label=Znojdź + +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Strōna {{page}} +# Thumbnails panel item (tooltip and alt text for images) +# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page +# number. +thumb_page_title=Strōna {{page}} +# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page +# number. +thumb_page_canvas=Miniatura strōny {{page}} + +# Find panel button title and messages +find_input.title=Znojdź +find_input.placeholder=Znojdź w dokumyncie… +find_previous.title=Znojdź piyrwyjsze pokozanie sie tyj frazy +find_previous_label=Piyrwyjszo +find_next.title=Znojdź nastympne pokozanie sie tyj frazy +find_next_label=Dalij +find_highlight=Ôbznocz wszysko +find_match_case_label=Poznowej srogość liter +find_entire_word_label=Cołke słowa +find_reached_top=Doszło do samego wiyrchu strōny, dalij ôd spodku +find_reached_bottom=Doszło do samego spodku strōny, dalij ôd wiyrchu +# LOCALIZATION NOTE (find_match_count): The supported plural forms are +# [one|two|few|many|other], with [other] as the default value. +# "{{current}}" and "{{total}}" will be replaced by a number representing the +# index of the currently active find result, respectively a number representing +# the total number of matches in the document. +find_match_count={[ plural(total) ]} +find_match_count[one]={{current}} ze {{total}}, co pasujōm +find_match_count[two]={{current}} ze {{total}}, co pasujōm +find_match_count[few]={{current}} ze {{total}}, co pasujōm +find_match_count[many]={{current}} ze {{total}}, co pasujōm +find_match_count[other]={{current}} ze {{total}}, co pasujōm +# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are +# [zero|one|two|few|many|other], with [other] as the default value. +# "{{limit}}" will be replaced by a numerical value. +find_match_count_limit={[ plural(total) ]} +find_match_count_limit[zero]=Wiyncyj jak {{limit}}, co pasujōm +find_match_count_limit[one]=Wiyncyj jak {{limit}}, co pasuje +find_match_count_limit[two]=Wiyncyj jak {{limit}}, co pasujōm +find_match_count_limit[few]=Wiyncyj jak {{limit}}, co pasujōm +find_match_count_limit[many]=Wiyncyj jak {{limit}}, co pasujōm +find_match_count_limit[other]=Wiyncyj jak {{limit}}, co pasujōm +find_not_found=Fraza niy ma znodniynto + +# Error panel labels +error_more_info=Wiyncyj informacyji +error_less_info=Mynij informacyji +error_close=Zawrzij +# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be +# replaced by the PDF.JS version and build ID. +error_version_info=PDF.js v{{version}} (build: {{build}}) +# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an +# english string describing the error. +error_message=Wiadōmość: {{message}} +# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack +# trace. +error_stack=Sztapel: {{stack}} +# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename +error_file=Zbiōr: {{file}} +# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number +error_line=Linijo: {{line}} +rendering_error=Przi renderowaniu strōny pokozoł sie feler. + +# Predefined zoom values +page_scale_width=Szyrzka strōny +page_scale_fit=Napasowanie strōny +page_scale_auto=Autōmatyczno srogość +page_scale_actual=Aktualno srogość +# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a +# numerical scale value. +page_scale_percent={{scale}}% + +# Loading indicator messages +loading_error_indicator=Feler +loading_error=Przi ladowaniu PDFa pokozoł sie feler. +invalid_file_error=Zły abo felerny zbiōr PDF. +missing_file_error=Chybio zbioru PDF. +unexpected_response_error=Niyôczekowano ôdpowiydź serwera. + +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. +annotation_date_string={{date}}, {{time}} + +# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. +# "{{type}}" will be replaced with an annotation type from a list defined in +# the PDF spec (32000-1:2008 Table 169 – Annotation types). +# Some common types are e.g.: "Check", "Text", "Comment", "Note" +text_annotation_type.alt=[Anotacyjo typu {{type}}] +password_label=Wkludź hasło, coby ôdewrzić tyn zbiōr PDF. +password_invalid=Hasło je złe. Sprōbuj jeszcze roz. +password_ok=OK +password_cancel=Pociep + +printing_not_supported=Pozōr: Ta przeglōndarka niy cołkiym ôbsuguje durk. +printing_not_ready=Pozōr: Tyn PDF niy ma za tela zaladowany do durku. +web_fonts_disabled=Necowe fōnty sōm zastawiōne: niy idzie użyć wkludzōnych fōntōw PDF. diff --git a/cps/static/locale/ta-LK/viewer.properties b/cps/static/locale/ta-LK/viewer.properties deleted file mode 100644 index f0b1f43e..00000000 --- a/cps/static/locale/ta-LK/viewer.properties +++ /dev/null @@ -1,77 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. - -zoom.title=அளவு -open_file.title=கோப்பினைத் திறக்க -open_file_label=திறக்க - -# Secondary toolbar and context menu - - -# Document properties dialog box -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. - -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. - -# Find panel button title and messages -find_previous.title=இந்த சொற்றொடரின் முன்னைய நிகழ்வை தேடு -find_next.title=இந்த சொற்றொடரின் அடுத்த நிகழ்வைத் தேடு - -# Error panel labels -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number - -# Predefined zoom values -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. - -# Loading indicator messages - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -password_ok=ஆம் - diff --git a/cps/static/locale/ta/viewer.properties b/cps/static/locale/ta/viewer.properties index 19a8de43..669ba0c5 100644 --- a/cps/static/locale/ta/viewer.properties +++ b/cps/static/locale/ta/viewer.properties @@ -198,4 +198,3 @@ password_cancel=ரத்து printing_not_supported=எச்சரிக்கை: இந்த உலாவி அச்சிடுதலை முழுமையாக ஆதரிக்கவில்லை. printing_not_ready=எச்சரிக்கை: PDF அச்சிட முழுவதுமாக ஏற்றப்படவில்லை. web_fonts_disabled=வலை எழுத்துருக்கள் முடக்கப்பட்டுள்ளன: உட்பொதிக்கப்பட்ட PDF எழுத்துருக்களைப் பயன்படுத்த முடியவில்லை. -document_colors_not_allowed=PDF ஆவணங்களுக்குச் சொந்த நிறங்களைப் பயன்படுத்த அனுமதியில்லை: உலாவியில் "பக்கங்கள் தங்கள் சொந்த நிறங்களைத் தேர்வு செய்துகொள்ள அனுமதி" என்னும் விருப்பம் முடக்கப்பட்டுள்ளது. diff --git a/cps/static/locale/te/viewer.properties b/cps/static/locale/te/viewer.properties index 56f954d4..498b64c8 100644 --- a/cps/static/locale/te/viewer.properties +++ b/cps/static/locale/te/viewer.properties @@ -219,4 +219,3 @@ password_cancel=రద్దుచేయి printing_not_supported=హెచ్చరిక: ఈ విహారిణి చేత ముద్రణ పూర్తిగా తోడ్పాటు లేదు. printing_not_ready=హెచ్చరిక: ముద్రణ కొరకు ఈ PDF పూర్తిగా లోడవలేదు. web_fonts_disabled=వెబ్ ఫాంట్లు అచేతనించబడెను: ఎంబెడెడ్ PDF ఫాంట్లు ఉపయోగించలేక పోయింది. -document_colors_not_allowed=PDF పత్రాలు వాటి స్వంత రంగులను ఉపయోగించుకొనుటకు అనుమతించబడవు: విహరణి నందు “పేజీలను వాటి స్వంత రంగులను ఎంచుకొనుటకు అనుమతించు” అచేతనం చేయబడివుంది. diff --git a/cps/static/locale/th/viewer.properties b/cps/static/locale/th/viewer.properties index 34d46147..a4ef7db1 100644 --- a/cps/static/locale/th/viewer.properties +++ b/cps/static/locale/th/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=ภาพขนาดย่อ findbar.title=ค้นหาในเอกสาร findbar_label=ค้นหา +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=หน้า {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=ยกเลิก printing_not_supported=คำเตือน: เบราว์เซอร์นี้ไม่ได้สนับสนุนการพิมพ์อย่างเต็มที่ printing_not_ready=คำเตือน: PDF ไม่ได้รับการโหลดอย่างเต็มที่สำหรับการพิมพ์ web_fonts_disabled=แบบอักษรเว็บถูกปิดใช้งาน: ไม่สามารถใช้แบบอักษร PDF ฝังตัว -document_colors_not_allowed=เอกสาร PDF ไม่ได้รับอนุญาตให้ใช้สีของตัวเอง: "อนุญาตให้หน้าเอกสารสามารถเลือกสีของตัวเอง" ถูกปิดใช้งานในเบราว์เซอร์ diff --git a/cps/static/locale/tl/viewer.properties b/cps/static/locale/tl/viewer.properties index a3583a9c..0209da15 100644 --- a/cps/static/locale/tl/viewer.properties +++ b/cps/static/locale/tl/viewer.properties @@ -28,7 +28,7 @@ of_pages=ng {{pagesCount}} # respectively a number representing the total number of pages in the document. page_of_pages=({{pageNumber}} ng {{pagesCount}}) -zoom_out.title=Mag-zoom Out +zoom_out.title=Paliitin zoom_out_label=Paliitin zoom_in.title=Palakihin zoom_in_label=Palakihin @@ -45,8 +45,8 @@ bookmark.title=Kasalukuyang tingin (kopyahin o buksan sa bagong window) bookmark_label=Kasalukuyang tingin # Secondary toolbar and context menu -tools.title=Mga Tool -tools_label=Mga Tool +tools.title=Mga Kagamitan +tools_label=Mga Kagamitan first_page.title=Pumunta sa Unang Pahina first_page.label=Pumunta sa Unang Pahina first_page_label=Pumunta sa Unang Pahina @@ -148,6 +148,8 @@ thumbs_label=Thumbnails findbar.title=Find in Document findbar_label=Hanapin +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Pahina {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -192,8 +194,8 @@ find_match_count_limit[other]=More than {{limit}} matches find_not_found=Hindi nakita ang prasko # Error panel labels -error_more_info=Maraming Inpormasyon -error_less_info=Maikling Inpormasyon +error_more_info=Karagdagang Impormasyon +error_less_info=Mas Kaunting Impormasyon error_close=Sarado # LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be # replaced by the PDF.JS version and build ID. @@ -211,9 +213,9 @@ error_line=Linya: {{line}} rendering_error=May naganap na pagkakamali habang pagsasalin sa pahina. # Predefined zoom values -page_scale_width=Haba ng Pahina +page_scale_width=Lapad ng Pahina page_scale_fit=ang pahina ay angkop -page_scale_auto=awtomatikong pag-imbulog +page_scale_auto=Automatic Zoom page_scale_actual=Totoong sukat # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a # numerical scale value. @@ -226,6 +228,10 @@ invalid_file_error=Di-wasto o masira ang PDF file. missing_file_error=Nawawalang PDF file. unexpected_response_error=Hindi inaasahang tugon ng server. +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. +annotation_date_string={{date}}, {{time}} + # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # "{{type}}" will be replaced with an annotation type from a list defined in # the PDF spec (32000-1:2008 Table 169 – Annotation types). @@ -239,4 +245,3 @@ password_cancel=Kanselahin printing_not_supported=Warning: Printing is not fully supported by this browser. printing_not_ready=Warning: The PDF is not fully loaded for printing. web_fonts_disabled=Web fonts are disabled: unable to use embedded PDF fonts. -document_colors_not_allowed=PDF documents are not allowed to use their own colors: “Allow pages to choose their own colors” is deactivated in the browser. diff --git a/cps/static/locale/tn/viewer.properties b/cps/static/locale/tn/viewer.properties deleted file mode 100644 index eda077c3..00000000 --- a/cps/static/locale/tn/viewer.properties +++ /dev/null @@ -1,83 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. - -zoom.title=Zuma/gogela -open_file.title=Bula Faele -open_file_label=Bula - -# Secondary toolbar and context menu - - -# Document properties dialog box -document_properties_file_name=Leina la faele: -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_title=Leina: -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. - -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. - -# Find panel button title and messages -find_previous.title=Batla tiragalo e e fetileng ya setlhopha sa mafoko -find_next.title=Batla tiragalo e e latelang ya setlhopha sa mafoko -find_not_found=Setlhopha sa mafoko ga se a bonwa - -# Error panel labels -error_more_info=Tshedimosetso e Nngwe -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number - -# Predefined zoom values -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. - -# Loading indicator messages -loading_error_indicator=Phoso - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -password_ok=Siame - -web_fonts_disabled=Mefutatlhaka ya Webo ga e dire: ga e kgone go dirisa mofutatlhaka wa PDF o tsentsweng. diff --git a/cps/static/locale/tr/viewer.properties b/cps/static/locale/tr/viewer.properties index 792ea052..b189186c 100644 --- a/cps/static/locale/tr/viewer.properties +++ b/cps/static/locale/tr/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Küçük resimler findbar.title=Belgede bul findbar_label=Bul +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Sayfa {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=İptal printing_not_supported=Uyarı: Yazdırma bu tarayıcı tarafından tam olarak desteklenmemektedir. printing_not_ready=Uyarı: PDF tamamen yüklenmedi ve yazdırmaya hazır değil. web_fonts_disabled=Web fontları devre dışı: Gömülü PDF fontları kullanılamıyor. -document_colors_not_allowed=PDF belgelerinin kendi renklerini kullanması için izin verilmiyor: “Sayfalara kendi renklerini seçmesi için izin ver” tarayıcıda etkinleştirilmemiş. diff --git a/cps/static/locale/trs/viewer.properties b/cps/static/locale/trs/viewer.properties new file mode 100644 index 00000000..65252f7f --- /dev/null +++ b/cps/static/locale/trs/viewer.properties @@ -0,0 +1,213 @@ +# 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. + +# Main toolbar buttons (tooltips and alt text for images) +previous.title=Pajinâ gunâj rukùu +previous_label=Sa gachin +next.title=Pajinâ 'na' ñaan +next_label=Ne' ñaan + +# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. +page.title=Ñanj +# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number +# representing the total number of pages in the document. +of_pages=si'iaj {{pagesCount}} +# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" +# will be replaced by a number representing the currently visible page, +# respectively a number representing the total number of pages in the document. +page_of_pages=({{pageNumber}} of {{pagesCount}}) + +zoom_out.title=Nagi'iaj li' +zoom_out_label=Nagi'iaj li' +zoom_in.title=Nagi'iaj niko' +zoom_in_label=Nagi'iaj niko' +zoom.title=dàj nìko ma'an +presentation_mode.title=Naduno' daj ga ma +presentation_mode_label=Daj gà ma +open_file.title=Na'nïn' chrû ñanj +open_file_label=Na'nïn +print.title=Nari' ña du'ua +print_label=Nari' ñadu'ua +download.title=Nadunïnj +download_label=Nadunïnj +bookmark.title=Daj hua ma (Guxun' nej na'nïn' riña ventana nakàa) +bookmark_label=Daj hua ma + +# Secondary toolbar and context menu +tools.title=Rasun +tools_label=Nej rasùun +first_page.title=gun' riña pajina asiniin +first_page.label=Gun' riña pajina asiniin +first_page_label=Gun' riña pajina asiniin +last_page.title=Gun' riña pajina rukù ni'in +last_page.label=Gun' riña pajina rukù ni'inj +last_page_label=Gun' riña pajina rukù ni'inj +page_rotate_cw.title=Tanikaj ne' huat +page_rotate_cw.label=Tanikaj ne' huat +page_rotate_cw_label=Tanikaj ne' huat +page_rotate_ccw.title=Tanikaj ne' chînt' +page_rotate_ccw.label=Tanikaj ne' chint +page_rotate_ccw_label=Tanikaj ne' chint + +cursor_text_select_tool.title=Dugi'iaj sun' sa ganahui texto +cursor_text_select_tool_label=Nej rasun arajsun' da' nahui' texto +cursor_hand_tool.title=Nachrun' nej rasun +cursor_hand_tool_label=Sa rajsun ro'o' + +scroll_vertical.title=Garasun' dukuán runūu +scroll_vertical_label=Dukuán runūu +scroll_horizontal.title=Garasun' dukuán nikin' nahui +scroll_horizontal_label=Dukuán nikin' nahui +scroll_wrapped.title=Garasun' sa nachree +scroll_wrapped_label=Sa nachree + +spread_none.title=Si nagi'iaj nugun'un' nej pagina hua ninin +spread_none_label=Ni'io daj hua pagina +spread_odd.title=Nagi'iaj nugua'ant nej pajina +spread_odd_label=Ni'io' daj hua libro gurin +spread_even.title=Nakāj dugui' ngà nej pajinâ ayi'ì ngà da' hùi hùi +spread_even_label=Nahuin nìko nej + +# Document properties dialog box +document_properties.title=Nej sa nikāj ñanj… +document_properties_label=Nej sa nikāj ñanj… +document_properties_file_name=Si yugui archîbo: +document_properties_file_size=Dàj yachìj archîbo: +# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" +# will be replaced by the PDF file size in kilobytes, respectively in bytes. +document_properties_kb={{size_kb}} KB ({{size_b}} bytes) +# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" +# will be replaced by the PDF file size in megabytes, respectively in bytes. +document_properties_mb={{size_mb}} MB ({{size_b}} bytes) +document_properties_title=Si yugui: +document_properties_author=Sí girirà: +document_properties_subject=Dugui': +document_properties_keywords=Nej nuguan' huìi: +document_properties_creation_date=Gui gurugui' man: +document_properties_modification_date=Nuguan' nahuin nakà: +# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" +# will be replaced by the creation/modification date, and time, of the PDF file. +document_properties_date_string={{date}}, {{time}} +document_properties_creator=Guiri ro' +document_properties_producer=Sa ri PDF: +document_properties_version=PDF Version: +document_properties_page_count=Si Guendâ Pâjina: +document_properties_page_size=Dàj yachìj pâjina: +document_properties_page_size_unit_inches=riña +document_properties_page_size_unit_millimeters=mm +document_properties_page_size_orientation_portrait=nadu'ua +document_properties_page_size_orientation_landscape=dàj huaj +document_properties_page_size_name_a3=A3 +document_properties_page_size_name_a4=A4 +document_properties_page_size_name_letter=Da'ngà'a +document_properties_page_size_name_legal=Nuguan' a'nï'ïn +# LOCALIZATION NOTE (document_properties_page_size_dimension_string): +# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by +# the size, respectively their unit of measurement and orientation, of the (current) page. +document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}}) +# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string): +# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by +# the size, respectively their unit of measurement, name, and orientation, of the (current) page. +document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}}) +# LOCALIZATION NOTE (document_properties_linearized): The linearization status of +# the document; usually called "Fast Web View" in English locales of Adobe software. +document_properties_linearized=Nanèt chre ni'iajt riña Web: +document_properties_linearized_yes=Ga'ue +document_properties_linearized_no=Si ga'ue +document_properties_close=Narán + +# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by +# a numerical per cent value. +print_progress_percent={{progress}}% +print_progress_close=Duyichin' + +# Tooltips and alt text for side panel toolbar buttons +# (the _label strings are alt text for the buttons, the .title strings are +# tooltips) +toggle_sidebar.title=Nadunā barrâ nù yi'nïn +toggle_sidebar_label=Nadunā barrâ nù yi'nïn +findbar_label=Narì' + +# Thumbnails panel item (tooltip and alt text for images) +# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page +# number. +# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page +# number. + +# Find panel button title and messages +find_input.title=Narì' +find_previous_label=Sa gachîn +find_next_label=Ne' ñaan +find_highlight=Daran' sa ña'an +find_match_case_label=Match case +# LOCALIZATION NOTE (find_match_count): The supported plural forms are +# [one|two|few|many|other], with [other] as the default value. +# "{{current}}" and "{{total}}" will be replaced by a number representing the +# index of the currently active find result, respectively a number representing +# the total number of matches in the document. +find_match_count={[ plural(total) ]} +find_match_count[one]={{current}} si'iaj {{total}} guña gè huaj +find_match_count[two]={{current}} si'iaj {{total}} guña gè huaj +find_match_count[few]={{current}} si'iaj {{total}} guña gè huaj +find_match_count[many]={{current}} si'iaj {{total}} guña gè huaj +find_match_count[other]={{current}} of {{total}} matches +# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are +# [zero|one|two|few|many|other], with [other] as the default value. +# "{{limit}}" will be replaced by a numerical value. +find_match_count_limit={[ plural(limit) ]} +find_match_count_limit[zero]=Doj ngà da' {{limit}} nej sa nari' dugui'i +find_match_count_limit[one]=Doj ngà da' {{limit}} sa nari' dugui'i +find_match_count_limit[two]=Doj ngà da' {{limit}} nej sa nari' dugui'i +find_match_count_limit[few]=Doj ngà da' {{limit}} nej sa nari' dugui'i +find_match_count_limit[many]=Doj ngà da' {{limit}} nej sa nari' dugui'i +find_match_count_limit[other]=Doj ngà da' {{limit}} nej sa nari' dugui'i +find_not_found=Nu narì'ij nugua'anj + +# Error panel labels +error_more_info=Doj nuguan' a'min rayi'î nan +error_less_info=Dòj nuguan' a'min rayi'î nan +error_close=Narán +# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be +# replaced by the PDF.JS version and build ID. +error_version_info=PDF.js v{{version}} (build: {{build}}) +# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an +# english string describing the error. +error_message=Message: {{message}} +# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack +# trace. +error_stack=Naru'ui': {{stack}} +# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename +error_file=Archîbo: {{file}} +# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number +error_line=Lînia: {{line}} + +# Predefined zoom values +page_scale_actual=Dàj yàchi akuan' nín +# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a +# numerical scale value. +page_scale_percent={{scale}}% + +# Loading indicator messages +loading_error_indicator=Nitaj si hua hue'ej + +# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be +# replaced by the modification date, and time, of the annotation. + +# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. +# "{{type}}" will be replaced with an annotation type from a list defined in +# the PDF spec (32000-1:2008 Table 169 – Annotation types). +# Some common types are e.g.: "Check", "Text", "Comment", "Note" +password_ok=Ga'ue +password_cancel=Duyichin' + diff --git a/cps/static/locale/tsz/viewer.properties b/cps/static/locale/tsz/viewer.properties deleted file mode 100644 index c50a9428..00000000 --- a/cps/static/locale/tsz/viewer.properties +++ /dev/null @@ -1,75 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. - -zoom.title=jasi -open_file_label=Mitani - -# Secondary toolbar and context menu - - -# Document properties dialog box -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. - -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. - -# Find panel button title and messages - -# Error panel labels -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -error_version_info=PDF.js v{{version}} (build: {{build}}) -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number - -# Predefined zoom values -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. - -# Loading indicator messages - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -password_ok=Jo - diff --git a/cps/static/locale/uk/viewer.properties b/cps/static/locale/uk/viewer.properties index 6eb22772..7b3a69c5 100644 --- a/cps/static/locale/uk/viewer.properties +++ b/cps/static/locale/uk/viewer.properties @@ -62,8 +62,8 @@ page_rotate_ccw_label=Повернути проти годинникової с cursor_text_select_tool.title=Увімкнути інструмент вибору тексту cursor_text_select_tool_label=Інструмент вибору тексту -cursor_hand_tool.title=Увімкнути інструмент «Рука» -cursor_hand_tool_label=Інструмент «Рука» +cursor_hand_tool.title=Увімкнути інструмент "Рука" +cursor_hand_tool_label=Інструмент "Рука" scroll_vertical.title=Використовувати вертикальне прокручування scroll_vertical_label=Вертикальне прокручування @@ -148,6 +148,8 @@ thumbs_label=Ескізи findbar.title=Знайти в документі findbar_label=Пошук +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Сторінка {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -212,8 +214,8 @@ rendering_error=Під час виведення сторінки сталася # Predefined zoom values page_scale_width=За шириною -page_scale_fit=Умістити -page_scale_auto=Авто-масштаб +page_scale_fit=Вмістити +page_scale_auto=Автомасштаб page_scale_actual=Дійсний розмір # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a # numerical scale value. @@ -243,4 +245,3 @@ password_cancel=Скасувати printing_not_supported=Попередження: Цей браузер не повністю підтримує друк. printing_not_ready=Попередження: PDF не повністю завантажений для друку. web_fonts_disabled=Веб-шрифти вимкнено: неможливо використати вбудовані у PDF шрифти. -document_colors_not_allowed=PDF-документам не дозволено використовувати власні кольори: в браузері вимкнено параметр «Дозволити сторінкам використовувати власні кольори». diff --git a/cps/static/locale/ur/viewer.properties b/cps/static/locale/ur/viewer.properties index 31928bcb..162ca147 100644 --- a/cps/static/locale/ur/viewer.properties +++ b/cps/static/locale/ur/viewer.properties @@ -60,8 +60,20 @@ page_rotate_ccw.title=ضد گھڑی وار گھمائیں page_rotate_ccw.label=ضد گھڑی وار گھمائیں page_rotate_ccw_label=ضد گھڑی وار گھمائیں +cursor_text_select_tool.title=متن کے انتخاب کے ٹول کو فعال بناے +cursor_text_select_tool_label=متن کے انتخاب کا آلہ +cursor_hand_tool.title=ہینڈ ٹول کو فعال بناییں +cursor_hand_tool_label=ہاتھ کا آلہ +scroll_vertical.title=عمودی اسکرولنگ کا استعمال کریں +scroll_vertical_label=عمودی اسکرولنگ +scroll_horizontal.title=افقی سکرولنگ کا استعمال کریں +scroll_horizontal_label=افقی سکرولنگ +spread_none.title=صفحہ پھیلانے میں شامل نہ ہوں +spread_none_label=کوئی پھیلاؤ نہیں +spread_odd_label=تاک پھیلاؤ +spread_even_label=جفت پھیلاؤ # Document properties dialog box document_properties.title=دستاویز خواص… @@ -91,6 +103,7 @@ document_properties_page_size=صفہ کی لمبائ: document_properties_page_size_unit_inches=میں document_properties_page_size_unit_millimeters=mm document_properties_page_size_orientation_portrait=عمودی انداز +document_properties_page_size_orientation_landscape=افقى انداز document_properties_page_size_name_a3=A3 document_properties_page_size_name_a4=A4 document_properties_page_size_name_letter=خط @@ -102,8 +115,10 @@ document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} # LOCALIZATION NOTE (document_properties_page_size_dimension_name_string): # "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by # the size, respectively their unit of measurement, name, and orientation, of the (current) page. +document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} {{name}} {{orientation}} # LOCALIZATION NOTE (document_properties_linearized): The linearization status of # the document; usually called "Fast Web View" in English locales of Adobe software. +document_properties_linearized=تیز ویب دیکھیں: document_properties_linearized_yes=ہاں document_properties_linearized_no=نہیں document_properties_close=بند کریں @@ -128,6 +143,8 @@ thumbs_label=مجمل findbar.title=دستاویز میں ڈھونڈیں findbar_label=ڈھونڈیں +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=صفحہ {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -145,6 +162,7 @@ find_next.title=فقرے کا اگلہ وقوع ڈھونڈیں find_next_label=آگے find_highlight=تمام نمایاں کریں find_match_case_label=حروف مشابہ کریں +find_entire_word_label=تمام الفاظ find_reached_top=صفحہ کے شروع پر پہنچ گیا، نیچے سے جاری کیا find_reached_bottom=صفحہ کے اختتام پر پہنچ گیا، اوپر سے جاری کیا # LOCALIZATION NOTE (find_match_count): The supported plural forms are @@ -152,9 +170,21 @@ find_reached_bottom=صفحہ کے اختتام پر پہنچ گیا، اوپر # "{{current}}" and "{{total}}" will be replaced by a number representing the # index of the currently active find result, respectively a number representing # the total number of matches in the document. +find_match_count={[ plural(total) ]} +find_match_count[one]={{total}} میچ کا {{current}} +find_match_count[few]={{total}} میچوں میں سے {{current}} +find_match_count[many]={{total}} میچوں میں سے {{current}} +find_match_count[other]={{total}} میچوں میں سے {{current}} # LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are # [zero|one|two|few|many|other], with [other] as the default value. # "{{limit}}" will be replaced by a numerical value. +find_match_count_limit={[ plural(total) ]} +find_match_count_limit[zero]={{limit}} سے زیادہ میچ +find_match_count_limit[one]={{limit}} سے زیادہ میچ +find_match_count_limit[two]={{limit}} سے زیادہ میچ +find_match_count_limit[few]={{limit}} سے زیادہ میچ +find_match_count_limit[many]={{limit}} سے زیادہ میچ +find_match_count_limit[other]={{limit}} سے زیادہ میچ find_not_found=فقرا نہیں ملا # Error panel labels @@ -194,6 +224,7 @@ unexpected_response_error=غیرمتوقع پیش کار جواب # LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be # replaced by the modification date, and time, of the annotation. +annotation_date_string={{date}}.{{time}} # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # "{{type}}" will be replaced with an annotation type from a list defined in @@ -202,10 +233,9 @@ unexpected_response_error=غیرمتوقع پیش کار جواب text_annotation_type.alt=[{{type}} نوٹ] password_label=PDF مسل کھولنے کے لیے پاس ورڈ داخل کریں. password_invalid=ناجائز پاس ورڈ. براےؑ کرم دوبارہ کوشش کریں. -password_ok=سہی +password_ok=ٹھیک ہے password_cancel=منسوخ کریں printing_not_supported=تنبیہ:چھاپنا اس براؤزر پر پوری طرح معاونت شدہ نہیں ہے۔ printing_not_ready=تنبیہ: PDF چھپائی کے لیے پوری طرح لوڈ نہیں ہوئی۔ web_fonts_disabled=ویب فانٹ نا اہل ہیں: شامل PDF فانٹ استعمال کرنے میں ناکام۔ -document_colors_not_allowed=PDF دستاویزات کو اپنے رنگ استعمال کرنے کی اجازت نہیں: 'صفحات کو اپنے رنگ چنیں' کی اِجازت براؤزر میں بے عمل ہے۔ diff --git a/cps/static/locale/uz/viewer.properties b/cps/static/locale/uz/viewer.properties index e451c74f..6ad24319 100644 --- a/cps/static/locale/uz/viewer.properties +++ b/cps/static/locale/uz/viewer.properties @@ -166,4 +166,3 @@ password_ok=OK printing_not_supported=Diqqat: chop qilish bruzer tomonidan toʻliq qoʻllab-quvvatlanmaydi. printing_not_ready=Diqqat: PDF fayl chop qilish uchun toʻliq yuklanmadi. web_fonts_disabled=Veb shriftlar oʻchirilgan: ichki PDF shriftlardan foydalanib boʻlmmaydi. -document_colors_not_allowed=PDF hujjat oʻzining ranglaridan foydalanishga ruxsat bermaydi: 'Sahifalarga oʻzining rangidan foydalanishga ruxsat berish' ushbu brauzerda oʻchirib qoʻyilgan. diff --git a/cps/static/locale/vi/viewer.properties b/cps/static/locale/vi/viewer.properties index 39d4b2bd..64ae6e3a 100644 --- a/cps/static/locale/vi/viewer.properties +++ b/cps/static/locale/vi/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=Ảnh thu nhỏ findbar.title=Tìm trong tài liệu findbar_label=Tìm +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=Trang {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=Hủy bỏ printing_not_supported=Cảnh báo: In ấn không được hỗ trợ đầy đủ ở trình duyệt này. printing_not_ready=Cảnh báo: PDF chưa được tải hết để in. web_fonts_disabled=Phông chữ Web bị vô hiệu hóa: không thể sử dụng các phông chữ PDF được nhúng. -document_colors_not_allowed=Tài liệu PDF không được cho phép dùng màu riêng: 'Cho phép trang chọn màu riêng' đã bị tắt trên trình duyệt. diff --git a/cps/static/locale/xh/viewer.properties b/cps/static/locale/xh/viewer.properties index 1fa394bb..52cd75e5 100644 --- a/cps/static/locale/xh/viewer.properties +++ b/cps/static/locale/xh/viewer.properties @@ -181,4 +181,3 @@ password_cancel=Rhoxisa printing_not_supported=Isilumkiso: Ukuprinta akuxhaswa ngokupheleleyo yile bhrawuza. printing_not_ready=Isilumkiso: IPDF ayihlohlwanga ngokupheleleyo ukwenzela ukuprinta. web_fonts_disabled=Iifonti zewebhu ziqhwalelisiwe: ayikwazi ukusebenzisa iifonti ze-PDF ezincanyathelisiweyo. -document_colors_not_allowed=Amaxwebhu ePDF akavumelekanga ukuba asebenzise imibala yawo: 'Ukuvumela amaphepha ukuba asebenzise eyawo imibala' kuvaliwe ukuba kungasebenzi kwibhrawuza. diff --git a/cps/static/locale/zam/viewer.properties b/cps/static/locale/zam/viewer.properties deleted file mode 100644 index b9a20557..00000000 --- a/cps/static/locale/zam/viewer.properties +++ /dev/null @@ -1,90 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. - -zoom_out.title=Lii lut ah -zoom_out_label=Lii lut ah -zoom_in.title=Lii mach ah -zoom_in_label=Lii mach ah -zoom.title=Xha niey -open_file.title=Xhal yets ndedizh -open_file_label=Xhal - -# Secondary toolbar and context menu -tools.title=Koo lii chel -tools_label=Koo lii chel - - -# Document properties dialog box -document_properties.title=Sá nìe yêtz... -document_properties_label=Sá nìe yêtz... -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -document_properties_kb={{size_kb}} KB ({{size_b}} bytes) -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_mb={{size_mb}} MB ({{size_b}} bytes) -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. -document_properties_close=TòɁw - -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) -attachments.title=Mb-&lòɁ yêtz -thumbs_label=Thumbnails -findbar.title=GòzăɁl lèɁn yêtz - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. - -# Find panel button title and messages - -# Error panel labels -error_close=TòɁw -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number - -# Predefined zoom values -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. - -# Loading indicator messages - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -password_ok=Bliy - diff --git a/cps/static/locale/zh-CN/viewer.properties b/cps/static/locale/zh-CN/viewer.properties index 5c4c5367..214c746f 100644 --- a/cps/static/locale/zh-CN/viewer.properties +++ b/cps/static/locale/zh-CN/viewer.properties @@ -148,6 +148,8 @@ thumbs_label=缩略图 findbar.title=在文档中查找 findbar_label=查找 +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=页码 {{page}} # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. @@ -243,4 +245,3 @@ password_cancel=取消 printing_not_supported=警告:此浏览器尚未完整支持打印功能。 printing_not_ready=警告:此 PDF 未完成载入,无法打印。 web_fonts_disabled=Web 字体已被禁用:无法使用嵌入的 PDF 字体。 -document_colors_not_allowed=PDF 文档无法使用自己的颜色:浏览器中“允许页面选择自己的颜色”的选项未被勾选。 diff --git a/cps/static/locale/zh-TW/viewer.properties b/cps/static/locale/zh-TW/viewer.properties index 70e7a456..55626cab 100644 --- a/cps/static/locale/zh-TW/viewer.properties +++ b/cps/static/locale/zh-TW/viewer.properties @@ -98,7 +98,7 @@ document_properties_creation_date=建立日期: document_properties_modification_date=修改日期: # LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" # will be replaced by the creation/modification date, and time, of the PDF file. -document_properties_date_string={{date}}, {{time}} +document_properties_date_string={{date}} {{time}} document_properties_creator=建立者: document_properties_producer=PDF 產生器: document_properties_version=PDF 版本: @@ -148,10 +148,12 @@ thumbs_label=縮圖 findbar.title=在文件中尋找 findbar_label=尋找 +# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number. +page_canvas=第 {{page}} 頁 # Thumbnails panel item (tooltip and alt text for images) # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # number. -thumb_page_title=頁 {{page}} +thumb_page_title=第 {{page}} 頁 # LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page # number. thumb_page_canvas=頁 {{page}} 的縮圖 @@ -243,4 +245,3 @@ password_cancel=取消 printing_not_supported=警告: 此瀏覽器未完整支援列印功能。 printing_not_ready=警告: 此 PDF 未完成下載以供列印。 web_fonts_disabled=已停用網路字型 (Web fonts): 無法使用 PDF 內嵌字型。 -document_colors_not_allowed=瀏覽器的「優先使用網頁指定的色彩」未被勾選,PDF 文件無法使用自己的色彩。 diff --git a/cps/static/locale/zu/viewer.properties b/cps/static/locale/zu/viewer.properties deleted file mode 100644 index 8fc77f28..00000000 --- a/cps/static/locale/zu/viewer.properties +++ /dev/null @@ -1,131 +0,0 @@ -# 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. - -# Main toolbar buttons (tooltips and alt text for images) -previous.title=Ikhasi eledlule -previous_label=Okudlule -next.title=Ikhasi elilandelayo -next_label=Okulandelayo - -# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. -# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number -# representing the total number of pages in the document. -# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" -# will be replaced by a number representing the currently visible page, -# respectively a number representing the total number of pages in the document. - -zoom_out.title=Hlehlisela emuva -zoom_out_label=Hlehlisela emuva -zoom_in.title=Sondeza eduze -zoom_in_label=Sondeza eduze -zoom.title=Lwiza -presentation_mode.title=Guqulela kwindlela yesethulo -presentation_mode_label=Indlelo yesethulo -open_file.title=Vula ifayela -open_file_label=Vula -print.title=Phrinta -print_label=Phrinta -download.title=Landa -download_label=Landa -bookmark.title=Ukubuka kwamanje (kopisha noma vula kwifasitela elisha) -bookmark_label=Ukubuka kwamanje - -# Secondary toolbar and context menu - - -# Document properties dialog box -document_properties_file_name=Igama lefayela: -# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" -# will be replaced by the PDF file size in kilobytes, respectively in bytes. -# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" -# will be replaced by the PDF file size in megabytes, respectively in bytes. -document_properties_title=Isihloko: -# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" -# will be replaced by the creation/modification date, and time, of the PDF file. - -# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by -# a numerical per cent value. - -# Tooltips and alt text for side panel toolbar buttons -# (the _label strings are alt text for the buttons, the .title strings are -# tooltips) -toggle_sidebar.title=I-toggle yebha yaseceleni -toggle_sidebar_label=i-toggle yebha yaseceleni -document_outline_label=Umugqa waseceleni wedokhumenti -thumbs.title=Bonisa izithombe ezincane -thumbs_label=Izithonjana -findbar.title=Thola kwidokhumenti - -# Thumbnails panel item (tooltip and alt text for images) -# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page -# number. -thumb_page_title=Ikhasi {{page}} -# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page -# number. -thumb_page_canvas=Isithonjana sekhasi {{page}} - -# Find panel button title and messages -find_previous.title=Thola indawo eyandulelayo okuvela kuyo lomshwana -find_previous_label=Okudlulile -find_next.title=Thola enye indawo okuvela kuyo lomshwana -find_next_label=Okulandelayo -find_highlight=Gqamisa konke -find_match_case_label=Fanisa ikheyisi -find_reached_top=Finyelele phezulu kwidokhumenti, qhubeka kusukaphansi -find_reached_bottom=Ifinyelele ekupheleni kwedokhumenti, qhubeka kusukaphezulu -find_not_found=Umshwana awutholakali - -# Error panel labels -error_more_info=Ukwaziswa Okwengeziwe -error_less_info=Ukwazi okuncane -# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be -# replaced by the PDF.JS version and build ID. -error_version_info=PDF.js v{{version}} (build: {{build}}) -# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an -# english string describing the error. -error_message=Umlayezo: {{message}} -# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack -# trace. -error_stack=Isitaki: {{stack}} -# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename -error_file=Ifayela: {{file}} -# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number -error_line=Umugqa: {{line}} -rendering_error=Iphutha lenzekile uma kunikwa ikhasi. - -# Predefined zoom values -page_scale_width=Ububanzi bekhasi -page_scale_fit=Ukulingana kwekhasi -page_scale_auto=Ukulwiza okuzenzekalelayo -page_scale_actual=Usayizi Wangempela -# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a -# numerical scale value. - -# Loading indicator messages -loading_error_indicator=Iphutha -loading_error=Kwenzeke iphutha uma kulayishwa i-PDF. -invalid_file_error=Ifayela le-PDF elingavumelekile noma elonakele. -missing_file_error=Ifayela le-PDF elilahlekile. - -# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. -# "{{type}}" will be replaced with an annotation type from a list defined in -# the PDF spec (32000-1:2008 Table 169 – Annotation types). -# Some common types are e.g.: "Check", "Text", "Comment", "Note" -text_annotation_type.alt=[Amazwibela e-{{type}}] -password_ok=Kulungile - -printing_not_supported=Isixwayiso: Ukuphrinta akuxhasiwe yilesisiphequluli ngokugcwele. -printing_not_ready=Isixwayiso: I-PDF ayikalayishwa ngokuphelele yiPhrinta. -web_fonts_disabled=Amafonti e-webhu akutshaziwe: ayikwazi ukusebenzisa amafonti abekiwe e-PDF.\u0020 -document_colors_not_allowed=Amadokhumenti we-PDF awavumelekile ukusebenzisa imibalo yayo: 'Vumela amakhasi ukukhetha imibala yayo' ayisebenzi kusiphequluli. diff --git a/cps/templates/readpdf.html b/cps/templates/readpdf.html index ceee5127..7af417ea 100644 --- a/cps/templates/readpdf.html +++ b/cps/templates/readpdf.html @@ -31,7 +31,6 @@ See https://github.com/adobe-type-tools/cmap-resources - @@ -65,6 +64,9 @@ See https://github.com/adobe-type-tools/cmap-resources Attachments + + Layers + @@ -74,6 +76,8 @@ See https://github.com/adobe-type-tools/cmap-resources + + @@ -123,6 +127,7 @@ See https://github.com/adobe-type-tools/cmap-resources Print + Download @@ -210,7 +215,7 @@ See https://github.com/adobe-type-tools/cmap-resources Next - + @@ -225,6 +230,7 @@ See https://github.com/adobe-type-tools/cmap-resources Print + Download