@wordpress/global-styles-ui 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (701) hide show
  1. package/LICENSE.md +788 -0
  2. package/README.md +48 -0
  3. package/build/background-panel.js +62 -0
  4. package/build/background-panel.js.map +7 -0
  5. package/build/block-preview-panel.js +90 -0
  6. package/build/block-preview-panel.js.map +7 -0
  7. package/build/color-indicator-wrapper.js +55 -0
  8. package/build/color-indicator-wrapper.js.map +7 -0
  9. package/build/color-palette-panel.js +123 -0
  10. package/build/color-palette-panel.js.map +7 -0
  11. package/build/color-preview.js +94 -0
  12. package/build/color-preview.js.map +7 -0
  13. package/build/color-variations.js +41 -0
  14. package/build/color-variations.js.map +7 -0
  15. package/build/confirm-reset-shadow-dialog.js +55 -0
  16. package/build/confirm-reset-shadow-dialog.js.map +7 -0
  17. package/build/context.js +37 -0
  18. package/build/context.js.map +7 -0
  19. package/build/dimensions-panel.js +89 -0
  20. package/build/dimensions-panel.js.map +7 -0
  21. package/build/font-families.js +114 -0
  22. package/build/font-families.js.map +7 -0
  23. package/build/font-family-item.js +48 -0
  24. package/build/font-family-item.js.map +7 -0
  25. package/build/font-library-modal/collection-font-variant.js +75 -0
  26. package/build/font-library-modal/collection-font-variant.js.map +7 -0
  27. package/build/font-library-modal/context.js +386 -0
  28. package/build/font-library-modal/context.js.map +7 -0
  29. package/build/font-library-modal/font-card.js +81 -0
  30. package/build/font-library-modal/font-card.js.map +7 -0
  31. package/build/font-library-modal/font-collection.js +510 -0
  32. package/build/font-library-modal/font-collection.js.map +7 -0
  33. package/build/font-library-modal/font-demo.js +111 -0
  34. package/build/font-library-modal/font-demo.js.map +7 -0
  35. package/build/font-library-modal/google-fonts-confirm-dialog.js +58 -0
  36. package/build/font-library-modal/google-fonts-confirm-dialog.js.map +7 -0
  37. package/build/font-library-modal/index.js +110 -0
  38. package/build/font-library-modal/index.js.map +7 -0
  39. package/build/font-library-modal/installed-fonts.js +453 -0
  40. package/build/font-library-modal/installed-fonts.js.map +7 -0
  41. package/build/font-library-modal/lib/inflate.js +2628 -0
  42. package/build/font-library-modal/lib/inflate.js.map +7 -0
  43. package/build/font-library-modal/lib/lib-font.browser.d.js +33 -0
  44. package/build/font-library-modal/lib/lib-font.browser.d.js.map +7 -0
  45. package/build/font-library-modal/lib/lib-font.browser.js +3788 -0
  46. package/build/font-library-modal/lib/lib-font.browser.js.map +7 -0
  47. package/build/font-library-modal/lib/unbrotli.js +3678 -0
  48. package/build/font-library-modal/lib/unbrotli.js.map +7 -0
  49. package/build/font-library-modal/library-font-details.js +63 -0
  50. package/build/font-library-modal/library-font-details.js.map +7 -0
  51. package/build/font-library-modal/library-font-variant.js +81 -0
  52. package/build/font-library-modal/library-font-variant.js.map +7 -0
  53. package/build/font-library-modal/resolvers.js +115 -0
  54. package/build/font-library-modal/resolvers.js.map +7 -0
  55. package/build/font-library-modal/types.js +17 -0
  56. package/build/font-library-modal/types.js.map +7 -0
  57. package/build/font-library-modal/upload-fonts.js +207 -0
  58. package/build/font-library-modal/upload-fonts.js.map +7 -0
  59. package/build/font-library-modal/utils/constants.js +49 -0
  60. package/build/font-library-modal/utils/constants.js.map +7 -0
  61. package/build/font-library-modal/utils/filter-fonts.js +39 -0
  62. package/build/font-library-modal/utils/filter-fonts.js.map +7 -0
  63. package/build/font-library-modal/utils/fonts-outline.js +51 -0
  64. package/build/font-library-modal/utils/fonts-outline.js.map +7 -0
  65. package/build/font-library-modal/utils/index.js +274 -0
  66. package/build/font-library-modal/utils/index.js.map +7 -0
  67. package/build/font-library-modal/utils/make-families-from-faces.js +45 -0
  68. package/build/font-library-modal/utils/make-families-from-faces.js.map +7 -0
  69. package/build/font-library-modal/utils/preview-styles.js +119 -0
  70. package/build/font-library-modal/utils/preview-styles.js.map +7 -0
  71. package/build/font-library-modal/utils/set-immutably.js +40 -0
  72. package/build/font-library-modal/utils/set-immutably.js.map +7 -0
  73. package/build/font-library-modal/utils/sort-font-faces.js +59 -0
  74. package/build/font-library-modal/utils/sort-font-faces.js.map +7 -0
  75. package/build/font-library-modal/utils/toggleFont.js +67 -0
  76. package/build/font-library-modal/utils/toggleFont.js.map +7 -0
  77. package/build/font-sizes/confirm-delete-font-size-dialog.js +60 -0
  78. package/build/font-sizes/confirm-delete-font-size-dialog.js.map +7 -0
  79. package/build/font-sizes/confirm-reset-font-sizes-dialog.js +55 -0
  80. package/build/font-sizes/confirm-reset-font-sizes-dialog.js.map +7 -0
  81. package/build/font-sizes/font-size-preview.js +50 -0
  82. package/build/font-sizes/font-size-preview.js.map +7 -0
  83. package/build/font-sizes/font-size.js +261 -0
  84. package/build/font-sizes/font-size.js.map +7 -0
  85. package/build/font-sizes/font-sizes-count.js +40 -0
  86. package/build/font-sizes/font-sizes-count.js.map +7 -0
  87. package/build/font-sizes/font-sizes.js +215 -0
  88. package/build/font-sizes/font-sizes.js.map +7 -0
  89. package/build/font-sizes/rename-font-size-dialog.js +96 -0
  90. package/build/font-sizes/rename-font-size-dialog.js.map +7 -0
  91. package/build/global-styles-ui.js +213 -0
  92. package/build/global-styles-ui.js.map +7 -0
  93. package/build/gradients-palette-panel.js +133 -0
  94. package/build/gradients-palette-panel.js.map +7 -0
  95. package/build/highlighted-colors.js +57 -0
  96. package/build/highlighted-colors.js.map +7 -0
  97. package/build/hooks.js +176 -0
  98. package/build/hooks.js.map +7 -0
  99. package/build/icon-with-current-color.js +56 -0
  100. package/build/icon-with-current-color.js.map +7 -0
  101. package/build/index.js +51 -0
  102. package/build/index.js.map +7 -0
  103. package/build/lock-unlock.js +35 -0
  104. package/build/lock-unlock.js.map +7 -0
  105. package/build/navigation-button.js +52 -0
  106. package/build/navigation-button.js.map +7 -0
  107. package/build/pagination/index.js +133 -0
  108. package/build/pagination/index.js.map +7 -0
  109. package/build/palette.js +93 -0
  110. package/build/palette.js.map +7 -0
  111. package/build/preset-colors.js +40 -0
  112. package/build/preset-colors.js.map +7 -0
  113. package/build/preview-colors.js +86 -0
  114. package/build/preview-colors.js.map +7 -0
  115. package/build/preview-hooks.js +60 -0
  116. package/build/preview-hooks.js.map +7 -0
  117. package/build/preview-styles.js +219 -0
  118. package/build/preview-styles.js.map +7 -0
  119. package/build/preview-typography.js +72 -0
  120. package/build/preview-typography.js.map +7 -0
  121. package/build/preview-wrapper.js +102 -0
  122. package/build/preview-wrapper.js.map +7 -0
  123. package/build/provider.js +54 -0
  124. package/build/provider.js.map +7 -0
  125. package/build/root-menu.js +72 -0
  126. package/build/root-menu.js.map +7 -0
  127. package/build/screen-background.js +58 -0
  128. package/build/screen-background.js.map +7 -0
  129. package/build/screen-block-list.js +160 -0
  130. package/build/screen-block-list.js.map +7 -0
  131. package/build/screen-block.js +316 -0
  132. package/build/screen-block.js.map +7 -0
  133. package/build/screen-color-palette.js +64 -0
  134. package/build/screen-color-palette.js.map +7 -0
  135. package/build/screen-colors.js +85 -0
  136. package/build/screen-colors.js.map +7 -0
  137. package/build/screen-css.js +68 -0
  138. package/build/screen-css.js.map +7 -0
  139. package/build/screen-header.js +61 -0
  140. package/build/screen-header.js.map +7 -0
  141. package/build/screen-layout.js +54 -0
  142. package/build/screen-layout.js.map +7 -0
  143. package/build/screen-revisions/index.js +147 -0
  144. package/build/screen-revisions/index.js.map +7 -0
  145. package/build/screen-revisions/revisions-buttons.js +198 -0
  146. package/build/screen-revisions/revisions-buttons.js.map +7 -0
  147. package/build/screen-revisions/types.js +17 -0
  148. package/build/screen-revisions/types.js.map +7 -0
  149. package/build/screen-revisions/use-global-styles-revisions.js +163 -0
  150. package/build/screen-revisions/use-global-styles-revisions.js.map +7 -0
  151. package/build/screen-root.js +134 -0
  152. package/build/screen-root.js.map +7 -0
  153. package/build/screen-shadows.js +49 -0
  154. package/build/screen-shadows.js.map +7 -0
  155. package/build/screen-style-variations.js +52 -0
  156. package/build/screen-style-variations.js.map +7 -0
  157. package/build/screen-typography-element.js +167 -0
  158. package/build/screen-typography-element.js.map +7 -0
  159. package/build/screen-typography.js +65 -0
  160. package/build/screen-typography.js.map +7 -0
  161. package/build/shadow-utils.js +125 -0
  162. package/build/shadow-utils.js.map +7 -0
  163. package/build/shadows-edit-panel.js +503 -0
  164. package/build/shadows-edit-panel.js.map +7 -0
  165. package/build/shadows-panel.js +203 -0
  166. package/build/shadows-panel.js.map +7 -0
  167. package/build/size-control/index.js +86 -0
  168. package/build/size-control/index.js.map +7 -0
  169. package/build/style-variations-container.js +130 -0
  170. package/build/style-variations-container.js.map +7 -0
  171. package/build/style-variations-content.js +52 -0
  172. package/build/style-variations-content.js.map +7 -0
  173. package/build/style-variations.js +41 -0
  174. package/build/style-variations.js.map +7 -0
  175. package/build/subtitle.js +33 -0
  176. package/build/subtitle.js.map +7 -0
  177. package/build/typography-elements.js +117 -0
  178. package/build/typography-elements.js.map +7 -0
  179. package/build/typography-example.js +79 -0
  180. package/build/typography-example.js.map +7 -0
  181. package/build/typography-panel.js +64 -0
  182. package/build/typography-panel.js.map +7 -0
  183. package/build/typography-preview.js +70 -0
  184. package/build/typography-preview.js.map +7 -0
  185. package/build/typography-variations.js +41 -0
  186. package/build/typography-variations.js.map +7 -0
  187. package/build/utils.js +210 -0
  188. package/build/utils.js.map +7 -0
  189. package/build/variations/variation.js +116 -0
  190. package/build/variations/variation.js.map +7 -0
  191. package/build/variations/variations-color.js +64 -0
  192. package/build/variations/variations-color.js.map +7 -0
  193. package/build/variations/variations-panel.js +69 -0
  194. package/build/variations/variations-panel.js.map +7 -0
  195. package/build/variations/variations-typography.js +80 -0
  196. package/build/variations/variations-typography.js.map +7 -0
  197. package/build/with-global-styles-provider.js +48 -0
  198. package/build/with-global-styles-provider.js.map +7 -0
  199. package/build-module/background-panel.js +38 -0
  200. package/build-module/background-panel.js.map +7 -0
  201. package/build-module/block-preview-panel.js +70 -0
  202. package/build-module/block-preview-panel.js.map +7 -0
  203. package/build-module/color-indicator-wrapper.js +25 -0
  204. package/build-module/color-indicator-wrapper.js.map +7 -0
  205. package/build-module/color-palette-panel.js +97 -0
  206. package/build-module/color-palette-panel.js.map +7 -0
  207. package/build-module/color-preview.js +70 -0
  208. package/build-module/color-preview.js.map +7 -0
  209. package/build-module/color-variations.js +7 -0
  210. package/build-module/color-variations.js.map +7 -0
  211. package/build-module/confirm-reset-shadow-dialog.js +35 -0
  212. package/build-module/confirm-reset-shadow-dialog.js.map +7 -0
  213. package/build-module/context.js +13 -0
  214. package/build-module/context.js.map +7 -0
  215. package/build-module/dimensions-panel.js +69 -0
  216. package/build-module/dimensions-panel.js.map +7 -0
  217. package/build-module/font-families.js +92 -0
  218. package/build-module/font-families.js.map +7 -0
  219. package/build-module/font-family-item.js +32 -0
  220. package/build-module/font-family-item.js.map +7 -0
  221. package/build-module/font-library-modal/collection-font-variant.js +45 -0
  222. package/build-module/font-library-modal/collection-font-variant.js.map +7 -0
  223. package/build-module/font-library-modal/context.js +382 -0
  224. package/build-module/font-library-modal/context.js.map +7 -0
  225. package/build-module/font-library-modal/font-card.js +57 -0
  226. package/build-module/font-library-modal/font-card.js.map +7 -0
  227. package/build-module/font-library-modal/font-collection.js +510 -0
  228. package/build-module/font-library-modal/font-collection.js.map +7 -0
  229. package/build-module/font-library-modal/font-demo.js +94 -0
  230. package/build-module/font-library-modal/font-demo.js.map +7 -0
  231. package/build-module/font-library-modal/google-fonts-confirm-dialog.js +45 -0
  232. package/build-module/font-library-modal/google-fonts-confirm-dialog.js.map +7 -0
  233. package/build-module/font-library-modal/index.js +83 -0
  234. package/build-module/font-library-modal/index.js.map +7 -0
  235. package/build-module/font-library-modal/installed-fonts.js +442 -0
  236. package/build-module/font-library-modal/installed-fonts.js.map +7 -0
  237. package/build-module/font-library-modal/lib/inflate.js +2636 -0
  238. package/build-module/font-library-modal/lib/inflate.js.map +7 -0
  239. package/build-module/font-library-modal/lib/lib-font.browser.d.js +9 -0
  240. package/build-module/font-library-modal/lib/lib-font.browser.d.js.map +7 -0
  241. package/build-module/font-library-modal/lib/lib-font.browser.js +3754 -0
  242. package/build-module/font-library-modal/lib/lib-font.browser.js.map +7 -0
  243. package/build-module/font-library-modal/lib/unbrotli.js +3686 -0
  244. package/build-module/font-library-modal/lib/unbrotli.js.map +7 -0
  245. package/build-module/font-library-modal/library-font-details.js +36 -0
  246. package/build-module/font-library-modal/library-font-details.js.map +7 -0
  247. package/build-module/font-library-modal/library-font-variant.js +51 -0
  248. package/build-module/font-library-modal/library-font-variant.js.map +7 -0
  249. package/build-module/font-library-modal/resolvers.js +76 -0
  250. package/build-module/font-library-modal/resolvers.js.map +7 -0
  251. package/build-module/font-library-modal/types.js +1 -0
  252. package/build-module/font-library-modal/types.js.map +7 -0
  253. package/build-module/font-library-modal/upload-fonts.js +187 -0
  254. package/build-module/font-library-modal/upload-fonts.js.map +7 -0
  255. package/build-module/font-library-modal/utils/constants.js +23 -0
  256. package/build-module/font-library-modal/utils/constants.js.map +7 -0
  257. package/build-module/font-library-modal/utils/filter-fonts.js +19 -0
  258. package/build-module/font-library-modal/utils/filter-fonts.js.map +7 -0
  259. package/build-module/font-library-modal/utils/fonts-outline.js +26 -0
  260. package/build-module/font-library-modal/utils/fonts-outline.js.map +7 -0
  261. package/build-module/font-library-modal/utils/index.js +238 -0
  262. package/build-module/font-library-modal/utils/index.js.map +7 -0
  263. package/build-module/font-library-modal/utils/make-families-from-faces.js +25 -0
  264. package/build-module/font-library-modal/utils/make-families-from-faces.js.map +7 -0
  265. package/build-module/font-library-modal/utils/preview-styles.js +92 -0
  266. package/build-module/font-library-modal/utils/preview-styles.js.map +7 -0
  267. package/build-module/font-library-modal/utils/set-immutably.js +16 -0
  268. package/build-module/font-library-modal/utils/set-immutably.js.map +7 -0
  269. package/build-module/font-library-modal/utils/sort-font-faces.js +35 -0
  270. package/build-module/font-library-modal/utils/sort-font-faces.js.map +7 -0
  271. package/build-module/font-library-modal/utils/toggleFont.js +43 -0
  272. package/build-module/font-library-modal/utils/toggleFont.js.map +7 -0
  273. package/build-module/font-sizes/confirm-delete-font-size-dialog.js +40 -0
  274. package/build-module/font-sizes/confirm-delete-font-size-dialog.js.map +7 -0
  275. package/build-module/font-sizes/confirm-reset-font-sizes-dialog.js +35 -0
  276. package/build-module/font-sizes/confirm-reset-font-sizes-dialog.js.map +7 -0
  277. package/build-module/font-sizes/font-size-preview.js +30 -0
  278. package/build-module/font-sizes/font-size-preview.js.map +7 -0
  279. package/build-module/font-sizes/font-size.js +241 -0
  280. package/build-module/font-sizes/font-size.js.map +7 -0
  281. package/build-module/font-sizes/font-sizes-count.js +25 -0
  282. package/build-module/font-sizes/font-sizes-count.js.map +7 -0
  283. package/build-module/font-sizes/font-sizes.js +200 -0
  284. package/build-module/font-sizes/font-sizes.js.map +7 -0
  285. package/build-module/font-sizes/rename-font-size-dialog.js +82 -0
  286. package/build-module/font-sizes/rename-font-size-dialog.js.map +7 -0
  287. package/build-module/global-styles-ui.js +182 -0
  288. package/build-module/global-styles-ui.js.map +7 -0
  289. package/build-module/gradients-palette-panel.js +118 -0
  290. package/build-module/gradients-palette-panel.js.map +7 -0
  291. package/build-module/highlighted-colors.js +37 -0
  292. package/build-module/highlighted-colors.js.map +7 -0
  293. package/build-module/hooks.js +144 -0
  294. package/build-module/hooks.js.map +7 -0
  295. package/build-module/icon-with-current-color.js +22 -0
  296. package/build-module/icon-with-current-color.js.map +7 -0
  297. package/build-module/index.js +13 -0
  298. package/build-module/index.js.map +7 -0
  299. package/build-module/lock-unlock.js +10 -0
  300. package/build-module/lock-unlock.js.map +7 -0
  301. package/build-module/navigation-button.js +32 -0
  302. package/build-module/navigation-button.js.map +7 -0
  303. package/build-module/pagination/index.js +107 -0
  304. package/build-module/pagination/index.js.map +7 -0
  305. package/build-module/palette.js +70 -0
  306. package/build-module/palette.js.map +7 -0
  307. package/build-module/preset-colors.js +20 -0
  308. package/build-module/preset-colors.js.map +7 -0
  309. package/build-module/preview-colors.js +59 -0
  310. package/build-module/preview-colors.js.map +7 -0
  311. package/build-module/preview-hooks.js +36 -0
  312. package/build-module/preview-hooks.js.map +7 -0
  313. package/build-module/preview-styles.js +193 -0
  314. package/build-module/preview-styles.js.map +7 -0
  315. package/build-module/preview-typography.js +42 -0
  316. package/build-module/preview-typography.js.map +7 -0
  317. package/build-module/preview-wrapper.js +86 -0
  318. package/build-module/preview-wrapper.js.map +7 -0
  319. package/build-module/provider.js +30 -0
  320. package/build-module/provider.js.map +7 -0
  321. package/build-module/root-menu.js +58 -0
  322. package/build-module/root-menu.js.map +7 -0
  323. package/build-module/screen-background.js +28 -0
  324. package/build-module/screen-background.js.map +7 -0
  325. package/build-module/screen-block-list.js +150 -0
  326. package/build-module/screen-block-list.js.map +7 -0
  327. package/build-module/screen-block.js +293 -0
  328. package/build-module/screen-block.js.map +7 -0
  329. package/build-module/screen-color-palette.js +34 -0
  330. package/build-module/screen-color-palette.js.map +7 -0
  331. package/build-module/screen-colors.js +55 -0
  332. package/build-module/screen-colors.js.map +7 -0
  333. package/build-module/screen-css.js +48 -0
  334. package/build-module/screen-css.js.map +7 -0
  335. package/build-module/screen-header.js +44 -0
  336. package/build-module/screen-header.js.map +7 -0
  337. package/build-module/screen-layout.js +24 -0
  338. package/build-module/screen-layout.js.map +7 -0
  339. package/build-module/screen-revisions/index.js +121 -0
  340. package/build-module/screen-revisions/index.js.map +7 -0
  341. package/build-module/screen-revisions/revisions-buttons.js +178 -0
  342. package/build-module/screen-revisions/revisions-buttons.js.map +7 -0
  343. package/build-module/screen-revisions/types.js +1 -0
  344. package/build-module/screen-revisions/types.js.map +7 -0
  345. package/build-module/screen-revisions/use-global-styles-revisions.js +145 -0
  346. package/build-module/screen-revisions/use-global-styles-revisions.js.map +7 -0
  347. package/build-module/screen-root.js +114 -0
  348. package/build-module/screen-root.js.map +7 -0
  349. package/build-module/screen-shadows.js +14 -0
  350. package/build-module/screen-shadows.js.map +7 -0
  351. package/build-module/screen-style-variations.js +32 -0
  352. package/build-module/screen-style-variations.js.map +7 -0
  353. package/build-module/screen-typography-element.js +141 -0
  354. package/build-module/screen-typography-element.js.map +7 -0
  355. package/build-module/screen-typography.js +35 -0
  356. package/build-module/screen-typography.js.map +7 -0
  357. package/build-module/shadow-utils.js +98 -0
  358. package/build-module/shadow-utils.js.map +7 -0
  359. package/build-module/shadows-edit-panel.js +502 -0
  360. package/build-module/shadows-edit-panel.js.map +7 -0
  361. package/build-module/shadows-panel.js +182 -0
  362. package/build-module/shadows-panel.js.map +7 -0
  363. package/build-module/size-control/index.js +72 -0
  364. package/build-module/size-control/index.js.map +7 -0
  365. package/build-module/style-variations-container.js +100 -0
  366. package/build-module/style-variations-container.js.map +7 -0
  367. package/build-module/style-variations-content.js +18 -0
  368. package/build-module/style-variations-content.js.map +7 -0
  369. package/build-module/style-variations.js +7 -0
  370. package/build-module/style-variations.js.map +7 -0
  371. package/build-module/subtitle.js +9 -0
  372. package/build-module/subtitle.js.map +7 -0
  373. package/build-module/typography-elements.js +102 -0
  374. package/build-module/typography-elements.js.map +7 -0
  375. package/build-module/typography-example.js +59 -0
  376. package/build-module/typography-example.js.map +7 -0
  377. package/build-module/typography-panel.js +44 -0
  378. package/build-module/typography-panel.js.map +7 -0
  379. package/build-module/typography-preview.js +50 -0
  380. package/build-module/typography-preview.js.map +7 -0
  381. package/build-module/typography-variations.js +7 -0
  382. package/build-module/typography-variations.js.map +7 -0
  383. package/build-module/utils.js +179 -0
  384. package/build-module/utils.js.map +7 -0
  385. package/build-module/variations/variation.js +86 -0
  386. package/build-module/variations/variation.js.map +7 -0
  387. package/build-module/variations/variations-color.js +37 -0
  388. package/build-module/variations/variations-color.js.map +7 -0
  389. package/build-module/variations/variations-panel.js +44 -0
  390. package/build-module/variations/variations-panel.js.map +7 -0
  391. package/build-module/variations/variations-typography.js +53 -0
  392. package/build-module/variations/variations-typography.js.map +7 -0
  393. package/build-module/with-global-styles-provider.js +24 -0
  394. package/build-module/with-global-styles-provider.js.map +7 -0
  395. package/build-style/style-rtl.css +717 -0
  396. package/build-style/style.css +718 -0
  397. package/build-types/background-panel.d.ts +10 -0
  398. package/build-types/background-panel.d.ts.map +1 -0
  399. package/build-types/block-preview-panel.d.ts +7 -0
  400. package/build-types/block-preview-panel.d.ts.map +1 -0
  401. package/build-types/color-indicator-wrapper.d.ts +7 -0
  402. package/build-types/color-indicator-wrapper.d.ts.map +1 -0
  403. package/build-types/color-palette-panel.d.ts +6 -0
  404. package/build-types/color-palette-panel.d.ts.map +1 -0
  405. package/build-types/color-preview.d.ts +2 -0
  406. package/build-types/color-preview.d.ts.map +1 -0
  407. package/build-types/color-variations.d.ts +27 -0
  408. package/build-types/color-variations.d.ts.map +1 -0
  409. package/build-types/confirm-reset-shadow-dialog.d.ts +10 -0
  410. package/build-types/confirm-reset-shadow-dialog.d.ts.map +1 -0
  411. package/build-types/context.d.ts +10 -0
  412. package/build-types/context.d.ts.map +1 -0
  413. package/build-types/dimensions-panel.d.ts +2 -0
  414. package/build-types/dimensions-panel.d.ts.map +1 -0
  415. package/build-types/font-families.d.ts +4 -0
  416. package/build-types/font-families.d.ts.map +1 -0
  417. package/build-types/font-family-item.d.ts +7 -0
  418. package/build-types/font-family-item.d.ts.map +1 -0
  419. package/build-types/font-library-modal/collection-font-variant.d.ts +4 -0
  420. package/build-types/font-library-modal/collection-font-variant.d.ts.map +1 -0
  421. package/build-types/font-library-modal/context.d.ts +7 -0
  422. package/build-types/font-library-modal/context.d.ts.map +1 -0
  423. package/build-types/font-library-modal/font-card.d.ts +9 -0
  424. package/build-types/font-library-modal/font-card.d.ts.map +1 -0
  425. package/build-types/font-library-modal/font-collection.d.ts +5 -0
  426. package/build-types/font-library-modal/font-collection.d.ts.map +1 -0
  427. package/build-types/font-library-modal/font-demo.d.ts +4 -0
  428. package/build-types/font-library-modal/font-demo.d.ts.map +1 -0
  429. package/build-types/font-library-modal/google-fonts-confirm-dialog.d.ts +3 -0
  430. package/build-types/font-library-modal/google-fonts-confirm-dialog.d.ts.map +1 -0
  431. package/build-types/font-library-modal/index.d.ts +6 -0
  432. package/build-types/font-library-modal/index.d.ts.map +1 -0
  433. package/build-types/font-library-modal/installed-fonts.d.ts +3 -0
  434. package/build-types/font-library-modal/installed-fonts.d.ts.map +1 -0
  435. package/build-types/font-library-modal/library-font-details.d.ts +6 -0
  436. package/build-types/font-library-modal/library-font-details.d.ts.map +1 -0
  437. package/build-types/font-library-modal/library-font-variant.d.ts +7 -0
  438. package/build-types/font-library-modal/library-font-variant.d.ts.map +1 -0
  439. package/build-types/font-library-modal/resolvers.d.ts +43 -0
  440. package/build-types/font-library-modal/resolvers.d.ts.map +1 -0
  441. package/build-types/font-library-modal/types.d.ts +133 -0
  442. package/build-types/font-library-modal/types.d.ts.map +1 -0
  443. package/build-types/font-library-modal/upload-fonts.d.ts +3 -0
  444. package/build-types/font-library-modal/upload-fonts.d.ts.map +1 -0
  445. package/build-types/font-library-modal/utils/constants.d.ts +4 -0
  446. package/build-types/font-library-modal/utils/constants.d.ts.map +1 -0
  447. package/build-types/font-library-modal/utils/filter-fonts.d.ts +25 -0
  448. package/build-types/font-library-modal/utils/filter-fonts.d.ts.map +1 -0
  449. package/build-types/font-library-modal/utils/fonts-outline.d.ts +7 -0
  450. package/build-types/font-library-modal/utils/fonts-outline.d.ts.map +1 -0
  451. package/build-types/font-library-modal/utils/index.d.ts +21 -0
  452. package/build-types/font-library-modal/utils/index.d.ts.map +1 -0
  453. package/build-types/font-library-modal/utils/make-families-from-faces.d.ts +6 -0
  454. package/build-types/font-library-modal/utils/make-families-from-faces.d.ts.map +1 -0
  455. package/build-types/font-library-modal/utils/preview-styles.d.ts +13 -0
  456. package/build-types/font-library-modal/utils/preview-styles.d.ts.map +1 -0
  457. package/build-types/font-library-modal/utils/set-immutably.d.ts +13 -0
  458. package/build-types/font-library-modal/utils/set-immutably.d.ts.map +1 -0
  459. package/build-types/font-library-modal/utils/sort-font-faces.d.ts +6 -0
  460. package/build-types/font-library-modal/utils/sort-font-faces.d.ts.map +1 -0
  461. package/build-types/font-library-modal/utils/toggleFont.d.ts +38 -0
  462. package/build-types/font-library-modal/utils/toggleFont.d.ts.map +1 -0
  463. package/build-types/font-sizes/confirm-delete-font-size-dialog.d.ts +10 -0
  464. package/build-types/font-sizes/confirm-delete-font-size-dialog.d.ts.map +1 -0
  465. package/build-types/font-sizes/confirm-reset-font-sizes-dialog.d.ts +10 -0
  466. package/build-types/font-sizes/confirm-reset-font-sizes-dialog.d.ts.map +1 -0
  467. package/build-types/font-sizes/font-size-preview.d.ts +7 -0
  468. package/build-types/font-sizes/font-size-preview.d.ts.map +1 -0
  469. package/build-types/font-sizes/font-size.d.ts +4 -0
  470. package/build-types/font-sizes/font-size.d.ts.map +1 -0
  471. package/build-types/font-sizes/font-sizes-count.d.ts +3 -0
  472. package/build-types/font-sizes/font-sizes-count.d.ts.map +1 -0
  473. package/build-types/font-sizes/font-sizes.d.ts +3 -0
  474. package/build-types/font-sizes/font-sizes.d.ts.map +1 -0
  475. package/build-types/font-sizes/rename-font-size-dialog.d.ts +9 -0
  476. package/build-types/font-sizes/rename-font-size-dialog.d.ts.map +1 -0
  477. package/build-types/global-styles-ui.d.ts +26 -0
  478. package/build-types/global-styles-ui.d.ts.map +1 -0
  479. package/build-types/gradients-palette-panel.d.ts +6 -0
  480. package/build-types/gradients-palette-panel.d.ts.map +1 -0
  481. package/build-types/highlighted-colors.d.ts +7 -0
  482. package/build-types/highlighted-colors.d.ts.map +1 -0
  483. package/build-types/hooks.d.ts +46 -0
  484. package/build-types/hooks.d.ts.map +1 -0
  485. package/build-types/icon-with-current-color.d.ts +9 -0
  486. package/build-types/icon-with-current-color.d.ts.map +1 -0
  487. package/build-types/index.d.ts +6 -0
  488. package/build-types/index.d.ts.map +1 -0
  489. package/build-types/lock-unlock.d.ts +2 -0
  490. package/build-types/lock-unlock.d.ts.map +1 -0
  491. package/build-types/navigation-button.d.ts +10 -0
  492. package/build-types/navigation-button.d.ts.map +1 -0
  493. package/build-types/pagination/index.d.ts +13 -0
  494. package/build-types/pagination/index.d.ts.map +1 -0
  495. package/build-types/palette.d.ts +6 -0
  496. package/build-types/palette.d.ts.map +1 -0
  497. package/build-types/preset-colors.d.ts +2 -0
  498. package/build-types/preset-colors.d.ts.map +1 -0
  499. package/build-types/preview-colors.d.ts +8 -0
  500. package/build-types/preview-colors.d.ts.map +1 -0
  501. package/build-types/preview-hooks.d.ts +9 -0
  502. package/build-types/preview-hooks.d.ts.map +1 -0
  503. package/build-types/preview-styles.d.ts +9 -0
  504. package/build-types/preview-styles.d.ts.map +1 -0
  505. package/build-types/preview-typography.d.ts +8 -0
  506. package/build-types/preview-typography.d.ts.map +1 -0
  507. package/build-types/preview-wrapper.d.ts +15 -0
  508. package/build-types/preview-wrapper.d.ts.map +1 -0
  509. package/build-types/provider.d.ts +15 -0
  510. package/build-types/provider.d.ts.map +1 -0
  511. package/build-types/root-menu.d.ts +3 -0
  512. package/build-types/root-menu.d.ts.map +1 -0
  513. package/build-types/screen-background.d.ts +3 -0
  514. package/build-types/screen-background.d.ts.map +1 -0
  515. package/build-types/screen-block-list.d.ts +4 -0
  516. package/build-types/screen-block-list.d.ts.map +1 -0
  517. package/build-types/screen-block.d.ts +7 -0
  518. package/build-types/screen-block.d.ts.map +1 -0
  519. package/build-types/screen-color-palette.d.ts +5 -0
  520. package/build-types/screen-color-palette.d.ts.map +1 -0
  521. package/build-types/screen-colors.d.ts +3 -0
  522. package/build-types/screen-colors.d.ts.map +1 -0
  523. package/build-types/screen-css.d.ts +3 -0
  524. package/build-types/screen-css.d.ts.map +1 -0
  525. package/build-types/screen-header.d.ts +8 -0
  526. package/build-types/screen-header.d.ts.map +1 -0
  527. package/build-types/screen-layout.d.ts +3 -0
  528. package/build-types/screen-layout.d.ts.map +1 -0
  529. package/build-types/screen-revisions/index.d.ts +6 -0
  530. package/build-types/screen-revisions/index.d.ts.map +1 -0
  531. package/build-types/screen-revisions/revisions-buttons.d.ts +23 -0
  532. package/build-types/screen-revisions/revisions-buttons.d.ts.map +1 -0
  533. package/build-types/screen-revisions/types.d.ts +17 -0
  534. package/build-types/screen-revisions/types.d.ts.map +1 -0
  535. package/build-types/screen-revisions/use-global-styles-revisions.d.ts +17 -0
  536. package/build-types/screen-revisions/use-global-styles-revisions.d.ts.map +1 -0
  537. package/build-types/screen-root.d.ts +3 -0
  538. package/build-types/screen-root.d.ts.map +1 -0
  539. package/build-types/screen-shadows.d.ts +3 -0
  540. package/build-types/screen-shadows.d.ts.map +1 -0
  541. package/build-types/screen-style-variations.d.ts +3 -0
  542. package/build-types/screen-style-variations.d.ts.map +1 -0
  543. package/build-types/screen-typography-element.d.ts +28 -0
  544. package/build-types/screen-typography-element.d.ts.map +1 -0
  545. package/build-types/screen-typography.d.ts +3 -0
  546. package/build-types/screen-typography.d.ts.map +1 -0
  547. package/build-types/shadow-utils.d.ts +126 -0
  548. package/build-types/shadow-utils.d.ts.map +1 -0
  549. package/build-types/shadows-edit-panel.d.ts +2 -0
  550. package/build-types/shadows-edit-panel.d.ts.map +1 -0
  551. package/build-types/shadows-panel.d.ts +3 -0
  552. package/build-types/shadows-panel.d.ts.map +1 -0
  553. package/build-types/size-control/index.d.ts +11 -0
  554. package/build-types/size-control/index.d.ts.map +1 -0
  555. package/build-types/stories/index.story.d.ts +6 -0
  556. package/build-types/stories/index.story.d.ts.map +1 -0
  557. package/build-types/style-variations-container.d.ts +6 -0
  558. package/build-types/style-variations-container.d.ts.map +1 -0
  559. package/build-types/style-variations-content.d.ts +2 -0
  560. package/build-types/style-variations-content.d.ts.map +1 -0
  561. package/build-types/style-variations.d.ts +25 -0
  562. package/build-types/style-variations.d.ts.map +1 -0
  563. package/build-types/subtitle.d.ts +7 -0
  564. package/build-types/subtitle.d.ts.map +1 -0
  565. package/build-types/test/shadow-utils.spec.d.ts +2 -0
  566. package/build-types/test/shadow-utils.spec.d.ts.map +1 -0
  567. package/build-types/test/utils.spec.d.ts +2 -0
  568. package/build-types/test/utils.spec.d.ts.map +1 -0
  569. package/build-types/typography-elements.d.ts +3 -0
  570. package/build-types/typography-elements.d.ts.map +1 -0
  571. package/build-types/typography-example.d.ts +7 -0
  572. package/build-types/typography-example.d.ts.map +1 -0
  573. package/build-types/typography-panel.d.ts +7 -0
  574. package/build-types/typography-panel.d.ts.map +1 -0
  575. package/build-types/typography-preview.d.ts +8 -0
  576. package/build-types/typography-preview.d.ts.map +1 -0
  577. package/build-types/typography-variations.d.ts +27 -0
  578. package/build-types/typography-variations.d.ts.map +1 -0
  579. package/build-types/utils.d.ts +63 -0
  580. package/build-types/utils.d.ts.map +1 -0
  581. package/build-types/variations/variation.d.ts +10 -0
  582. package/build-types/variations/variation.d.ts.map +1 -0
  583. package/build-types/variations/variations-color.d.ts +7 -0
  584. package/build-types/variations/variations-color.d.ts.map +1 -0
  585. package/build-types/variations/variations-panel.d.ts +13 -0
  586. package/build-types/variations/variations-panel.d.ts.map +1 -0
  587. package/build-types/variations/variations-typography.d.ts +7 -0
  588. package/build-types/variations/variations-typography.d.ts.map +1 -0
  589. package/build-types/with-global-styles-provider.d.ts +20 -0
  590. package/build-types/with-global-styles-provider.d.ts.map +1 -0
  591. package/package.json +67 -0
  592. package/src/README.md +99 -0
  593. package/src/background-panel.tsx +56 -0
  594. package/src/block-preview-panel.tsx +91 -0
  595. package/src/color-indicator-wrapper.tsx +34 -0
  596. package/src/color-palette-panel.tsx +111 -0
  597. package/src/color-preview.tsx +78 -0
  598. package/src/color-variations.tsx +35 -0
  599. package/src/confirm-reset-shadow-dialog.tsx +45 -0
  600. package/src/context.ts +21 -0
  601. package/src/dimensions-panel.tsx +85 -0
  602. package/src/font-families.tsx +127 -0
  603. package/src/font-family-item.tsx +52 -0
  604. package/src/font-library-modal/collection-font-variant.tsx +52 -0
  605. package/src/font-library-modal/context.tsx +591 -0
  606. package/src/font-library-modal/font-card.tsx +77 -0
  607. package/src/font-library-modal/font-collection.tsx +592 -0
  608. package/src/font-library-modal/font-demo.tsx +123 -0
  609. package/src/font-library-modal/google-fonts-confirm-dialog.tsx +57 -0
  610. package/src/font-library-modal/index.tsx +110 -0
  611. package/src/font-library-modal/installed-fonts.tsx +547 -0
  612. package/src/font-library-modal/lib/inflate.js +4112 -0
  613. package/src/font-library-modal/lib/lib-font.browser.d.ts +11 -0
  614. package/src/font-library-modal/lib/lib-font.browser.js +3861 -0
  615. package/src/font-library-modal/lib/unbrotli.js +2706 -0
  616. package/src/font-library-modal/library-font-details.tsx +46 -0
  617. package/src/font-library-modal/library-font-variant.tsx +67 -0
  618. package/src/font-library-modal/resolvers.tsx +100 -0
  619. package/src/font-library-modal/style.scss +222 -0
  620. package/src/font-library-modal/types.ts +176 -0
  621. package/src/font-library-modal/upload-fonts.tsx +269 -0
  622. package/src/font-library-modal/utils/constants.ts +23 -0
  623. package/src/font-library-modal/utils/filter-fonts.ts +47 -0
  624. package/src/font-library-modal/utils/fonts-outline.ts +33 -0
  625. package/src/font-library-modal/utils/index.ts +368 -0
  626. package/src/font-library-modal/utils/make-families-from-faces.ts +34 -0
  627. package/src/font-library-modal/utils/preview-styles.ts +167 -0
  628. package/src/font-library-modal/utils/set-immutably.ts +37 -0
  629. package/src/font-library-modal/utils/sort-font-faces.ts +46 -0
  630. package/src/font-library-modal/utils/toggleFont.ts +109 -0
  631. package/src/font-sizes/confirm-delete-font-size-dialog.tsx +51 -0
  632. package/src/font-sizes/confirm-reset-font-sizes-dialog.tsx +45 -0
  633. package/src/font-sizes/font-size-preview.tsx +47 -0
  634. package/src/font-sizes/font-size.tsx +289 -0
  635. package/src/font-sizes/font-sizes-count.tsx +37 -0
  636. package/src/font-sizes/font-sizes.tsx +265 -0
  637. package/src/font-sizes/rename-font-size-dialog.tsx +83 -0
  638. package/src/global-styles-ui.tsx +292 -0
  639. package/src/gradients-palette-panel.tsx +126 -0
  640. package/src/highlighted-colors.tsx +44 -0
  641. package/src/hooks.ts +251 -0
  642. package/src/icon-with-current-color.tsx +31 -0
  643. package/src/index.ts +7 -0
  644. package/src/lock-unlock.ts +10 -0
  645. package/src/navigation-button.tsx +53 -0
  646. package/src/pagination/index.tsx +107 -0
  647. package/src/pagination/style.scss +7 -0
  648. package/src/palette.tsx +101 -0
  649. package/src/preset-colors.tsx +18 -0
  650. package/src/preview-colors.tsx +68 -0
  651. package/src/preview-hooks.tsx +58 -0
  652. package/src/preview-styles.tsx +196 -0
  653. package/src/preview-typography.tsx +49 -0
  654. package/src/preview-wrapper.tsx +137 -0
  655. package/src/provider.tsx +54 -0
  656. package/src/root-menu.tsx +87 -0
  657. package/src/screen-background.tsx +37 -0
  658. package/src/screen-block-list.tsx +198 -0
  659. package/src/screen-block.tsx +370 -0
  660. package/src/screen-color-palette.tsx +47 -0
  661. package/src/screen-colors.tsx +67 -0
  662. package/src/screen-css.tsx +56 -0
  663. package/src/screen-header.tsx +56 -0
  664. package/src/screen-layout.tsx +34 -0
  665. package/src/screen-revisions/index.tsx +158 -0
  666. package/src/screen-revisions/revisions-buttons.tsx +259 -0
  667. package/src/screen-revisions/style.scss +194 -0
  668. package/src/screen-revisions/types.ts +18 -0
  669. package/src/screen-revisions/use-global-styles-revisions.tsx +204 -0
  670. package/src/screen-root.tsx +146 -0
  671. package/src/screen-shadows.tsx +13 -0
  672. package/src/screen-style-variations.tsx +36 -0
  673. package/src/screen-typography-element.tsx +127 -0
  674. package/src/screen-typography.tsx +41 -0
  675. package/src/shadow-utils.ts +167 -0
  676. package/src/shadows-edit-panel.tsx +559 -0
  677. package/src/shadows-panel.tsx +207 -0
  678. package/src/size-control/index.tsx +97 -0
  679. package/src/size-control/style.scss +7 -0
  680. package/src/stories/index.story.js +410 -0
  681. package/src/style-variations-container.tsx +153 -0
  682. package/src/style-variations-content.tsx +24 -0
  683. package/src/style-variations.tsx +33 -0
  684. package/src/style.scss +287 -0
  685. package/src/subtitle.tsx +17 -0
  686. package/src/test/shadow-utils.spec.js +251 -0
  687. package/src/test/utils.spec.js +59 -0
  688. package/src/typography-elements.tsx +113 -0
  689. package/src/typography-example.tsx +78 -0
  690. package/src/typography-panel.tsx +56 -0
  691. package/src/typography-preview.tsx +61 -0
  692. package/src/typography-variations.tsx +35 -0
  693. package/src/utils.ts +301 -0
  694. package/src/variations/style.scss +43 -0
  695. package/src/variations/variation.tsx +113 -0
  696. package/src/variations/variations-color.tsx +54 -0
  697. package/src/variations/variations-panel.tsx +79 -0
  698. package/src/variations/variations-typography.tsx +65 -0
  699. package/src/with-global-styles-provider.tsx +44 -0
  700. package/tsconfig.json +26 -0
  701. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,3678 @@
1
+ "use strict";
2
+ (function(f) {
3
+ if (typeof exports === "object" && typeof module !== "undefined") {
4
+ module.exports = f();
5
+ } else if (typeof define === "function" && define.amd) {
6
+ define([], f);
7
+ } else {
8
+ var g;
9
+ if (typeof window !== "undefined") {
10
+ g = window;
11
+ } else if (typeof global !== "undefined") {
12
+ g = global;
13
+ } else if (typeof self !== "undefined") {
14
+ g = self;
15
+ } else {
16
+ g = this;
17
+ }
18
+ g.unbrotli = f();
19
+ }
20
+ })(function() {
21
+ var define2, module2, exports2;
22
+ return (/* @__PURE__ */ (function() {
23
+ function r(e, n, t) {
24
+ function o(i2, f) {
25
+ if (!n[i2]) {
26
+ if (!e[i2]) {
27
+ var c = "function" == typeof require && require;
28
+ if (!f && c) return c(i2, true);
29
+ if (u) return u(i2, true);
30
+ var a = new Error("Cannot find module '" + i2 + "'");
31
+ throw a.code = "MODULE_NOT_FOUND", a;
32
+ }
33
+ var p = n[i2] = { exports: {} };
34
+ e[i2][0].call(
35
+ p.exports,
36
+ function(r2) {
37
+ var n2 = e[i2][1][r2];
38
+ return o(n2 || r2);
39
+ },
40
+ p,
41
+ p.exports,
42
+ r,
43
+ e,
44
+ n,
45
+ t
46
+ );
47
+ }
48
+ return n[i2].exports;
49
+ }
50
+ for (var u = "function" == typeof require && require, i = 0; i < t.length; i++)
51
+ o(t[i]);
52
+ return o;
53
+ }
54
+ return r;
55
+ })())(
56
+ {
57
+ 1: [
58
+ function(require2, module3, exports3) {
59
+ var BROTLI_READ_SIZE = 4096;
60
+ var BROTLI_IBUF_SIZE = 2 * BROTLI_READ_SIZE + 32;
61
+ var BROTLI_IBUF_MASK = 2 * BROTLI_READ_SIZE - 1;
62
+ var kBitMask = new Uint32Array([
63
+ 0,
64
+ 1,
65
+ 3,
66
+ 7,
67
+ 15,
68
+ 31,
69
+ 63,
70
+ 127,
71
+ 255,
72
+ 511,
73
+ 1023,
74
+ 2047,
75
+ 4095,
76
+ 8191,
77
+ 16383,
78
+ 32767,
79
+ 65535,
80
+ 131071,
81
+ 262143,
82
+ 524287,
83
+ 1048575,
84
+ 2097151,
85
+ 4194303,
86
+ 8388607,
87
+ 16777215
88
+ ]);
89
+ function BrotliBitReader(input) {
90
+ this.buf_ = new Uint8Array(BROTLI_IBUF_SIZE);
91
+ this.input_ = input;
92
+ this.reset();
93
+ }
94
+ BrotliBitReader.READ_SIZE = BROTLI_READ_SIZE;
95
+ BrotliBitReader.IBUF_MASK = BROTLI_IBUF_MASK;
96
+ BrotliBitReader.prototype.reset = function() {
97
+ this.buf_ptr_ = 0;
98
+ this.val_ = 0;
99
+ this.pos_ = 0;
100
+ this.bit_pos_ = 0;
101
+ this.bit_end_pos_ = 0;
102
+ this.eos_ = 0;
103
+ this.readMoreInput();
104
+ for (var i = 0; i < 4; i++) {
105
+ this.val_ |= this.buf_[this.pos_] << 8 * i;
106
+ ++this.pos_;
107
+ }
108
+ return this.bit_end_pos_ > 0;
109
+ };
110
+ BrotliBitReader.prototype.readMoreInput = function() {
111
+ if (this.bit_end_pos_ > 256) {
112
+ return;
113
+ } else if (this.eos_) {
114
+ if (this.bit_pos_ > this.bit_end_pos_)
115
+ throw new Error(
116
+ "Unexpected end of input " + this.bit_pos_ + " " + this.bit_end_pos_
117
+ );
118
+ } else {
119
+ var dst = this.buf_ptr_;
120
+ var bytes_read = this.input_.read(
121
+ this.buf_,
122
+ dst,
123
+ BROTLI_READ_SIZE
124
+ );
125
+ if (bytes_read < 0) {
126
+ throw new Error("Unexpected end of input");
127
+ }
128
+ if (bytes_read < BROTLI_READ_SIZE) {
129
+ this.eos_ = 1;
130
+ for (var p = 0; p < 32; p++)
131
+ this.buf_[dst + bytes_read + p] = 0;
132
+ }
133
+ if (dst === 0) {
134
+ for (var p = 0; p < 32; p++)
135
+ this.buf_[(BROTLI_READ_SIZE << 1) + p] = this.buf_[p];
136
+ this.buf_ptr_ = BROTLI_READ_SIZE;
137
+ } else {
138
+ this.buf_ptr_ = 0;
139
+ }
140
+ this.bit_end_pos_ += bytes_read << 3;
141
+ }
142
+ };
143
+ BrotliBitReader.prototype.fillBitWindow = function() {
144
+ while (this.bit_pos_ >= 8) {
145
+ this.val_ >>>= 8;
146
+ this.val_ |= this.buf_[this.pos_ & BROTLI_IBUF_MASK] << 24;
147
+ ++this.pos_;
148
+ this.bit_pos_ = this.bit_pos_ - 8 >>> 0;
149
+ this.bit_end_pos_ = this.bit_end_pos_ - 8 >>> 0;
150
+ }
151
+ };
152
+ BrotliBitReader.prototype.readBits = function(n_bits) {
153
+ if (32 - this.bit_pos_ < n_bits) {
154
+ this.fillBitWindow();
155
+ }
156
+ var val = this.val_ >>> this.bit_pos_ & kBitMask[n_bits];
157
+ this.bit_pos_ += n_bits;
158
+ return val;
159
+ };
160
+ module3.exports = BrotliBitReader;
161
+ },
162
+ {}
163
+ ],
164
+ 2: [
165
+ function(require2, module3, exports3) {
166
+ var CONTEXT_LSB6 = 0;
167
+ var CONTEXT_MSB6 = 1;
168
+ var CONTEXT_UTF8 = 2;
169
+ var CONTEXT_SIGNED = 3;
170
+ exports3.lookup = new Uint8Array([
171
+ /* CONTEXT_UTF8, last byte. */
172
+ /* ASCII range. */
173
+ 0,
174
+ 0,
175
+ 0,
176
+ 0,
177
+ 0,
178
+ 0,
179
+ 0,
180
+ 0,
181
+ 0,
182
+ 4,
183
+ 4,
184
+ 0,
185
+ 0,
186
+ 4,
187
+ 0,
188
+ 0,
189
+ 0,
190
+ 0,
191
+ 0,
192
+ 0,
193
+ 0,
194
+ 0,
195
+ 0,
196
+ 0,
197
+ 0,
198
+ 0,
199
+ 0,
200
+ 0,
201
+ 0,
202
+ 0,
203
+ 0,
204
+ 0,
205
+ 8,
206
+ 12,
207
+ 16,
208
+ 12,
209
+ 12,
210
+ 20,
211
+ 12,
212
+ 16,
213
+ 24,
214
+ 28,
215
+ 12,
216
+ 12,
217
+ 32,
218
+ 12,
219
+ 36,
220
+ 12,
221
+ 44,
222
+ 44,
223
+ 44,
224
+ 44,
225
+ 44,
226
+ 44,
227
+ 44,
228
+ 44,
229
+ 44,
230
+ 44,
231
+ 32,
232
+ 32,
233
+ 24,
234
+ 40,
235
+ 28,
236
+ 12,
237
+ 12,
238
+ 48,
239
+ 52,
240
+ 52,
241
+ 52,
242
+ 48,
243
+ 52,
244
+ 52,
245
+ 52,
246
+ 48,
247
+ 52,
248
+ 52,
249
+ 52,
250
+ 52,
251
+ 52,
252
+ 48,
253
+ 52,
254
+ 52,
255
+ 52,
256
+ 52,
257
+ 52,
258
+ 48,
259
+ 52,
260
+ 52,
261
+ 52,
262
+ 52,
263
+ 52,
264
+ 24,
265
+ 12,
266
+ 28,
267
+ 12,
268
+ 12,
269
+ 12,
270
+ 56,
271
+ 60,
272
+ 60,
273
+ 60,
274
+ 56,
275
+ 60,
276
+ 60,
277
+ 60,
278
+ 56,
279
+ 60,
280
+ 60,
281
+ 60,
282
+ 60,
283
+ 60,
284
+ 56,
285
+ 60,
286
+ 60,
287
+ 60,
288
+ 60,
289
+ 60,
290
+ 56,
291
+ 60,
292
+ 60,
293
+ 60,
294
+ 60,
295
+ 60,
296
+ 24,
297
+ 12,
298
+ 28,
299
+ 12,
300
+ 0,
301
+ /* UTF8 continuation byte range. */
302
+ 0,
303
+ 1,
304
+ 0,
305
+ 1,
306
+ 0,
307
+ 1,
308
+ 0,
309
+ 1,
310
+ 0,
311
+ 1,
312
+ 0,
313
+ 1,
314
+ 0,
315
+ 1,
316
+ 0,
317
+ 1,
318
+ 0,
319
+ 1,
320
+ 0,
321
+ 1,
322
+ 0,
323
+ 1,
324
+ 0,
325
+ 1,
326
+ 0,
327
+ 1,
328
+ 0,
329
+ 1,
330
+ 0,
331
+ 1,
332
+ 0,
333
+ 1,
334
+ 0,
335
+ 1,
336
+ 0,
337
+ 1,
338
+ 0,
339
+ 1,
340
+ 0,
341
+ 1,
342
+ 0,
343
+ 1,
344
+ 0,
345
+ 1,
346
+ 0,
347
+ 1,
348
+ 0,
349
+ 1,
350
+ 0,
351
+ 1,
352
+ 0,
353
+ 1,
354
+ 0,
355
+ 1,
356
+ 0,
357
+ 1,
358
+ 0,
359
+ 1,
360
+ 0,
361
+ 1,
362
+ 0,
363
+ 1,
364
+ 0,
365
+ 1,
366
+ 2,
367
+ 3,
368
+ 2,
369
+ 3,
370
+ 2,
371
+ 3,
372
+ 2,
373
+ 3,
374
+ 2,
375
+ 3,
376
+ 2,
377
+ 3,
378
+ 2,
379
+ 3,
380
+ 2,
381
+ 3,
382
+ 2,
383
+ 3,
384
+ 2,
385
+ 3,
386
+ 2,
387
+ 3,
388
+ 2,
389
+ 3,
390
+ 2,
391
+ 3,
392
+ 2,
393
+ 3,
394
+ 2,
395
+ 3,
396
+ 2,
397
+ 3,
398
+ 2,
399
+ 3,
400
+ 2,
401
+ 3,
402
+ 2,
403
+ 3,
404
+ 2,
405
+ 3,
406
+ 2,
407
+ 3,
408
+ 2,
409
+ 3,
410
+ 2,
411
+ 3,
412
+ 2,
413
+ 3,
414
+ 2,
415
+ 3,
416
+ 2,
417
+ 3,
418
+ 2,
419
+ 3,
420
+ 2,
421
+ 3,
422
+ 2,
423
+ 3,
424
+ 2,
425
+ 3,
426
+ 2,
427
+ 3,
428
+ 2,
429
+ 3,
430
+ /* ASCII range. */
431
+ 0,
432
+ 0,
433
+ 0,
434
+ 0,
435
+ 0,
436
+ 0,
437
+ 0,
438
+ 0,
439
+ 0,
440
+ 0,
441
+ 0,
442
+ 0,
443
+ 0,
444
+ 0,
445
+ 0,
446
+ 0,
447
+ 0,
448
+ 0,
449
+ 0,
450
+ 0,
451
+ 0,
452
+ 0,
453
+ 0,
454
+ 0,
455
+ 0,
456
+ 0,
457
+ 0,
458
+ 0,
459
+ 0,
460
+ 0,
461
+ 0,
462
+ 0,
463
+ 0,
464
+ 1,
465
+ 1,
466
+ 1,
467
+ 1,
468
+ 1,
469
+ 1,
470
+ 1,
471
+ 1,
472
+ 1,
473
+ 1,
474
+ 1,
475
+ 1,
476
+ 1,
477
+ 1,
478
+ 1,
479
+ 2,
480
+ 2,
481
+ 2,
482
+ 2,
483
+ 2,
484
+ 2,
485
+ 2,
486
+ 2,
487
+ 2,
488
+ 2,
489
+ 1,
490
+ 1,
491
+ 1,
492
+ 1,
493
+ 1,
494
+ 1,
495
+ 1,
496
+ 2,
497
+ 2,
498
+ 2,
499
+ 2,
500
+ 2,
501
+ 2,
502
+ 2,
503
+ 2,
504
+ 2,
505
+ 2,
506
+ 2,
507
+ 2,
508
+ 2,
509
+ 2,
510
+ 2,
511
+ 2,
512
+ 2,
513
+ 2,
514
+ 2,
515
+ 2,
516
+ 2,
517
+ 2,
518
+ 2,
519
+ 2,
520
+ 2,
521
+ 2,
522
+ 1,
523
+ 1,
524
+ 1,
525
+ 1,
526
+ 1,
527
+ 1,
528
+ 3,
529
+ 3,
530
+ 3,
531
+ 3,
532
+ 3,
533
+ 3,
534
+ 3,
535
+ 3,
536
+ 3,
537
+ 3,
538
+ 3,
539
+ 3,
540
+ 3,
541
+ 3,
542
+ 3,
543
+ 3,
544
+ 3,
545
+ 3,
546
+ 3,
547
+ 3,
548
+ 3,
549
+ 3,
550
+ 3,
551
+ 3,
552
+ 3,
553
+ 3,
554
+ 1,
555
+ 1,
556
+ 1,
557
+ 1,
558
+ 0,
559
+ /* UTF8 continuation byte range. */
560
+ 0,
561
+ 0,
562
+ 0,
563
+ 0,
564
+ 0,
565
+ 0,
566
+ 0,
567
+ 0,
568
+ 0,
569
+ 0,
570
+ 0,
571
+ 0,
572
+ 0,
573
+ 0,
574
+ 0,
575
+ 0,
576
+ 0,
577
+ 0,
578
+ 0,
579
+ 0,
580
+ 0,
581
+ 0,
582
+ 0,
583
+ 0,
584
+ 0,
585
+ 0,
586
+ 0,
587
+ 0,
588
+ 0,
589
+ 0,
590
+ 0,
591
+ 0,
592
+ 0,
593
+ 0,
594
+ 0,
595
+ 0,
596
+ 0,
597
+ 0,
598
+ 0,
599
+ 0,
600
+ 0,
601
+ 0,
602
+ 0,
603
+ 0,
604
+ 0,
605
+ 0,
606
+ 0,
607
+ 0,
608
+ 0,
609
+ 0,
610
+ 0,
611
+ 0,
612
+ 0,
613
+ 0,
614
+ 0,
615
+ 0,
616
+ 0,
617
+ 0,
618
+ 0,
619
+ 0,
620
+ 0,
621
+ 0,
622
+ 0,
623
+ 0,
624
+ 0,
625
+ 0,
626
+ 0,
627
+ 0,
628
+ 0,
629
+ 0,
630
+ 0,
631
+ 0,
632
+ 0,
633
+ 0,
634
+ 0,
635
+ 0,
636
+ 0,
637
+ 0,
638
+ 0,
639
+ 0,
640
+ 0,
641
+ 0,
642
+ 0,
643
+ 0,
644
+ 0,
645
+ 0,
646
+ 0,
647
+ 0,
648
+ 0,
649
+ 0,
650
+ 0,
651
+ 0,
652
+ 0,
653
+ 0,
654
+ 0,
655
+ 0,
656
+ 2,
657
+ 2,
658
+ 2,
659
+ 2,
660
+ 2,
661
+ 2,
662
+ 2,
663
+ 2,
664
+ 2,
665
+ 2,
666
+ 2,
667
+ 2,
668
+ 2,
669
+ 2,
670
+ 2,
671
+ 2,
672
+ 2,
673
+ 2,
674
+ 2,
675
+ 2,
676
+ 2,
677
+ 2,
678
+ 2,
679
+ 2,
680
+ 2,
681
+ 2,
682
+ 2,
683
+ 2,
684
+ 2,
685
+ 2,
686
+ 2,
687
+ 2,
688
+ 0,
689
+ 1,
690
+ 1,
691
+ 1,
692
+ 1,
693
+ 1,
694
+ 1,
695
+ 1,
696
+ 1,
697
+ 1,
698
+ 1,
699
+ 1,
700
+ 1,
701
+ 1,
702
+ 1,
703
+ 1,
704
+ 2,
705
+ 2,
706
+ 2,
707
+ 2,
708
+ 2,
709
+ 2,
710
+ 2,
711
+ 2,
712
+ 2,
713
+ 2,
714
+ 2,
715
+ 2,
716
+ 2,
717
+ 2,
718
+ 2,
719
+ 2,
720
+ 2,
721
+ 2,
722
+ 2,
723
+ 2,
724
+ 2,
725
+ 2,
726
+ 2,
727
+ 2,
728
+ 2,
729
+ 2,
730
+ 2,
731
+ 2,
732
+ 2,
733
+ 2,
734
+ 2,
735
+ 2,
736
+ 2,
737
+ 2,
738
+ 2,
739
+ 2,
740
+ 2,
741
+ 2,
742
+ 2,
743
+ 2,
744
+ 2,
745
+ 2,
746
+ 2,
747
+ 2,
748
+ 2,
749
+ 2,
750
+ 2,
751
+ 2,
752
+ 3,
753
+ 3,
754
+ 3,
755
+ 3,
756
+ 3,
757
+ 3,
758
+ 3,
759
+ 3,
760
+ 3,
761
+ 3,
762
+ 3,
763
+ 3,
764
+ 3,
765
+ 3,
766
+ 3,
767
+ 3,
768
+ 3,
769
+ 3,
770
+ 3,
771
+ 3,
772
+ 3,
773
+ 3,
774
+ 3,
775
+ 3,
776
+ 3,
777
+ 3,
778
+ 3,
779
+ 3,
780
+ 3,
781
+ 3,
782
+ 3,
783
+ 3,
784
+ 3,
785
+ 3,
786
+ 3,
787
+ 3,
788
+ 3,
789
+ 3,
790
+ 3,
791
+ 3,
792
+ 3,
793
+ 3,
794
+ 3,
795
+ 3,
796
+ 3,
797
+ 3,
798
+ 3,
799
+ 3,
800
+ 3,
801
+ 3,
802
+ 3,
803
+ 3,
804
+ 3,
805
+ 3,
806
+ 3,
807
+ 3,
808
+ 3,
809
+ 3,
810
+ 3,
811
+ 3,
812
+ 3,
813
+ 3,
814
+ 3,
815
+ 3,
816
+ 4,
817
+ 4,
818
+ 4,
819
+ 4,
820
+ 4,
821
+ 4,
822
+ 4,
823
+ 4,
824
+ 4,
825
+ 4,
826
+ 4,
827
+ 4,
828
+ 4,
829
+ 4,
830
+ 4,
831
+ 4,
832
+ 4,
833
+ 4,
834
+ 4,
835
+ 4,
836
+ 4,
837
+ 4,
838
+ 4,
839
+ 4,
840
+ 4,
841
+ 4,
842
+ 4,
843
+ 4,
844
+ 4,
845
+ 4,
846
+ 4,
847
+ 4,
848
+ 4,
849
+ 4,
850
+ 4,
851
+ 4,
852
+ 4,
853
+ 4,
854
+ 4,
855
+ 4,
856
+ 4,
857
+ 4,
858
+ 4,
859
+ 4,
860
+ 4,
861
+ 4,
862
+ 4,
863
+ 4,
864
+ 4,
865
+ 4,
866
+ 4,
867
+ 4,
868
+ 4,
869
+ 4,
870
+ 4,
871
+ 4,
872
+ 4,
873
+ 4,
874
+ 4,
875
+ 4,
876
+ 4,
877
+ 4,
878
+ 4,
879
+ 4,
880
+ 5,
881
+ 5,
882
+ 5,
883
+ 5,
884
+ 5,
885
+ 5,
886
+ 5,
887
+ 5,
888
+ 5,
889
+ 5,
890
+ 5,
891
+ 5,
892
+ 5,
893
+ 5,
894
+ 5,
895
+ 5,
896
+ 5,
897
+ 5,
898
+ 5,
899
+ 5,
900
+ 5,
901
+ 5,
902
+ 5,
903
+ 5,
904
+ 5,
905
+ 5,
906
+ 5,
907
+ 5,
908
+ 5,
909
+ 5,
910
+ 5,
911
+ 5,
912
+ 5,
913
+ 5,
914
+ 5,
915
+ 5,
916
+ 5,
917
+ 5,
918
+ 5,
919
+ 5,
920
+ 5,
921
+ 5,
922
+ 5,
923
+ 5,
924
+ 5,
925
+ 5,
926
+ 5,
927
+ 5,
928
+ 6,
929
+ 6,
930
+ 6,
931
+ 6,
932
+ 6,
933
+ 6,
934
+ 6,
935
+ 6,
936
+ 6,
937
+ 6,
938
+ 6,
939
+ 6,
940
+ 6,
941
+ 6,
942
+ 6,
943
+ 7,
944
+ /* CONTEXT_SIGNED, last byte, same as the above values shifted by 3 bits. */
945
+ 0,
946
+ 8,
947
+ 8,
948
+ 8,
949
+ 8,
950
+ 8,
951
+ 8,
952
+ 8,
953
+ 8,
954
+ 8,
955
+ 8,
956
+ 8,
957
+ 8,
958
+ 8,
959
+ 8,
960
+ 8,
961
+ 16,
962
+ 16,
963
+ 16,
964
+ 16,
965
+ 16,
966
+ 16,
967
+ 16,
968
+ 16,
969
+ 16,
970
+ 16,
971
+ 16,
972
+ 16,
973
+ 16,
974
+ 16,
975
+ 16,
976
+ 16,
977
+ 16,
978
+ 16,
979
+ 16,
980
+ 16,
981
+ 16,
982
+ 16,
983
+ 16,
984
+ 16,
985
+ 16,
986
+ 16,
987
+ 16,
988
+ 16,
989
+ 16,
990
+ 16,
991
+ 16,
992
+ 16,
993
+ 16,
994
+ 16,
995
+ 16,
996
+ 16,
997
+ 16,
998
+ 16,
999
+ 16,
1000
+ 16,
1001
+ 16,
1002
+ 16,
1003
+ 16,
1004
+ 16,
1005
+ 16,
1006
+ 16,
1007
+ 16,
1008
+ 16,
1009
+ 24,
1010
+ 24,
1011
+ 24,
1012
+ 24,
1013
+ 24,
1014
+ 24,
1015
+ 24,
1016
+ 24,
1017
+ 24,
1018
+ 24,
1019
+ 24,
1020
+ 24,
1021
+ 24,
1022
+ 24,
1023
+ 24,
1024
+ 24,
1025
+ 24,
1026
+ 24,
1027
+ 24,
1028
+ 24,
1029
+ 24,
1030
+ 24,
1031
+ 24,
1032
+ 24,
1033
+ 24,
1034
+ 24,
1035
+ 24,
1036
+ 24,
1037
+ 24,
1038
+ 24,
1039
+ 24,
1040
+ 24,
1041
+ 24,
1042
+ 24,
1043
+ 24,
1044
+ 24,
1045
+ 24,
1046
+ 24,
1047
+ 24,
1048
+ 24,
1049
+ 24,
1050
+ 24,
1051
+ 24,
1052
+ 24,
1053
+ 24,
1054
+ 24,
1055
+ 24,
1056
+ 24,
1057
+ 24,
1058
+ 24,
1059
+ 24,
1060
+ 24,
1061
+ 24,
1062
+ 24,
1063
+ 24,
1064
+ 24,
1065
+ 24,
1066
+ 24,
1067
+ 24,
1068
+ 24,
1069
+ 24,
1070
+ 24,
1071
+ 24,
1072
+ 24,
1073
+ 32,
1074
+ 32,
1075
+ 32,
1076
+ 32,
1077
+ 32,
1078
+ 32,
1079
+ 32,
1080
+ 32,
1081
+ 32,
1082
+ 32,
1083
+ 32,
1084
+ 32,
1085
+ 32,
1086
+ 32,
1087
+ 32,
1088
+ 32,
1089
+ 32,
1090
+ 32,
1091
+ 32,
1092
+ 32,
1093
+ 32,
1094
+ 32,
1095
+ 32,
1096
+ 32,
1097
+ 32,
1098
+ 32,
1099
+ 32,
1100
+ 32,
1101
+ 32,
1102
+ 32,
1103
+ 32,
1104
+ 32,
1105
+ 32,
1106
+ 32,
1107
+ 32,
1108
+ 32,
1109
+ 32,
1110
+ 32,
1111
+ 32,
1112
+ 32,
1113
+ 32,
1114
+ 32,
1115
+ 32,
1116
+ 32,
1117
+ 32,
1118
+ 32,
1119
+ 32,
1120
+ 32,
1121
+ 32,
1122
+ 32,
1123
+ 32,
1124
+ 32,
1125
+ 32,
1126
+ 32,
1127
+ 32,
1128
+ 32,
1129
+ 32,
1130
+ 32,
1131
+ 32,
1132
+ 32,
1133
+ 32,
1134
+ 32,
1135
+ 32,
1136
+ 32,
1137
+ 40,
1138
+ 40,
1139
+ 40,
1140
+ 40,
1141
+ 40,
1142
+ 40,
1143
+ 40,
1144
+ 40,
1145
+ 40,
1146
+ 40,
1147
+ 40,
1148
+ 40,
1149
+ 40,
1150
+ 40,
1151
+ 40,
1152
+ 40,
1153
+ 40,
1154
+ 40,
1155
+ 40,
1156
+ 40,
1157
+ 40,
1158
+ 40,
1159
+ 40,
1160
+ 40,
1161
+ 40,
1162
+ 40,
1163
+ 40,
1164
+ 40,
1165
+ 40,
1166
+ 40,
1167
+ 40,
1168
+ 40,
1169
+ 40,
1170
+ 40,
1171
+ 40,
1172
+ 40,
1173
+ 40,
1174
+ 40,
1175
+ 40,
1176
+ 40,
1177
+ 40,
1178
+ 40,
1179
+ 40,
1180
+ 40,
1181
+ 40,
1182
+ 40,
1183
+ 40,
1184
+ 40,
1185
+ 48,
1186
+ 48,
1187
+ 48,
1188
+ 48,
1189
+ 48,
1190
+ 48,
1191
+ 48,
1192
+ 48,
1193
+ 48,
1194
+ 48,
1195
+ 48,
1196
+ 48,
1197
+ 48,
1198
+ 48,
1199
+ 48,
1200
+ 56,
1201
+ /* CONTEXT_LSB6, last byte. */
1202
+ 0,
1203
+ 1,
1204
+ 2,
1205
+ 3,
1206
+ 4,
1207
+ 5,
1208
+ 6,
1209
+ 7,
1210
+ 8,
1211
+ 9,
1212
+ 10,
1213
+ 11,
1214
+ 12,
1215
+ 13,
1216
+ 14,
1217
+ 15,
1218
+ 16,
1219
+ 17,
1220
+ 18,
1221
+ 19,
1222
+ 20,
1223
+ 21,
1224
+ 22,
1225
+ 23,
1226
+ 24,
1227
+ 25,
1228
+ 26,
1229
+ 27,
1230
+ 28,
1231
+ 29,
1232
+ 30,
1233
+ 31,
1234
+ 32,
1235
+ 33,
1236
+ 34,
1237
+ 35,
1238
+ 36,
1239
+ 37,
1240
+ 38,
1241
+ 39,
1242
+ 40,
1243
+ 41,
1244
+ 42,
1245
+ 43,
1246
+ 44,
1247
+ 45,
1248
+ 46,
1249
+ 47,
1250
+ 48,
1251
+ 49,
1252
+ 50,
1253
+ 51,
1254
+ 52,
1255
+ 53,
1256
+ 54,
1257
+ 55,
1258
+ 56,
1259
+ 57,
1260
+ 58,
1261
+ 59,
1262
+ 60,
1263
+ 61,
1264
+ 62,
1265
+ 63,
1266
+ 0,
1267
+ 1,
1268
+ 2,
1269
+ 3,
1270
+ 4,
1271
+ 5,
1272
+ 6,
1273
+ 7,
1274
+ 8,
1275
+ 9,
1276
+ 10,
1277
+ 11,
1278
+ 12,
1279
+ 13,
1280
+ 14,
1281
+ 15,
1282
+ 16,
1283
+ 17,
1284
+ 18,
1285
+ 19,
1286
+ 20,
1287
+ 21,
1288
+ 22,
1289
+ 23,
1290
+ 24,
1291
+ 25,
1292
+ 26,
1293
+ 27,
1294
+ 28,
1295
+ 29,
1296
+ 30,
1297
+ 31,
1298
+ 32,
1299
+ 33,
1300
+ 34,
1301
+ 35,
1302
+ 36,
1303
+ 37,
1304
+ 38,
1305
+ 39,
1306
+ 40,
1307
+ 41,
1308
+ 42,
1309
+ 43,
1310
+ 44,
1311
+ 45,
1312
+ 46,
1313
+ 47,
1314
+ 48,
1315
+ 49,
1316
+ 50,
1317
+ 51,
1318
+ 52,
1319
+ 53,
1320
+ 54,
1321
+ 55,
1322
+ 56,
1323
+ 57,
1324
+ 58,
1325
+ 59,
1326
+ 60,
1327
+ 61,
1328
+ 62,
1329
+ 63,
1330
+ 0,
1331
+ 1,
1332
+ 2,
1333
+ 3,
1334
+ 4,
1335
+ 5,
1336
+ 6,
1337
+ 7,
1338
+ 8,
1339
+ 9,
1340
+ 10,
1341
+ 11,
1342
+ 12,
1343
+ 13,
1344
+ 14,
1345
+ 15,
1346
+ 16,
1347
+ 17,
1348
+ 18,
1349
+ 19,
1350
+ 20,
1351
+ 21,
1352
+ 22,
1353
+ 23,
1354
+ 24,
1355
+ 25,
1356
+ 26,
1357
+ 27,
1358
+ 28,
1359
+ 29,
1360
+ 30,
1361
+ 31,
1362
+ 32,
1363
+ 33,
1364
+ 34,
1365
+ 35,
1366
+ 36,
1367
+ 37,
1368
+ 38,
1369
+ 39,
1370
+ 40,
1371
+ 41,
1372
+ 42,
1373
+ 43,
1374
+ 44,
1375
+ 45,
1376
+ 46,
1377
+ 47,
1378
+ 48,
1379
+ 49,
1380
+ 50,
1381
+ 51,
1382
+ 52,
1383
+ 53,
1384
+ 54,
1385
+ 55,
1386
+ 56,
1387
+ 57,
1388
+ 58,
1389
+ 59,
1390
+ 60,
1391
+ 61,
1392
+ 62,
1393
+ 63,
1394
+ 0,
1395
+ 1,
1396
+ 2,
1397
+ 3,
1398
+ 4,
1399
+ 5,
1400
+ 6,
1401
+ 7,
1402
+ 8,
1403
+ 9,
1404
+ 10,
1405
+ 11,
1406
+ 12,
1407
+ 13,
1408
+ 14,
1409
+ 15,
1410
+ 16,
1411
+ 17,
1412
+ 18,
1413
+ 19,
1414
+ 20,
1415
+ 21,
1416
+ 22,
1417
+ 23,
1418
+ 24,
1419
+ 25,
1420
+ 26,
1421
+ 27,
1422
+ 28,
1423
+ 29,
1424
+ 30,
1425
+ 31,
1426
+ 32,
1427
+ 33,
1428
+ 34,
1429
+ 35,
1430
+ 36,
1431
+ 37,
1432
+ 38,
1433
+ 39,
1434
+ 40,
1435
+ 41,
1436
+ 42,
1437
+ 43,
1438
+ 44,
1439
+ 45,
1440
+ 46,
1441
+ 47,
1442
+ 48,
1443
+ 49,
1444
+ 50,
1445
+ 51,
1446
+ 52,
1447
+ 53,
1448
+ 54,
1449
+ 55,
1450
+ 56,
1451
+ 57,
1452
+ 58,
1453
+ 59,
1454
+ 60,
1455
+ 61,
1456
+ 62,
1457
+ 63,
1458
+ /* CONTEXT_MSB6, last byte. */
1459
+ 0,
1460
+ 0,
1461
+ 0,
1462
+ 0,
1463
+ 1,
1464
+ 1,
1465
+ 1,
1466
+ 1,
1467
+ 2,
1468
+ 2,
1469
+ 2,
1470
+ 2,
1471
+ 3,
1472
+ 3,
1473
+ 3,
1474
+ 3,
1475
+ 4,
1476
+ 4,
1477
+ 4,
1478
+ 4,
1479
+ 5,
1480
+ 5,
1481
+ 5,
1482
+ 5,
1483
+ 6,
1484
+ 6,
1485
+ 6,
1486
+ 6,
1487
+ 7,
1488
+ 7,
1489
+ 7,
1490
+ 7,
1491
+ 8,
1492
+ 8,
1493
+ 8,
1494
+ 8,
1495
+ 9,
1496
+ 9,
1497
+ 9,
1498
+ 9,
1499
+ 10,
1500
+ 10,
1501
+ 10,
1502
+ 10,
1503
+ 11,
1504
+ 11,
1505
+ 11,
1506
+ 11,
1507
+ 12,
1508
+ 12,
1509
+ 12,
1510
+ 12,
1511
+ 13,
1512
+ 13,
1513
+ 13,
1514
+ 13,
1515
+ 14,
1516
+ 14,
1517
+ 14,
1518
+ 14,
1519
+ 15,
1520
+ 15,
1521
+ 15,
1522
+ 15,
1523
+ 16,
1524
+ 16,
1525
+ 16,
1526
+ 16,
1527
+ 17,
1528
+ 17,
1529
+ 17,
1530
+ 17,
1531
+ 18,
1532
+ 18,
1533
+ 18,
1534
+ 18,
1535
+ 19,
1536
+ 19,
1537
+ 19,
1538
+ 19,
1539
+ 20,
1540
+ 20,
1541
+ 20,
1542
+ 20,
1543
+ 21,
1544
+ 21,
1545
+ 21,
1546
+ 21,
1547
+ 22,
1548
+ 22,
1549
+ 22,
1550
+ 22,
1551
+ 23,
1552
+ 23,
1553
+ 23,
1554
+ 23,
1555
+ 24,
1556
+ 24,
1557
+ 24,
1558
+ 24,
1559
+ 25,
1560
+ 25,
1561
+ 25,
1562
+ 25,
1563
+ 26,
1564
+ 26,
1565
+ 26,
1566
+ 26,
1567
+ 27,
1568
+ 27,
1569
+ 27,
1570
+ 27,
1571
+ 28,
1572
+ 28,
1573
+ 28,
1574
+ 28,
1575
+ 29,
1576
+ 29,
1577
+ 29,
1578
+ 29,
1579
+ 30,
1580
+ 30,
1581
+ 30,
1582
+ 30,
1583
+ 31,
1584
+ 31,
1585
+ 31,
1586
+ 31,
1587
+ 32,
1588
+ 32,
1589
+ 32,
1590
+ 32,
1591
+ 33,
1592
+ 33,
1593
+ 33,
1594
+ 33,
1595
+ 34,
1596
+ 34,
1597
+ 34,
1598
+ 34,
1599
+ 35,
1600
+ 35,
1601
+ 35,
1602
+ 35,
1603
+ 36,
1604
+ 36,
1605
+ 36,
1606
+ 36,
1607
+ 37,
1608
+ 37,
1609
+ 37,
1610
+ 37,
1611
+ 38,
1612
+ 38,
1613
+ 38,
1614
+ 38,
1615
+ 39,
1616
+ 39,
1617
+ 39,
1618
+ 39,
1619
+ 40,
1620
+ 40,
1621
+ 40,
1622
+ 40,
1623
+ 41,
1624
+ 41,
1625
+ 41,
1626
+ 41,
1627
+ 42,
1628
+ 42,
1629
+ 42,
1630
+ 42,
1631
+ 43,
1632
+ 43,
1633
+ 43,
1634
+ 43,
1635
+ 44,
1636
+ 44,
1637
+ 44,
1638
+ 44,
1639
+ 45,
1640
+ 45,
1641
+ 45,
1642
+ 45,
1643
+ 46,
1644
+ 46,
1645
+ 46,
1646
+ 46,
1647
+ 47,
1648
+ 47,
1649
+ 47,
1650
+ 47,
1651
+ 48,
1652
+ 48,
1653
+ 48,
1654
+ 48,
1655
+ 49,
1656
+ 49,
1657
+ 49,
1658
+ 49,
1659
+ 50,
1660
+ 50,
1661
+ 50,
1662
+ 50,
1663
+ 51,
1664
+ 51,
1665
+ 51,
1666
+ 51,
1667
+ 52,
1668
+ 52,
1669
+ 52,
1670
+ 52,
1671
+ 53,
1672
+ 53,
1673
+ 53,
1674
+ 53,
1675
+ 54,
1676
+ 54,
1677
+ 54,
1678
+ 54,
1679
+ 55,
1680
+ 55,
1681
+ 55,
1682
+ 55,
1683
+ 56,
1684
+ 56,
1685
+ 56,
1686
+ 56,
1687
+ 57,
1688
+ 57,
1689
+ 57,
1690
+ 57,
1691
+ 58,
1692
+ 58,
1693
+ 58,
1694
+ 58,
1695
+ 59,
1696
+ 59,
1697
+ 59,
1698
+ 59,
1699
+ 60,
1700
+ 60,
1701
+ 60,
1702
+ 60,
1703
+ 61,
1704
+ 61,
1705
+ 61,
1706
+ 61,
1707
+ 62,
1708
+ 62,
1709
+ 62,
1710
+ 62,
1711
+ 63,
1712
+ 63,
1713
+ 63,
1714
+ 63,
1715
+ /* CONTEXT_{M,L}SB6, second last byte, */
1716
+ 0,
1717
+ 0,
1718
+ 0,
1719
+ 0,
1720
+ 0,
1721
+ 0,
1722
+ 0,
1723
+ 0,
1724
+ 0,
1725
+ 0,
1726
+ 0,
1727
+ 0,
1728
+ 0,
1729
+ 0,
1730
+ 0,
1731
+ 0,
1732
+ 0,
1733
+ 0,
1734
+ 0,
1735
+ 0,
1736
+ 0,
1737
+ 0,
1738
+ 0,
1739
+ 0,
1740
+ 0,
1741
+ 0,
1742
+ 0,
1743
+ 0,
1744
+ 0,
1745
+ 0,
1746
+ 0,
1747
+ 0,
1748
+ 0,
1749
+ 0,
1750
+ 0,
1751
+ 0,
1752
+ 0,
1753
+ 0,
1754
+ 0,
1755
+ 0,
1756
+ 0,
1757
+ 0,
1758
+ 0,
1759
+ 0,
1760
+ 0,
1761
+ 0,
1762
+ 0,
1763
+ 0,
1764
+ 0,
1765
+ 0,
1766
+ 0,
1767
+ 0,
1768
+ 0,
1769
+ 0,
1770
+ 0,
1771
+ 0,
1772
+ 0,
1773
+ 0,
1774
+ 0,
1775
+ 0,
1776
+ 0,
1777
+ 0,
1778
+ 0,
1779
+ 0,
1780
+ 0,
1781
+ 0,
1782
+ 0,
1783
+ 0,
1784
+ 0,
1785
+ 0,
1786
+ 0,
1787
+ 0,
1788
+ 0,
1789
+ 0,
1790
+ 0,
1791
+ 0,
1792
+ 0,
1793
+ 0,
1794
+ 0,
1795
+ 0,
1796
+ 0,
1797
+ 0,
1798
+ 0,
1799
+ 0,
1800
+ 0,
1801
+ 0,
1802
+ 0,
1803
+ 0,
1804
+ 0,
1805
+ 0,
1806
+ 0,
1807
+ 0,
1808
+ 0,
1809
+ 0,
1810
+ 0,
1811
+ 0,
1812
+ 0,
1813
+ 0,
1814
+ 0,
1815
+ 0,
1816
+ 0,
1817
+ 0,
1818
+ 0,
1819
+ 0,
1820
+ 0,
1821
+ 0,
1822
+ 0,
1823
+ 0,
1824
+ 0,
1825
+ 0,
1826
+ 0,
1827
+ 0,
1828
+ 0,
1829
+ 0,
1830
+ 0,
1831
+ 0,
1832
+ 0,
1833
+ 0,
1834
+ 0,
1835
+ 0,
1836
+ 0,
1837
+ 0,
1838
+ 0,
1839
+ 0,
1840
+ 0,
1841
+ 0,
1842
+ 0,
1843
+ 0,
1844
+ 0,
1845
+ 0,
1846
+ 0,
1847
+ 0,
1848
+ 0,
1849
+ 0,
1850
+ 0,
1851
+ 0,
1852
+ 0,
1853
+ 0,
1854
+ 0,
1855
+ 0,
1856
+ 0,
1857
+ 0,
1858
+ 0,
1859
+ 0,
1860
+ 0,
1861
+ 0,
1862
+ 0,
1863
+ 0,
1864
+ 0,
1865
+ 0,
1866
+ 0,
1867
+ 0,
1868
+ 0,
1869
+ 0,
1870
+ 0,
1871
+ 0,
1872
+ 0,
1873
+ 0,
1874
+ 0,
1875
+ 0,
1876
+ 0,
1877
+ 0,
1878
+ 0,
1879
+ 0,
1880
+ 0,
1881
+ 0,
1882
+ 0,
1883
+ 0,
1884
+ 0,
1885
+ 0,
1886
+ 0,
1887
+ 0,
1888
+ 0,
1889
+ 0,
1890
+ 0,
1891
+ 0,
1892
+ 0,
1893
+ 0,
1894
+ 0,
1895
+ 0,
1896
+ 0,
1897
+ 0,
1898
+ 0,
1899
+ 0,
1900
+ 0,
1901
+ 0,
1902
+ 0,
1903
+ 0,
1904
+ 0,
1905
+ 0,
1906
+ 0,
1907
+ 0,
1908
+ 0,
1909
+ 0,
1910
+ 0,
1911
+ 0,
1912
+ 0,
1913
+ 0,
1914
+ 0,
1915
+ 0,
1916
+ 0,
1917
+ 0,
1918
+ 0,
1919
+ 0,
1920
+ 0,
1921
+ 0,
1922
+ 0,
1923
+ 0,
1924
+ 0,
1925
+ 0,
1926
+ 0,
1927
+ 0,
1928
+ 0,
1929
+ 0,
1930
+ 0,
1931
+ 0,
1932
+ 0,
1933
+ 0,
1934
+ 0,
1935
+ 0,
1936
+ 0,
1937
+ 0,
1938
+ 0,
1939
+ 0,
1940
+ 0,
1941
+ 0,
1942
+ 0,
1943
+ 0,
1944
+ 0,
1945
+ 0,
1946
+ 0,
1947
+ 0,
1948
+ 0,
1949
+ 0,
1950
+ 0,
1951
+ 0,
1952
+ 0,
1953
+ 0,
1954
+ 0,
1955
+ 0,
1956
+ 0,
1957
+ 0,
1958
+ 0,
1959
+ 0,
1960
+ 0,
1961
+ 0,
1962
+ 0,
1963
+ 0,
1964
+ 0,
1965
+ 0,
1966
+ 0,
1967
+ 0,
1968
+ 0,
1969
+ 0,
1970
+ 0,
1971
+ 0
1972
+ ]);
1973
+ exports3.lookupOffsets = new Uint16Array([
1974
+ /* CONTEXT_LSB6 */
1975
+ 1024,
1976
+ 1536,
1977
+ 1280,
1978
+ 1536,
1979
+ 0,
1980
+ 256,
1981
+ 768,
1982
+ 512
1983
+ ]);
1984
+ },
1985
+ {}
1986
+ ],
1987
+ 3: [
1988
+ function(require2, module3, exports3) {
1989
+ var BrotliInput = require2("./streams").BrotliInput;
1990
+ var BrotliOutput = require2("./streams").BrotliOutput;
1991
+ var BrotliBitReader = require2("./bit_reader");
1992
+ var BrotliDictionary = require2("./dictionary");
1993
+ var HuffmanCode = require2("./huffman").HuffmanCode;
1994
+ var BrotliBuildHuffmanTable = require2("./huffman").BrotliBuildHuffmanTable;
1995
+ var Context = require2("./context");
1996
+ var Prefix = require2("./prefix");
1997
+ var Transform = require2("./transform");
1998
+ var kDefaultCodeLength = 8;
1999
+ var kCodeLengthRepeatCode = 16;
2000
+ var kNumLiteralCodes = 256;
2001
+ var kNumInsertAndCopyCodes = 704;
2002
+ var kNumBlockLengthCodes = 26;
2003
+ var kLiteralContextBits = 6;
2004
+ var kDistanceContextBits = 2;
2005
+ var HUFFMAN_TABLE_BITS = 8;
2006
+ var HUFFMAN_TABLE_MASK = 255;
2007
+ var HUFFMAN_MAX_TABLE_SIZE = 1080;
2008
+ var CODE_LENGTH_CODES = 18;
2009
+ var kCodeLengthCodeOrder = new Uint8Array([
2010
+ 1,
2011
+ 2,
2012
+ 3,
2013
+ 4,
2014
+ 0,
2015
+ 5,
2016
+ 17,
2017
+ 6,
2018
+ 16,
2019
+ 7,
2020
+ 8,
2021
+ 9,
2022
+ 10,
2023
+ 11,
2024
+ 12,
2025
+ 13,
2026
+ 14,
2027
+ 15
2028
+ ]);
2029
+ var NUM_DISTANCE_SHORT_CODES = 16;
2030
+ var kDistanceShortCodeIndexOffset = new Uint8Array([
2031
+ 3,
2032
+ 2,
2033
+ 1,
2034
+ 0,
2035
+ 3,
2036
+ 3,
2037
+ 3,
2038
+ 3,
2039
+ 3,
2040
+ 3,
2041
+ 2,
2042
+ 2,
2043
+ 2,
2044
+ 2,
2045
+ 2,
2046
+ 2
2047
+ ]);
2048
+ var kDistanceShortCodeValueOffset = new Int8Array([
2049
+ 0,
2050
+ 0,
2051
+ 0,
2052
+ 0,
2053
+ -1,
2054
+ 1,
2055
+ -2,
2056
+ 2,
2057
+ -3,
2058
+ 3,
2059
+ -1,
2060
+ 1,
2061
+ -2,
2062
+ 2,
2063
+ -3,
2064
+ 3
2065
+ ]);
2066
+ var kMaxHuffmanTableSize = new Uint16Array([
2067
+ 256,
2068
+ 402,
2069
+ 436,
2070
+ 468,
2071
+ 500,
2072
+ 534,
2073
+ 566,
2074
+ 598,
2075
+ 630,
2076
+ 662,
2077
+ 694,
2078
+ 726,
2079
+ 758,
2080
+ 790,
2081
+ 822,
2082
+ 854,
2083
+ 886,
2084
+ 920,
2085
+ 952,
2086
+ 984,
2087
+ 1016,
2088
+ 1048,
2089
+ 1080
2090
+ ]);
2091
+ function DecodeWindowBits(br) {
2092
+ var n;
2093
+ if (br.readBits(1) === 0) {
2094
+ return 16;
2095
+ }
2096
+ n = br.readBits(3);
2097
+ if (n > 0) {
2098
+ return 17 + n;
2099
+ }
2100
+ n = br.readBits(3);
2101
+ if (n > 0) {
2102
+ return 8 + n;
2103
+ }
2104
+ return 17;
2105
+ }
2106
+ function DecodeVarLenUint8(br) {
2107
+ if (br.readBits(1)) {
2108
+ var nbits = br.readBits(3);
2109
+ if (nbits === 0) {
2110
+ return 1;
2111
+ } else {
2112
+ return br.readBits(nbits) + (1 << nbits);
2113
+ }
2114
+ }
2115
+ return 0;
2116
+ }
2117
+ function MetaBlockLength() {
2118
+ this.meta_block_length = 0;
2119
+ this.input_end = 0;
2120
+ this.is_uncompressed = 0;
2121
+ this.is_metadata = false;
2122
+ }
2123
+ function DecodeMetaBlockLength(br) {
2124
+ var out = new MetaBlockLength();
2125
+ var size_nibbles;
2126
+ var size_bytes;
2127
+ var i;
2128
+ out.input_end = br.readBits(1);
2129
+ if (out.input_end && br.readBits(1)) {
2130
+ return out;
2131
+ }
2132
+ size_nibbles = br.readBits(2) + 4;
2133
+ if (size_nibbles === 7) {
2134
+ out.is_metadata = true;
2135
+ if (br.readBits(1) !== 0)
2136
+ throw new Error("Invalid reserved bit");
2137
+ size_bytes = br.readBits(2);
2138
+ if (size_bytes === 0) return out;
2139
+ for (i = 0; i < size_bytes; i++) {
2140
+ var next_byte = br.readBits(8);
2141
+ if (i + 1 === size_bytes && size_bytes > 1 && next_byte === 0)
2142
+ throw new Error("Invalid size byte");
2143
+ out.meta_block_length |= next_byte << i * 8;
2144
+ }
2145
+ } else {
2146
+ for (i = 0; i < size_nibbles; ++i) {
2147
+ var next_nibble = br.readBits(4);
2148
+ if (i + 1 === size_nibbles && size_nibbles > 4 && next_nibble === 0)
2149
+ throw new Error("Invalid size nibble");
2150
+ out.meta_block_length |= next_nibble << i * 4;
2151
+ }
2152
+ }
2153
+ ++out.meta_block_length;
2154
+ if (!out.input_end && !out.is_metadata) {
2155
+ out.is_uncompressed = br.readBits(1);
2156
+ }
2157
+ return out;
2158
+ }
2159
+ function ReadSymbol(table, index, br) {
2160
+ var start_index = index;
2161
+ var nbits;
2162
+ br.fillBitWindow();
2163
+ index += br.val_ >>> br.bit_pos_ & HUFFMAN_TABLE_MASK;
2164
+ nbits = table[index].bits - HUFFMAN_TABLE_BITS;
2165
+ if (nbits > 0) {
2166
+ br.bit_pos_ += HUFFMAN_TABLE_BITS;
2167
+ index += table[index].value;
2168
+ index += br.val_ >>> br.bit_pos_ & (1 << nbits) - 1;
2169
+ }
2170
+ br.bit_pos_ += table[index].bits;
2171
+ return table[index].value;
2172
+ }
2173
+ function ReadHuffmanCodeLengths(code_length_code_lengths, num_symbols, code_lengths, br) {
2174
+ var symbol = 0;
2175
+ var prev_code_len = kDefaultCodeLength;
2176
+ var repeat = 0;
2177
+ var repeat_code_len = 0;
2178
+ var space = 32768;
2179
+ var table = [];
2180
+ for (var i = 0; i < 32; i++)
2181
+ table.push(new HuffmanCode(0, 0));
2182
+ BrotliBuildHuffmanTable(
2183
+ table,
2184
+ 0,
2185
+ 5,
2186
+ code_length_code_lengths,
2187
+ CODE_LENGTH_CODES
2188
+ );
2189
+ while (symbol < num_symbols && space > 0) {
2190
+ var p = 0;
2191
+ var code_len;
2192
+ br.readMoreInput();
2193
+ br.fillBitWindow();
2194
+ p += br.val_ >>> br.bit_pos_ & 31;
2195
+ br.bit_pos_ += table[p].bits;
2196
+ code_len = table[p].value & 255;
2197
+ if (code_len < kCodeLengthRepeatCode) {
2198
+ repeat = 0;
2199
+ code_lengths[symbol++] = code_len;
2200
+ if (code_len !== 0) {
2201
+ prev_code_len = code_len;
2202
+ space -= 32768 >> code_len;
2203
+ }
2204
+ } else {
2205
+ var extra_bits = code_len - 14;
2206
+ var old_repeat;
2207
+ var repeat_delta;
2208
+ var new_len = 0;
2209
+ if (code_len === kCodeLengthRepeatCode) {
2210
+ new_len = prev_code_len;
2211
+ }
2212
+ if (repeat_code_len !== new_len) {
2213
+ repeat = 0;
2214
+ repeat_code_len = new_len;
2215
+ }
2216
+ old_repeat = repeat;
2217
+ if (repeat > 0) {
2218
+ repeat -= 2;
2219
+ repeat <<= extra_bits;
2220
+ }
2221
+ repeat += br.readBits(extra_bits) + 3;
2222
+ repeat_delta = repeat - old_repeat;
2223
+ if (symbol + repeat_delta > num_symbols) {
2224
+ throw new Error(
2225
+ "[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols"
2226
+ );
2227
+ }
2228
+ for (var x = 0; x < repeat_delta; x++)
2229
+ code_lengths[symbol + x] = repeat_code_len;
2230
+ symbol += repeat_delta;
2231
+ if (repeat_code_len !== 0) {
2232
+ space -= repeat_delta << 15 - repeat_code_len;
2233
+ }
2234
+ }
2235
+ }
2236
+ if (space !== 0) {
2237
+ throw new Error(
2238
+ "[ReadHuffmanCodeLengths] space = " + space
2239
+ );
2240
+ }
2241
+ for (; symbol < num_symbols; symbol++)
2242
+ code_lengths[symbol] = 0;
2243
+ }
2244
+ function ReadHuffmanCode(alphabet_size, tables, table, br) {
2245
+ var table_size = 0;
2246
+ var simple_code_or_skip;
2247
+ var code_lengths = new Uint8Array(alphabet_size);
2248
+ br.readMoreInput();
2249
+ simple_code_or_skip = br.readBits(2);
2250
+ if (simple_code_or_skip === 1) {
2251
+ var i;
2252
+ var max_bits_counter = alphabet_size - 1;
2253
+ var max_bits = 0;
2254
+ var symbols = new Int32Array(4);
2255
+ var num_symbols = br.readBits(2) + 1;
2256
+ while (max_bits_counter) {
2257
+ max_bits_counter >>= 1;
2258
+ ++max_bits;
2259
+ }
2260
+ for (i = 0; i < num_symbols; ++i) {
2261
+ symbols[i] = br.readBits(max_bits) % alphabet_size;
2262
+ code_lengths[symbols[i]] = 2;
2263
+ }
2264
+ code_lengths[symbols[0]] = 1;
2265
+ switch (num_symbols) {
2266
+ case 1:
2267
+ break;
2268
+ case 3:
2269
+ if (symbols[0] === symbols[1] || symbols[0] === symbols[2] || symbols[1] === symbols[2]) {
2270
+ throw new Error(
2271
+ "[ReadHuffmanCode] invalid symbols"
2272
+ );
2273
+ }
2274
+ break;
2275
+ case 2:
2276
+ if (symbols[0] === symbols[1]) {
2277
+ throw new Error(
2278
+ "[ReadHuffmanCode] invalid symbols"
2279
+ );
2280
+ }
2281
+ code_lengths[symbols[1]] = 1;
2282
+ break;
2283
+ case 4:
2284
+ if (symbols[0] === symbols[1] || symbols[0] === symbols[2] || symbols[0] === symbols[3] || symbols[1] === symbols[2] || symbols[1] === symbols[3] || symbols[2] === symbols[3]) {
2285
+ throw new Error(
2286
+ "[ReadHuffmanCode] invalid symbols"
2287
+ );
2288
+ }
2289
+ if (br.readBits(1)) {
2290
+ code_lengths[symbols[2]] = 3;
2291
+ code_lengths[symbols[3]] = 3;
2292
+ } else {
2293
+ code_lengths[symbols[0]] = 2;
2294
+ }
2295
+ break;
2296
+ }
2297
+ } else {
2298
+ var i;
2299
+ var code_length_code_lengths = new Uint8Array(
2300
+ CODE_LENGTH_CODES
2301
+ );
2302
+ var space = 32;
2303
+ var num_codes = 0;
2304
+ var huff = [
2305
+ new HuffmanCode(2, 0),
2306
+ new HuffmanCode(2, 4),
2307
+ new HuffmanCode(2, 3),
2308
+ new HuffmanCode(3, 2),
2309
+ new HuffmanCode(2, 0),
2310
+ new HuffmanCode(2, 4),
2311
+ new HuffmanCode(2, 3),
2312
+ new HuffmanCode(4, 1),
2313
+ new HuffmanCode(2, 0),
2314
+ new HuffmanCode(2, 4),
2315
+ new HuffmanCode(2, 3),
2316
+ new HuffmanCode(3, 2),
2317
+ new HuffmanCode(2, 0),
2318
+ new HuffmanCode(2, 4),
2319
+ new HuffmanCode(2, 3),
2320
+ new HuffmanCode(4, 5)
2321
+ ];
2322
+ for (i = simple_code_or_skip; i < CODE_LENGTH_CODES && space > 0; ++i) {
2323
+ var code_len_idx = kCodeLengthCodeOrder[i];
2324
+ var p = 0;
2325
+ var v;
2326
+ br.fillBitWindow();
2327
+ p += br.val_ >>> br.bit_pos_ & 15;
2328
+ br.bit_pos_ += huff[p].bits;
2329
+ v = huff[p].value;
2330
+ code_length_code_lengths[code_len_idx] = v;
2331
+ if (v !== 0) {
2332
+ space -= 32 >> v;
2333
+ ++num_codes;
2334
+ }
2335
+ }
2336
+ if (!(num_codes === 1 || space === 0))
2337
+ throw new Error(
2338
+ "[ReadHuffmanCode] invalid num_codes or space"
2339
+ );
2340
+ ReadHuffmanCodeLengths(
2341
+ code_length_code_lengths,
2342
+ alphabet_size,
2343
+ code_lengths,
2344
+ br
2345
+ );
2346
+ }
2347
+ table_size = BrotliBuildHuffmanTable(
2348
+ tables,
2349
+ table,
2350
+ HUFFMAN_TABLE_BITS,
2351
+ code_lengths,
2352
+ alphabet_size
2353
+ );
2354
+ if (table_size === 0) {
2355
+ throw new Error(
2356
+ "[ReadHuffmanCode] BuildHuffmanTable failed: "
2357
+ );
2358
+ }
2359
+ return table_size;
2360
+ }
2361
+ function ReadBlockLength(table, index, br) {
2362
+ var code;
2363
+ var nbits;
2364
+ code = ReadSymbol(table, index, br);
2365
+ nbits = Prefix.kBlockLengthPrefixCode[code].nbits;
2366
+ return Prefix.kBlockLengthPrefixCode[code].offset + br.readBits(nbits);
2367
+ }
2368
+ function TranslateShortCodes(code, ringbuffer, index) {
2369
+ var val;
2370
+ if (code < NUM_DISTANCE_SHORT_CODES) {
2371
+ index += kDistanceShortCodeIndexOffset[code];
2372
+ index &= 3;
2373
+ val = ringbuffer[index] + kDistanceShortCodeValueOffset[code];
2374
+ } else {
2375
+ val = code - NUM_DISTANCE_SHORT_CODES + 1;
2376
+ }
2377
+ return val;
2378
+ }
2379
+ function MoveToFront(v, index) {
2380
+ var value = v[index];
2381
+ var i = index;
2382
+ for (; i; --i) v[i] = v[i - 1];
2383
+ v[0] = value;
2384
+ }
2385
+ function InverseMoveToFrontTransform(v, v_len) {
2386
+ var mtf = new Uint8Array(256);
2387
+ var i;
2388
+ for (i = 0; i < 256; ++i) {
2389
+ mtf[i] = i;
2390
+ }
2391
+ for (i = 0; i < v_len; ++i) {
2392
+ var index = v[i];
2393
+ v[i] = mtf[index];
2394
+ if (index) MoveToFront(mtf, index);
2395
+ }
2396
+ }
2397
+ function HuffmanTreeGroup(alphabet_size, num_htrees) {
2398
+ this.alphabet_size = alphabet_size;
2399
+ this.num_htrees = num_htrees;
2400
+ this.codes = new Array(
2401
+ num_htrees + num_htrees * kMaxHuffmanTableSize[alphabet_size + 31 >>> 5]
2402
+ );
2403
+ this.htrees = new Uint32Array(num_htrees);
2404
+ }
2405
+ HuffmanTreeGroup.prototype.decode = function(br) {
2406
+ var i;
2407
+ var table_size;
2408
+ var next = 0;
2409
+ for (i = 0; i < this.num_htrees; ++i) {
2410
+ this.htrees[i] = next;
2411
+ table_size = ReadHuffmanCode(
2412
+ this.alphabet_size,
2413
+ this.codes,
2414
+ next,
2415
+ br
2416
+ );
2417
+ next += table_size;
2418
+ }
2419
+ };
2420
+ function DecodeContextMap(context_map_size, br) {
2421
+ var out = { num_htrees: null, context_map: null };
2422
+ var use_rle_for_zeros;
2423
+ var max_run_length_prefix = 0;
2424
+ var table;
2425
+ var i;
2426
+ br.readMoreInput();
2427
+ var num_htrees = out.num_htrees = DecodeVarLenUint8(br) + 1;
2428
+ var context_map = out.context_map = new Uint8Array(
2429
+ context_map_size
2430
+ );
2431
+ if (num_htrees <= 1) {
2432
+ return out;
2433
+ }
2434
+ use_rle_for_zeros = br.readBits(1);
2435
+ if (use_rle_for_zeros) {
2436
+ max_run_length_prefix = br.readBits(4) + 1;
2437
+ }
2438
+ table = [];
2439
+ for (i = 0; i < HUFFMAN_MAX_TABLE_SIZE; i++) {
2440
+ table[i] = new HuffmanCode(0, 0);
2441
+ }
2442
+ ReadHuffmanCode(
2443
+ num_htrees + max_run_length_prefix,
2444
+ table,
2445
+ 0,
2446
+ br
2447
+ );
2448
+ for (i = 0; i < context_map_size; ) {
2449
+ var code;
2450
+ br.readMoreInput();
2451
+ code = ReadSymbol(table, 0, br);
2452
+ if (code === 0) {
2453
+ context_map[i] = 0;
2454
+ ++i;
2455
+ } else if (code <= max_run_length_prefix) {
2456
+ var reps = 1 + (1 << code) + br.readBits(code);
2457
+ while (--reps) {
2458
+ if (i >= context_map_size) {
2459
+ throw new Error(
2460
+ "[DecodeContextMap] i >= context_map_size"
2461
+ );
2462
+ }
2463
+ context_map[i] = 0;
2464
+ ++i;
2465
+ }
2466
+ } else {
2467
+ context_map[i] = code - max_run_length_prefix;
2468
+ ++i;
2469
+ }
2470
+ }
2471
+ if (br.readBits(1)) {
2472
+ InverseMoveToFrontTransform(
2473
+ context_map,
2474
+ context_map_size
2475
+ );
2476
+ }
2477
+ return out;
2478
+ }
2479
+ function DecodeBlockType(max_block_type, trees, tree_type, block_types, ringbuffers, indexes, br) {
2480
+ var ringbuffer = tree_type * 2;
2481
+ var index = tree_type;
2482
+ var type_code = ReadSymbol(
2483
+ trees,
2484
+ tree_type * HUFFMAN_MAX_TABLE_SIZE,
2485
+ br
2486
+ );
2487
+ var block_type;
2488
+ if (type_code === 0) {
2489
+ block_type = ringbuffers[ringbuffer + (indexes[index] & 1)];
2490
+ } else if (type_code === 1) {
2491
+ block_type = ringbuffers[ringbuffer + (indexes[index] - 1 & 1)] + 1;
2492
+ } else {
2493
+ block_type = type_code - 2;
2494
+ }
2495
+ if (block_type >= max_block_type) {
2496
+ block_type -= max_block_type;
2497
+ }
2498
+ block_types[tree_type] = block_type;
2499
+ ringbuffers[ringbuffer + (indexes[index] & 1)] = block_type;
2500
+ ++indexes[index];
2501
+ }
2502
+ function CopyUncompressedBlockToOutput(output, len, pos, ringbuffer, ringbuffer_mask, br) {
2503
+ var rb_size = ringbuffer_mask + 1;
2504
+ var rb_pos = pos & ringbuffer_mask;
2505
+ var br_pos = br.pos_ & BrotliBitReader.IBUF_MASK;
2506
+ var nbytes;
2507
+ if (len < 8 || br.bit_pos_ + (len << 3) < br.bit_end_pos_) {
2508
+ while (len-- > 0) {
2509
+ br.readMoreInput();
2510
+ ringbuffer[rb_pos++] = br.readBits(8);
2511
+ if (rb_pos === rb_size) {
2512
+ output.write(ringbuffer, rb_size);
2513
+ rb_pos = 0;
2514
+ }
2515
+ }
2516
+ return;
2517
+ }
2518
+ if (br.bit_end_pos_ < 32) {
2519
+ throw new Error(
2520
+ "[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32"
2521
+ );
2522
+ }
2523
+ while (br.bit_pos_ < 32) {
2524
+ ringbuffer[rb_pos] = br.val_ >>> br.bit_pos_;
2525
+ br.bit_pos_ += 8;
2526
+ ++rb_pos;
2527
+ --len;
2528
+ }
2529
+ nbytes = br.bit_end_pos_ - br.bit_pos_ >> 3;
2530
+ if (br_pos + nbytes > BrotliBitReader.IBUF_MASK) {
2531
+ var tail = BrotliBitReader.IBUF_MASK + 1 - br_pos;
2532
+ for (var x = 0; x < tail; x++)
2533
+ ringbuffer[rb_pos + x] = br.buf_[br_pos + x];
2534
+ nbytes -= tail;
2535
+ rb_pos += tail;
2536
+ len -= tail;
2537
+ br_pos = 0;
2538
+ }
2539
+ for (var x = 0; x < nbytes; x++)
2540
+ ringbuffer[rb_pos + x] = br.buf_[br_pos + x];
2541
+ rb_pos += nbytes;
2542
+ len -= nbytes;
2543
+ if (rb_pos >= rb_size) {
2544
+ output.write(ringbuffer, rb_size);
2545
+ rb_pos -= rb_size;
2546
+ for (var x = 0; x < rb_pos; x++)
2547
+ ringbuffer[x] = ringbuffer[rb_size + x];
2548
+ }
2549
+ while (rb_pos + len >= rb_size) {
2550
+ nbytes = rb_size - rb_pos;
2551
+ if (br.input_.read(ringbuffer, rb_pos, nbytes) < nbytes) {
2552
+ throw new Error(
2553
+ "[CopyUncompressedBlockToOutput] not enough bytes"
2554
+ );
2555
+ }
2556
+ output.write(ringbuffer, rb_size);
2557
+ len -= nbytes;
2558
+ rb_pos = 0;
2559
+ }
2560
+ if (br.input_.read(ringbuffer, rb_pos, len) < len) {
2561
+ throw new Error(
2562
+ "[CopyUncompressedBlockToOutput] not enough bytes"
2563
+ );
2564
+ }
2565
+ br.reset();
2566
+ }
2567
+ function JumpToByteBoundary(br) {
2568
+ var new_bit_pos = br.bit_pos_ + 7 & ~7;
2569
+ var pad_bits = br.readBits(new_bit_pos - br.bit_pos_);
2570
+ return pad_bits == 0;
2571
+ }
2572
+ function BrotliDecompressedSize(buffer) {
2573
+ var input = new BrotliInput(buffer);
2574
+ var br = new BrotliBitReader(input);
2575
+ DecodeWindowBits(br);
2576
+ var out = DecodeMetaBlockLength(br);
2577
+ return out.meta_block_length;
2578
+ }
2579
+ exports3.BrotliDecompressedSize = BrotliDecompressedSize;
2580
+ function BrotliDecompressBuffer(buffer, output_size) {
2581
+ var input = new BrotliInput(buffer);
2582
+ if (output_size == null) {
2583
+ output_size = BrotliDecompressedSize(buffer);
2584
+ }
2585
+ var output_buffer = new Uint8Array(output_size);
2586
+ var output = new BrotliOutput(output_buffer);
2587
+ BrotliDecompress(input, output);
2588
+ if (output.pos < output.buffer.length) {
2589
+ output.buffer = output.buffer.subarray(
2590
+ 0,
2591
+ output.pos
2592
+ );
2593
+ }
2594
+ return output.buffer;
2595
+ }
2596
+ exports3.BrotliDecompressBuffer = BrotliDecompressBuffer;
2597
+ function BrotliDecompress(input, output) {
2598
+ var i;
2599
+ var pos = 0;
2600
+ var input_end = 0;
2601
+ var window_bits = 0;
2602
+ var max_backward_distance;
2603
+ var max_distance = 0;
2604
+ var ringbuffer_size;
2605
+ var ringbuffer_mask;
2606
+ var ringbuffer;
2607
+ var ringbuffer_end;
2608
+ var dist_rb = [16, 15, 11, 4];
2609
+ var dist_rb_idx = 0;
2610
+ var prev_byte1 = 0;
2611
+ var prev_byte2 = 0;
2612
+ var hgroup = [
2613
+ new HuffmanTreeGroup(0, 0),
2614
+ new HuffmanTreeGroup(0, 0),
2615
+ new HuffmanTreeGroup(0, 0)
2616
+ ];
2617
+ var block_type_trees;
2618
+ var block_len_trees;
2619
+ var br;
2620
+ var kRingBufferWriteAheadSlack = 128 + BrotliBitReader.READ_SIZE;
2621
+ br = new BrotliBitReader(input);
2622
+ window_bits = DecodeWindowBits(br);
2623
+ max_backward_distance = (1 << window_bits) - 16;
2624
+ ringbuffer_size = 1 << window_bits;
2625
+ ringbuffer_mask = ringbuffer_size - 1;
2626
+ ringbuffer = new Uint8Array(
2627
+ ringbuffer_size + kRingBufferWriteAheadSlack + BrotliDictionary.maxDictionaryWordLength
2628
+ );
2629
+ ringbuffer_end = ringbuffer_size;
2630
+ block_type_trees = [];
2631
+ block_len_trees = [];
2632
+ for (var x = 0; x < 3 * HUFFMAN_MAX_TABLE_SIZE; x++) {
2633
+ block_type_trees[x] = new HuffmanCode(0, 0);
2634
+ block_len_trees[x] = new HuffmanCode(0, 0);
2635
+ }
2636
+ while (!input_end) {
2637
+ var meta_block_remaining_len = 0;
2638
+ var is_uncompressed;
2639
+ var block_length = [1 << 28, 1 << 28, 1 << 28];
2640
+ var block_type = [0];
2641
+ var num_block_types = [1, 1, 1];
2642
+ var block_type_rb = [0, 1, 0, 1, 0, 1];
2643
+ var block_type_rb_index = [0];
2644
+ var distance_postfix_bits;
2645
+ var num_direct_distance_codes;
2646
+ var distance_postfix_mask;
2647
+ var num_distance_codes;
2648
+ var context_map = null;
2649
+ var context_modes = null;
2650
+ var num_literal_htrees;
2651
+ var dist_context_map = null;
2652
+ var num_dist_htrees;
2653
+ var context_offset = 0;
2654
+ var context_map_slice = null;
2655
+ var literal_htree_index = 0;
2656
+ var dist_context_offset = 0;
2657
+ var dist_context_map_slice = null;
2658
+ var dist_htree_index = 0;
2659
+ var context_lookup_offset1 = 0;
2660
+ var context_lookup_offset2 = 0;
2661
+ var context_mode;
2662
+ var htree_command;
2663
+ for (i = 0; i < 3; ++i) {
2664
+ hgroup[i].codes = null;
2665
+ hgroup[i].htrees = null;
2666
+ }
2667
+ br.readMoreInput();
2668
+ var _out = DecodeMetaBlockLength(br);
2669
+ meta_block_remaining_len = _out.meta_block_length;
2670
+ if (pos + meta_block_remaining_len > output.buffer.length) {
2671
+ var tmp = new Uint8Array(
2672
+ pos + meta_block_remaining_len
2673
+ );
2674
+ tmp.set(output.buffer);
2675
+ output.buffer = tmp;
2676
+ }
2677
+ input_end = _out.input_end;
2678
+ is_uncompressed = _out.is_uncompressed;
2679
+ if (_out.is_metadata) {
2680
+ JumpToByteBoundary(br);
2681
+ for (; meta_block_remaining_len > 0; --meta_block_remaining_len) {
2682
+ br.readMoreInput();
2683
+ br.readBits(8);
2684
+ }
2685
+ continue;
2686
+ }
2687
+ if (meta_block_remaining_len === 0) {
2688
+ continue;
2689
+ }
2690
+ if (is_uncompressed) {
2691
+ br.bit_pos_ = br.bit_pos_ + 7 & ~7;
2692
+ CopyUncompressedBlockToOutput(
2693
+ output,
2694
+ meta_block_remaining_len,
2695
+ pos,
2696
+ ringbuffer,
2697
+ ringbuffer_mask,
2698
+ br
2699
+ );
2700
+ pos += meta_block_remaining_len;
2701
+ continue;
2702
+ }
2703
+ for (i = 0; i < 3; ++i) {
2704
+ num_block_types[i] = DecodeVarLenUint8(br) + 1;
2705
+ if (num_block_types[i] >= 2) {
2706
+ ReadHuffmanCode(
2707
+ num_block_types[i] + 2,
2708
+ block_type_trees,
2709
+ i * HUFFMAN_MAX_TABLE_SIZE,
2710
+ br
2711
+ );
2712
+ ReadHuffmanCode(
2713
+ kNumBlockLengthCodes,
2714
+ block_len_trees,
2715
+ i * HUFFMAN_MAX_TABLE_SIZE,
2716
+ br
2717
+ );
2718
+ block_length[i] = ReadBlockLength(
2719
+ block_len_trees,
2720
+ i * HUFFMAN_MAX_TABLE_SIZE,
2721
+ br
2722
+ );
2723
+ block_type_rb_index[i] = 1;
2724
+ }
2725
+ }
2726
+ br.readMoreInput();
2727
+ distance_postfix_bits = br.readBits(2);
2728
+ num_direct_distance_codes = NUM_DISTANCE_SHORT_CODES + (br.readBits(4) << distance_postfix_bits);
2729
+ distance_postfix_mask = (1 << distance_postfix_bits) - 1;
2730
+ num_distance_codes = num_direct_distance_codes + (48 << distance_postfix_bits);
2731
+ context_modes = new Uint8Array(
2732
+ num_block_types[0]
2733
+ );
2734
+ for (i = 0; i < num_block_types[0]; ++i) {
2735
+ br.readMoreInput();
2736
+ context_modes[i] = br.readBits(2) << 1;
2737
+ }
2738
+ var _o1 = DecodeContextMap(
2739
+ num_block_types[0] << kLiteralContextBits,
2740
+ br
2741
+ );
2742
+ num_literal_htrees = _o1.num_htrees;
2743
+ context_map = _o1.context_map;
2744
+ var _o2 = DecodeContextMap(
2745
+ num_block_types[2] << kDistanceContextBits,
2746
+ br
2747
+ );
2748
+ num_dist_htrees = _o2.num_htrees;
2749
+ dist_context_map = _o2.context_map;
2750
+ hgroup[0] = new HuffmanTreeGroup(
2751
+ kNumLiteralCodes,
2752
+ num_literal_htrees
2753
+ );
2754
+ hgroup[1] = new HuffmanTreeGroup(
2755
+ kNumInsertAndCopyCodes,
2756
+ num_block_types[1]
2757
+ );
2758
+ hgroup[2] = new HuffmanTreeGroup(
2759
+ num_distance_codes,
2760
+ num_dist_htrees
2761
+ );
2762
+ for (i = 0; i < 3; ++i) {
2763
+ hgroup[i].decode(br);
2764
+ }
2765
+ context_map_slice = 0;
2766
+ dist_context_map_slice = 0;
2767
+ context_mode = context_modes[block_type[0]];
2768
+ context_lookup_offset1 = Context.lookupOffsets[context_mode];
2769
+ context_lookup_offset2 = Context.lookupOffsets[context_mode + 1];
2770
+ htree_command = hgroup[1].htrees[0];
2771
+ while (meta_block_remaining_len > 0) {
2772
+ var cmd_code;
2773
+ var range_idx;
2774
+ var insert_code;
2775
+ var copy_code;
2776
+ var insert_length;
2777
+ var copy_length;
2778
+ var distance_code;
2779
+ var distance;
2780
+ var context;
2781
+ var j;
2782
+ var copy_dst;
2783
+ br.readMoreInput();
2784
+ if (block_length[1] === 0) {
2785
+ DecodeBlockType(
2786
+ num_block_types[1],
2787
+ block_type_trees,
2788
+ 1,
2789
+ block_type,
2790
+ block_type_rb,
2791
+ block_type_rb_index,
2792
+ br
2793
+ );
2794
+ block_length[1] = ReadBlockLength(
2795
+ block_len_trees,
2796
+ HUFFMAN_MAX_TABLE_SIZE,
2797
+ br
2798
+ );
2799
+ htree_command = hgroup[1].htrees[block_type[1]];
2800
+ }
2801
+ --block_length[1];
2802
+ cmd_code = ReadSymbol(
2803
+ hgroup[1].codes,
2804
+ htree_command,
2805
+ br
2806
+ );
2807
+ range_idx = cmd_code >> 6;
2808
+ if (range_idx >= 2) {
2809
+ range_idx -= 2;
2810
+ distance_code = -1;
2811
+ } else {
2812
+ distance_code = 0;
2813
+ }
2814
+ insert_code = Prefix.kInsertRangeLut[range_idx] + (cmd_code >> 3 & 7);
2815
+ copy_code = Prefix.kCopyRangeLut[range_idx] + (cmd_code & 7);
2816
+ insert_length = Prefix.kInsertLengthPrefixCode[insert_code].offset + br.readBits(
2817
+ Prefix.kInsertLengthPrefixCode[insert_code].nbits
2818
+ );
2819
+ copy_length = Prefix.kCopyLengthPrefixCode[copy_code].offset + br.readBits(
2820
+ Prefix.kCopyLengthPrefixCode[copy_code].nbits
2821
+ );
2822
+ prev_byte1 = ringbuffer[pos - 1 & ringbuffer_mask];
2823
+ prev_byte2 = ringbuffer[pos - 2 & ringbuffer_mask];
2824
+ for (j = 0; j < insert_length; ++j) {
2825
+ br.readMoreInput();
2826
+ if (block_length[0] === 0) {
2827
+ DecodeBlockType(
2828
+ num_block_types[0],
2829
+ block_type_trees,
2830
+ 0,
2831
+ block_type,
2832
+ block_type_rb,
2833
+ block_type_rb_index,
2834
+ br
2835
+ );
2836
+ block_length[0] = ReadBlockLength(
2837
+ block_len_trees,
2838
+ 0,
2839
+ br
2840
+ );
2841
+ context_offset = block_type[0] << kLiteralContextBits;
2842
+ context_map_slice = context_offset;
2843
+ context_mode = context_modes[block_type[0]];
2844
+ context_lookup_offset1 = Context.lookupOffsets[context_mode];
2845
+ context_lookup_offset2 = Context.lookupOffsets[context_mode + 1];
2846
+ }
2847
+ context = Context.lookup[context_lookup_offset1 + prev_byte1] | Context.lookup[context_lookup_offset2 + prev_byte2];
2848
+ literal_htree_index = context_map[context_map_slice + context];
2849
+ --block_length[0];
2850
+ prev_byte2 = prev_byte1;
2851
+ prev_byte1 = ReadSymbol(
2852
+ hgroup[0].codes,
2853
+ hgroup[0].htrees[literal_htree_index],
2854
+ br
2855
+ );
2856
+ ringbuffer[pos & ringbuffer_mask] = prev_byte1;
2857
+ if ((pos & ringbuffer_mask) === ringbuffer_mask) {
2858
+ output.write(
2859
+ ringbuffer,
2860
+ ringbuffer_size
2861
+ );
2862
+ }
2863
+ ++pos;
2864
+ }
2865
+ meta_block_remaining_len -= insert_length;
2866
+ if (meta_block_remaining_len <= 0) break;
2867
+ if (distance_code < 0) {
2868
+ var context;
2869
+ br.readMoreInput();
2870
+ if (block_length[2] === 0) {
2871
+ DecodeBlockType(
2872
+ num_block_types[2],
2873
+ block_type_trees,
2874
+ 2,
2875
+ block_type,
2876
+ block_type_rb,
2877
+ block_type_rb_index,
2878
+ br
2879
+ );
2880
+ block_length[2] = ReadBlockLength(
2881
+ block_len_trees,
2882
+ 2 * HUFFMAN_MAX_TABLE_SIZE,
2883
+ br
2884
+ );
2885
+ dist_context_offset = block_type[2] << kDistanceContextBits;
2886
+ dist_context_map_slice = dist_context_offset;
2887
+ }
2888
+ --block_length[2];
2889
+ context = (copy_length > 4 ? 3 : copy_length - 2) & 255;
2890
+ dist_htree_index = dist_context_map[dist_context_map_slice + context];
2891
+ distance_code = ReadSymbol(
2892
+ hgroup[2].codes,
2893
+ hgroup[2].htrees[dist_htree_index],
2894
+ br
2895
+ );
2896
+ if (distance_code >= num_direct_distance_codes) {
2897
+ var nbits;
2898
+ var postfix;
2899
+ var offset;
2900
+ distance_code -= num_direct_distance_codes;
2901
+ postfix = distance_code & distance_postfix_mask;
2902
+ distance_code >>= distance_postfix_bits;
2903
+ nbits = (distance_code >> 1) + 1;
2904
+ offset = (2 + (distance_code & 1) << nbits) - 4;
2905
+ distance_code = num_direct_distance_codes + (offset + br.readBits(nbits) << distance_postfix_bits) + postfix;
2906
+ }
2907
+ }
2908
+ distance = TranslateShortCodes(
2909
+ distance_code,
2910
+ dist_rb,
2911
+ dist_rb_idx
2912
+ );
2913
+ if (distance < 0) {
2914
+ throw new Error(
2915
+ "[BrotliDecompress] invalid distance"
2916
+ );
2917
+ }
2918
+ if (pos < max_backward_distance && max_distance !== max_backward_distance) {
2919
+ max_distance = pos;
2920
+ } else {
2921
+ max_distance = max_backward_distance;
2922
+ }
2923
+ copy_dst = pos & ringbuffer_mask;
2924
+ if (distance > max_distance) {
2925
+ if (copy_length >= BrotliDictionary.minDictionaryWordLength && copy_length <= BrotliDictionary.maxDictionaryWordLength) {
2926
+ var offset = BrotliDictionary.offsetsByLength[copy_length];
2927
+ var word_id = distance - max_distance - 1;
2928
+ var shift = BrotliDictionary.sizeBitsByLength[copy_length];
2929
+ var mask = (1 << shift) - 1;
2930
+ var word_idx = word_id & mask;
2931
+ var transform_idx = word_id >> shift;
2932
+ offset += word_idx * copy_length;
2933
+ if (transform_idx < Transform.kNumTransforms) {
2934
+ var len = Transform.transformDictionaryWord(
2935
+ ringbuffer,
2936
+ copy_dst,
2937
+ offset,
2938
+ copy_length,
2939
+ transform_idx
2940
+ );
2941
+ copy_dst += len;
2942
+ pos += len;
2943
+ meta_block_remaining_len -= len;
2944
+ if (copy_dst >= ringbuffer_end) {
2945
+ output.write(
2946
+ ringbuffer,
2947
+ ringbuffer_size
2948
+ );
2949
+ for (var _x = 0; _x < copy_dst - ringbuffer_end; _x++)
2950
+ ringbuffer[_x] = ringbuffer[ringbuffer_end + _x];
2951
+ }
2952
+ } else {
2953
+ throw new Error(
2954
+ "Invalid backward reference. pos: " + pos + " distance: " + distance + " len: " + copy_length + " bytes left: " + meta_block_remaining_len
2955
+ );
2956
+ }
2957
+ } else {
2958
+ throw new Error(
2959
+ "Invalid backward reference. pos: " + pos + " distance: " + distance + " len: " + copy_length + " bytes left: " + meta_block_remaining_len
2960
+ );
2961
+ }
2962
+ } else {
2963
+ if (distance_code > 0) {
2964
+ dist_rb[dist_rb_idx & 3] = distance;
2965
+ ++dist_rb_idx;
2966
+ }
2967
+ if (copy_length > meta_block_remaining_len) {
2968
+ throw new Error(
2969
+ "Invalid backward reference. pos: " + pos + " distance: " + distance + " len: " + copy_length + " bytes left: " + meta_block_remaining_len
2970
+ );
2971
+ }
2972
+ for (j = 0; j < copy_length; ++j) {
2973
+ ringbuffer[pos & ringbuffer_mask] = ringbuffer[pos - distance & ringbuffer_mask];
2974
+ if ((pos & ringbuffer_mask) === ringbuffer_mask) {
2975
+ output.write(
2976
+ ringbuffer,
2977
+ ringbuffer_size
2978
+ );
2979
+ }
2980
+ ++pos;
2981
+ --meta_block_remaining_len;
2982
+ }
2983
+ }
2984
+ prev_byte1 = ringbuffer[pos - 1 & ringbuffer_mask];
2985
+ prev_byte2 = ringbuffer[pos - 2 & ringbuffer_mask];
2986
+ }
2987
+ pos &= 1073741823;
2988
+ }
2989
+ output.write(ringbuffer, pos & ringbuffer_mask);
2990
+ }
2991
+ exports3.BrotliDecompress = BrotliDecompress;
2992
+ BrotliDictionary.init();
2993
+ },
2994
+ {
2995
+ "./bit_reader": 1,
2996
+ "./context": 2,
2997
+ "./dictionary": 6,
2998
+ "./huffman": 7,
2999
+ "./prefix": 9,
3000
+ "./streams": 10,
3001
+ "./transform": 11
3002
+ }
3003
+ ],
3004
+ 4: [
3005
+ function(require2, module3, exports3) {
3006
+ var base64 = require2("base64-js");
3007
+ exports3.init = function() {
3008
+ var BrotliDecompressBuffer = require2("./decode").BrotliDecompressBuffer;
3009
+ var compressed = base64.toByteArray(
3010
+ require2("./dictionary.bin.js")
3011
+ );
3012
+ return BrotliDecompressBuffer(compressed);
3013
+ };
3014
+ },
3015
+ { "./decode": 3, "./dictionary.bin.js": 5, "base64-js": 8 }
3016
+ ],
3017
+ 5: [
3018
+ function(require2, module3, exports3) {
3019
+ module3.exports = "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";
3020
+ },
3021
+ {}
3022
+ ],
3023
+ 6: [
3024
+ function(require2, module3, exports3) {
3025
+ var data = require2("./dictionary-browser");
3026
+ exports3.init = function() {
3027
+ exports3.dictionary = data.init();
3028
+ };
3029
+ exports3.offsetsByLength = new Uint32Array([
3030
+ 0,
3031
+ 0,
3032
+ 0,
3033
+ 0,
3034
+ 0,
3035
+ 4096,
3036
+ 9216,
3037
+ 21504,
3038
+ 35840,
3039
+ 44032,
3040
+ 53248,
3041
+ 63488,
3042
+ 74752,
3043
+ 87040,
3044
+ 93696,
3045
+ 100864,
3046
+ 104704,
3047
+ 106752,
3048
+ 108928,
3049
+ 113536,
3050
+ 115968,
3051
+ 118528,
3052
+ 119872,
3053
+ 121280,
3054
+ 122016
3055
+ ]);
3056
+ exports3.sizeBitsByLength = new Uint8Array([
3057
+ 0,
3058
+ 0,
3059
+ 0,
3060
+ 0,
3061
+ 10,
3062
+ 10,
3063
+ 11,
3064
+ 11,
3065
+ 10,
3066
+ 10,
3067
+ 10,
3068
+ 10,
3069
+ 10,
3070
+ 9,
3071
+ 9,
3072
+ 8,
3073
+ 7,
3074
+ 7,
3075
+ 8,
3076
+ 7,
3077
+ 7,
3078
+ 6,
3079
+ 6,
3080
+ 5,
3081
+ 5
3082
+ ]);
3083
+ exports3.minDictionaryWordLength = 4;
3084
+ exports3.maxDictionaryWordLength = 24;
3085
+ },
3086
+ { "./dictionary-browser": 4 }
3087
+ ],
3088
+ 7: [
3089
+ function(require2, module3, exports3) {
3090
+ function HuffmanCode(bits, value) {
3091
+ this.bits = bits;
3092
+ this.value = value;
3093
+ }
3094
+ exports3.HuffmanCode = HuffmanCode;
3095
+ var MAX_LENGTH = 15;
3096
+ function GetNextKey(key, len) {
3097
+ var step = 1 << len - 1;
3098
+ while (key & step) {
3099
+ step >>= 1;
3100
+ }
3101
+ return (key & step - 1) + step;
3102
+ }
3103
+ function ReplicateValue(table, i, step, end, code) {
3104
+ do {
3105
+ end -= step;
3106
+ table[i + end] = new HuffmanCode(
3107
+ code.bits,
3108
+ code.value
3109
+ );
3110
+ } while (end > 0);
3111
+ }
3112
+ function NextTableBitSize(count, len, root_bits) {
3113
+ var left = 1 << len - root_bits;
3114
+ while (len < MAX_LENGTH) {
3115
+ left -= count[len];
3116
+ if (left <= 0) break;
3117
+ ++len;
3118
+ left <<= 1;
3119
+ }
3120
+ return len - root_bits;
3121
+ }
3122
+ exports3.BrotliBuildHuffmanTable = function(root_table, table, root_bits, code_lengths, code_lengths_size) {
3123
+ var start_table = table;
3124
+ var code;
3125
+ var len;
3126
+ var symbol;
3127
+ var key;
3128
+ var step;
3129
+ var low;
3130
+ var mask;
3131
+ var table_bits;
3132
+ var table_size;
3133
+ var total_size;
3134
+ var sorted;
3135
+ var count = new Int32Array(
3136
+ MAX_LENGTH + 1
3137
+ );
3138
+ var offset = new Int32Array(
3139
+ MAX_LENGTH + 1
3140
+ );
3141
+ sorted = new Int32Array(code_lengths_size);
3142
+ for (symbol = 0; symbol < code_lengths_size; symbol++) {
3143
+ count[code_lengths[symbol]]++;
3144
+ }
3145
+ offset[1] = 0;
3146
+ for (len = 1; len < MAX_LENGTH; len++) {
3147
+ offset[len + 1] = offset[len] + count[len];
3148
+ }
3149
+ for (symbol = 0; symbol < code_lengths_size; symbol++) {
3150
+ if (code_lengths[symbol] !== 0) {
3151
+ sorted[offset[code_lengths[symbol]]++] = symbol;
3152
+ }
3153
+ }
3154
+ table_bits = root_bits;
3155
+ table_size = 1 << table_bits;
3156
+ total_size = table_size;
3157
+ if (offset[MAX_LENGTH] === 1) {
3158
+ for (key = 0; key < total_size; ++key) {
3159
+ root_table[table + key] = new HuffmanCode(
3160
+ 0,
3161
+ sorted[0] & 65535
3162
+ );
3163
+ }
3164
+ return total_size;
3165
+ }
3166
+ key = 0;
3167
+ symbol = 0;
3168
+ for (len = 1, step = 2; len <= root_bits; ++len, step <<= 1) {
3169
+ for (; count[len] > 0; --count[len]) {
3170
+ code = new HuffmanCode(
3171
+ len & 255,
3172
+ sorted[symbol++] & 65535
3173
+ );
3174
+ ReplicateValue(
3175
+ root_table,
3176
+ table + key,
3177
+ step,
3178
+ table_size,
3179
+ code
3180
+ );
3181
+ key = GetNextKey(key, len);
3182
+ }
3183
+ }
3184
+ mask = total_size - 1;
3185
+ low = -1;
3186
+ for (len = root_bits + 1, step = 2; len <= MAX_LENGTH; ++len, step <<= 1) {
3187
+ for (; count[len] > 0; --count[len]) {
3188
+ if ((key & mask) !== low) {
3189
+ table += table_size;
3190
+ table_bits = NextTableBitSize(
3191
+ count,
3192
+ len,
3193
+ root_bits
3194
+ );
3195
+ table_size = 1 << table_bits;
3196
+ total_size += table_size;
3197
+ low = key & mask;
3198
+ root_table[start_table + low] = new HuffmanCode(
3199
+ table_bits + root_bits & 255,
3200
+ table - start_table - low & 65535
3201
+ );
3202
+ }
3203
+ code = new HuffmanCode(
3204
+ len - root_bits & 255,
3205
+ sorted[symbol++] & 65535
3206
+ );
3207
+ ReplicateValue(
3208
+ root_table,
3209
+ table + (key >> root_bits),
3210
+ step,
3211
+ table_size,
3212
+ code
3213
+ );
3214
+ key = GetNextKey(key, len);
3215
+ }
3216
+ }
3217
+ return total_size;
3218
+ };
3219
+ },
3220
+ {}
3221
+ ],
3222
+ 8: [
3223
+ function(require2, module3, exports3) {
3224
+ "use strict";
3225
+ exports3.byteLength = byteLength;
3226
+ exports3.toByteArray = toByteArray;
3227
+ exports3.fromByteArray = fromByteArray;
3228
+ var lookup = [];
3229
+ var revLookup = [];
3230
+ var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;
3231
+ var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
3232
+ for (var i = 0, len = code.length; i < len; ++i) {
3233
+ lookup[i] = code[i];
3234
+ revLookup[code.charCodeAt(i)] = i;
3235
+ }
3236
+ revLookup["-".charCodeAt(0)] = 62;
3237
+ revLookup["_".charCodeAt(0)] = 63;
3238
+ function getLens(b64) {
3239
+ var len2 = b64.length;
3240
+ if (len2 % 4 > 0) {
3241
+ throw new Error(
3242
+ "Invalid string. Length must be a multiple of 4"
3243
+ );
3244
+ }
3245
+ var validLen = b64.indexOf("=");
3246
+ if (validLen === -1) validLen = len2;
3247
+ var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;
3248
+ return [validLen, placeHoldersLen];
3249
+ }
3250
+ function byteLength(b64) {
3251
+ var lens = getLens(b64);
3252
+ var validLen = lens[0];
3253
+ var placeHoldersLen = lens[1];
3254
+ return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;
3255
+ }
3256
+ function _byteLength(b64, validLen, placeHoldersLen) {
3257
+ return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;
3258
+ }
3259
+ function toByteArray(b64) {
3260
+ var tmp;
3261
+ var lens = getLens(b64);
3262
+ var validLen = lens[0];
3263
+ var placeHoldersLen = lens[1];
3264
+ var arr = new Arr(
3265
+ _byteLength(b64, validLen, placeHoldersLen)
3266
+ );
3267
+ var curByte = 0;
3268
+ var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;
3269
+ for (var i2 = 0; i2 < len2; i2 += 4) {
3270
+ tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];
3271
+ arr[curByte++] = tmp >> 16 & 255;
3272
+ arr[curByte++] = tmp >> 8 & 255;
3273
+ arr[curByte++] = tmp & 255;
3274
+ }
3275
+ if (placeHoldersLen === 2) {
3276
+ tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;
3277
+ arr[curByte++] = tmp & 255;
3278
+ }
3279
+ if (placeHoldersLen === 1) {
3280
+ tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;
3281
+ arr[curByte++] = tmp >> 8 & 255;
3282
+ arr[curByte++] = tmp & 255;
3283
+ }
3284
+ return arr;
3285
+ }
3286
+ function tripletToBase64(num) {
3287
+ return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];
3288
+ }
3289
+ function encodeChunk(uint8, start, end) {
3290
+ var tmp;
3291
+ var output = [];
3292
+ for (var i2 = start; i2 < end; i2 += 3) {
3293
+ tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);
3294
+ output.push(tripletToBase64(tmp));
3295
+ }
3296
+ return output.join("");
3297
+ }
3298
+ function fromByteArray(uint8) {
3299
+ var tmp;
3300
+ var len2 = uint8.length;
3301
+ var extraBytes = len2 % 3;
3302
+ var parts = [];
3303
+ var maxChunkLength = 16383;
3304
+ for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {
3305
+ parts.push(
3306
+ encodeChunk(
3307
+ uint8,
3308
+ i2,
3309
+ i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength
3310
+ )
3311
+ );
3312
+ }
3313
+ if (extraBytes === 1) {
3314
+ tmp = uint8[len2 - 1];
3315
+ parts.push(
3316
+ lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "=="
3317
+ );
3318
+ } else if (extraBytes === 2) {
3319
+ tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];
3320
+ parts.push(
3321
+ lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "="
3322
+ );
3323
+ }
3324
+ return parts.join("");
3325
+ }
3326
+ },
3327
+ {}
3328
+ ],
3329
+ 9: [
3330
+ function(require2, module3, exports3) {
3331
+ function PrefixCodeRange(offset, nbits) {
3332
+ this.offset = offset;
3333
+ this.nbits = nbits;
3334
+ }
3335
+ exports3.kBlockLengthPrefixCode = [
3336
+ new PrefixCodeRange(1, 2),
3337
+ new PrefixCodeRange(5, 2),
3338
+ new PrefixCodeRange(9, 2),
3339
+ new PrefixCodeRange(13, 2),
3340
+ new PrefixCodeRange(17, 3),
3341
+ new PrefixCodeRange(25, 3),
3342
+ new PrefixCodeRange(33, 3),
3343
+ new PrefixCodeRange(41, 3),
3344
+ new PrefixCodeRange(49, 4),
3345
+ new PrefixCodeRange(65, 4),
3346
+ new PrefixCodeRange(81, 4),
3347
+ new PrefixCodeRange(97, 4),
3348
+ new PrefixCodeRange(113, 5),
3349
+ new PrefixCodeRange(145, 5),
3350
+ new PrefixCodeRange(177, 5),
3351
+ new PrefixCodeRange(209, 5),
3352
+ new PrefixCodeRange(241, 6),
3353
+ new PrefixCodeRange(305, 6),
3354
+ new PrefixCodeRange(369, 7),
3355
+ new PrefixCodeRange(497, 8),
3356
+ new PrefixCodeRange(753, 9),
3357
+ new PrefixCodeRange(1265, 10),
3358
+ new PrefixCodeRange(2289, 11),
3359
+ new PrefixCodeRange(4337, 12),
3360
+ new PrefixCodeRange(8433, 13),
3361
+ new PrefixCodeRange(16625, 24)
3362
+ ];
3363
+ exports3.kInsertLengthPrefixCode = [
3364
+ new PrefixCodeRange(0, 0),
3365
+ new PrefixCodeRange(1, 0),
3366
+ new PrefixCodeRange(2, 0),
3367
+ new PrefixCodeRange(3, 0),
3368
+ new PrefixCodeRange(4, 0),
3369
+ new PrefixCodeRange(5, 0),
3370
+ new PrefixCodeRange(6, 1),
3371
+ new PrefixCodeRange(8, 1),
3372
+ new PrefixCodeRange(10, 2),
3373
+ new PrefixCodeRange(14, 2),
3374
+ new PrefixCodeRange(18, 3),
3375
+ new PrefixCodeRange(26, 3),
3376
+ new PrefixCodeRange(34, 4),
3377
+ new PrefixCodeRange(50, 4),
3378
+ new PrefixCodeRange(66, 5),
3379
+ new PrefixCodeRange(98, 5),
3380
+ new PrefixCodeRange(130, 6),
3381
+ new PrefixCodeRange(194, 7),
3382
+ new PrefixCodeRange(322, 8),
3383
+ new PrefixCodeRange(578, 9),
3384
+ new PrefixCodeRange(1090, 10),
3385
+ new PrefixCodeRange(2114, 12),
3386
+ new PrefixCodeRange(6210, 14),
3387
+ new PrefixCodeRange(22594, 24)
3388
+ ];
3389
+ exports3.kCopyLengthPrefixCode = [
3390
+ new PrefixCodeRange(2, 0),
3391
+ new PrefixCodeRange(3, 0),
3392
+ new PrefixCodeRange(4, 0),
3393
+ new PrefixCodeRange(5, 0),
3394
+ new PrefixCodeRange(6, 0),
3395
+ new PrefixCodeRange(7, 0),
3396
+ new PrefixCodeRange(8, 0),
3397
+ new PrefixCodeRange(9, 0),
3398
+ new PrefixCodeRange(10, 1),
3399
+ new PrefixCodeRange(12, 1),
3400
+ new PrefixCodeRange(14, 2),
3401
+ new PrefixCodeRange(18, 2),
3402
+ new PrefixCodeRange(22, 3),
3403
+ new PrefixCodeRange(30, 3),
3404
+ new PrefixCodeRange(38, 4),
3405
+ new PrefixCodeRange(54, 4),
3406
+ new PrefixCodeRange(70, 5),
3407
+ new PrefixCodeRange(102, 5),
3408
+ new PrefixCodeRange(134, 6),
3409
+ new PrefixCodeRange(198, 7),
3410
+ new PrefixCodeRange(326, 8),
3411
+ new PrefixCodeRange(582, 9),
3412
+ new PrefixCodeRange(1094, 10),
3413
+ new PrefixCodeRange(2118, 24)
3414
+ ];
3415
+ exports3.kInsertRangeLut = [0, 0, 8, 8, 0, 16, 8, 16, 16];
3416
+ exports3.kCopyRangeLut = [0, 8, 0, 8, 16, 0, 16, 8, 16];
3417
+ },
3418
+ {}
3419
+ ],
3420
+ 10: [
3421
+ function(require2, module3, exports3) {
3422
+ function BrotliInput(buffer) {
3423
+ this.buffer = buffer;
3424
+ this.pos = 0;
3425
+ }
3426
+ BrotliInput.prototype.read = function(buf, i, count) {
3427
+ if (this.pos + count > this.buffer.length) {
3428
+ count = this.buffer.length - this.pos;
3429
+ }
3430
+ for (var p = 0; p < count; p++)
3431
+ buf[i + p] = this.buffer[this.pos + p];
3432
+ this.pos += count;
3433
+ return count;
3434
+ };
3435
+ exports3.BrotliInput = BrotliInput;
3436
+ function BrotliOutput(buf) {
3437
+ this.buffer = buf;
3438
+ this.pos = 0;
3439
+ }
3440
+ BrotliOutput.prototype.write = function(buf, count) {
3441
+ if (this.pos + count > this.buffer.length)
3442
+ throw new Error(
3443
+ "Output buffer is not large enough"
3444
+ );
3445
+ this.buffer.set(buf.subarray(0, count), this.pos);
3446
+ this.pos += count;
3447
+ return count;
3448
+ };
3449
+ exports3.BrotliOutput = BrotliOutput;
3450
+ },
3451
+ {}
3452
+ ],
3453
+ 11: [
3454
+ function(require2, module3, exports3) {
3455
+ var BrotliDictionary = require2("./dictionary");
3456
+ var kIdentity = 0;
3457
+ var kOmitLast1 = 1;
3458
+ var kOmitLast2 = 2;
3459
+ var kOmitLast3 = 3;
3460
+ var kOmitLast4 = 4;
3461
+ var kOmitLast5 = 5;
3462
+ var kOmitLast6 = 6;
3463
+ var kOmitLast7 = 7;
3464
+ var kOmitLast8 = 8;
3465
+ var kOmitLast9 = 9;
3466
+ var kUppercaseFirst = 10;
3467
+ var kUppercaseAll = 11;
3468
+ var kOmitFirst1 = 12;
3469
+ var kOmitFirst2 = 13;
3470
+ var kOmitFirst3 = 14;
3471
+ var kOmitFirst4 = 15;
3472
+ var kOmitFirst5 = 16;
3473
+ var kOmitFirst6 = 17;
3474
+ var kOmitFirst7 = 18;
3475
+ var kOmitFirst8 = 19;
3476
+ var kOmitFirst9 = 20;
3477
+ function Transform(prefix, transform, suffix) {
3478
+ this.prefix = new Uint8Array(prefix.length);
3479
+ this.transform = transform;
3480
+ this.suffix = new Uint8Array(suffix.length);
3481
+ for (var i = 0; i < prefix.length; i++)
3482
+ this.prefix[i] = prefix.charCodeAt(i);
3483
+ for (var i = 0; i < suffix.length; i++)
3484
+ this.suffix[i] = suffix.charCodeAt(i);
3485
+ }
3486
+ var kTransforms = [
3487
+ new Transform("", kIdentity, ""),
3488
+ new Transform("", kIdentity, " "),
3489
+ new Transform(" ", kIdentity, " "),
3490
+ new Transform("", kOmitFirst1, ""),
3491
+ new Transform("", kUppercaseFirst, " "),
3492
+ new Transform("", kIdentity, " the "),
3493
+ new Transform(" ", kIdentity, ""),
3494
+ new Transform("s ", kIdentity, " "),
3495
+ new Transform("", kIdentity, " of "),
3496
+ new Transform("", kUppercaseFirst, ""),
3497
+ new Transform("", kIdentity, " and "),
3498
+ new Transform("", kOmitFirst2, ""),
3499
+ new Transform("", kOmitLast1, ""),
3500
+ new Transform(", ", kIdentity, " "),
3501
+ new Transform("", kIdentity, ", "),
3502
+ new Transform(" ", kUppercaseFirst, " "),
3503
+ new Transform("", kIdentity, " in "),
3504
+ new Transform("", kIdentity, " to "),
3505
+ new Transform("e ", kIdentity, " "),
3506
+ new Transform("", kIdentity, '"'),
3507
+ new Transform("", kIdentity, "."),
3508
+ new Transform("", kIdentity, '">'),
3509
+ new Transform("", kIdentity, "\n"),
3510
+ new Transform("", kOmitLast3, ""),
3511
+ new Transform("", kIdentity, "]"),
3512
+ new Transform("", kIdentity, " for "),
3513
+ new Transform("", kOmitFirst3, ""),
3514
+ new Transform("", kOmitLast2, ""),
3515
+ new Transform("", kIdentity, " a "),
3516
+ new Transform("", kIdentity, " that "),
3517
+ new Transform(" ", kUppercaseFirst, ""),
3518
+ new Transform("", kIdentity, ". "),
3519
+ new Transform(".", kIdentity, ""),
3520
+ new Transform(" ", kIdentity, ", "),
3521
+ new Transform("", kOmitFirst4, ""),
3522
+ new Transform("", kIdentity, " with "),
3523
+ new Transform("", kIdentity, "'"),
3524
+ new Transform("", kIdentity, " from "),
3525
+ new Transform("", kIdentity, " by "),
3526
+ new Transform("", kOmitFirst5, ""),
3527
+ new Transform("", kOmitFirst6, ""),
3528
+ new Transform(" the ", kIdentity, ""),
3529
+ new Transform("", kOmitLast4, ""),
3530
+ new Transform("", kIdentity, ". The "),
3531
+ new Transform("", kUppercaseAll, ""),
3532
+ new Transform("", kIdentity, " on "),
3533
+ new Transform("", kIdentity, " as "),
3534
+ new Transform("", kIdentity, " is "),
3535
+ new Transform("", kOmitLast7, ""),
3536
+ new Transform("", kOmitLast1, "ing "),
3537
+ new Transform("", kIdentity, "\n "),
3538
+ new Transform("", kIdentity, ":"),
3539
+ new Transform(" ", kIdentity, ". "),
3540
+ new Transform("", kIdentity, "ed "),
3541
+ new Transform("", kOmitFirst9, ""),
3542
+ new Transform("", kOmitFirst7, ""),
3543
+ new Transform("", kOmitLast6, ""),
3544
+ new Transform("", kIdentity, "("),
3545
+ new Transform("", kUppercaseFirst, ", "),
3546
+ new Transform("", kOmitLast8, ""),
3547
+ new Transform("", kIdentity, " at "),
3548
+ new Transform("", kIdentity, "ly "),
3549
+ new Transform(" the ", kIdentity, " of "),
3550
+ new Transform("", kOmitLast5, ""),
3551
+ new Transform("", kOmitLast9, ""),
3552
+ new Transform(" ", kUppercaseFirst, ", "),
3553
+ new Transform("", kUppercaseFirst, '"'),
3554
+ new Transform(".", kIdentity, "("),
3555
+ new Transform("", kUppercaseAll, " "),
3556
+ new Transform("", kUppercaseFirst, '">'),
3557
+ new Transform("", kIdentity, '="'),
3558
+ new Transform(" ", kIdentity, "."),
3559
+ new Transform(".com/", kIdentity, ""),
3560
+ new Transform(" the ", kIdentity, " of the "),
3561
+ new Transform("", kUppercaseFirst, "'"),
3562
+ new Transform("", kIdentity, ". This "),
3563
+ new Transform("", kIdentity, ","),
3564
+ new Transform(".", kIdentity, " "),
3565
+ new Transform("", kUppercaseFirst, "("),
3566
+ new Transform("", kUppercaseFirst, "."),
3567
+ new Transform("", kIdentity, " not "),
3568
+ new Transform(" ", kIdentity, '="'),
3569
+ new Transform("", kIdentity, "er "),
3570
+ new Transform(" ", kUppercaseAll, " "),
3571
+ new Transform("", kIdentity, "al "),
3572
+ new Transform(" ", kUppercaseAll, ""),
3573
+ new Transform("", kIdentity, "='"),
3574
+ new Transform("", kUppercaseAll, '"'),
3575
+ new Transform("", kUppercaseFirst, ". "),
3576
+ new Transform(" ", kIdentity, "("),
3577
+ new Transform("", kIdentity, "ful "),
3578
+ new Transform(" ", kUppercaseFirst, ". "),
3579
+ new Transform("", kIdentity, "ive "),
3580
+ new Transform("", kIdentity, "less "),
3581
+ new Transform("", kUppercaseAll, "'"),
3582
+ new Transform("", kIdentity, "est "),
3583
+ new Transform(" ", kUppercaseFirst, "."),
3584
+ new Transform("", kUppercaseAll, '">'),
3585
+ new Transform(" ", kIdentity, "='"),
3586
+ new Transform("", kUppercaseFirst, ","),
3587
+ new Transform("", kIdentity, "ize "),
3588
+ new Transform("", kUppercaseAll, "."),
3589
+ new Transform("\xC2\xA0", kIdentity, ""),
3590
+ new Transform(" ", kIdentity, ","),
3591
+ new Transform("", kUppercaseFirst, '="'),
3592
+ new Transform("", kUppercaseAll, '="'),
3593
+ new Transform("", kIdentity, "ous "),
3594
+ new Transform("", kUppercaseAll, ", "),
3595
+ new Transform("", kUppercaseFirst, "='"),
3596
+ new Transform(" ", kUppercaseFirst, ","),
3597
+ new Transform(" ", kUppercaseAll, '="'),
3598
+ new Transform(" ", kUppercaseAll, ", "),
3599
+ new Transform("", kUppercaseAll, ","),
3600
+ new Transform("", kUppercaseAll, "("),
3601
+ new Transform("", kUppercaseAll, ". "),
3602
+ new Transform(" ", kUppercaseAll, "."),
3603
+ new Transform("", kUppercaseAll, "='"),
3604
+ new Transform(" ", kUppercaseAll, ". "),
3605
+ new Transform(" ", kUppercaseFirst, '="'),
3606
+ new Transform(" ", kUppercaseAll, "='"),
3607
+ new Transform(" ", kUppercaseFirst, "='")
3608
+ ];
3609
+ exports3.kTransforms = kTransforms;
3610
+ exports3.kNumTransforms = kTransforms.length;
3611
+ function ToUpperCase(p, i) {
3612
+ if (p[i] < 192) {
3613
+ if (p[i] >= 97 && p[i] <= 122) {
3614
+ p[i] ^= 32;
3615
+ }
3616
+ return 1;
3617
+ }
3618
+ if (p[i] < 224) {
3619
+ p[i + 1] ^= 32;
3620
+ return 2;
3621
+ }
3622
+ p[i + 2] ^= 5;
3623
+ return 3;
3624
+ }
3625
+ exports3.transformDictionaryWord = function(dst, idx, word, len, transform) {
3626
+ var prefix = kTransforms[transform].prefix;
3627
+ var suffix = kTransforms[transform].suffix;
3628
+ var t = kTransforms[transform].transform;
3629
+ var skip = t < kOmitFirst1 ? 0 : t - (kOmitFirst1 - 1);
3630
+ var i = 0;
3631
+ var start_idx = idx;
3632
+ var uppercase;
3633
+ if (skip > len) {
3634
+ skip = len;
3635
+ }
3636
+ var prefix_pos = 0;
3637
+ while (prefix_pos < prefix.length) {
3638
+ dst[idx++] = prefix[prefix_pos++];
3639
+ }
3640
+ word += skip;
3641
+ len -= skip;
3642
+ if (t <= kOmitLast9) {
3643
+ len -= t;
3644
+ }
3645
+ for (i = 0; i < len; i++) {
3646
+ dst[idx++] = BrotliDictionary.dictionary[word + i];
3647
+ }
3648
+ uppercase = idx - len;
3649
+ if (t === kUppercaseFirst) {
3650
+ ToUpperCase(dst, uppercase);
3651
+ } else if (t === kUppercaseAll) {
3652
+ while (len > 0) {
3653
+ var step = ToUpperCase(dst, uppercase);
3654
+ uppercase += step;
3655
+ len -= step;
3656
+ }
3657
+ }
3658
+ var suffix_pos = 0;
3659
+ while (suffix_pos < suffix.length) {
3660
+ dst[idx++] = suffix[suffix_pos++];
3661
+ }
3662
+ return idx - start_idx;
3663
+ };
3664
+ },
3665
+ { "./dictionary": 6 }
3666
+ ],
3667
+ 12: [
3668
+ function(require2, module3, exports3) {
3669
+ module3.exports = require2("./dec/decode").BrotliDecompressBuffer;
3670
+ },
3671
+ { "./dec/decode": 3 }
3672
+ ]
3673
+ },
3674
+ {},
3675
+ [12]
3676
+ )(12);
3677
+ });
3678
+ //# sourceMappingURL=unbrotli.js.map