select_all-rails 0.3.0 → 0.3.1

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 (1873) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +6 -0
  3. data/README.md +8 -7
  4. data/lib/select_all/rails/version.rb +1 -1
  5. data/node_modules/.bin/acorn +71 -0
  6. data/node_modules/.bin/escodegen +77 -0
  7. data/node_modules/.bin/esgenerate +64 -0
  8. data/node_modules/.bin/esparse +126 -0
  9. data/node_modules/.bin/esvalidate +199 -0
  10. data/node_modules/.bin/har-validator +56 -0
  11. data/node_modules/.bin/sshpk-conv +201 -0
  12. data/node_modules/.bin/sshpk-sign +191 -0
  13. data/node_modules/.bin/sshpk-verify +166 -0
  14. data/node_modules/.bin/uuid +26 -0
  15. data/node_modules/abab/CHANGELOG.md +11 -0
  16. data/node_modules/abab/README.md +52 -0
  17. data/node_modules/abab/index.js +9 -0
  18. data/node_modules/abab/lib/atob.js +109 -0
  19. data/node_modules/abab/lib/btoa.js +65 -0
  20. data/node_modules/abab/package.json +106 -0
  21. data/node_modules/acorn-globals/LICENSE +19 -0
  22. data/node_modules/acorn-globals/README.md +76 -0
  23. data/node_modules/acorn-globals/index.js +180 -0
  24. data/node_modules/acorn-globals/package.json +100 -0
  25. data/node_modules/acorn/.editorconfig +7 -0
  26. data/node_modules/acorn/.gitattributes +1 -0
  27. data/node_modules/acorn/.npmignore +3 -0
  28. data/node_modules/acorn/.tern-project +6 -0
  29. data/node_modules/acorn/.travis.yml +6 -0
  30. data/node_modules/acorn/AUTHORS +43 -0
  31. data/node_modules/acorn/LICENSE +19 -0
  32. data/node_modules/acorn/README.md +396 -0
  33. data/node_modules/acorn/bin/acorn +71 -0
  34. data/node_modules/acorn/bin/build-acorn.js +82 -0
  35. data/node_modules/acorn/bin/generate-identifier-regex.js +47 -0
  36. data/node_modules/acorn/bin/update_authors.sh +6 -0
  37. data/node_modules/acorn/dist/.keep +0 -0
  38. data/node_modules/acorn/dist/acorn.js +3340 -0
  39. data/node_modules/acorn/dist/acorn_loose.js +1300 -0
  40. data/node_modules/acorn/dist/walk.js +377 -0
  41. data/node_modules/acorn/package.json +222 -0
  42. data/node_modules/acorn/src/bin/acorn.js +59 -0
  43. data/node_modules/acorn/src/expression.js +707 -0
  44. data/node_modules/acorn/src/identifier.js +90 -0
  45. data/node_modules/acorn/src/index.js +67 -0
  46. data/node_modules/acorn/src/location.js +24 -0
  47. data/node_modules/acorn/src/locutil.js +42 -0
  48. data/node_modules/acorn/src/loose/acorn_loose.js +0 -0
  49. data/node_modules/acorn/src/loose/expression.js +501 -0
  50. data/node_modules/acorn/src/loose/index.js +50 -0
  51. data/node_modules/acorn/src/loose/parseutil.js +1 -0
  52. data/node_modules/acorn/src/loose/state.js +160 -0
  53. data/node_modules/acorn/src/loose/statement.js +420 -0
  54. data/node_modules/acorn/src/loose/tokenize.js +108 -0
  55. data/node_modules/acorn/src/lval.js +215 -0
  56. data/node_modules/acorn/src/node.js +50 -0
  57. data/node_modules/acorn/src/options.js +121 -0
  58. data/node_modules/acorn/src/parseutil.js +102 -0
  59. data/node_modules/acorn/src/state.js +104 -0
  60. data/node_modules/acorn/src/statement.js +626 -0
  61. data/node_modules/acorn/src/tokencontext.js +109 -0
  62. data/node_modules/acorn/src/tokenize.js +682 -0
  63. data/node_modules/acorn/src/tokentype.js +147 -0
  64. data/node_modules/acorn/src/util.js +9 -0
  65. data/node_modules/acorn/src/walk/index.js +340 -0
  66. data/node_modules/acorn/src/whitespace.js +12 -0
  67. data/node_modules/amdefine/LICENSE +58 -0
  68. data/node_modules/amdefine/README.md +171 -0
  69. data/node_modules/amdefine/amdefine.js +301 -0
  70. data/node_modules/amdefine/intercept.js +36 -0
  71. data/node_modules/amdefine/package.json +86 -0
  72. data/node_modules/ansi-regex/index.js +4 -0
  73. data/node_modules/ansi-regex/license +21 -0
  74. data/node_modules/ansi-regex/package.json +121 -0
  75. data/node_modules/ansi-regex/readme.md +31 -0
  76. data/node_modules/ansi-styles/index.js +65 -0
  77. data/node_modules/ansi-styles/license +21 -0
  78. data/node_modules/ansi-styles/package.json +114 -0
  79. data/node_modules/ansi-styles/readme.md +86 -0
  80. data/node_modules/array-equal/.npmignore +1 -0
  81. data/node_modules/array-equal/LICENSE +22 -0
  82. data/node_modules/array-equal/README.md +11 -0
  83. data/node_modules/array-equal/component.json +10 -0
  84. data/node_modules/array-equal/index.js +9 -0
  85. data/node_modules/array-equal/package.json +75 -0
  86. data/node_modules/asn1/.npmignore +2 -0
  87. data/node_modules/asn1/.travis.yml +4 -0
  88. data/node_modules/asn1/LICENSE +19 -0
  89. data/node_modules/asn1/README.md +50 -0
  90. data/node_modules/asn1/lib/ber/errors.js +13 -0
  91. data/node_modules/asn1/lib/ber/index.js +27 -0
  92. data/node_modules/asn1/lib/ber/reader.js +261 -0
  93. data/node_modules/asn1/lib/ber/types.js +36 -0
  94. data/node_modules/asn1/lib/ber/writer.js +316 -0
  95. data/node_modules/asn1/lib/index.js +20 -0
  96. data/node_modules/asn1/package.json +98 -0
  97. data/node_modules/asn1/tst/ber/reader.test.js +208 -0
  98. data/node_modules/asn1/tst/ber/writer.test.js +370 -0
  99. data/node_modules/assert-plus/AUTHORS +6 -0
  100. data/node_modules/assert-plus/CHANGES.md +8 -0
  101. data/node_modules/assert-plus/README.md +155 -0
  102. data/node_modules/assert-plus/assert.js +206 -0
  103. data/node_modules/assert-plus/package.json +115 -0
  104. data/node_modules/assertion-error/.npmignore +11 -0
  105. data/node_modules/assertion-error/History.md +19 -0
  106. data/node_modules/assertion-error/README.md +41 -0
  107. data/node_modules/assertion-error/index.js +116 -0
  108. data/node_modules/assertion-error/package.json +95 -0
  109. data/node_modules/asynckit/LICENSE +21 -0
  110. data/node_modules/asynckit/README.md +233 -0
  111. data/node_modules/asynckit/bench.js +76 -0
  112. data/node_modules/asynckit/index.js +6 -0
  113. data/node_modules/asynckit/lib/abort.js +29 -0
  114. data/node_modules/asynckit/lib/async.js +34 -0
  115. data/node_modules/asynckit/lib/defer.js +26 -0
  116. data/node_modules/asynckit/lib/iterate.js +75 -0
  117. data/node_modules/asynckit/lib/readable_asynckit.js +91 -0
  118. data/node_modules/asynckit/lib/readable_parallel.js +25 -0
  119. data/node_modules/asynckit/lib/readable_serial.js +25 -0
  120. data/node_modules/asynckit/lib/readable_serial_ordered.js +29 -0
  121. data/node_modules/asynckit/lib/state.js +37 -0
  122. data/node_modules/asynckit/lib/streamify.js +141 -0
  123. data/node_modules/asynckit/lib/terminator.js +29 -0
  124. data/node_modules/asynckit/package.json +126 -0
  125. data/node_modules/asynckit/parallel.js +43 -0
  126. data/node_modules/asynckit/serial.js +17 -0
  127. data/node_modules/asynckit/serialOrdered.js +75 -0
  128. data/node_modules/asynckit/stream.js +21 -0
  129. data/node_modules/aws-sign2/LICENSE +55 -0
  130. data/node_modules/aws-sign2/README.md +4 -0
  131. data/node_modules/aws-sign2/index.js +212 -0
  132. data/node_modules/aws-sign2/package.json +81 -0
  133. data/node_modules/aws4/.npmignore +4 -0
  134. data/node_modules/aws4/.tern-port +1 -0
  135. data/node_modules/aws4/.travis.yml +5 -0
  136. data/node_modules/aws4/LICENSE +19 -0
  137. data/node_modules/aws4/README.md +523 -0
  138. data/node_modules/aws4/aws4.js +323 -0
  139. data/node_modules/aws4/lru.js +96 -0
  140. data/node_modules/aws4/package.json +140 -0
  141. data/node_modules/bcrypt-pbkdf/README.md +39 -0
  142. data/node_modules/bcrypt-pbkdf/index.js +559 -0
  143. data/node_modules/bcrypt-pbkdf/package.json +72 -0
  144. data/node_modules/boom/.npmignore +18 -0
  145. data/node_modules/boom/.travis.yml +8 -0
  146. data/node_modules/boom/CONTRIBUTING.md +1 -0
  147. data/node_modules/boom/LICENSE +28 -0
  148. data/node_modules/boom/README.md +652 -0
  149. data/node_modules/boom/images/boom.png +0 -0
  150. data/node_modules/boom/lib/index.js +318 -0
  151. data/node_modules/boom/package.json +98 -0
  152. data/node_modules/boom/test/index.js +654 -0
  153. data/node_modules/caseless/LICENSE +28 -0
  154. data/node_modules/caseless/README.md +45 -0
  155. data/node_modules/caseless/index.js +66 -0
  156. data/node_modules/caseless/package.json +96 -0
  157. data/node_modules/caseless/test.js +40 -0
  158. data/node_modules/chai/.npmignore +14 -0
  159. data/node_modules/chai/CODE_OF_CONDUCT.md +58 -0
  160. data/node_modules/chai/CONTRIBUTING.md +214 -0
  161. data/node_modules/chai/History.md +1059 -0
  162. data/node_modules/chai/README.md +83 -0
  163. data/node_modules/chai/ReleaseNotes.md +737 -0
  164. data/node_modules/chai/bower.json +26 -0
  165. data/node_modules/chai/chai.js +6142 -0
  166. data/node_modules/chai/index.js +1 -0
  167. data/node_modules/chai/karma.conf.js +28 -0
  168. data/node_modules/chai/karma.sauce.js +41 -0
  169. data/node_modules/chai/lib/chai.js +93 -0
  170. data/node_modules/chai/lib/chai/assertion.js +131 -0
  171. data/node_modules/chai/lib/chai/config.js +55 -0
  172. data/node_modules/chai/lib/chai/core/assertions.js +1860 -0
  173. data/node_modules/chai/lib/chai/interface/assert.js +1645 -0
  174. data/node_modules/chai/lib/chai/interface/expect.js +34 -0
  175. data/node_modules/chai/lib/chai/interface/should.js +201 -0
  176. data/node_modules/chai/lib/chai/utils/addChainableMethod.js +112 -0
  177. data/node_modules/chai/lib/chai/utils/addMethod.js +44 -0
  178. data/node_modules/chai/lib/chai/utils/addProperty.js +48 -0
  179. data/node_modules/chai/lib/chai/utils/expectTypes.js +42 -0
  180. data/node_modules/chai/lib/chai/utils/flag.js +33 -0
  181. data/node_modules/chai/lib/chai/utils/getActual.js +20 -0
  182. data/node_modules/chai/lib/chai/utils/getEnumerableProperties.js +26 -0
  183. data/node_modules/chai/lib/chai/utils/getMessage.js +51 -0
  184. data/node_modules/chai/lib/chai/utils/getName.js +22 -0
  185. data/node_modules/chai/lib/chai/utils/getPathInfo.js +111 -0
  186. data/node_modules/chai/lib/chai/utils/getPathValue.js +43 -0
  187. data/node_modules/chai/lib/chai/utils/getProperties.js +36 -0
  188. data/node_modules/chai/lib/chai/utils/hasProperty.js +64 -0
  189. data/node_modules/chai/lib/chai/utils/index.js +130 -0
  190. data/node_modules/chai/lib/chai/utils/inspect.js +335 -0
  191. data/node_modules/chai/lib/chai/utils/objDisplay.js +50 -0
  192. data/node_modules/chai/lib/chai/utils/overwriteChainableMethod.js +54 -0
  193. data/node_modules/chai/lib/chai/utils/overwriteMethod.js +52 -0
  194. data/node_modules/chai/lib/chai/utils/overwriteProperty.js +55 -0
  195. data/node_modules/chai/lib/chai/utils/test.js +28 -0
  196. data/node_modules/chai/lib/chai/utils/transferFlags.js +45 -0
  197. data/node_modules/chai/package.json +128 -0
  198. data/node_modules/chai/sauce.browsers.js +128 -0
  199. data/node_modules/chalk/index.js +116 -0
  200. data/node_modules/chalk/license +21 -0
  201. data/node_modules/chalk/package.json +140 -0
  202. data/node_modules/chalk/readme.md +213 -0
  203. data/node_modules/combined-stream/License +19 -0
  204. data/node_modules/combined-stream/Readme.md +138 -0
  205. data/node_modules/combined-stream/lib/combined_stream.js +188 -0
  206. data/node_modules/combined-stream/package.json +101 -0
  207. data/node_modules/commander/History.md +261 -0
  208. data/node_modules/commander/LICENSE +22 -0
  209. data/node_modules/commander/Readme.md +351 -0
  210. data/node_modules/commander/index.js +1110 -0
  211. data/node_modules/commander/package.json +104 -0
  212. data/node_modules/content-type-parser/LICENSE.txt +19 -0
  213. data/node_modules/content-type-parser/README.md +60 -0
  214. data/node_modules/content-type-parser/lib/content-type-parser.js +103 -0
  215. data/node_modules/content-type-parser/package.json +96 -0
  216. data/node_modules/cryptiles/.npmignore +18 -0
  217. data/node_modules/cryptiles/.travis.yml +8 -0
  218. data/node_modules/cryptiles/LICENSE +28 -0
  219. data/node_modules/cryptiles/README.md +16 -0
  220. data/node_modules/cryptiles/lib/index.js +68 -0
  221. data/node_modules/cryptiles/package.json +94 -0
  222. data/node_modules/cryptiles/test/index.js +102 -0
  223. data/node_modules/cssom/LICENSE.txt +20 -0
  224. data/node_modules/cssom/README.mdown +69 -0
  225. data/node_modules/cssom/lib/CSSDocumentRule.js +39 -0
  226. data/node_modules/cssom/lib/CSSFontFaceRule.js +36 -0
  227. data/node_modules/cssom/lib/CSSImportRule.js +132 -0
  228. data/node_modules/cssom/lib/CSSKeyframeRule.js +37 -0
  229. data/node_modules/cssom/lib/CSSKeyframesRule.js +39 -0
  230. data/node_modules/cssom/lib/CSSMediaRule.js +41 -0
  231. data/node_modules/cssom/lib/CSSRule.js +43 -0
  232. data/node_modules/cssom/lib/CSSStyleDeclaration.js +148 -0
  233. data/node_modules/cssom/lib/CSSStyleRule.js +190 -0
  234. data/node_modules/cssom/lib/CSSStyleSheet.js +88 -0
  235. data/node_modules/cssom/lib/CSSValue.js +43 -0
  236. data/node_modules/cssom/lib/CSSValueExpression.js +344 -0
  237. data/node_modules/cssom/lib/MatcherList.js +62 -0
  238. data/node_modules/cssom/lib/MediaList.js +61 -0
  239. data/node_modules/cssom/lib/StyleSheet.js +17 -0
  240. data/node_modules/cssom/lib/clone.js +76 -0
  241. data/node_modules/cssom/lib/index.js +19 -0
  242. data/node_modules/cssom/lib/parse.js +381 -0
  243. data/node_modules/cssom/package.json +96 -0
  244. data/node_modules/cssstyle/.npmignore +1 -0
  245. data/node_modules/cssstyle/MIT-LICENSE.txt +20 -0
  246. data/node_modules/cssstyle/README.md +27 -0
  247. data/node_modules/cssstyle/lib/CSSStyleDeclaration.js +233 -0
  248. data/node_modules/cssstyle/lib/parsers.js +670 -0
  249. data/node_modules/cssstyle/lib/properties.js +5858 -0
  250. data/node_modules/cssstyle/lib/properties/alignmentBaseline.js +12 -0
  251. data/node_modules/cssstyle/lib/properties/azimuth.js +65 -0
  252. data/node_modules/cssstyle/lib/properties/background.js +24 -0
  253. data/node_modules/cssstyle/lib/properties/backgroundAttachment.js +22 -0
  254. data/node_modules/cssstyle/lib/properties/backgroundClip.js +12 -0
  255. data/node_modules/cssstyle/lib/properties/backgroundColor.js +33 -0
  256. data/node_modules/cssstyle/lib/properties/backgroundImage.js +29 -0
  257. data/node_modules/cssstyle/lib/properties/backgroundOrigin.js +12 -0
  258. data/node_modules/cssstyle/lib/properties/backgroundPosition.js +56 -0
  259. data/node_modules/cssstyle/lib/properties/backgroundPositionX.js +12 -0
  260. data/node_modules/cssstyle/lib/properties/backgroundPositionY.js +12 -0
  261. data/node_modules/cssstyle/lib/properties/backgroundRepeat.js +25 -0
  262. data/node_modules/cssstyle/lib/properties/backgroundRepeatX.js +12 -0
  263. data/node_modules/cssstyle/lib/properties/backgroundRepeatY.js +12 -0
  264. data/node_modules/cssstyle/lib/properties/backgroundSize.js +12 -0
  265. data/node_modules/cssstyle/lib/properties/baselineShift.js +12 -0
  266. data/node_modules/cssstyle/lib/properties/border.js +49 -0
  267. data/node_modules/cssstyle/lib/properties/borderBottom.js +23 -0
  268. data/node_modules/cssstyle/lib/properties/borderBottomColor.js +16 -0
  269. data/node_modules/cssstyle/lib/properties/borderBottomLeftRadius.js +12 -0
  270. data/node_modules/cssstyle/lib/properties/borderBottomRightRadius.js +12 -0
  271. data/node_modules/cssstyle/lib/properties/borderBottomStyle.js +21 -0
  272. data/node_modules/cssstyle/lib/properties/borderBottomWidth.js +16 -0
  273. data/node_modules/cssstyle/lib/properties/borderCollapse.js +25 -0
  274. data/node_modules/cssstyle/lib/properties/borderColor.js +28 -0
  275. data/node_modules/cssstyle/lib/properties/borderImage.js +12 -0
  276. data/node_modules/cssstyle/lib/properties/borderImageOutset.js +12 -0
  277. data/node_modules/cssstyle/lib/properties/borderImageRepeat.js +12 -0
  278. data/node_modules/cssstyle/lib/properties/borderImageSlice.js +12 -0
  279. data/node_modules/cssstyle/lib/properties/borderImageSource.js +12 -0
  280. data/node_modules/cssstyle/lib/properties/borderImageWidth.js +12 -0
  281. data/node_modules/cssstyle/lib/properties/borderLeft.js +23 -0
  282. data/node_modules/cssstyle/lib/properties/borderLeftColor.js +16 -0
  283. data/node_modules/cssstyle/lib/properties/borderLeftStyle.js +21 -0
  284. data/node_modules/cssstyle/lib/properties/borderLeftWidth.js +16 -0
  285. data/node_modules/cssstyle/lib/properties/borderRadius.js +12 -0
  286. data/node_modules/cssstyle/lib/properties/borderRight.js +23 -0
  287. data/node_modules/cssstyle/lib/properties/borderRightColor.js +16 -0
  288. data/node_modules/cssstyle/lib/properties/borderRightStyle.js +21 -0
  289. data/node_modules/cssstyle/lib/properties/borderRightWidth.js +16 -0
  290. data/node_modules/cssstyle/lib/properties/borderSpacing.js +42 -0
  291. data/node_modules/cssstyle/lib/properties/borderStyle.js +27 -0
  292. data/node_modules/cssstyle/lib/properties/borderTop.js +22 -0
  293. data/node_modules/cssstyle/lib/properties/borderTopColor.js +16 -0
  294. data/node_modules/cssstyle/lib/properties/borderTopLeftRadius.js +12 -0
  295. data/node_modules/cssstyle/lib/properties/borderTopRightRadius.js +12 -0
  296. data/node_modules/cssstyle/lib/properties/borderTopStyle.js +21 -0
  297. data/node_modules/cssstyle/lib/properties/borderTopWidth.js +17 -0
  298. data/node_modules/cssstyle/lib/properties/borderWidth.js +47 -0
  299. data/node_modules/cssstyle/lib/properties/bottom.js +14 -0
  300. data/node_modules/cssstyle/lib/properties/boxShadow.js +12 -0
  301. data/node_modules/cssstyle/lib/properties/boxSizing.js +12 -0
  302. data/node_modules/cssstyle/lib/properties/captionSide.js +12 -0
  303. data/node_modules/cssstyle/lib/properties/clear.js +16 -0
  304. data/node_modules/cssstyle/lib/properties/clip.js +49 -0
  305. data/node_modules/cssstyle/lib/properties/color.js +14 -0
  306. data/node_modules/cssstyle/lib/properties/colorInterpolation.js +12 -0
  307. data/node_modules/cssstyle/lib/properties/colorInterpolationFilters.js +12 -0
  308. data/node_modules/cssstyle/lib/properties/colorProfile.js +12 -0
  309. data/node_modules/cssstyle/lib/properties/colorRendering.js +12 -0
  310. data/node_modules/cssstyle/lib/properties/content.js +12 -0
  311. data/node_modules/cssstyle/lib/properties/counterIncrement.js +12 -0
  312. data/node_modules/cssstyle/lib/properties/counterReset.js +12 -0
  313. data/node_modules/cssstyle/lib/properties/cssFloat.js +12 -0
  314. data/node_modules/cssstyle/lib/properties/cue.js +12 -0
  315. data/node_modules/cssstyle/lib/properties/cueAfter.js +12 -0
  316. data/node_modules/cssstyle/lib/properties/cueBefore.js +12 -0
  317. data/node_modules/cssstyle/lib/properties/cursor.js +12 -0
  318. data/node_modules/cssstyle/lib/properties/direction.js +12 -0
  319. data/node_modules/cssstyle/lib/properties/display.js +12 -0
  320. data/node_modules/cssstyle/lib/properties/dominantBaseline.js +12 -0
  321. data/node_modules/cssstyle/lib/properties/elevation.js +12 -0
  322. data/node_modules/cssstyle/lib/properties/emptyCells.js +12 -0
  323. data/node_modules/cssstyle/lib/properties/enableBackground.js +12 -0
  324. data/node_modules/cssstyle/lib/properties/fill.js +12 -0
  325. data/node_modules/cssstyle/lib/properties/fillOpacity.js +12 -0
  326. data/node_modules/cssstyle/lib/properties/fillRule.js +12 -0
  327. data/node_modules/cssstyle/lib/properties/filter.js +12 -0
  328. data/node_modules/cssstyle/lib/properties/floodColor.js +14 -0
  329. data/node_modules/cssstyle/lib/properties/floodOpacity.js +12 -0
  330. data/node_modules/cssstyle/lib/properties/font.js +40 -0
  331. data/node_modules/cssstyle/lib/properties/fontFamily.js +33 -0
  332. data/node_modules/cssstyle/lib/properties/fontSize.js +25 -0
  333. data/node_modules/cssstyle/lib/properties/fontSizeAdjust.js +12 -0
  334. data/node_modules/cssstyle/lib/properties/fontStretch.js +12 -0
  335. data/node_modules/cssstyle/lib/properties/fontStyle.js +18 -0
  336. data/node_modules/cssstyle/lib/properties/fontVariant.js +18 -0
  337. data/node_modules/cssstyle/lib/properties/fontWeight.js +18 -0
  338. data/node_modules/cssstyle/lib/properties/glyphOrientationHorizontal.js +12 -0
  339. data/node_modules/cssstyle/lib/properties/glyphOrientationVertical.js +12 -0
  340. data/node_modules/cssstyle/lib/properties/height.js +24 -0
  341. data/node_modules/cssstyle/lib/properties/imageRendering.js +12 -0
  342. data/node_modules/cssstyle/lib/properties/kerning.js +12 -0
  343. data/node_modules/cssstyle/lib/properties/left.js +14 -0
  344. data/node_modules/cssstyle/lib/properties/letterSpacing.js +12 -0
  345. data/node_modules/cssstyle/lib/properties/lightingColor.js +14 -0
  346. data/node_modules/cssstyle/lib/properties/lineHeight.js +21 -0
  347. data/node_modules/cssstyle/lib/properties/listStyle.js +12 -0
  348. data/node_modules/cssstyle/lib/properties/listStyleImage.js +12 -0
  349. data/node_modules/cssstyle/lib/properties/listStylePosition.js +12 -0
  350. data/node_modules/cssstyle/lib/properties/listStyleType.js +12 -0
  351. data/node_modules/cssstyle/lib/properties/margin.js +59 -0
  352. data/node_modules/cssstyle/lib/properties/marginBottom.js +13 -0
  353. data/node_modules/cssstyle/lib/properties/marginLeft.js +13 -0
  354. data/node_modules/cssstyle/lib/properties/marginRight.js +13 -0
  355. data/node_modules/cssstyle/lib/properties/marginTop.js +13 -0
  356. data/node_modules/cssstyle/lib/properties/marker.js +12 -0
  357. data/node_modules/cssstyle/lib/properties/markerEnd.js +12 -0
  358. data/node_modules/cssstyle/lib/properties/markerMid.js +12 -0
  359. data/node_modules/cssstyle/lib/properties/markerOffset.js +12 -0
  360. data/node_modules/cssstyle/lib/properties/markerStart.js +12 -0
  361. data/node_modules/cssstyle/lib/properties/marks.js +12 -0
  362. data/node_modules/cssstyle/lib/properties/mask.js +12 -0
  363. data/node_modules/cssstyle/lib/properties/maxHeight.js +12 -0
  364. data/node_modules/cssstyle/lib/properties/maxWidth.js +12 -0
  365. data/node_modules/cssstyle/lib/properties/minHeight.js +12 -0
  366. data/node_modules/cssstyle/lib/properties/minWidth.js +12 -0
  367. data/node_modules/cssstyle/lib/properties/opacity.js +14 -0
  368. data/node_modules/cssstyle/lib/properties/orphans.js +12 -0
  369. data/node_modules/cssstyle/lib/properties/outline.js +12 -0
  370. data/node_modules/cssstyle/lib/properties/outlineColor.js +14 -0
  371. data/node_modules/cssstyle/lib/properties/outlineOffset.js +12 -0
  372. data/node_modules/cssstyle/lib/properties/outlineStyle.js +12 -0
  373. data/node_modules/cssstyle/lib/properties/outlineWidth.js +12 -0
  374. data/node_modules/cssstyle/lib/properties/overflow.js +12 -0
  375. data/node_modules/cssstyle/lib/properties/overflowX.js +12 -0
  376. data/node_modules/cssstyle/lib/properties/overflowY.js +12 -0
  377. data/node_modules/cssstyle/lib/properties/padding.js +52 -0
  378. data/node_modules/cssstyle/lib/properties/paddingBottom.js +13 -0
  379. data/node_modules/cssstyle/lib/properties/paddingLeft.js +13 -0
  380. data/node_modules/cssstyle/lib/properties/paddingRight.js +13 -0
  381. data/node_modules/cssstyle/lib/properties/paddingTop.js +13 -0
  382. data/node_modules/cssstyle/lib/properties/page.js +12 -0
  383. data/node_modules/cssstyle/lib/properties/pageBreakAfter.js +12 -0
  384. data/node_modules/cssstyle/lib/properties/pageBreakBefore.js +12 -0
  385. data/node_modules/cssstyle/lib/properties/pageBreakInside.js +12 -0
  386. data/node_modules/cssstyle/lib/properties/pause.js +12 -0
  387. data/node_modules/cssstyle/lib/properties/pauseAfter.js +12 -0
  388. data/node_modules/cssstyle/lib/properties/pauseBefore.js +12 -0
  389. data/node_modules/cssstyle/lib/properties/pitch.js +12 -0
  390. data/node_modules/cssstyle/lib/properties/pitchRange.js +12 -0
  391. data/node_modules/cssstyle/lib/properties/playDuring.js +12 -0
  392. data/node_modules/cssstyle/lib/properties/pointerEvents.js +12 -0
  393. data/node_modules/cssstyle/lib/properties/position.js +12 -0
  394. data/node_modules/cssstyle/lib/properties/quotes.js +12 -0
  395. data/node_modules/cssstyle/lib/properties/resize.js +12 -0
  396. data/node_modules/cssstyle/lib/properties/richness.js +12 -0
  397. data/node_modules/cssstyle/lib/properties/right.js +14 -0
  398. data/node_modules/cssstyle/lib/properties/shapeRendering.js +12 -0
  399. data/node_modules/cssstyle/lib/properties/size.js +12 -0
  400. data/node_modules/cssstyle/lib/properties/speak.js +12 -0
  401. data/node_modules/cssstyle/lib/properties/speakHeader.js +12 -0
  402. data/node_modules/cssstyle/lib/properties/speakNumeral.js +12 -0
  403. data/node_modules/cssstyle/lib/properties/speakPunctuation.js +12 -0
  404. data/node_modules/cssstyle/lib/properties/speechRate.js +12 -0
  405. data/node_modules/cssstyle/lib/properties/src.js +12 -0
  406. data/node_modules/cssstyle/lib/properties/stopColor.js +14 -0
  407. data/node_modules/cssstyle/lib/properties/stopOpacity.js +12 -0
  408. data/node_modules/cssstyle/lib/properties/stress.js +12 -0
  409. data/node_modules/cssstyle/lib/properties/stroke.js +12 -0
  410. data/node_modules/cssstyle/lib/properties/strokeDasharray.js +12 -0
  411. data/node_modules/cssstyle/lib/properties/strokeDashoffset.js +12 -0
  412. data/node_modules/cssstyle/lib/properties/strokeLinecap.js +12 -0
  413. data/node_modules/cssstyle/lib/properties/strokeLinejoin.js +12 -0
  414. data/node_modules/cssstyle/lib/properties/strokeMiterlimit.js +12 -0
  415. data/node_modules/cssstyle/lib/properties/strokeOpacity.js +12 -0
  416. data/node_modules/cssstyle/lib/properties/strokeWidth.js +12 -0
  417. data/node_modules/cssstyle/lib/properties/tableLayout.js +12 -0
  418. data/node_modules/cssstyle/lib/properties/textAlign.js +12 -0
  419. data/node_modules/cssstyle/lib/properties/textAnchor.js +12 -0
  420. data/node_modules/cssstyle/lib/properties/textDecoration.js +12 -0
  421. data/node_modules/cssstyle/lib/properties/textIndent.js +12 -0
  422. data/node_modules/cssstyle/lib/properties/textLineThrough.js +12 -0
  423. data/node_modules/cssstyle/lib/properties/textLineThroughColor.js +14 -0
  424. data/node_modules/cssstyle/lib/properties/textLineThroughMode.js +12 -0
  425. data/node_modules/cssstyle/lib/properties/textLineThroughStyle.js +12 -0
  426. data/node_modules/cssstyle/lib/properties/textLineThroughWidth.js +12 -0
  427. data/node_modules/cssstyle/lib/properties/textOverflow.js +12 -0
  428. data/node_modules/cssstyle/lib/properties/textOverline.js +12 -0
  429. data/node_modules/cssstyle/lib/properties/textOverlineColor.js +14 -0
  430. data/node_modules/cssstyle/lib/properties/textOverlineMode.js +12 -0
  431. data/node_modules/cssstyle/lib/properties/textOverlineStyle.js +12 -0
  432. data/node_modules/cssstyle/lib/properties/textOverlineWidth.js +12 -0
  433. data/node_modules/cssstyle/lib/properties/textRendering.js +12 -0
  434. data/node_modules/cssstyle/lib/properties/textShadow.js +12 -0
  435. data/node_modules/cssstyle/lib/properties/textTransform.js +12 -0
  436. data/node_modules/cssstyle/lib/properties/textUnderline.js +12 -0
  437. data/node_modules/cssstyle/lib/properties/textUnderlineColor.js +14 -0
  438. data/node_modules/cssstyle/lib/properties/textUnderlineMode.js +12 -0
  439. data/node_modules/cssstyle/lib/properties/textUnderlineStyle.js +12 -0
  440. data/node_modules/cssstyle/lib/properties/textUnderlineWidth.js +12 -0
  441. data/node_modules/cssstyle/lib/properties/top.js +14 -0
  442. data/node_modules/cssstyle/lib/properties/unicodeBidi.js +12 -0
  443. data/node_modules/cssstyle/lib/properties/unicodeRange.js +12 -0
  444. data/node_modules/cssstyle/lib/properties/vectorEffect.js +12 -0
  445. data/node_modules/cssstyle/lib/properties/verticalAlign.js +12 -0
  446. data/node_modules/cssstyle/lib/properties/visibility.js +12 -0
  447. data/node_modules/cssstyle/lib/properties/voiceFamily.js +12 -0
  448. data/node_modules/cssstyle/lib/properties/volume.js +12 -0
  449. data/node_modules/cssstyle/lib/properties/webkitAnimation.js +12 -0
  450. data/node_modules/cssstyle/lib/properties/webkitAnimationDelay.js +12 -0
  451. data/node_modules/cssstyle/lib/properties/webkitAnimationDirection.js +12 -0
  452. data/node_modules/cssstyle/lib/properties/webkitAnimationDuration.js +12 -0
  453. data/node_modules/cssstyle/lib/properties/webkitAnimationFillMode.js +12 -0
  454. data/node_modules/cssstyle/lib/properties/webkitAnimationIterationCount.js +12 -0
  455. data/node_modules/cssstyle/lib/properties/webkitAnimationName.js +12 -0
  456. data/node_modules/cssstyle/lib/properties/webkitAnimationPlayState.js +12 -0
  457. data/node_modules/cssstyle/lib/properties/webkitAnimationTimingFunction.js +12 -0
  458. data/node_modules/cssstyle/lib/properties/webkitAppearance.js +12 -0
  459. data/node_modules/cssstyle/lib/properties/webkitAspectRatio.js +12 -0
  460. data/node_modules/cssstyle/lib/properties/webkitBackfaceVisibility.js +12 -0
  461. data/node_modules/cssstyle/lib/properties/webkitBackgroundClip.js +12 -0
  462. data/node_modules/cssstyle/lib/properties/webkitBackgroundComposite.js +12 -0
  463. data/node_modules/cssstyle/lib/properties/webkitBackgroundOrigin.js +12 -0
  464. data/node_modules/cssstyle/lib/properties/webkitBackgroundSize.js +12 -0
  465. data/node_modules/cssstyle/lib/properties/webkitBorderAfter.js +12 -0
  466. data/node_modules/cssstyle/lib/properties/webkitBorderAfterColor.js +14 -0
  467. data/node_modules/cssstyle/lib/properties/webkitBorderAfterStyle.js +12 -0
  468. data/node_modules/cssstyle/lib/properties/webkitBorderAfterWidth.js +12 -0
  469. data/node_modules/cssstyle/lib/properties/webkitBorderBefore.js +12 -0
  470. data/node_modules/cssstyle/lib/properties/webkitBorderBeforeColor.js +14 -0
  471. data/node_modules/cssstyle/lib/properties/webkitBorderBeforeStyle.js +12 -0
  472. data/node_modules/cssstyle/lib/properties/webkitBorderBeforeWidth.js +12 -0
  473. data/node_modules/cssstyle/lib/properties/webkitBorderEnd.js +12 -0
  474. data/node_modules/cssstyle/lib/properties/webkitBorderEndColor.js +14 -0
  475. data/node_modules/cssstyle/lib/properties/webkitBorderEndStyle.js +12 -0
  476. data/node_modules/cssstyle/lib/properties/webkitBorderEndWidth.js +12 -0
  477. data/node_modules/cssstyle/lib/properties/webkitBorderFit.js +12 -0
  478. data/node_modules/cssstyle/lib/properties/webkitBorderHorizontalSpacing.js +12 -0
  479. data/node_modules/cssstyle/lib/properties/webkitBorderImage.js +12 -0
  480. data/node_modules/cssstyle/lib/properties/webkitBorderRadius.js +12 -0
  481. data/node_modules/cssstyle/lib/properties/webkitBorderStart.js +12 -0
  482. data/node_modules/cssstyle/lib/properties/webkitBorderStartColor.js +14 -0
  483. data/node_modules/cssstyle/lib/properties/webkitBorderStartStyle.js +12 -0
  484. data/node_modules/cssstyle/lib/properties/webkitBorderStartWidth.js +12 -0
  485. data/node_modules/cssstyle/lib/properties/webkitBorderVerticalSpacing.js +12 -0
  486. data/node_modules/cssstyle/lib/properties/webkitBoxAlign.js +12 -0
  487. data/node_modules/cssstyle/lib/properties/webkitBoxDirection.js +12 -0
  488. data/node_modules/cssstyle/lib/properties/webkitBoxFlex.js +12 -0
  489. data/node_modules/cssstyle/lib/properties/webkitBoxFlexGroup.js +12 -0
  490. data/node_modules/cssstyle/lib/properties/webkitBoxLines.js +12 -0
  491. data/node_modules/cssstyle/lib/properties/webkitBoxOrdinalGroup.js +12 -0
  492. data/node_modules/cssstyle/lib/properties/webkitBoxOrient.js +12 -0
  493. data/node_modules/cssstyle/lib/properties/webkitBoxPack.js +12 -0
  494. data/node_modules/cssstyle/lib/properties/webkitBoxReflect.js +12 -0
  495. data/node_modules/cssstyle/lib/properties/webkitBoxShadow.js +12 -0
  496. data/node_modules/cssstyle/lib/properties/webkitColorCorrection.js +12 -0
  497. data/node_modules/cssstyle/lib/properties/webkitColumnAxis.js +12 -0
  498. data/node_modules/cssstyle/lib/properties/webkitColumnBreakAfter.js +12 -0
  499. data/node_modules/cssstyle/lib/properties/webkitColumnBreakBefore.js +12 -0
  500. data/node_modules/cssstyle/lib/properties/webkitColumnBreakInside.js +12 -0
  501. data/node_modules/cssstyle/lib/properties/webkitColumnCount.js +12 -0
  502. data/node_modules/cssstyle/lib/properties/webkitColumnGap.js +12 -0
  503. data/node_modules/cssstyle/lib/properties/webkitColumnRule.js +12 -0
  504. data/node_modules/cssstyle/lib/properties/webkitColumnRuleColor.js +14 -0
  505. data/node_modules/cssstyle/lib/properties/webkitColumnRuleStyle.js +12 -0
  506. data/node_modules/cssstyle/lib/properties/webkitColumnRuleWidth.js +12 -0
  507. data/node_modules/cssstyle/lib/properties/webkitColumnSpan.js +12 -0
  508. data/node_modules/cssstyle/lib/properties/webkitColumnWidth.js +12 -0
  509. data/node_modules/cssstyle/lib/properties/webkitColumns.js +12 -0
  510. data/node_modules/cssstyle/lib/properties/webkitFilter.js +12 -0
  511. data/node_modules/cssstyle/lib/properties/webkitFlexAlign.js +12 -0
  512. data/node_modules/cssstyle/lib/properties/webkitFlexDirection.js +12 -0
  513. data/node_modules/cssstyle/lib/properties/webkitFlexFlow.js +12 -0
  514. data/node_modules/cssstyle/lib/properties/webkitFlexItemAlign.js +12 -0
  515. data/node_modules/cssstyle/lib/properties/webkitFlexLinePack.js +12 -0
  516. data/node_modules/cssstyle/lib/properties/webkitFlexOrder.js +12 -0
  517. data/node_modules/cssstyle/lib/properties/webkitFlexPack.js +12 -0
  518. data/node_modules/cssstyle/lib/properties/webkitFlexWrap.js +12 -0
  519. data/node_modules/cssstyle/lib/properties/webkitFlowFrom.js +12 -0
  520. data/node_modules/cssstyle/lib/properties/webkitFlowInto.js +12 -0
  521. data/node_modules/cssstyle/lib/properties/webkitFontFeatureSettings.js +12 -0
  522. data/node_modules/cssstyle/lib/properties/webkitFontKerning.js +12 -0
  523. data/node_modules/cssstyle/lib/properties/webkitFontSizeDelta.js +12 -0
  524. data/node_modules/cssstyle/lib/properties/webkitFontSmoothing.js +12 -0
  525. data/node_modules/cssstyle/lib/properties/webkitFontVariantLigatures.js +12 -0
  526. data/node_modules/cssstyle/lib/properties/webkitHighlight.js +12 -0
  527. data/node_modules/cssstyle/lib/properties/webkitHyphenateCharacter.js +12 -0
  528. data/node_modules/cssstyle/lib/properties/webkitHyphenateLimitAfter.js +12 -0
  529. data/node_modules/cssstyle/lib/properties/webkitHyphenateLimitBefore.js +12 -0
  530. data/node_modules/cssstyle/lib/properties/webkitHyphenateLimitLines.js +12 -0
  531. data/node_modules/cssstyle/lib/properties/webkitHyphens.js +12 -0
  532. data/node_modules/cssstyle/lib/properties/webkitLineAlign.js +12 -0
  533. data/node_modules/cssstyle/lib/properties/webkitLineBoxContain.js +12 -0
  534. data/node_modules/cssstyle/lib/properties/webkitLineBreak.js +12 -0
  535. data/node_modules/cssstyle/lib/properties/webkitLineClamp.js +12 -0
  536. data/node_modules/cssstyle/lib/properties/webkitLineGrid.js +12 -0
  537. data/node_modules/cssstyle/lib/properties/webkitLineSnap.js +12 -0
  538. data/node_modules/cssstyle/lib/properties/webkitLocale.js +12 -0
  539. data/node_modules/cssstyle/lib/properties/webkitLogicalHeight.js +12 -0
  540. data/node_modules/cssstyle/lib/properties/webkitLogicalWidth.js +12 -0
  541. data/node_modules/cssstyle/lib/properties/webkitMarginAfter.js +12 -0
  542. data/node_modules/cssstyle/lib/properties/webkitMarginAfterCollapse.js +12 -0
  543. data/node_modules/cssstyle/lib/properties/webkitMarginBefore.js +12 -0
  544. data/node_modules/cssstyle/lib/properties/webkitMarginBeforeCollapse.js +12 -0
  545. data/node_modules/cssstyle/lib/properties/webkitMarginBottomCollapse.js +12 -0
  546. data/node_modules/cssstyle/lib/properties/webkitMarginCollapse.js +12 -0
  547. data/node_modules/cssstyle/lib/properties/webkitMarginEnd.js +12 -0
  548. data/node_modules/cssstyle/lib/properties/webkitMarginStart.js +12 -0
  549. data/node_modules/cssstyle/lib/properties/webkitMarginTopCollapse.js +12 -0
  550. data/node_modules/cssstyle/lib/properties/webkitMarquee.js +12 -0
  551. data/node_modules/cssstyle/lib/properties/webkitMarqueeDirection.js +12 -0
  552. data/node_modules/cssstyle/lib/properties/webkitMarqueeIncrement.js +12 -0
  553. data/node_modules/cssstyle/lib/properties/webkitMarqueeRepetition.js +12 -0
  554. data/node_modules/cssstyle/lib/properties/webkitMarqueeSpeed.js +12 -0
  555. data/node_modules/cssstyle/lib/properties/webkitMarqueeStyle.js +12 -0
  556. data/node_modules/cssstyle/lib/properties/webkitMask.js +12 -0
  557. data/node_modules/cssstyle/lib/properties/webkitMaskAttachment.js +12 -0
  558. data/node_modules/cssstyle/lib/properties/webkitMaskBoxImage.js +12 -0
  559. data/node_modules/cssstyle/lib/properties/webkitMaskBoxImageOutset.js +12 -0
  560. data/node_modules/cssstyle/lib/properties/webkitMaskBoxImageRepeat.js +12 -0
  561. data/node_modules/cssstyle/lib/properties/webkitMaskBoxImageSlice.js +12 -0
  562. data/node_modules/cssstyle/lib/properties/webkitMaskBoxImageSource.js +12 -0
  563. data/node_modules/cssstyle/lib/properties/webkitMaskBoxImageWidth.js +12 -0
  564. data/node_modules/cssstyle/lib/properties/webkitMaskClip.js +12 -0
  565. data/node_modules/cssstyle/lib/properties/webkitMaskComposite.js +12 -0
  566. data/node_modules/cssstyle/lib/properties/webkitMaskImage.js +12 -0
  567. data/node_modules/cssstyle/lib/properties/webkitMaskOrigin.js +12 -0
  568. data/node_modules/cssstyle/lib/properties/webkitMaskPosition.js +12 -0
  569. data/node_modules/cssstyle/lib/properties/webkitMaskPositionX.js +12 -0
  570. data/node_modules/cssstyle/lib/properties/webkitMaskPositionY.js +12 -0
  571. data/node_modules/cssstyle/lib/properties/webkitMaskRepeat.js +12 -0
  572. data/node_modules/cssstyle/lib/properties/webkitMaskRepeatX.js +12 -0
  573. data/node_modules/cssstyle/lib/properties/webkitMaskRepeatY.js +12 -0
  574. data/node_modules/cssstyle/lib/properties/webkitMaskSize.js +12 -0
  575. data/node_modules/cssstyle/lib/properties/webkitMatchNearestMailBlockquoteColor.js +14 -0
  576. data/node_modules/cssstyle/lib/properties/webkitMaxLogicalHeight.js +12 -0
  577. data/node_modules/cssstyle/lib/properties/webkitMaxLogicalWidth.js +12 -0
  578. data/node_modules/cssstyle/lib/properties/webkitMinLogicalHeight.js +12 -0
  579. data/node_modules/cssstyle/lib/properties/webkitMinLogicalWidth.js +12 -0
  580. data/node_modules/cssstyle/lib/properties/webkitNbspMode.js +12 -0
  581. data/node_modules/cssstyle/lib/properties/webkitOverflowScrolling.js +12 -0
  582. data/node_modules/cssstyle/lib/properties/webkitPaddingAfter.js +12 -0
  583. data/node_modules/cssstyle/lib/properties/webkitPaddingBefore.js +12 -0
  584. data/node_modules/cssstyle/lib/properties/webkitPaddingEnd.js +12 -0
  585. data/node_modules/cssstyle/lib/properties/webkitPaddingStart.js +12 -0
  586. data/node_modules/cssstyle/lib/properties/webkitPerspective.js +12 -0
  587. data/node_modules/cssstyle/lib/properties/webkitPerspectiveOrigin.js +12 -0
  588. data/node_modules/cssstyle/lib/properties/webkitPerspectiveOriginX.js +12 -0
  589. data/node_modules/cssstyle/lib/properties/webkitPerspectiveOriginY.js +12 -0
  590. data/node_modules/cssstyle/lib/properties/webkitPrintColorAdjust.js +12 -0
  591. data/node_modules/cssstyle/lib/properties/webkitRegionBreakAfter.js +12 -0
  592. data/node_modules/cssstyle/lib/properties/webkitRegionBreakBefore.js +12 -0
  593. data/node_modules/cssstyle/lib/properties/webkitRegionBreakInside.js +12 -0
  594. data/node_modules/cssstyle/lib/properties/webkitRegionOverflow.js +12 -0
  595. data/node_modules/cssstyle/lib/properties/webkitRtlOrdering.js +12 -0
  596. data/node_modules/cssstyle/lib/properties/webkitSvgShadow.js +12 -0
  597. data/node_modules/cssstyle/lib/properties/webkitTapHighlightColor.js +14 -0
  598. data/node_modules/cssstyle/lib/properties/webkitTextCombine.js +12 -0
  599. data/node_modules/cssstyle/lib/properties/webkitTextDecorationsInEffect.js +12 -0
  600. data/node_modules/cssstyle/lib/properties/webkitTextEmphasis.js +12 -0
  601. data/node_modules/cssstyle/lib/properties/webkitTextEmphasisColor.js +14 -0
  602. data/node_modules/cssstyle/lib/properties/webkitTextEmphasisPosition.js +12 -0
  603. data/node_modules/cssstyle/lib/properties/webkitTextEmphasisStyle.js +12 -0
  604. data/node_modules/cssstyle/lib/properties/webkitTextFillColor.js +14 -0
  605. data/node_modules/cssstyle/lib/properties/webkitTextOrientation.js +12 -0
  606. data/node_modules/cssstyle/lib/properties/webkitTextSecurity.js +12 -0
  607. data/node_modules/cssstyle/lib/properties/webkitTextSizeAdjust.js +12 -0
  608. data/node_modules/cssstyle/lib/properties/webkitTextStroke.js +12 -0
  609. data/node_modules/cssstyle/lib/properties/webkitTextStrokeColor.js +14 -0
  610. data/node_modules/cssstyle/lib/properties/webkitTextStrokeWidth.js +12 -0
  611. data/node_modules/cssstyle/lib/properties/webkitTransform.js +12 -0
  612. data/node_modules/cssstyle/lib/properties/webkitTransformOrigin.js +12 -0
  613. data/node_modules/cssstyle/lib/properties/webkitTransformOriginX.js +12 -0
  614. data/node_modules/cssstyle/lib/properties/webkitTransformOriginY.js +12 -0
  615. data/node_modules/cssstyle/lib/properties/webkitTransformOriginZ.js +12 -0
  616. data/node_modules/cssstyle/lib/properties/webkitTransformStyle.js +12 -0
  617. data/node_modules/cssstyle/lib/properties/webkitTransition.js +12 -0
  618. data/node_modules/cssstyle/lib/properties/webkitTransitionDelay.js +12 -0
  619. data/node_modules/cssstyle/lib/properties/webkitTransitionDuration.js +12 -0
  620. data/node_modules/cssstyle/lib/properties/webkitTransitionProperty.js +12 -0
  621. data/node_modules/cssstyle/lib/properties/webkitTransitionTimingFunction.js +12 -0
  622. data/node_modules/cssstyle/lib/properties/webkitUserDrag.js +12 -0
  623. data/node_modules/cssstyle/lib/properties/webkitUserModify.js +12 -0
  624. data/node_modules/cssstyle/lib/properties/webkitUserSelect.js +12 -0
  625. data/node_modules/cssstyle/lib/properties/webkitWrap.js +12 -0
  626. data/node_modules/cssstyle/lib/properties/webkitWrapFlow.js +12 -0
  627. data/node_modules/cssstyle/lib/properties/webkitWrapMargin.js +12 -0
  628. data/node_modules/cssstyle/lib/properties/webkitWrapPadding.js +12 -0
  629. data/node_modules/cssstyle/lib/properties/webkitWrapShapeInside.js +12 -0
  630. data/node_modules/cssstyle/lib/properties/webkitWrapShapeOutside.js +12 -0
  631. data/node_modules/cssstyle/lib/properties/webkitWrapThrough.js +12 -0
  632. data/node_modules/cssstyle/lib/properties/webkitWritingMode.js +12 -0
  633. data/node_modules/cssstyle/lib/properties/whiteSpace.js +12 -0
  634. data/node_modules/cssstyle/lib/properties/widows.js +12 -0
  635. data/node_modules/cssstyle/lib/properties/width.js +24 -0
  636. data/node_modules/cssstyle/lib/properties/wordBreak.js +12 -0
  637. data/node_modules/cssstyle/lib/properties/wordSpacing.js +12 -0
  638. data/node_modules/cssstyle/lib/properties/wordWrap.js +12 -0
  639. data/node_modules/cssstyle/lib/properties/writingMode.js +12 -0
  640. data/node_modules/cssstyle/lib/properties/zIndex.js +12 -0
  641. data/node_modules/cssstyle/lib/properties/zoom.js +12 -0
  642. data/node_modules/cssstyle/package.json +109 -0
  643. data/node_modules/cssstyle/scripts/generate_properties.js +302 -0
  644. data/node_modules/cssstyle/scripts/run_tests.sh +4 -0
  645. data/node_modules/cssstyle/tests/tests.js +405 -0
  646. data/node_modules/dashdash/CHANGES.md +364 -0
  647. data/node_modules/dashdash/LICENSE.txt +24 -0
  648. data/node_modules/dashdash/README.md +574 -0
  649. data/node_modules/dashdash/etc/dashdash.bash_completion.in +389 -0
  650. data/node_modules/dashdash/lib/dashdash.js +1055 -0
  651. data/node_modules/dashdash/node_modules/assert-plus/AUTHORS +6 -0
  652. data/node_modules/dashdash/node_modules/assert-plus/CHANGES.md +14 -0
  653. data/node_modules/dashdash/node_modules/assert-plus/README.md +162 -0
  654. data/node_modules/dashdash/node_modules/assert-plus/assert.js +211 -0
  655. data/node_modules/dashdash/node_modules/assert-plus/package.json +115 -0
  656. data/node_modules/dashdash/package.json +125 -0
  657. data/node_modules/deep-eql/.npmignore +11 -0
  658. data/node_modules/deep-eql/History.md +28 -0
  659. data/node_modules/deep-eql/README.md +52 -0
  660. data/node_modules/deep-eql/index.js +1 -0
  661. data/node_modules/deep-eql/karma.conf.js +20 -0
  662. data/node_modules/deep-eql/lib/eql.js +257 -0
  663. data/node_modules/deep-eql/node_modules/type-detect/.npmignore +11 -0
  664. data/node_modules/deep-eql/node_modules/type-detect/History.md +18 -0
  665. data/node_modules/deep-eql/node_modules/type-detect/README.md +193 -0
  666. data/node_modules/deep-eql/node_modules/type-detect/index.js +1 -0
  667. data/node_modules/deep-eql/node_modules/type-detect/lib/type.js +142 -0
  668. data/node_modules/deep-eql/node_modules/type-detect/package.json +91 -0
  669. data/node_modules/deep-eql/package.json +98 -0
  670. data/node_modules/deep-is/.npmignore +1 -0
  671. data/node_modules/deep-is/.travis.yml +6 -0
  672. data/node_modules/deep-is/LICENSE +22 -0
  673. data/node_modules/deep-is/README.markdown +70 -0
  674. data/node_modules/deep-is/example/cmp.js +11 -0
  675. data/node_modules/deep-is/index.js +102 -0
  676. data/node_modules/deep-is/package.json +120 -0
  677. data/node_modules/deep-is/test/NaN.js +16 -0
  678. data/node_modules/deep-is/test/cmp.js +23 -0
  679. data/node_modules/deep-is/test/neg-vs-pos-0.js +15 -0
  680. data/node_modules/delayed-stream/.npmignore +1 -0
  681. data/node_modules/delayed-stream/License +19 -0
  682. data/node_modules/delayed-stream/Makefile +7 -0
  683. data/node_modules/delayed-stream/Readme.md +141 -0
  684. data/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
  685. data/node_modules/delayed-stream/package.json +97 -0
  686. data/node_modules/ecc-jsbn/.npmignore +15 -0
  687. data/node_modules/ecc-jsbn/LICENSE +21 -0
  688. data/node_modules/ecc-jsbn/README.md +8 -0
  689. data/node_modules/ecc-jsbn/index.js +57 -0
  690. data/node_modules/ecc-jsbn/lib/LICENSE-jsbn +40 -0
  691. data/node_modules/ecc-jsbn/lib/ec.js +561 -0
  692. data/node_modules/ecc-jsbn/lib/sec.js +170 -0
  693. data/node_modules/ecc-jsbn/package.json +90 -0
  694. data/node_modules/ecc-jsbn/test.js +14 -0
  695. data/node_modules/escape-string-regexp/index.js +11 -0
  696. data/node_modules/escape-string-regexp/license +21 -0
  697. data/node_modules/escape-string-regexp/package.json +109 -0
  698. data/node_modules/escape-string-regexp/readme.md +27 -0
  699. data/node_modules/escodegen/LICENSE.BSD +19 -0
  700. data/node_modules/escodegen/LICENSE.source-map +27 -0
  701. data/node_modules/escodegen/README.md +116 -0
  702. data/node_modules/escodegen/bin/escodegen.js +77 -0
  703. data/node_modules/escodegen/bin/esgenerate.js +64 -0
  704. data/node_modules/escodegen/escodegen.js +2607 -0
  705. data/node_modules/escodegen/package.json +122 -0
  706. data/node_modules/esprima/ChangeLog +174 -0
  707. data/node_modules/esprima/LICENSE.BSD +21 -0
  708. data/node_modules/esprima/README.md +27 -0
  709. data/node_modules/esprima/bin/esparse.js +126 -0
  710. data/node_modules/esprima/bin/esvalidate.js +199 -0
  711. data/node_modules/esprima/esprima.js +5740 -0
  712. data/node_modules/esprima/package.json +153 -0
  713. data/node_modules/estraverse/.editorconfig +10 -0
  714. data/node_modules/estraverse/.jshintrc +16 -0
  715. data/node_modules/estraverse/LICENSE.BSD +19 -0
  716. data/node_modules/estraverse/README.md +124 -0
  717. data/node_modules/estraverse/estraverse.js +845 -0
  718. data/node_modules/estraverse/gulpfile.js +70 -0
  719. data/node_modules/estraverse/package.json +95 -0
  720. data/node_modules/esutils/LICENSE.BSD +19 -0
  721. data/node_modules/esutils/README.md +169 -0
  722. data/node_modules/esutils/lib/ast.js +144 -0
  723. data/node_modules/esutils/lib/code.js +135 -0
  724. data/node_modules/esutils/lib/keyword.js +165 -0
  725. data/node_modules/esutils/lib/utils.js +33 -0
  726. data/node_modules/esutils/package.json +105 -0
  727. data/node_modules/extend/.eslintrc +192 -0
  728. data/node_modules/extend/.jscs.json +104 -0
  729. data/node_modules/extend/.npmignore +1 -0
  730. data/node_modules/extend/.travis.yml +44 -0
  731. data/node_modules/extend/CHANGELOG.md +69 -0
  732. data/node_modules/extend/LICENSE +23 -0
  733. data/node_modules/extend/README.md +62 -0
  734. data/node_modules/extend/component.json +32 -0
  735. data/node_modules/extend/index.js +86 -0
  736. data/node_modules/extend/package.json +106 -0
  737. data/node_modules/extsprintf/.gitmodules +6 -0
  738. data/node_modules/extsprintf/LICENSE +19 -0
  739. data/node_modules/extsprintf/Makefile +23 -0
  740. data/node_modules/extsprintf/Makefile.deps +39 -0
  741. data/node_modules/extsprintf/Makefile.targ +285 -0
  742. data/node_modules/extsprintf/README.md +39 -0
  743. data/node_modules/extsprintf/examples/simple.js +2 -0
  744. data/node_modules/extsprintf/jsl.node.conf +137 -0
  745. data/node_modules/extsprintf/lib/extsprintf.js +166 -0
  746. data/node_modules/extsprintf/package.json +74 -0
  747. data/node_modules/fast-levenshtein/LICENSE.md +25 -0
  748. data/node_modules/fast-levenshtein/README.md +104 -0
  749. data/node_modules/fast-levenshtein/levenshtein.js +102 -0
  750. data/node_modules/fast-levenshtein/package.json +108 -0
  751. data/node_modules/forever-agent/LICENSE +55 -0
  752. data/node_modules/forever-agent/README.md +4 -0
  753. data/node_modules/forever-agent/index.js +138 -0
  754. data/node_modules/forever-agent/package.json +88 -0
  755. data/node_modules/form-data/License +19 -0
  756. data/node_modules/form-data/README.md +217 -0
  757. data/node_modules/form-data/lib/browser.js +2 -0
  758. data/node_modules/form-data/lib/form_data.js +440 -0
  759. data/node_modules/form-data/lib/populate.js +10 -0
  760. data/node_modules/form-data/package.json +145 -0
  761. data/node_modules/generate-function/.npmignore +1 -0
  762. data/node_modules/generate-function/.travis.yml +3 -0
  763. data/node_modules/generate-function/README.md +72 -0
  764. data/node_modules/generate-function/example.js +27 -0
  765. data/node_modules/generate-function/index.js +61 -0
  766. data/node_modules/generate-function/package.json +87 -0
  767. data/node_modules/generate-function/test.js +33 -0
  768. data/node_modules/generate-object-property/.npmignore +1 -0
  769. data/node_modules/generate-object-property/.travis.yml +3 -0
  770. data/node_modules/generate-object-property/LICENSE +21 -0
  771. data/node_modules/generate-object-property/README.md +19 -0
  772. data/node_modules/generate-object-property/index.js +12 -0
  773. data/node_modules/generate-object-property/package.json +84 -0
  774. data/node_modules/generate-object-property/test.js +12 -0
  775. data/node_modules/getpass/.npmignore +8 -0
  776. data/node_modules/getpass/.travis.yml +9 -0
  777. data/node_modules/getpass/LICENSE +18 -0
  778. data/node_modules/getpass/README.md +32 -0
  779. data/node_modules/getpass/lib/index.js +123 -0
  780. data/node_modules/getpass/node_modules/assert-plus/AUTHORS +6 -0
  781. data/node_modules/getpass/node_modules/assert-plus/CHANGES.md +14 -0
  782. data/node_modules/getpass/node_modules/assert-plus/README.md +162 -0
  783. data/node_modules/getpass/node_modules/assert-plus/assert.js +211 -0
  784. data/node_modules/getpass/node_modules/assert-plus/package.json +115 -0
  785. data/node_modules/getpass/package.json +90 -0
  786. data/node_modules/graceful-readlink/.npmignore +3 -0
  787. data/node_modules/graceful-readlink/.travis.yml +5 -0
  788. data/node_modules/graceful-readlink/LICENSE +22 -0
  789. data/node_modules/graceful-readlink/README.md +17 -0
  790. data/node_modules/graceful-readlink/index.js +12 -0
  791. data/node_modules/graceful-readlink/package.json +83 -0
  792. data/node_modules/har-validator/LICENSE +13 -0
  793. data/node_modules/har-validator/README.md +309 -0
  794. data/node_modules/har-validator/bin/har-validator +56 -0
  795. data/node_modules/har-validator/lib/async.js +14 -0
  796. data/node_modules/har-validator/lib/error.js +10 -0
  797. data/node_modules/har-validator/lib/index.js +22 -0
  798. data/node_modules/har-validator/lib/runner.js +29 -0
  799. data/node_modules/har-validator/lib/schemas/cache.json +13 -0
  800. data/node_modules/har-validator/lib/schemas/cacheEntry.json +31 -0
  801. data/node_modules/har-validator/lib/schemas/content.json +27 -0
  802. data/node_modules/har-validator/lib/schemas/cookie.json +34 -0
  803. data/node_modules/har-validator/lib/schemas/creator.json +18 -0
  804. data/node_modules/har-validator/lib/schemas/entry.json +51 -0
  805. data/node_modules/har-validator/lib/schemas/har.json +11 -0
  806. data/node_modules/har-validator/lib/schemas/index.js +49 -0
  807. data/node_modules/har-validator/lib/schemas/log.json +34 -0
  808. data/node_modules/har-validator/lib/schemas/page.json +30 -0
  809. data/node_modules/har-validator/lib/schemas/pageTimings.json +16 -0
  810. data/node_modules/har-validator/lib/schemas/postData.json +41 -0
  811. data/node_modules/har-validator/lib/schemas/record.json +18 -0
  812. data/node_modules/har-validator/lib/schemas/request.json +55 -0
  813. data/node_modules/har-validator/lib/schemas/response.json +52 -0
  814. data/node_modules/har-validator/lib/schemas/timings.json +40 -0
  815. data/node_modules/har-validator/package.json +120 -0
  816. data/node_modules/has-ansi/index.js +4 -0
  817. data/node_modules/has-ansi/license +21 -0
  818. data/node_modules/has-ansi/package.json +118 -0
  819. data/node_modules/has-ansi/readme.md +36 -0
  820. data/node_modules/hawk/.npmignore +20 -0
  821. data/node_modules/hawk/.travis.yml +5 -0
  822. data/node_modules/hawk/LICENSE +28 -0
  823. data/node_modules/hawk/README.md +634 -0
  824. data/node_modules/hawk/bower.json +24 -0
  825. data/node_modules/hawk/component.json +19 -0
  826. data/node_modules/hawk/dist/client.js +343 -0
  827. data/node_modules/hawk/example/usage.js +78 -0
  828. data/node_modules/hawk/images/hawk.png +0 -0
  829. data/node_modules/hawk/images/logo.png +0 -0
  830. data/node_modules/hawk/lib/browser.js +637 -0
  831. data/node_modules/hawk/lib/client.js +369 -0
  832. data/node_modules/hawk/lib/crypto.js +126 -0
  833. data/node_modules/hawk/lib/index.js +15 -0
  834. data/node_modules/hawk/lib/server.js +548 -0
  835. data/node_modules/hawk/lib/utils.js +184 -0
  836. data/node_modules/hawk/package.json +101 -0
  837. data/node_modules/hawk/test/browser.js +1492 -0
  838. data/node_modules/hawk/test/client.js +440 -0
  839. data/node_modules/hawk/test/crypto.js +70 -0
  840. data/node_modules/hawk/test/index.js +378 -0
  841. data/node_modules/hawk/test/readme.js +95 -0
  842. data/node_modules/hawk/test/server.js +1329 -0
  843. data/node_modules/hawk/test/uri.js +838 -0
  844. data/node_modules/hawk/test/utils.js +149 -0
  845. data/node_modules/hoek/.npmignore +18 -0
  846. data/node_modules/hoek/.travis.yml +7 -0
  847. data/node_modules/hoek/CONTRIBUTING.md +1 -0
  848. data/node_modules/hoek/LICENSE +31 -0
  849. data/node_modules/hoek/README.md +584 -0
  850. data/node_modules/hoek/images/hoek.png +0 -0
  851. data/node_modules/hoek/lib/escape.js +132 -0
  852. data/node_modules/hoek/lib/index.js +993 -0
  853. data/node_modules/hoek/package.json +96 -0
  854. data/node_modules/hoek/test/escaper.js +88 -0
  855. data/node_modules/hoek/test/index.js +2513 -0
  856. data/node_modules/hoek/test/modules/ignore.txt +0 -0
  857. data/node_modules/hoek/test/modules/test1.js +1 -0
  858. data/node_modules/hoek/test/modules/test2.js +1 -0
  859. data/node_modules/hoek/test/modules/test3.js +1 -0
  860. data/node_modules/html-encoding-sniffer/LICENSE.txt +19 -0
  861. data/node_modules/html-encoding-sniffer/README.md +38 -0
  862. data/node_modules/html-encoding-sniffer/lib/html-encoding-sniffer.js +302 -0
  863. data/node_modules/html-encoding-sniffer/package.json +98 -0
  864. data/node_modules/http-signature/.dir-locals.el +6 -0
  865. data/node_modules/http-signature/.npmignore +7 -0
  866. data/node_modules/http-signature/CHANGES.md +46 -0
  867. data/node_modules/http-signature/LICENSE +18 -0
  868. data/node_modules/http-signature/README.md +79 -0
  869. data/node_modules/http-signature/http_signing.md +363 -0
  870. data/node_modules/http-signature/lib/index.js +29 -0
  871. data/node_modules/http-signature/lib/parser.js +318 -0
  872. data/node_modules/http-signature/lib/signer.js +399 -0
  873. data/node_modules/http-signature/lib/utils.js +112 -0
  874. data/node_modules/http-signature/lib/verify.js +88 -0
  875. data/node_modules/http-signature/package.json +116 -0
  876. data/node_modules/iconv-lite/.npmignore +6 -0
  877. data/node_modules/iconv-lite/.travis.yml +22 -0
  878. data/node_modules/iconv-lite/Changelog.md +108 -0
  879. data/node_modules/iconv-lite/LICENSE +21 -0
  880. data/node_modules/iconv-lite/README.md +159 -0
  881. data/node_modules/iconv-lite/encodings/dbcs-codec.js +554 -0
  882. data/node_modules/iconv-lite/encodings/dbcs-data.js +176 -0
  883. data/node_modules/iconv-lite/encodings/index.js +22 -0
  884. data/node_modules/iconv-lite/encodings/internal.js +187 -0
  885. data/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
  886. data/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
  887. data/node_modules/iconv-lite/encodings/sbcs-data.js +169 -0
  888. data/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
  889. data/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
  890. data/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
  891. data/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
  892. data/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
  893. data/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
  894. data/node_modules/iconv-lite/encodings/tables/gbk-added.json +55 -0
  895. data/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
  896. data/node_modules/iconv-lite/encodings/utf16.js +176 -0
  897. data/node_modules/iconv-lite/encodings/utf7.js +289 -0
  898. data/node_modules/iconv-lite/lib/bom-handling.js +52 -0
  899. data/node_modules/iconv-lite/lib/extend-node.js +214 -0
  900. data/node_modules/iconv-lite/lib/index.d.ts +31 -0
  901. data/node_modules/iconv-lite/lib/index.js +141 -0
  902. data/node_modules/iconv-lite/lib/streams.js +120 -0
  903. data/node_modules/iconv-lite/package.json +158 -0
  904. data/node_modules/is-my-json-valid/.npmignore +2 -0
  905. data/node_modules/is-my-json-valid/.travis.yml +3 -0
  906. data/node_modules/is-my-json-valid/LICENSE +21 -0
  907. data/node_modules/is-my-json-valid/README.md +173 -0
  908. data/node_modules/is-my-json-valid/example.js +18 -0
  909. data/node_modules/is-my-json-valid/formats.js +14 -0
  910. data/node_modules/is-my-json-valid/index.js +594 -0
  911. data/node_modules/is-my-json-valid/package.json +116 -0
  912. data/node_modules/is-my-json-valid/require.js +12 -0
  913. data/node_modules/is-my-json-valid/test/fixtures/cosmic.js +84 -0
  914. data/node_modules/is-my-json-valid/test/json-schema-draft4/additionalItems.json +82 -0
  915. data/node_modules/is-my-json-valid/test/json-schema-draft4/additionalProperties.json +88 -0
  916. data/node_modules/is-my-json-valid/test/json-schema-draft4/allOf.json +112 -0
  917. data/node_modules/is-my-json-valid/test/json-schema-draft4/anyOf.json +68 -0
  918. data/node_modules/is-my-json-valid/test/json-schema-draft4/bignum.json +107 -0
  919. data/node_modules/is-my-json-valid/test/json-schema-draft4/default.json +49 -0
  920. data/node_modules/is-my-json-valid/test/json-schema-draft4/definitions.json +32 -0
  921. data/node_modules/is-my-json-valid/test/json-schema-draft4/dependencies.json +113 -0
  922. data/node_modules/is-my-json-valid/test/json-schema-draft4/enum.json +72 -0
  923. data/node_modules/is-my-json-valid/test/json-schema-draft4/format.json +143 -0
  924. data/node_modules/is-my-json-valid/test/json-schema-draft4/items.json +46 -0
  925. data/node_modules/is-my-json-valid/test/json-schema-draft4/maxItems.json +28 -0
  926. data/node_modules/is-my-json-valid/test/json-schema-draft4/maxLength.json +28 -0
  927. data/node_modules/is-my-json-valid/test/json-schema-draft4/maxProperties.json +28 -0
  928. data/node_modules/is-my-json-valid/test/json-schema-draft4/maximum.json +42 -0
  929. data/node_modules/is-my-json-valid/test/json-schema-draft4/minItems.json +28 -0
  930. data/node_modules/is-my-json-valid/test/json-schema-draft4/minLength.json +28 -0
  931. data/node_modules/is-my-json-valid/test/json-schema-draft4/minProperties.json +28 -0
  932. data/node_modules/is-my-json-valid/test/json-schema-draft4/minimum.json +42 -0
  933. data/node_modules/is-my-json-valid/test/json-schema-draft4/multipleOf.json +96 -0
  934. data/node_modules/is-my-json-valid/test/json-schema-draft4/not.json +96 -0
  935. data/node_modules/is-my-json-valid/test/json-schema-draft4/nullAndFormat.json +18 -0
  936. data/node_modules/is-my-json-valid/test/json-schema-draft4/nullAndObject.json +18 -0
  937. data/node_modules/is-my-json-valid/test/json-schema-draft4/oneOf.json +68 -0
  938. data/node_modules/is-my-json-valid/test/json-schema-draft4/pattern.json +23 -0
  939. data/node_modules/is-my-json-valid/test/json-schema-draft4/patternProperties.json +110 -0
  940. data/node_modules/is-my-json-valid/test/json-schema-draft4/properties.json +92 -0
  941. data/node_modules/is-my-json-valid/test/json-schema-draft4/ref.json +128 -0
  942. data/node_modules/is-my-json-valid/test/json-schema-draft4/refRemote.json +74 -0
  943. data/node_modules/is-my-json-valid/test/json-schema-draft4/required.json +39 -0
  944. data/node_modules/is-my-json-valid/test/json-schema-draft4/type.json +330 -0
  945. data/node_modules/is-my-json-valid/test/json-schema-draft4/uniqueItems.json +79 -0
  946. data/node_modules/is-my-json-valid/test/json-schema.js +23 -0
  947. data/node_modules/is-my-json-valid/test/misc.js +471 -0
  948. data/node_modules/is-property/.npmignore +17 -0
  949. data/node_modules/is-property/LICENSE +22 -0
  950. data/node_modules/is-property/README.md +28 -0
  951. data/node_modules/is-property/is-property.js +5 -0
  952. data/node_modules/is-property/package.json +92 -0
  953. data/node_modules/is-typedarray/LICENSE.md +18 -0
  954. data/node_modules/is-typedarray/README.md +16 -0
  955. data/node_modules/is-typedarray/index.js +41 -0
  956. data/node_modules/is-typedarray/package.json +90 -0
  957. data/node_modules/is-typedarray/test.js +34 -0
  958. data/node_modules/isstream/.jshintrc +59 -0
  959. data/node_modules/isstream/.npmignore +1 -0
  960. data/node_modules/isstream/.travis.yml +12 -0
  961. data/node_modules/isstream/LICENSE.md +11 -0
  962. data/node_modules/isstream/README.md +66 -0
  963. data/node_modules/isstream/isstream.js +27 -0
  964. data/node_modules/isstream/package.json +93 -0
  965. data/node_modules/isstream/test.js +168 -0
  966. data/node_modules/jodid25519/.npmignore +11 -0
  967. data/node_modules/jodid25519/.travis.yml +7 -0
  968. data/node_modules/jodid25519/AUTHORS.md +3 -0
  969. data/node_modules/jodid25519/LICENSE +23 -0
  970. data/node_modules/jodid25519/README.md +51 -0
  971. data/node_modules/jodid25519/almond.0 +42 -0
  972. data/node_modules/jodid25519/almond.1 +13 -0
  973. data/node_modules/jodid25519/index.js +35 -0
  974. data/node_modules/jodid25519/jsdoc.json +19 -0
  975. data/node_modules/jodid25519/lib/core.js +481 -0
  976. data/node_modules/jodid25519/lib/curve255.js +221 -0
  977. data/node_modules/jodid25519/lib/dh.js +111 -0
  978. data/node_modules/jodid25519/lib/eddsa.js +573 -0
  979. data/node_modules/jodid25519/lib/utils.js +198 -0
  980. data/node_modules/jodid25519/package.json +104 -0
  981. data/node_modules/jquery/AUTHORS.txt +295 -0
  982. data/node_modules/jquery/LICENSE.txt +36 -0
  983. data/node_modules/jquery/README.md +65 -0
  984. data/node_modules/jquery/bower.json +14 -0
  985. data/node_modules/jquery/dist/core.js +482 -0
  986. data/node_modules/jquery/dist/jquery.js +10220 -0
  987. data/node_modules/jquery/dist/jquery.min.js +4 -0
  988. data/node_modules/jquery/dist/jquery.min.map +1 -0
  989. data/node_modules/jquery/dist/jquery.slim.js +8107 -0
  990. data/node_modules/jquery/dist/jquery.slim.min.js +4 -0
  991. data/node_modules/jquery/dist/jquery.slim.min.map +1 -0
  992. data/node_modules/jquery/external/sizzle/LICENSE.txt +36 -0
  993. data/node_modules/jquery/external/sizzle/dist/sizzle.js +2272 -0
  994. data/node_modules/jquery/external/sizzle/dist/sizzle.min.js +3 -0
  995. data/node_modules/jquery/external/sizzle/dist/sizzle.min.map +1 -0
  996. data/node_modules/jquery/package.json +169 -0
  997. data/node_modules/jquery/src/.eslintrc.json +18 -0
  998. data/node_modules/jquery/src/ajax.js +855 -0
  999. data/node_modules/jquery/src/ajax/jsonp.js +102 -0
  1000. data/node_modules/jquery/src/ajax/load.js +76 -0
  1001. data/node_modules/jquery/src/ajax/parseXML.js +30 -0
  1002. data/node_modules/jquery/src/ajax/script.js +77 -0
  1003. data/node_modules/jquery/src/ajax/var/location.js +5 -0
  1004. data/node_modules/jquery/src/ajax/var/nonce.js +7 -0
  1005. data/node_modules/jquery/src/ajax/var/rquery.js +5 -0
  1006. data/node_modules/jquery/src/ajax/xhr.js +169 -0
  1007. data/node_modules/jquery/src/attributes.js +13 -0
  1008. data/node_modules/jquery/src/attributes/attr.js +140 -0
  1009. data/node_modules/jquery/src/attributes/classes.js +174 -0
  1010. data/node_modules/jquery/src/attributes/prop.js +143 -0
  1011. data/node_modules/jquery/src/attributes/support.js +33 -0
  1012. data/node_modules/jquery/src/attributes/val.js +188 -0
  1013. data/node_modules/jquery/src/callbacks.js +234 -0
  1014. data/node_modules/jquery/src/core.js +482 -0
  1015. data/node_modules/jquery/src/core/DOMEval.js +16 -0
  1016. data/node_modules/jquery/src/core/access.js +70 -0
  1017. data/node_modules/jquery/src/core/init.js +127 -0
  1018. data/node_modules/jquery/src/core/parseHTML.js +65 -0
  1019. data/node_modules/jquery/src/core/ready-no-deferred.js +105 -0
  1020. data/node_modules/jquery/src/core/ready.js +95 -0
  1021. data/node_modules/jquery/src/core/readyException.js +13 -0
  1022. data/node_modules/jquery/src/core/stripAndCollapse.js +14 -0
  1023. data/node_modules/jquery/src/core/support.js +20 -0
  1024. data/node_modules/jquery/src/core/var/rsingleTag.js +6 -0
  1025. data/node_modules/jquery/src/css.js +426 -0
  1026. data/node_modules/jquery/src/css/addGetHookIf.js +26 -0
  1027. data/node_modules/jquery/src/css/adjustCSS.js +71 -0
  1028. data/node_modules/jquery/src/css/curCSS.js +59 -0
  1029. data/node_modules/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  1030. data/node_modules/jquery/src/css/showHide.js +105 -0
  1031. data/node_modules/jquery/src/css/support.js +89 -0
  1032. data/node_modules/jquery/src/css/var/cssExpand.js +5 -0
  1033. data/node_modules/jquery/src/css/var/getStyles.js +17 -0
  1034. data/node_modules/jquery/src/css/var/isHiddenWithinTree.js +34 -0
  1035. data/node_modules/jquery/src/css/var/rmargin.js +5 -0
  1036. data/node_modules/jquery/src/css/var/rnumnonpx.js +7 -0
  1037. data/node_modules/jquery/src/css/var/swap.js +26 -0
  1038. data/node_modules/jquery/src/data.js +179 -0
  1039. data/node_modules/jquery/src/data/Data.js +161 -0
  1040. data/node_modules/jquery/src/data/var/acceptData.js +19 -0
  1041. data/node_modules/jquery/src/data/var/dataPriv.js +7 -0
  1042. data/node_modules/jquery/src/data/var/dataUser.js +7 -0
  1043. data/node_modules/jquery/src/deferred.js +389 -0
  1044. data/node_modules/jquery/src/deferred/exceptionHook.js +21 -0
  1045. data/node_modules/jquery/src/deprecated.js +30 -0
  1046. data/node_modules/jquery/src/dimensions.js +56 -0
  1047. data/node_modules/jquery/src/effects.js +693 -0
  1048. data/node_modules/jquery/src/effects/Tween.js +123 -0
  1049. data/node_modules/jquery/src/effects/animatedSelector.js +15 -0
  1050. data/node_modules/jquery/src/event.js +745 -0
  1051. data/node_modules/jquery/src/event/ajax.js +22 -0
  1052. data/node_modules/jquery/src/event/alias.js +29 -0
  1053. data/node_modules/jquery/src/event/focusin.js +55 -0
  1054. data/node_modules/jquery/src/event/support.js +11 -0
  1055. data/node_modules/jquery/src/event/trigger.js +185 -0
  1056. data/node_modules/jquery/src/exports/amd.js +26 -0
  1057. data/node_modules/jquery/src/exports/global.js +34 -0
  1058. data/node_modules/jquery/src/jquery.js +41 -0
  1059. data/node_modules/jquery/src/manipulation.js +486 -0
  1060. data/node_modules/jquery/src/manipulation/_evalUrl.js +23 -0
  1061. data/node_modules/jquery/src/manipulation/buildFragment.js +104 -0
  1062. data/node_modules/jquery/src/manipulation/getAll.js +31 -0
  1063. data/node_modules/jquery/src/manipulation/setGlobalEval.js +22 -0
  1064. data/node_modules/jquery/src/manipulation/support.js +35 -0
  1065. data/node_modules/jquery/src/manipulation/var/rcheckableType.js +5 -0
  1066. data/node_modules/jquery/src/manipulation/var/rscriptType.js +5 -0
  1067. data/node_modules/jquery/src/manipulation/var/rtagName.js +5 -0
  1068. data/node_modules/jquery/src/manipulation/wrapMap.js +29 -0
  1069. data/node_modules/jquery/src/offset.js +232 -0
  1070. data/node_modules/jquery/src/queue.js +145 -0
  1071. data/node_modules/jquery/src/queue/delay.js +24 -0
  1072. data/node_modules/jquery/src/selector-native.js +237 -0
  1073. data/node_modules/jquery/src/selector-sizzle.js +19 -0
  1074. data/node_modules/jquery/src/selector.js +3 -0
  1075. data/node_modules/jquery/src/serialize.js +130 -0
  1076. data/node_modules/jquery/src/traversing.js +178 -0
  1077. data/node_modules/jquery/src/traversing/findFilter.js +106 -0
  1078. data/node_modules/jquery/src/traversing/var/dir.js +22 -0
  1079. data/node_modules/jquery/src/traversing/var/rneedsContext.js +8 -0
  1080. data/node_modules/jquery/src/traversing/var/siblings.js +17 -0
  1081. data/node_modules/jquery/src/var/ObjectFunctionString.js +7 -0
  1082. data/node_modules/jquery/src/var/arr.js +5 -0
  1083. data/node_modules/jquery/src/var/class2type.js +6 -0
  1084. data/node_modules/jquery/src/var/concat.js +7 -0
  1085. data/node_modules/jquery/src/var/document.js +5 -0
  1086. data/node_modules/jquery/src/var/documentElement.js +7 -0
  1087. data/node_modules/jquery/src/var/fnToString.js +7 -0
  1088. data/node_modules/jquery/src/var/getProto.js +5 -0
  1089. data/node_modules/jquery/src/var/hasOwn.js +7 -0
  1090. data/node_modules/jquery/src/var/indexOf.js +7 -0
  1091. data/node_modules/jquery/src/var/pnum.js +5 -0
  1092. data/node_modules/jquery/src/var/push.js +7 -0
  1093. data/node_modules/jquery/src/var/rcssNum.js +9 -0
  1094. data/node_modules/jquery/src/var/rnothtmlwhite.js +8 -0
  1095. data/node_modules/jquery/src/var/slice.js +7 -0
  1096. data/node_modules/jquery/src/var/support.js +6 -0
  1097. data/node_modules/jquery/src/var/toString.js +7 -0
  1098. data/node_modules/jquery/src/wrap.js +77 -0
  1099. data/node_modules/jsbn/.npmignore +2 -0
  1100. data/node_modules/jsbn/LICENSE +40 -0
  1101. data/node_modules/jsbn/README.md +175 -0
  1102. data/node_modules/jsbn/example.html +12 -0
  1103. data/node_modules/jsbn/example.js +3 -0
  1104. data/node_modules/jsbn/index.js +1358 -0
  1105. data/node_modules/jsbn/package.json +87 -0
  1106. data/node_modules/jsdom-global/.npmignore +1 -0
  1107. data/node_modules/jsdom-global/.travis.yml +6 -0
  1108. data/node_modules/jsdom-global/HISTORY.md +85 -0
  1109. data/node_modules/jsdom-global/README.md +137 -0
  1110. data/node_modules/jsdom-global/browser.js +10 -0
  1111. data/node_modules/jsdom-global/index.js +46 -0
  1112. data/node_modules/jsdom-global/keys.js +187 -0
  1113. data/node_modules/jsdom-global/package.json +95 -0
  1114. data/node_modules/jsdom-global/register.js +1 -0
  1115. data/node_modules/jsdom-global/test.js +22 -0
  1116. data/node_modules/jsdom/Changelog.md +1254 -0
  1117. data/node_modules/jsdom/LICENSE.txt +22 -0
  1118. data/node_modules/jsdom/README.md +592 -0
  1119. data/node_modules/jsdom/lib/jsdom.js +456 -0
  1120. data/node_modules/jsdom/lib/jsdom/browser/Window.js +502 -0
  1121. data/node_modules/jsdom/lib/jsdom/browser/default-stylesheet.js +1129 -0
  1122. data/node_modules/jsdom/lib/jsdom/browser/documentAdapter.js +73 -0
  1123. data/node_modules/jsdom/lib/jsdom/browser/documentfeatures.js +47 -0
  1124. data/node_modules/jsdom/lib/jsdom/browser/domtohtml.js +19 -0
  1125. data/node_modules/jsdom/lib/jsdom/browser/htmltodom.js +323 -0
  1126. data/node_modules/jsdom/lib/jsdom/browser/not-implemented.js +13 -0
  1127. data/node_modules/jsdom/lib/jsdom/browser/resource-loader.js +275 -0
  1128. data/node_modules/jsdom/lib/jsdom/level2/style.js +69 -0
  1129. data/node_modules/jsdom/lib/jsdom/level3/xpath.js +1874 -0
  1130. data/node_modules/jsdom/lib/jsdom/living/attributes.js +468 -0
  1131. data/node_modules/jsdom/lib/jsdom/living/attributes/Attr-impl.js +87 -0
  1132. data/node_modules/jsdom/lib/jsdom/living/blob-symbols.js +6 -0
  1133. data/node_modules/jsdom/lib/jsdom/living/blob.js +73 -0
  1134. data/node_modules/jsdom/lib/jsdom/living/dom-token-list.js +222 -0
  1135. data/node_modules/jsdom/lib/jsdom/living/domparsing/DOMParser-impl.js +61 -0
  1136. data/node_modules/jsdom/lib/jsdom/living/events/CustomEvent-impl.js +18 -0
  1137. data/node_modules/jsdom/lib/jsdom/living/events/ErrorEvent-impl.js +11 -0
  1138. data/node_modules/jsdom/lib/jsdom/living/events/Event-impl.js +77 -0
  1139. data/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js +303 -0
  1140. data/node_modules/jsdom/lib/jsdom/living/events/FocusEvent-impl.js +4 -0
  1141. data/node_modules/jsdom/lib/jsdom/living/events/HashChangeEvent-impl.js +11 -0
  1142. data/node_modules/jsdom/lib/jsdom/living/events/KeyboardEvent-impl.js +21 -0
  1143. data/node_modules/jsdom/lib/jsdom/living/events/MessageEvent-impl.js +22 -0
  1144. data/node_modules/jsdom/lib/jsdom/living/events/MouseEvent-impl.js +28 -0
  1145. data/node_modules/jsdom/lib/jsdom/living/events/PopStateEvent-impl.js +4 -0
  1146. data/node_modules/jsdom/lib/jsdom/living/events/ProgressEvent-impl.js +11 -0
  1147. data/node_modules/jsdom/lib/jsdom/living/events/TouchEvent-impl.js +11 -0
  1148. data/node_modules/jsdom/lib/jsdom/living/events/UIEvent-impl.js +19 -0
  1149. data/node_modules/jsdom/lib/jsdom/living/file-reader.js +133 -0
  1150. data/node_modules/jsdom/lib/jsdom/living/file-symbols.js +4 -0
  1151. data/node_modules/jsdom/lib/jsdom/living/file.js +22 -0
  1152. data/node_modules/jsdom/lib/jsdom/living/filelist-symbols.js +3 -0
  1153. data/node_modules/jsdom/lib/jsdom/living/filelist.js +21 -0
  1154. data/node_modules/jsdom/lib/jsdom/living/form-data-symbols.js +3 -0
  1155. data/node_modules/jsdom/lib/jsdom/living/generated/.gitkeep +0 -0
  1156. data/node_modules/jsdom/lib/jsdom/living/generated/AddEventListenerOptions.js +34 -0
  1157. data/node_modules/jsdom/lib/jsdom/living/generated/Attr.js +169 -0
  1158. data/node_modules/jsdom/lib/jsdom/living/generated/CharacterData.js +189 -0
  1159. data/node_modules/jsdom/lib/jsdom/living/generated/ChildNode.js +92 -0
  1160. data/node_modules/jsdom/lib/jsdom/living/generated/Comment.js +92 -0
  1161. data/node_modules/jsdom/lib/jsdom/living/generated/CustomEvent.js +122 -0
  1162. data/node_modules/jsdom/lib/jsdom/living/generated/CustomEventInit.js +34 -0
  1163. data/node_modules/jsdom/lib/jsdom/living/generated/DOMImplementation.js +143 -0
  1164. data/node_modules/jsdom/lib/jsdom/living/generated/DOMParser.js +97 -0
  1165. data/node_modules/jsdom/lib/jsdom/living/generated/Document.js +712 -0
  1166. data/node_modules/jsdom/lib/jsdom/living/generated/DocumentFragment.js +91 -0
  1167. data/node_modules/jsdom/lib/jsdom/living/generated/DocumentType.js +110 -0
  1168. data/node_modules/jsdom/lib/jsdom/living/generated/Element.js +552 -0
  1169. data/node_modules/jsdom/lib/jsdom/living/generated/ElementCSSInlineStyle.js +88 -0
  1170. data/node_modules/jsdom/lib/jsdom/living/generated/ElementContentEditable.js +77 -0
  1171. data/node_modules/jsdom/lib/jsdom/living/generated/ErrorEvent.js +137 -0
  1172. data/node_modules/jsdom/lib/jsdom/living/generated/ErrorEventInit.js +56 -0
  1173. data/node_modules/jsdom/lib/jsdom/living/generated/Event.js +251 -0
  1174. data/node_modules/jsdom/lib/jsdom/living/generated/EventInit.js +40 -0
  1175. data/node_modules/jsdom/lib/jsdom/living/generated/EventListenerOptions.js +32 -0
  1176. data/node_modules/jsdom/lib/jsdom/living/generated/EventModifierInit.js +146 -0
  1177. data/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js +130 -0
  1178. data/node_modules/jsdom/lib/jsdom/living/generated/FocusEvent.js +104 -0
  1179. data/node_modules/jsdom/lib/jsdom/living/generated/FocusEventInit.js +34 -0
  1180. data/node_modules/jsdom/lib/jsdom/living/generated/FormData.js +179 -0
  1181. data/node_modules/jsdom/lib/jsdom/living/generated/GlobalEventHandlers.js +770 -0
  1182. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLAnchorElement.js +228 -0
  1183. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLAppletElement.js +225 -0
  1184. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLAreaElement.js +167 -0
  1185. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLAudioElement.js +82 -0
  1186. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLBRElement.js +95 -0
  1187. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLBaseElement.js +107 -0
  1188. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLBodyElement.js +164 -0
  1189. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLButtonElement.js +189 -0
  1190. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLCanvasElement.js +181 -0
  1191. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLDListElement.js +98 -0
  1192. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataElement.js +95 -0
  1193. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataListElement.js +82 -0
  1194. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLDialogElement.js +98 -0
  1195. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLDirectoryElement.js +98 -0
  1196. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLDivElement.js +95 -0
  1197. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLElement.js +205 -0
  1198. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLEmbedElement.js +159 -0
  1199. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLFieldSetElement.js +119 -0
  1200. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLFontElement.js +121 -0
  1201. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormElement.js +211 -0
  1202. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameElement.js +203 -0
  1203. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameSetElement.js +112 -0
  1204. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLHRElement.js +150 -0
  1205. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadElement.js +82 -0
  1206. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadingElement.js +95 -0
  1207. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLHtmlElement.js +95 -0
  1208. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLHyperlinkElementUtils.js +205 -0
  1209. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLIFrameElement.js +278 -0
  1210. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLImageElement.js +326 -0
  1211. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLInputElement.js +583 -0
  1212. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLLIElement.js +108 -0
  1213. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLLabelElement.js +103 -0
  1214. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLLegendElement.js +103 -0
  1215. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLLinkElement.js +206 -0
  1216. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLMapElement.js +103 -0
  1217. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLMediaElement.js +505 -0
  1218. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLMenuElement.js +124 -0
  1219. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLMetaElement.js +134 -0
  1220. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLMeterElement.js +82 -0
  1221. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLModElement.js +108 -0
  1222. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLOListElement.js +140 -0
  1223. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLObjectElement.js +309 -0
  1224. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptGroupElement.js +111 -0
  1225. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionElement.js +178 -0
  1226. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLOutputElement.js +95 -0
  1227. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLParagraphElement.js +95 -0
  1228. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLParamElement.js +134 -0
  1229. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLPreElement.js +95 -0
  1230. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLProgressElement.js +82 -0
  1231. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLQuoteElement.js +95 -0
  1232. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLScriptElement.js +204 -0
  1233. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLSelectElement.js +260 -0
  1234. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLSourceElement.js +146 -0
  1235. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLSpanElement.js +82 -0
  1236. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLStyleElement.js +125 -0
  1237. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCaptionElement.js +95 -0
  1238. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCellElement.js +245 -0
  1239. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableColElement.js +161 -0
  1240. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableDataCellElement.js +95 -0
  1241. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableElement.js +357 -0
  1242. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableHeaderCellElement.js +121 -0
  1243. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableRowElement.js +202 -0
  1244. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableSectionElement.js +173 -0
  1245. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTemplateElement.js +90 -0
  1246. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTextAreaElement.js +415 -0
  1247. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTimeElement.js +95 -0
  1248. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTitleElement.js +94 -0
  1249. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLTrackElement.js +193 -0
  1250. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLUListElement.js +111 -0
  1251. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLUnknownElement.js +82 -0
  1252. data/node_modules/jsdom/lib/jsdom/living/generated/HTMLVideoElement.js +138 -0
  1253. data/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEvent.js +113 -0
  1254. data/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEventInit.js +38 -0
  1255. data/node_modules/jsdom/lib/jsdom/living/generated/History.js +179 -0
  1256. data/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEvent.js +269 -0
  1257. data/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEventInit.js +90 -0
  1258. data/node_modules/jsdom/lib/jsdom/living/generated/LinkStyle.js +85 -0
  1259. data/node_modules/jsdom/lib/jsdom/living/generated/Location.js +227 -0
  1260. data/node_modules/jsdom/lib/jsdom/living/generated/MessageEvent.js +164 -0
  1261. data/node_modules/jsdom/lib/jsdom/living/generated/MessageEventInit.js +56 -0
  1262. data/node_modules/jsdom/lib/jsdom/living/generated/MouseEvent.js +234 -0
  1263. data/node_modules/jsdom/lib/jsdom/living/generated/MouseEventInit.js +82 -0
  1264. data/node_modules/jsdom/lib/jsdom/living/generated/Navigator.js +96 -0
  1265. data/node_modules/jsdom/lib/jsdom/living/generated/NavigatorConcurrentHardware.js +85 -0
  1266. data/node_modules/jsdom/lib/jsdom/living/generated/NavigatorCookies.js +85 -0
  1267. data/node_modules/jsdom/lib/jsdom/living/generated/NavigatorID.js +149 -0
  1268. data/node_modules/jsdom/lib/jsdom/living/generated/NavigatorLanguage.js +93 -0
  1269. data/node_modules/jsdom/lib/jsdom/living/generated/NavigatorOnLine.js +85 -0
  1270. data/node_modules/jsdom/lib/jsdom/living/generated/NavigatorPlugins.js +88 -0
  1271. data/node_modules/jsdom/lib/jsdom/living/generated/Node.js +512 -0
  1272. data/node_modules/jsdom/lib/jsdom/living/generated/NonDocumentTypeChildNode.js +93 -0
  1273. data/node_modules/jsdom/lib/jsdom/living/generated/NonElementParentNode.js +92 -0
  1274. data/node_modules/jsdom/lib/jsdom/living/generated/ParentNode.js +139 -0
  1275. data/node_modules/jsdom/lib/jsdom/living/generated/PopStateEvent.js +105 -0
  1276. data/node_modules/jsdom/lib/jsdom/living/generated/PopStateEventInit.js +32 -0
  1277. data/node_modules/jsdom/lib/jsdom/living/generated/ProcessingInstruction.js +90 -0
  1278. data/node_modules/jsdom/lib/jsdom/living/generated/ProgressEvent.js +122 -0
  1279. data/node_modules/jsdom/lib/jsdom/living/generated/ProgressEventInit.js +50 -0
  1280. data/node_modules/jsdom/lib/jsdom/living/generated/ScrollIntoViewOptions.js +42 -0
  1281. data/node_modules/jsdom/lib/jsdom/living/generated/ScrollOptions.js +32 -0
  1282. data/node_modules/jsdom/lib/jsdom/living/generated/Text.js +107 -0
  1283. data/node_modules/jsdom/lib/jsdom/living/generated/TouchEvent.js +138 -0
  1284. data/node_modules/jsdom/lib/jsdom/living/generated/TreeWalker.js +189 -0
  1285. data/node_modules/jsdom/lib/jsdom/living/generated/UIEvent.js +134 -0
  1286. data/node_modules/jsdom/lib/jsdom/living/generated/UIEventInit.js +42 -0
  1287. data/node_modules/jsdom/lib/jsdom/living/generated/Window.js +1 -0
  1288. data/node_modules/jsdom/lib/jsdom/living/generated/WindowEventHandlers.js +242 -0
  1289. data/node_modules/jsdom/lib/jsdom/living/generated/XMLDocument.js +82 -0
  1290. data/node_modules/jsdom/lib/jsdom/living/generated/utils.js +40 -0
  1291. data/node_modules/jsdom/lib/jsdom/living/helpers/document-base-url.js +53 -0
  1292. data/node_modules/jsdom/lib/jsdom/living/helpers/focusing.js +74 -0
  1293. data/node_modules/jsdom/lib/jsdom/living/helpers/form-controls.js +43 -0
  1294. data/node_modules/jsdom/lib/jsdom/living/helpers/internal-constants.js +13 -0
  1295. data/node_modules/jsdom/lib/jsdom/living/helpers/ordered-set-parser.js +5 -0
  1296. data/node_modules/jsdom/lib/jsdom/living/helpers/proxied-window-event-handlers.js +11 -0
  1297. data/node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js +68 -0
  1298. data/node_modules/jsdom/lib/jsdom/living/helpers/selectors.js +30 -0
  1299. data/node_modules/jsdom/lib/jsdom/living/helpers/stylesheets.js +78 -0
  1300. data/node_modules/jsdom/lib/jsdom/living/helpers/traversal.js +51 -0
  1301. data/node_modules/jsdom/lib/jsdom/living/helpers/validate-names.js +62 -0
  1302. data/node_modules/jsdom/lib/jsdom/living/html-collection.js +109 -0
  1303. data/node_modules/jsdom/lib/jsdom/living/index.js +57 -0
  1304. data/node_modules/jsdom/lib/jsdom/living/named-properties-window.js +139 -0
  1305. data/node_modules/jsdom/lib/jsdom/living/navigator/Navigator-impl.js +24 -0
  1306. data/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorConcurrentHardware-impl.js +8 -0
  1307. data/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorCookies-impl.js +7 -0
  1308. data/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorID-impl.js +37 -0
  1309. data/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorLanguage-impl.js +9 -0
  1310. data/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorOnLine-impl.js +7 -0
  1311. data/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorPlugins-impl.js +7 -0
  1312. data/node_modules/jsdom/lib/jsdom/living/node-document-position.js +10 -0
  1313. data/node_modules/jsdom/lib/jsdom/living/node-filter.js +47 -0
  1314. data/node_modules/jsdom/lib/jsdom/living/node-iterator.js +232 -0
  1315. data/node_modules/jsdom/lib/jsdom/living/node-list.js +85 -0
  1316. data/node_modules/jsdom/lib/jsdom/living/node-type.js +16 -0
  1317. data/node_modules/jsdom/lib/jsdom/living/node.js +189 -0
  1318. data/node_modules/jsdom/lib/jsdom/living/nodes/CharacterData-impl.js +78 -0
  1319. data/node_modules/jsdom/lib/jsdom/living/nodes/ChildNode-impl.js +15 -0
  1320. data/node_modules/jsdom/lib/jsdom/living/nodes/Comment-impl.js +17 -0
  1321. data/node_modules/jsdom/lib/jsdom/living/nodes/DOMImplementation-impl.js +176 -0
  1322. data/node_modules/jsdom/lib/jsdom/living/nodes/Document-impl.js +777 -0
  1323. data/node_modules/jsdom/lib/jsdom/living/nodes/DocumentFragment-impl.js +21 -0
  1324. data/node_modules/jsdom/lib/jsdom/living/nodes/DocumentType-impl.js +26 -0
  1325. data/node_modules/jsdom/lib/jsdom/living/nodes/Element-impl.js +491 -0
  1326. data/node_modules/jsdom/lib/jsdom/living/nodes/ElementCSSInlineStyle-impl.js +7 -0
  1327. data/node_modules/jsdom/lib/jsdom/living/nodes/ElementContentEditable-impl.js +7 -0
  1328. data/node_modules/jsdom/lib/jsdom/living/nodes/GlobalEventHandlers-impl.js +7 -0
  1329. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAnchorElement-impl.js +25 -0
  1330. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAppletElement-impl.js +26 -0
  1331. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAreaElement-impl.js +18 -0
  1332. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAudioElement-impl.js +9 -0
  1333. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBRElement-impl.js +9 -0
  1334. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBaseElement-impl.js +27 -0
  1335. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBodyElement-impl.js +30 -0
  1336. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLButtonElement-impl.js +58 -0
  1337. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCanvasElement-impl.js +134 -0
  1338. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDListElement-impl.js +9 -0
  1339. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDataElement-impl.js +9 -0
  1340. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDataListElement-impl.js +9 -0
  1341. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDialogElement-impl.js +9 -0
  1342. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDirectoryElement-impl.js +9 -0
  1343. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDivElement-impl.js +9 -0
  1344. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLElement-impl.js +144 -0
  1345. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLEmbedElement-impl.js +18 -0
  1346. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFieldSetElement-impl.js +14 -0
  1347. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFontElement-impl.js +9 -0
  1348. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFormElement-impl.js +125 -0
  1349. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFrameElement-impl.js +181 -0
  1350. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFrameSetElement-impl.js +9 -0
  1351. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHRElement-impl.js +9 -0
  1352. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHeadElement-impl.js +9 -0
  1353. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHeadingElement-impl.js +9 -0
  1354. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHtmlElement-impl.js +9 -0
  1355. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHyperlinkElementUtils-impl.js +275 -0
  1356. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLIFrameElement-impl.js +9 -0
  1357. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLImageElement-impl.js +93 -0
  1358. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLInputElement-impl.js +396 -0
  1359. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLIElement-impl.js +9 -0
  1360. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLabelElement-impl.js +72 -0
  1361. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLegendElement-impl.js +14 -0
  1362. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLinkElement-impl.js +76 -0
  1363. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMapElement-impl.js +13 -0
  1364. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMediaElement-impl.js +140 -0
  1365. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMenuElement-impl.js +9 -0
  1366. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMetaElement-impl.js +9 -0
  1367. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMeterElement-impl.js +9 -0
  1368. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLModElement-impl.js +9 -0
  1369. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOListElement-impl.js +9 -0
  1370. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLObjectElement-impl.js +35 -0
  1371. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptGroupElement-impl.js +9 -0
  1372. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptionElement-impl.js +122 -0
  1373. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOutputElement-impl.js +9 -0
  1374. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLParagraphElement-impl.js +9 -0
  1375. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLParamElement-impl.js +9 -0
  1376. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLPreElement-impl.js +9 -0
  1377. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLProgressElement-impl.js +9 -0
  1378. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLQuoteElement-impl.js +9 -0
  1379. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLScriptElement-impl.js +139 -0
  1380. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSelectElement-impl.js +174 -0
  1381. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSourceElement-impl.js +18 -0
  1382. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSpanElement-impl.js +9 -0
  1383. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLStyleElement-impl.js +33 -0
  1384. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableCaptionElement-impl.js +9 -0
  1385. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableCellElement-impl.js +56 -0
  1386. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableColElement-impl.js +9 -0
  1387. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableDataCellElement-impl.js +9 -0
  1388. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableElement-impl.js +148 -0
  1389. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableHeaderCellElement-impl.js +9 -0
  1390. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableRowElement-impl.js +70 -0
  1391. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableSectionElement-impl.js +54 -0
  1392. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTemplateElement-impl.js +33 -0
  1393. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTextAreaElement-impl.js +184 -0
  1394. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTimeElement-impl.js +9 -0
  1395. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTitleElement-impl.js +18 -0
  1396. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTrackElement-impl.js +21 -0
  1397. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLUListElement-impl.js +9 -0
  1398. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLUnknownElement-impl.js +9 -0
  1399. data/node_modules/jsdom/lib/jsdom/living/nodes/HTMLVideoElement-impl.js +26 -0
  1400. data/node_modules/jsdom/lib/jsdom/living/nodes/LinkStyle-impl.js +16 -0
  1401. data/node_modules/jsdom/lib/jsdom/living/nodes/Node-impl.js +475 -0
  1402. data/node_modules/jsdom/lib/jsdom/living/nodes/NonDocumentTypeChildNode-impl.js +28 -0
  1403. data/node_modules/jsdom/lib/jsdom/living/nodes/NonElementParentNode-impl.js +9 -0
  1404. data/node_modules/jsdom/lib/jsdom/living/nodes/ParentNode-impl.js +91 -0
  1405. data/node_modules/jsdom/lib/jsdom/living/nodes/ProcessingInstruction-impl.js +22 -0
  1406. data/node_modules/jsdom/lib/jsdom/living/nodes/Text-impl.js +48 -0
  1407. data/node_modules/jsdom/lib/jsdom/living/nodes/WindowEventHandlers-impl.js +9 -0
  1408. data/node_modules/jsdom/lib/jsdom/living/nodes/XMLDocument-impl.js +4 -0
  1409. data/node_modules/jsdom/lib/jsdom/living/post-message.js +36 -0
  1410. data/node_modules/jsdom/lib/jsdom/living/register-elements.js +306 -0
  1411. data/node_modules/jsdom/lib/jsdom/living/traversal/TreeWalker-impl.js +257 -0
  1412. data/node_modules/jsdom/lib/jsdom/living/window/History-impl.js +145 -0
  1413. data/node_modules/jsdom/lib/jsdom/living/window/History.idl +12 -0
  1414. data/node_modules/jsdom/lib/jsdom/living/window/Location-impl.js +235 -0
  1415. data/node_modules/jsdom/lib/jsdom/living/window/navigation.js +103 -0
  1416. data/node_modules/jsdom/lib/jsdom/living/xhr-sync-worker.js +50 -0
  1417. data/node_modules/jsdom/lib/jsdom/living/xhr-utils.js +327 -0
  1418. data/node_modules/jsdom/lib/jsdom/living/xhr/FormData-impl.js +182 -0
  1419. data/node_modules/jsdom/lib/jsdom/living/xmlhttprequest-event-target.js +23 -0
  1420. data/node_modules/jsdom/lib/jsdom/living/xmlhttprequest-symbols.js +4 -0
  1421. data/node_modules/jsdom/lib/jsdom/living/xmlhttprequest-upload.js +17 -0
  1422. data/node_modules/jsdom/lib/jsdom/living/xmlhttprequest.js +1016 -0
  1423. data/node_modules/jsdom/lib/jsdom/named-properties-tracker.js +156 -0
  1424. data/node_modules/jsdom/lib/jsdom/utils.js +242 -0
  1425. data/node_modules/jsdom/lib/jsdom/virtual-console.js +34 -0
  1426. data/node_modules/jsdom/lib/jsdom/vm-shim.js +106 -0
  1427. data/node_modules/jsdom/lib/jsdom/web-idl/DOMException.js +41 -0
  1428. data/node_modules/jsdom/lib/jsdom/web-idl/dom-exception-table.json +134 -0
  1429. data/node_modules/jsdom/node_modules/request/CHANGELOG.md +662 -0
  1430. data/node_modules/jsdom/node_modules/request/LICENSE +55 -0
  1431. data/node_modules/jsdom/node_modules/request/README.md +1098 -0
  1432. data/node_modules/jsdom/node_modules/request/index.js +156 -0
  1433. data/node_modules/jsdom/node_modules/request/lib/auth.js +168 -0
  1434. data/node_modules/jsdom/node_modules/request/lib/cookies.js +39 -0
  1435. data/node_modules/jsdom/node_modules/request/lib/getProxyFromURI.js +79 -0
  1436. data/node_modules/jsdom/node_modules/request/lib/har.js +215 -0
  1437. data/node_modules/jsdom/node_modules/request/lib/helpers.js +65 -0
  1438. data/node_modules/jsdom/node_modules/request/lib/multipart.js +112 -0
  1439. data/node_modules/jsdom/node_modules/request/lib/oauth.js +147 -0
  1440. data/node_modules/jsdom/node_modules/request/lib/querystring.js +51 -0
  1441. data/node_modules/jsdom/node_modules/request/lib/redirect.js +157 -0
  1442. data/node_modules/jsdom/node_modules/request/lib/tunnel.js +176 -0
  1443. data/node_modules/jsdom/node_modules/request/package.json +163 -0
  1444. data/node_modules/jsdom/node_modules/request/request.js +1475 -0
  1445. data/node_modules/jsdom/package.json +184 -0
  1446. data/node_modules/json-schema/README.md +5 -0
  1447. data/node_modules/json-schema/draft-00/hyper-schema +68 -0
  1448. data/node_modules/json-schema/draft-00/json-ref +26 -0
  1449. data/node_modules/json-schema/draft-00/links +33 -0
  1450. data/node_modules/json-schema/draft-00/schema +155 -0
  1451. data/node_modules/json-schema/draft-01/hyper-schema +68 -0
  1452. data/node_modules/json-schema/draft-01/json-ref +26 -0
  1453. data/node_modules/json-schema/draft-01/links +33 -0
  1454. data/node_modules/json-schema/draft-01/schema +155 -0
  1455. data/node_modules/json-schema/draft-02/hyper-schema +68 -0
  1456. data/node_modules/json-schema/draft-02/json-ref +26 -0
  1457. data/node_modules/json-schema/draft-02/links +35 -0
  1458. data/node_modules/json-schema/draft-02/schema +166 -0
  1459. data/node_modules/json-schema/draft-03/examples/address +20 -0
  1460. data/node_modules/json-schema/draft-03/examples/calendar +53 -0
  1461. data/node_modules/json-schema/draft-03/examples/card +105 -0
  1462. data/node_modules/json-schema/draft-03/examples/geo +8 -0
  1463. data/node_modules/json-schema/draft-03/examples/interfaces +23 -0
  1464. data/node_modules/json-schema/draft-03/hyper-schema +60 -0
  1465. data/node_modules/json-schema/draft-03/json-ref +26 -0
  1466. data/node_modules/json-schema/draft-03/links +35 -0
  1467. data/node_modules/json-schema/draft-03/schema +174 -0
  1468. data/node_modules/json-schema/draft-04/hyper-schema +60 -0
  1469. data/node_modules/json-schema/draft-04/links +41 -0
  1470. data/node_modules/json-schema/draft-04/schema +189 -0
  1471. data/node_modules/json-schema/draft-zyp-json-schema-03.xml +1120 -0
  1472. data/node_modules/json-schema/draft-zyp-json-schema-04.xml +1072 -0
  1473. data/node_modules/json-schema/lib/links.js +66 -0
  1474. data/node_modules/json-schema/lib/validate.js +273 -0
  1475. data/node_modules/json-schema/package.json +100 -0
  1476. data/node_modules/json-schema/test/tests.js +95 -0
  1477. data/node_modules/json-stringify-safe/.npmignore +1 -0
  1478. data/node_modules/json-stringify-safe/CHANGELOG.md +14 -0
  1479. data/node_modules/json-stringify-safe/LICENSE +15 -0
  1480. data/node_modules/json-stringify-safe/Makefile +35 -0
  1481. data/node_modules/json-stringify-safe/README.md +52 -0
  1482. data/node_modules/json-stringify-safe/package.json +102 -0
  1483. data/node_modules/json-stringify-safe/stringify.js +27 -0
  1484. data/node_modules/json-stringify-safe/test/mocha.opts +2 -0
  1485. data/node_modules/json-stringify-safe/test/stringify_test.js +246 -0
  1486. data/node_modules/jsonpointer/.travis.yml +7 -0
  1487. data/node_modules/jsonpointer/LICENSE.md +21 -0
  1488. data/node_modules/jsonpointer/README.md +39 -0
  1489. data/node_modules/jsonpointer/benchmark.js +56 -0
  1490. data/node_modules/jsonpointer/jsonpointer.js +93 -0
  1491. data/node_modules/jsonpointer/package.json +109 -0
  1492. data/node_modules/jsonpointer/test.js +131 -0
  1493. data/node_modules/jsprim/CHANGES.md +39 -0
  1494. data/node_modules/jsprim/LICENSE +19 -0
  1495. data/node_modules/jsprim/README.md +237 -0
  1496. data/node_modules/jsprim/lib/jsprim.js +488 -0
  1497. data/node_modules/jsprim/package.json +85 -0
  1498. data/node_modules/levn/LICENSE +22 -0
  1499. data/node_modules/levn/README.md +196 -0
  1500. data/node_modules/levn/lib/cast.js +298 -0
  1501. data/node_modules/levn/lib/coerce.js +285 -0
  1502. data/node_modules/levn/lib/index.js +22 -0
  1503. data/node_modules/levn/lib/parse-string.js +113 -0
  1504. data/node_modules/levn/lib/parse.js +102 -0
  1505. data/node_modules/levn/package.json +108 -0
  1506. data/node_modules/mime-db/HISTORY.md +375 -0
  1507. data/node_modules/mime-db/LICENSE +22 -0
  1508. data/node_modules/mime-db/README.md +82 -0
  1509. data/node_modules/mime-db/db.json +6712 -0
  1510. data/node_modules/mime-db/index.js +11 -0
  1511. data/node_modules/mime-db/package.json +137 -0
  1512. data/node_modules/mime-types/HISTORY.md +210 -0
  1513. data/node_modules/mime-types/LICENSE +23 -0
  1514. data/node_modules/mime-types/README.md +103 -0
  1515. data/node_modules/mime-types/index.js +188 -0
  1516. data/node_modules/mime-types/package.json +127 -0
  1517. data/node_modules/nwmatcher/LICENSE +22 -0
  1518. data/node_modules/nwmatcher/README.md +107 -0
  1519. data/node_modules/nwmatcher/package.json +99 -0
  1520. data/node_modules/nwmatcher/src/modules/nwmatcher-cache.js +187 -0
  1521. data/node_modules/nwmatcher/src/modules/nwmatcher-jquery.js +126 -0
  1522. data/node_modules/nwmatcher/src/modules/nwmatcher-pseudos.js +273 -0
  1523. data/node_modules/nwmatcher/src/modules/nwmatcher-shortcuts.js +35 -0
  1524. data/node_modules/nwmatcher/src/modules/nwmatcher-traversal.js +90 -0
  1525. data/node_modules/nwmatcher/src/modules/nwmatcher-webforms.js +104 -0
  1526. data/node_modules/nwmatcher/src/nwmatcher-base.js +785 -0
  1527. data/node_modules/nwmatcher/src/nwmatcher-noqsa.js +962 -0
  1528. data/node_modules/nwmatcher/src/nwmatcher.js +1780 -0
  1529. data/node_modules/oauth-sign/LICENSE +55 -0
  1530. data/node_modules/oauth-sign/README.md +4 -0
  1531. data/node_modules/oauth-sign/index.js +136 -0
  1532. data/node_modules/oauth-sign/package.json +98 -0
  1533. data/node_modules/optionator/CHANGELOG.md +52 -0
  1534. data/node_modules/optionator/LICENSE +22 -0
  1535. data/node_modules/optionator/README.md +236 -0
  1536. data/node_modules/optionator/lib/help.js +247 -0
  1537. data/node_modules/optionator/lib/index.js +465 -0
  1538. data/node_modules/optionator/lib/util.js +54 -0
  1539. data/node_modules/optionator/package.json +109 -0
  1540. data/node_modules/parse5/CHANGELOG.md +69 -0
  1541. data/node_modules/parse5/LICENSE +19 -0
  1542. data/node_modules/parse5/README.md +247 -0
  1543. data/node_modules/parse5/docs/build/index.md +963 -0
  1544. data/node_modules/parse5/index.js +12 -0
  1545. data/node_modules/parse5/lib/common/doctype.js +134 -0
  1546. data/node_modules/parse5/lib/common/foreign_content.js +257 -0
  1547. data/node_modules/parse5/lib/common/html.js +268 -0
  1548. data/node_modules/parse5/lib/common/unicode.js +48 -0
  1549. data/node_modules/parse5/lib/common/utils.js +13 -0
  1550. data/node_modules/parse5/lib/jsdom/jsdom_parser.js +39 -0
  1551. data/node_modules/parse5/lib/jsdom/parsing_unit.js +53 -0
  1552. data/node_modules/parse5/lib/serialization/serializer.js +178 -0
  1553. data/node_modules/parse5/lib/simple_api/simple_api_parser.js +107 -0
  1554. data/node_modules/parse5/lib/simple_api/tokenizer_proxy.js +122 -0
  1555. data/node_modules/parse5/lib/tokenization/location_info_mixin.js +80 -0
  1556. data/node_modules/parse5/lib/tokenization/named_entity_trie.js +6 -0
  1557. data/node_modules/parse5/lib/tokenization/preprocessor.js +115 -0
  1558. data/node_modules/parse5/lib/tokenization/tokenizer.js +2317 -0
  1559. data/node_modules/parse5/lib/tree_adapters/default.js +200 -0
  1560. data/node_modules/parse5/lib/tree_adapters/htmlparser2.js +317 -0
  1561. data/node_modules/parse5/lib/tree_construction/formatting_element_list.js +167 -0
  1562. data/node_modules/parse5/lib/tree_construction/location_info_mixin.js +197 -0
  1563. data/node_modules/parse5/lib/tree_construction/open_element_stack.js +379 -0
  1564. data/node_modules/parse5/lib/tree_construction/parser.js +2827 -0
  1565. data/node_modules/parse5/package.json +125 -0
  1566. data/node_modules/pinkie-promise/index.js +3 -0
  1567. data/node_modules/pinkie-promise/license +21 -0
  1568. data/node_modules/pinkie-promise/package.json +102 -0
  1569. data/node_modules/pinkie-promise/readme.md +28 -0
  1570. data/node_modules/pinkie/index.js +292 -0
  1571. data/node_modules/pinkie/license +21 -0
  1572. data/node_modules/pinkie/package.json +100 -0
  1573. data/node_modules/pinkie/readme.md +83 -0
  1574. data/node_modules/prelude-ls/CHANGELOG.md +99 -0
  1575. data/node_modules/prelude-ls/LICENSE +22 -0
  1576. data/node_modules/prelude-ls/README.md +15 -0
  1577. data/node_modules/prelude-ls/lib/Func.js +65 -0
  1578. data/node_modules/prelude-ls/lib/List.js +686 -0
  1579. data/node_modules/prelude-ls/lib/Num.js +130 -0
  1580. data/node_modules/prelude-ls/lib/Obj.js +154 -0
  1581. data/node_modules/prelude-ls/lib/Str.js +92 -0
  1582. data/node_modules/prelude-ls/lib/index.js +178 -0
  1583. data/node_modules/prelude-ls/package.json +116 -0
  1584. data/node_modules/punycode/LICENSE-MIT.txt +20 -0
  1585. data/node_modules/punycode/README.md +176 -0
  1586. data/node_modules/punycode/package.json +127 -0
  1587. data/node_modules/punycode/punycode.js +533 -0
  1588. data/node_modules/qs/.eslintignore +1 -0
  1589. data/node_modules/qs/.eslintrc +19 -0
  1590. data/node_modules/qs/CHANGELOG.md +144 -0
  1591. data/node_modules/qs/CONTRIBUTING.md +1 -0
  1592. data/node_modules/qs/LICENSE +28 -0
  1593. data/node_modules/qs/README.md +398 -0
  1594. data/node_modules/qs/dist/qs.js +574 -0
  1595. data/node_modules/qs/lib/formats.js +18 -0
  1596. data/node_modules/qs/lib/index.js +11 -0
  1597. data/node_modules/qs/lib/parse.js +166 -0
  1598. data/node_modules/qs/lib/stringify.js +187 -0
  1599. data/node_modules/qs/lib/utils.js +180 -0
  1600. data/node_modules/qs/package.json +121 -0
  1601. data/node_modules/qs/test/.eslintrc +9 -0
  1602. data/node_modules/qs/test/index.js +7 -0
  1603. data/node_modules/qs/test/parse.js +459 -0
  1604. data/node_modules/qs/test/stringify.js +538 -0
  1605. data/node_modules/qs/test/utils.js +22 -0
  1606. data/node_modules/sax/LICENSE +41 -0
  1607. data/node_modules/sax/LICENSE-W3C.html +188 -0
  1608. data/node_modules/sax/README.md +225 -0
  1609. data/node_modules/sax/lib/sax.js +1576 -0
  1610. data/node_modules/sax/package.json +133 -0
  1611. data/node_modules/sntp/.npmignore +18 -0
  1612. data/node_modules/sntp/.travis.yml +5 -0
  1613. data/node_modules/sntp/LICENSE +28 -0
  1614. data/node_modules/sntp/Makefile +9 -0
  1615. data/node_modules/sntp/README.md +68 -0
  1616. data/node_modules/sntp/examples/offset.js +16 -0
  1617. data/node_modules/sntp/examples/time.js +25 -0
  1618. data/node_modules/sntp/index.js +1 -0
  1619. data/node_modules/sntp/lib/index.js +412 -0
  1620. data/node_modules/sntp/package.json +98 -0
  1621. data/node_modules/sntp/test/index.js +435 -0
  1622. data/node_modules/source-map/.npmignore +2 -0
  1623. data/node_modules/source-map/.travis.yml +4 -0
  1624. data/node_modules/source-map/CHANGELOG.md +201 -0
  1625. data/node_modules/source-map/LICENSE +28 -0
  1626. data/node_modules/source-map/Makefile.dryice.js +166 -0
  1627. data/node_modules/source-map/README.md +479 -0
  1628. data/node_modules/source-map/build/assert-shim.js +56 -0
  1629. data/node_modules/source-map/build/mini-require.js +152 -0
  1630. data/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  1631. data/node_modules/source-map/build/prefix-utils.jsm +18 -0
  1632. data/node_modules/source-map/build/suffix-browser.js +8 -0
  1633. data/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  1634. data/node_modules/source-map/build/suffix-utils.jsm +21 -0
  1635. data/node_modules/source-map/build/test-prefix.js +8 -0
  1636. data/node_modules/source-map/build/test-suffix.js +3 -0
  1637. data/node_modules/source-map/lib/source-map.js +8 -0
  1638. data/node_modules/source-map/lib/source-map/array-set.js +97 -0
  1639. data/node_modules/source-map/lib/source-map/base64-vlq.js +142 -0
  1640. data/node_modules/source-map/lib/source-map/base64.js +42 -0
  1641. data/node_modules/source-map/lib/source-map/basic-source-map-consumer.js +420 -0
  1642. data/node_modules/source-map/lib/source-map/binary-search.js +80 -0
  1643. data/node_modules/source-map/lib/source-map/indexed-source-map-consumer.js +303 -0
  1644. data/node_modules/source-map/lib/source-map/mapping-list.js +86 -0
  1645. data/node_modules/source-map/lib/source-map/source-map-consumer.js +222 -0
  1646. data/node_modules/source-map/lib/source-map/source-map-generator.js +400 -0
  1647. data/node_modules/source-map/lib/source-map/source-node.js +414 -0
  1648. data/node_modules/source-map/lib/source-map/util.js +319 -0
  1649. data/node_modules/source-map/package.json +223 -0
  1650. data/node_modules/source-map/test/run-tests.js +62 -0
  1651. data/node_modules/source-map/test/source-map/test-api.js +26 -0
  1652. data/node_modules/source-map/test/source-map/test-array-set.js +104 -0
  1653. data/node_modules/source-map/test/source-map/test-base64-vlq.js +23 -0
  1654. data/node_modules/source-map/test/source-map/test-base64.js +35 -0
  1655. data/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  1656. data/node_modules/source-map/test/source-map/test-dog-fooding.js +84 -0
  1657. data/node_modules/source-map/test/source-map/test-source-map-consumer.js +874 -0
  1658. data/node_modules/source-map/test/source-map/test-source-map-generator.js +679 -0
  1659. data/node_modules/source-map/test/source-map/test-source-node.js +612 -0
  1660. data/node_modules/source-map/test/source-map/test-util.js +216 -0
  1661. data/node_modules/source-map/test/source-map/util.js +299 -0
  1662. data/node_modules/sshpk/.npmignore +9 -0
  1663. data/node_modules/sshpk/.travis.yml +11 -0
  1664. data/node_modules/sshpk/LICENSE +18 -0
  1665. data/node_modules/sshpk/README.md +666 -0
  1666. data/node_modules/sshpk/bin/sshpk-conv +201 -0
  1667. data/node_modules/sshpk/bin/sshpk-sign +191 -0
  1668. data/node_modules/sshpk/bin/sshpk-verify +166 -0
  1669. data/node_modules/sshpk/lib/algs.js +168 -0
  1670. data/node_modules/sshpk/lib/certificate.js +291 -0
  1671. data/node_modules/sshpk/lib/dhe.js +311 -0
  1672. data/node_modules/sshpk/lib/ed-compat.js +96 -0
  1673. data/node_modules/sshpk/lib/errors.js +84 -0
  1674. data/node_modules/sshpk/lib/fingerprint.js +161 -0
  1675. data/node_modules/sshpk/lib/formats/auto.js +73 -0
  1676. data/node_modules/sshpk/lib/formats/openssh-cert.js +289 -0
  1677. data/node_modules/sshpk/lib/formats/pem.js +186 -0
  1678. data/node_modules/sshpk/lib/formats/pkcs1.js +320 -0
  1679. data/node_modules/sshpk/lib/formats/pkcs8.js +505 -0
  1680. data/node_modules/sshpk/lib/formats/rfc4253.js +146 -0
  1681. data/node_modules/sshpk/lib/formats/ssh-private.js +261 -0
  1682. data/node_modules/sshpk/lib/formats/ssh.js +114 -0
  1683. data/node_modules/sshpk/lib/formats/x509-pem.js +77 -0
  1684. data/node_modules/sshpk/lib/formats/x509.js +484 -0
  1685. data/node_modules/sshpk/lib/identity.js +255 -0
  1686. data/node_modules/sshpk/lib/index.js +38 -0
  1687. data/node_modules/sshpk/lib/key.js +270 -0
  1688. data/node_modules/sshpk/lib/private-key.js +231 -0
  1689. data/node_modules/sshpk/lib/signature.js +245 -0
  1690. data/node_modules/sshpk/lib/ssh-buffer.js +148 -0
  1691. data/node_modules/sshpk/lib/utils.js +288 -0
  1692. data/node_modules/sshpk/man/man1/sshpk-conv.1 +135 -0
  1693. data/node_modules/sshpk/man/man1/sshpk-sign.1 +81 -0
  1694. data/node_modules/sshpk/man/man1/sshpk-verify.1 +68 -0
  1695. data/node_modules/sshpk/node_modules/assert-plus/AUTHORS +6 -0
  1696. data/node_modules/sshpk/node_modules/assert-plus/CHANGES.md +14 -0
  1697. data/node_modules/sshpk/node_modules/assert-plus/README.md +162 -0
  1698. data/node_modules/sshpk/node_modules/assert-plus/assert.js +211 -0
  1699. data/node_modules/sshpk/node_modules/assert-plus/package.json +115 -0
  1700. data/node_modules/sshpk/package.json +135 -0
  1701. data/node_modules/stringstream/.npmignore +15 -0
  1702. data/node_modules/stringstream/.travis.yml +4 -0
  1703. data/node_modules/stringstream/LICENSE.txt +22 -0
  1704. data/node_modules/stringstream/README.md +38 -0
  1705. data/node_modules/stringstream/example.js +27 -0
  1706. data/node_modules/stringstream/package.json +85 -0
  1707. data/node_modules/stringstream/stringstream.js +102 -0
  1708. data/node_modules/strip-ansi/index.js +6 -0
  1709. data/node_modules/strip-ansi/license +21 -0
  1710. data/node_modules/strip-ansi/package.json +123 -0
  1711. data/node_modules/strip-ansi/readme.md +33 -0
  1712. data/node_modules/supports-color/index.js +50 -0
  1713. data/node_modules/supports-color/license +21 -0
  1714. data/node_modules/supports-color/package.json +113 -0
  1715. data/node_modules/supports-color/readme.md +36 -0
  1716. data/node_modules/symbol-tree/.jscsrc +55 -0
  1717. data/node_modules/symbol-tree/.npmignore +6 -0
  1718. data/node_modules/symbol-tree/LICENSE +21 -0
  1719. data/node_modules/symbol-tree/README.md +68 -0
  1720. data/node_modules/symbol-tree/api.md +441 -0
  1721. data/node_modules/symbol-tree/lib/SymbolTree.js +834 -0
  1722. data/node_modules/symbol-tree/lib/SymbolTreeNode.js +54 -0
  1723. data/node_modules/symbol-tree/lib/TreeIterator.js +69 -0
  1724. data/node_modules/symbol-tree/lib/TreePosition.js +10 -0
  1725. data/node_modules/symbol-tree/package.json +121 -0
  1726. data/node_modules/symbol-tree/test/SymbolTree.js +1189 -0
  1727. data/node_modules/tough-cookie/LICENSE +27 -0
  1728. data/node_modules/tough-cookie/README.md +506 -0
  1729. data/node_modules/tough-cookie/lib/cookie.js +1336 -0
  1730. data/node_modules/tough-cookie/lib/memstore.js +170 -0
  1731. data/node_modules/tough-cookie/lib/pathMatch.js +61 -0
  1732. data/node_modules/tough-cookie/lib/permuteDomain.js +56 -0
  1733. data/node_modules/tough-cookie/lib/pubsuffix.js +98 -0
  1734. data/node_modules/tough-cookie/lib/store.js +71 -0
  1735. data/node_modules/tough-cookie/package.json +136 -0
  1736. data/node_modules/tr46/.npmignore +4 -0
  1737. data/node_modules/tr46/index.js +193 -0
  1738. data/node_modules/tr46/lib/.gitkeep +0 -0
  1739. data/node_modules/tr46/lib/mappingTable.json +1 -0
  1740. data/node_modules/tr46/package.json +91 -0
  1741. data/node_modules/tunnel-agent/LICENSE +55 -0
  1742. data/node_modules/tunnel-agent/README.md +4 -0
  1743. data/node_modules/tunnel-agent/index.js +243 -0
  1744. data/node_modules/tunnel-agent/package.json +100 -0
  1745. data/node_modules/tweetnacl/.npmignore +4 -0
  1746. data/node_modules/tweetnacl/CHANGELOG.md +209 -0
  1747. data/node_modules/tweetnacl/COPYING.txt +9 -0
  1748. data/node_modules/tweetnacl/ISSUE_TEMPLATE.md +3 -0
  1749. data/node_modules/tweetnacl/README.md +477 -0
  1750. data/node_modules/tweetnacl/nacl-fast.js +2388 -0
  1751. data/node_modules/tweetnacl/nacl-fast.min.js +2 -0
  1752. data/node_modules/tweetnacl/nacl.d.ts +98 -0
  1753. data/node_modules/tweetnacl/nacl.js +1175 -0
  1754. data/node_modules/tweetnacl/nacl.min.js +1 -0
  1755. data/node_modules/tweetnacl/package.json +121 -0
  1756. data/node_modules/type-check/LICENSE +22 -0
  1757. data/node_modules/type-check/README.md +210 -0
  1758. data/node_modules/type-check/lib/check.js +126 -0
  1759. data/node_modules/type-check/lib/index.js +16 -0
  1760. data/node_modules/type-check/lib/parse-type.js +196 -0
  1761. data/node_modules/type-check/package.json +102 -0
  1762. data/node_modules/type-detect/.npmignore +11 -0
  1763. data/node_modules/type-detect/History.md +52 -0
  1764. data/node_modules/type-detect/README.md +226 -0
  1765. data/node_modules/type-detect/ReleaseNotes.md +46 -0
  1766. data/node_modules/type-detect/index.js +1 -0
  1767. data/node_modules/type-detect/lib/type.js +134 -0
  1768. data/node_modules/type-detect/package.json +93 -0
  1769. data/node_modules/uuid/.npmignore +8 -0
  1770. data/node_modules/uuid/.travis.yml +5 -0
  1771. data/node_modules/uuid/AUTHORS +5 -0
  1772. data/node_modules/uuid/HISTORY.md +28 -0
  1773. data/node_modules/uuid/LICENSE.md +21 -0
  1774. data/node_modules/uuid/README.md +132 -0
  1775. data/node_modules/uuid/bin/uuid +26 -0
  1776. data/node_modules/uuid/index.js +8 -0
  1777. data/node_modules/uuid/lib/bytesToUuid.js +23 -0
  1778. data/node_modules/uuid/lib/rng-browser.js +33 -0
  1779. data/node_modules/uuid/lib/rng.js +10 -0
  1780. data/node_modules/uuid/package.json +122 -0
  1781. data/node_modules/uuid/test/mocha.opts +3 -0
  1782. data/node_modules/uuid/test/test.js +96 -0
  1783. data/node_modules/uuid/v1.js +103 -0
  1784. data/node_modules/uuid/v4.js +29 -0
  1785. data/node_modules/verror/.gitmodules +0 -0
  1786. data/node_modules/verror/.npmignore +1 -0
  1787. data/node_modules/verror/LICENSE +19 -0
  1788. data/node_modules/verror/Makefile +35 -0
  1789. data/node_modules/verror/Makefile.targ +285 -0
  1790. data/node_modules/verror/README.md +120 -0
  1791. data/node_modules/verror/examples/levels-verror.js +36 -0
  1792. data/node_modules/verror/examples/levels-werror.js +34 -0
  1793. data/node_modules/verror/examples/varargs.js +6 -0
  1794. data/node_modules/verror/examples/verror.js +13 -0
  1795. data/node_modules/verror/examples/werror.js +14 -0
  1796. data/node_modules/verror/jsl.node.conf +139 -0
  1797. data/node_modules/verror/lib/verror.js +157 -0
  1798. data/node_modules/verror/package.json +78 -0
  1799. data/node_modules/verror/tests/tst.inherit.js +100 -0
  1800. data/node_modules/verror/tests/tst.verror.js +156 -0
  1801. data/node_modules/verror/tests/tst.werror.js +179 -0
  1802. data/node_modules/webidl-conversions/LICENSE.md +12 -0
  1803. data/node_modules/webidl-conversions/README.md +53 -0
  1804. data/node_modules/webidl-conversions/lib/index.js +189 -0
  1805. data/node_modules/webidl-conversions/package.json +96 -0
  1806. data/node_modules/whatwg-encoding/LICENSE.txt +19 -0
  1807. data/node_modules/whatwg-encoding/lib/labels-to-names.json +207 -0
  1808. data/node_modules/whatwg-encoding/lib/supported-names.json +37 -0
  1809. data/node_modules/whatwg-encoding/lib/whatwg-encoding.js +47 -0
  1810. data/node_modules/whatwg-encoding/node_modules/iconv-lite/.npmignore +6 -0
  1811. data/node_modules/whatwg-encoding/node_modules/iconv-lite/.travis.yml +20 -0
  1812. data/node_modules/whatwg-encoding/node_modules/iconv-lite/Changelog.md +93 -0
  1813. data/node_modules/whatwg-encoding/node_modules/iconv-lite/LICENSE +21 -0
  1814. data/node_modules/whatwg-encoding/node_modules/iconv-lite/README.md +157 -0
  1815. data/node_modules/whatwg-encoding/node_modules/iconv-lite/encodings/dbcs-codec.js +554 -0
  1816. data/node_modules/whatwg-encoding/node_modules/iconv-lite/encodings/dbcs-data.js +170 -0
  1817. data/node_modules/whatwg-encoding/node_modules/iconv-lite/encodings/index.js +22 -0
  1818. data/node_modules/whatwg-encoding/node_modules/iconv-lite/encodings/internal.js +187 -0
  1819. data/node_modules/whatwg-encoding/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
  1820. data/node_modules/whatwg-encoding/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
  1821. data/node_modules/whatwg-encoding/node_modules/iconv-lite/encodings/sbcs-data.js +169 -0
  1822. data/node_modules/whatwg-encoding/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
  1823. data/node_modules/whatwg-encoding/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
  1824. data/node_modules/whatwg-encoding/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
  1825. data/node_modules/whatwg-encoding/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
  1826. data/node_modules/whatwg-encoding/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
  1827. data/node_modules/whatwg-encoding/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
  1828. data/node_modules/whatwg-encoding/node_modules/iconv-lite/encodings/tables/gbk-added.json +55 -0
  1829. data/node_modules/whatwg-encoding/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
  1830. data/node_modules/whatwg-encoding/node_modules/iconv-lite/encodings/utf16.js +174 -0
  1831. data/node_modules/whatwg-encoding/node_modules/iconv-lite/encodings/utf7.js +289 -0
  1832. data/node_modules/whatwg-encoding/node_modules/iconv-lite/lib/bom-handling.js +52 -0
  1833. data/node_modules/whatwg-encoding/node_modules/iconv-lite/lib/extend-node.js +214 -0
  1834. data/node_modules/whatwg-encoding/node_modules/iconv-lite/lib/index.js +141 -0
  1835. data/node_modules/whatwg-encoding/node_modules/iconv-lite/lib/streams.js +120 -0
  1836. data/node_modules/whatwg-encoding/node_modules/iconv-lite/package.json +153 -0
  1837. data/node_modules/whatwg-encoding/package.json +101 -0
  1838. data/node_modules/whatwg-url/.eslintignore +3 -0
  1839. data/node_modules/whatwg-url/LICENSE.txt +21 -0
  1840. data/node_modules/whatwg-url/README.md +66 -0
  1841. data/node_modules/whatwg-url/lib/URL-impl.js +216 -0
  1842. data/node_modules/whatwg-url/lib/URL.js +209 -0
  1843. data/node_modules/whatwg-url/lib/public-api.js +11 -0
  1844. data/node_modules/whatwg-url/lib/url-state-machine.js +1173 -0
  1845. data/node_modules/whatwg-url/lib/utils.js +20 -0
  1846. data/node_modules/whatwg-url/package.json +103 -0
  1847. data/node_modules/wordwrap/LICENSE +18 -0
  1848. data/node_modules/wordwrap/README.markdown +70 -0
  1849. data/node_modules/wordwrap/example/center.js +10 -0
  1850. data/node_modules/wordwrap/example/meat.js +3 -0
  1851. data/node_modules/wordwrap/index.js +76 -0
  1852. data/node_modules/wordwrap/package.json +94 -0
  1853. data/node_modules/wordwrap/test/break.js +32 -0
  1854. data/node_modules/wordwrap/test/idleness.txt +63 -0
  1855. data/node_modules/wordwrap/test/wrap.js +33 -0
  1856. data/node_modules/xml-name-validator/LICENSE.txt +19 -0
  1857. data/node_modules/xml-name-validator/README.md +36 -0
  1858. data/node_modules/xml-name-validator/lib/generated-parser.js +504 -0
  1859. data/node_modules/xml-name-validator/lib/grammar.pegjs +35 -0
  1860. data/node_modules/xml-name-validator/lib/xml-name-validator.js +17 -0
  1861. data/node_modules/xml-name-validator/package.json +97 -0
  1862. data/node_modules/xtend/.jshintrc +30 -0
  1863. data/node_modules/xtend/.npmignore +1 -0
  1864. data/node_modules/xtend/LICENCE +19 -0
  1865. data/node_modules/xtend/Makefile +4 -0
  1866. data/node_modules/xtend/README.md +32 -0
  1867. data/node_modules/xtend/immutable.js +19 -0
  1868. data/node_modules/xtend/mutable.js +17 -0
  1869. data/node_modules/xtend/package.json +117 -0
  1870. data/node_modules/xtend/test.js +83 -0
  1871. data/package.json +32 -0
  1872. data/vendor/assets/javascripts/select_all.js +1 -1
  1873. metadata +1870 -2
@@ -0,0 +1,2827 @@
1
+ 'use strict';
2
+
3
+ var Tokenizer = require('../tokenization/tokenizer'),
4
+ OpenElementStack = require('./open_element_stack'),
5
+ FormattingElementList = require('./formatting_element_list'),
6
+ LocationInfoMixin = require('./location_info_mixin'),
7
+ DefaultTreeAdapter = require('../tree_adapters/default'),
8
+ Doctype = require('../common/doctype'),
9
+ ForeignContent = require('../common/foreign_content'),
10
+ Utils = require('../common/utils'),
11
+ UNICODE = require('../common/unicode'),
12
+ HTML = require('../common/html');
13
+
14
+ //Aliases
15
+ var $ = HTML.TAG_NAMES,
16
+ NS = HTML.NAMESPACES,
17
+ ATTRS = HTML.ATTRS;
18
+
19
+ //Default options
20
+ var DEFAULT_OPTIONS = {
21
+ decodeHtmlEntities: true,
22
+ locationInfo: false
23
+ };
24
+
25
+ //Misc constants
26
+ var SEARCHABLE_INDEX_DEFAULT_PROMPT = 'This is a searchable index. Enter search keywords: ',
27
+ SEARCHABLE_INDEX_INPUT_NAME = 'isindex',
28
+ HIDDEN_INPUT_TYPE = 'hidden';
29
+
30
+ //Adoption agency loops iteration count
31
+ var AA_OUTER_LOOP_ITER = 8,
32
+ AA_INNER_LOOP_ITER = 3;
33
+
34
+ //Insertion modes
35
+ var INITIAL_MODE = 'INITIAL_MODE',
36
+ BEFORE_HTML_MODE = 'BEFORE_HTML_MODE',
37
+ BEFORE_HEAD_MODE = 'BEFORE_HEAD_MODE',
38
+ IN_HEAD_MODE = 'IN_HEAD_MODE',
39
+ AFTER_HEAD_MODE = 'AFTER_HEAD_MODE',
40
+ IN_BODY_MODE = 'IN_BODY_MODE',
41
+ TEXT_MODE = 'TEXT_MODE',
42
+ IN_TABLE_MODE = 'IN_TABLE_MODE',
43
+ IN_TABLE_TEXT_MODE = 'IN_TABLE_TEXT_MODE',
44
+ IN_CAPTION_MODE = 'IN_CAPTION_MODE',
45
+ IN_COLUMN_GROUP_MODE = 'IN_COLUMN_GROUP_MODE',
46
+ IN_TABLE_BODY_MODE = 'IN_TABLE_BODY_MODE',
47
+ IN_ROW_MODE = 'IN_ROW_MODE',
48
+ IN_CELL_MODE = 'IN_CELL_MODE',
49
+ IN_SELECT_MODE = 'IN_SELECT_MODE',
50
+ IN_SELECT_IN_TABLE_MODE = 'IN_SELECT_IN_TABLE_MODE',
51
+ IN_TEMPLATE_MODE = 'IN_TEMPLATE_MODE',
52
+ AFTER_BODY_MODE = 'AFTER_BODY_MODE',
53
+ IN_FRAMESET_MODE = 'IN_FRAMESET_MODE',
54
+ AFTER_FRAMESET_MODE = 'AFTER_FRAMESET_MODE',
55
+ AFTER_AFTER_BODY_MODE = 'AFTER_AFTER_BODY_MODE',
56
+ AFTER_AFTER_FRAMESET_MODE = 'AFTER_AFTER_FRAMESET_MODE';
57
+
58
+ //Insertion mode reset map
59
+ var INSERTION_MODE_RESET_MAP = {};
60
+
61
+ INSERTION_MODE_RESET_MAP[$.TR] = IN_ROW_MODE;
62
+ INSERTION_MODE_RESET_MAP[$.TBODY] =
63
+ INSERTION_MODE_RESET_MAP[$.THEAD] =
64
+ INSERTION_MODE_RESET_MAP[$.TFOOT] = IN_TABLE_BODY_MODE;
65
+ INSERTION_MODE_RESET_MAP[$.CAPTION] = IN_CAPTION_MODE;
66
+ INSERTION_MODE_RESET_MAP[$.COLGROUP] = IN_COLUMN_GROUP_MODE;
67
+ INSERTION_MODE_RESET_MAP[$.TABLE] = IN_TABLE_MODE;
68
+ INSERTION_MODE_RESET_MAP[$.BODY] = IN_BODY_MODE;
69
+ INSERTION_MODE_RESET_MAP[$.FRAMESET] = IN_FRAMESET_MODE;
70
+
71
+ //Template insertion mode switch map
72
+ var TEMPLATE_INSERTION_MODE_SWITCH_MAP = {};
73
+
74
+ TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.CAPTION] =
75
+ TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.COLGROUP] =
76
+ TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.TBODY] =
77
+ TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.TFOOT] =
78
+ TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.THEAD] = IN_TABLE_MODE;
79
+ TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.COL] = IN_COLUMN_GROUP_MODE;
80
+ TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.TR] = IN_TABLE_BODY_MODE;
81
+ TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.TD] =
82
+ TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.TH] = IN_ROW_MODE;
83
+
84
+ //Token handlers map for insertion modes
85
+ var _ = {};
86
+
87
+ _[INITIAL_MODE] = {};
88
+ _[INITIAL_MODE][Tokenizer.CHARACTER_TOKEN] =
89
+ _[INITIAL_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenInInitialMode;
90
+ _[INITIAL_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = ignoreToken;
91
+ _[INITIAL_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
92
+ _[INITIAL_MODE][Tokenizer.DOCTYPE_TOKEN] = doctypeInInitialMode;
93
+ _[INITIAL_MODE][Tokenizer.START_TAG_TOKEN] =
94
+ _[INITIAL_MODE][Tokenizer.END_TAG_TOKEN] =
95
+ _[INITIAL_MODE][Tokenizer.EOF_TOKEN] = tokenInInitialMode;
96
+
97
+ _[BEFORE_HTML_MODE] = {};
98
+ _[BEFORE_HTML_MODE][Tokenizer.CHARACTER_TOKEN] =
99
+ _[BEFORE_HTML_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenBeforeHtml;
100
+ _[BEFORE_HTML_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = ignoreToken;
101
+ _[BEFORE_HTML_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
102
+ _[BEFORE_HTML_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
103
+ _[BEFORE_HTML_MODE][Tokenizer.START_TAG_TOKEN] = startTagBeforeHtml;
104
+ _[BEFORE_HTML_MODE][Tokenizer.END_TAG_TOKEN] = endTagBeforeHtml;
105
+ _[BEFORE_HTML_MODE][Tokenizer.EOF_TOKEN] = tokenBeforeHtml;
106
+
107
+ _[BEFORE_HEAD_MODE] = {};
108
+ _[BEFORE_HEAD_MODE][Tokenizer.CHARACTER_TOKEN] =
109
+ _[BEFORE_HEAD_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenBeforeHead;
110
+ _[BEFORE_HEAD_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = ignoreToken;
111
+ _[BEFORE_HEAD_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
112
+ _[BEFORE_HEAD_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
113
+ _[BEFORE_HEAD_MODE][Tokenizer.START_TAG_TOKEN] = startTagBeforeHead;
114
+ _[BEFORE_HEAD_MODE][Tokenizer.END_TAG_TOKEN] = endTagBeforeHead;
115
+ _[BEFORE_HEAD_MODE][Tokenizer.EOF_TOKEN] = tokenBeforeHead;
116
+
117
+ _[IN_HEAD_MODE] = {};
118
+ _[IN_HEAD_MODE][Tokenizer.CHARACTER_TOKEN] =
119
+ _[IN_HEAD_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenInHead;
120
+ _[IN_HEAD_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters;
121
+ _[IN_HEAD_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
122
+ _[IN_HEAD_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
123
+ _[IN_HEAD_MODE][Tokenizer.START_TAG_TOKEN] = startTagInHead;
124
+ _[IN_HEAD_MODE][Tokenizer.END_TAG_TOKEN] = endTagInHead;
125
+ _[IN_HEAD_MODE][Tokenizer.EOF_TOKEN] = tokenInHead;
126
+
127
+ _[AFTER_HEAD_MODE] = {};
128
+ _[AFTER_HEAD_MODE][Tokenizer.CHARACTER_TOKEN] =
129
+ _[AFTER_HEAD_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenAfterHead;
130
+ _[AFTER_HEAD_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters;
131
+ _[AFTER_HEAD_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
132
+ _[AFTER_HEAD_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
133
+ _[AFTER_HEAD_MODE][Tokenizer.START_TAG_TOKEN] = startTagAfterHead;
134
+ _[AFTER_HEAD_MODE][Tokenizer.END_TAG_TOKEN] = endTagAfterHead;
135
+ _[AFTER_HEAD_MODE][Tokenizer.EOF_TOKEN] = tokenAfterHead;
136
+
137
+ _[IN_BODY_MODE] = {};
138
+ _[IN_BODY_MODE][Tokenizer.CHARACTER_TOKEN] = characterInBody;
139
+ _[IN_BODY_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken;
140
+ _[IN_BODY_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody;
141
+ _[IN_BODY_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
142
+ _[IN_BODY_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
143
+ _[IN_BODY_MODE][Tokenizer.START_TAG_TOKEN] = startTagInBody;
144
+ _[IN_BODY_MODE][Tokenizer.END_TAG_TOKEN] = endTagInBody;
145
+ _[IN_BODY_MODE][Tokenizer.EOF_TOKEN] = eofInBody;
146
+
147
+ _[TEXT_MODE] = {};
148
+ _[TEXT_MODE][Tokenizer.CHARACTER_TOKEN] =
149
+ _[TEXT_MODE][Tokenizer.NULL_CHARACTER_TOKEN] =
150
+ _[TEXT_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters;
151
+ _[TEXT_MODE][Tokenizer.COMMENT_TOKEN] =
152
+ _[TEXT_MODE][Tokenizer.DOCTYPE_TOKEN] =
153
+ _[TEXT_MODE][Tokenizer.START_TAG_TOKEN] = ignoreToken;
154
+ _[TEXT_MODE][Tokenizer.END_TAG_TOKEN] = endTagInText;
155
+ _[TEXT_MODE][Tokenizer.EOF_TOKEN] = eofInText;
156
+
157
+ _[IN_TABLE_MODE] = {};
158
+ _[IN_TABLE_MODE][Tokenizer.CHARACTER_TOKEN] =
159
+ _[IN_TABLE_MODE][Tokenizer.NULL_CHARACTER_TOKEN] =
160
+ _[IN_TABLE_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = characterInTable;
161
+ _[IN_TABLE_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
162
+ _[IN_TABLE_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
163
+ _[IN_TABLE_MODE][Tokenizer.START_TAG_TOKEN] = startTagInTable;
164
+ _[IN_TABLE_MODE][Tokenizer.END_TAG_TOKEN] = endTagInTable;
165
+ _[IN_TABLE_MODE][Tokenizer.EOF_TOKEN] = eofInBody;
166
+
167
+ _[IN_TABLE_TEXT_MODE] = {};
168
+ _[IN_TABLE_TEXT_MODE][Tokenizer.CHARACTER_TOKEN] = characterInTableText;
169
+ _[IN_TABLE_TEXT_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken;
170
+ _[IN_TABLE_TEXT_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInTableText;
171
+ _[IN_TABLE_TEXT_MODE][Tokenizer.COMMENT_TOKEN] =
172
+ _[IN_TABLE_TEXT_MODE][Tokenizer.DOCTYPE_TOKEN] =
173
+ _[IN_TABLE_TEXT_MODE][Tokenizer.START_TAG_TOKEN] =
174
+ _[IN_TABLE_TEXT_MODE][Tokenizer.END_TAG_TOKEN] =
175
+ _[IN_TABLE_TEXT_MODE][Tokenizer.EOF_TOKEN] = tokenInTableText;
176
+
177
+ _[IN_CAPTION_MODE] = {};
178
+ _[IN_CAPTION_MODE][Tokenizer.CHARACTER_TOKEN] = characterInBody;
179
+ _[IN_CAPTION_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken;
180
+ _[IN_CAPTION_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody;
181
+ _[IN_CAPTION_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
182
+ _[IN_CAPTION_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
183
+ _[IN_CAPTION_MODE][Tokenizer.START_TAG_TOKEN] = startTagInCaption;
184
+ _[IN_CAPTION_MODE][Tokenizer.END_TAG_TOKEN] = endTagInCaption;
185
+ _[IN_CAPTION_MODE][Tokenizer.EOF_TOKEN] = eofInBody;
186
+
187
+ _[IN_COLUMN_GROUP_MODE] = {};
188
+ _[IN_COLUMN_GROUP_MODE][Tokenizer.CHARACTER_TOKEN] =
189
+ _[IN_COLUMN_GROUP_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenInColumnGroup;
190
+ _[IN_COLUMN_GROUP_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters;
191
+ _[IN_COLUMN_GROUP_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
192
+ _[IN_COLUMN_GROUP_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
193
+ _[IN_COLUMN_GROUP_MODE][Tokenizer.START_TAG_TOKEN] = startTagInColumnGroup;
194
+ _[IN_COLUMN_GROUP_MODE][Tokenizer.END_TAG_TOKEN] = endTagInColumnGroup;
195
+ _[IN_COLUMN_GROUP_MODE][Tokenizer.EOF_TOKEN] = eofInBody;
196
+
197
+ _[IN_TABLE_BODY_MODE] = {};
198
+ _[IN_TABLE_BODY_MODE][Tokenizer.CHARACTER_TOKEN] =
199
+ _[IN_TABLE_BODY_MODE][Tokenizer.NULL_CHARACTER_TOKEN] =
200
+ _[IN_TABLE_BODY_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = characterInTable;
201
+ _[IN_TABLE_BODY_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
202
+ _[IN_TABLE_BODY_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
203
+ _[IN_TABLE_BODY_MODE][Tokenizer.START_TAG_TOKEN] = startTagInTableBody;
204
+ _[IN_TABLE_BODY_MODE][Tokenizer.END_TAG_TOKEN] = endTagInTableBody;
205
+ _[IN_TABLE_BODY_MODE][Tokenizer.EOF_TOKEN] = eofInBody;
206
+
207
+ _[IN_ROW_MODE] = {};
208
+ _[IN_ROW_MODE][Tokenizer.CHARACTER_TOKEN] =
209
+ _[IN_ROW_MODE][Tokenizer.NULL_CHARACTER_TOKEN] =
210
+ _[IN_ROW_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = characterInTable;
211
+ _[IN_ROW_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
212
+ _[IN_ROW_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
213
+ _[IN_ROW_MODE][Tokenizer.START_TAG_TOKEN] = startTagInRow;
214
+ _[IN_ROW_MODE][Tokenizer.END_TAG_TOKEN] = endTagInRow;
215
+ _[IN_ROW_MODE][Tokenizer.EOF_TOKEN] = eofInBody;
216
+
217
+ _[IN_CELL_MODE] = {};
218
+ _[IN_CELL_MODE][Tokenizer.CHARACTER_TOKEN] = characterInBody;
219
+ _[IN_CELL_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken;
220
+ _[IN_CELL_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody;
221
+ _[IN_CELL_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
222
+ _[IN_CELL_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
223
+ _[IN_CELL_MODE][Tokenizer.START_TAG_TOKEN] = startTagInCell;
224
+ _[IN_CELL_MODE][Tokenizer.END_TAG_TOKEN] = endTagInCell;
225
+ _[IN_CELL_MODE][Tokenizer.EOF_TOKEN] = eofInBody;
226
+
227
+ _[IN_SELECT_MODE] = {};
228
+ _[IN_SELECT_MODE][Tokenizer.CHARACTER_TOKEN] = insertCharacters;
229
+ _[IN_SELECT_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken;
230
+ _[IN_SELECT_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters;
231
+ _[IN_SELECT_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
232
+ _[IN_SELECT_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
233
+ _[IN_SELECT_MODE][Tokenizer.START_TAG_TOKEN] = startTagInSelect;
234
+ _[IN_SELECT_MODE][Tokenizer.END_TAG_TOKEN] = endTagInSelect;
235
+ _[IN_SELECT_MODE][Tokenizer.EOF_TOKEN] = eofInBody;
236
+
237
+ _[IN_SELECT_IN_TABLE_MODE] = {};
238
+ _[IN_SELECT_IN_TABLE_MODE][Tokenizer.CHARACTER_TOKEN] = insertCharacters;
239
+ _[IN_SELECT_IN_TABLE_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken;
240
+ _[IN_SELECT_IN_TABLE_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters;
241
+ _[IN_SELECT_IN_TABLE_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
242
+ _[IN_SELECT_IN_TABLE_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
243
+ _[IN_SELECT_IN_TABLE_MODE][Tokenizer.START_TAG_TOKEN] = startTagInSelectInTable;
244
+ _[IN_SELECT_IN_TABLE_MODE][Tokenizer.END_TAG_TOKEN] = endTagInSelectInTable;
245
+ _[IN_SELECT_IN_TABLE_MODE][Tokenizer.EOF_TOKEN] = eofInBody;
246
+
247
+ _[IN_TEMPLATE_MODE] = {};
248
+ _[IN_TEMPLATE_MODE][Tokenizer.CHARACTER_TOKEN] = characterInBody;
249
+ _[IN_TEMPLATE_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken;
250
+ _[IN_TEMPLATE_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody;
251
+ _[IN_TEMPLATE_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
252
+ _[IN_TEMPLATE_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
253
+ _[IN_TEMPLATE_MODE][Tokenizer.START_TAG_TOKEN] = startTagInTemplate;
254
+ _[IN_TEMPLATE_MODE][Tokenizer.END_TAG_TOKEN] = endTagInTemplate;
255
+ _[IN_TEMPLATE_MODE][Tokenizer.EOF_TOKEN] = eofInTemplate;
256
+
257
+ _[AFTER_BODY_MODE] = {};
258
+ _[AFTER_BODY_MODE][Tokenizer.CHARACTER_TOKEN] =
259
+ _[AFTER_BODY_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenAfterBody;
260
+ _[AFTER_BODY_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody;
261
+ _[AFTER_BODY_MODE][Tokenizer.COMMENT_TOKEN] = appendCommentToRootHtmlElement;
262
+ _[AFTER_BODY_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
263
+ _[AFTER_BODY_MODE][Tokenizer.START_TAG_TOKEN] = startTagAfterBody;
264
+ _[AFTER_BODY_MODE][Tokenizer.END_TAG_TOKEN] = endTagAfterBody;
265
+ _[AFTER_BODY_MODE][Tokenizer.EOF_TOKEN] = stopParsing;
266
+
267
+ _[IN_FRAMESET_MODE] = {};
268
+ _[IN_FRAMESET_MODE][Tokenizer.CHARACTER_TOKEN] =
269
+ _[IN_FRAMESET_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken;
270
+ _[IN_FRAMESET_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters;
271
+ _[IN_FRAMESET_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
272
+ _[IN_FRAMESET_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
273
+ _[IN_FRAMESET_MODE][Tokenizer.START_TAG_TOKEN] = startTagInFrameset;
274
+ _[IN_FRAMESET_MODE][Tokenizer.END_TAG_TOKEN] = endTagInFrameset;
275
+ _[IN_FRAMESET_MODE][Tokenizer.EOF_TOKEN] = stopParsing;
276
+
277
+ _[AFTER_FRAMESET_MODE] = {};
278
+ _[AFTER_FRAMESET_MODE][Tokenizer.CHARACTER_TOKEN] =
279
+ _[AFTER_FRAMESET_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken;
280
+ _[AFTER_FRAMESET_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters;
281
+ _[AFTER_FRAMESET_MODE][Tokenizer.COMMENT_TOKEN] = appendComment;
282
+ _[AFTER_FRAMESET_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
283
+ _[AFTER_FRAMESET_MODE][Tokenizer.START_TAG_TOKEN] = startTagAfterFrameset;
284
+ _[AFTER_FRAMESET_MODE][Tokenizer.END_TAG_TOKEN] = endTagAfterFrameset;
285
+ _[AFTER_FRAMESET_MODE][Tokenizer.EOF_TOKEN] = stopParsing;
286
+
287
+ _[AFTER_AFTER_BODY_MODE] = {};
288
+ _[AFTER_AFTER_BODY_MODE][Tokenizer.CHARACTER_TOKEN] = tokenAfterAfterBody;
289
+ _[AFTER_AFTER_BODY_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenAfterAfterBody;
290
+ _[AFTER_AFTER_BODY_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody;
291
+ _[AFTER_AFTER_BODY_MODE][Tokenizer.COMMENT_TOKEN] = appendCommentToDocument;
292
+ _[AFTER_AFTER_BODY_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
293
+ _[AFTER_AFTER_BODY_MODE][Tokenizer.START_TAG_TOKEN] = startTagAfterAfterBody;
294
+ _[AFTER_AFTER_BODY_MODE][Tokenizer.END_TAG_TOKEN] = tokenAfterAfterBody;
295
+ _[AFTER_AFTER_BODY_MODE][Tokenizer.EOF_TOKEN] = stopParsing;
296
+
297
+ _[AFTER_AFTER_FRAMESET_MODE] = {};
298
+ _[AFTER_AFTER_FRAMESET_MODE][Tokenizer.CHARACTER_TOKEN] =
299
+ _[AFTER_AFTER_FRAMESET_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken;
300
+ _[AFTER_AFTER_FRAMESET_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody;
301
+ _[AFTER_AFTER_FRAMESET_MODE][Tokenizer.COMMENT_TOKEN] = appendCommentToDocument;
302
+ _[AFTER_AFTER_FRAMESET_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken;
303
+ _[AFTER_AFTER_FRAMESET_MODE][Tokenizer.START_TAG_TOKEN] = startTagAfterAfterFrameset;
304
+ _[AFTER_AFTER_FRAMESET_MODE][Tokenizer.END_TAG_TOKEN] = ignoreToken;
305
+ _[AFTER_AFTER_FRAMESET_MODE][Tokenizer.EOF_TOKEN] = stopParsing;
306
+
307
+ //Searchable index building utils (<isindex> tag)
308
+ function getSearchableIndexFormAttrs(isindexStartTagToken) {
309
+ var indexAction = Tokenizer.getTokenAttr(isindexStartTagToken, ATTRS.ACTION),
310
+ attrs = [];
311
+
312
+ if (indexAction !== null) {
313
+ attrs.push({
314
+ name: ATTRS.ACTION,
315
+ value: indexAction
316
+ });
317
+ }
318
+
319
+ return attrs;
320
+ }
321
+
322
+ function getSearchableIndexLabelText(isindexStartTagToken) {
323
+ var indexPrompt = Tokenizer.getTokenAttr(isindexStartTagToken, ATTRS.PROMPT);
324
+
325
+ return indexPrompt === null ? SEARCHABLE_INDEX_DEFAULT_PROMPT : indexPrompt;
326
+ }
327
+
328
+ function getSearchableIndexInputAttrs(isindexStartTagToken) {
329
+ var isindexAttrs = isindexStartTagToken.attrs,
330
+ inputAttrs = [];
331
+
332
+ for (var i = 0; i < isindexAttrs.length; i++) {
333
+ var name = isindexAttrs[i].name;
334
+
335
+ if (name !== ATTRS.NAME && name !== ATTRS.ACTION && name !== ATTRS.PROMPT)
336
+ inputAttrs.push(isindexAttrs[i]);
337
+ }
338
+
339
+ inputAttrs.push({
340
+ name: ATTRS.NAME,
341
+ value: SEARCHABLE_INDEX_INPUT_NAME
342
+ });
343
+
344
+ return inputAttrs;
345
+ }
346
+
347
+ //Parser
348
+ var Parser = module.exports = function (treeAdapter, options) {
349
+ this.treeAdapter = treeAdapter || DefaultTreeAdapter;
350
+ this.options = Utils.mergeOptions(DEFAULT_OPTIONS, options);
351
+ this.scriptHandler = null;
352
+
353
+ if (this.options.locationInfo)
354
+ LocationInfoMixin.assign(this);
355
+ };
356
+
357
+ //API
358
+ Parser.prototype.parse = function (html) {
359
+ var document = this.treeAdapter.createDocument();
360
+
361
+ this._reset(html, document, null);
362
+ this._runParsingLoop();
363
+
364
+ return document;
365
+ };
366
+
367
+ Parser.prototype.parseFragment = function (html, fragmentContext) {
368
+ //NOTE: use <template> element as a fragment context if context element was not provided,
369
+ //so we will parse in "forgiving" manner
370
+ if (!fragmentContext)
371
+ fragmentContext = this.treeAdapter.createElement($.TEMPLATE, NS.HTML, []);
372
+
373
+ //NOTE: create fake element which will be used as 'document' for fragment parsing.
374
+ //This is important for jsdom there 'document' can't be recreated, therefore
375
+ //fragment parsing causes messing of the main `document`.
376
+ var documentMock = this.treeAdapter.createElement('documentmock', NS.HTML, []);
377
+
378
+ this._reset(html, documentMock, fragmentContext);
379
+
380
+ if (this.treeAdapter.getTagName(fragmentContext) === $.TEMPLATE)
381
+ this._pushTmplInsertionMode(IN_TEMPLATE_MODE);
382
+
383
+ this._initTokenizerForFragmentParsing();
384
+ this._insertFakeRootElement();
385
+ this._resetInsertionMode();
386
+ this._findFormInFragmentContext();
387
+ this._runParsingLoop();
388
+
389
+ var rootElement = this.treeAdapter.getFirstChild(documentMock),
390
+ fragment = this.treeAdapter.createDocumentFragment();
391
+
392
+ this._adoptNodes(rootElement, fragment);
393
+
394
+ return fragment;
395
+ };
396
+
397
+ //Reset state
398
+ Parser.prototype._reset = function (html, document, fragmentContext) {
399
+ this.tokenizer = new Tokenizer(html, this.options);
400
+
401
+ this.stopped = false;
402
+
403
+ this.insertionMode = INITIAL_MODE;
404
+ this.originalInsertionMode = '';
405
+
406
+ this.document = document;
407
+ this.fragmentContext = fragmentContext;
408
+
409
+ this.headElement = null;
410
+ this.formElement = null;
411
+
412
+ this.openElements = new OpenElementStack(this.document, this.treeAdapter);
413
+ this.activeFormattingElements = new FormattingElementList(this.treeAdapter);
414
+
415
+ this.tmplInsertionModeStack = [];
416
+ this.tmplInsertionModeStackTop = -1;
417
+ this.currentTmplInsertionMode = null;
418
+
419
+ this.pendingCharacterTokens = [];
420
+ this.hasNonWhitespacePendingCharacterToken = false;
421
+
422
+ this.framesetOk = true;
423
+ this.skipNextNewLine = false;
424
+ this.fosterParentingEnabled = false;
425
+ };
426
+
427
+ //Parsing loop
428
+ Parser.prototype._iterateParsingLoop = function () {
429
+ this._setupTokenizerCDATAMode();
430
+
431
+ var token = this.tokenizer.getNextToken();
432
+
433
+ if (this.skipNextNewLine) {
434
+ this.skipNextNewLine = false;
435
+
436
+ if (token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN && token.chars[0] === '\n') {
437
+ if (token.chars.length === 1)
438
+ return;
439
+
440
+ token.chars = token.chars.substr(1);
441
+ }
442
+ }
443
+
444
+ if (this._shouldProcessTokenInForeignContent(token))
445
+ this._processTokenInForeignContent(token);
446
+
447
+ else
448
+ this._processToken(token);
449
+ };
450
+
451
+ Parser.prototype._runParsingLoop = function () {
452
+ while (!this.stopped)
453
+ this._iterateParsingLoop();
454
+ };
455
+
456
+ //Text parsing
457
+ Parser.prototype._setupTokenizerCDATAMode = function () {
458
+ var current = this._getAdjustedCurrentElement();
459
+
460
+ this.tokenizer.allowCDATA = current && current !== this.document &&
461
+ this.treeAdapter.getNamespaceURI(current) !== NS.HTML &&
462
+ (!this._isHtmlIntegrationPoint(current)) &&
463
+ (!this._isMathMLTextIntegrationPoint(current));
464
+ };
465
+
466
+ Parser.prototype._switchToTextParsing = function (currentToken, nextTokenizerState) {
467
+ this._insertElement(currentToken, NS.HTML);
468
+ this.tokenizer.state = nextTokenizerState;
469
+ this.originalInsertionMode = this.insertionMode;
470
+ this.insertionMode = TEXT_MODE;
471
+ };
472
+
473
+ //Fragment parsing
474
+ Parser.prototype._getAdjustedCurrentElement = function () {
475
+ return this.openElements.stackTop === 0 && this.fragmentContext ?
476
+ this.fragmentContext :
477
+ this.openElements.current;
478
+ };
479
+
480
+ Parser.prototype._findFormInFragmentContext = function () {
481
+ var node = this.fragmentContext;
482
+
483
+ do {
484
+ if (this.treeAdapter.getTagName(node) === $.FORM) {
485
+ this.formElement = node;
486
+ break;
487
+ }
488
+
489
+ node = this.treeAdapter.getParentNode(node);
490
+ } while (node);
491
+ };
492
+
493
+ Parser.prototype._initTokenizerForFragmentParsing = function () {
494
+ var tn = this.treeAdapter.getTagName(this.fragmentContext);
495
+
496
+ if (tn === $.TITLE || tn === $.TEXTAREA)
497
+ this.tokenizer.state = Tokenizer.MODE.RCDATA;
498
+
499
+ else if (tn === $.STYLE || tn === $.XMP || tn === $.IFRAME ||
500
+ tn === $.NOEMBED || tn === $.NOFRAMES || tn === $.NOSCRIPT) {
501
+ this.tokenizer.state = Tokenizer.MODE.RAWTEXT;
502
+ }
503
+
504
+ else if (tn === $.SCRIPT)
505
+ this.tokenizer.state = Tokenizer.MODE.SCRIPT_DATA;
506
+
507
+ else if (tn === $.PLAINTEXT)
508
+ this.tokenizer.state = Tokenizer.MODE.PLAINTEXT;
509
+ };
510
+
511
+ //Tree mutation
512
+ Parser.prototype._setDocumentType = function (token) {
513
+ this.treeAdapter.setDocumentType(this.document, token.name, token.publicId, token.systemId);
514
+ };
515
+
516
+ Parser.prototype._attachElementToTree = function (element) {
517
+ if (this._shouldFosterParentOnInsertion())
518
+ this._fosterParentElement(element);
519
+
520
+ else {
521
+ var parent = this.openElements.currentTmplContent || this.openElements.current;
522
+
523
+ this.treeAdapter.appendChild(parent, element);
524
+ }
525
+ };
526
+
527
+ Parser.prototype._appendElement = function (token, namespaceURI) {
528
+ var element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);
529
+
530
+ this._attachElementToTree(element);
531
+ };
532
+
533
+ Parser.prototype._insertElement = function (token, namespaceURI) {
534
+ var element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);
535
+
536
+ this._attachElementToTree(element);
537
+ this.openElements.push(element);
538
+ };
539
+
540
+ Parser.prototype._insertTemplate = function (token) {
541
+ var tmpl = this.treeAdapter.createElement(token.tagName, NS.HTML, token.attrs),
542
+ content = this.treeAdapter.createDocumentFragment();
543
+
544
+ this.treeAdapter.appendChild(tmpl, content);
545
+ this._attachElementToTree(tmpl);
546
+ this.openElements.push(tmpl);
547
+ };
548
+
549
+ Parser.prototype._insertFakeRootElement = function () {
550
+ var element = this.treeAdapter.createElement($.HTML, NS.HTML, []);
551
+
552
+ this.treeAdapter.appendChild(this.openElements.current, element);
553
+ this.openElements.push(element);
554
+ };
555
+
556
+ Parser.prototype._appendCommentNode = function (token, parent) {
557
+ var commentNode = this.treeAdapter.createCommentNode(token.data);
558
+
559
+ this.treeAdapter.appendChild(parent, commentNode);
560
+ };
561
+
562
+ Parser.prototype._insertCharacters = function (token) {
563
+ if (this._shouldFosterParentOnInsertion())
564
+ this._fosterParentText(token.chars);
565
+
566
+ else {
567
+ var parent = this.openElements.currentTmplContent || this.openElements.current;
568
+
569
+ this.treeAdapter.insertText(parent, token.chars);
570
+ }
571
+ };
572
+
573
+ Parser.prototype._adoptNodes = function (donor, recipient) {
574
+ while (true) {
575
+ var child = this.treeAdapter.getFirstChild(donor);
576
+
577
+ if (!child)
578
+ break;
579
+
580
+ this.treeAdapter.detachNode(child);
581
+ this.treeAdapter.appendChild(recipient, child);
582
+ }
583
+ };
584
+
585
+ //Token processing
586
+ Parser.prototype._shouldProcessTokenInForeignContent = function (token) {
587
+ var current = this._getAdjustedCurrentElement();
588
+
589
+ if (!current || current === this.document)
590
+ return false;
591
+
592
+ var ns = this.treeAdapter.getNamespaceURI(current);
593
+
594
+ if (ns === NS.HTML)
595
+ return false;
596
+
597
+ if (this.treeAdapter.getTagName(current) === $.ANNOTATION_XML && ns === NS.MATHML &&
598
+ token.type === Tokenizer.START_TAG_TOKEN && token.tagName === $.SVG) {
599
+ return false;
600
+ }
601
+
602
+ var isCharacterToken = token.type === Tokenizer.CHARACTER_TOKEN ||
603
+ token.type === Tokenizer.NULL_CHARACTER_TOKEN ||
604
+ token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN,
605
+ isMathMLTextStartTag = token.type === Tokenizer.START_TAG_TOKEN &&
606
+ token.tagName !== $.MGLYPH &&
607
+ token.tagName !== $.MALIGNMARK;
608
+
609
+ if ((isMathMLTextStartTag || isCharacterToken) && this._isMathMLTextIntegrationPoint(current))
610
+ return false;
611
+
612
+ if ((token.type === Tokenizer.START_TAG_TOKEN || isCharacterToken) && this._isHtmlIntegrationPoint(current))
613
+ return false;
614
+
615
+ return token.type !== Tokenizer.EOF_TOKEN;
616
+ };
617
+
618
+ Parser.prototype._processToken = function (token) {
619
+ _[this.insertionMode][token.type](this, token);
620
+ };
621
+
622
+ Parser.prototype._processTokenInBodyMode = function (token) {
623
+ _[IN_BODY_MODE][token.type](this, token);
624
+ };
625
+
626
+ Parser.prototype._processTokenInForeignContent = function (token) {
627
+ if (token.type === Tokenizer.CHARACTER_TOKEN)
628
+ characterInForeignContent(this, token);
629
+
630
+ else if (token.type === Tokenizer.NULL_CHARACTER_TOKEN)
631
+ nullCharacterInForeignContent(this, token);
632
+
633
+ else if (token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN)
634
+ insertCharacters(this, token);
635
+
636
+ else if (token.type === Tokenizer.COMMENT_TOKEN)
637
+ appendComment(this, token);
638
+
639
+ else if (token.type === Tokenizer.START_TAG_TOKEN)
640
+ startTagInForeignContent(this, token);
641
+
642
+ else if (token.type === Tokenizer.END_TAG_TOKEN)
643
+ endTagInForeignContent(this, token);
644
+ };
645
+
646
+ Parser.prototype._processFakeStartTagWithAttrs = function (tagName, attrs) {
647
+ var fakeToken = this.tokenizer.buildStartTagToken(tagName);
648
+
649
+ fakeToken.attrs = attrs;
650
+ this._processToken(fakeToken);
651
+ };
652
+
653
+ Parser.prototype._processFakeStartTag = function (tagName) {
654
+ var fakeToken = this.tokenizer.buildStartTagToken(tagName);
655
+
656
+ this._processToken(fakeToken);
657
+ return fakeToken;
658
+ };
659
+
660
+ Parser.prototype._processFakeEndTag = function (tagName) {
661
+ var fakeToken = this.tokenizer.buildEndTagToken(tagName);
662
+
663
+ this._processToken(fakeToken);
664
+ return fakeToken;
665
+ };
666
+
667
+ //Integration points
668
+ Parser.prototype._isMathMLTextIntegrationPoint = function (element) {
669
+ var tn = this.treeAdapter.getTagName(element),
670
+ ns = this.treeAdapter.getNamespaceURI(element);
671
+
672
+ return ForeignContent.isMathMLTextIntegrationPoint(tn, ns);
673
+ };
674
+
675
+ Parser.prototype._isHtmlIntegrationPoint = function (element) {
676
+ var tn = this.treeAdapter.getTagName(element),
677
+ ns = this.treeAdapter.getNamespaceURI(element),
678
+ attrs = this.treeAdapter.getAttrList(element);
679
+
680
+ return ForeignContent.isHtmlIntegrationPoint(tn, ns, attrs);
681
+ };
682
+
683
+ //Active formatting elements reconstruction
684
+ Parser.prototype._reconstructActiveFormattingElements = function () {
685
+ var listLength = this.activeFormattingElements.length;
686
+
687
+ if (listLength) {
688
+ var unopenIdx = listLength,
689
+ entry = null;
690
+
691
+ do {
692
+ unopenIdx--;
693
+ entry = this.activeFormattingElements.entries[unopenIdx];
694
+
695
+ if (entry.type === FormattingElementList.MARKER_ENTRY || this.openElements.contains(entry.element)) {
696
+ unopenIdx++;
697
+ break;
698
+ }
699
+ } while (unopenIdx > 0);
700
+
701
+ for (var i = unopenIdx; i < listLength; i++) {
702
+ entry = this.activeFormattingElements.entries[i];
703
+ this._insertElement(entry.token, this.treeAdapter.getNamespaceURI(entry.element));
704
+ entry.element = this.openElements.current;
705
+ }
706
+ }
707
+ };
708
+
709
+ //Close elements
710
+ Parser.prototype._closeTableCell = function () {
711
+ if (this.openElements.hasInTableScope($.TD))
712
+ this._processFakeEndTag($.TD);
713
+
714
+ else
715
+ this._processFakeEndTag($.TH);
716
+ };
717
+
718
+ Parser.prototype._closePElement = function () {
719
+ this.openElements.generateImpliedEndTagsWithExclusion($.P);
720
+ this.openElements.popUntilTagNamePopped($.P);
721
+ };
722
+
723
+ //Insertion modes
724
+ Parser.prototype._resetInsertionMode = function () {
725
+ for (var i = this.openElements.stackTop, last = false; i >= 0; i--) {
726
+ var element = this.openElements.items[i];
727
+
728
+ if (i === 0) {
729
+ last = true;
730
+
731
+ if (this.fragmentContext)
732
+ element = this.fragmentContext;
733
+ }
734
+
735
+ var tn = this.treeAdapter.getTagName(element),
736
+ newInsertionMode = INSERTION_MODE_RESET_MAP[tn];
737
+
738
+ if (newInsertionMode) {
739
+ this.insertionMode = newInsertionMode;
740
+ break;
741
+ }
742
+
743
+ else if (!last && (tn === $.TD || tn === $.TH)) {
744
+ this.insertionMode = IN_CELL_MODE;
745
+ break;
746
+ }
747
+
748
+ else if (!last && tn === $.HEAD) {
749
+ this.insertionMode = IN_HEAD_MODE;
750
+ break;
751
+ }
752
+
753
+ else if (tn === $.SELECT) {
754
+ this._resetInsertionModeForSelect(i);
755
+ break;
756
+ }
757
+
758
+ else if (tn === $.TEMPLATE) {
759
+ this.insertionMode = this.currentTmplInsertionMode;
760
+ break;
761
+ }
762
+
763
+ else if (tn === $.HTML) {
764
+ this.insertionMode = this.headElement ? AFTER_HEAD_MODE : BEFORE_HEAD_MODE;
765
+ break;
766
+ }
767
+
768
+ else if (last) {
769
+ this.insertionMode = IN_BODY_MODE;
770
+ break;
771
+ }
772
+ }
773
+ };
774
+
775
+ Parser.prototype._resetInsertionModeForSelect = function (selectIdx) {
776
+ if (selectIdx > 0) {
777
+ for (var i = selectIdx - 1; i > 0; i--) {
778
+ var ancestor = this.openElements.items[i],
779
+ tn = this.treeAdapter.getTagName(ancestor);
780
+
781
+ if (tn === $.TEMPLATE)
782
+ break;
783
+
784
+ else if (tn === $.TABLE) {
785
+ this.insertionMode = IN_SELECT_IN_TABLE_MODE;
786
+ return;
787
+ }
788
+ }
789
+ }
790
+
791
+ this.insertionMode = IN_SELECT_MODE;
792
+ };
793
+
794
+ Parser.prototype._pushTmplInsertionMode = function (mode) {
795
+ this.tmplInsertionModeStack.push(mode);
796
+ this.tmplInsertionModeStackTop++;
797
+ this.currentTmplInsertionMode = mode;
798
+ };
799
+
800
+ Parser.prototype._popTmplInsertionMode = function () {
801
+ this.tmplInsertionModeStack.pop();
802
+ this.tmplInsertionModeStackTop--;
803
+ this.currentTmplInsertionMode = this.tmplInsertionModeStack[this.tmplInsertionModeStackTop];
804
+ };
805
+
806
+ //Foster parenting
807
+ Parser.prototype._isElementCausesFosterParenting = function (element) {
808
+ var tn = this.treeAdapter.getTagName(element);
809
+
810
+ return tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT || tn == $.THEAD || tn === $.TR;
811
+ };
812
+
813
+ Parser.prototype._shouldFosterParentOnInsertion = function () {
814
+ return this.fosterParentingEnabled && this._isElementCausesFosterParenting(this.openElements.current);
815
+ };
816
+
817
+ Parser.prototype._findFosterParentingLocation = function () {
818
+ var location = {
819
+ parent: null,
820
+ beforeElement: null
821
+ };
822
+
823
+ for (var i = this.openElements.stackTop; i >= 0; i--) {
824
+ var openElement = this.openElements.items[i],
825
+ tn = this.treeAdapter.getTagName(openElement),
826
+ ns = this.treeAdapter.getNamespaceURI(openElement);
827
+
828
+ if (tn === $.TEMPLATE && ns === NS.HTML) {
829
+ location.parent = this.treeAdapter.getChildNodes(openElement)[0];
830
+ break;
831
+ }
832
+
833
+ else if (tn === $.TABLE) {
834
+ location.parent = this.treeAdapter.getParentNode(openElement);
835
+
836
+ if (location.parent)
837
+ location.beforeElement = openElement;
838
+ else
839
+ location.parent = this.openElements.items[i - 1];
840
+
841
+ break;
842
+ }
843
+ }
844
+
845
+ if (!location.parent)
846
+ location.parent = this.openElements.items[0];
847
+
848
+ return location;
849
+ };
850
+
851
+ Parser.prototype._fosterParentElement = function (element) {
852
+ var location = this._findFosterParentingLocation();
853
+
854
+ if (location.beforeElement)
855
+ this.treeAdapter.insertBefore(location.parent, element, location.beforeElement);
856
+ else
857
+ this.treeAdapter.appendChild(location.parent, element);
858
+ };
859
+
860
+ Parser.prototype._fosterParentText = function (chars) {
861
+ var location = this._findFosterParentingLocation();
862
+
863
+ if (location.beforeElement)
864
+ this.treeAdapter.insertTextBefore(location.parent, chars, location.beforeElement);
865
+ else
866
+ this.treeAdapter.insertText(location.parent, chars);
867
+ };
868
+
869
+ //Special elements
870
+ Parser.prototype._isSpecialElement = function (element) {
871
+ var tn = this.treeAdapter.getTagName(element),
872
+ ns = this.treeAdapter.getNamespaceURI(element);
873
+
874
+ return HTML.SPECIAL_ELEMENTS[ns][tn];
875
+ };
876
+
877
+ //Adoption agency algorithm
878
+ //(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#adoptionAgency)
879
+ //------------------------------------------------------------------
880
+
881
+ //Steps 5-8 of the algorithm
882
+ function aaObtainFormattingElementEntry(p, token) {
883
+ var formattingElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(token.tagName);
884
+
885
+ if (formattingElementEntry) {
886
+ if (!p.openElements.contains(formattingElementEntry.element)) {
887
+ p.activeFormattingElements.removeEntry(formattingElementEntry);
888
+ formattingElementEntry = null;
889
+ }
890
+
891
+ else if (!p.openElements.hasInScope(token.tagName))
892
+ formattingElementEntry = null;
893
+ }
894
+
895
+ else
896
+ genericEndTagInBody(p, token);
897
+
898
+ return formattingElementEntry;
899
+ }
900
+
901
+ //Steps 9 and 10 of the algorithm
902
+ function aaObtainFurthestBlock(p, formattingElementEntry) {
903
+ var furthestBlock = null;
904
+
905
+ for (var i = p.openElements.stackTop; i >= 0; i--) {
906
+ var element = p.openElements.items[i];
907
+
908
+ if (element === formattingElementEntry.element)
909
+ break;
910
+
911
+ if (p._isSpecialElement(element))
912
+ furthestBlock = element;
913
+ }
914
+
915
+ if (!furthestBlock) {
916
+ p.openElements.popUntilElementPopped(formattingElementEntry.element);
917
+ p.activeFormattingElements.removeEntry(formattingElementEntry);
918
+ }
919
+
920
+ return furthestBlock;
921
+ }
922
+
923
+ //Step 13 of the algorithm
924
+ function aaInnerLoop(p, furthestBlock, formattingElement) {
925
+ var element = null,
926
+ lastElement = furthestBlock,
927
+ nextElement = p.openElements.getCommonAncestor(furthestBlock);
928
+
929
+ for (var i = 0; i < AA_INNER_LOOP_ITER; i++) {
930
+ element = nextElement;
931
+
932
+ //NOTE: store next element for the next loop iteration (it may be deleted from the stack by step 9.5)
933
+ nextElement = p.openElements.getCommonAncestor(element);
934
+
935
+ var elementEntry = p.activeFormattingElements.getElementEntry(element);
936
+
937
+ if (!elementEntry) {
938
+ p.openElements.remove(element);
939
+ continue;
940
+ }
941
+
942
+ if (element === formattingElement)
943
+ break;
944
+
945
+ element = aaRecreateElementFromEntry(p, elementEntry);
946
+
947
+ if (lastElement === furthestBlock)
948
+ p.activeFormattingElements.bookmark = elementEntry;
949
+
950
+ p.treeAdapter.detachNode(lastElement);
951
+ p.treeAdapter.appendChild(element, lastElement);
952
+ lastElement = element;
953
+ }
954
+
955
+ return lastElement;
956
+ }
957
+
958
+ //Step 13.7 of the algorithm
959
+ function aaRecreateElementFromEntry(p, elementEntry) {
960
+ var ns = p.treeAdapter.getNamespaceURI(elementEntry.element),
961
+ newElement = p.treeAdapter.createElement(elementEntry.token.tagName, ns, elementEntry.token.attrs);
962
+
963
+ p.openElements.replace(elementEntry.element, newElement);
964
+ elementEntry.element = newElement;
965
+
966
+ return newElement;
967
+ }
968
+
969
+ //Step 14 of the algorithm
970
+ function aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement) {
971
+ if (p._isElementCausesFosterParenting(commonAncestor))
972
+ p._fosterParentElement(lastElement);
973
+
974
+ else {
975
+ var tn = p.treeAdapter.getTagName(commonAncestor),
976
+ ns = p.treeAdapter.getNamespaceURI(commonAncestor);
977
+
978
+ if (tn === $.TEMPLATE && ns === NS.HTML)
979
+ commonAncestor = p.treeAdapter.getChildNodes(commonAncestor)[0];
980
+
981
+ p.treeAdapter.appendChild(commonAncestor, lastElement);
982
+ }
983
+ }
984
+
985
+ //Steps 15-19 of the algorithm
986
+ function aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry) {
987
+ var ns = p.treeAdapter.getNamespaceURI(formattingElementEntry.element),
988
+ token = formattingElementEntry.token,
989
+ newElement = p.treeAdapter.createElement(token.tagName, ns, token.attrs);
990
+
991
+ p._adoptNodes(furthestBlock, newElement);
992
+ p.treeAdapter.appendChild(furthestBlock, newElement);
993
+
994
+ p.activeFormattingElements.insertElementAfterBookmark(newElement, formattingElementEntry.token);
995
+ p.activeFormattingElements.removeEntry(formattingElementEntry);
996
+
997
+ p.openElements.remove(formattingElementEntry.element);
998
+ p.openElements.insertAfter(furthestBlock, newElement);
999
+ }
1000
+
1001
+ //Algorithm entry point
1002
+ function callAdoptionAgency(p, token) {
1003
+ for (var i = 0; i < AA_OUTER_LOOP_ITER; i++) {
1004
+ var formattingElementEntry = aaObtainFormattingElementEntry(p, token, formattingElementEntry);
1005
+
1006
+ if (!formattingElementEntry)
1007
+ break;
1008
+
1009
+ var furthestBlock = aaObtainFurthestBlock(p, formattingElementEntry);
1010
+
1011
+ if (!furthestBlock)
1012
+ break;
1013
+
1014
+ p.activeFormattingElements.bookmark = formattingElementEntry;
1015
+
1016
+ var lastElement = aaInnerLoop(p, furthestBlock, formattingElementEntry.element),
1017
+ commonAncestor = p.openElements.getCommonAncestor(formattingElementEntry.element);
1018
+
1019
+ p.treeAdapter.detachNode(lastElement);
1020
+ aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement);
1021
+ aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry);
1022
+ }
1023
+ }
1024
+
1025
+
1026
+ //Generic token handlers
1027
+ //------------------------------------------------------------------
1028
+ function ignoreToken(p, token) {
1029
+ //NOTE: do nothing =)
1030
+ }
1031
+
1032
+ function appendComment(p, token) {
1033
+ p._appendCommentNode(token, p.openElements.currentTmplContent || p.openElements.current)
1034
+ }
1035
+
1036
+ function appendCommentToRootHtmlElement(p, token) {
1037
+ p._appendCommentNode(token, p.openElements.items[0]);
1038
+ }
1039
+
1040
+ function appendCommentToDocument(p, token) {
1041
+ p._appendCommentNode(token, p.document);
1042
+ }
1043
+
1044
+ function insertCharacters(p, token) {
1045
+ p._insertCharacters(token);
1046
+ }
1047
+
1048
+ function stopParsing(p, token) {
1049
+ p.stopped = true;
1050
+ }
1051
+
1052
+ //12.2.5.4.1 The "initial" insertion mode
1053
+ //------------------------------------------------------------------
1054
+ function doctypeInInitialMode(p, token) {
1055
+ p._setDocumentType(token);
1056
+
1057
+ if (token.forceQuirks || Doctype.isQuirks(token.name, token.publicId, token.systemId))
1058
+ p.treeAdapter.setQuirksMode(p.document);
1059
+
1060
+ p.insertionMode = BEFORE_HTML_MODE;
1061
+ }
1062
+
1063
+ function tokenInInitialMode(p, token) {
1064
+ p.treeAdapter.setQuirksMode(p.document);
1065
+ p.insertionMode = BEFORE_HTML_MODE;
1066
+ p._processToken(token);
1067
+ }
1068
+
1069
+
1070
+ //12.2.5.4.2 The "before html" insertion mode
1071
+ //------------------------------------------------------------------
1072
+ function startTagBeforeHtml(p, token) {
1073
+ if (token.tagName === $.HTML) {
1074
+ p._insertElement(token, NS.HTML);
1075
+ p.insertionMode = BEFORE_HEAD_MODE;
1076
+ }
1077
+
1078
+ else
1079
+ tokenBeforeHtml(p, token);
1080
+ }
1081
+
1082
+ function endTagBeforeHtml(p, token) {
1083
+ var tn = token.tagName;
1084
+
1085
+ if (tn === $.HTML || tn === $.HEAD || tn === $.BODY || tn === $.BR)
1086
+ tokenBeforeHtml(p, token);
1087
+ }
1088
+
1089
+ function tokenBeforeHtml(p, token) {
1090
+ p._insertFakeRootElement();
1091
+ p.insertionMode = BEFORE_HEAD_MODE;
1092
+ p._processToken(token);
1093
+ }
1094
+
1095
+
1096
+ //12.2.5.4.3 The "before head" insertion mode
1097
+ //------------------------------------------------------------------
1098
+ function startTagBeforeHead(p, token) {
1099
+ var tn = token.tagName;
1100
+
1101
+ if (tn === $.HTML)
1102
+ startTagInBody(p, token);
1103
+
1104
+ else if (tn === $.HEAD) {
1105
+ p._insertElement(token, NS.HTML);
1106
+ p.headElement = p.openElements.current;
1107
+ p.insertionMode = IN_HEAD_MODE;
1108
+ }
1109
+
1110
+ else
1111
+ tokenBeforeHead(p, token);
1112
+ }
1113
+
1114
+ function endTagBeforeHead(p, token) {
1115
+ var tn = token.tagName;
1116
+
1117
+ if (tn === $.HEAD || tn === $.BODY || tn === $.HTML || tn === $.BR)
1118
+ tokenBeforeHead(p, token);
1119
+ }
1120
+
1121
+ function tokenBeforeHead(p, token) {
1122
+ p._processFakeStartTag($.HEAD);
1123
+ p._processToken(token);
1124
+ }
1125
+
1126
+
1127
+ //12.2.5.4.4 The "in head" insertion mode
1128
+ //------------------------------------------------------------------
1129
+ function startTagInHead(p, token) {
1130
+ var tn = token.tagName;
1131
+
1132
+ if (tn === $.HTML)
1133
+ startTagInBody(p, token);
1134
+
1135
+ else if (tn === $.BASE || tn === $.BASEFONT || tn === $.BGSOUND ||
1136
+ tn === $.COMMAND || tn === $.LINK || tn === $.META) {
1137
+ p._appendElement(token, NS.HTML);
1138
+ }
1139
+
1140
+ else if (tn === $.TITLE)
1141
+ p._switchToTextParsing(token, Tokenizer.MODE.RCDATA);
1142
+
1143
+ //NOTE: here we assume that we always act as an interactive user agent with enabled scripting, so we parse
1144
+ //<noscript> as a rawtext.
1145
+ else if (tn === $.NOSCRIPT || tn === $.NOFRAMES || tn === $.STYLE)
1146
+ p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);
1147
+
1148
+ else if (tn === $.SCRIPT)
1149
+ p._switchToTextParsing(token, Tokenizer.MODE.SCRIPT_DATA);
1150
+
1151
+ else if (tn === $.TEMPLATE) {
1152
+ p._insertTemplate(token, NS.HTML);
1153
+ p.activeFormattingElements.insertMarker();
1154
+ p.framesetOk = false;
1155
+ p.insertionMode = IN_TEMPLATE_MODE;
1156
+ p._pushTmplInsertionMode(IN_TEMPLATE_MODE);
1157
+ }
1158
+
1159
+ else if (tn !== $.HEAD)
1160
+ tokenInHead(p, token);
1161
+ }
1162
+
1163
+ function endTagInHead(p, token) {
1164
+ var tn = token.tagName;
1165
+
1166
+ if (tn === $.HEAD) {
1167
+ p.openElements.pop();
1168
+ p.insertionMode = AFTER_HEAD_MODE;
1169
+ }
1170
+
1171
+ else if (tn === $.BODY || tn === $.BR || tn === $.HTML)
1172
+ tokenInHead(p, token);
1173
+
1174
+ else if (tn === $.TEMPLATE && p.openElements.tmplCount > 0) {
1175
+ p.openElements.generateImpliedEndTags();
1176
+ p.openElements.popUntilTemplatePopped();
1177
+ p.activeFormattingElements.clearToLastMarker();
1178
+ p._popTmplInsertionMode();
1179
+ p._resetInsertionMode();
1180
+ }
1181
+ }
1182
+
1183
+ function tokenInHead(p, token) {
1184
+ p._processFakeEndTag($.HEAD);
1185
+ p._processToken(token);
1186
+ }
1187
+
1188
+
1189
+ //12.2.5.4.6 The "after head" insertion mode
1190
+ //------------------------------------------------------------------
1191
+ function startTagAfterHead(p, token) {
1192
+ var tn = token.tagName;
1193
+
1194
+ if (tn === $.HTML)
1195
+ startTagInBody(p, token);
1196
+
1197
+ else if (tn === $.BODY) {
1198
+ p._insertElement(token, NS.HTML);
1199
+ p.framesetOk = false;
1200
+ p.insertionMode = IN_BODY_MODE;
1201
+ }
1202
+
1203
+ else if (tn === $.FRAMESET) {
1204
+ p._insertElement(token, NS.HTML);
1205
+ p.insertionMode = IN_FRAMESET_MODE;
1206
+ }
1207
+
1208
+ else if (tn === $.BASE || tn === $.BASEFONT || tn === $.BGSOUND || tn === $.LINK || tn === $.META ||
1209
+ tn === $.NOFRAMES || tn === $.SCRIPT || tn === $.STYLE || tn === $.TEMPLATE || tn === $.TITLE) {
1210
+ p.openElements.push(p.headElement);
1211
+ startTagInHead(p, token);
1212
+ p.openElements.remove(p.headElement);
1213
+ }
1214
+
1215
+ else if (tn !== $.HEAD)
1216
+ tokenAfterHead(p, token);
1217
+ }
1218
+
1219
+ function endTagAfterHead(p, token) {
1220
+ var tn = token.tagName;
1221
+
1222
+ if (tn === $.BODY || tn === $.HTML || tn === $.BR)
1223
+ tokenAfterHead(p, token);
1224
+
1225
+ else if (tn === $.TEMPLATE)
1226
+ endTagInHead(p, token);
1227
+ }
1228
+
1229
+ function tokenAfterHead(p, token) {
1230
+ p._processFakeStartTag($.BODY);
1231
+ p.framesetOk = true;
1232
+ p._processToken(token);
1233
+ }
1234
+
1235
+
1236
+ //12.2.5.4.7 The "in body" insertion mode
1237
+ //------------------------------------------------------------------
1238
+ function whitespaceCharacterInBody(p, token) {
1239
+ p._reconstructActiveFormattingElements();
1240
+ p._insertCharacters(token);
1241
+ }
1242
+
1243
+ function characterInBody(p, token) {
1244
+ p._reconstructActiveFormattingElements();
1245
+ p._insertCharacters(token);
1246
+ p.framesetOk = false;
1247
+ }
1248
+
1249
+ function htmlStartTagInBody(p, token) {
1250
+ if (p.openElements.tmplCount === 0)
1251
+ p.treeAdapter.adoptAttributes(p.openElements.items[0], token.attrs);
1252
+ }
1253
+
1254
+ function bodyStartTagInBody(p, token) {
1255
+ var bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();
1256
+
1257
+ if (bodyElement && p.openElements.tmplCount === 0) {
1258
+ p.framesetOk = false;
1259
+ p.treeAdapter.adoptAttributes(bodyElement, token.attrs);
1260
+ }
1261
+ }
1262
+
1263
+ function framesetStartTagInBody(p, token) {
1264
+ var bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();
1265
+
1266
+ if (p.framesetOk && bodyElement) {
1267
+ p.treeAdapter.detachNode(bodyElement);
1268
+ p.openElements.popAllUpToHtmlElement();
1269
+ p._insertElement(token, NS.HTML);
1270
+ p.insertionMode = IN_FRAMESET_MODE;
1271
+ }
1272
+ }
1273
+
1274
+ function addressStartTagInBody(p, token) {
1275
+ if (p.openElements.hasInButtonScope($.P))
1276
+ p._closePElement();
1277
+
1278
+ p._insertElement(token, NS.HTML);
1279
+ }
1280
+
1281
+ function numberedHeaderStartTagInBody(p, token) {
1282
+ if (p.openElements.hasInButtonScope($.P))
1283
+ p._closePElement();
1284
+
1285
+ var tn = p.openElements.currentTagName;
1286
+
1287
+ if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6)
1288
+ p.openElements.pop();
1289
+
1290
+ p._insertElement(token, NS.HTML);
1291
+ }
1292
+
1293
+ function preStartTagInBody(p, token) {
1294
+ if (p.openElements.hasInButtonScope($.P))
1295
+ p._closePElement();
1296
+
1297
+ p._insertElement(token, NS.HTML);
1298
+ //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move
1299
+ //on to the next one. (Newlines at the start of pre blocks are ignored as an authoring convenience.)
1300
+ p.skipNextNewLine = true;
1301
+ p.framesetOk = false;
1302
+ }
1303
+
1304
+ function formStartTagInBody(p, token) {
1305
+ var inTemplate = p.openElements.tmplCount > 0;
1306
+
1307
+ if (!p.formElement || inTemplate) {
1308
+ if (p.openElements.hasInButtonScope($.P))
1309
+ p._closePElement();
1310
+
1311
+ p._insertElement(token, NS.HTML);
1312
+
1313
+ if (!inTemplate)
1314
+ p.formElement = p.openElements.current;
1315
+ }
1316
+ }
1317
+
1318
+ function listItemStartTagInBody(p, token) {
1319
+ p.framesetOk = false;
1320
+
1321
+ for (var i = p.openElements.stackTop; i >= 0; i--) {
1322
+ var element = p.openElements.items[i],
1323
+ tn = p.treeAdapter.getTagName(element);
1324
+
1325
+ if ((token.tagName === $.LI && tn === $.LI) ||
1326
+ ((token.tagName === $.DD || token.tagName === $.DT) && (tn === $.DD || tn == $.DT))) {
1327
+ p._processFakeEndTag(tn);
1328
+ break;
1329
+ }
1330
+
1331
+ if (tn !== $.ADDRESS && tn !== $.DIV && tn !== $.P && p._isSpecialElement(element))
1332
+ break;
1333
+ }
1334
+
1335
+ if (p.openElements.hasInButtonScope($.P))
1336
+ p._closePElement();
1337
+
1338
+ p._insertElement(token, NS.HTML);
1339
+ }
1340
+
1341
+ function plaintextStartTagInBody(p, token) {
1342
+ if (p.openElements.hasInButtonScope($.P))
1343
+ p._closePElement();
1344
+
1345
+ p._insertElement(token, NS.HTML);
1346
+ p.tokenizer.state = Tokenizer.MODE.PLAINTEXT;
1347
+ }
1348
+
1349
+ function buttonStartTagInBody(p, token) {
1350
+ if (p.openElements.hasInScope($.BUTTON)) {
1351
+ p._processFakeEndTag($.BUTTON);
1352
+ buttonStartTagInBody(p, token);
1353
+ }
1354
+
1355
+ else {
1356
+ p._reconstructActiveFormattingElements();
1357
+ p._insertElement(token, NS.HTML);
1358
+ p.framesetOk = false;
1359
+ }
1360
+ }
1361
+
1362
+ function aStartTagInBody(p, token) {
1363
+ var activeElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName($.A);
1364
+
1365
+ if (activeElementEntry) {
1366
+ p._processFakeEndTag($.A);
1367
+ p.openElements.remove(activeElementEntry.element);
1368
+ p.activeFormattingElements.removeEntry(activeElementEntry);
1369
+ }
1370
+
1371
+ p._reconstructActiveFormattingElements();
1372
+ p._insertElement(token, NS.HTML);
1373
+ p.activeFormattingElements.pushElement(p.openElements.current, token);
1374
+ }
1375
+
1376
+ function bStartTagInBody(p, token) {
1377
+ p._reconstructActiveFormattingElements();
1378
+ p._insertElement(token, NS.HTML);
1379
+ p.activeFormattingElements.pushElement(p.openElements.current, token);
1380
+ }
1381
+
1382
+ function nobrStartTagInBody(p, token) {
1383
+ p._reconstructActiveFormattingElements();
1384
+
1385
+ if (p.openElements.hasInScope($.NOBR)) {
1386
+ p._processFakeEndTag($.NOBR);
1387
+ p._reconstructActiveFormattingElements();
1388
+ }
1389
+
1390
+ p._insertElement(token, NS.HTML);
1391
+ p.activeFormattingElements.pushElement(p.openElements.current, token);
1392
+ }
1393
+
1394
+ function appletStartTagInBody(p, token) {
1395
+ p._reconstructActiveFormattingElements();
1396
+ p._insertElement(token, NS.HTML);
1397
+ p.activeFormattingElements.insertMarker();
1398
+ p.framesetOk = false;
1399
+ }
1400
+
1401
+ function tableStartTagInBody(p, token) {
1402
+ if (!p.treeAdapter.isQuirksMode(p.document) && p.openElements.hasInButtonScope($.P))
1403
+ p._closePElement();
1404
+
1405
+ p._insertElement(token, NS.HTML);
1406
+ p.framesetOk = false;
1407
+ p.insertionMode = IN_TABLE_MODE;
1408
+ }
1409
+
1410
+ function areaStartTagInBody(p, token) {
1411
+ p._reconstructActiveFormattingElements();
1412
+ p._appendElement(token, NS.HTML);
1413
+ p.framesetOk = false;
1414
+ }
1415
+
1416
+ function inputStartTagInBody(p, token) {
1417
+ p._reconstructActiveFormattingElements();
1418
+ p._appendElement(token, NS.HTML);
1419
+
1420
+ var inputType = Tokenizer.getTokenAttr(token, ATTRS.TYPE);
1421
+
1422
+ if (!inputType || inputType.toLowerCase() !== HIDDEN_INPUT_TYPE)
1423
+ p.framesetOk = false;
1424
+
1425
+ }
1426
+
1427
+ function paramStartTagInBody(p, token) {
1428
+ p._appendElement(token, NS.HTML);
1429
+ }
1430
+
1431
+ function hrStartTagInBody(p, token) {
1432
+ if (p.openElements.hasInButtonScope($.P))
1433
+ p._closePElement();
1434
+
1435
+ p._appendElement(token, NS.HTML);
1436
+ p.framesetOk = false;
1437
+ }
1438
+
1439
+ function imageStartTagInBody(p, token) {
1440
+ token.tagName = $.IMG;
1441
+ areaStartTagInBody(p, token);
1442
+ }
1443
+
1444
+ function isindexStartTagInBody(p, token) {
1445
+ if (!p.formElement || p.openElements.tmplCount > 0) {
1446
+ p._processFakeStartTagWithAttrs($.FORM, getSearchableIndexFormAttrs(token));
1447
+ p._processFakeStartTag($.HR);
1448
+ p._processFakeStartTag($.LABEL);
1449
+ p.treeAdapter.insertText(p.openElements.current, getSearchableIndexLabelText(token));
1450
+ p._processFakeStartTagWithAttrs($.INPUT, getSearchableIndexInputAttrs(token));
1451
+ p._processFakeEndTag($.LABEL);
1452
+ p._processFakeStartTag($.HR);
1453
+ p._processFakeEndTag($.FORM);
1454
+ }
1455
+ }
1456
+
1457
+ function textareaStartTagInBody(p, token) {
1458
+ p._insertElement(token, NS.HTML);
1459
+ //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move
1460
+ //on to the next one. (Newlines at the start of textarea elements are ignored as an authoring convenience.)
1461
+ p.skipNextNewLine = true;
1462
+ p.tokenizer.state = Tokenizer.MODE.RCDATA;
1463
+ p.originalInsertionMode = p.insertionMode;
1464
+ p.framesetOk = false;
1465
+ p.insertionMode = TEXT_MODE;
1466
+ }
1467
+
1468
+ function xmpStartTagInBody(p, token) {
1469
+ if (p.openElements.hasInButtonScope($.P))
1470
+ p._closePElement();
1471
+
1472
+ p._reconstructActiveFormattingElements();
1473
+ p.framesetOk = false;
1474
+ p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);
1475
+ }
1476
+
1477
+ function iframeStartTagInBody(p, token) {
1478
+ p.framesetOk = false;
1479
+ p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);
1480
+ }
1481
+
1482
+ //NOTE: here we assume that we always act as an user agent with enabled plugins, so we parse
1483
+ //<noembed> as a rawtext.
1484
+ function noembedStartTagInBody(p, token) {
1485
+ p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);
1486
+ }
1487
+
1488
+ function selectStartTagInBody(p, token) {
1489
+ p._reconstructActiveFormattingElements();
1490
+ p._insertElement(token, NS.HTML);
1491
+ p.framesetOk = false;
1492
+
1493
+ if (p.insertionMode === IN_TABLE_MODE || p.insertionMode === IN_CAPTION_MODE ||
1494
+ p.insertionMode === IN_TABLE_BODY_MODE || p.insertionMode === IN_ROW_MODE ||
1495
+ p.insertionMode === IN_CELL_MODE) {
1496
+ p.insertionMode = IN_SELECT_IN_TABLE_MODE;
1497
+ }
1498
+
1499
+ else
1500
+ p.insertionMode = IN_SELECT_MODE;
1501
+ }
1502
+
1503
+ function optgroupStartTagInBody(p, token) {
1504
+ if (p.openElements.currentTagName === $.OPTION)
1505
+ p._processFakeEndTag($.OPTION);
1506
+
1507
+ p._reconstructActiveFormattingElements();
1508
+ p._insertElement(token, NS.HTML);
1509
+ }
1510
+
1511
+ function rpStartTagInBody(p, token) {
1512
+ if (p.openElements.hasInScope($.RUBY))
1513
+ p.openElements.generateImpliedEndTags();
1514
+
1515
+ p._insertElement(token, NS.HTML);
1516
+ }
1517
+
1518
+ function menuitemStartTagInBody(p, token) {
1519
+ p._appendElement(token, NS.HTML);
1520
+ }
1521
+
1522
+ function mathStartTagInBody(p, token) {
1523
+ p._reconstructActiveFormattingElements();
1524
+
1525
+ ForeignContent.adjustTokenMathMLAttrs(token);
1526
+ ForeignContent.adjustTokenXMLAttrs(token);
1527
+
1528
+ if (token.selfClosing)
1529
+ p._appendElement(token, NS.MATHML);
1530
+ else
1531
+ p._insertElement(token, NS.MATHML);
1532
+ }
1533
+
1534
+ function svgStartTagInBody(p, token) {
1535
+ p._reconstructActiveFormattingElements();
1536
+
1537
+ ForeignContent.adjustTokenSVGAttrs(token);
1538
+ ForeignContent.adjustTokenXMLAttrs(token);
1539
+
1540
+ if (token.selfClosing)
1541
+ p._appendElement(token, NS.SVG);
1542
+ else
1543
+ p._insertElement(token, NS.SVG);
1544
+ }
1545
+
1546
+ function genericStartTagInBody(p, token) {
1547
+ p._reconstructActiveFormattingElements();
1548
+ p._insertElement(token, NS.HTML);
1549
+ }
1550
+
1551
+ //OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.
1552
+ //It's faster than using dictionary.
1553
+ function startTagInBody(p, token) {
1554
+ var tn = token.tagName;
1555
+
1556
+ switch (tn.length) {
1557
+ case 1:
1558
+ if (tn === $.I || tn === $.S || tn === $.B || tn === $.U)
1559
+ bStartTagInBody(p, token);
1560
+
1561
+ else if (tn === $.P)
1562
+ addressStartTagInBody(p, token);
1563
+
1564
+ else if (tn === $.A)
1565
+ aStartTagInBody(p, token);
1566
+
1567
+ else
1568
+ genericStartTagInBody(p, token);
1569
+
1570
+ break;
1571
+
1572
+ case 2:
1573
+ if (tn === $.DL || tn === $.OL || tn === $.UL)
1574
+ addressStartTagInBody(p, token);
1575
+
1576
+ else if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6)
1577
+ numberedHeaderStartTagInBody(p, token);
1578
+
1579
+ else if (tn === $.LI || tn === $.DD || tn === $.DT)
1580
+ listItemStartTagInBody(p, token);
1581
+
1582
+ else if (tn === $.EM || tn === $.TT)
1583
+ bStartTagInBody(p, token);
1584
+
1585
+ else if (tn === $.BR)
1586
+ areaStartTagInBody(p, token);
1587
+
1588
+ else if (tn === $.HR)
1589
+ hrStartTagInBody(p, token);
1590
+
1591
+ else if (tn === $.RP || tn === $.RT)
1592
+ rpStartTagInBody(p, token);
1593
+
1594
+ else if (tn !== $.TH && tn !== $.TD && tn !== $.TR)
1595
+ genericStartTagInBody(p, token);
1596
+
1597
+ break;
1598
+
1599
+ case 3:
1600
+ if (tn === $.DIV || tn === $.DIR || tn === $.NAV)
1601
+ addressStartTagInBody(p, token);
1602
+
1603
+ else if (tn === $.PRE)
1604
+ preStartTagInBody(p, token);
1605
+
1606
+ else if (tn === $.BIG)
1607
+ bStartTagInBody(p, token);
1608
+
1609
+ else if (tn === $.IMG || tn === $.WBR)
1610
+ areaStartTagInBody(p, token);
1611
+
1612
+ else if (tn === $.XMP)
1613
+ xmpStartTagInBody(p, token);
1614
+
1615
+ else if (tn === $.SVG)
1616
+ svgStartTagInBody(p, token);
1617
+
1618
+ else if (tn !== $.COL)
1619
+ genericStartTagInBody(p, token);
1620
+
1621
+ break;
1622
+
1623
+ case 4:
1624
+ if (tn === $.HTML)
1625
+ htmlStartTagInBody(p, token);
1626
+
1627
+ else if (tn === $.BASE || tn === $.LINK || tn === $.META)
1628
+ startTagInHead(p, token);
1629
+
1630
+ else if (tn === $.BODY)
1631
+ bodyStartTagInBody(p, token);
1632
+
1633
+ else if (tn === $.MAIN || tn === $.MENU)
1634
+ addressStartTagInBody(p, token);
1635
+
1636
+ else if (tn === $.FORM)
1637
+ formStartTagInBody(p, token);
1638
+
1639
+ else if (tn === $.CODE || tn === $.FONT)
1640
+ bStartTagInBody(p, token);
1641
+
1642
+ else if (tn === $.NOBR)
1643
+ nobrStartTagInBody(p, token);
1644
+
1645
+ else if (tn === $.AREA)
1646
+ areaStartTagInBody(p, token);
1647
+
1648
+ else if (tn === $.MATH)
1649
+ mathStartTagInBody(p, token);
1650
+
1651
+ else if (tn !== $.HEAD)
1652
+ genericStartTagInBody(p, token);
1653
+
1654
+ break;
1655
+
1656
+ case 5:
1657
+ if (tn === $.STYLE || tn === $.TITLE)
1658
+ startTagInHead(p, token);
1659
+
1660
+ else if (tn === $.ASIDE)
1661
+ addressStartTagInBody(p, token);
1662
+
1663
+ else if (tn === $.SMALL)
1664
+ bStartTagInBody(p, token);
1665
+
1666
+ else if (tn === $.TABLE)
1667
+ tableStartTagInBody(p, token);
1668
+
1669
+ else if (tn === $.EMBED)
1670
+ areaStartTagInBody(p, token);
1671
+
1672
+ else if (tn === $.INPUT)
1673
+ inputStartTagInBody(p, token);
1674
+
1675
+ else if (tn === $.PARAM || tn === $.TRACK)
1676
+ paramStartTagInBody(p, token);
1677
+
1678
+ else if (tn === $.IMAGE)
1679
+ imageStartTagInBody(p, token);
1680
+
1681
+ else if (tn !== $.FRAME && tn !== $.TBODY && tn !== $.TFOOT && tn !== $.THEAD)
1682
+ genericStartTagInBody(p, token);
1683
+
1684
+ break;
1685
+
1686
+ case 6:
1687
+ if (tn === $.SCRIPT)
1688
+ startTagInHead(p, token);
1689
+
1690
+ else if (tn === $.CENTER || tn === $.FIGURE || tn === $.FOOTER || tn === $.HEADER || tn === $.HGROUP)
1691
+ addressStartTagInBody(p, token);
1692
+
1693
+ else if (tn === $.BUTTON)
1694
+ buttonStartTagInBody(p, token);
1695
+
1696
+ else if (tn === $.STRIKE || tn === $.STRONG)
1697
+ bStartTagInBody(p, token);
1698
+
1699
+ else if (tn === $.APPLET || tn === $.OBJECT)
1700
+ appletStartTagInBody(p, token);
1701
+
1702
+ else if (tn === $.KEYGEN)
1703
+ areaStartTagInBody(p, token);
1704
+
1705
+ else if (tn === $.SOURCE)
1706
+ paramStartTagInBody(p, token);
1707
+
1708
+ else if (tn === $.IFRAME)
1709
+ iframeStartTagInBody(p, token);
1710
+
1711
+ else if (tn === $.SELECT)
1712
+ selectStartTagInBody(p, token);
1713
+
1714
+ else if (tn === $.OPTION)
1715
+ optgroupStartTagInBody(p, token);
1716
+
1717
+ else
1718
+ genericStartTagInBody(p, token);
1719
+
1720
+ break;
1721
+
1722
+ case 7:
1723
+ if (tn === $.BGSOUND || tn === $.COMMAND)
1724
+ startTagInHead(p, token);
1725
+
1726
+ else if (tn === $.DETAILS || tn === $.ADDRESS || tn === $.ARTICLE || tn === $.SECTION || tn === $.SUMMARY)
1727
+ addressStartTagInBody(p, token);
1728
+
1729
+ else if (tn === $.LISTING)
1730
+ preStartTagInBody(p, token);
1731
+
1732
+ else if (tn === $.MARQUEE)
1733
+ appletStartTagInBody(p, token);
1734
+
1735
+ else if (tn === $.ISINDEX)
1736
+ isindexStartTagInBody(p, token);
1737
+
1738
+ else if (tn === $.NOEMBED)
1739
+ noembedStartTagInBody(p, token);
1740
+
1741
+ else if (tn !== $.CAPTION)
1742
+ genericStartTagInBody(p, token);
1743
+
1744
+ break;
1745
+
1746
+ case 8:
1747
+ if (tn === $.BASEFONT || tn === $.MENUITEM)
1748
+ menuitemStartTagInBody(p, token);
1749
+
1750
+ else if (tn === $.FRAMESET)
1751
+ framesetStartTagInBody(p, token);
1752
+
1753
+ else if (tn === $.FIELDSET)
1754
+ addressStartTagInBody(p, token);
1755
+
1756
+ else if (tn === $.TEXTAREA)
1757
+ textareaStartTagInBody(p, token);
1758
+
1759
+ else if (tn === $.TEMPLATE)
1760
+ startTagInHead(p, token);
1761
+
1762
+ else if (tn === $.NOSCRIPT)
1763
+ noembedStartTagInBody(p, token);
1764
+
1765
+ else if (tn === $.OPTGROUP)
1766
+ optgroupStartTagInBody(p, token);
1767
+
1768
+ else if (tn !== $.COLGROUP)
1769
+ genericStartTagInBody(p, token);
1770
+
1771
+ break;
1772
+
1773
+ case 9:
1774
+ if (tn === $.PLAINTEXT)
1775
+ plaintextStartTagInBody(p, token);
1776
+
1777
+ else
1778
+ genericStartTagInBody(p, token);
1779
+
1780
+ break;
1781
+
1782
+ case 10:
1783
+ if (tn === $.BLOCKQUOTE || tn === $.FIGCAPTION)
1784
+ addressStartTagInBody(p, token);
1785
+
1786
+ else
1787
+ genericStartTagInBody(p, token);
1788
+
1789
+ break;
1790
+
1791
+ default:
1792
+ genericStartTagInBody(p, token);
1793
+ }
1794
+ }
1795
+
1796
+ function bodyEndTagInBody(p, token) {
1797
+ if (p.openElements.hasInScope($.BODY))
1798
+ p.insertionMode = AFTER_BODY_MODE;
1799
+
1800
+ else
1801
+ token.ignored = true;
1802
+ }
1803
+
1804
+ function htmlEndTagInBody(p, token) {
1805
+ var fakeToken = p._processFakeEndTag($.BODY);
1806
+
1807
+ if (!fakeToken.ignored)
1808
+ p._processToken(token);
1809
+ }
1810
+
1811
+ function addressEndTagInBody(p, token) {
1812
+ var tn = token.tagName;
1813
+
1814
+ if (p.openElements.hasInScope(tn)) {
1815
+ p.openElements.generateImpliedEndTags();
1816
+ p.openElements.popUntilTagNamePopped(tn);
1817
+ }
1818
+ }
1819
+
1820
+ function formEndTagInBody(p, token) {
1821
+ var inTemplate = p.openElements.tmplCount > 0,
1822
+ formElement = p.formElement;
1823
+
1824
+ if (!inTemplate)
1825
+ p.formElement = null;
1826
+
1827
+ if ((formElement || inTemplate) && p.openElements.hasInScope($.FORM)) {
1828
+ p.openElements.generateImpliedEndTags();
1829
+
1830
+ if (inTemplate)
1831
+ p.openElements.popUntilTagNamePopped($.FORM);
1832
+
1833
+ else
1834
+ p.openElements.remove(formElement);
1835
+ }
1836
+ }
1837
+
1838
+ function pEndTagInBody(p, token) {
1839
+ if (p.openElements.hasInButtonScope($.P)) {
1840
+ p.openElements.generateImpliedEndTagsWithExclusion($.P);
1841
+ p.openElements.popUntilTagNamePopped($.P);
1842
+ }
1843
+
1844
+ else {
1845
+ p._processFakeStartTag($.P);
1846
+ p._processToken(token);
1847
+ }
1848
+ }
1849
+
1850
+ function liEndTagInBody(p, token) {
1851
+ if (p.openElements.hasInListItemScope($.LI)) {
1852
+ p.openElements.generateImpliedEndTagsWithExclusion($.LI);
1853
+ p.openElements.popUntilTagNamePopped($.LI);
1854
+ }
1855
+ }
1856
+
1857
+ function ddEndTagInBody(p, token) {
1858
+ var tn = token.tagName;
1859
+
1860
+ if (p.openElements.hasInScope(tn)) {
1861
+ p.openElements.generateImpliedEndTagsWithExclusion(tn);
1862
+ p.openElements.popUntilTagNamePopped(tn);
1863
+ }
1864
+ }
1865
+
1866
+ function numberedHeaderEndTagInBody(p, token) {
1867
+ if (p.openElements.hasNumberedHeaderInScope()) {
1868
+ p.openElements.generateImpliedEndTags();
1869
+ p.openElements.popUntilNumberedHeaderPopped();
1870
+ }
1871
+ }
1872
+
1873
+ function appletEndTagInBody(p, token) {
1874
+ var tn = token.tagName;
1875
+
1876
+ if (p.openElements.hasInScope(tn)) {
1877
+ p.openElements.generateImpliedEndTags();
1878
+ p.openElements.popUntilTagNamePopped(tn);
1879
+ p.activeFormattingElements.clearToLastMarker();
1880
+ }
1881
+ }
1882
+
1883
+ function brEndTagInBody(p, token) {
1884
+ p._processFakeStartTag($.BR);
1885
+ }
1886
+
1887
+ function genericEndTagInBody(p, token) {
1888
+ var tn = token.tagName;
1889
+
1890
+ for (var i = p.openElements.stackTop; i > 0; i--) {
1891
+ var element = p.openElements.items[i];
1892
+
1893
+ if (p.treeAdapter.getTagName(element) === tn) {
1894
+ p.openElements.generateImpliedEndTagsWithExclusion(tn);
1895
+ p.openElements.popUntilElementPopped(element);
1896
+ break;
1897
+ }
1898
+
1899
+ if (p._isSpecialElement(element))
1900
+ break;
1901
+ }
1902
+ }
1903
+
1904
+ //OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.
1905
+ //It's faster than using dictionary.
1906
+ function endTagInBody(p, token) {
1907
+ var tn = token.tagName;
1908
+
1909
+ switch (tn.length) {
1910
+ case 1:
1911
+ if (tn === $.A || tn === $.B || tn === $.I || tn === $.S || tn == $.U)
1912
+ callAdoptionAgency(p, token);
1913
+
1914
+ else if (tn === $.P)
1915
+ pEndTagInBody(p, token);
1916
+
1917
+ else
1918
+ genericEndTagInBody(p, token);
1919
+
1920
+ break;
1921
+
1922
+ case 2:
1923
+ if (tn == $.DL || tn === $.UL || tn === $.OL)
1924
+ addressEndTagInBody(p, token);
1925
+
1926
+ else if (tn === $.LI)
1927
+ liEndTagInBody(p, token);
1928
+
1929
+ else if (tn === $.DD || tn === $.DT)
1930
+ ddEndTagInBody(p, token);
1931
+
1932
+ else if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6)
1933
+ numberedHeaderEndTagInBody(p, token);
1934
+
1935
+ else if (tn === $.BR)
1936
+ brEndTagInBody(p, token);
1937
+
1938
+ else if (tn === $.EM || tn === $.TT)
1939
+ callAdoptionAgency(p, token);
1940
+
1941
+ else
1942
+ genericEndTagInBody(p, token);
1943
+
1944
+ break;
1945
+
1946
+ case 3:
1947
+ if (tn === $.BIG)
1948
+ callAdoptionAgency(p, token);
1949
+
1950
+ else if (tn === $.DIR || tn === $.DIV || tn === $.NAV)
1951
+ addressEndTagInBody(p, token);
1952
+
1953
+ else
1954
+ genericEndTagInBody(p, token);
1955
+
1956
+ break;
1957
+
1958
+ case 4:
1959
+ if (tn === $.BODY)
1960
+ bodyEndTagInBody(p, token);
1961
+
1962
+ else if (tn === $.HTML)
1963
+ htmlEndTagInBody(p, token);
1964
+
1965
+ else if (tn === $.FORM)
1966
+ formEndTagInBody(p, token);
1967
+
1968
+ else if (tn === $.CODE || tn === $.FONT || tn === $.NOBR)
1969
+ callAdoptionAgency(p, token);
1970
+
1971
+ else if (tn === $.MAIN || tn === $.MENU)
1972
+ addressEndTagInBody(p, token);
1973
+
1974
+ else
1975
+ genericEndTagInBody(p, token);
1976
+
1977
+ break;
1978
+
1979
+ case 5:
1980
+ if (tn === $.ASIDE)
1981
+ addressEndTagInBody(p, token);
1982
+
1983
+ else if (tn === $.SMALL)
1984
+ callAdoptionAgency(p, token);
1985
+
1986
+ else
1987
+ genericEndTagInBody(p, token);
1988
+
1989
+ break;
1990
+
1991
+ case 6:
1992
+ if (tn === $.CENTER || tn === $.FIGURE || tn === $.FOOTER || tn === $.HEADER || tn === $.HGROUP)
1993
+ addressEndTagInBody(p, token);
1994
+
1995
+ else if (tn === $.APPLET || tn === $.OBJECT)
1996
+ appletEndTagInBody(p, token);
1997
+
1998
+ else if (tn == $.STRIKE || tn === $.STRONG)
1999
+ callAdoptionAgency(p, token);
2000
+
2001
+ else
2002
+ genericEndTagInBody(p, token);
2003
+
2004
+ break;
2005
+
2006
+ case 7:
2007
+ if (tn === $.ADDRESS || tn === $.ARTICLE || tn === $.DETAILS || tn === $.SECTION || tn === $.SUMMARY)
2008
+ addressEndTagInBody(p, token);
2009
+
2010
+ else if (tn === $.MARQUEE)
2011
+ appletEndTagInBody(p, token);
2012
+
2013
+ else
2014
+ genericEndTagInBody(p, token);
2015
+
2016
+ break;
2017
+
2018
+ case 8:
2019
+ if (tn === $.FIELDSET)
2020
+ addressEndTagInBody(p, token);
2021
+
2022
+ else if (tn === $.TEMPLATE)
2023
+ endTagInHead(p, token);
2024
+
2025
+ else
2026
+ genericEndTagInBody(p, token);
2027
+
2028
+ break;
2029
+
2030
+ case 10:
2031
+ if (tn === $.BLOCKQUOTE || tn === $.FIGCAPTION)
2032
+ addressEndTagInBody(p, token);
2033
+
2034
+ else
2035
+ genericEndTagInBody(p, token);
2036
+
2037
+ break;
2038
+
2039
+ default :
2040
+ genericEndTagInBody(p, token);
2041
+ }
2042
+ }
2043
+
2044
+ function eofInBody(p, token) {
2045
+ if (p.tmplInsertionModeStackTop > -1)
2046
+ eofInTemplate(p, token);
2047
+
2048
+ else
2049
+ p.stopped = true;
2050
+ }
2051
+
2052
+ //12.2.5.4.8 The "text" insertion mode
2053
+ //------------------------------------------------------------------
2054
+ function endTagInText(p, token) {
2055
+ if (!p.fragmentContext && p.scriptHandler && token.tagName === $.SCRIPT)
2056
+ p.scriptHandler(p.document, p.openElements.current);
2057
+
2058
+ p.openElements.pop();
2059
+ p.insertionMode = p.originalInsertionMode;
2060
+ }
2061
+
2062
+
2063
+ function eofInText(p, token) {
2064
+ p.openElements.pop();
2065
+ p.insertionMode = p.originalInsertionMode;
2066
+ p._processToken(token);
2067
+ }
2068
+
2069
+
2070
+ //12.2.5.4.9 The "in table" insertion mode
2071
+ //------------------------------------------------------------------
2072
+ function characterInTable(p, token) {
2073
+ var curTn = p.openElements.currentTagName;
2074
+
2075
+ if (curTn === $.TABLE || curTn === $.TBODY || curTn === $.TFOOT || curTn === $.THEAD || curTn === $.TR) {
2076
+ p.pendingCharacterTokens = [];
2077
+ p.hasNonWhitespacePendingCharacterToken = false;
2078
+ p.originalInsertionMode = p.insertionMode;
2079
+ p.insertionMode = IN_TABLE_TEXT_MODE;
2080
+ p._processToken(token);
2081
+ }
2082
+
2083
+ else
2084
+ tokenInTable(p, token);
2085
+ }
2086
+
2087
+ function captionStartTagInTable(p, token) {
2088
+ p.openElements.clearBackToTableContext();
2089
+ p.activeFormattingElements.insertMarker();
2090
+ p._insertElement(token, NS.HTML);
2091
+ p.insertionMode = IN_CAPTION_MODE;
2092
+ }
2093
+
2094
+ function colgroupStartTagInTable(p, token) {
2095
+ p.openElements.clearBackToTableContext();
2096
+ p._insertElement(token, NS.HTML);
2097
+ p.insertionMode = IN_COLUMN_GROUP_MODE;
2098
+ }
2099
+
2100
+ function colStartTagInTable(p, token) {
2101
+ p._processFakeStartTag($.COLGROUP);
2102
+ p._processToken(token);
2103
+ }
2104
+
2105
+ function tbodyStartTagInTable(p, token) {
2106
+ p.openElements.clearBackToTableContext();
2107
+ p._insertElement(token, NS.HTML);
2108
+ p.insertionMode = IN_TABLE_BODY_MODE;
2109
+ }
2110
+
2111
+ function tdStartTagInTable(p, token) {
2112
+ p._processFakeStartTag($.TBODY);
2113
+ p._processToken(token);
2114
+ }
2115
+
2116
+ function tableStartTagInTable(p, token) {
2117
+ var fakeToken = p._processFakeEndTag($.TABLE);
2118
+
2119
+ //NOTE: The fake end tag token here can only be ignored in the fragment case.
2120
+ if (!fakeToken.ignored)
2121
+ p._processToken(token);
2122
+ }
2123
+
2124
+ function inputStartTagInTable(p, token) {
2125
+ var inputType = Tokenizer.getTokenAttr(token, ATTRS.TYPE);
2126
+
2127
+ if (inputType && inputType.toLowerCase() === HIDDEN_INPUT_TYPE)
2128
+ p._appendElement(token, NS.HTML);
2129
+
2130
+ else
2131
+ tokenInTable(p, token);
2132
+ }
2133
+
2134
+ function formStartTagInTable(p, token) {
2135
+ if (!p.formElement && p.openElements.tmplCount === 0) {
2136
+ p._insertElement(token, NS.HTML);
2137
+ p.formElement = p.openElements.current;
2138
+ p.openElements.pop();
2139
+ }
2140
+ }
2141
+
2142
+ function startTagInTable(p, token) {
2143
+ var tn = token.tagName;
2144
+
2145
+ switch (tn.length) {
2146
+ case 2:
2147
+ if (tn === $.TD || tn === $.TH || tn === $.TR)
2148
+ tdStartTagInTable(p, token);
2149
+
2150
+ else
2151
+ tokenInTable(p, token);
2152
+
2153
+ break;
2154
+
2155
+ case 3:
2156
+ if (tn === $.COL)
2157
+ colStartTagInTable(p, token);
2158
+
2159
+ else
2160
+ tokenInTable(p, token);
2161
+
2162
+ break;
2163
+
2164
+ case 4:
2165
+ if (tn === $.FORM)
2166
+ formStartTagInTable(p, token);
2167
+
2168
+ else
2169
+ tokenInTable(p, token);
2170
+
2171
+ break;
2172
+
2173
+ case 5:
2174
+ if (tn === $.TABLE)
2175
+ tableStartTagInTable(p, token);
2176
+
2177
+ else if (tn === $.STYLE)
2178
+ startTagInHead(p, token);
2179
+
2180
+ else if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD)
2181
+ tbodyStartTagInTable(p, token);
2182
+
2183
+ else if (tn === $.INPUT)
2184
+ inputStartTagInTable(p, token);
2185
+
2186
+ else
2187
+ tokenInTable(p, token);
2188
+
2189
+ break;
2190
+
2191
+ case 6:
2192
+ if (tn === $.SCRIPT)
2193
+ startTagInHead(p, token);
2194
+
2195
+ else
2196
+ tokenInTable(p, token);
2197
+
2198
+ break;
2199
+
2200
+ case 7:
2201
+ if (tn === $.CAPTION)
2202
+ captionStartTagInTable(p, token);
2203
+
2204
+ else
2205
+ tokenInTable(p, token);
2206
+
2207
+ break;
2208
+
2209
+ case 8:
2210
+ if (tn === $.COLGROUP)
2211
+ colgroupStartTagInTable(p, token);
2212
+
2213
+ else if (tn === $.TEMPLATE)
2214
+ startTagInHead(p, token);
2215
+
2216
+ else
2217
+ tokenInTable(p, token);
2218
+
2219
+ break;
2220
+
2221
+ default:
2222
+ tokenInTable(p, token);
2223
+ }
2224
+
2225
+ }
2226
+
2227
+ function endTagInTable(p, token) {
2228
+ var tn = token.tagName;
2229
+
2230
+ if (tn === $.TABLE) {
2231
+ if (p.openElements.hasInTableScope($.TABLE)) {
2232
+ p.openElements.popUntilTagNamePopped($.TABLE);
2233
+ p._resetInsertionMode();
2234
+ }
2235
+
2236
+ else
2237
+ token.ignored = true;
2238
+ }
2239
+
2240
+ else if (tn === $.TEMPLATE)
2241
+ endTagInHead(p, token);
2242
+
2243
+ else if (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP && tn !== $.HTML &&
2244
+ tn !== $.TBODY && tn !== $.TD && tn !== $.TFOOT && tn !== $.TH && tn !== $.THEAD && tn !== $.TR) {
2245
+ tokenInTable(p, token);
2246
+ }
2247
+ }
2248
+
2249
+ function tokenInTable(p, token) {
2250
+ var savedFosterParentingState = p.fosterParentingEnabled;
2251
+
2252
+ p.fosterParentingEnabled = true;
2253
+ p._processTokenInBodyMode(token);
2254
+ p.fosterParentingEnabled = savedFosterParentingState;
2255
+ }
2256
+
2257
+
2258
+ //12.2.5.4.10 The "in table text" insertion mode
2259
+ //------------------------------------------------------------------
2260
+ function whitespaceCharacterInTableText(p, token) {
2261
+ p.pendingCharacterTokens.push(token);
2262
+ }
2263
+
2264
+ function characterInTableText(p, token) {
2265
+ p.pendingCharacterTokens.push(token);
2266
+ p.hasNonWhitespacePendingCharacterToken = true;
2267
+ }
2268
+
2269
+ function tokenInTableText(p, token) {
2270
+ if (p.hasNonWhitespacePendingCharacterToken) {
2271
+ for (var i = 0; i < p.pendingCharacterTokens.length; i++)
2272
+ tokenInTable(p, p.pendingCharacterTokens[i]);
2273
+ }
2274
+
2275
+ else {
2276
+ for (var i = 0; i < p.pendingCharacterTokens.length; i++)
2277
+ p._insertCharacters(p.pendingCharacterTokens[i]);
2278
+ }
2279
+
2280
+ p.insertionMode = p.originalInsertionMode;
2281
+ p._processToken(token);
2282
+ }
2283
+
2284
+
2285
+ //12.2.5.4.11 The "in caption" insertion mode
2286
+ //------------------------------------------------------------------
2287
+ function startTagInCaption(p, token) {
2288
+ var tn = token.tagName;
2289
+
2290
+ if (tn === $.CAPTION || tn === $.COL || tn === $.COLGROUP || tn === $.TBODY ||
2291
+ tn === $.TD || tn === $.TFOOT || tn === $.TH || tn === $.THEAD || tn === $.TR) {
2292
+ var fakeToken = p._processFakeEndTag($.CAPTION);
2293
+
2294
+ //NOTE: The fake end tag token here can only be ignored in the fragment case.
2295
+ if (!fakeToken.ignored)
2296
+ p._processToken(token);
2297
+ }
2298
+
2299
+ else
2300
+ startTagInBody(p, token);
2301
+ }
2302
+
2303
+ function endTagInCaption(p, token) {
2304
+ var tn = token.tagName;
2305
+
2306
+ if (tn === $.CAPTION) {
2307
+ if (p.openElements.hasInTableScope($.CAPTION)) {
2308
+ p.openElements.generateImpliedEndTags();
2309
+ p.openElements.popUntilTagNamePopped($.CAPTION);
2310
+ p.activeFormattingElements.clearToLastMarker();
2311
+ p.insertionMode = IN_TABLE_MODE;
2312
+ }
2313
+
2314
+ else
2315
+ token.ignored = true;
2316
+ }
2317
+
2318
+ else if (tn === $.TABLE) {
2319
+ var fakeToken = p._processFakeEndTag($.CAPTION);
2320
+
2321
+ //NOTE: The fake end tag token here can only be ignored in the fragment case.
2322
+ if (!fakeToken.ignored)
2323
+ p._processToken(token);
2324
+ }
2325
+
2326
+ else if (tn !== $.BODY && tn !== $.COL && tn !== $.COLGROUP && tn !== $.HTML && tn !== $.TBODY &&
2327
+ tn !== $.TD && tn !== $.TFOOT && tn !== $.TH && tn !== $.THEAD && tn !== $.TR) {
2328
+ endTagInBody(p, token);
2329
+ }
2330
+ }
2331
+
2332
+
2333
+ //12.2.5.4.12 The "in column group" insertion mode
2334
+ //------------------------------------------------------------------
2335
+ function startTagInColumnGroup(p, token) {
2336
+ var tn = token.tagName;
2337
+
2338
+ if (tn === $.HTML)
2339
+ startTagInBody(p, token);
2340
+
2341
+ else if (tn === $.COL)
2342
+ p._appendElement(token, NS.HTML);
2343
+
2344
+ else if (tn === $.TEMPLATE)
2345
+ startTagInHead(p, token);
2346
+
2347
+ else
2348
+ tokenInColumnGroup(p, token);
2349
+ }
2350
+
2351
+ function endTagInColumnGroup(p, token) {
2352
+ var tn = token.tagName;
2353
+
2354
+ if (tn === $.COLGROUP) {
2355
+ if (p.openElements.currentTagName !== $.COLGROUP)
2356
+ token.ignored = true;
2357
+
2358
+ else {
2359
+ p.openElements.pop();
2360
+ p.insertionMode = IN_TABLE_MODE;
2361
+ }
2362
+ }
2363
+
2364
+ else if (tn === $.TEMPLATE)
2365
+ endTagInHead(p, token);
2366
+
2367
+ else if (tn !== $.COL)
2368
+ tokenInColumnGroup(p, token);
2369
+ }
2370
+
2371
+ function tokenInColumnGroup(p, token) {
2372
+ var fakeToken = p._processFakeEndTag($.COLGROUP);
2373
+
2374
+ //NOTE: The fake end tag token here can only be ignored in the fragment case.
2375
+ if (!fakeToken.ignored)
2376
+ p._processToken(token);
2377
+ }
2378
+
2379
+ //12.2.5.4.13 The "in table body" insertion mode
2380
+ //------------------------------------------------------------------
2381
+ function startTagInTableBody(p, token) {
2382
+ var tn = token.tagName;
2383
+
2384
+ if (tn === $.TR) {
2385
+ p.openElements.clearBackToTableBodyContext();
2386
+ p._insertElement(token, NS.HTML);
2387
+ p.insertionMode = IN_ROW_MODE;
2388
+ }
2389
+
2390
+ else if (tn === $.TH || tn === $.TD) {
2391
+ p._processFakeStartTag($.TR);
2392
+ p._processToken(token);
2393
+ }
2394
+
2395
+ else if (tn === $.CAPTION || tn === $.COL || tn === $.COLGROUP ||
2396
+ tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {
2397
+
2398
+ if (p.openElements.hasTableBodyContextInTableScope()) {
2399
+ p.openElements.clearBackToTableBodyContext();
2400
+ p._processFakeEndTag(p.openElements.currentTagName);
2401
+ p._processToken(token);
2402
+ }
2403
+ }
2404
+
2405
+ else
2406
+ startTagInTable(p, token);
2407
+ }
2408
+
2409
+ function endTagInTableBody(p, token) {
2410
+ var tn = token.tagName;
2411
+
2412
+ if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {
2413
+ if (p.openElements.hasInTableScope(tn)) {
2414
+ p.openElements.clearBackToTableBodyContext();
2415
+ p.openElements.pop();
2416
+ p.insertionMode = IN_TABLE_MODE;
2417
+ }
2418
+ }
2419
+
2420
+ else if (tn === $.TABLE) {
2421
+ if (p.openElements.hasTableBodyContextInTableScope()) {
2422
+ p.openElements.clearBackToTableBodyContext();
2423
+ p._processFakeEndTag(p.openElements.currentTagName);
2424
+ p._processToken(token);
2425
+ }
2426
+ }
2427
+
2428
+ else if (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP ||
2429
+ tn !== $.HTML && tn !== $.TD && tn !== $.TH && tn !== $.TR) {
2430
+ endTagInTable(p, token);
2431
+ }
2432
+ }
2433
+
2434
+ //12.2.5.4.14 The "in row" insertion mode
2435
+ //------------------------------------------------------------------
2436
+ function startTagInRow(p, token) {
2437
+ var tn = token.tagName;
2438
+
2439
+ if (tn === $.TH || tn === $.TD) {
2440
+ p.openElements.clearBackToTableRowContext();
2441
+ p._insertElement(token, NS.HTML);
2442
+ p.insertionMode = IN_CELL_MODE;
2443
+ p.activeFormattingElements.insertMarker();
2444
+ }
2445
+
2446
+ else if (tn === $.CAPTION || tn === $.COL || tn === $.COLGROUP || tn === $.TBODY ||
2447
+ tn === $.TFOOT || tn === $.THEAD || tn === $.TR) {
2448
+ var fakeToken = p._processFakeEndTag($.TR);
2449
+
2450
+ //NOTE: The fake end tag token here can only be ignored in the fragment case.
2451
+ if (!fakeToken.ignored)
2452
+ p._processToken(token);
2453
+ }
2454
+
2455
+ else
2456
+ startTagInTable(p, token);
2457
+ }
2458
+
2459
+ function endTagInRow(p, token) {
2460
+ var tn = token.tagName;
2461
+
2462
+ if (tn === $.TR) {
2463
+ if (p.openElements.hasInTableScope($.TR)) {
2464
+ p.openElements.clearBackToTableRowContext();
2465
+ p.openElements.pop();
2466
+ p.insertionMode = IN_TABLE_BODY_MODE;
2467
+ }
2468
+
2469
+ else
2470
+ token.ignored = true;
2471
+ }
2472
+
2473
+ else if (tn === $.TABLE) {
2474
+ var fakeToken = p._processFakeEndTag($.TR);
2475
+
2476
+ //NOTE: The fake end tag token here can only be ignored in the fragment case.
2477
+ if (!fakeToken.ignored)
2478
+ p._processToken(token);
2479
+ }
2480
+
2481
+ else if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {
2482
+ if (p.openElements.hasInTableScope(tn)) {
2483
+ p._processFakeEndTag($.TR);
2484
+ p._processToken(token);
2485
+ }
2486
+ }
2487
+
2488
+ else if (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP ||
2489
+ tn !== $.HTML && tn !== $.TD && tn !== $.TH) {
2490
+ endTagInTable(p, token);
2491
+ }
2492
+ }
2493
+
2494
+
2495
+ //12.2.5.4.15 The "in cell" insertion mode
2496
+ //------------------------------------------------------------------
2497
+ function startTagInCell(p, token) {
2498
+ var tn = token.tagName;
2499
+
2500
+ if (tn === $.CAPTION || tn === $.COL || tn === $.COLGROUP || tn === $.TBODY ||
2501
+ tn === $.TD || tn === $.TFOOT || tn === $.TH || tn === $.THEAD || tn === $.TR) {
2502
+
2503
+ if (p.openElements.hasInTableScope($.TD) || p.openElements.hasInTableScope($.TH)) {
2504
+ p._closeTableCell();
2505
+ p._processToken(token);
2506
+ }
2507
+ }
2508
+
2509
+ else
2510
+ startTagInBody(p, token);
2511
+ }
2512
+
2513
+ function endTagInCell(p, token) {
2514
+ var tn = token.tagName;
2515
+
2516
+ if (tn === $.TD || tn === $.TH) {
2517
+ if (p.openElements.hasInTableScope(tn)) {
2518
+ p.openElements.generateImpliedEndTags();
2519
+ p.openElements.popUntilTagNamePopped(tn);
2520
+ p.activeFormattingElements.clearToLastMarker();
2521
+ p.insertionMode = IN_ROW_MODE;
2522
+ }
2523
+ }
2524
+
2525
+ else if (tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD || tn === $.TR) {
2526
+ if (p.openElements.hasInTableScope(tn)) {
2527
+ p._closeTableCell();
2528
+ p._processToken(token);
2529
+ }
2530
+ }
2531
+
2532
+ else if (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP && tn !== $.HTML)
2533
+ endTagInBody(p, token);
2534
+ }
2535
+
2536
+ //12.2.5.4.16 The "in select" insertion mode
2537
+ //------------------------------------------------------------------
2538
+ function startTagInSelect(p, token) {
2539
+ var tn = token.tagName;
2540
+
2541
+ if (tn === $.HTML)
2542
+ startTagInBody(p, token);
2543
+
2544
+ else if (tn === $.OPTION) {
2545
+ if (p.openElements.currentTagName === $.OPTION)
2546
+ p._processFakeEndTag($.OPTION);
2547
+
2548
+ p._insertElement(token, NS.HTML);
2549
+ }
2550
+
2551
+ else if (tn === $.OPTGROUP) {
2552
+ if (p.openElements.currentTagName === $.OPTION)
2553
+ p._processFakeEndTag($.OPTION);
2554
+
2555
+ if (p.openElements.currentTagName === $.OPTGROUP)
2556
+ p._processFakeEndTag($.OPTGROUP);
2557
+
2558
+ p._insertElement(token, NS.HTML);
2559
+ }
2560
+
2561
+ else if (tn === $.SELECT)
2562
+ p._processFakeEndTag($.SELECT);
2563
+
2564
+ else if (tn === $.INPUT || tn === $.KEYGEN || tn === $.TEXTAREA) {
2565
+ if (p.openElements.hasInSelectScope($.SELECT)) {
2566
+ p._processFakeEndTag($.SELECT);
2567
+ p._processToken(token);
2568
+ }
2569
+ }
2570
+
2571
+ else if (tn === $.SCRIPT || tn === $.TEMPLATE)
2572
+ startTagInHead(p, token);
2573
+ }
2574
+
2575
+ function endTagInSelect(p, token) {
2576
+ var tn = token.tagName;
2577
+
2578
+ if (tn === $.OPTGROUP) {
2579
+ var prevOpenElement = p.openElements.items[p.openElements.stackTop - 1],
2580
+ prevOpenElementTn = prevOpenElement && p.treeAdapter.getTagName(prevOpenElement);
2581
+
2582
+ if (p.openElements.currentTagName === $.OPTION && prevOpenElementTn === $.OPTGROUP)
2583
+ p._processFakeEndTag($.OPTION);
2584
+
2585
+ if (p.openElements.currentTagName === $.OPTGROUP)
2586
+ p.openElements.pop();
2587
+ }
2588
+
2589
+ else if (tn === $.OPTION) {
2590
+ if (p.openElements.currentTagName === $.OPTION)
2591
+ p.openElements.pop();
2592
+ }
2593
+
2594
+ else if (tn === $.SELECT && p.openElements.hasInSelectScope($.SELECT)) {
2595
+ p.openElements.popUntilTagNamePopped($.SELECT);
2596
+ p._resetInsertionMode();
2597
+ }
2598
+
2599
+ else if (tn === $.TEMPLATE)
2600
+ endTagInHead(p, token);
2601
+ }
2602
+
2603
+ //12.2.5.4.17 The "in select in table" insertion mode
2604
+ //------------------------------------------------------------------
2605
+ function startTagInSelectInTable(p, token) {
2606
+ var tn = token.tagName;
2607
+
2608
+ if (tn === $.CAPTION || tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT ||
2609
+ tn === $.THEAD || tn === $.TR || tn === $.TD || tn === $.TH) {
2610
+ p._processFakeEndTag($.SELECT);
2611
+ p._processToken(token);
2612
+ }
2613
+
2614
+ else
2615
+ startTagInSelect(p, token);
2616
+ }
2617
+
2618
+ function endTagInSelectInTable(p, token) {
2619
+ var tn = token.tagName;
2620
+
2621
+ if (tn === $.CAPTION || tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT ||
2622
+ tn === $.THEAD || tn === $.TR || tn === $.TD || tn === $.TH) {
2623
+ if (p.openElements.hasInTableScope(tn)) {
2624
+ p._processFakeEndTag($.SELECT);
2625
+ p._processToken(token);
2626
+ }
2627
+ }
2628
+
2629
+ else
2630
+ endTagInSelect(p, token);
2631
+ }
2632
+
2633
+ //12.2.5.4.18 The "in template" insertion mode
2634
+ //------------------------------------------------------------------
2635
+ function startTagInTemplate(p, token) {
2636
+ var tn = token.tagName;
2637
+
2638
+ if (tn === $.BASE || tn === $.BASEFONT || tn === $.BGSOUND || tn === $.LINK || tn === $.META ||
2639
+ tn === $.NOFRAMES || tn === $.SCRIPT || tn === $.STYLE || tn === $.TEMPLATE || tn === $.TITLE) {
2640
+ startTagInHead(p, token);
2641
+ }
2642
+
2643
+ else {
2644
+ var newInsertionMode = TEMPLATE_INSERTION_MODE_SWITCH_MAP[tn] || IN_BODY_MODE;
2645
+
2646
+ p._popTmplInsertionMode();
2647
+ p._pushTmplInsertionMode(newInsertionMode);
2648
+ p.insertionMode = newInsertionMode;
2649
+ p._processToken(token);
2650
+ }
2651
+ }
2652
+
2653
+ function endTagInTemplate(p, token) {
2654
+ if (token.tagName === $.TEMPLATE)
2655
+ endTagInHead(p, token);
2656
+ }
2657
+
2658
+ function eofInTemplate(p, token) {
2659
+ if (p.openElements.tmplCount > 0) {
2660
+ p.openElements.popUntilTemplatePopped();
2661
+ p.activeFormattingElements.clearToLastMarker();
2662
+ p._popTmplInsertionMode();
2663
+ p._resetInsertionMode();
2664
+ p._processToken(token);
2665
+ }
2666
+
2667
+ else
2668
+ p.stopped = true;
2669
+ }
2670
+
2671
+
2672
+ //12.2.5.4.19 The "after body" insertion mode
2673
+ //------------------------------------------------------------------
2674
+ function startTagAfterBody(p, token) {
2675
+ if (token.tagName === $.HTML)
2676
+ startTagInBody(p, token);
2677
+
2678
+ else
2679
+ tokenAfterBody(p, token);
2680
+ }
2681
+
2682
+ function endTagAfterBody(p, token) {
2683
+ if (token.tagName === $.HTML) {
2684
+ if (!p.fragmentContext)
2685
+ p.insertionMode = AFTER_AFTER_BODY_MODE;
2686
+ }
2687
+
2688
+ else
2689
+ tokenAfterBody(p, token);
2690
+ }
2691
+
2692
+ function tokenAfterBody(p, token) {
2693
+ p.insertionMode = IN_BODY_MODE;
2694
+ p._processToken(token);
2695
+ }
2696
+
2697
+ //12.2.5.4.20 The "in frameset" insertion mode
2698
+ //------------------------------------------------------------------
2699
+ function startTagInFrameset(p, token) {
2700
+ var tn = token.tagName;
2701
+
2702
+ if (tn === $.HTML)
2703
+ startTagInBody(p, token);
2704
+
2705
+ else if (tn === $.FRAMESET)
2706
+ p._insertElement(token, NS.HTML);
2707
+
2708
+ else if (tn === $.FRAME)
2709
+ p._appendElement(token, NS.HTML);
2710
+
2711
+ else if (tn === $.NOFRAMES)
2712
+ startTagInHead(p, token);
2713
+ }
2714
+
2715
+ function endTagInFrameset(p, token) {
2716
+ if (token.tagName === $.FRAMESET && !p.openElements.isRootHtmlElementCurrent()) {
2717
+ p.openElements.pop();
2718
+
2719
+ if (!p.fragmentContext && p.openElements.currentTagName !== $.FRAMESET)
2720
+ p.insertionMode = AFTER_FRAMESET_MODE;
2721
+ }
2722
+ }
2723
+
2724
+ //12.2.5.4.21 The "after frameset" insertion mode
2725
+ //------------------------------------------------------------------
2726
+ function startTagAfterFrameset(p, token) {
2727
+ var tn = token.tagName;
2728
+
2729
+ if (tn === $.HTML)
2730
+ startTagInBody(p, token);
2731
+
2732
+ else if (tn === $.NOFRAMES)
2733
+ startTagInHead(p, token);
2734
+ }
2735
+
2736
+ function endTagAfterFrameset(p, token) {
2737
+ if (token.tagName === $.HTML)
2738
+ p.insertionMode = AFTER_AFTER_FRAMESET_MODE;
2739
+ }
2740
+
2741
+ //12.2.5.4.22 The "after after body" insertion mode
2742
+ //------------------------------------------------------------------
2743
+ function startTagAfterAfterBody(p, token) {
2744
+ if (token.tagName === $.HTML)
2745
+ startTagInBody(p, token);
2746
+
2747
+ else
2748
+ tokenAfterAfterBody(p, token);
2749
+ }
2750
+
2751
+ function tokenAfterAfterBody(p, token) {
2752
+ p.insertionMode = IN_BODY_MODE;
2753
+ p._processToken(token);
2754
+ }
2755
+
2756
+ //12.2.5.4.23 The "after after frameset" insertion mode
2757
+ //------------------------------------------------------------------
2758
+ function startTagAfterAfterFrameset(p, token) {
2759
+ var tn = token.tagName;
2760
+
2761
+ if (tn === $.HTML)
2762
+ startTagInBody(p, token);
2763
+
2764
+ else if (tn === $.NOFRAMES)
2765
+ startTagInHead(p, token);
2766
+ }
2767
+
2768
+
2769
+ //12.2.5.5 The rules for parsing tokens in foreign content
2770
+ //------------------------------------------------------------------
2771
+ function nullCharacterInForeignContent(p, token) {
2772
+ token.chars = UNICODE.REPLACEMENT_CHARACTER;
2773
+ p._insertCharacters(token);
2774
+ }
2775
+
2776
+ function characterInForeignContent(p, token) {
2777
+ p._insertCharacters(token);
2778
+ p.framesetOk = false;
2779
+ }
2780
+
2781
+ function startTagInForeignContent(p, token) {
2782
+ if (ForeignContent.causesExit(token) && !p.fragmentContext) {
2783
+ while (p.treeAdapter.getNamespaceURI(p.openElements.current) !== NS.HTML &&
2784
+ (!p._isMathMLTextIntegrationPoint(p.openElements.current)) &&
2785
+ (!p._isHtmlIntegrationPoint(p.openElements.current))) {
2786
+ p.openElements.pop();
2787
+ }
2788
+
2789
+ p._processToken(token);
2790
+ }
2791
+
2792
+ else {
2793
+ var current = p._getAdjustedCurrentElement(),
2794
+ currentNs = p.treeAdapter.getNamespaceURI(current);
2795
+
2796
+ if (currentNs === NS.MATHML)
2797
+ ForeignContent.adjustTokenMathMLAttrs(token);
2798
+
2799
+ else if (currentNs === NS.SVG) {
2800
+ ForeignContent.adjustTokenSVGTagName(token);
2801
+ ForeignContent.adjustTokenSVGAttrs(token);
2802
+ }
2803
+
2804
+ ForeignContent.adjustTokenXMLAttrs(token);
2805
+
2806
+ if (token.selfClosing)
2807
+ p._appendElement(token, currentNs);
2808
+ else
2809
+ p._insertElement(token, currentNs);
2810
+ }
2811
+ }
2812
+
2813
+ function endTagInForeignContent(p, token) {
2814
+ for (var i = p.openElements.stackTop; i > 0; i--) {
2815
+ var element = p.openElements.items[i];
2816
+
2817
+ if (p.treeAdapter.getNamespaceURI(element) === NS.HTML) {
2818
+ p._processToken(token);
2819
+ break;
2820
+ }
2821
+
2822
+ if (p.treeAdapter.getTagName(element).toLowerCase() === token.tagName) {
2823
+ p.openElements.popUntilElementPopped(element);
2824
+ break;
2825
+ }
2826
+ }
2827
+ }