cesium 1.18.0 → 1.23.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2692) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/Cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml +2 -3
  3. data/app/assets/javascripts/Cesium/Assets/approximateTerrainHeights.json +1 -0
  4. data/app/assets/javascripts/Cesium/Cesium.js +26 -7
  5. data/app/assets/javascripts/Cesium/Core/ArcGisImageServerTerrainProvider.js +2 -2
  6. data/app/assets/javascripts/Cesium/Core/AssociativeArray.js +1 -1
  7. data/app/assets/javascripts/Cesium/Core/AttributeCompression.js +1 -1
  8. data/app/assets/javascripts/Cesium/Core/AxisAlignedBoundingBox.js +1 -1
  9. data/app/assets/javascripts/Cesium/Core/BingMapsApi.js +19 -3
  10. data/app/assets/javascripts/Cesium/Core/BoundingRectangle.js +60 -1
  11. data/app/assets/javascripts/Cesium/Core/BoundingSphere.js +1 -1
  12. data/app/assets/javascripts/Cesium/Core/BoxGeometry.js +7 -38
  13. data/app/assets/javascripts/Cesium/Core/BoxOutlineGeometry.js +6 -2
  14. data/app/assets/javascripts/Cesium/Core/Cartesian2.js +56 -1
  15. data/app/assets/javascripts/Cesium/Core/Cartesian3.js +125 -39
  16. data/app/assets/javascripts/Cesium/Core/Cartesian4.js +56 -1
  17. data/app/assets/javascripts/Cesium/Core/Cartographic.js +1 -1
  18. data/app/assets/javascripts/Cesium/Core/CatmullRomSpline.js +1 -1
  19. data/app/assets/javascripts/Cesium/Core/CesiumTerrainProvider.js +3 -3
  20. data/app/assets/javascripts/Cesium/Core/CircleGeometry.js +15 -5
  21. data/app/assets/javascripts/Cesium/Core/CircleOutlineGeometry.js +2 -5
  22. data/app/assets/javascripts/Cesium/Core/Clock.js +177 -73
  23. data/app/assets/javascripts/Cesium/Core/ClockRange.js +1 -1
  24. data/app/assets/javascripts/Cesium/Core/ClockStep.js +1 -1
  25. data/app/assets/javascripts/Cesium/Core/Color.js +238 -20
  26. data/app/assets/javascripts/Cesium/Core/ColorGeometryInstanceAttribute.js +1 -1
  27. data/app/assets/javascripts/Cesium/Core/ComponentDatatype.js +1 -1
  28. data/app/assets/javascripts/Cesium/Core/CornerType.js +1 -1
  29. data/app/assets/javascripts/Cesium/Core/CorridorGeometry.js +154 -11
  30. data/app/assets/javascripts/Cesium/Core/CorridorGeometryLibrary.js +1 -26
  31. data/app/assets/javascripts/Cesium/Core/CorridorOutlineGeometry.js +13 -10
  32. data/app/assets/javascripts/Cesium/Core/Credit.js +1 -1
  33. data/app/assets/javascripts/Cesium/Core/CubicRealPolynomial.js +1 -1
  34. data/app/assets/javascripts/Cesium/Core/CylinderGeometry.js +15 -14
  35. data/app/assets/javascripts/Cesium/Core/CylinderGeometryLibrary.js +1 -1
  36. data/app/assets/javascripts/Cesium/Core/CylinderOutlineGeometry.js +15 -14
  37. data/app/assets/javascripts/Cesium/Core/DefaultProxy.js +1 -1
  38. data/app/assets/javascripts/Cesium/Core/DeveloperError.js +7 -1
  39. data/app/assets/javascripts/Cesium/Core/EarthOrientationParameters.js +1 -1
  40. data/app/assets/javascripts/Cesium/Core/EarthOrientationParametersSample.js +1 -1
  41. data/app/assets/javascripts/Cesium/Core/EasingFunction.js +1 -1
  42. data/app/assets/javascripts/Cesium/Core/EllipseGeometry.js +75 -12
  43. data/app/assets/javascripts/Cesium/Core/EllipseGeometryLibrary.js +1 -1
  44. data/app/assets/javascripts/Cesium/Core/EllipseOutlineGeometry.js +11 -13
  45. data/app/assets/javascripts/Cesium/Core/Ellipsoid.js +1 -1
  46. data/app/assets/javascripts/Cesium/Core/EllipsoidGeodesic.js +1 -1
  47. data/app/assets/javascripts/Cesium/Core/EllipsoidGeometry.js +30 -7
  48. data/app/assets/javascripts/Cesium/Core/EllipsoidOutlineGeometry.js +8 -3
  49. data/app/assets/javascripts/Cesium/Core/EllipsoidTangentPlane.js +1 -1
  50. data/app/assets/javascripts/Cesium/Core/EllipsoidTerrainProvider.js +1 -1
  51. data/app/assets/javascripts/Cesium/Core/EllipsoidalOccluder.js +1 -43
  52. data/app/assets/javascripts/Cesium/Core/EncodedCartesian3.js +1 -1
  53. data/app/assets/javascripts/Cesium/Core/Event.js +1 -1
  54. data/app/assets/javascripts/Cesium/Core/EventHelper.js +1 -1
  55. data/app/assets/javascripts/Cesium/Core/ExtrapolationType.js +1 -1
  56. data/app/assets/javascripts/Cesium/Core/FeatureDetection.js +1 -1
  57. data/app/assets/javascripts/Cesium/Core/Fullscreen.js +9 -9
  58. data/app/assets/javascripts/Cesium/Core/GeographicProjection.js +1 -1
  59. data/app/assets/javascripts/Cesium/Core/GeographicTilingScheme.js +1 -1
  60. data/app/assets/javascripts/Cesium/Core/Geometry.js +1 -1
  61. data/app/assets/javascripts/Cesium/Core/GeometryAttribute.js +1 -1
  62. data/app/assets/javascripts/Cesium/Core/GeometryAttributes.js +1 -1
  63. data/app/assets/javascripts/Cesium/Core/GeometryInstance.js +1 -1
  64. data/app/assets/javascripts/Cesium/Core/GeometryInstanceAttribute.js +1 -1
  65. data/app/assets/javascripts/Cesium/Core/GeometryPipeline.js +94 -32
  66. data/app/assets/javascripts/Cesium/Core/GeometryType.js +1 -1
  67. data/app/assets/javascripts/Cesium/Core/GregorianDate.js +1 -1
  68. data/app/assets/javascripts/Cesium/Core/HeadingPitchRange.js +1 -1
  69. data/app/assets/javascripts/Cesium/Core/HeightmapTerrainData.js +19 -15
  70. data/app/assets/javascripts/Cesium/Core/HeightmapTessellator.js +2 -2
  71. data/app/assets/javascripts/Cesium/Core/HermitePolynomialApproximation.js +1 -1
  72. data/app/assets/javascripts/Cesium/Core/HermiteSpline.js +1 -1
  73. data/app/assets/javascripts/Cesium/Core/Iau2000Orientation.js +1 -1
  74. data/app/assets/javascripts/Cesium/Core/Iau2006XysData.js +1 -1
  75. data/app/assets/javascripts/Cesium/Core/Iau2006XysSample.js +1 -1
  76. data/app/assets/javascripts/Cesium/Core/IauOrientationAxes.js +1 -1
  77. data/app/assets/javascripts/Cesium/Core/IauOrientationParameters.js +1 -1
  78. data/app/assets/javascripts/Cesium/Core/IndexDatatype.js +1 -1
  79. data/app/assets/javascripts/Cesium/Core/InterpolationAlgorithm.js +1 -1
  80. data/app/assets/javascripts/Cesium/Core/Intersect.js +1 -1
  81. data/app/assets/javascripts/Cesium/Core/IntersectionTests.js +19 -6
  82. data/app/assets/javascripts/Cesium/Core/Intersections2D.js +1 -1
  83. data/app/assets/javascripts/Cesium/Core/Interval.js +1 -1
  84. data/app/assets/javascripts/Cesium/Core/Iso8601.js +1 -1
  85. data/app/assets/javascripts/Cesium/Core/JulianDate.js +3 -3
  86. data/app/assets/javascripts/Cesium/Core/KeyboardEventModifier.js +1 -1
  87. data/app/assets/javascripts/Cesium/Core/LagrangePolynomialApproximation.js +1 -1
  88. data/app/assets/javascripts/Cesium/Core/LeapSecond.js +1 -1
  89. data/app/assets/javascripts/Cesium/Core/LinearApproximation.js +1 -1
  90. data/app/assets/javascripts/Cesium/Core/LinearSpline.js +1 -1
  91. data/app/assets/javascripts/Cesium/Core/MapProjection.js +1 -1
  92. data/app/assets/javascripts/Cesium/Core/MapboxApi.js +1 -1
  93. data/app/assets/javascripts/Cesium/Core/Math.js +1 -1
  94. data/app/assets/javascripts/Cesium/Core/Matrix2.js +17 -1
  95. data/app/assets/javascripts/Cesium/Core/Matrix3.js +17 -1
  96. data/app/assets/javascripts/Cesium/Core/Matrix4.js +103 -40
  97. data/app/assets/javascripts/Cesium/Core/NearFarScalar.js +1 -1
  98. data/app/assets/javascripts/Cesium/Core/Occluder.js +1 -1
  99. data/app/assets/javascripts/Cesium/Core/OrientedBoundingBox.js +33 -17
  100. data/app/assets/javascripts/Cesium/Core/Packable.js +1 -1
  101. data/app/assets/javascripts/Cesium/Core/PackableForInterpolation.js +1 -1
  102. data/app/assets/javascripts/Cesium/Core/PinBuilder.js +1 -1
  103. data/app/assets/javascripts/Cesium/Core/PixelFormat.js +1 -1
  104. data/app/assets/javascripts/Cesium/Core/Plane.js +1 -1
  105. data/app/assets/javascripts/Cesium/Core/PointGeometry.js +1 -1
  106. data/app/assets/javascripts/Cesium/Core/PolygonGeometry.js +291 -114
  107. data/app/assets/javascripts/Cesium/Core/PolygonGeometryLibrary.js +67 -26
  108. data/app/assets/javascripts/Cesium/Core/PolygonHierarchy.js +1 -1
  109. data/app/assets/javascripts/Cesium/Core/PolygonOutlineGeometry.js +30 -23
  110. data/app/assets/javascripts/Cesium/Core/PolygonPipeline.js +15 -759
  111. data/app/assets/javascripts/Cesium/Core/PolylineGeometry.js +6 -4
  112. data/app/assets/javascripts/Cesium/Core/PolylinePipeline.js +2 -59
  113. data/app/assets/javascripts/Cesium/Core/PolylineVolumeGeometry.js +4 -4
  114. data/app/assets/javascripts/Cesium/Core/PolylineVolumeGeometryLibrary.js +1 -1
  115. data/app/assets/javascripts/Cesium/Core/PolylineVolumeOutlineGeometry.js +4 -4
  116. data/app/assets/javascripts/Cesium/Core/PrimitiveType.js +1 -1
  117. data/app/assets/javascripts/Cesium/Core/QuadraticRealPolynomial.js +1 -1
  118. data/app/assets/javascripts/Cesium/Core/QuantizedMeshTerrainData.js +8 -4
  119. data/app/assets/javascripts/Cesium/Core/QuarticRealPolynomial.js +1 -1
  120. data/app/assets/javascripts/Cesium/Core/Quaternion.js +1 -1
  121. data/app/assets/javascripts/Cesium/Core/QuaternionSpline.js +1 -1
  122. data/app/assets/javascripts/Cesium/Core/Queue.js +1 -1
  123. data/app/assets/javascripts/Cesium/Core/Ray.js +1 -1
  124. data/app/assets/javascripts/Cesium/Core/Rectangle.js +58 -1
  125. data/app/assets/javascripts/Cesium/Core/RectangleGeometry.js +68 -10
  126. data/app/assets/javascripts/Cesium/Core/RectangleGeometryLibrary.js +1 -1
  127. data/app/assets/javascripts/Cesium/Core/RectangleOutlineGeometry.js +10 -7
  128. data/app/assets/javascripts/Cesium/Core/ReferenceFrame.js +1 -1
  129. data/app/assets/javascripts/Cesium/Core/RequestErrorEvent.js +1 -1
  130. data/app/assets/javascripts/Cesium/Core/RuntimeError.js +8 -1
  131. data/app/assets/javascripts/Cesium/Core/ScreenSpaceEventHandler.js +32 -11
  132. data/app/assets/javascripts/Cesium/Core/ScreenSpaceEventType.js +1 -1
  133. data/app/assets/javascripts/Cesium/Core/ShowGeometryInstanceAttribute.js +1 -2
  134. data/app/assets/javascripts/Cesium/Core/Simon1994PlanetaryPositions.js +1 -1
  135. data/app/assets/javascripts/Cesium/Core/SimplePolylineGeometry.js +1 -1
  136. data/app/assets/javascripts/Cesium/Core/SphereGeometry.js +1 -1
  137. data/app/assets/javascripts/Cesium/Core/SphereOutlineGeometry.js +1 -1
  138. data/app/assets/javascripts/Cesium/Core/Spherical.js +1 -1
  139. data/app/assets/javascripts/Cesium/Core/Spline.js +1 -1
  140. data/app/assets/javascripts/Cesium/Core/TaskProcessor.js +1 -1
  141. data/app/assets/javascripts/Cesium/Core/TerrainData.js +3 -1
  142. data/app/assets/javascripts/Cesium/Core/TerrainEncoding.js +1 -1
  143. data/app/assets/javascripts/Cesium/Core/TerrainMesh.js +8 -2
  144. data/app/assets/javascripts/Cesium/Core/TerrainProvider.js +1 -1
  145. data/app/assets/javascripts/Cesium/Core/TerrainQuantization.js +1 -1
  146. data/app/assets/javascripts/Cesium/Core/TileProviderError.js +1 -1
  147. data/app/assets/javascripts/Cesium/Core/TilingScheme.js +1 -1
  148. data/app/assets/javascripts/Cesium/Core/TimeConstants.js +1 -1
  149. data/app/assets/javascripts/Cesium/Core/TimeInterval.js +3 -3
  150. data/app/assets/javascripts/Cesium/Core/TimeIntervalCollection.js +3 -3
  151. data/app/assets/javascripts/Cesium/Core/TimeStandard.js +1 -1
  152. data/app/assets/javascripts/Cesium/Core/Tipsify.js +1 -1
  153. data/app/assets/javascripts/Cesium/Core/Transforms.js +141 -1
  154. data/app/assets/javascripts/Cesium/Core/TranslationRotationScale.js +2 -2
  155. data/app/assets/javascripts/Cesium/Core/TridiagonalSystemSolver.js +1 -1
  156. data/app/assets/javascripts/Cesium/Core/VRTheWorldTerrainProvider.js +2 -2
  157. data/app/assets/javascripts/Cesium/Core/VertexFormat.js +1 -1
  158. data/app/assets/javascripts/Cesium/Core/VideoSynchronizer.js +1 -1
  159. data/app/assets/javascripts/Cesium/Core/Visibility.js +1 -1
  160. data/app/assets/javascripts/Cesium/Core/WallGeometry.js +5 -7
  161. data/app/assets/javascripts/Cesium/Core/WallGeometryLibrary.js +20 -9
  162. data/app/assets/javascripts/Cesium/Core/WallOutlineGeometry.js +3 -6
  163. data/app/assets/javascripts/Cesium/Core/WebMercatorProjection.js +1 -1
  164. data/app/assets/javascripts/Cesium/Core/WebMercatorTilingScheme.js +1 -1
  165. data/app/assets/javascripts/Cesium/Core/WindingOrder.js +1 -1
  166. data/app/assets/javascripts/Cesium/Core/appendForwardSlash.js +1 -1
  167. data/app/assets/javascripts/Cesium/Core/arrayRemoveDuplicates.js +101 -0
  168. data/app/assets/javascripts/Cesium/Core/barycentricCoordinates.js +1 -1
  169. data/app/assets/javascripts/Cesium/Core/binarySearch.js +1 -1
  170. data/app/assets/javascripts/Cesium/Core/buildModuleUrl.js +4 -2
  171. data/app/assets/javascripts/Cesium/Core/cancelAnimationFrame.js +2 -2
  172. data/app/assets/javascripts/Cesium/Core/clone.js +1 -1
  173. data/app/assets/javascripts/Cesium/Core/combine.js +1 -1
  174. data/app/assets/javascripts/Cesium/Core/createGuid.js +1 -1
  175. data/app/assets/javascripts/Cesium/Core/defaultValue.js +1 -1
  176. data/app/assets/javascripts/Cesium/Core/defineProperties.js +1 -1
  177. data/app/assets/javascripts/Cesium/Core/defined.js +2 -2
  178. data/app/assets/javascripts/Cesium/Core/deprecationWarning.js +7 -10
  179. data/app/assets/javascripts/Cesium/Core/destroyObject.js +1 -1
  180. data/app/assets/javascripts/Cesium/Core/formatError.js +1 -1
  181. data/app/assets/javascripts/Cesium/Core/freezeObject.js +1 -1
  182. data/app/assets/javascripts/Cesium/Core/getAbsoluteUri.js +1 -1
  183. data/app/assets/javascripts/Cesium/Core/getBaseUri.js +6 -6
  184. data/app/assets/javascripts/Cesium/Core/getExtensionFromUri.js +1 -1
  185. data/app/assets/javascripts/Cesium/Core/getFilenameFromUri.js +1 -1
  186. data/app/assets/javascripts/Cesium/Core/getImagePixels.js +1 -1
  187. data/app/assets/javascripts/Cesium/Core/getMagic.js +1 -1
  188. data/app/assets/javascripts/Cesium/Core/getStringFromTypedArray.js +1 -1
  189. data/app/assets/javascripts/Cesium/Core/getTimestamp.js +1 -1
  190. data/app/assets/javascripts/Cesium/Core/isArray.js +1 -1
  191. data/app/assets/javascripts/Cesium/Core/isCrossOriginUrl.js +1 -1
  192. data/app/assets/javascripts/Cesium/Core/isLeapYear.js +1 -1
  193. data/app/assets/javascripts/Cesium/Core/joinUrls.js +9 -11
  194. data/app/assets/javascripts/Cesium/Core/loadArrayBuffer.js +1 -1
  195. data/app/assets/javascripts/Cesium/Core/loadBlob.js +1 -1
  196. data/app/assets/javascripts/Cesium/Core/loadImage.js +1 -1
  197. data/app/assets/javascripts/Cesium/Core/loadImageFromTypedArray.js +1 -1
  198. data/app/assets/javascripts/Cesium/Core/loadImageViaBlob.js +1 -1
  199. data/app/assets/javascripts/Cesium/Core/loadJson.js +1 -1
  200. data/app/assets/javascripts/Cesium/Core/loadJsonp.js +1 -1
  201. data/app/assets/javascripts/Cesium/Core/loadText.js +1 -1
  202. data/app/assets/javascripts/Cesium/Core/loadWithXhr.js +1 -1
  203. data/app/assets/javascripts/Cesium/Core/loadXML.js +1 -1
  204. data/app/assets/javascripts/Cesium/Core/mergeSort.js +1 -1
  205. data/app/assets/javascripts/Cesium/Core/objectToQuery.js +1 -1
  206. data/app/assets/javascripts/Cesium/Core/oneTimeWarning.js +52 -0
  207. data/app/assets/javascripts/Cesium/Core/parseResponseHeaders.js +1 -1
  208. data/app/assets/javascripts/Cesium/Core/pointInsideTriangle.js +1 -1
  209. data/app/assets/javascripts/Cesium/Core/queryToObject.js +1 -1
  210. data/app/assets/javascripts/Cesium/Core/requestAnimationFrame.js +2 -2
  211. data/app/assets/javascripts/Cesium/Core/sampleTerrain.js +2 -2
  212. data/app/assets/javascripts/Cesium/Core/scaleToGeodeticSurface.js +1 -1
  213. data/app/assets/javascripts/Cesium/Core/subdivideArray.js +1 -1
  214. data/app/assets/javascripts/Cesium/Core/throttleRequestByServer.js +1 -1
  215. data/app/assets/javascripts/Cesium/Core/wrapFunction.js +1 -1
  216. data/app/assets/javascripts/Cesium/Core/writeTextToCanvas.js +1 -1
  217. data/app/assets/javascripts/Cesium/DataSources/BillboardGraphics.js +17 -3
  218. data/app/assets/javascripts/Cesium/DataSources/BillboardVisualizer.js +20 -4
  219. data/app/assets/javascripts/Cesium/DataSources/BoundingSphereState.js +1 -1
  220. data/app/assets/javascripts/Cesium/DataSources/BoxGeometryUpdater.js +1 -1
  221. data/app/assets/javascripts/Cesium/DataSources/BoxGraphics.js +1 -1
  222. data/app/assets/javascripts/Cesium/DataSources/CallbackProperty.js +1 -1
  223. data/app/assets/javascripts/Cesium/DataSources/CheckerboardMaterialProperty.js +1 -1
  224. data/app/assets/javascripts/Cesium/DataSources/ColorMaterialProperty.js +1 -1
  225. data/app/assets/javascripts/Cesium/DataSources/CompositeEntityCollection.js +15 -2
  226. data/app/assets/javascripts/Cesium/DataSources/CompositeMaterialProperty.js +1 -1
  227. data/app/assets/javascripts/Cesium/DataSources/CompositePositionProperty.js +1 -1
  228. data/app/assets/javascripts/Cesium/DataSources/CompositeProperty.js +1 -1
  229. data/app/assets/javascripts/Cesium/DataSources/ConstantPositionProperty.js +1 -1
  230. data/app/assets/javascripts/Cesium/DataSources/ConstantProperty.js +1 -1
  231. data/app/assets/javascripts/Cesium/DataSources/CorridorGeometryUpdater.js +85 -27
  232. data/app/assets/javascripts/Cesium/DataSources/CorridorGraphics.js +1 -1
  233. data/app/assets/javascripts/Cesium/DataSources/CustomDataSource.js +14 -1
  234. data/app/assets/javascripts/Cesium/DataSources/CylinderGeometryUpdater.js +1 -1
  235. data/app/assets/javascripts/Cesium/DataSources/CylinderGraphics.js +3 -6
  236. data/app/assets/javascripts/Cesium/DataSources/CzmlDataSource.js +461 -229
  237. data/app/assets/javascripts/Cesium/DataSources/DataSource.js +9 -1
  238. data/app/assets/javascripts/Cesium/DataSources/DataSourceClock.js +17 -13
  239. data/app/assets/javascripts/Cesium/DataSources/DataSourceCollection.js +1 -1
  240. data/app/assets/javascripts/Cesium/DataSources/DataSourceDisplay.js +18 -2
  241. data/app/assets/javascripts/Cesium/DataSources/DynamicGeometryUpdater.js +1 -1
  242. data/app/assets/javascripts/Cesium/DataSources/EllipseGeometryUpdater.js +86 -27
  243. data/app/assets/javascripts/Cesium/DataSources/EllipseGraphics.js +1 -1
  244. data/app/assets/javascripts/Cesium/DataSources/EllipsoidGeometryUpdater.js +1 -1
  245. data/app/assets/javascripts/Cesium/DataSources/EllipsoidGraphics.js +1 -1
  246. data/app/assets/javascripts/Cesium/DataSources/Entity.js +2 -2
  247. data/app/assets/javascripts/Cesium/DataSources/EntityCollection.js +72 -5
  248. data/app/assets/javascripts/Cesium/DataSources/EntityView.js +13 -17
  249. data/app/assets/javascripts/Cesium/DataSources/GeoJsonDataSource.js +95 -47
  250. data/app/assets/javascripts/Cesium/DataSources/GeometryUpdater.js +1 -1
  251. data/app/assets/javascripts/Cesium/DataSources/GeometryVisualizer.js +25 -14
  252. data/app/assets/javascripts/Cesium/DataSources/GridMaterialProperty.js +1 -1
  253. data/app/assets/javascripts/Cesium/DataSources/ImageMaterialProperty.js +31 -13
  254. data/app/assets/javascripts/Cesium/DataSources/KmlDataSource.js +999 -177
  255. data/app/assets/javascripts/Cesium/DataSources/LabelGraphics.js +14 -1
  256. data/app/assets/javascripts/Cesium/DataSources/LabelVisualizer.js +14 -5
  257. data/app/assets/javascripts/Cesium/DataSources/MaterialProperty.js +1 -1
  258. data/app/assets/javascripts/Cesium/DataSources/ModelGraphics.js +41 -2
  259. data/app/assets/javascripts/Cesium/DataSources/ModelVisualizer.js +19 -3
  260. data/app/assets/javascripts/Cesium/DataSources/NodeTransformationProperty.js +1 -1
  261. data/app/assets/javascripts/Cesium/DataSources/PathGraphics.js +2 -2
  262. data/app/assets/javascripts/Cesium/DataSources/PathVisualizer.js +5 -2
  263. data/app/assets/javascripts/Cesium/DataSources/PointGraphics.js +14 -2
  264. data/app/assets/javascripts/Cesium/DataSources/PointVisualizer.js +170 -24
  265. data/app/assets/javascripts/Cesium/DataSources/PolygonGeometryUpdater.js +113 -34
  266. data/app/assets/javascripts/Cesium/DataSources/PolygonGraphics.js +27 -3
  267. data/app/assets/javascripts/Cesium/DataSources/PolylineArrowMaterialProperty.js +1 -1
  268. data/app/assets/javascripts/Cesium/DataSources/PolylineGeometryUpdater.js +1 -1
  269. data/app/assets/javascripts/Cesium/DataSources/PolylineGlowMaterialProperty.js +1 -1
  270. data/app/assets/javascripts/Cesium/DataSources/PolylineGraphics.js +1 -1
  271. data/app/assets/javascripts/Cesium/DataSources/PolylineOutlineMaterialProperty.js +1 -1
  272. data/app/assets/javascripts/Cesium/DataSources/PolylineVolumeGeometryUpdater.js +1 -1
  273. data/app/assets/javascripts/Cesium/DataSources/PolylineVolumeGraphics.js +1 -1
  274. data/app/assets/javascripts/Cesium/DataSources/PositionProperty.js +1 -1
  275. data/app/assets/javascripts/Cesium/DataSources/PositionPropertyArray.js +1 -1
  276. data/app/assets/javascripts/Cesium/DataSources/Property.js +1 -1
  277. data/app/assets/javascripts/Cesium/DataSources/PropertyArray.js +1 -1
  278. data/app/assets/javascripts/Cesium/DataSources/PropertyBag.js +1 -1
  279. data/app/assets/javascripts/Cesium/DataSources/RectangleGeometryUpdater.js +86 -25
  280. data/app/assets/javascripts/Cesium/DataSources/RectangleGraphics.js +1 -1
  281. data/app/assets/javascripts/Cesium/DataSources/ReferenceProperty.js +1 -1
  282. data/app/assets/javascripts/Cesium/DataSources/Rotation.js +1 -1
  283. data/app/assets/javascripts/Cesium/DataSources/SampledPositionProperty.js +1 -1
  284. data/app/assets/javascripts/Cesium/DataSources/SampledProperty.js +1 -1
  285. data/app/assets/javascripts/Cesium/DataSources/ScaledPositionProperty.js +1 -1
  286. data/app/assets/javascripts/Cesium/DataSources/StaticGeometryColorBatch.js +3 -1
  287. data/app/assets/javascripts/Cesium/DataSources/StaticGeometryPerMaterialBatch.js +1 -1
  288. data/app/assets/javascripts/Cesium/DataSources/StaticGroundGeometryColorBatch.js +336 -0
  289. data/app/assets/javascripts/Cesium/DataSources/StaticOutlineGeometryBatch.js +1 -1
  290. data/app/assets/javascripts/Cesium/DataSources/StripeMaterialProperty.js +1 -1
  291. data/app/assets/javascripts/Cesium/DataSources/StripeOrientation.js +1 -1
  292. data/app/assets/javascripts/Cesium/DataSources/TimeIntervalCollectionPositionProperty.js +1 -1
  293. data/app/assets/javascripts/Cesium/DataSources/TimeIntervalCollectionProperty.js +1 -1
  294. data/app/assets/javascripts/Cesium/DataSources/VelocityOrientationProperty.js +19 -61
  295. data/app/assets/javascripts/Cesium/DataSources/VelocityVectorProperty.js +187 -0
  296. data/app/assets/javascripts/Cesium/DataSources/Visualizer.js +1 -1
  297. data/app/assets/javascripts/Cesium/DataSources/WallGeometryUpdater.js +1 -1
  298. data/app/assets/javascripts/Cesium/DataSources/WallGraphics.js +1 -1
  299. data/app/assets/javascripts/Cesium/DataSources/createMaterialPropertyDescriptor.js +1 -1
  300. data/app/assets/javascripts/Cesium/DataSources/createPropertyDescriptor.js +1 -1
  301. data/app/assets/javascripts/Cesium/DataSources/createRawPropertyDescriptor.js +1 -1
  302. data/app/assets/javascripts/Cesium/DataSources/dynamicGeometryGetBoundingSphere.js +10 -3
  303. data/app/assets/javascripts/Cesium/Renderer/AutomaticUniforms.js +25 -1
  304. data/app/assets/javascripts/Cesium/Renderer/Buffer.js +1 -1
  305. data/app/assets/javascripts/Cesium/Renderer/BufferUsage.js +1 -1
  306. data/app/assets/javascripts/Cesium/Renderer/ClearCommand.js +1 -1
  307. data/app/assets/javascripts/Cesium/Renderer/ComputeCommand.js +1 -1
  308. data/app/assets/javascripts/Cesium/Renderer/ComputeEngine.js +1 -1
  309. data/app/assets/javascripts/Cesium/Renderer/Context.js +16 -18
  310. data/app/assets/javascripts/Cesium/Renderer/ContextLimits.js +1 -1
  311. data/app/assets/javascripts/Cesium/Renderer/CubeMap.js +2 -2
  312. data/app/assets/javascripts/Cesium/Renderer/CubeMapFace.js +1 -1
  313. data/app/assets/javascripts/Cesium/Renderer/DrawCommand.js +312 -30
  314. data/app/assets/javascripts/Cesium/Renderer/Framebuffer.js +2 -2
  315. data/app/assets/javascripts/Cesium/Renderer/MipmapHint.js +1 -1
  316. data/app/assets/javascripts/Cesium/Renderer/PassState.js +1 -1
  317. data/app/assets/javascripts/Cesium/Renderer/PickFramebuffer.js +1 -1
  318. data/app/assets/javascripts/Cesium/Renderer/PixelDatatype.js +1 -1
  319. data/app/assets/javascripts/Cesium/Renderer/RenderState.js +2 -2
  320. data/app/assets/javascripts/Cesium/Renderer/Renderbuffer.js +1 -1
  321. data/app/assets/javascripts/Cesium/Renderer/RenderbufferFormat.js +1 -1
  322. data/app/assets/javascripts/Cesium/Renderer/Sampler.js +1 -1
  323. data/app/assets/javascripts/Cesium/Renderer/ShaderCache.js +1 -1
  324. data/app/assets/javascripts/Cesium/Renderer/ShaderProgram.js +3 -4
  325. data/app/assets/javascripts/Cesium/Renderer/ShaderSource.js +32 -1
  326. data/app/assets/javascripts/Cesium/Renderer/Texture.js +1 -1
  327. data/app/assets/javascripts/Cesium/Renderer/TextureMagnificationFilter.js +1 -1
  328. data/app/assets/javascripts/Cesium/Renderer/TextureMinificationFilter.js +1 -1
  329. data/app/assets/javascripts/Cesium/Renderer/TextureWrap.js +1 -1
  330. data/app/assets/javascripts/Cesium/Renderer/UniformState.js +36 -11
  331. data/app/assets/javascripts/Cesium/Renderer/VertexArray.js +1 -1
  332. data/app/assets/javascripts/Cesium/Renderer/VertexArrayFacade.js +1 -1
  333. data/app/assets/javascripts/Cesium/Renderer/WebGLConstants.js +1 -1
  334. data/app/assets/javascripts/Cesium/Renderer/createUniform.js +1 -1
  335. data/app/assets/javascripts/Cesium/Renderer/createUniformArray.js +1 -1
  336. data/app/assets/javascripts/Cesium/Renderer/loadCubeMap.js +1 -1
  337. data/app/assets/javascripts/Cesium/Scene/Appearance.js +1 -1
  338. data/app/assets/javascripts/Cesium/Scene/ArcGisMapServerImageryProvider.js +5 -4
  339. data/app/assets/javascripts/Cesium/Scene/Billboard.js +25 -37
  340. data/app/assets/javascripts/Cesium/Scene/BillboardCollection.js +49 -25
  341. data/app/assets/javascripts/Cesium/Scene/BingMapsImageryProvider.js +11 -4
  342. data/app/assets/javascripts/Cesium/Scene/BingMapsStyle.js +1 -1
  343. data/app/assets/javascripts/Cesium/Scene/BlendEquation.js +1 -1
  344. data/app/assets/javascripts/Cesium/Scene/BlendFunction.js +1 -1
  345. data/app/assets/javascripts/Cesium/Scene/BlendingState.js +2 -2
  346. data/app/assets/javascripts/Cesium/Scene/Camera.js +397 -187
  347. data/app/assets/javascripts/Cesium/Scene/CameraEventAggregator.js +2 -2
  348. data/app/assets/javascripts/Cesium/Scene/CameraEventType.js +2 -2
  349. data/app/assets/javascripts/Cesium/Scene/CameraFlightPath.js +4 -5
  350. data/app/assets/javascripts/Cesium/Scene/CreditDisplay.js +1 -1
  351. data/app/assets/javascripts/Cesium/Scene/CullFace.js +1 -1
  352. data/app/assets/javascripts/Cesium/Scene/CullingVolume.js +75 -2
  353. data/app/assets/javascripts/Cesium/Scene/DebugAppearance.js +2 -2
  354. data/app/assets/javascripts/Cesium/Scene/DebugModelMatrixPrimitive.js +1 -1
  355. data/app/assets/javascripts/Cesium/Scene/DepthFunction.js +1 -1
  356. data/app/assets/javascripts/Cesium/Scene/DepthPlane.js +1 -1
  357. data/app/assets/javascripts/Cesium/Scene/DeviceOrientationCameraController.js +14 -5
  358. data/app/assets/javascripts/Cesium/Scene/DiscardMissingTileImagePolicy.js +1 -1
  359. data/app/assets/javascripts/Cesium/Scene/EllipsoidPrimitive.js +1 -1
  360. data/app/assets/javascripts/Cesium/Scene/EllipsoidSurfaceAppearance.js +1 -1
  361. data/app/assets/javascripts/Cesium/Scene/FXAA.js +1 -1
  362. data/app/assets/javascripts/Cesium/Scene/Fog.js +1 -1
  363. data/app/assets/javascripts/Cesium/Scene/FrameRateMonitor.js +9 -9
  364. data/app/assets/javascripts/Cesium/Scene/FrameState.js +39 -1
  365. data/app/assets/javascripts/Cesium/Scene/FrustumCommands.js +1 -1
  366. data/app/assets/javascripts/Cesium/Scene/GetFeatureInfoFormat.js +2 -4
  367. data/app/assets/javascripts/Cesium/Scene/Globe.js +89 -17
  368. data/app/assets/javascripts/Cesium/Scene/GlobeDepth.js +4 -6
  369. data/app/assets/javascripts/Cesium/Scene/GlobeSurfaceShaderSet.js +17 -9
  370. data/app/assets/javascripts/Cesium/Scene/GlobeSurfaceTile.js +24 -6
  371. data/app/assets/javascripts/Cesium/Scene/GlobeSurfaceTileProvider.js +171 -118
  372. data/app/assets/javascripts/Cesium/Scene/GoogleEarthImageryProvider.js +2 -2
  373. data/app/assets/javascripts/Cesium/Scene/GridImageryProvider.js +1 -1
  374. data/app/assets/javascripts/Cesium/Scene/GroundPrimitive.js +335 -91
  375. data/app/assets/javascripts/Cesium/Scene/HeightReference.js +1 -1
  376. data/app/assets/javascripts/Cesium/Scene/HorizontalOrigin.js +1 -1
  377. data/app/assets/javascripts/Cesium/Scene/Imagery.js +1 -1
  378. data/app/assets/javascripts/Cesium/Scene/ImageryLayer.js +32 -5
  379. data/app/assets/javascripts/Cesium/Scene/ImageryLayerCollection.js +27 -1
  380. data/app/assets/javascripts/Cesium/Scene/ImageryLayerFeatureInfo.js +1 -1
  381. data/app/assets/javascripts/Cesium/Scene/ImageryProvider.js +1 -1
  382. data/app/assets/javascripts/Cesium/Scene/ImageryState.js +1 -1
  383. data/app/assets/javascripts/Cesium/Scene/Label.js +26 -11
  384. data/app/assets/javascripts/Cesium/Scene/LabelCollection.js +11 -7
  385. data/app/assets/javascripts/Cesium/Scene/LabelStyle.js +2 -2
  386. data/app/assets/javascripts/Cesium/Scene/MapMode2D.js +32 -0
  387. data/app/assets/javascripts/Cesium/Scene/MapboxImageryProvider.js +4 -4
  388. data/app/assets/javascripts/Cesium/Scene/Material.js +6 -6
  389. data/app/assets/javascripts/Cesium/Scene/MaterialAppearance.js +1 -1
  390. data/app/assets/javascripts/Cesium/Scene/Model.js +675 -160
  391. data/app/assets/javascripts/Cesium/Scene/ModelAnimation.js +1 -1
  392. data/app/assets/javascripts/Cesium/Scene/ModelAnimationCache.js +1 -1
  393. data/app/assets/javascripts/Cesium/Scene/ModelAnimationCollection.js +8 -6
  394. data/app/assets/javascripts/Cesium/Scene/ModelAnimationLoop.js +2 -2
  395. data/app/assets/javascripts/Cesium/Scene/ModelAnimationState.js +2 -2
  396. data/app/assets/javascripts/Cesium/Scene/ModelMaterial.js +1 -1
  397. data/app/assets/javascripts/Cesium/Scene/ModelMesh.js +1 -1
  398. data/app/assets/javascripts/Cesium/Scene/ModelNode.js +2 -2
  399. data/app/assets/javascripts/Cesium/Scene/Moon.js +1 -1
  400. data/app/assets/javascripts/Cesium/Scene/NeverTileDiscardPolicy.js +1 -1
  401. data/app/assets/javascripts/Cesium/Scene/OIT.js +66 -33
  402. data/app/assets/javascripts/Cesium/Scene/OrthographicFrustum.js +2 -2
  403. data/app/assets/javascripts/Cesium/Scene/Pass.js +12 -8
  404. data/app/assets/javascripts/Cesium/Scene/PerInstanceColorAppearance.js +1 -1
  405. data/app/assets/javascripts/Cesium/Scene/PerformanceDisplay.js +1 -1
  406. data/app/assets/javascripts/Cesium/Scene/PerspectiveFrustum.js +3 -3
  407. data/app/assets/javascripts/Cesium/Scene/PerspectiveOffCenterFrustum.js +4 -4
  408. data/app/assets/javascripts/Cesium/Scene/PickDepth.js +1 -1
  409. data/app/assets/javascripts/Cesium/Scene/PointAppearance.js +1 -1
  410. data/app/assets/javascripts/Cesium/Scene/PointPrimitive.js +5 -13
  411. data/app/assets/javascripts/Cesium/Scene/PointPrimitiveCollection.js +8 -8
  412. data/app/assets/javascripts/Cesium/Scene/Polyline.js +5 -3
  413. data/app/assets/javascripts/Cesium/Scene/PolylineCollection.js +51 -23
  414. data/app/assets/javascripts/Cesium/Scene/PolylineColorAppearance.js +1 -1
  415. data/app/assets/javascripts/Cesium/Scene/PolylineMaterialAppearance.js +1 -1
  416. data/app/assets/javascripts/Cesium/Scene/Primitive.js +75 -46
  417. data/app/assets/javascripts/Cesium/Scene/PrimitiveCollection.js +1 -1
  418. data/app/assets/javascripts/Cesium/Scene/PrimitivePipeline.js +3 -3
  419. data/app/assets/javascripts/Cesium/Scene/PrimitiveState.js +2 -2
  420. data/app/assets/javascripts/Cesium/Scene/QuadtreeOccluders.js +1 -1
  421. data/app/assets/javascripts/Cesium/Scene/QuadtreePrimitive.js +80 -41
  422. data/app/assets/javascripts/Cesium/Scene/QuadtreeTile.js +5 -11
  423. data/app/assets/javascripts/Cesium/Scene/QuadtreeTileLoadState.js +1 -1
  424. data/app/assets/javascripts/Cesium/Scene/QuadtreeTileProvider.js +1 -1
  425. data/app/assets/javascripts/Cesium/Scene/Scene.js +529 -92
  426. data/app/assets/javascripts/Cesium/Scene/SceneMode.js +1 -1
  427. data/app/assets/javascripts/Cesium/Scene/SceneTransforms.js +129 -49
  428. data/app/assets/javascripts/Cesium/Scene/SceneTransitioner.js +476 -337
  429. data/app/assets/javascripts/Cesium/Scene/ScreenSpaceCameraController.js +127 -30
  430. data/app/assets/javascripts/Cesium/Scene/ShadowMap.js +1640 -0
  431. data/app/assets/javascripts/Cesium/Scene/ShadowMapShader.js +341 -0
  432. data/app/assets/javascripts/Cesium/Scene/SingleTileImageryProvider.js +1 -1
  433. data/app/assets/javascripts/Cesium/Scene/SkyAtmosphere.js +101 -33
  434. data/app/assets/javascripts/Cesium/Scene/SkyBox.js +1 -1
  435. data/app/assets/javascripts/Cesium/Scene/StencilFunction.js +1 -1
  436. data/app/assets/javascripts/Cesium/Scene/StencilOperation.js +1 -1
  437. data/app/assets/javascripts/Cesium/Scene/Sun.js +8 -3
  438. data/app/assets/javascripts/Cesium/Scene/SunPostProcess.js +6 -2
  439. data/app/assets/javascripts/Cesium/Scene/TerrainState.js +2 -2
  440. data/app/assets/javascripts/Cesium/Scene/TextureAtlas.js +21 -43
  441. data/app/assets/javascripts/Cesium/Scene/TileBoundingBox.js +2 -2
  442. data/app/assets/javascripts/Cesium/Scene/TileCoordinatesImageryProvider.js +1 -1
  443. data/app/assets/javascripts/Cesium/Scene/TileDiscardPolicy.js +1 -1
  444. data/app/assets/javascripts/Cesium/Scene/TileImagery.js +1 -1
  445. data/app/assets/javascripts/Cesium/Scene/TileReplacementQueue.js +1 -1
  446. data/app/assets/javascripts/Cesium/Scene/TileState.js +1 -1
  447. data/app/assets/javascripts/Cesium/Scene/TileTerrain.js +8 -15
  448. data/app/assets/javascripts/Cesium/Scene/TweenCollection.js +1 -1
  449. data/app/assets/javascripts/Cesium/Scene/UrlTemplateImageryProvider.js +9 -9
  450. data/app/assets/javascripts/Cesium/Scene/VerticalOrigin.js +2 -2
  451. data/app/assets/javascripts/Cesium/Scene/ViewportQuad.js +2 -2
  452. data/app/assets/javascripts/Cesium/Scene/WebMapServiceImageryProvider.js +2 -2
  453. data/app/assets/javascripts/Cesium/Scene/WebMapTileServiceImageryProvider.js +1 -1
  454. data/app/assets/javascripts/Cesium/Scene/createOpenStreetMapImageryProvider.js +6 -5
  455. data/app/assets/javascripts/Cesium/Scene/createTangentSpaceDebugPrimitive.js +1 -1
  456. data/app/assets/javascripts/Cesium/Scene/createTileMapServiceImageryProvider.js +23 -26
  457. data/app/assets/javascripts/Cesium/Scene/getModelAccessor.js +1 -1
  458. data/app/assets/javascripts/Cesium/Scene/modelMaterialsCommon.js +1 -1
  459. data/app/assets/javascripts/Cesium/Shaders/AdjustTranslucentFS.js +14 -11
  460. data/app/assets/javascripts/Cesium/Shaders/Appearances/AllMaterialAppearanceFS.js +18 -14
  461. data/app/assets/javascripts/Cesium/Shaders/Appearances/AllMaterialAppearanceVS.js +13 -9
  462. data/app/assets/javascripts/Cesium/Shaders/Appearances/BasicMaterialAppearanceFS.js +15 -11
  463. data/app/assets/javascripts/Cesium/Shaders/Appearances/BasicMaterialAppearanceVS.js +10 -6
  464. data/app/assets/javascripts/Cesium/Shaders/Appearances/EllipsoidSurfaceAppearanceFS.js +24 -15
  465. data/app/assets/javascripts/Cesium/Shaders/Appearances/EllipsoidSurfaceAppearanceVS.js +11 -7
  466. data/app/assets/javascripts/Cesium/Shaders/Appearances/PerInstanceColorAppearanceFS.js +15 -11
  467. data/app/assets/javascripts/Cesium/Shaders/Appearances/PerInstanceColorAppearanceVS.js +11 -7
  468. data/app/assets/javascripts/Cesium/Shaders/Appearances/PerInstanceFlatColorAppearanceFS.js +3 -2
  469. data/app/assets/javascripts/Cesium/Shaders/Appearances/PerInstanceFlatColorAppearanceVS.js +9 -5
  470. data/app/assets/javascripts/Cesium/Shaders/Appearances/PointAppearanceFS.js +4 -2
  471. data/app/assets/javascripts/Cesium/Shaders/Appearances/PointAppearanceVS.js +8 -5
  472. data/app/assets/javascripts/Cesium/Shaders/Appearances/PolylineColorAppearanceVS.js +16 -11
  473. data/app/assets/javascripts/Cesium/Shaders/Appearances/PolylineMaterialAppearanceVS.js +17 -12
  474. data/app/assets/javascripts/Cesium/Shaders/Appearances/TexturedMaterialAppearanceFS.js +16 -12
  475. data/app/assets/javascripts/Cesium/Shaders/Appearances/TexturedMaterialAppearanceVS.js +11 -7
  476. data/app/assets/javascripts/Cesium/Shaders/BillboardCollectionFS.js +16 -12
  477. data/app/assets/javascripts/Cesium/Shaders/BillboardCollectionVS.glsl +9 -14
  478. data/app/assets/javascripts/Cesium/Shaders/BillboardCollectionVS.js +197 -142
  479. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/degreesPerRadian.js +17 -3
  480. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/depthRange.js +15 -3
  481. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/epsilon1.js +8 -3
  482. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/epsilon2.js +8 -3
  483. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/epsilon3.js +8 -3
  484. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/epsilon4.js +8 -3
  485. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/epsilon5.js +8 -3
  486. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/epsilon6.js +8 -3
  487. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/epsilon7.js +8 -3
  488. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/infinity.js +8 -3
  489. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/oneOverPi.js +17 -3
  490. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/oneOverTwoPi.js +17 -3
  491. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passCompute.glsl +9 -0
  492. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passCompute.js +14 -0
  493. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passEnvironment.glsl +9 -0
  494. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passEnvironment.js +14 -0
  495. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passGlobe.glsl +9 -0
  496. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passGlobe.js +14 -0
  497. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passGround.glsl +9 -0
  498. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passGround.js +14 -0
  499. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passOpaque.glsl +9 -0
  500. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passOpaque.js +14 -0
  501. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passOverlay.glsl +9 -0
  502. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passOverlay.js +14 -0
  503. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passTranslucent.glsl +9 -0
  504. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passTranslucent.js +14 -0
  505. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/pi.js +17 -3
  506. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/piOverFour.js +17 -3
  507. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/piOverSix.js +17 -3
  508. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/piOverThree.js +17 -3
  509. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/piOverTwo.js +17 -3
  510. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/radiansPerDegree.js +17 -3
  511. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/sceneMode2D.js +12 -3
  512. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/sceneMode3D.js +12 -3
  513. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/sceneModeColumbusView.js +12 -3
  514. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/sceneModeMorphing.js +12 -3
  515. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/solarRadius.js +14 -3
  516. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/threePiOver2.js +17 -3
  517. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/twoPi.js +17 -3
  518. data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/webMercatorMaxLatitude.js +17 -3
  519. data/app/assets/javascripts/Cesium/Shaders/Builtin/CzmBuiltins.js +43 -1
  520. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/RGBToXYZ.js +29 -11
  521. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/XYZToRGB.js +29 -10
  522. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/alphaWeight.js +24 -19
  523. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/antialias.js +35 -10
  524. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/cascadeColor.glsl +8 -0
  525. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/cascadeColor.js +13 -0
  526. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/cascadeDistance.glsl +7 -0
  527. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/cascadeDistance.js +12 -0
  528. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/cascadeMatrix.glsl +10 -0
  529. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/cascadeMatrix.js +15 -0
  530. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/cascadeWeights.glsl +10 -0
  531. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/cascadeWeights.js +15 -0
  532. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/columbusViewMorph.js +11 -4
  533. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/computePosition.js +23 -2
  534. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/cosineAndSine.js +208 -162
  535. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/decompressTextureCoordinates.js +17 -8
  536. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/eastNorthUpToEyeCoordinates.js +32 -9
  537. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/ellipsoidContainsPoint.js +11 -4
  538. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/ellipsoidNew.js +13 -6
  539. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/ellipsoidWgs84TextureCoordinates.js +9 -3
  540. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/equalsEpsilon.js +30 -6
  541. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/eyeOffset.js +19 -7
  542. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/eyeToWindowCoordinates.js +31 -6
  543. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/fog.js +18 -5
  544. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/geodeticSurfaceNormal.js +15 -3
  545. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/getDefaultMaterial.js +26 -10
  546. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/getLambertDiffuse.js +22 -5
  547. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/getSpecular.js +26 -7
  548. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/getWaterNoise.js +36 -25
  549. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/getWgs84EllipsoidEC.js +20 -7
  550. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/hue.js +29 -13
  551. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/isEmpty.js +18 -3
  552. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/isFull.js +18 -3
  553. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/latitudeToWebMercatorFraction.js +20 -5
  554. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/luminance.js +19 -4
  555. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/metersPerPixel.js +40 -27
  556. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/modelToWindowCoordinates.js +36 -6
  557. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/multiplyWithColorBalance.js +17 -8
  558. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/nearFarScalar.js +25 -9
  559. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/octDecode.js +65 -31
  560. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/packDepth.js +17 -6
  561. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/phong.js +53 -23
  562. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/pointAlongRay.js +18 -3
  563. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/rayEllipsoidIntersectionInterval.js +82 -71
  564. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/saturation.js +21 -5
  565. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/shadowDepthCompare.glsl +24 -0
  566. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/shadowDepthCompare.js +29 -0
  567. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/shadowVisibility.glsl +66 -0
  568. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/shadowVisibility.js +72 -0
  569. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/signNotZero.js +20 -8
  570. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/tangentToEyeSpaceMatrix.js +24 -8
  571. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/translateRelativeToEye.js +39 -5
  572. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/translucentPhong.js +29 -17
  573. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/transpose.js +38 -14
  574. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/unpackDepth.js +17 -5
  575. data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/windowToEyeCoordinates.js +34 -9
  576. data/app/assets/javascripts/Cesium/Shaders/Builtin/Structs/depthRangeStruct.js +9 -6
  577. data/app/assets/javascripts/Cesium/Shaders/Builtin/Structs/ellipsoid.js +12 -8
  578. data/app/assets/javascripts/Cesium/Shaders/Builtin/Structs/material.js +22 -10
  579. data/app/assets/javascripts/Cesium/Shaders/Builtin/Structs/materialInput.js +22 -10
  580. data/app/assets/javascripts/Cesium/Shaders/Builtin/Structs/ray.js +11 -6
  581. data/app/assets/javascripts/Cesium/Shaders/Builtin/Structs/raySegment.js +24 -4
  582. data/app/assets/javascripts/Cesium/Shaders/Builtin/Structs/shadowParameters.glsl +15 -0
  583. data/app/assets/javascripts/Cesium/Shaders/Builtin/Structs/shadowParameters.js +20 -0
  584. data/app/assets/javascripts/Cesium/Shaders/CompositeOITFS.js +18 -8
  585. data/app/assets/javascripts/Cesium/Shaders/DepthPlaneFS.js +18 -15
  586. data/app/assets/javascripts/Cesium/Shaders/DepthPlaneVS.js +6 -5
  587. data/app/assets/javascripts/Cesium/Shaders/EllipsoidFS.js +87 -56
  588. data/app/assets/javascripts/Cesium/Shaders/EllipsoidVS.js +22 -6
  589. data/app/assets/javascripts/Cesium/Shaders/GlobeFS.glsl +2 -2
  590. data/app/assets/javascripts/Cesium/Shaders/GlobeFS.js +184 -101
  591. data/app/assets/javascripts/Cesium/Shaders/GlobeVS.glsl +8 -7
  592. data/app/assets/javascripts/Cesium/Shaders/GlobeVS.js +86 -56
  593. data/app/assets/javascripts/Cesium/Shaders/GroundAtmosphere.js +107 -44
  594. data/app/assets/javascripts/Cesium/Shaders/Materials/BumpMapMaterial.js +25 -18
  595. data/app/assets/javascripts/Cesium/Shaders/Materials/CheckerboardMaterial.js +23 -14
  596. data/app/assets/javascripts/Cesium/Shaders/Materials/DotMaterial.js +12 -7
  597. data/app/assets/javascripts/Cesium/Shaders/Materials/FadeMaterial.js +25 -19
  598. data/app/assets/javascripts/Cesium/Shaders/Materials/GridMaterial.js +45 -30
  599. data/app/assets/javascripts/Cesium/Shaders/Materials/NormalMapMaterial.js +15 -12
  600. data/app/assets/javascripts/Cesium/Shaders/Materials/PolylineArrowMaterial.js +52 -40
  601. data/app/assets/javascripts/Cesium/Shaders/Materials/PolylineGlowMaterial.js +12 -7
  602. data/app/assets/javascripts/Cesium/Shaders/Materials/PolylineOutlineMaterial.js +22 -14
  603. data/app/assets/javascripts/Cesium/Shaders/Materials/RimLightingMaterial.js +13 -8
  604. data/app/assets/javascripts/Cesium/Shaders/Materials/StripeMaterial.js +16 -10
  605. data/app/assets/javascripts/Cesium/Shaders/Materials/Water.js +47 -21
  606. data/app/assets/javascripts/Cesium/Shaders/PointPrimitiveCollectionFS.js +20 -15
  607. data/app/assets/javascripts/Cesium/Shaders/PointPrimitiveCollectionVS.js +128 -82
  608. data/app/assets/javascripts/Cesium/Shaders/PolylineCommon.glsl +2 -2
  609. data/app/assets/javascripts/Cesium/Shaders/PolylineCommon.js +87 -68
  610. data/app/assets/javascripts/Cesium/Shaders/PolylineFS.js +11 -9
  611. data/app/assets/javascripts/Cesium/Shaders/PolylineVS.js +45 -40
  612. data/app/assets/javascripts/Cesium/Shaders/PostProcessFilters/AdditiveBlend.js +10 -6
  613. data/app/assets/javascripts/Cesium/Shaders/PostProcessFilters/BrightPass.js +20 -11
  614. data/app/assets/javascripts/Cesium/Shaders/PostProcessFilters/FXAA.js +223 -136
  615. data/app/assets/javascripts/Cesium/Shaders/PostProcessFilters/GaussianBlur1D.js +29 -17
  616. data/app/assets/javascripts/Cesium/Shaders/PostProcessFilters/PassThrough.js +5 -3
  617. data/app/assets/javascripts/Cesium/Shaders/ReprojectWebMercatorFS.js +4 -2
  618. data/app/assets/javascripts/Cesium/Shaders/ReprojectWebMercatorVS.js +6 -3
  619. data/app/assets/javascripts/Cesium/Shaders/ShadowVolumeFS.js +9 -6
  620. data/app/assets/javascripts/Cesium/Shaders/ShadowVolumeVS.js +12 -7
  621. data/app/assets/javascripts/Cesium/Shaders/SkyAtmosphereFS.glsl +47 -7
  622. data/app/assets/javascripts/Cesium/Shaders/SkyAtmosphereFS.js +90 -10
  623. data/app/assets/javascripts/Cesium/Shaders/SkyAtmosphereVS.glsl +52 -51
  624. data/app/assets/javascripts/Cesium/Shaders/SkyAtmosphereVS.js +115 -61
  625. data/app/assets/javascripts/Cesium/Shaders/SkyBoxFS.js +5 -3
  626. data/app/assets/javascripts/Cesium/Shaders/SkyBoxVS.js +6 -4
  627. data/app/assets/javascripts/Cesium/Shaders/SunFS.js +4 -2
  628. data/app/assets/javascripts/Cesium/Shaders/SunTextureFS.js +45 -21
  629. data/app/assets/javascripts/Cesium/Shaders/SunVS.js +24 -17
  630. data/app/assets/javascripts/Cesium/Shaders/ViewportQuadFS.js +15 -11
  631. data/app/assets/javascripts/Cesium/Shaders/ViewportQuadVS.js +7 -6
  632. data/app/assets/javascripts/Cesium/ThirdParty/NoSleep.js +2 -2
  633. data/app/assets/javascripts/Cesium/ThirdParty/earcut-2.1.1.js +649 -0
  634. data/app/assets/javascripts/Cesium/ThirdParty/knockout-3.4.0.js +123 -0
  635. data/app/assets/javascripts/Cesium/ThirdParty/knockout.js +2 -2
  636. data/app/assets/javascripts/Cesium/Widgets/Animation/Animation.js +1 -1
  637. data/app/assets/javascripts/Cesium/Widgets/Animation/AnimationViewModel.js +4 -24
  638. data/app/assets/javascripts/Cesium/Widgets/BaseLayerPicker/BaseLayerPicker.js +5 -5
  639. data/app/assets/javascripts/Cesium/Widgets/BaseLayerPicker/BaseLayerPickerViewModel.js +1 -1
  640. data/app/assets/javascripts/Cesium/Widgets/BaseLayerPicker/ProviderViewModel.js +1 -1
  641. data/app/assets/javascripts/Cesium/Widgets/BaseLayerPicker/createDefaultImageryProviderViewModels.js +14 -14
  642. data/app/assets/javascripts/Cesium/Widgets/BaseLayerPicker/createDefaultTerrainProviderViewModels.js +2 -2
  643. data/app/assets/javascripts/Cesium/Widgets/CesiumInspector/CesiumInspector.js +1 -1
  644. data/app/assets/javascripts/Cesium/Widgets/CesiumInspector/CesiumInspectorViewModel.js +1 -1
  645. data/app/assets/javascripts/Cesium/Widgets/CesiumWidget/CesiumWidget.js +10 -4
  646. data/app/assets/javascripts/Cesium/Widgets/ClockViewModel.js +76 -133
  647. data/app/assets/javascripts/Cesium/Widgets/Command.js +1 -1
  648. data/app/assets/javascripts/Cesium/Widgets/FullscreenButton/FullscreenButton.js +1 -1
  649. data/app/assets/javascripts/Cesium/Widgets/FullscreenButton/FullscreenButtonViewModel.js +1 -1
  650. data/app/assets/javascripts/Cesium/Widgets/Geocoder/Geocoder.js +2 -2
  651. data/app/assets/javascripts/Cesium/Widgets/Geocoder/GeocoderViewModel.js +9 -5
  652. data/app/assets/javascripts/Cesium/Widgets/HomeButton/HomeButton.js +1 -1
  653. data/app/assets/javascripts/Cesium/Widgets/HomeButton/HomeButtonViewModel.js +2 -47
  654. data/app/assets/javascripts/Cesium/Widgets/InfoBox/InfoBox.js +1 -1
  655. data/app/assets/javascripts/Cesium/Widgets/InfoBox/InfoBoxViewModel.js +1 -1
  656. data/app/assets/javascripts/Cesium/Widgets/NavigationHelpButton/NavigationHelpButton.js +1 -1
  657. data/app/assets/javascripts/Cesium/Widgets/NavigationHelpButton/NavigationHelpButtonViewModel.js +1 -1
  658. data/app/assets/javascripts/Cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.js +1 -1
  659. data/app/assets/javascripts/Cesium/Widgets/PerformanceWatchdog/PerformanceWatchdogViewModel.js +1 -1
  660. data/app/assets/javascripts/Cesium/Widgets/SceneModePicker/SceneModePicker.js +1 -1
  661. data/app/assets/javascripts/Cesium/Widgets/SceneModePicker/SceneModePickerViewModel.js +1 -1
  662. data/app/assets/javascripts/Cesium/Widgets/SelectionIndicator/SelectionIndicator.js +1 -1
  663. data/app/assets/javascripts/Cesium/Widgets/SelectionIndicator/SelectionIndicatorViewModel.js +1 -1
  664. data/app/assets/javascripts/Cesium/Widgets/SvgPathBindingHandler.js +1 -1
  665. data/app/assets/javascripts/Cesium/Widgets/Timeline/Timeline.js +1 -1
  666. data/app/assets/javascripts/Cesium/Widgets/Timeline/TimelineHighlightRange.js +1 -1
  667. data/app/assets/javascripts/Cesium/Widgets/Timeline/TimelineTrack.js +1 -1
  668. data/app/assets/javascripts/Cesium/Widgets/ToggleButtonViewModel.js +1 -1
  669. data/app/assets/javascripts/Cesium/Widgets/VRButton/VRButton.js +2 -3
  670. data/app/assets/javascripts/Cesium/Widgets/VRButton/VRButtonViewModel.js +1 -1
  671. data/app/assets/javascripts/Cesium/Widgets/Viewer/Viewer.js +130 -38
  672. data/app/assets/javascripts/Cesium/Widgets/Viewer/viewerCesiumInspectorMixin.js +1 -1
  673. data/app/assets/javascripts/Cesium/Widgets/Viewer/viewerDragDropMixin.js +27 -5
  674. data/app/assets/javascripts/Cesium/Widgets/Viewer/viewerPerformanceWatchdogMixin.js +1 -1
  675. data/app/assets/javascripts/Cesium/Widgets/createCommand.js +1 -1
  676. data/app/assets/javascripts/Cesium/Widgets/getElement.js +1 -1
  677. data/app/assets/javascripts/Cesium/Widgets/subscribeAndEvaluate.js +1 -1
  678. data/app/assets/javascripts/Cesium/Workers/cesiumWorkerBootstrapper.js +1 -23
  679. data/app/assets/javascripts/Cesium/Workers/combineGeometry.js +801 -190
  680. data/app/assets/javascripts/Cesium/Workers/createBoxGeometry.js +404 -155
  681. data/app/assets/javascripts/Cesium/Workers/createBoxOutlineGeometry.js +402 -118
  682. data/app/assets/javascripts/Cesium/Workers/createCircleGeometry.js +5844 -318
  683. data/app/assets/javascripts/Cesium/Workers/createCircleOutlineGeometry.js +411 -137
  684. data/app/assets/javascripts/Cesium/Workers/createCorridorGeometry.js +2273 -277
  685. data/app/assets/javascripts/Cesium/Workers/createCorridorOutlineGeometry.js +2131 -275
  686. data/app/assets/javascripts/Cesium/Workers/createCylinderGeometry.js +466 -134
  687. data/app/assets/javascripts/Cesium/Workers/createCylinderOutlineGeometry.js +465 -133
  688. data/app/assets/javascripts/Cesium/Workers/createEllipseGeometry.js +5829 -313
  689. data/app/assets/javascripts/Cesium/Workers/createEllipseOutlineGeometry.js +409 -132
  690. data/app/assets/javascripts/Cesium/Workers/createEllipsoidGeometry.js +480 -126
  691. data/app/assets/javascripts/Cesium/Workers/createEllipsoidOutlineGeometry.js +405 -120
  692. data/app/assets/javascripts/Cesium/Workers/createGeometry.js +801 -190
  693. data/app/assets/javascripts/Cesium/Workers/createPointGeometry.js +397 -117
  694. data/app/assets/javascripts/Cesium/Workers/createPolygonGeometry.js +2020 -1892
  695. data/app/assets/javascripts/Cesium/Workers/createPolygonOutlineGeometry.js +1748 -1845
  696. data/app/assets/javascripts/Cesium/Workers/createPolylineGeometry.js +755 -211
  697. data/app/assets/javascripts/Cesium/Workers/createPolylineVolumeGeometry.js +7848 -7187
  698. data/app/assets/javascripts/Cesium/Workers/createPolylineVolumeOutlineGeometry.js +9211 -8612
  699. data/app/assets/javascripts/Cesium/Workers/createRectangleGeometry.js +1758 -1929
  700. data/app/assets/javascripts/Cesium/Workers/createRectangleOutlineGeometry.js +1657 -1945
  701. data/app/assets/javascripts/Cesium/Workers/createSimplePolylineGeometry.js +649 -207
  702. data/app/assets/javascripts/Cesium/Workers/createSphereGeometry.js +481 -127
  703. data/app/assets/javascripts/Cesium/Workers/createSphereOutlineGeometry.js +406 -121
  704. data/app/assets/javascripts/Cesium/Workers/createTaskProcessorWorker.js +1 -1
  705. data/app/assets/javascripts/Cesium/Workers/createVerticesFromHeightmap.js +778 -213
  706. data/app/assets/javascripts/Cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +783 -531
  707. data/app/assets/javascripts/Cesium/Workers/createWallGeometry.js +2323 -1870
  708. data/app/assets/javascripts/Cesium/Workers/createWallOutlineGeometry.js +2320 -1868
  709. data/app/assets/javascripts/Cesium/Workers/transferTypedArrayTest.js +1 -1
  710. data/app/assets/javascripts/Cesium/Workers/upsampleQuantizedTerrainMesh.js +780 -214
  711. data/app/assets/javascripts/Cesium/main.js +1 -1
  712. data/lib/cesium/engine.rb +0 -2
  713. data/lib/cesium/version.rb +1 -1
  714. data/test/dummy/log/development.log +7 -0
  715. data/test/dummy/tmp/cache/assets/B70/EA0/sprockets%2F415763926244628691463c356154a895 +0 -0
  716. data/test/dummy/tmp/cache/assets/BA3/7C0/sprockets%2F9199311873d9097949e7e43421215154 +0 -0
  717. data/test/dummy/tmp/cache/assets/BB8/EE0/sprockets%2F22646b151508362346e2037627746ed0 +0 -0
  718. data/test/dummy/tmp/cache/assets/BD4/E30/sprockets%2F63f08889074483c4176494c5763b2291 +0 -0
  719. data/test/dummy/tmp/cache/assets/BD8/B40/sprockets%2F164720065103c7505436426a256c0e0f +0 -0
  720. data/test/dummy/tmp/cache/assets/BE6/130/sprockets%2Fa803162154793f1463540d2c30093d69 +0 -0
  721. data/test/dummy/tmp/cache/assets/C00/920/sprockets%2F4168a71e5976c541d561972b17848434 +0 -0
  722. data/test/dummy/tmp/cache/assets/C08/870/sprockets%2F36f6990a925f3931d77806412c968733 +0 -0
  723. data/test/dummy/tmp/cache/assets/C09/580/sprockets%2F249187d5a491008c57209948c865893e +0 -0
  724. data/test/dummy/tmp/cache/assets/C11/130/sprockets%2F1b030e38f01f4166e1164512847193d4 +0 -0
  725. data/test/dummy/tmp/cache/assets/C16/010/sprockets%2F44d3496a9801634301be407503c78c05 +0 -0
  726. data/test/dummy/tmp/cache/assets/C16/BE0/sprockets%2F730c481502395cc21463bcc305986308 +0 -0
  727. data/test/dummy/tmp/cache/assets/C1D/0F0/sprockets%2Fd185114097044d84160c2b2c197a8776 +0 -0
  728. data/test/dummy/tmp/cache/assets/C1D/8C0/sprockets%2F5e27813463747ac2a868260fb4224370 +0 -0
  729. data/test/dummy/tmp/cache/assets/C21/280/sprockets%2F501c5298f4631437a27a6b514783e851 +0 -0
  730. data/test/dummy/tmp/cache/assets/C23/D40/sprockets%2F6a100052cb79899083d4e93c16294192 +0 -0
  731. data/test/dummy/tmp/cache/assets/C28/C50/sprockets%2Fa0547c4859498c809088a437023bd254 +0 -0
  732. data/test/dummy/tmp/cache/assets/C2B/E00/sprockets%2Fc04978048739428a79d6348576ab030a +0 -0
  733. data/test/dummy/tmp/cache/assets/C2D/2B0/sprockets%2F8fb4c07a40972c58848150577f808351 +0 -0
  734. data/test/dummy/tmp/cache/assets/C2E/360/sprockets%2F318d19847257c8325ae5d1768373109f +0 -0
  735. data/test/dummy/tmp/cache/assets/C30/6A0/sprockets%2F86639346b855d519444548bde64d2080 +0 -0
  736. data/test/dummy/tmp/cache/assets/C31/430/sprockets%2F757866099770079f1160438af16a47dc +0 -0
  737. data/test/dummy/tmp/cache/assets/C31/890/sprockets%2F82ba164b323d36f31099766199596f73 +0 -0
  738. data/test/dummy/tmp/cache/assets/C38/390/sprockets%2F1a55d53525172efa026d840b35506014 +0 -0
  739. data/test/dummy/tmp/cache/assets/C3B/500/sprockets%2F8a8546745e8f5486045f7797c1619b11 +0 -0
  740. data/test/dummy/tmp/cache/assets/C3C/000/sprockets%2F849cf39629892037a0d865817086d8c3 +0 -0
  741. data/test/dummy/tmp/cache/assets/C3E/980/sprockets%2F00fce10d03861d2101743695f0716c66 +0 -0
  742. data/test/dummy/tmp/cache/assets/C41/190/sprockets%2F93fc2cf200a5a781542882095101d056 +0 -0
  743. data/test/dummy/tmp/cache/assets/C43/910/sprockets%2Fa5310b505465cfc5091562a24c787505 +0 -0
  744. data/test/dummy/tmp/cache/assets/C44/EF0/sprockets%2F240e8542975a86810b0a22a9b1a67146 +0 -0
  745. data/test/dummy/tmp/cache/assets/C45/280/sprockets%2F17431114665e693186d90f05f4c0c30a +0 -0
  746. data/test/dummy/tmp/cache/assets/C48/170/sprockets%2F433accb9424237a1971b90769d040725 +0 -0
  747. data/test/dummy/tmp/cache/assets/C48/A40/sprockets%2F8019259f130684d1a510dbc34203f887 +0 -0
  748. data/test/dummy/tmp/cache/assets/C49/100/sprockets%2F2803de2f7f2329384d141864d40005e5 +0 -0
  749. data/test/dummy/tmp/cache/assets/C4A/720/sprockets%2F7b3e799b999140224211f208a43640ac +0 -0
  750. data/test/dummy/tmp/cache/assets/C4A/930/sprockets%2Fd88401412b1d606300ec88f32478098a +0 -0
  751. data/test/dummy/tmp/cache/assets/C4A/B10/sprockets%2F6a04d003d41e0b3667c93653d6406948 +0 -0
  752. data/test/dummy/tmp/cache/assets/C4A/CD0/sprockets%2F56c4436d8128b0781f3e27192f22a206 +0 -0
  753. data/test/dummy/tmp/cache/assets/C4A/FE0/sprockets%2F9d13c5426cd241c98670a8c203452455 +0 -0
  754. data/test/dummy/tmp/cache/assets/C4C/690/sprockets%2F68055490815dd241d825a63e5207de50 +0 -0
  755. data/test/dummy/tmp/cache/assets/C4C/840/sprockets%2F4a4840159653544c8405091bf3c8b7b2 +0 -0
  756. data/test/dummy/tmp/cache/assets/C4C/870/sprockets%2F87d9111687142ac781f1436630eb4b16 +0 -0
  757. data/test/dummy/tmp/cache/assets/C4C/970/sprockets%2F6d3aaf87a41246f4c815449565022901 +0 -0
  758. data/test/dummy/tmp/cache/assets/C4D/7F0/sprockets%2F7a1a613e8e51e07f56097180649134b2 +0 -0
  759. data/test/dummy/tmp/cache/assets/C4E/0E0/sprockets%2F45db287304280bac49d406998e341171 +0 -0
  760. data/test/dummy/tmp/cache/assets/C4E/2C0/sprockets%2F201e128c44919bc76a327a949149d711 +0 -0
  761. data/test/dummy/tmp/cache/assets/C4E/E90/sprockets%2F94236344d8f073e0855073e296b1c1c2 +0 -0
  762. data/test/dummy/tmp/cache/assets/C4F/690/sprockets%2F771870445807107490b63bfd6e0b543d +0 -0
  763. data/test/dummy/tmp/cache/assets/C53/290/sprockets%2Fccc1d66149733e921216e73563904e09 +0 -0
  764. data/test/dummy/tmp/cache/assets/C53/EC0/sprockets%2F50d8a6419663d2122f30958ca747557a +0 -0
  765. data/test/dummy/tmp/cache/assets/C53/F70/sprockets%2F2593d93f154598557e0b3c52110f4a93 +0 -0
  766. data/test/dummy/tmp/cache/assets/C54/680/sprockets%2F31c6133a4541f42b507e5689b076759f +0 -0
  767. data/test/dummy/tmp/cache/assets/C54/DB0/sprockets%2F2719348e2d22ac92794d138751f702f2 +0 -0
  768. data/test/dummy/tmp/cache/assets/C55/190/sprockets%2F4954963bb7014c50075c9955e92117ad +0 -0
  769. data/test/dummy/tmp/cache/assets/C55/260/sprockets%2F327e55ae4e55071a665577d8204068a7 +0 -0
  770. data/test/dummy/tmp/cache/assets/C56/F70/sprockets%2Fb7936623915940a2406637b4cf39a6a8 +0 -0
  771. data/test/dummy/tmp/cache/assets/C57/090/sprockets%2F1da581873ec878f18603d04d08628271 +0 -0
  772. data/test/dummy/tmp/cache/assets/C57/690/sprockets%2F8ec676600b031750853c8417840dd96f +0 -0
  773. data/test/dummy/tmp/cache/assets/C58/E80/sprockets%2F5a04e8d5c583fd764108461d70570658 +0 -0
  774. data/test/dummy/tmp/cache/assets/C5A/A30/sprockets%2F72626d58007d569ee313823e7c081c59 +0 -0
  775. data/test/dummy/tmp/cache/assets/C5C/600/sprockets%2F6ec94c904254580e8691821109d6ad57 +0 -0
  776. data/test/dummy/tmp/cache/assets/C5D/920/sprockets%2F02a0a3531eb2547a50108216af76052e +0 -0
  777. data/test/dummy/tmp/cache/assets/C5D/D20/sprockets%2F0a72b69dd9748ee93063018a88534418 +0 -0
  778. data/test/dummy/tmp/cache/assets/C5F/0D0/sprockets%2F55884638b487591e0c6a547e164d41e3 +0 -0
  779. data/test/dummy/tmp/cache/assets/C5F/8E0/sprockets%2F05629754bf709956d70b6145a8a538e5 +0 -0
  780. data/test/dummy/tmp/cache/assets/C60/9A0/sprockets%2F8e864573639a6852d1dac09861431a88 +0 -0
  781. data/test/dummy/tmp/cache/assets/C61/690/sprockets%2Fef30d34398c6492a49253844e5705f84 +0 -0
  782. data/test/dummy/tmp/cache/assets/C62/AE0/sprockets%2F73190d40c15416381cfb235a40290a0d +0 -0
  783. data/test/dummy/tmp/cache/assets/C64/8F0/sprockets%2Fd004e9ae71630e404522735a44c52a11 +0 -0
  784. data/test/dummy/tmp/cache/assets/C67/000/sprockets%2F459162b63f85d762351846ff602c978e +0 -0
  785. data/test/dummy/tmp/cache/assets/C67/440/sprockets%2F7b39936ea20f266108d772fa98474956 +0 -0
  786. data/test/dummy/tmp/cache/assets/C69/C10/sprockets%2F0d7a126eccc4329435124e522220378a +0 -0
  787. data/test/dummy/tmp/cache/assets/C6A/290/sprockets%2F080307eac72147555366d0e64d1023ab +0 -0
  788. data/test/dummy/tmp/cache/assets/C6A/A20/sprockets%2F700c900bd7b522d041681823904ae2e4 +0 -0
  789. data/test/dummy/tmp/cache/assets/C6B/180/sprockets%2Fc06c1202213e2846058431e3e707a2ff +0 -0
  790. data/test/dummy/tmp/cache/assets/C6C/810/sprockets%2F2718853497b7c397d445ef31f934d458 +0 -0
  791. data/test/dummy/tmp/cache/assets/C6D/BE0/sprockets%2F64a2905185a109011db1f405b65e267d +0 -0
  792. data/test/dummy/tmp/cache/assets/C6E/7D0/sprockets%2F86970687f69e155a83e951cec4596043 +0 -0
  793. data/test/dummy/tmp/cache/assets/C6F/200/sprockets%2F077d53f7ba6e3516496c867968b27774 +0 -0
  794. data/test/dummy/tmp/cache/assets/C6F/3B0/sprockets%2F072048ba3124b22756e3f534e390f16a +0 -0
  795. data/test/dummy/tmp/cache/assets/C6F/DF0/sprockets%2F19b991b49958f790691b43cc876c9441 +0 -0
  796. data/test/dummy/tmp/cache/assets/C70/1B0/sprockets%2F4811e0613a227e101b26d64ffe154683 +0 -0
  797. data/test/dummy/tmp/cache/assets/C70/1F0/sprockets%2F22a273052fb00b84bce2849f13982530 +0 -0
  798. data/test/dummy/tmp/cache/assets/C70/580/sprockets%2Fe894a965928c1287872a0fd297b99353 +0 -0
  799. data/test/dummy/tmp/cache/assets/C70/850/sprockets%2F7be0213040c3acb682e573608e441970 +0 -0
  800. data/test/dummy/tmp/cache/assets/C70/920/sprockets%2F962b044631a652d42417c109eb24ec81 +0 -0
  801. data/test/dummy/tmp/cache/assets/C72/120/sprockets%2F0e1a725795d10e13e4164c31e88351d1 +0 -0
  802. data/test/dummy/tmp/cache/assets/C72/AC0/sprockets%2F44b7435a96cd144c4b5250e01855a821 +0 -0
  803. data/test/dummy/tmp/cache/assets/C73/5C0/sprockets%2F2080c93263c030d48dc94ea39305327c +0 -0
  804. data/test/dummy/tmp/cache/assets/C73/DA0/sprockets%2F7181b49b99a79c76839798190aa6059f +0 -0
  805. data/test/dummy/tmp/cache/assets/C75/FB0/sprockets%2F93279bdd44712b4008b4d29051904f0c +0 -0
  806. data/test/dummy/tmp/cache/assets/C76/7D0/sprockets%2F4d655f939b8b1a2462ea13042b367711 +0 -0
  807. data/test/dummy/tmp/cache/assets/C77/780/sprockets%2F8638238293665a14e6ce2dca0a402363 +0 -0
  808. data/test/dummy/tmp/cache/assets/C7A/080/sprockets%2Fb7920ad71b46043c642816643ce1a795 +0 -0
  809. data/test/dummy/tmp/cache/assets/C7A/410/sprockets%2F55d7ac1c22d7347551e2a65251d17288 +0 -0
  810. data/test/dummy/tmp/cache/assets/C7C/060/sprockets%2F32694b33b7720372b42698cc49dab360 +0 -0
  811. data/test/dummy/tmp/cache/assets/C7C/820/sprockets%2F75345871dc6b88eb502f1ec014518621 +0 -0
  812. data/test/dummy/tmp/cache/assets/C7C/C90/sprockets%2F92c082511a234b21cf6c479b6f507576 +0 -0
  813. data/test/dummy/tmp/cache/assets/C7D/2C0/sprockets%2F510dcf322fa428af8292d31657315757 +0 -0
  814. data/test/dummy/tmp/cache/assets/C7D/600/sprockets%2F24302027765679153e1c3da944e4af4f +0 -0
  815. data/test/dummy/tmp/cache/assets/C7D/950/sprockets%2F6c0363b13959ad48161b25b1c835657e +0 -0
  816. data/test/dummy/tmp/cache/assets/C7E/020/sprockets%2Fb4872fbe9811293022084aa304d9864e +0 -0
  817. data/test/dummy/tmp/cache/assets/C7E/C90/sprockets%2F1f75e76943967aa1351a564142fa052f +0 -0
  818. data/test/dummy/tmp/cache/assets/C7F/C80/sprockets%2F172018043d58cd572b8e4914de134a79 +0 -0
  819. data/test/dummy/tmp/cache/assets/C7F/DE0/sprockets%2F20684b3051676c77e9b2fa423363ee71 +0 -0
  820. data/test/dummy/tmp/cache/assets/C80/0C0/sprockets%2F3400b37f7b6f95f54bf7768165200b32 +0 -0
  821. data/test/dummy/tmp/cache/assets/C80/140/sprockets%2F171f748250c3977590f1318aa18dd4d2 +0 -0
  822. data/test/dummy/tmp/cache/assets/C80/6D0/sprockets%2F307ca271082e5c14996c36267a288df0 +0 -0
  823. data/test/dummy/tmp/cache/assets/C80/710/sprockets%2F41b1692a0f1a77581854ee4b7709913a +0 -0
  824. data/test/dummy/tmp/cache/assets/C80/CD0/sprockets%2F0032971af77940c1af9e2f460177809a +0 -0
  825. data/test/dummy/tmp/cache/assets/C81/1D0/sprockets%2F2a5c1b8466476169a6e9127cd511e183 +0 -0
  826. data/test/dummy/tmp/cache/assets/C82/D20/sprockets%2F16a1605945c145b495cb85886de4603a +0 -0
  827. data/test/dummy/tmp/cache/assets/C83/180/sprockets%2F49eb5e9d119c601182d7359d1663420f +0 -0
  828. data/test/dummy/tmp/cache/assets/C83/380/sprockets%2F5e3f360822828773e961b800b9d0f1b5 +0 -0
  829. data/test/dummy/tmp/cache/assets/C83/520/sprockets%2F04723d8215f9557d6d801cf6b713824b +0 -0
  830. data/test/dummy/tmp/cache/assets/C83/7D0/sprockets%2F8a78d82e23b532c404b638c51b772855 +0 -0
  831. data/test/dummy/tmp/cache/assets/C83/A10/sprockets%2F888080c85be8f70236b191a37c1954a1 +0 -0
  832. data/test/dummy/tmp/cache/assets/C83/C20/sprockets%2F9399873eb3e83ae6409c409311aa0337 +0 -0
  833. data/test/dummy/tmp/cache/assets/C83/CF0/sprockets%2Fbf48616ee2905ea86820e1435287d601 +0 -0
  834. data/test/dummy/tmp/cache/assets/C84/090/sprockets%2F8b3262ab072d0c591f8919887aa69150 +0 -0
  835. data/test/dummy/tmp/cache/assets/C84/1B0/sprockets%2Ff5833fd0038d74016a792bf285d31819 +0 -0
  836. data/test/dummy/tmp/cache/assets/C84/510/sprockets%2F230e7994085286b76d2ed057d4b453d0 +0 -0
  837. data/test/dummy/tmp/cache/assets/C84/9D0/sprockets%2F95037f9678608da3a107e507baf73432 +0 -0
  838. data/test/dummy/tmp/cache/assets/C84/9F0/sprockets%2F93ea52b0048348f92586340f39ad471d +0 -0
  839. data/test/dummy/tmp/cache/assets/C86/1A0/sprockets%2F46d3f6f265fce039f207282c09068182 +0 -0
  840. data/test/dummy/tmp/cache/assets/C86/390/sprockets%2Fbf94371a30ea291d595677637e50e136 +0 -0
  841. data/test/dummy/tmp/cache/assets/C86/F40/sprockets%2Fa74f2353732b85185fdb46302b91796e +0 -0
  842. data/test/dummy/tmp/cache/assets/C86/FD0/sprockets%2F95be23334957f803517b6b4d2f18e704 +0 -0
  843. data/test/dummy/tmp/cache/assets/C87/130/sprockets%2F70284d571d967d3e17b3151d58e3d419 +0 -0
  844. data/test/dummy/tmp/cache/assets/C87/860/sprockets%2F06a90e1784696233013dd6ee75e4549b +0 -0
  845. data/test/dummy/tmp/cache/assets/C87/990/sprockets%2Fe99c6569107adae32564262cf9313175 +0 -0
  846. data/test/dummy/tmp/cache/assets/C87/9E0/sprockets%2F6830a5d84c87260428ec40874d25d2f6 +0 -0
  847. data/test/dummy/tmp/cache/assets/C88/480/sprockets%2Fa10a30c47b2a89644c3971c78845479f +0 -0
  848. data/test/dummy/tmp/cache/assets/C88/F80/sprockets%2F40018b3244b595e623d6183e8e7d89f1 +0 -0
  849. data/test/dummy/tmp/cache/assets/C89/C70/sprockets%2F8dfab10881842fb5e999140013f60769 +0 -0
  850. data/test/dummy/tmp/cache/assets/C8A/970/sprockets%2F9ac0c50557820ea3209b5e8f87182994 +0 -0
  851. data/test/dummy/tmp/cache/assets/C8B/280/sprockets%2F531c75712039f5913a77f3f8a37c429f +0 -0
  852. data/test/dummy/tmp/cache/assets/C8B/2B0/sprockets%2F757dfb06ec7a511563928862c5e94611 +0 -0
  853. data/test/dummy/tmp/cache/assets/C8C/2C0/sprockets%2F440b422a30853a03a2fd5902b62a62d2 +0 -0
  854. data/test/dummy/tmp/cache/assets/C8E/560/sprockets%2Fd689186c39da83044435b63c38ff6316 +0 -0
  855. data/test/dummy/tmp/cache/assets/C8E/B50/sprockets%2F1dd74756236ef168e5378ab072486f43 +0 -0
  856. data/test/dummy/tmp/cache/assets/C8F/000/sprockets%2F01a04205ee116fbb2683034aa55c8720 +0 -0
  857. data/test/dummy/tmp/cache/assets/C8F/2D0/sprockets%2F04cb2049579f1d33989f85c4333fe058 +0 -0
  858. data/test/dummy/tmp/cache/assets/C8F/3D0/sprockets%2F9a11673b79cf574111cca89f08768617 +0 -0
  859. data/test/dummy/tmp/cache/assets/C8F/780/sprockets%2Fe8d1b692466401f8a06c4697ff368280 +0 -0
  860. data/test/dummy/tmp/cache/assets/C90/3E0/sprockets%2Fed300792c820da1a4a180f3620e15530 +0 -0
  861. data/test/dummy/tmp/cache/assets/C90/640/sprockets%2Fa6375818960a576f5f7322f600487dcf +0 -0
  862. data/test/dummy/tmp/cache/assets/C90/F70/sprockets%2F58e63190d56e5b6e83e6487a84e35141 +0 -0
  863. data/test/dummy/tmp/cache/assets/C91/0D0/sprockets%2F5bd71287903ba95d2fb5743719549e92 +0 -0
  864. data/test/dummy/tmp/cache/assets/C91/8A0/sprockets%2Fe02395f83f6f5201913e1b888f46f645 +0 -0
  865. data/test/dummy/tmp/cache/assets/C91/9F0/sprockets%2F6c7a863808922147872566c40f7bcbd9 +0 -0
  866. data/test/dummy/tmp/cache/assets/C92/590/sprockets%2Fc853abc9c15987065c59c7395f328414 +0 -0
  867. data/test/dummy/tmp/cache/assets/C92/9A0/sprockets%2F6c85f9c609287aa6552391f576f0f405 +0 -0
  868. data/test/dummy/tmp/cache/assets/C92/C30/sprockets%2F2377b6f8d46f2a90820935754366f5ce +0 -0
  869. data/test/dummy/tmp/cache/assets/C92/DE0/sprockets%2F4e99f3610096e97c1287705d942ffb41 +0 -0
  870. data/test/dummy/tmp/cache/assets/C94/D10/sprockets%2F903d696bc385f21c973d97789a31e504 +0 -0
  871. data/test/dummy/tmp/cache/assets/C94/EC0/sprockets%2F1b6eff75c92917925b99948d113705d1 +0 -0
  872. data/test/dummy/tmp/cache/assets/C94/F40/sprockets%2F9a37284984ca20b598cc83b76d792166 +0 -0
  873. data/test/dummy/tmp/cache/assets/C95/B00/sprockets%2F4c52f13c15086198d5664ea4f775499f +0 -0
  874. data/test/dummy/tmp/cache/assets/C95/C40/sprockets%2F5215355bd83595661d71909bd8d896be +0 -0
  875. data/test/dummy/tmp/cache/assets/C95/E80/sprockets%2F188cbb0b17651c27b776977a9965e618 +0 -0
  876. data/test/dummy/tmp/cache/assets/C95/F70/sprockets%2F7d9b253e09f897f582400c3796c573b4 +0 -0
  877. data/test/dummy/tmp/cache/assets/C96/130/sprockets%2F65282946954409cc01f088f5c79ac68d +0 -0
  878. data/test/dummy/tmp/cache/assets/C96/1F0/sprockets%2Fc53ab6d278f5853970ef30296977572b +0 -0
  879. data/test/dummy/tmp/cache/assets/C96/290/sprockets%2Fa3d8033501e001f443c63c158a3a539d +0 -0
  880. data/test/dummy/tmp/cache/assets/C96/4C0/sprockets%2F289f946909e090b275a6b4e618a636d9 +0 -0
  881. data/test/dummy/tmp/cache/assets/C98/010/sprockets%2F3298073c8f769e62c70743ba5e93e945 +0 -0
  882. data/test/dummy/tmp/cache/assets/C98/D10/sprockets%2F26c19ec2f71a6305b43a823df0301254 +0 -0
  883. data/test/dummy/tmp/cache/assets/C99/370/sprockets%2F31a8306eb0a214485560f618913aec0a +0 -0
  884. data/test/dummy/tmp/cache/assets/C99/F10/sprockets%2F42347073fbba17e3be3883820c1000a8 +0 -0
  885. data/test/dummy/tmp/cache/assets/C9A/D60/sprockets%2F1c018c69d4f01ec016141ee18702b931 +0 -0
  886. data/test/dummy/tmp/cache/assets/C9B/380/sprockets%2F4e74f5a9e474b193de760499b1924795 +0 -0
  887. data/test/dummy/tmp/cache/assets/C9B/3A0/sprockets%2Fc094497ae817a3b6ea351032b105e620 +0 -0
  888. data/test/dummy/tmp/cache/assets/C9B/DF0/sprockets%2Ff7f415b64653f36815f3768c916666ec +0 -0
  889. data/test/dummy/tmp/cache/assets/C9C/120/sprockets%2F839161c85f65ed8f68d928b6e4041188 +0 -0
  890. data/test/dummy/tmp/cache/assets/C9C/D40/sprockets%2F72242032d5981411677a1ba91a2dafb6 +0 -0
  891. data/test/dummy/tmp/cache/assets/C9D/160/sprockets%2Fe44f317cb4c4d30720950d9028ee0121 +0 -0
  892. data/test/dummy/tmp/cache/assets/C9D/630/sprockets%2Fc6e27b659f5002ae303131e6d14b5371 +0 -0
  893. data/test/dummy/tmp/cache/assets/C9D/800/sprockets%2F35555164855b7b54f987dcf843cf8608 +0 -0
  894. data/test/dummy/tmp/cache/assets/C9E/160/sprockets%2F77816cc31480820ade5356034adeb311 +0 -0
  895. data/test/dummy/tmp/cache/assets/C9E/810/sprockets%2F7b91bc41a55d3247e3d1602637ab4037 +0 -0
  896. data/test/dummy/tmp/cache/assets/C9F/3A0/sprockets%2F2469356cd21d5a5902b06584ea0b20d5 +0 -0
  897. data/test/dummy/tmp/cache/assets/CA0/050/sprockets%2Fd4520f127c13e5a8423f01f67c5a4326 +0 -0
  898. data/test/dummy/tmp/cache/assets/CA0/600/sprockets%2F1554ed77fd047e539e9f682d35088991 +0 -0
  899. data/test/dummy/tmp/cache/assets/CA0/F30/sprockets%2F982647a591ddc998757090e366d275ed +0 -0
  900. data/test/dummy/tmp/cache/assets/CA1/7D0/sprockets%2F50a78c30747ead33523476cb40a059c2 +0 -0
  901. data/test/dummy/tmp/cache/assets/CA1/9B0/sprockets%2F45053226eab1846002ea7c538960dec2 +0 -0
  902. data/test/dummy/tmp/cache/assets/CA2/AB0/sprockets%2F407fea2123617145a476051d92e05efc +0 -0
  903. data/test/dummy/tmp/cache/assets/CA2/BC0/sprockets%2F336f5a0e85027c07c4460b10d548a7d4 +0 -0
  904. data/test/dummy/tmp/cache/assets/CA2/BD0/sprockets%2F49a81581024283ecaadb62346b47f006 +0 -0
  905. data/test/dummy/tmp/cache/assets/CA5/400/sprockets%2F2b82a7e99c0e05652445e06c1d17d051 +0 -0
  906. data/test/dummy/tmp/cache/assets/CA5/830/sprockets%2F410b486189cd22c6aa26437262e4fb16 +0 -0
  907. data/test/dummy/tmp/cache/assets/CA5/CE0/sprockets%2F849135fbf223644334ec2581842bb0ac +0 -0
  908. data/test/dummy/tmp/cache/assets/CA5/E50/sprockets%2F3e4d2074451614cfb807084ca42447dd +0 -0
  909. data/test/dummy/tmp/cache/assets/CA6/050/sprockets%2F0870154ae63a5f7c83121ef17d0846b2 +0 -0
  910. data/test/dummy/tmp/cache/assets/CA6/700/sprockets%2F60e083d5d4a45568066fad1d33b03519 +0 -0
  911. data/test/dummy/tmp/cache/assets/CA6/AD0/sprockets%2F288da8bd123c34371e2401459e8bd504 +0 -0
  912. data/test/dummy/tmp/cache/assets/CA7/070/sprockets%2F2d0497e8544ea11f3981814312abd3b5 +0 -0
  913. data/test/dummy/tmp/cache/assets/CA7/760/sprockets%2Fa271c3b894511332a0e1ab2589f46f39 +0 -0
  914. data/test/dummy/tmp/cache/assets/CA7/D20/sprockets%2F1f594f974f38ae85702ec10ae4233000 +0 -0
  915. data/test/dummy/tmp/cache/assets/CA7/D40/sprockets%2F09291437a41fbc8b0053920f836c4b9a +0 -0
  916. data/test/dummy/tmp/cache/assets/CA8/4C0/sprockets%2F921af2e1125bd4e722b86684326fd251 +0 -0
  917. data/test/dummy/tmp/cache/assets/CA8/790/sprockets%2F53bf33929435986dd2a0af314b2860b1 +0 -0
  918. data/test/dummy/tmp/cache/assets/CA8/8A0/sprockets%2F09a719af6b910a477a8e63a67016400e +0 -0
  919. data/test/dummy/tmp/cache/assets/CA8/A70/sprockets%2F2747015d607d40e647d84f4a7d02b51c +0 -0
  920. data/test/dummy/tmp/cache/assets/CA8/CF0/sprockets%2F13bc06476e3f5fa270409bd41c760791 +0 -0
  921. data/test/dummy/tmp/cache/assets/CA8/ED0/sprockets%2F95a93b16c02b6e70c4c44c8497153a22 +0 -0
  922. data/test/dummy/tmp/cache/assets/CA8/F50/sprockets%2F6c3b801a4e229736f0b183c35d542e29 +0 -0
  923. data/test/dummy/tmp/cache/assets/CAA/8B0/sprockets%2Ffcec766b6270b4380670c04215991b4c +0 -0
  924. data/test/dummy/tmp/cache/assets/CAA/8D0/sprockets%2Fb49800d7d861022a35878a725b5f15ab +0 -0
  925. data/test/dummy/tmp/cache/assets/CAA/BC0/sprockets%2F42078e308f64bba6180ed593c1257a08 +0 -0
  926. data/test/dummy/tmp/cache/assets/CAA/EF0/sprockets%2F13b3f1125490c5a2e82e24d64f780e39 +0 -0
  927. data/test/dummy/tmp/cache/assets/CAB/320/sprockets%2F78ac4929439bc866a653a2a12a2a5165 +0 -0
  928. data/test/dummy/tmp/cache/assets/CAB/4D0/sprockets%2F21a12d7663bea8213a833927457ed4f4 +0 -0
  929. data/test/dummy/tmp/cache/assets/CAB/720/sprockets%2F491d20bb57b07051ed188bd0f7028894 +0 -0
  930. data/test/dummy/tmp/cache/assets/CAB/750/sprockets%2F212a47ef9bbb0b0a425335683067f878 +0 -0
  931. data/test/dummy/tmp/cache/assets/CAB/890/sprockets%2F2f32992c977b6a811f0e38c6110434cb +0 -0
  932. data/test/dummy/tmp/cache/assets/CAB/D10/sprockets%2F27544d50488ac62f23e860d2f51307ea +0 -0
  933. data/test/dummy/tmp/cache/assets/CAC/F40/sprockets%2Fcce78188e804745f718a00dc1410e254 +0 -0
  934. data/test/dummy/tmp/cache/assets/CAD/4B0/sprockets%2F37111738f65d62046cb8e56440fc4ab6 +0 -0
  935. data/test/dummy/tmp/cache/assets/CAD/6C0/sprockets%2Fe836e0b2710029315f25e31966fa86ae +0 -0
  936. data/test/dummy/tmp/cache/assets/CAD/7F0/sprockets%2F52a078730ed34d144927702ecd5dc475 +0 -0
  937. data/test/dummy/tmp/cache/assets/CAD/890/sprockets%2F0b64e08b0310b5955e4274998de205ce +0 -0
  938. data/test/dummy/tmp/cache/assets/CAD/B70/sprockets%2F57254337db5e0be73c242ea5066744f5 +0 -0
  939. data/test/dummy/tmp/cache/assets/CAD/BE0/sprockets%2Fb4ae46150b8011119cd56d3789cf2288 +0 -0
  940. data/test/dummy/tmp/cache/assets/CAE/200/sprockets%2F48c74ad503720c817e9ba301f1b89583 +0 -0
  941. data/test/dummy/tmp/cache/assets/CAE/290/sprockets%2F8078875c0d64178ad1a11991d25bb44c +0 -0
  942. data/test/dummy/tmp/cache/assets/CAE/490/sprockets%2F51e43a989180ced34952a2b8c644c530 +0 -0
  943. data/test/dummy/tmp/cache/assets/CAE/630/sprockets%2F9d24d9f35a4650e41b4645c5d81b0842 +0 -0
  944. data/test/dummy/tmp/cache/assets/CAE/660/sprockets%2F15b8345da313eea0a96760340c9559e7 +0 -0
  945. data/test/dummy/tmp/cache/assets/CAE/880/sprockets%2Fd6c9a58dd76ec050444d324819262e20 +0 -0
  946. data/test/dummy/tmp/cache/assets/CAE/900/sprockets%2F0e397258561ee4b801e90c11134c9a8f +0 -0
  947. data/test/dummy/tmp/cache/assets/CAE/A40/sprockets%2F037f34c1814912af7f1f5d81080dd962 +0 -0
  948. data/test/dummy/tmp/cache/assets/CAF/8F0/sprockets%2Fdfb0351981258b34aa1a77478e5027e7 +0 -0
  949. data/test/dummy/tmp/cache/assets/CAF/F30/sprockets%2F93a3cb60248afb131545f47709fb6645 +0 -0
  950. data/test/dummy/tmp/cache/assets/CB0/240/sprockets%2F6e09e74c352d05b8f80699035203a1ef +0 -0
  951. data/test/dummy/tmp/cache/assets/CB0/6C0/sprockets%2Fb052b2fcf6576527d249d81d9251304f +0 -0
  952. data/test/dummy/tmp/cache/assets/CB0/6E0/sprockets%2Fb6374ab19b20f2254690b9099d1e73b8 +0 -0
  953. data/test/dummy/tmp/cache/assets/CB0/CB0/sprockets%2F4cf4d8b16152352bc516a4985b74d159 +0 -0
  954. data/test/dummy/tmp/cache/assets/CB0/CE0/sprockets%2F27b63550e66772dd1a53c2f583f1e921 +0 -0
  955. data/test/dummy/tmp/cache/assets/CB0/DA0/sprockets%2F4b44084421b0deeb1d2586e46b676793 +0 -0
  956. data/test/dummy/tmp/cache/assets/CB0/EF0/sprockets%2Fa01136a757d377c8efd38821723f82c0 +0 -0
  957. data/test/dummy/tmp/cache/assets/CB1/370/sprockets%2F590488652cd4303cc682fe9c941400cc +0 -0
  958. data/test/dummy/tmp/cache/assets/CB1/720/sprockets%2F018fab435fc393f71862ec3d10737934 +0 -0
  959. data/test/dummy/tmp/cache/assets/CB1/EA0/sprockets%2F4759506f0564d9c58127be282a1dbd51 +0 -0
  960. data/test/dummy/tmp/cache/assets/CB1/EE0/sprockets%2F931d2725b8c14ed84a31e373fc813188 +0 -0
  961. data/test/dummy/tmp/cache/assets/CB2/300/sprockets%2F224075f1624945daf1f76df5b3689c00 +0 -0
  962. data/test/dummy/tmp/cache/assets/CB2/360/sprockets%2F837c1d6062902933d1293dc73a7cdf47 +0 -0
  963. data/test/dummy/tmp/cache/assets/CB2/5A0/sprockets%2F434a0c6d7c301964022e91e8f99bb727 +0 -0
  964. data/test/dummy/tmp/cache/assets/CB2/E80/sprockets%2F4745738104a5b1a1952a3df67955e8da +0 -0
  965. data/test/dummy/tmp/cache/assets/CB3/360/sprockets%2F957ef101ecd45863632de600c9597a30 +0 -0
  966. data/test/dummy/tmp/cache/assets/CB3/720/sprockets%2F9d2028796498a1ab2c9bbb05665a0964 +0 -0
  967. data/test/dummy/tmp/cache/assets/CB3/AA0/sprockets%2F1a5341f5bbe847df26e716510318779c +0 -0
  968. data/test/dummy/tmp/cache/assets/CB3/CA0/sprockets%2F1d2306c646f5e2bf436be4914a949364 +0 -0
  969. data/test/dummy/tmp/cache/assets/CB3/F40/sprockets%2F65e40dc324ca81a9e17856342a77e591 +0 -0
  970. data/test/dummy/tmp/cache/assets/CB4/240/sprockets%2F940b55ae0d29d6602ca1776712f6f928 +0 -0
  971. data/test/dummy/tmp/cache/assets/CB4/790/sprockets%2F7dd7073112b9c5019e753ffa56463b66 +0 -0
  972. data/test/dummy/tmp/cache/assets/CB4/890/sprockets%2F7f8ab6f90720f3f6b19243c41b366465 +0 -0
  973. data/test/dummy/tmp/cache/assets/CB4/A60/sprockets%2Fa8fe69f6103d6939050046f08db165b5 +0 -0
  974. data/test/dummy/tmp/cache/assets/CB4/C50/sprockets%2Ff9ed4040f57f633876cd232780fa0128 +0 -0
  975. data/test/dummy/tmp/cache/assets/CB4/D90/sprockets%2F5fb974e230f8a43f0146694636b621fc +0 -0
  976. data/test/dummy/tmp/cache/assets/CB5/200/sprockets%2F769c51757781c4a190185baf1297eb3a +0 -0
  977. data/test/dummy/tmp/cache/assets/CB5/220/sprockets%2F014337688f75cc53366e1dee09642f0c +0 -0
  978. data/test/dummy/tmp/cache/assets/CB5/310/sprockets%2F2833f6b19a5ac7453729822f259b2db6 +0 -0
  979. data/test/dummy/tmp/cache/assets/CB5/610/sprockets%2F33ac72c81dc2a77850687691f1172c8d +0 -0
  980. data/test/dummy/tmp/cache/assets/CB5/B60/sprockets%2Fd29dae0ef3568721735ec72217826a28 +0 -0
  981. data/test/dummy/tmp/cache/assets/CB5/D90/sprockets%2F794b6d6ac1939404bb8e644725c0f155 +0 -0
  982. data/test/dummy/tmp/cache/assets/CB6/110/sprockets%2Fef8631566777061408af1c64bd43b3d9 +0 -0
  983. data/test/dummy/tmp/cache/assets/CB6/2C0/sprockets%2F84ca6c105bf1676b9b712908174747de +0 -0
  984. data/test/dummy/tmp/cache/assets/CB7/2E0/sprockets%2Ff1ed26933745612dc769d5fb75c17321 +0 -0
  985. data/test/dummy/tmp/cache/assets/CB7/A10/sprockets%2Fd34b045e6d4215367bcf6f08e4638926 +0 -0
  986. data/test/dummy/tmp/cache/assets/CB7/C10/sprockets%2F262600ead4686290c10b01aa60e0ce20 +0 -0
  987. data/test/dummy/tmp/cache/assets/CB7/D40/sprockets%2F699ef7310dacea441646312a965f7923 +0 -0
  988. data/test/dummy/tmp/cache/assets/CB7/D70/sprockets%2F2cdf87e3d1b3659309903e519a7251f5 +0 -0
  989. data/test/dummy/tmp/cache/assets/CB7/F00/sprockets%2F4e642eb013c8669a50db2fa895234779 +0 -0
  990. data/test/dummy/tmp/cache/assets/CB7/FA0/sprockets%2Fe11b1d418699c10ce19c92b8a8562992 +0 -0
  991. data/test/dummy/tmp/cache/assets/CB8/3B0/sprockets%2Ff293c101ef37e37fad1336567f288805 +0 -0
  992. data/test/dummy/tmp/cache/assets/CB8/550/sprockets%2F4979e71c0cc90484d185942e6ba104e7 +0 -0
  993. data/test/dummy/tmp/cache/assets/CB8/740/sprockets%2F86f24d82550d1d67070d828c593cda29 +0 -0
  994. data/test/dummy/tmp/cache/assets/CB8/7F0/sprockets%2F09b29c8ae26818da63953740870abb86 +0 -0
  995. data/test/dummy/tmp/cache/assets/CB8/980/sprockets%2F49c37cd6ce40901b895305f7393e53a5 +0 -0
  996. data/test/dummy/tmp/cache/assets/CB8/AC0/sprockets%2F31296d9a08823af1b68971b91645fb5c +0 -0
  997. data/test/dummy/tmp/cache/assets/CB8/B30/sprockets%2F13f7cb02749922719ffa184c96160a8f +0 -0
  998. data/test/dummy/tmp/cache/assets/CB8/CE0/sprockets%2Fd82b3fa60209f7b3e19775f13806785a +0 -0
  999. data/test/dummy/tmp/cache/assets/CB9/260/sprockets%2F7cfb2307bb86615c7743d75d164e9354 +0 -0
  1000. data/test/dummy/tmp/cache/assets/CB9/680/sprockets%2F769814cdb49069f4d3c4d73317a360b8 +0 -0
  1001. data/test/dummy/tmp/cache/assets/CB9/BE0/sprockets%2F5616190f6338dd921fae3517868cc8a2 +0 -0
  1002. data/test/dummy/tmp/cache/assets/CB9/D80/sprockets%2Fb71db9a0566b74607e170a9679c5276d +0 -0
  1003. data/test/dummy/tmp/cache/assets/CB9/FB0/sprockets%2F284a0fe46e42c9d28f912830cf479604 +0 -0
  1004. data/test/dummy/tmp/cache/assets/CB9/FC0/sprockets%2Fae273d06916808a44c8c47b744d2883e +0 -0
  1005. data/test/dummy/tmp/cache/assets/CB9/FD0/sprockets%2F868358f2ee30f4326e761014cd2576ee +0 -0
  1006. data/test/dummy/tmp/cache/assets/CBA/1A0/sprockets%2F8d919816a78bf3c2342a9810f35c26c8 +0 -0
  1007. data/test/dummy/tmp/cache/assets/CBA/FE0/sprockets%2Fbcdc17a3d142901246f0010d01d63a92 +0 -0
  1008. data/test/dummy/tmp/cache/assets/CBB/4A0/sprockets%2F836b47264a423975db0f9b8d494424fb +0 -0
  1009. data/test/dummy/tmp/cache/assets/CBB/5D0/sprockets%2F7965dc683e03140b80566dbd76677f0c +0 -0
  1010. data/test/dummy/tmp/cache/assets/CBB/A70/sprockets%2F7d2284b9010bf8c6791f192496a48f3c +0 -0
  1011. data/test/dummy/tmp/cache/assets/CBB/C00/sprockets%2Ff9a9076aa8206b5af62e6759423c3459 +0 -0
  1012. data/test/dummy/tmp/cache/assets/CBC/B00/sprockets%2F781e0bd52bee4781ff663069a5941079 +0 -0
  1013. data/test/dummy/tmp/cache/assets/CBD/1B0/sprockets%2F8d8816a2a02333e97652d4be4d5c7977 +0 -0
  1014. data/test/dummy/tmp/cache/assets/CBD/8F0/sprockets%2Fa06568f2e94fe5040f3f1f18e0965476 +0 -0
  1015. data/test/dummy/tmp/cache/assets/CBD/F90/sprockets%2F96237bbf67793f5df1545a4608345b1f +0 -0
  1016. data/test/dummy/tmp/cache/assets/CBE/150/sprockets%2F6709c8934146f58d1d8e0386b385b1dc +0 -0
  1017. data/test/dummy/tmp/cache/assets/CBE/C50/sprockets%2Ff9a19372c0905a91eb97d9798b131c55 +0 -0
  1018. data/test/dummy/tmp/cache/assets/CBE/C70/sprockets%2F0b854864714ec43d7fd4d62a495d1894 +0 -0
  1019. data/test/dummy/tmp/cache/assets/CBF/0B0/sprockets%2F8b64669d931f40a85fb4b56431769fb2 +0 -0
  1020. data/test/dummy/tmp/cache/assets/CBF/2F0/sprockets%2F663199019e22fac7e8f7dbc876443721 +0 -0
  1021. data/test/dummy/tmp/cache/assets/CBF/8B0/sprockets%2F97895a24c544a015857f2fc94b47d53d +0 -0
  1022. data/test/dummy/tmp/cache/assets/CBF/E20/sprockets%2Fc0e317c628dccdb0418071361a11b342 +0 -0
  1023. data/test/dummy/tmp/cache/assets/CC0/1E0/sprockets%2F153766c84f6119b4238b753ff92cc57e +0 -0
  1024. data/test/dummy/tmp/cache/assets/CC0/3A0/sprockets%2F26cd86b84410a02a601212bd2236f6da +0 -0
  1025. data/test/dummy/tmp/cache/assets/CC1/0C0/sprockets%2Ff1db17a26e4b3c3570f9972f57940779 +0 -0
  1026. data/test/dummy/tmp/cache/assets/CC1/3B0/sprockets%2F737207abfffd639437c1659e439629d0 +0 -0
  1027. data/test/dummy/tmp/cache/assets/CC1/AA0/sprockets%2F267c43786e51759667824117ceea5ade +0 -0
  1028. data/test/dummy/tmp/cache/assets/CC1/E10/sprockets%2F6a72d98c94d5e89008d0515f0467fb47 +0 -0
  1029. data/test/dummy/tmp/cache/assets/CC1/EA0/sprockets%2Fc361f5bd9186644d45e91e77e8700c65 +0 -0
  1030. data/test/dummy/tmp/cache/assets/CC2/070/sprockets%2F50f57bd3b454979837b58a044d892a9c +0 -0
  1031. data/test/dummy/tmp/cache/assets/CC2/820/sprockets%2F9723ad49856657ae3df92c726914a5b4 +0 -0
  1032. data/test/dummy/tmp/cache/assets/CC2/850/sprockets%2F0991ccdfb7d10695d34851e69d719735 +0 -0
  1033. data/test/dummy/tmp/cache/assets/CC2/B00/sprockets%2F75f12caf383557d3a572971d099566fd +0 -0
  1034. data/test/dummy/tmp/cache/assets/CC3/1D0/sprockets%2Fe05f83785d87559e712ef7331136b7fa +0 -0
  1035. data/test/dummy/tmp/cache/assets/CC3/2F0/sprockets%2Fa76e9c1a4024f8697e1493825e4f239f +0 -0
  1036. data/test/dummy/tmp/cache/assets/CC3/520/sprockets%2Faaa0355000f0805367da5825e31e5b2d +0 -0
  1037. data/test/dummy/tmp/cache/assets/CC3/CD0/sprockets%2F4ff64f374e84188231f8460486f4d4cb +0 -0
  1038. data/test/dummy/tmp/cache/assets/CC3/FE0/sprockets%2F6a49a6093617b8d69096cd49d86801af +0 -0
  1039. data/test/dummy/tmp/cache/assets/CC4/210/sprockets%2F941735f953ac8c797ab549ee3063e815 +0 -0
  1040. data/test/dummy/tmp/cache/assets/CC4/610/sprockets%2F0f600ac692c703702d410becdb436560 +0 -0
  1041. data/test/dummy/tmp/cache/assets/CC5/340/sprockets%2F79c459809c63e81dbf88caa155961760 +0 -0
  1042. data/test/dummy/tmp/cache/assets/CC5/FB0/sprockets%2F80e0c2f9390c8a479972b8841e949cb3 +0 -0
  1043. data/test/dummy/tmp/cache/assets/CC6/340/sprockets%2Faf04460bb9266d71004db70120f0ed74 +0 -0
  1044. data/test/dummy/tmp/cache/assets/CC7/560/sprockets%2F749218952e9de9fd31469d955da0a770 +0 -0
  1045. data/test/dummy/tmp/cache/assets/CC7/C90/sprockets%2F86038323baeaf54599ae8856744f297c +0 -0
  1046. data/test/dummy/tmp/cache/assets/CC8/2A0/sprockets%2F3a8642f97f97582307a90a8414e7de9e +0 -0
  1047. data/test/dummy/tmp/cache/assets/CC8/5C0/sprockets%2F623593ea6c022c4642dd63c52ae1201e +0 -0
  1048. data/test/dummy/tmp/cache/assets/CC8/B10/sprockets%2Fd9164d28d858d600bd68333f9c17796f +0 -0
  1049. data/test/dummy/tmp/cache/assets/CC9/1B0/sprockets%2F4d312d451724beb0b28b853dc259401a +0 -0
  1050. data/test/dummy/tmp/cache/assets/CC9/200/sprockets%2F742fb8ce196abf238199836fd7457166 +0 -0
  1051. data/test/dummy/tmp/cache/assets/CC9/720/sprockets%2F4640bd1191bd9e37a578f8799c3757c7 +0 -0
  1052. data/test/dummy/tmp/cache/assets/CC9/7B0/sprockets%2Fabc7b6219110ac27372a23cc6956513b +0 -0
  1053. data/test/dummy/tmp/cache/assets/CC9/E30/sprockets%2F77b10d6c0995c9d5691faa55783887f2 +0 -0
  1054. data/test/dummy/tmp/cache/assets/CC9/EA0/sprockets%2Fa571e551db777b73999fc805787b306f +0 -0
  1055. data/test/dummy/tmp/cache/assets/CCA/380/sprockets%2Fe073c91452b0924043eb4dd1d3a3626b +0 -0
  1056. data/test/dummy/tmp/cache/assets/CCA/920/sprockets%2F215205e30fddd55921aa2e9086730c0b +0 -0
  1057. data/test/dummy/tmp/cache/assets/CCB/0F0/sprockets%2Fb7445a8b50d583c3401b86c1b6c304d0 +0 -0
  1058. data/test/dummy/tmp/cache/assets/CCB/380/sprockets%2F36b8a4080e2a0dc2a4f43aa933945423 +0 -0
  1059. data/test/dummy/tmp/cache/assets/CCB/E20/sprockets%2F79ec53487306397cd3e8569fbb27581d +0 -0
  1060. data/test/dummy/tmp/cache/assets/CCC/080/sprockets%2F1d990a5a2f7133c864bdc253de820001 +0 -0
  1061. data/test/dummy/tmp/cache/assets/CCC/9C0/sprockets%2F9c4f952df49a196a50e49f848c056657 +0 -0
  1062. data/test/dummy/tmp/cache/assets/CCD/2A0/sprockets%2Fd8e7588c5343d749e07d68a53931df93 +0 -0
  1063. data/test/dummy/tmp/cache/assets/CCD/320/sprockets%2F39bf4604985317d62f187f34f76c9f5e +0 -0
  1064. data/test/dummy/tmp/cache/assets/CCD/400/sprockets%2Ff7db620709d9861e813887a2b485f88f +0 -0
  1065. data/test/dummy/tmp/cache/assets/CCD/540/sprockets%2Fe0a827b1d64b02b6c604f39208723ae2 +0 -0
  1066. data/test/dummy/tmp/cache/assets/CCE/890/sprockets%2F9103b5078baff06bf0b346b0a3637850 +0 -0
  1067. data/test/dummy/tmp/cache/assets/CCF/5D0/sprockets%2F231033ec0602e5e3479e9e45a32dc2a5 +0 -0
  1068. data/test/dummy/tmp/cache/assets/CCF/A80/sprockets%2Fb1ee31427714b62bf2715112e59eee11 +0 -0
  1069. data/test/dummy/tmp/cache/assets/CCF/DB0/sprockets%2F65ae3451660470d13147eaed413eac55 +0 -0
  1070. data/test/dummy/tmp/cache/assets/CCF/DD0/sprockets%2F48b052bf1038b30ff6ca155265c3b276 +0 -0
  1071. data/test/dummy/tmp/cache/assets/CD0/040/sprockets%2Fc7969f4117330ae6bc1626e100c02ae8 +0 -0
  1072. data/test/dummy/tmp/cache/assets/CD0/060/sprockets%2F194200d1635fd24089c114cace0fd809 +0 -0
  1073. data/test/dummy/tmp/cache/assets/CD0/310/sprockets%2F825eb4414b555ce140fc46ad24b48061 +0 -0
  1074. data/test/dummy/tmp/cache/assets/CD0/CC0/sprockets%2F771b3a4436b40d00e3890464eb91cbd3 +0 -0
  1075. data/test/dummy/tmp/cache/assets/CD2/3D0/sprockets%2F71f7f67333976f4c98c59233dd3827ff +0 -0
  1076. data/test/dummy/tmp/cache/assets/CD2/4A0/sprockets%2F991fe86378937a4f7e4e5819e5c34e14 +0 -0
  1077. data/test/dummy/tmp/cache/assets/CD2/790/sprockets%2F4c0c03eb3164a4f3b90d114c8862592f +0 -0
  1078. data/test/dummy/tmp/cache/assets/CD2/A70/sprockets%2Fafa74f1e22c50a7d66281a60d0341795 +0 -0
  1079. data/test/dummy/tmp/cache/assets/CD2/BD0/sprockets%2F4903eb530840a7a76ee4fa931e108b12 +0 -0
  1080. data/test/dummy/tmp/cache/assets/CD3/940/sprockets%2F641b837eeb02a10631a0d20acd987887 +0 -0
  1081. data/test/dummy/tmp/cache/assets/CD3/EF0/sprockets%2F90c59425e8b8e5aa14316c4301b71bc6 +0 -0
  1082. data/test/dummy/tmp/cache/assets/CD4/5E0/sprockets%2Fa205678e1618b5bc0332f74f062ab8b6 +0 -0
  1083. data/test/dummy/tmp/cache/assets/CD4/8F0/sprockets%2Ff6b7441a9ecc030939344a1c4e6c1028 +0 -0
  1084. data/test/dummy/tmp/cache/assets/CD4/950/sprockets%2Fa9d42b8887502bfbaea025306a772550 +0 -0
  1085. data/test/dummy/tmp/cache/assets/CD4/A30/sprockets%2Ff3112c09e4e2e532317914748bd0df0d +0 -0
  1086. data/test/dummy/tmp/cache/assets/CD4/A70/sprockets%2F3583df2e043a1b817e472354c2b7d1a7 +0 -0
  1087. data/test/dummy/tmp/cache/assets/CD4/B00/sprockets%2F0111854211a8785de20af26e9e8d5bb1 +0 -0
  1088. data/test/dummy/tmp/cache/assets/CD4/BD0/sprockets%2Fb805aac67c1040af26d8e841804d7308 +0 -0
  1089. data/test/dummy/tmp/cache/assets/CD4/C30/sprockets%2F8146caa7c2d5a8410bf19b14d4602893 +0 -0
  1090. data/test/dummy/tmp/cache/assets/CD4/D30/sprockets%2F6741dd0454f9080fa418ed09a192ab40 +0 -0
  1091. data/test/dummy/tmp/cache/assets/CD5/900/sprockets%2F0603a31cdcdf8ec2872219242c65f336 +0 -0
  1092. data/test/dummy/tmp/cache/assets/CD5/CC0/sprockets%2F843089224034e8c141f9c547cb00bdcd +0 -0
  1093. data/test/dummy/tmp/cache/assets/CD5/F50/sprockets%2F120f1500069ba842c60db619f9e6ac85 +0 -0
  1094. data/test/dummy/tmp/cache/assets/CD6/0D0/sprockets%2F3dc8011007c8862be4e12b98cf691a40 +0 -0
  1095. data/test/dummy/tmp/cache/assets/CD6/510/sprockets%2F15410f3d417f3870b7b09f9f3a0c5b43 +0 -0
  1096. data/test/dummy/tmp/cache/assets/CD6/A10/sprockets%2F2fe23b7d391780f61215a714e2b7ec05 +0 -0
  1097. data/test/dummy/tmp/cache/assets/CD6/A90/sprockets%2F667a0820029dd4632401c94ef04cdfd5 +0 -0
  1098. data/test/dummy/tmp/cache/assets/CD6/D70/sprockets%2Fb3ac25a40753c9b2472e3e759334ae61 +0 -0
  1099. data/test/dummy/tmp/cache/assets/CD7/370/sprockets%2F71dd9364063592e030066a72ba77ddbc +0 -0
  1100. data/test/dummy/tmp/cache/assets/CD7/720/sprockets%2F2d8001653bf8cf5347a1cb3836e257d0 +0 -0
  1101. data/test/dummy/tmp/cache/assets/CD7/760/sprockets%2F7a82d6b6895ca9a5e3a414318f11a430 +0 -0
  1102. data/test/dummy/tmp/cache/assets/CD7/780/sprockets%2F08596628d7b1440d26ba09e251ffe2a0 +0 -0
  1103. data/test/dummy/tmp/cache/assets/CD7/AF0/sprockets%2F8ea5147f262ca0db032440670e576f7d +0 -0
  1104. data/test/dummy/tmp/cache/assets/CD7/FE0/sprockets%2Fc1900103439ec4a366c54f6574f48aba +0 -0
  1105. data/test/dummy/tmp/cache/assets/CD8/B20/sprockets%2F364405189b0c5f332ae0fe14a05f95d8 +0 -0
  1106. data/test/dummy/tmp/cache/assets/CD8/C00/sprockets%2Fe3431564d507425b4d87a2d48aa8a34d +0 -0
  1107. data/test/dummy/tmp/cache/assets/CD8/D10/sprockets%2F443f419118cbe6bf5e16765d32a9400a +0 -0
  1108. data/test/dummy/tmp/cache/assets/CD9/200/sprockets%2F3427d0dd3c506916339cf92e307ae04d +0 -0
  1109. data/test/dummy/tmp/cache/assets/CD9/3C0/sprockets%2Fb082b86281b7a873eb2250f31854afd4 +0 -0
  1110. data/test/dummy/tmp/cache/assets/CD9/830/sprockets%2F056590d09da88c9b1920143a3b37d6ea +0 -0
  1111. data/test/dummy/tmp/cache/assets/CD9/8D0/sprockets%2F7d0adf8915d0b1fca18f919929104220 +0 -0
  1112. data/test/dummy/tmp/cache/assets/CDA/2C0/sprockets%2F40a829c1758af25c8238f3070ab5d0c9 +0 -0
  1113. data/test/dummy/tmp/cache/assets/CDA/700/sprockets%2F24c5884ae3352ca70a9546d02bb6e844 +0 -0
  1114. data/test/dummy/tmp/cache/assets/CDA/8B0/sprockets%2F14f573b31a508fc9a74d384a82104ec7 +0 -0
  1115. data/test/dummy/tmp/cache/assets/CDB/360/sprockets%2F840a5e454cf0a80d6c294432eac39258 +0 -0
  1116. data/test/dummy/tmp/cache/assets/CDB/390/sprockets%2F53426e5c2fbb6e454271f97b01b872c1 +0 -0
  1117. data/test/dummy/tmp/cache/assets/CDB/FE0/sprockets%2F010d42b73ce096ab163fc07b846f4697 +0 -0
  1118. data/test/dummy/tmp/cache/assets/CDB/FF0/sprockets%2F28a75074023f9a605dc4578ecfd2e122 +0 -0
  1119. data/test/dummy/tmp/cache/assets/CDC/3A0/sprockets%2F2bdb3f8510205db3f3bf4605947851f7 +0 -0
  1120. data/test/dummy/tmp/cache/assets/CDC/910/sprockets%2F4127b7bf7565f5eb82a54f5012c7512d +0 -0
  1121. data/test/dummy/tmp/cache/assets/CDC/9C0/sprockets%2F81c08804c53996c9cbbbb9c5b0471025 +0 -0
  1122. data/test/dummy/tmp/cache/assets/CDC/C80/sprockets%2F0bfd35e879aa5b71147405519bff2622 +0 -0
  1123. data/test/dummy/tmp/cache/assets/CDC/C90/sprockets%2Fdf275148311cc0a3c977d1d52683e4a7 +0 -0
  1124. data/test/dummy/tmp/cache/assets/CDC/D70/sprockets%2F3a839de3659ba10d4f72a04e624327d7 +0 -0
  1125. data/test/dummy/tmp/cache/assets/CDC/E00/sprockets%2Fc1f1468ab4aee474745a15710e4a9538 +0 -0
  1126. data/test/dummy/tmp/cache/assets/CDC/F20/sprockets%2Fc35c0a48695530638225806ba4fae6bf +0 -0
  1127. data/test/dummy/tmp/cache/assets/CDC/F40/sprockets%2Fc342722b6d9e42814386ef1de21b8a53 +0 -0
  1128. data/test/dummy/tmp/cache/assets/CDD/3E0/sprockets%2Fa8a24b94a9671009427cea4d884aa256 +0 -0
  1129. data/test/dummy/tmp/cache/assets/CDD/4E0/sprockets%2F7a22053281c92bb5f06995dcb1bc5866 +0 -0
  1130. data/test/dummy/tmp/cache/assets/CDD/5A0/sprockets%2Fb7dfa40599517f39400db36240fa16c9 +0 -0
  1131. data/test/dummy/tmp/cache/assets/CDD/770/sprockets%2F29c146b4b8a6109f305da7a6d47386a5 +0 -0
  1132. data/test/dummy/tmp/cache/assets/CDD/820/sprockets%2F013468b4581ca790dae9f03f70071fd8 +0 -0
  1133. data/test/dummy/tmp/cache/assets/CDD/8C0/sprockets%2Fbee326071215e6c434c0f091f38c5e88 +0 -0
  1134. data/test/dummy/tmp/cache/assets/CDD/B20/sprockets%2Ff408a3907451b845100f92d7e904fbfa +0 -0
  1135. data/test/dummy/tmp/cache/assets/CDD/BE0/sprockets%2F8756a8072a115c8ec63a7ec2461485ba +0 -0
  1136. data/test/dummy/tmp/cache/assets/CDD/C10/sprockets%2Fcc0b9b27c73e2960c038ff5112b38666 +0 -0
  1137. data/test/dummy/tmp/cache/assets/CDD/D40/sprockets%2F57d10e644e2935b92803de4516fa3b5c +0 -0
  1138. data/test/dummy/tmp/cache/assets/CDE/400/sprockets%2F1a1e6562a81a5be59fe6c205797711d3 +0 -0
  1139. data/test/dummy/tmp/cache/assets/CDE/5B0/sprockets%2F2949a1487f82baa4bb0121945db7d288 +0 -0
  1140. data/test/dummy/tmp/cache/assets/CDE/640/sprockets%2F39d72e391539a0a64982ecde1200f66a +0 -0
  1141. data/test/dummy/tmp/cache/assets/CDE/660/sprockets%2F7a61352a3829824ad29457df3e23eca4 +0 -0
  1142. data/test/dummy/tmp/cache/assets/CDF/3A0/sprockets%2F3ae02eef2a1aa9779480d1027828c865 +0 -0
  1143. data/test/dummy/tmp/cache/assets/CDF/400/sprockets%2Fa008852da54f1bf9693830b51658ac7b +0 -0
  1144. data/test/dummy/tmp/cache/assets/CDF/410/sprockets%2F72f4f8b59311d00416f921a7a9c7fe14 +0 -0
  1145. data/test/dummy/tmp/cache/assets/CDF/610/sprockets%2F50b229b6ae22759d78144894a10dfb4e +0 -0
  1146. data/test/dummy/tmp/cache/assets/CDF/6C0/sprockets%2F44a74e092fc54e346f6a361f056503fe +0 -0
  1147. data/test/dummy/tmp/cache/assets/CDF/750/sprockets%2F150a7c3c91a07a30e664fa886693ad67 +0 -0
  1148. data/test/dummy/tmp/cache/assets/CDF/A70/sprockets%2F06f44917744447f1655c4d2aad5d0de4 +0 -0
  1149. data/test/dummy/tmp/cache/assets/CDF/B40/sprockets%2Fbb77dbf8982340452a6bda4e53053494 +0 -0
  1150. data/test/dummy/tmp/cache/assets/CDF/B40/sprockets%2Fd90abc6d71641d7c219031c864af9754 +0 -0
  1151. data/test/dummy/tmp/cache/assets/CE0/0A0/sprockets%2F9f83fa0f5605423cc68165c3b7f1b831 +0 -0
  1152. data/test/dummy/tmp/cache/assets/CE0/150/sprockets%2Fff06616bc548913b33660c93ea6663ac +0 -0
  1153. data/test/dummy/tmp/cache/assets/CE0/310/sprockets%2F9ee5a8c15b510b043e88f5826cc33409 +0 -0
  1154. data/test/dummy/tmp/cache/assets/CE0/340/sprockets%2F284aa881b4e78191f904a950baf6209b +0 -0
  1155. data/test/dummy/tmp/cache/assets/CE0/6A0/sprockets%2Fbc57607042f83d29d06adb986528c31b +0 -0
  1156. data/test/dummy/tmp/cache/assets/CE0/DE0/sprockets%2F39b36b9c6a734b4dad50930d88540d72 +0 -0
  1157. data/test/dummy/tmp/cache/assets/CE1/0C0/sprockets%2Fc394dea3dc5163500f7a9eb265953347 +0 -0
  1158. data/test/dummy/tmp/cache/assets/CE1/470/sprockets%2F983d99d27b4b3592a5e6ac7d073010f2 +0 -0
  1159. data/test/dummy/tmp/cache/assets/CE1/4D0/sprockets%2F6225b3f8be16410c0c82288fb84944cf +0 -0
  1160. data/test/dummy/tmp/cache/assets/CE1/6D0/sprockets%2Ff9c5663fd99dc061ae23541a08e40680 +0 -0
  1161. data/test/dummy/tmp/cache/assets/CE1/710/sprockets%2F26af7b6d5c4ba2939130f3984b3f6415 +0 -0
  1162. data/test/dummy/tmp/cache/assets/CE1/DD0/sprockets%2F92603e14dbdc46d0105d70a886889f0e +0 -0
  1163. data/test/dummy/tmp/cache/assets/CE1/E50/sprockets%2F3c417ddc0b7d41ef67749ca332316578 +0 -0
  1164. data/test/dummy/tmp/cache/assets/CE1/F70/sprockets%2F344548525d95f8dcb0f266cf75ba4220 +0 -0
  1165. data/test/dummy/tmp/cache/assets/CE2/2E0/sprockets%2F43321dc8922d569786f3e3493b1aca2e +0 -0
  1166. data/test/dummy/tmp/cache/assets/CE2/3B0/sprockets%2F8553af0a6d6470721b885f1f072fe2c7 +0 -0
  1167. data/test/dummy/tmp/cache/assets/CE2/500/sprockets%2F30f8a44a9e40ac4f70d91679a90a8607 +0 -0
  1168. data/test/dummy/tmp/cache/assets/CE2/6F0/sprockets%2F804bb91ff37d3660bff1145654590bd7 +0 -0
  1169. data/test/dummy/tmp/cache/assets/CE2/870/sprockets%2Fdfc00541846d52d8664d7090e03b9eb8 +0 -0
  1170. data/test/dummy/tmp/cache/assets/CE2/8A0/sprockets%2Fa2c93e9943480db60c7708231eda937b +0 -0
  1171. data/test/dummy/tmp/cache/assets/CE2/950/sprockets%2F663338454ffec19c3c93b8006070d5de +0 -0
  1172. data/test/dummy/tmp/cache/assets/CE2/9E0/sprockets%2F66a32be0e7d4510279e1fd8671a74d83 +0 -0
  1173. data/test/dummy/tmp/cache/assets/CE2/F10/sprockets%2Fa5794166683dc3f6ef423306a092ec4c +0 -0
  1174. data/test/dummy/tmp/cache/assets/CE3/160/sprockets%2F9b7a40c1f4ef4229b043a96698de4234 +0 -0
  1175. data/test/dummy/tmp/cache/assets/CE3/290/sprockets%2F2b7625038f6f3a615b5d49c507eb638c +0 -0
  1176. data/test/dummy/tmp/cache/assets/CE3/470/sprockets%2Fa13229635ceb37ef34c94f4a1877117f +0 -0
  1177. data/test/dummy/tmp/cache/assets/CE3/4B0/sprockets%2F4ef804e2710c5921fd770bf913ae8068 +0 -0
  1178. data/test/dummy/tmp/cache/assets/CE3/520/sprockets%2F6476f636c225ae17b555e2f90322b8fc +0 -0
  1179. data/test/dummy/tmp/cache/assets/CE3/5A0/sprockets%2F13f6bb14f6138bc58c48704d03378d9d +0 -0
  1180. data/test/dummy/tmp/cache/assets/CE3/B60/sprockets%2Fa2e894941598cd923e2c4c9052e03af1 +0 -0
  1181. data/test/dummy/tmp/cache/assets/CE3/E60/sprockets%2Ffb6b2018c00f29225e926afcd3788863 +0 -0
  1182. data/test/dummy/tmp/cache/assets/CE3/FC0/sprockets%2F66711511a9b1286d5548c6bf1c7bf3e8 +0 -0
  1183. data/test/dummy/tmp/cache/assets/CE4/0C0/sprockets%2F54039551e7915c9bb5d514c4be46d27e +0 -0
  1184. data/test/dummy/tmp/cache/assets/CE4/130/sprockets%2F9a139942cd593a872cd21af5372ff235 +0 -0
  1185. data/test/dummy/tmp/cache/assets/CE4/140/sprockets%2F95c089facf860ae0b332b6671642917e +0 -0
  1186. data/test/dummy/tmp/cache/assets/CE4/970/sprockets%2F32866ea407500e99bb62e5c62a8617df +0 -0
  1187. data/test/dummy/tmp/cache/assets/CE5/2C0/sprockets%2F2e7e02748f316add5563de824b9526d2 +0 -0
  1188. data/test/dummy/tmp/cache/assets/CE5/380/sprockets%2F2b93db591cc871673288fe40d14f360e +0 -0
  1189. data/test/dummy/tmp/cache/assets/CE5/840/sprockets%2F11b05d355ea016da79fe243f9805999b +0 -0
  1190. data/test/dummy/tmp/cache/assets/CE5/A40/sprockets%2Fb3d6e316b2b9e457c2f7037a96d01859 +0 -0
  1191. data/test/dummy/tmp/cache/assets/CE5/C80/sprockets%2F37e6a27fa0588533d06cb58e09b4b584 +0 -0
  1192. data/test/dummy/tmp/cache/assets/CE6/0B0/sprockets%2Fb3e8c9040f2df4229b9d142588b59c16 +0 -0
  1193. data/test/dummy/tmp/cache/assets/CE6/210/sprockets%2F6b9b4b82ed79654259f177c02d8bc040 +0 -0
  1194. data/test/dummy/tmp/cache/assets/CE6/250/sprockets%2Fed7d322e28c360a5be419f8c83557534 +0 -0
  1195. data/test/dummy/tmp/cache/assets/CE6/320/sprockets%2Fed9936a17a2843e6059215d19fb209ed +0 -0
  1196. data/test/dummy/tmp/cache/assets/CE6/380/sprockets%2Fd01c51f0838d8e83705f7ce63225b97b +0 -0
  1197. data/test/dummy/tmp/cache/assets/CE6/DD0/sprockets%2Ffd590df3a5e39763c7258802d8233c1c +0 -0
  1198. data/test/dummy/tmp/cache/assets/CE7/7E0/sprockets%2F9081847a834bbf79fd76a55c1148dc20 +0 -0
  1199. data/test/dummy/tmp/cache/assets/CE7/950/sprockets%2Fff862019c138153201ac6ccd597987ed +0 -0
  1200. data/test/dummy/tmp/cache/assets/CE7/9F0/sprockets%2F037a29d79b76c928626f3a3bcd87310e +0 -0
  1201. data/test/dummy/tmp/cache/assets/CE7/F00/sprockets%2Fe93ef14e64157334de37b164fa2d1589 +0 -0
  1202. data/test/dummy/tmp/cache/assets/CE8/2C0/sprockets%2F1fd87d34113f4744598518fe09ddd0e0 +0 -0
  1203. data/test/dummy/tmp/cache/assets/CE8/870/sprockets%2F1574e536fd30e824bb3e916f82a9066f +0 -0
  1204. data/test/dummy/tmp/cache/assets/CE8/910/sprockets%2F080f8c0b62830c954799a2d5edf591d2 +0 -0
  1205. data/test/dummy/tmp/cache/assets/CE8/CD0/sprockets%2F93de125e583b5e116af4d5159af69076 +0 -0
  1206. data/test/dummy/tmp/cache/assets/CE8/FB0/sprockets%2F2c33796115a3ea9eead9620776473eb8 +0 -0
  1207. data/test/dummy/tmp/cache/assets/CE9/380/sprockets%2Fdb39605a961a8c0f9150d48ca81938f7 +0 -0
  1208. data/test/dummy/tmp/cache/assets/CE9/8F0/sprockets%2F505f0e4ca77daae7369943e392a85607 +0 -0
  1209. data/test/dummy/tmp/cache/assets/CE9/9C0/sprockets%2Fbf411959ef26087692cb04c7a98f4a50 +0 -0
  1210. data/test/dummy/tmp/cache/assets/CE9/C60/sprockets%2F7eef977dbc06c32f097f2825166603b3 +0 -0
  1211. data/test/dummy/tmp/cache/assets/CE9/DA0/sprockets%2F44572af4a8be42d567e38e80a729651d +0 -0
  1212. data/test/dummy/tmp/cache/assets/CEA/310/sprockets%2Ff042d3ef9f0b34c3996563990f703a7b +0 -0
  1213. data/test/dummy/tmp/cache/assets/CEA/650/sprockets%2F23e7e5e0a1649a489dd3ef092e851933 +0 -0
  1214. data/test/dummy/tmp/cache/assets/CEA/790/sprockets%2F08888489e9e0723c2ee23b2e13f0ee36 +0 -0
  1215. data/test/dummy/tmp/cache/assets/CEA/8C0/sprockets%2F4d757db04f37413787a19a4579bb5bb9 +0 -0
  1216. data/test/dummy/tmp/cache/assets/CEA/8F0/sprockets%2F9a6c20bb09238891ef59fc17547b286a +0 -0
  1217. data/test/dummy/tmp/cache/assets/CEA/D20/sprockets%2F1976f0ca183934d8bc849b53f170ef08 +0 -0
  1218. data/test/dummy/tmp/cache/assets/CEA/D40/sprockets%2F13f82f6e55726a092f6718777cb3ab3e +0 -0
  1219. data/test/dummy/tmp/cache/assets/CEB/130/sprockets%2F80df7fdb158154fe724b345592f274b7 +0 -0
  1220. data/test/dummy/tmp/cache/assets/CEB/1D0/sprockets%2Fb3014c30d4b5ad090fb00a5a303b7929 +0 -0
  1221. data/test/dummy/tmp/cache/assets/CEB/570/sprockets%2Fa479c9185e3057b9044491bc5bf6fb38 +0 -0
  1222. data/test/dummy/tmp/cache/assets/CEB/660/sprockets%2F8d5dac99dad6219456d03326811e58e7 +0 -0
  1223. data/test/dummy/tmp/cache/assets/CEB/8A0/sprockets%2F159eb5218f66cb1523956585e1add78c +0 -0
  1224. data/test/dummy/tmp/cache/assets/CEB/E20/sprockets%2F2392417f6ade39578bbc805a7f15458d +0 -0
  1225. data/test/dummy/tmp/cache/assets/CEC/230/sprockets%2F06c6439d6734e9122d0429d99bd76ceb +0 -0
  1226. data/test/dummy/tmp/cache/assets/CEC/290/sprockets%2F7077b1e5731389d9236ffae8142e8bd3 +0 -0
  1227. data/test/dummy/tmp/cache/assets/CEC/350/sprockets%2F6e753e09528676b0667afde7e251c8b0 +0 -0
  1228. data/test/dummy/tmp/cache/assets/CEC/4C0/sprockets%2Fdd5b21c9738f4781b4d32d6425835fd8 +0 -0
  1229. data/test/dummy/tmp/cache/assets/CEC/700/sprockets%2F41fb69b7745f7118f9fd12843d354d1d +0 -0
  1230. data/test/dummy/tmp/cache/assets/CEC/830/sprockets%2Fc4e97e059861f48bd5d644184e14b8a1 +0 -0
  1231. data/test/dummy/tmp/cache/assets/CEC/9B0/sprockets%2F623d2921e3b7bd6cbe9288253e18e776 +0 -0
  1232. data/test/dummy/tmp/cache/assets/CEC/FC0/sprockets%2F0d2e77a643248769fd2f6c6d34389bc0 +0 -0
  1233. data/test/dummy/tmp/cache/assets/CED/3F0/sprockets%2F2e9385419f85782925bea76024cddde0 +0 -0
  1234. data/test/dummy/tmp/cache/assets/CED/4D0/sprockets%2F370f12be838ce375948b6d4f37a46c37 +0 -0
  1235. data/test/dummy/tmp/cache/assets/CED/610/sprockets%2F8f08d75c4e213f271c616476ee59d8b2 +0 -0
  1236. data/test/dummy/tmp/cache/assets/CED/610/sprockets%2Fc464c2668d8d57244934c45b9a28e7ba +0 -0
  1237. data/test/dummy/tmp/cache/assets/CED/820/sprockets%2F95259b083f2fe5806fc98b262fca2437 +0 -0
  1238. data/test/dummy/tmp/cache/assets/CED/9C0/sprockets%2F25aa2692a87f9b8f53c70b525997e42b +0 -0
  1239. data/test/dummy/tmp/cache/assets/CEE/280/sprockets%2F76be09b87b67819e2d65b3ac61910d96 +0 -0
  1240. data/test/dummy/tmp/cache/assets/CEE/320/sprockets%2F6ef494b9dfed486274ef54901251c172 +0 -0
  1241. data/test/dummy/tmp/cache/assets/CEE/440/sprockets%2F05a5ffa8911066898ad595b4b9971d1c +0 -0
  1242. data/test/dummy/tmp/cache/assets/CEE/5E0/sprockets%2Fcd968453ce27bc7dc058e871c6976111 +0 -0
  1243. data/test/dummy/tmp/cache/assets/CEF/F90/sprockets%2Fb3af8b93c6e451443df642e6846179f4 +0 -0
  1244. data/test/dummy/tmp/cache/assets/CEF/FB0/sprockets%2F1344982637e6864df2f0e60bcfcc9745 +0 -0
  1245. data/test/dummy/tmp/cache/assets/CEF/FF0/sprockets%2F616967591b95dfe51f4eb048f0ed4426 +0 -0
  1246. data/test/dummy/tmp/cache/assets/CF0/2D0/sprockets%2F2a12ef035037b0440f54e40e6ad2db70 +0 -0
  1247. data/test/dummy/tmp/cache/assets/CF0/3E0/sprockets%2F0219f445a952da190d37779cef6ea499 +0 -0
  1248. data/test/dummy/tmp/cache/assets/CF0/8D0/sprockets%2Fd87a027ff95cd7b9080555d76f16824a +0 -0
  1249. data/test/dummy/tmp/cache/assets/CF0/C60/sprockets%2F6dd5c450564d64588695223ef7d2fe4a +0 -0
  1250. data/test/dummy/tmp/cache/assets/CF0/CD0/sprockets%2F4452429dc09139968df6e8b57bb8ad24 +0 -0
  1251. data/test/dummy/tmp/cache/assets/CF0/D70/sprockets%2Fef73b2f0c344ef70e7935b876d544187 +0 -0
  1252. data/test/dummy/tmp/cache/assets/CF1/2F0/sprockets%2F7259bd2bd5768d0f7fc5176be3884614 +0 -0
  1253. data/test/dummy/tmp/cache/assets/CF1/7D0/sprockets%2F66b85d77b399e98bc9387a3811ab1d14 +0 -0
  1254. data/test/dummy/tmp/cache/assets/CF2/740/sprockets%2F8729f01be5f82ddd5185b7e38773708a +0 -0
  1255. data/test/dummy/tmp/cache/assets/CF2/970/sprockets%2F9d71592e5dd487a7135c722e2a7f45f9 +0 -0
  1256. data/test/dummy/tmp/cache/assets/CF3/1F0/sprockets%2F022005741ac6e3b8b0d0b3d64c29b92b +0 -0
  1257. data/test/dummy/tmp/cache/assets/CF3/200/sprockets%2F86629853277ff066ff97a8f0d1b3a5a4 +0 -0
  1258. data/test/dummy/tmp/cache/assets/CF3/3C0/sprockets%2F51e42f76f5859c6497179b22b40c8dde +0 -0
  1259. data/test/dummy/tmp/cache/assets/CF3/620/sprockets%2F6e512892899d83e072fcffd654254b1d +0 -0
  1260. data/test/dummy/tmp/cache/assets/CF3/850/sprockets%2Fb94be7f87b7b2159d9909e90e0f90620 +0 -0
  1261. data/test/dummy/tmp/cache/assets/CF3/8F0/sprockets%2F979d1a04836f5c2e9c291e23ef79367a +0 -0
  1262. data/test/dummy/tmp/cache/assets/CF4/230/sprockets%2Ff23ca5926549df84d0e5744bf881628e +0 -0
  1263. data/test/dummy/tmp/cache/assets/CF4/2A0/sprockets%2F7fe03b6e6847eaaf067731842957d92f +0 -0
  1264. data/test/dummy/tmp/cache/assets/CF4/4B0/sprockets%2Fe71842466354e399f04d0ce8c6fe953d +0 -0
  1265. data/test/dummy/tmp/cache/assets/CF4/5E0/sprockets%2F9796c9a8269cae458eb3537f9b30c234 +0 -0
  1266. data/test/dummy/tmp/cache/assets/CF4/6F0/sprockets%2F9cb6c3571023113b0af4a1a326fb7b29 +0 -0
  1267. data/test/dummy/tmp/cache/assets/CF4/9E0/sprockets%2F3ec2020f0e16ea2409a9ab577e013a35 +0 -0
  1268. data/test/dummy/tmp/cache/assets/CF5/050/sprockets%2F9bbb9f0428f7f282017d43ed8376758f +0 -0
  1269. data/test/dummy/tmp/cache/assets/CF5/E20/sprockets%2F0081f109024251dfd417f9f1a6cd0ba1 +0 -0
  1270. data/test/dummy/tmp/cache/assets/CF5/E70/sprockets%2F234ba1c230c43ee15548087dc4a3f04a +0 -0
  1271. data/test/dummy/tmp/cache/assets/CF6/3F0/sprockets%2Fc8a187687d86c86d20ccd8d39258428a +0 -0
  1272. data/test/dummy/tmp/cache/assets/CF6/880/sprockets%2Ff7f85513ffd669855b1bd5358193d5d2 +0 -0
  1273. data/test/dummy/tmp/cache/assets/CF7/900/sprockets%2F25954532c431e017d2233aed3dd10edc +0 -0
  1274. data/test/dummy/tmp/cache/assets/CF7/F70/sprockets%2Fae6e6576ed90a32b820967df2b797397 +0 -0
  1275. data/test/dummy/tmp/cache/assets/CF8/420/sprockets%2F646a9a8f589a6440b5a91498666ffbb5 +0 -0
  1276. data/test/dummy/tmp/cache/assets/CF8/460/sprockets%2Fed2bf0482ac1b94d79998947722594bf +0 -0
  1277. data/test/dummy/tmp/cache/assets/CF8/D50/sprockets%2F85b7586ada7412939757fedf63a8b644 +0 -0
  1278. data/test/dummy/tmp/cache/assets/CF8/E50/sprockets%2F6728e09dd75320afa91170a4bfbb0030 +0 -0
  1279. data/test/dummy/tmp/cache/assets/CF9/710/sprockets%2Fa6680189367ffaf80c58dc19d6583e38 +0 -0
  1280. data/test/dummy/tmp/cache/assets/CF9/CA0/sprockets%2Fe3287c6767a894efd1e4461ae21599e8 +0 -0
  1281. data/test/dummy/tmp/cache/assets/CFA/070/sprockets%2F242580b78eb63aa6b89e6b62789796ee +0 -0
  1282. data/test/dummy/tmp/cache/assets/CFA/0D0/sprockets%2F05ccf5ba00db8fbb271a929924530043 +0 -0
  1283. data/test/dummy/tmp/cache/assets/CFA/2C0/sprockets%2F1d13d50c44706754611cd6b6d1cc30ed +0 -0
  1284. data/test/dummy/tmp/cache/assets/CFA/570/sprockets%2F71fa5e8db4d49036a8b201022d54cb23 +0 -0
  1285. data/test/dummy/tmp/cache/assets/CFA/640/sprockets%2Ff60ca5388719314b4780ba2eba530a1a +0 -0
  1286. data/test/dummy/tmp/cache/assets/CFA/720/sprockets%2Fdc2ea106de9ab60be261248f21059224 +0 -0
  1287. data/test/dummy/tmp/cache/assets/CFA/B50/sprockets%2F8505a240bc3a2e4b1a953417c73ebc72 +0 -0
  1288. data/test/dummy/tmp/cache/assets/CFA/DC0/sprockets%2F7fd2f2c83201801df1a530c2f650f26a +0 -0
  1289. data/test/dummy/tmp/cache/assets/CFA/E80/sprockets%2F1e3305c0e72303f1d85bc3e7d5a1b067 +0 -0
  1290. data/test/dummy/tmp/cache/assets/CFB/180/sprockets%2Fac8c5119b033c030096e7e37e0a95a0c +0 -0
  1291. data/test/dummy/tmp/cache/assets/CFB/980/sprockets%2F7d6839a51b968136f9f8d2bf3349e53e +0 -0
  1292. data/test/dummy/tmp/cache/assets/CFB/AB0/sprockets%2F4310d259c9d51b895d0b3c1a6eb031d2 +0 -0
  1293. data/test/dummy/tmp/cache/assets/CFC/0E0/sprockets%2Fe99f6ace35113dfc044311e14a605a51 +0 -0
  1294. data/test/dummy/tmp/cache/assets/CFC/260/sprockets%2F0e71d529f601042aaf154b7d7a7d7b10 +0 -0
  1295. data/test/dummy/tmp/cache/assets/CFC/530/sprockets%2F30c81913fe6fa70899924896cbe78bc7 +0 -0
  1296. data/test/dummy/tmp/cache/assets/CFC/9F0/sprockets%2F7922cd5ca1a340f4b4d450bad4551916 +0 -0
  1297. data/test/dummy/tmp/cache/assets/CFC/D80/sprockets%2F077bef6b6c40a38e35144a20051c5f1f +0 -0
  1298. data/test/dummy/tmp/cache/assets/CFC/FB0/sprockets%2F2b13bc27bbe25b0e17b73e567734700c +0 -0
  1299. data/test/dummy/tmp/cache/assets/CFD/170/sprockets%2F42cfd4e964989e13191824ef9fc548d4 +0 -0
  1300. data/test/dummy/tmp/cache/assets/CFD/400/sprockets%2F0dfc8e84ff74a1051c840840aab16051 +0 -0
  1301. data/test/dummy/tmp/cache/assets/CFD/470/sprockets%2Fd1eb4316039dba02de282ac28358b913 +0 -0
  1302. data/test/dummy/tmp/cache/assets/CFD/530/sprockets%2Fc3236310ab22e4d1c9519d3f33bf62a8 +0 -0
  1303. data/test/dummy/tmp/cache/assets/CFD/B10/sprockets%2Fd709e935422bb4948d69e2c744ff695f +0 -0
  1304. data/test/dummy/tmp/cache/assets/CFD/C30/sprockets%2F4861b94cbe06b03c26bb73d6e0e43213 +0 -0
  1305. data/test/dummy/tmp/cache/assets/CFE/0C0/sprockets%2F2751741fbca2a0c193703763ff6c13da +0 -0
  1306. data/test/dummy/tmp/cache/assets/CFE/A80/sprockets%2F9331b1565d97cf408ab413022ec07ccb +0 -0
  1307. data/test/dummy/tmp/cache/assets/CFE/AE0/sprockets%2F7c886a80519554ea620aac2325bb1ce0 +0 -0
  1308. data/test/dummy/tmp/cache/assets/CFE/AF0/sprockets%2Fcf3dde9e1202c5192390b23371a4b37c +0 -0
  1309. data/test/dummy/tmp/cache/assets/CFF/030/sprockets%2F67435e26ad42d483d12a4aeb5f04802b +0 -0
  1310. data/test/dummy/tmp/cache/assets/CFF/070/sprockets%2F1b3bc280c5e8d2f2e426d75064f310b4 +0 -0
  1311. data/test/dummy/tmp/cache/assets/CFF/0E0/sprockets%2Ff63db558958bc9e0278f78a6f7d72705 +0 -0
  1312. data/test/dummy/tmp/cache/assets/CFF/1A0/sprockets%2F39530e913daa380b1b4fd535119f1e0e +0 -0
  1313. data/test/dummy/tmp/cache/assets/CFF/220/sprockets%2F99056183f5c3e22ebe6a63c2323a1ab2 +0 -0
  1314. data/test/dummy/tmp/cache/assets/CFF/670/sprockets%2F9376a8c2f4a797fec7d6492bf8208594 +0 -0
  1315. data/test/dummy/tmp/cache/assets/CFF/860/sprockets%2F5c7d2a10419532611c629aef1e62ed3b +0 -0
  1316. data/test/dummy/tmp/cache/assets/CFF/8A0/sprockets%2F8bbd3b8c70a0998b0703d3222d4a3c45 +0 -0
  1317. data/test/dummy/tmp/cache/assets/D00/180/sprockets%2Fc46253339a0af89b71ab34d039ad82b0 +0 -0
  1318. data/test/dummy/tmp/cache/assets/D00/1C0/sprockets%2F1003ca26c60873d279c257fdea14ea25 +0 -0
  1319. data/test/dummy/tmp/cache/assets/D00/5E0/sprockets%2F40611fe44dda10993c1b28b4b93225cf +0 -0
  1320. data/test/dummy/tmp/cache/assets/D00/C10/sprockets%2F169d5c9cc4598e63f95577f52e9da370 +0 -0
  1321. data/test/dummy/tmp/cache/assets/D00/F60/sprockets%2Fb032c07696f4ff12c2024db22555f6ad +0 -0
  1322. data/test/dummy/tmp/cache/assets/D01/0E0/sprockets%2F134d0dd2f5cfc525b317e232a479e900 +0 -0
  1323. data/test/dummy/tmp/cache/assets/D01/A60/sprockets%2F3ca75cfcf2037d5364e4531448da120d +0 -0
  1324. data/test/dummy/tmp/cache/assets/D02/5F0/sprockets%2F47c2f882e0175d7d56d9d885f7bf2597 +0 -0
  1325. data/test/dummy/tmp/cache/assets/D02/9C0/sprockets%2F4bdf76951ce2310ecc12870dac901904 +0 -0
  1326. data/test/dummy/tmp/cache/assets/D03/620/sprockets%2F81d03fe39eae417f80342ae66242af10 +0 -0
  1327. data/test/dummy/tmp/cache/assets/D03/8B0/sprockets%2Febcb583b805d6193b261002efcf52067 +0 -0
  1328. data/test/dummy/tmp/cache/assets/D03/A20/sprockets%2Fe530a3ae26f349ac8c10647e621b2f36 +0 -0
  1329. data/test/dummy/tmp/cache/assets/D04/3A0/sprockets%2F2d5c0cc93688011b7d71a3aa5373b48e +0 -0
  1330. data/test/dummy/tmp/cache/assets/D04/B00/sprockets%2F00735a4a37eb6126f08bd35c3488cda5 +0 -0
  1331. data/test/dummy/tmp/cache/assets/D04/B30/sprockets%2F2f43c49fb8c3d1d80ba81307c44821c3 +0 -0
  1332. data/test/dummy/tmp/cache/assets/D04/CD0/sprockets%2Fceb7645ca4df4b8e5d42161232623c70 +0 -0
  1333. data/test/dummy/tmp/cache/assets/D05/3B0/sprockets%2F61fc14de47c1d0400f5fdc17565e9033 +0 -0
  1334. data/test/dummy/tmp/cache/assets/D05/430/sprockets%2F76629c52ae8228b6f4d8ded97d691888 +0 -0
  1335. data/test/dummy/tmp/cache/assets/D05/4A0/sprockets%2F61c2c0d2ca2aa0fcf877c81532257469 +0 -0
  1336. data/test/dummy/tmp/cache/assets/D05/930/sprockets%2F5ed590a61f704c61e17d72ca2af87103 +0 -0
  1337. data/test/dummy/tmp/cache/assets/D05/EB0/sprockets%2F88780a60baac2a29c14c09a2f3c95229 +0 -0
  1338. data/test/dummy/tmp/cache/assets/D05/F90/sprockets%2Ff656115176f84c4fb4790c03aa11cdf1 +0 -0
  1339. data/test/dummy/tmp/cache/assets/D06/010/sprockets%2Fd3f70dc8d4dbb2b2590212294418cf27 +0 -0
  1340. data/test/dummy/tmp/cache/assets/D06/300/sprockets%2F5e2e9da172903ee0aa476447f0a4d217 +0 -0
  1341. data/test/dummy/tmp/cache/assets/D06/FE0/sprockets%2F9a0cd09294a56d31c4390b823ad51e7d +0 -0
  1342. data/test/dummy/tmp/cache/assets/D07/1F0/sprockets%2F5635d72ea41c7982ec9323d125ba02ed +0 -0
  1343. data/test/dummy/tmp/cache/assets/D07/390/sprockets%2Fdd33e50087f613fb14d4a22f7bc63807 +0 -0
  1344. data/test/dummy/tmp/cache/assets/D07/680/sprockets%2F2921bb7defb45d60b04558a3e012686f +0 -0
  1345. data/test/dummy/tmp/cache/assets/D07/8D0/sprockets%2F823cf8df688427fe2569f999750f23eb +0 -0
  1346. data/test/dummy/tmp/cache/assets/D08/7C0/sprockets%2F5b865128ca116b17bb159d968e6aae10 +0 -0
  1347. data/test/dummy/tmp/cache/assets/D08/A10/sprockets%2F7764ebd1a9c4f03b9f2d3a52232026e8 +0 -0
  1348. data/test/dummy/tmp/cache/assets/D08/C30/sprockets%2F25800231754c73509b45efc8caaf52cf +0 -0
  1349. data/test/dummy/tmp/cache/assets/D08/E10/sprockets%2Fd004e64e4981c97f2046e2cb5e6ba420 +0 -0
  1350. data/test/dummy/tmp/cache/assets/D09/0E0/sprockets%2F861a0a04ea603309d93a883f25f9fb2c +0 -0
  1351. data/test/dummy/tmp/cache/assets/D09/100/sprockets%2Fd696fb8fbd707484e69f9815a79387d2 +0 -0
  1352. data/test/dummy/tmp/cache/assets/D09/210/sprockets%2F0c57094235e32edddcc747ed202873b3 +0 -0
  1353. data/test/dummy/tmp/cache/assets/D09/3D0/sprockets%2F724ad72478f44b426da0224da92cee54 +0 -0
  1354. data/test/dummy/tmp/cache/assets/D09/5E0/sprockets%2F3318d97233cc6ec853c21cb33f8a190d +0 -0
  1355. data/test/dummy/tmp/cache/assets/D09/680/sprockets%2F6e5aeb11318f3a858b8c24d0038474eb +0 -0
  1356. data/test/dummy/tmp/cache/assets/D09/820/sprockets%2F85b308247d96cd3f111ad8a444cd841b +0 -0
  1357. data/test/dummy/tmp/cache/assets/D09/940/sprockets%2F117b8bef6f033eabf80c8376160b4247 +0 -0
  1358. data/test/dummy/tmp/cache/assets/D09/B40/sprockets%2Fdc13f0ec5c52056111f8d7ab958343d7 +0 -0
  1359. data/test/dummy/tmp/cache/assets/D0A/0E0/sprockets%2F4b9ea32c5ae7b75b362b7071b35d2739 +0 -0
  1360. data/test/dummy/tmp/cache/assets/D0A/1A0/sprockets%2F0dadca80c1376047e97c5256acd77127 +0 -0
  1361. data/test/dummy/tmp/cache/assets/D0A/300/sprockets%2F00165b651485bfc396a57ea3951aca9c +0 -0
  1362. data/test/dummy/tmp/cache/assets/D0A/590/sprockets%2F660e4ed70999ad0fb5402f2b8322f0e2 +0 -0
  1363. data/test/dummy/tmp/cache/assets/D0A/720/sprockets%2F3f99583002696fb4d521dee231e2a3da +0 -0
  1364. data/test/dummy/tmp/cache/assets/D0A/810/sprockets%2F9cc7c89425ba1686a18a1d8beb005209 +0 -0
  1365. data/test/dummy/tmp/cache/assets/D0A/890/sprockets%2F8a5a29d81021eced955403acf246c790 +0 -0
  1366. data/test/dummy/tmp/cache/assets/D0A/B90/sprockets%2F84a57505123dc77ee41c5b9261cd52cd +0 -0
  1367. data/test/dummy/tmp/cache/assets/D0A/CB0/sprockets%2F01b7bc8d4406b16b212891ef72eeb775 +0 -0
  1368. data/test/dummy/tmp/cache/assets/D0A/F30/sprockets%2F64a591be6f28b5b7124aa6053fb6490e +0 -0
  1369. data/test/dummy/tmp/cache/assets/D0B/130/sprockets%2F42a66ff402fe17f41184d0ecb68c6424 +0 -0
  1370. data/test/dummy/tmp/cache/assets/D0B/220/sprockets%2F282c3ab5703c68d4a44172e8a3d665de +0 -0
  1371. data/test/dummy/tmp/cache/assets/D0B/430/sprockets%2F946f48f97b74e7c38a90b851d7899c6e +0 -0
  1372. data/test/dummy/tmp/cache/assets/D0B/5F0/sprockets%2Feed5c02da0683664c842f6cc009b8632 +0 -0
  1373. data/test/dummy/tmp/cache/assets/D0B/640/sprockets%2F9366c3e436388b239ebcda0fc24520f1 +0 -0
  1374. data/test/dummy/tmp/cache/assets/D0B/730/sprockets%2F72842ad2887cb116fae708af921a4c16 +0 -0
  1375. data/test/dummy/tmp/cache/assets/D0B/800/sprockets%2F128694f9db7bd2ff0bac9c0322372453 +0 -0
  1376. data/test/dummy/tmp/cache/assets/D0B/B00/sprockets%2F75a80653b8109c70d939afa19cd31db2 +0 -0
  1377. data/test/dummy/tmp/cache/assets/D0B/C90/sprockets%2Fbb750bf14bd815c15c9d372358a29c91 +0 -0
  1378. data/test/dummy/tmp/cache/assets/D0B/E60/sprockets%2F5d8a090323b68ecf521164e70eff23b7 +0 -0
  1379. data/test/dummy/tmp/cache/assets/D0C/090/sprockets%2F3bf824532b35b3d3fe6a08c4185e0e95 +0 -0
  1380. data/test/dummy/tmp/cache/assets/D0C/1C0/sprockets%2Fee732f263dba34752073c7ff91361ad4 +0 -0
  1381. data/test/dummy/tmp/cache/assets/D0C/430/sprockets%2Fd02a0759b11f6518dcf0ed0894a760e8 +0 -0
  1382. data/test/dummy/tmp/cache/assets/D0C/570/sprockets%2Fcd362c2a0626ffdf755b794076a40a82 +0 -0
  1383. data/test/dummy/tmp/cache/assets/D0C/610/sprockets%2Fd5649ac600c7962a0883a78a9cc1da05 +0 -0
  1384. data/test/dummy/tmp/cache/assets/D0C/6B0/sprockets%2Fd18e543f7d154cc106243bf2f6c27f72 +0 -0
  1385. data/test/dummy/tmp/cache/assets/D0C/760/sprockets%2F5043d114bc66f610c93969ca647deaf0 +0 -0
  1386. data/test/dummy/tmp/cache/assets/D0C/C30/sprockets%2F3ea6ea3b7d011db381536746695e5dd2 +0 -0
  1387. data/test/dummy/tmp/cache/assets/D0D/090/sprockets%2F53622478b6257527acbb51c6f9bbb42f +0 -0
  1388. data/test/dummy/tmp/cache/assets/D0D/570/sprockets%2F72ee1883b6c0209c1611a552a8eb7ef9 +0 -0
  1389. data/test/dummy/tmp/cache/assets/D0D/980/sprockets%2F41ef6c755cac1d2da9e452d238603197 +0 -0
  1390. data/test/dummy/tmp/cache/assets/D0D/ED0/sprockets%2F3788b0aca5aec5145a257eb5955507f3 +0 -0
  1391. data/test/dummy/tmp/cache/assets/D0D/F70/sprockets%2Fcbe13926041dc94c8ddb4a781146249e +0 -0
  1392. data/test/dummy/tmp/cache/assets/D0E/220/sprockets%2Fcbf6939f3475ee87b88994b97b7715d6 +0 -0
  1393. data/test/dummy/tmp/cache/assets/D0E/290/sprockets%2F059437fa9369eff7004cdb1f0b36380b +0 -0
  1394. data/test/dummy/tmp/cache/assets/D0E/2E0/sprockets%2F2a282da6089ac07527d4eb070f6f758b +0 -0
  1395. data/test/dummy/tmp/cache/assets/D0E/3C0/sprockets%2F5c55a77e185d6b730fcf1b1297b431d5 +0 -0
  1396. data/test/dummy/tmp/cache/assets/D0E/620/sprockets%2F3de38432c45ddc16e6d8553416c1cf26 +0 -0
  1397. data/test/dummy/tmp/cache/assets/D0E/9C0/sprockets%2F5cd42d2b2e5d7839ef077276b52b9a00 +0 -0
  1398. data/test/dummy/tmp/cache/assets/D0E/A10/sprockets%2F05ebd4b57720dbc2c207882946bd47a9 +0 -0
  1399. data/test/dummy/tmp/cache/assets/D0E/C00/sprockets%2F010b6f849ec9259fa3de514a18e74a32 +0 -0
  1400. data/test/dummy/tmp/cache/assets/D0E/FB0/sprockets%2F211db87b55b9f2ec7d75111aa1922f99 +0 -0
  1401. data/test/dummy/tmp/cache/assets/D0F/000/sprockets%2F483b8bb18b87ece00226c80fb1f61965 +0 -0
  1402. data/test/dummy/tmp/cache/assets/D0F/560/sprockets%2F18f67b27b2141576c51de1c3d2b9f38e +0 -0
  1403. data/test/dummy/tmp/cache/assets/D0F/560/sprockets%2F5f923aab9c0522298d836e8ae0c1426f +0 -0
  1404. data/test/dummy/tmp/cache/assets/D0F/870/sprockets%2F2e97e46c0514892b18bbb2d7a4e4862a +0 -0
  1405. data/test/dummy/tmp/cache/assets/D0F/980/sprockets%2Fdaa14ed9a3657161c56c66483e2d17e4 +0 -0
  1406. data/test/dummy/tmp/cache/assets/D0F/DE0/sprockets%2F69bf7ad2a1388f3e306a7320a882af38 +0 -0
  1407. data/test/dummy/tmp/cache/assets/D10/300/sprockets%2F21c9f4b074feb773e4e223e35691f30e +0 -0
  1408. data/test/dummy/tmp/cache/assets/D10/410/sprockets%2F5fa7802b4854988b4cb0bee2e0d34491 +0 -0
  1409. data/test/dummy/tmp/cache/assets/D10/730/sprockets%2F3dab68310e657844a5adcb9e180790c7 +0 -0
  1410. data/test/dummy/tmp/cache/assets/D10/850/sprockets%2Fc9d90745ea3ca04d148d40409e9b82f4 +0 -0
  1411. data/test/dummy/tmp/cache/assets/D10/8F0/sprockets%2F9ced9499938561d5a5889d9a93c08d9f +0 -0
  1412. data/test/dummy/tmp/cache/assets/D10/CB0/sprockets%2F732e6da303a457dd84651c7a746ed9b1 +0 -0
  1413. data/test/dummy/tmp/cache/assets/D10/EF0/sprockets%2F346fda251eb63406780ce6e3c337a88d +0 -0
  1414. data/test/dummy/tmp/cache/assets/D10/FC0/sprockets%2F563f9f7eb632fc32ab885a1bc2127429 +0 -0
  1415. data/test/dummy/tmp/cache/assets/D11/2F0/sprockets%2Fe6f61417924f79c80bbe47a75b08a03b +0 -0
  1416. data/test/dummy/tmp/cache/assets/D11/510/sprockets%2F48f352a44fa4fc68f850537d1c6c06c2 +0 -0
  1417. data/test/dummy/tmp/cache/assets/D11/660/sprockets%2F18364ce3b27ed0747916df341d8fad14 +0 -0
  1418. data/test/dummy/tmp/cache/assets/D11/AD0/sprockets%2F3c0e80cb649c82b7c42d0914be888a36 +0 -0
  1419. data/test/dummy/tmp/cache/assets/D11/C40/sprockets%2F04aecf869ffe1036d6a34e5412b37548 +0 -0
  1420. data/test/dummy/tmp/cache/assets/D11/CA0/sprockets%2F771462dbc4b5ca18a79675e303a9f1e5 +0 -0
  1421. data/test/dummy/tmp/cache/assets/D11/F80/sprockets%2F708e296fdc9635072ba21545affaf452 +0 -0
  1422. data/test/dummy/tmp/cache/assets/D12/320/sprockets%2F45d98b1a0f4df9794921bed2f0f71015 +0 -0
  1423. data/test/dummy/tmp/cache/assets/D12/6A0/sprockets%2Fb27002b49aed22f5f982089695eba4c4 +0 -0
  1424. data/test/dummy/tmp/cache/assets/D12/7C0/sprockets%2F1f2db5b36886d30af1f230790f3e8f47 +0 -0
  1425. data/test/dummy/tmp/cache/assets/D12/890/sprockets%2F4a3f3b35d4b821627f348b7db2268ec9 +0 -0
  1426. data/test/dummy/tmp/cache/assets/D13/0B0/sprockets%2F8fa65d01a766afba41822191f99ab685 +0 -0
  1427. data/test/dummy/tmp/cache/assets/D13/2B0/sprockets%2F2f9ce439715127b74621f3dbb6bc861f +0 -0
  1428. data/test/dummy/tmp/cache/assets/D13/380/sprockets%2Fc3f62e9c3083521dff321d75592b99aa +0 -0
  1429. data/test/dummy/tmp/cache/assets/D13/490/sprockets%2F6fdcca903e16974a7065620d8e8a155d +0 -0
  1430. data/test/dummy/tmp/cache/assets/D13/740/sprockets%2Ffe5b9163b9c64525852a6cdb161cb783 +0 -0
  1431. data/test/dummy/tmp/cache/assets/D13/9A0/sprockets%2F3813c433df54f19eb7257aed6e2287c1 +0 -0
  1432. data/test/dummy/tmp/cache/assets/D13/9D0/sprockets%2F8ce730879e6e086a1e53115b046d1dff +0 -0
  1433. data/test/dummy/tmp/cache/assets/D13/E70/sprockets%2Ff65d6f1d244dc0a17109771f887f3a3d +0 -0
  1434. data/test/dummy/tmp/cache/assets/D14/0F0/sprockets%2Ff82e9e555d5326ff2226159aeec16c12 +0 -0
  1435. data/test/dummy/tmp/cache/assets/D14/220/sprockets%2F84a72d24ac9ea56176e018ee138d9f05 +0 -0
  1436. data/test/dummy/tmp/cache/assets/D14/3F0/sprockets%2F719e0a69eb9aa68caa2d672675b62660 +0 -0
  1437. data/test/dummy/tmp/cache/assets/D14/400/sprockets%2F049f119c2b9b2da78355c1187fdc865a +0 -0
  1438. data/test/dummy/tmp/cache/assets/D14/8B0/sprockets%2Fc08dff89cf0e8ba261b442283749e062 +0 -0
  1439. data/test/dummy/tmp/cache/assets/D14/C90/sprockets%2F33b03169fab0ff73ae417887b690a4f9 +0 -0
  1440. data/test/dummy/tmp/cache/assets/D14/CE0/sprockets%2F9d9cc6b0e34afb42924876e23963b50b +0 -0
  1441. data/test/dummy/tmp/cache/assets/D15/010/sprockets%2F7d43d9dd12a5902d5eb03e8061e689e6 +0 -0
  1442. data/test/dummy/tmp/cache/assets/D15/030/sprockets%2Fa5affe567dc74a8321744f5902f6d531 +0 -0
  1443. data/test/dummy/tmp/cache/assets/D15/4B0/sprockets%2F643ea4288c39b957a82be0621f4a9d4c +0 -0
  1444. data/test/dummy/tmp/cache/assets/D15/4D0/sprockets%2F3ff5fa34513b93faa9fc167536585a52 +0 -0
  1445. data/test/dummy/tmp/cache/assets/D15/6B0/sprockets%2F3bfbac97eb5796307418d0f0e679144a +0 -0
  1446. data/test/dummy/tmp/cache/assets/D15/790/sprockets%2F1c3f4f891ad225c51c5f71e7e6847e22 +0 -0
  1447. data/test/dummy/tmp/cache/assets/D15/7D0/sprockets%2F326e2817cf99c2e9a933a936b3ca126d +0 -0
  1448. data/test/dummy/tmp/cache/assets/D15/7F0/sprockets%2F747aa65b72a2066c93638af05bfc49f6 +0 -0
  1449. data/test/dummy/tmp/cache/assets/D15/DC0/sprockets%2Fe0070306dd5f89aebbe73936d01e9990 +0 -0
  1450. data/test/dummy/tmp/cache/assets/D16/0C0/sprockets%2F58fb9abfdb670a8502813dc88487711a +0 -0
  1451. data/test/dummy/tmp/cache/assets/D16/200/sprockets%2Fc74cd1183d9a36031f7961945ec7bed4 +0 -0
  1452. data/test/dummy/tmp/cache/assets/D16/2C0/sprockets%2Fa90ad78854c9bd1156e3866eb0e234f5 +0 -0
  1453. data/test/dummy/tmp/cache/assets/D16/350/sprockets%2F481fad5a50bfc8c5b239b627690669f1 +0 -0
  1454. data/test/dummy/tmp/cache/assets/D16/4D0/sprockets%2Fc39108a25f0ff6c6c087932b9ed0e565 +0 -0
  1455. data/test/dummy/tmp/cache/assets/D16/E90/sprockets%2Ff6f373fe403f4421e5eef7cf14870118 +0 -0
  1456. data/test/dummy/tmp/cache/assets/D16/F50/sprockets%2F64609577d7841668dec220ed4d0ccd1f +0 -0
  1457. data/test/dummy/tmp/cache/assets/D17/040/sprockets%2F8ad5a2866ec65662f970520395ecbaf2 +0 -0
  1458. data/test/dummy/tmp/cache/assets/D17/160/sprockets%2Fbae77b58c1fd2e9072306427e86727cc +0 -0
  1459. data/test/dummy/tmp/cache/assets/D17/350/sprockets%2F872313faadc302ebc49306696cc9689d +0 -0
  1460. data/test/dummy/tmp/cache/assets/D17/4F0/sprockets%2Fb75a0450ac61cf9f16983cee94b76165 +0 -0
  1461. data/test/dummy/tmp/cache/assets/D17/720/sprockets%2Fd88740a269159b5ed542cac385cc5a94 +0 -0
  1462. data/test/dummy/tmp/cache/assets/D17/780/sprockets%2Fd5c58fccc3367e80721dc613866bf660 +0 -0
  1463. data/test/dummy/tmp/cache/assets/D17/860/sprockets%2F138e6bcec6692bd3e6760d23a49e2287 +0 -0
  1464. data/test/dummy/tmp/cache/assets/D17/AA0/sprockets%2Fc0f895b740d8d572e5d1495f80a23e6a +0 -0
  1465. data/test/dummy/tmp/cache/assets/D17/C50/sprockets%2Fc3f3c439bf5e484757eee298b106062a +0 -0
  1466. data/test/dummy/tmp/cache/assets/D17/F70/sprockets%2F9c39629de564e4a296b2db0c471fb941 +0 -0
  1467. data/test/dummy/tmp/cache/assets/D18/280/sprockets%2Fc70f5cc8315cd0dc493329f9463c8b56 +0 -0
  1468. data/test/dummy/tmp/cache/assets/D18/290/sprockets%2F5cb980f53c999c04b9b0b930dd08266e +0 -0
  1469. data/test/dummy/tmp/cache/assets/D18/300/sprockets%2F4b5e886e88a00ab8ad527b679cc12179 +0 -0
  1470. data/test/dummy/tmp/cache/assets/D18/540/sprockets%2F2e14b68eb93ccb58bf790f0715166f19 +0 -0
  1471. data/test/dummy/tmp/cache/assets/D18/5B0/sprockets%2Faab076893f33e5c552fb70c1827c8d96 +0 -0
  1472. data/test/dummy/tmp/cache/assets/D18/5C0/sprockets%2F806ddba8f1127fcc8e5a108b86937744 +0 -0
  1473. data/test/dummy/tmp/cache/assets/D18/610/sprockets%2Ffb8ca45b4472354d827192c7ea25f89a +0 -0
  1474. data/test/dummy/tmp/cache/assets/D18/690/sprockets%2F2273c14180eb2ce398b7f4fec8188f26 +0 -0
  1475. data/test/dummy/tmp/cache/assets/D18/790/sprockets%2Fd685dcaf46894a095d72ae68035e2d05 +0 -0
  1476. data/test/dummy/tmp/cache/assets/D18/960/sprockets%2Fb2599041fd51dcfc454185da95ee2396 +0 -0
  1477. data/test/dummy/tmp/cache/assets/D18/A30/sprockets%2Fed6c096e33c730609fd681f9c342a86a +0 -0
  1478. data/test/dummy/tmp/cache/assets/D18/B30/sprockets%2F1ef8de2df042157368b285697adb538a +0 -0
  1479. data/test/dummy/tmp/cache/assets/D19/220/sprockets%2Fd109923d72986131f9ceb24d65dc92fb +0 -0
  1480. data/test/dummy/tmp/cache/assets/D19/420/sprockets%2F379a804e588c4e9ca18e4ee3306653ac +0 -0
  1481. data/test/dummy/tmp/cache/assets/D19/730/sprockets%2Fce771c3ae2127f91a0f67f7f2f571774 +0 -0
  1482. data/test/dummy/tmp/cache/assets/D19/AE0/sprockets%2F29dd77cb7d01481f308397bbb7618b9c +0 -0
  1483. data/test/dummy/tmp/cache/assets/D19/CF0/sprockets%2Ff8dda9781cbd3a795752581028d4e70a +0 -0
  1484. data/test/dummy/tmp/cache/assets/D1A/5D0/sprockets%2F5131b11116be12111ba22e43df8f2fec +0 -0
  1485. data/test/dummy/tmp/cache/assets/D1A/630/sprockets%2F2174485dc959e692517f81ebccc18ad1 +0 -0
  1486. data/test/dummy/tmp/cache/assets/D1A/670/sprockets%2F4f45089e5678ba2b1c06518bde98a7d4 +0 -0
  1487. data/test/dummy/tmp/cache/assets/D1A/AB0/sprockets%2F3c731bd6b32d6881f6724639e47fcee1 +0 -0
  1488. data/test/dummy/tmp/cache/assets/D1A/D80/sprockets%2Fe285d6ec19c323360f5f5495befa8345 +0 -0
  1489. data/test/dummy/tmp/cache/assets/D1B/000/sprockets%2F33b9a53497029670f2a64dc3fb9fdc86 +0 -0
  1490. data/test/dummy/tmp/cache/assets/D1B/000/sprockets%2Fe9444b550979532e5dc13f0e0f177eff +0 -0
  1491. data/test/dummy/tmp/cache/assets/D1B/0C0/sprockets%2F7ca1fa05d6f3e9394ed1439949cb2690 +0 -0
  1492. data/test/dummy/tmp/cache/assets/D1B/B70/sprockets%2F68152d6df8d2af0717e60e5387e8ac18 +0 -0
  1493. data/test/dummy/tmp/cache/assets/D1B/D20/sprockets%2Fa8faebab8e88716f8f6a373628203364 +0 -0
  1494. data/test/dummy/tmp/cache/assets/D1B/D60/sprockets%2Fb70f31481add8338f2d9c64e6187bc95 +0 -0
  1495. data/test/dummy/tmp/cache/assets/D1B/E30/sprockets%2Fae987ee8829c3e5b215bc5f323d61627 +0 -0
  1496. data/test/dummy/tmp/cache/assets/D1B/F30/sprockets%2Fd0809029790934fadf2cbc395a548cf8 +0 -0
  1497. data/test/dummy/tmp/cache/assets/D1C/030/sprockets%2Fdee6c3ab722997fff9127c31767e0415 +0 -0
  1498. data/test/dummy/tmp/cache/assets/D1C/230/sprockets%2F064c29ce898edd6351a50e4179c4a6e8 +0 -0
  1499. data/test/dummy/tmp/cache/assets/D1C/280/sprockets%2Ff7739e72d2907f6dbda12ba3896e0619 +0 -0
  1500. data/test/dummy/tmp/cache/assets/D1C/470/sprockets%2F377c82344c98c9a1f1a984a2fda5d683 +0 -0
  1501. data/test/dummy/tmp/cache/assets/D1C/540/sprockets%2F334e02662b45fcc11013c90d2ebaad05 +0 -0
  1502. data/test/dummy/tmp/cache/assets/D1C/8F0/sprockets%2F95222ee74605c7485eee7a0f703dce68 +0 -0
  1503. data/test/dummy/tmp/cache/assets/D1D/010/sprockets%2Fe9ee683526f75ecb43b74f4d834012b9 +0 -0
  1504. data/test/dummy/tmp/cache/assets/D1D/460/sprockets%2Fc964116863a0e39db98ac9ba1c1f8976 +0 -0
  1505. data/test/dummy/tmp/cache/assets/D1D/4B0/sprockets%2Fe238270322125853fceb96fd7e4f95ee +0 -0
  1506. data/test/dummy/tmp/cache/assets/D1D/7C0/sprockets%2F2658affbe8bc283984784335105edea6 +0 -0
  1507. data/test/dummy/tmp/cache/assets/D1D/C90/sprockets%2Fa688522a4494897a6f6a5e6b80b0c4ff +0 -0
  1508. data/test/dummy/tmp/cache/assets/D1D/FC0/sprockets%2F71971d1f863f746f20a99bbd62de51d7 +0 -0
  1509. data/test/dummy/tmp/cache/assets/D1E/280/sprockets%2Faf6e30265d55b19575089dd09eb9f44e +0 -0
  1510. data/test/dummy/tmp/cache/assets/D1E/360/sprockets%2Facdf07f1f658079c6e3d916663b26d56 +0 -0
  1511. data/test/dummy/tmp/cache/assets/D1E/550/sprockets%2F8e92d88c23785f2b3b11ce99ac06936c +0 -0
  1512. data/test/dummy/tmp/cache/assets/D1E/640/sprockets%2Fb6659a71e769a42269dbf4f3c358e21f +0 -0
  1513. data/test/dummy/tmp/cache/assets/D1E/650/sprockets%2Fcdcfe9d0458130ee48e49b14977353f4 +0 -0
  1514. data/test/dummy/tmp/cache/assets/D1E/DC0/sprockets%2F645b6ef3a71597548d3e8f7a5043ff0d +0 -0
  1515. data/test/dummy/tmp/cache/assets/D1F/2D0/sprockets%2Fe03a6cf19f5d7f693510d90b62f569c9 +0 -0
  1516. data/test/dummy/tmp/cache/assets/D1F/4E0/sprockets%2F77275f55c523218e6d47af5fa85ad29e +0 -0
  1517. data/test/dummy/tmp/cache/assets/D1F/640/sprockets%2Ff2cc190ca52597fd57599f41a7a9723e +0 -0
  1518. data/test/dummy/tmp/cache/assets/D1F/8A0/sprockets%2F28491fd6bb09d8836c1cc0f05f9797a5 +0 -0
  1519. data/test/dummy/tmp/cache/assets/D1F/AA0/sprockets%2F458c88821b0948ba750dd2ea679ae86d +0 -0
  1520. data/test/dummy/tmp/cache/assets/D1F/E60/sprockets%2F07f2a6848ce8d680ba61f828bb9d3890 +0 -0
  1521. data/test/dummy/tmp/cache/assets/D21/2E0/sprockets%2Fc795f0286e2ec5f0d79f179eac158731 +0 -0
  1522. data/test/dummy/tmp/cache/assets/D21/4E0/sprockets%2F15129dcb96697f9eb74fe1fe82a17316 +0 -0
  1523. data/test/dummy/tmp/cache/assets/D21/6C0/sprockets%2F7dbd24986e6074d4907487ab2fc7ce72 +0 -0
  1524. data/test/dummy/tmp/cache/assets/D21/AF0/sprockets%2F8d56bc7093bd548af93f398c08c28c70 +0 -0
  1525. data/test/dummy/tmp/cache/assets/D22/810/sprockets%2F95f75e1268ef8fce5d69b01157e3109e +0 -0
  1526. data/test/dummy/tmp/cache/assets/D22/990/sprockets%2F1bc4ab3477ad23231f11422f42fdda18 +0 -0
  1527. data/test/dummy/tmp/cache/assets/D22/B50/sprockets%2Ff9319c6e43e983c216f99aca73c4844b +0 -0
  1528. data/test/dummy/tmp/cache/assets/D22/E10/sprockets%2F65e527527104f4eb64e9afd7856fe3f3 +0 -0
  1529. data/test/dummy/tmp/cache/assets/D23/150/sprockets%2F030c2207a3052f84ecfa2b05af8c42a8 +0 -0
  1530. data/test/dummy/tmp/cache/assets/D23/1B0/sprockets%2F3ae20324133b89e4391da32bbd1af23d +0 -0
  1531. data/test/dummy/tmp/cache/assets/D23/3E0/sprockets%2F89eb745583edfe3c2f09a856c61c7651 +0 -0
  1532. data/test/dummy/tmp/cache/assets/D23/550/sprockets%2F8ae9f4f4e1c90f843150364d8e8e595a +0 -0
  1533. data/test/dummy/tmp/cache/assets/D23/5B0/sprockets%2F1f95e34b784460e6699debf56b6a4e15 +0 -0
  1534. data/test/dummy/tmp/cache/assets/D23/5F0/sprockets%2F8b8841f36e4be6308855d6cfb4409e9b +0 -0
  1535. data/test/dummy/tmp/cache/assets/D23/B10/sprockets%2Fc06e6ed7f709f8005e084ddd989269b0 +0 -0
  1536. data/test/dummy/tmp/cache/assets/D24/770/sprockets%2F1e5491fe1b520f41a6cfb52d46da0003 +0 -0
  1537. data/test/dummy/tmp/cache/assets/D24/8B0/sprockets%2Ff465f90a8991a2c4986f13b87f9c0fb2 +0 -0
  1538. data/test/dummy/tmp/cache/assets/D24/9A0/sprockets%2F723667858e3fc7af44b1f68c9e17d2e2 +0 -0
  1539. data/test/dummy/tmp/cache/assets/D24/AC0/sprockets%2F8d22996f1c4a36f3d49a1e5997aa7e56 +0 -0
  1540. data/test/dummy/tmp/cache/assets/D24/EB0/sprockets%2F9d429705deb41789a37705f3c67ee4ee +0 -0
  1541. data/test/dummy/tmp/cache/assets/D25/220/sprockets%2F608588a7c74acdb9e9f13b9a66b46953 +0 -0
  1542. data/test/dummy/tmp/cache/assets/D25/590/sprockets%2Faa1c19bcc0b1257c0b1987c82825b0c1 +0 -0
  1543. data/test/dummy/tmp/cache/assets/D25/5B0/sprockets%2F56355268a998595bebb9b6c42ba875af +0 -0
  1544. data/test/dummy/tmp/cache/assets/D25/A10/sprockets%2F8459d7a6e879de2a674d224bd7b960d5 +0 -0
  1545. data/test/dummy/tmp/cache/assets/D25/B10/sprockets%2F31587c7769f852ce8f3fe4064ec14c7c +0 -0
  1546. data/test/dummy/tmp/cache/assets/D26/090/sprockets%2F96098fae84af37c7199177bea92533af +0 -0
  1547. data/test/dummy/tmp/cache/assets/D26/8D0/sprockets%2Fdd06c9b99fe167f48a99d1350c837d35 +0 -0
  1548. data/test/dummy/tmp/cache/assets/D26/C90/sprockets%2F211f9fe1812bba01a705b8207daa239f +0 -0
  1549. data/test/dummy/tmp/cache/assets/D26/C90/sprockets%2Fb09f146e78fc920d934ee9e19dc92284 +0 -0
  1550. data/test/dummy/tmp/cache/assets/D26/C90/sprockets%2Ff78c003cad298697456d86b714e36eff +0 -0
  1551. data/test/dummy/tmp/cache/assets/D27/800/sprockets%2Fbda3823ab830a10b16a96087f6ca6c03 +0 -0
  1552. data/test/dummy/tmp/cache/assets/D28/800/sprockets%2F3c02ffc712301d473a7af7719ca3ab31 +0 -0
  1553. data/test/dummy/tmp/cache/assets/D28/950/sprockets%2Ff17a0aaa22dc704c67096b804c5ab471 +0 -0
  1554. data/test/dummy/tmp/cache/assets/D28/B20/sprockets%2F09f462027d72b7e7de9fd98087dfc373 +0 -0
  1555. data/test/dummy/tmp/cache/assets/D29/040/sprockets%2F02b88051f350e24596d3fe3340bacbaa +0 -0
  1556. data/test/dummy/tmp/cache/assets/D29/840/sprockets%2F402201ec92b1b3bb45245e5a6bdda948 +0 -0
  1557. data/test/dummy/tmp/cache/assets/D29/950/sprockets%2F2a027eeac6051acbc93563ef44345d01 +0 -0
  1558. data/test/dummy/tmp/cache/assets/D29/BD0/sprockets%2F8c85bb6d4859250bcff55847487d65bd +0 -0
  1559. data/test/dummy/tmp/cache/assets/D29/F00/sprockets%2F40adb76487003a4ab13615c01fc97ead +0 -0
  1560. data/test/dummy/tmp/cache/assets/D29/F80/sprockets%2F3d888988ef5e7292bf1f181eb622b19f +0 -0
  1561. data/test/dummy/tmp/cache/assets/D2A/530/sprockets%2Fc3c476dc0fef40502fa3c935a10330c8 +0 -0
  1562. data/test/dummy/tmp/cache/assets/D2A/5A0/sprockets%2Fd520d019a6a1ba7853bc8ab0c25445c8 +0 -0
  1563. data/test/dummy/tmp/cache/assets/D2A/8A0/sprockets%2Fc2ae580fda7ad422395ab21533a72e33 +0 -0
  1564. data/test/dummy/tmp/cache/assets/D2A/E70/sprockets%2Fb3dc3e00630d3fbac07174c782331c9d +0 -0
  1565. data/test/dummy/tmp/cache/assets/D2C/090/sprockets%2F37e2bcd7a00ea56b8a58181023a3f71d +0 -0
  1566. data/test/dummy/tmp/cache/assets/D2C/200/sprockets%2Fea42ef470e90c4282457aaab741e1d20 +0 -0
  1567. data/test/dummy/tmp/cache/assets/D2C/230/sprockets%2Ff9ed5894f5a416a7c4bf59117d792f49 +0 -0
  1568. data/test/dummy/tmp/cache/assets/D2C/2D0/sprockets%2Fc3d17948d766d978e393bdd1781cc49d +0 -0
  1569. data/test/dummy/tmp/cache/assets/D2C/420/sprockets%2Fff47f6f47f5fb84b813d75969c12d436 +0 -0
  1570. data/test/dummy/tmp/cache/assets/D2C/C30/sprockets%2F4c45fa4505e5938b24204663eaacbba1 +0 -0
  1571. data/test/dummy/tmp/cache/assets/D2C/C90/sprockets%2F4a6a04460007524debf322dbd2d748ed +0 -0
  1572. data/test/dummy/tmp/cache/assets/D2C/CF0/sprockets%2Fbe3d5250223d54ca33db9039b92ad36b +0 -0
  1573. data/test/dummy/tmp/cache/assets/D2D/750/sprockets%2F7fa91d4380a87f8be94605bd49949fd6 +0 -0
  1574. data/test/dummy/tmp/cache/assets/D2D/860/sprockets%2Ff5003f0f4a20770b1d06e19b980c2fec +0 -0
  1575. data/test/dummy/tmp/cache/assets/D2E/170/sprockets%2F74d1aebb319115da8451b4e00ae8f338 +0 -0
  1576. data/test/dummy/tmp/cache/assets/D2E/170/sprockets%2Fe6a334436c00a177c4ba453a4df309fe +0 -0
  1577. data/test/dummy/tmp/cache/assets/D2E/AA0/sprockets%2F3995ff450d69e4f972be748ca7834ab8 +0 -0
  1578. data/test/dummy/tmp/cache/assets/D2F/750/sprockets%2Fe2a3783cf749ff959ee3128ce923b994 +0 -0
  1579. data/test/dummy/tmp/cache/assets/D2F/950/sprockets%2F8f1c56d5b377af88a8896e279b2f634e +0 -0
  1580. data/test/dummy/tmp/cache/assets/D2F/B90/sprockets%2F348310802c3fd47de3854ad2c73adda0 +0 -0
  1581. data/test/dummy/tmp/cache/assets/D30/020/sprockets%2F505a1083ccd6e6787acd291db05a3a35 +0 -0
  1582. data/test/dummy/tmp/cache/assets/D30/200/sprockets%2Fa2f1ab1cf6a773164ef3a240b092876c +0 -0
  1583. data/test/dummy/tmp/cache/assets/D30/280/sprockets%2F1b72a1bc53ae152e338bac388742df35 +0 -0
  1584. data/test/dummy/tmp/cache/assets/D30/380/sprockets%2Fcae2f87a008a1175c61745cdad2780a4 +0 -0
  1585. data/test/dummy/tmp/cache/assets/D30/800/sprockets%2F29aa0abdc4d9559d0106c227f385ca60 +0 -0
  1586. data/test/dummy/tmp/cache/assets/D30/860/sprockets%2F54721d2472da2b68b4117ae416bdcdc7 +0 -0
  1587. data/test/dummy/tmp/cache/assets/D30/9F0/sprockets%2Fd45b9299eb2827664ff94f548daf518e +0 -0
  1588. data/test/dummy/tmp/cache/assets/D30/A60/sprockets%2Fb8f58930c97253b39abcc115acc124a1 +0 -0
  1589. data/test/dummy/tmp/cache/assets/D30/AE0/sprockets%2F04ac8121e3246b33cdfa62f905bb49f3 +0 -0
  1590. data/test/dummy/tmp/cache/assets/D30/BF0/sprockets%2Fe4e84f11d27afb83120e34ad54f01a48 +0 -0
  1591. data/test/dummy/tmp/cache/assets/D30/C70/sprockets%2F54f1716129d313e30dff8f21cd00a4ee +0 -0
  1592. data/test/dummy/tmp/cache/assets/D30/D00/sprockets%2Fa4278112be39200de394ca5c5aeb7b46 +0 -0
  1593. data/test/dummy/tmp/cache/assets/D30/F10/sprockets%2F465c3d452345580daadcf5932c0fc1a3 +0 -0
  1594. data/test/dummy/tmp/cache/assets/D31/F40/sprockets%2F98e56dbef366363d878197884bd2daf5 +0 -0
  1595. data/test/dummy/tmp/cache/assets/D32/540/sprockets%2F4dce62322241cbf7de05fd80342e8a61 +0 -0
  1596. data/test/dummy/tmp/cache/assets/D32/A20/sprockets%2F312a5122c497e50fb1a32e4fc7c5ea77 +0 -0
  1597. data/test/dummy/tmp/cache/assets/D32/B10/sprockets%2F2a27e017a0c879621dcbf40fe91ba238 +0 -0
  1598. data/test/dummy/tmp/cache/assets/D32/D70/sprockets%2Fda7da389106c83aafd914ca2e4014608 +0 -0
  1599. data/test/dummy/tmp/cache/assets/D33/020/sprockets%2F01c4a2531f1c7324d8dbef0645f0e6e7 +0 -0
  1600. data/test/dummy/tmp/cache/assets/D33/060/sprockets%2F117f814b864eaf00a3a91f89a4dbb062 +0 -0
  1601. data/test/dummy/tmp/cache/assets/D33/4B0/sprockets%2F880ea9eead5c5dd1216b9563038a4a00 +0 -0
  1602. data/test/dummy/tmp/cache/assets/D33/570/sprockets%2F4ee3083a14b4cba4158cb3d527ed2495 +0 -0
  1603. data/test/dummy/tmp/cache/assets/D33/890/sprockets%2Fbcb860ab607140a1d739f8c127fe057b +0 -0
  1604. data/test/dummy/tmp/cache/assets/D33/A10/sprockets%2F252c911c7ecb3b378ca58511ba79a42c +0 -0
  1605. data/test/dummy/tmp/cache/assets/D33/BE0/sprockets%2F962b00cab2180a85c58ca205de7565ee +0 -0
  1606. data/test/dummy/tmp/cache/assets/D34/1D0/sprockets%2F311225bc49faae3c839eb24232fe76d1 +0 -0
  1607. data/test/dummy/tmp/cache/assets/D34/650/sprockets%2Fb741123e3d70c9ec63515d194a1cfd7a +0 -0
  1608. data/test/dummy/tmp/cache/assets/D34/880/sprockets%2F6ea174533a4ab2c4455f56e4ccb4811f +0 -0
  1609. data/test/dummy/tmp/cache/assets/D34/950/sprockets%2Fa9ab3c0627dd00d6b037ddf42259448d +0 -0
  1610. data/test/dummy/tmp/cache/assets/D34/AB0/sprockets%2Ffd3bd7d7ca6b39b102f2e286f0461107 +0 -0
  1611. data/test/dummy/tmp/cache/assets/D34/CF0/sprockets%2F4f93aa82b61ce48090350e1e4ce204ef +0 -0
  1612. data/test/dummy/tmp/cache/assets/D34/E10/sprockets%2F74034ea037bd6434c8eb68ccf2b3026d +0 -0
  1613. data/test/dummy/tmp/cache/assets/D34/F10/sprockets%2F8e2570cc10ce5d1a88cb70e23ba80783 +0 -0
  1614. data/test/dummy/tmp/cache/assets/D35/4B0/sprockets%2Fe0e3c624373b0c0038ccd087f9a8d4d3 +0 -0
  1615. data/test/dummy/tmp/cache/assets/D35/9C0/sprockets%2Ffd51df36dcc611642a50f460a4c197c6 +0 -0
  1616. data/test/dummy/tmp/cache/assets/D35/DC0/sprockets%2F4271a256db0b166be553384b7e8ccad4 +0 -0
  1617. data/test/dummy/tmp/cache/assets/D36/020/sprockets%2F7e78b42ca2f717752a2b1d262a5ad27f +0 -0
  1618. data/test/dummy/tmp/cache/assets/D36/0F0/sprockets%2Fcc0211f5aa98029c59d8ff0e055c9b10 +0 -0
  1619. data/test/dummy/tmp/cache/assets/D36/220/sprockets%2F6246256acf41d8b8c1551b905db32ddd +0 -0
  1620. data/test/dummy/tmp/cache/assets/D36/230/sprockets%2F3c16319ad1da2566bea8d38ad5a77325 +0 -0
  1621. data/test/dummy/tmp/cache/assets/D36/860/sprockets%2F6e22ec7ea9943cbab166c291b711472a +0 -0
  1622. data/test/dummy/tmp/cache/assets/D36/990/sprockets%2F2508cad8b402c37cc09f6dfa6222c476 +0 -0
  1623. data/test/dummy/tmp/cache/assets/D36/AD0/sprockets%2Fbb238ccd373ef74d05ba241c5f810729 +0 -0
  1624. data/test/dummy/tmp/cache/assets/D36/E50/sprockets%2F43b67afc1a948300095d5f0fc3e41ea7 +0 -0
  1625. data/test/dummy/tmp/cache/assets/D37/190/sprockets%2F1b0a29942409f65198f4dd0b107ddabf +0 -0
  1626. data/test/dummy/tmp/cache/assets/D37/2B0/sprockets%2F3941d2daeba5fdb39206366a69b645a1 +0 -0
  1627. data/test/dummy/tmp/cache/assets/D37/340/sprockets%2F9b14483f8eabb0bb815c1275b05f67a5 +0 -0
  1628. data/test/dummy/tmp/cache/assets/D37/3D0/sprockets%2F8f6dcfb531329d1ea60dc0983f41d033 +0 -0
  1629. data/test/dummy/tmp/cache/assets/D37/780/sprockets%2Fec34f1a3407b6838dd62343a4cf3e1c7 +0 -0
  1630. data/test/dummy/tmp/cache/assets/D37/900/sprockets%2Febe3008d566af1190d271b270e74c9bf +0 -0
  1631. data/test/dummy/tmp/cache/assets/D37/990/sprockets%2F08438adf3e196cbe41a39a50a34d6f43 +0 -0
  1632. data/test/dummy/tmp/cache/assets/D37/B20/sprockets%2F3ce30ec934ca2db7968dc170e2206a66 +0 -0
  1633. data/test/dummy/tmp/cache/assets/D37/DD0/sprockets%2F5596e2d48f78dc5962ee112fe8d9399f +0 -0
  1634. data/test/dummy/tmp/cache/assets/D37/DE0/sprockets%2F92e9570516bd069ed02b6b54be113eea +0 -0
  1635. data/test/dummy/tmp/cache/assets/D37/F00/sprockets%2F18060fd4371473efaa135cea6076ced7 +0 -0
  1636. data/test/dummy/tmp/cache/assets/D37/F00/sprockets%2F390cea618b99119ed0464d6a81b4bb2a +0 -0
  1637. data/test/dummy/tmp/cache/assets/D37/F20/sprockets%2F16df6ed68997bc0c45996cff6797760b +0 -0
  1638. data/test/dummy/tmp/cache/assets/D37/FB0/sprockets%2Fa91fcd2fc7631616b25bb8522a7d45a6 +0 -0
  1639. data/test/dummy/tmp/cache/assets/D38/140/sprockets%2F4079eb6113850c5bb0bf8d1bd29e941d +0 -0
  1640. data/test/dummy/tmp/cache/assets/D38/200/sprockets%2Fbc07f823d9abf9115b066cf67b26c051 +0 -0
  1641. data/test/dummy/tmp/cache/assets/D38/250/sprockets%2F7701084fe6eb8e57c306d1ceeb0015e5 +0 -0
  1642. data/test/dummy/tmp/cache/assets/D38/3A0/sprockets%2F17e2b185c523471dbc3fce74385d34bb +0 -0
  1643. data/test/dummy/tmp/cache/assets/D38/570/sprockets%2F61b134e50dc0762f5fa4b92e68a802fd +0 -0
  1644. data/test/dummy/tmp/cache/assets/D38/5A0/sprockets%2F05c60f19fe5c929377109d0acb6bc1d2 +0 -0
  1645. data/test/dummy/tmp/cache/assets/D38/A90/sprockets%2Fe5d173da497d0b0ec3e1e93f5d472213 +0 -0
  1646. data/test/dummy/tmp/cache/assets/D38/C20/sprockets%2F3d9fb25a1f0def521f89bc71092a4901 +0 -0
  1647. data/test/dummy/tmp/cache/assets/D38/C60/sprockets%2F35b3e86d753c2ace3d20b3fa5459e091 +0 -0
  1648. data/test/dummy/tmp/cache/assets/D38/C80/sprockets%2F0c40fce56bb9b9d01f5112c7974a22f7 +0 -0
  1649. data/test/dummy/tmp/cache/assets/D39/050/sprockets%2F3406276fc15fbf075d244d2b7d5d9ac1 +0 -0
  1650. data/test/dummy/tmp/cache/assets/D39/090/sprockets%2F391807084d2d05fb51a6f857cb3cfb3a +0 -0
  1651. data/test/dummy/tmp/cache/assets/D39/180/sprockets%2F81a53f304a41a21977cecb8ab3568f4e +0 -0
  1652. data/test/dummy/tmp/cache/assets/D39/180/sprockets%2F893de2bf113e285c30b3d74e146fa7a4 +0 -0
  1653. data/test/dummy/tmp/cache/assets/D39/2E0/sprockets%2F9eb5ff48d2360d72d896595f71ef77f9 +0 -0
  1654. data/test/dummy/tmp/cache/assets/D39/440/sprockets%2Fc0b90a4d3bc660db1e865f329364d9b3 +0 -0
  1655. data/test/dummy/tmp/cache/assets/D39/570/sprockets%2F00640f4a599ee9f23b4f2377d1ba0c7b +0 -0
  1656. data/test/dummy/tmp/cache/assets/D39/670/sprockets%2F3ceb02555854acc1e9b950f80d1a6f80 +0 -0
  1657. data/test/dummy/tmp/cache/assets/D39/970/sprockets%2F74cbac51616a63a922f1ea7716e169cd +0 -0
  1658. data/test/dummy/tmp/cache/assets/D39/E60/sprockets%2Fb2b694b416276b2ced81c926c65bcb60 +0 -0
  1659. data/test/dummy/tmp/cache/assets/D39/F30/sprockets%2F1f5d352f97c8a3828dda9014611caed0 +0 -0
  1660. data/test/dummy/tmp/cache/assets/D3A/050/sprockets%2F2da25665d8a0f229b1509e86afec2b80 +0 -0
  1661. data/test/dummy/tmp/cache/assets/D3A/140/sprockets%2F01ee9c5ce6ab0fd011b0584955fe7337 +0 -0
  1662. data/test/dummy/tmp/cache/assets/D3A/340/sprockets%2Ffa4cc89d1060a2e28c618df61b12875c +0 -0
  1663. data/test/dummy/tmp/cache/assets/D3A/480/sprockets%2F2c623b9833b72f21230c6d7b9ec5fa6c +0 -0
  1664. data/test/dummy/tmp/cache/assets/D3A/720/sprockets%2Fb5b3e2f3157e0c52d380fe3f94b96d01 +0 -0
  1665. data/test/dummy/tmp/cache/assets/D3A/8A0/sprockets%2F91b4d0e462a4a841d5a7df5562de72e2 +0 -0
  1666. data/test/dummy/tmp/cache/assets/D3A/9E0/sprockets%2F62f2cbed105a1411ff3e9f2f7167089a +0 -0
  1667. data/test/dummy/tmp/cache/assets/D3A/F00/sprockets%2Fa682b6bc9df4741b972e1f371d70d0c0 +0 -0
  1668. data/test/dummy/tmp/cache/assets/D3B/080/sprockets%2F007cc1999cf3c568c32d35a48bcb343b +0 -0
  1669. data/test/dummy/tmp/cache/assets/D3B/1B0/sprockets%2F3aa8045c2b099ad8a5f37d9523bb6b55 +0 -0
  1670. data/test/dummy/tmp/cache/assets/D3B/2C0/sprockets%2F5f98712fffc4d6ac560ec126317c3d10 +0 -0
  1671. data/test/dummy/tmp/cache/assets/D3B/760/sprockets%2F22c078eb83157c2b38a1a5d6d6aef925 +0 -0
  1672. data/test/dummy/tmp/cache/assets/D3B/8C0/sprockets%2Fe4622c65b4e60b1c9464a7f08ebeb903 +0 -0
  1673. data/test/dummy/tmp/cache/assets/D3B/950/sprockets%2F5d83f8acdd5d02159e10e0532c682e8b +0 -0
  1674. data/test/dummy/tmp/cache/assets/D3B/F70/sprockets%2F20db54bbc3acc7e74e591466a75522c9 +0 -0
  1675. data/test/dummy/tmp/cache/assets/D3C/0D0/sprockets%2F073ca7ba66cd78eaa19534bc574d5317 +0 -0
  1676. data/test/dummy/tmp/cache/assets/D3C/0E0/sprockets%2F143b7730fcb2613d79af709c3a8fa55c +0 -0
  1677. data/test/dummy/tmp/cache/assets/D3C/870/sprockets%2F51d9cef4de63228a0c0a41ac89b49258 +0 -0
  1678. data/test/dummy/tmp/cache/assets/D3C/980/sprockets%2F003e4c454b7d12de5a863b45e94ec47d +0 -0
  1679. data/test/dummy/tmp/cache/assets/D3C/9B0/sprockets%2Fee4a76b790fba505cf9b577321118cb3 +0 -0
  1680. data/test/dummy/tmp/cache/assets/D3C/A80/sprockets%2Fb1b8fb435100acde83b7794667d0f55b +0 -0
  1681. data/test/dummy/tmp/cache/assets/D3C/C20/sprockets%2F36ebf6fae0ed08d0366818a4e63830d1 +0 -0
  1682. data/test/dummy/tmp/cache/assets/D3C/D60/sprockets%2Fc7ba7158b9c4d176fd4c0230069ea5d6 +0 -0
  1683. data/test/dummy/tmp/cache/assets/D3C/FD0/sprockets%2F4b44f3268c024ed9995b52ad30c3c8bc +0 -0
  1684. data/test/dummy/tmp/cache/assets/D3C/FE0/sprockets%2F24f6d543983043d0d1feefacb090196e +0 -0
  1685. data/test/dummy/tmp/cache/assets/D3D/210/sprockets%2F28a6f4bdaf689094b6a09121dbbe1476 +0 -0
  1686. data/test/dummy/tmp/cache/assets/D3D/970/sprockets%2F8c3fa39c04a27661633af6952dace4e3 +0 -0
  1687. data/test/dummy/tmp/cache/assets/D3D/C10/sprockets%2F48581f8b1580d984413b3fab2dd9bcb0 +0 -0
  1688. data/test/dummy/tmp/cache/assets/D3D/C30/sprockets%2Fc5213c2edff881f6715b82f148cd007b +0 -0
  1689. data/test/dummy/tmp/cache/assets/D3D/D80/sprockets%2F9c0cbc841bf606ddec0963173c2894a4 +0 -0
  1690. data/test/dummy/tmp/cache/assets/D3E/0B0/sprockets%2Fc1186ea6268e63a1f7a660dd1768bd3b +0 -0
  1691. data/test/dummy/tmp/cache/assets/D3E/240/sprockets%2Fd40ed280ab0708b0e619f709eb68c9c4 +0 -0
  1692. data/test/dummy/tmp/cache/assets/D3E/2B0/sprockets%2F4d280812e44d52559f57e2afdd1bca56 +0 -0
  1693. data/test/dummy/tmp/cache/assets/D3E/500/sprockets%2Fe0d19b79ad67649fb3c1cf715a11a393 +0 -0
  1694. data/test/dummy/tmp/cache/assets/D3E/520/sprockets%2F4765d7ea3ba6a5d16231c29de0d958c4 +0 -0
  1695. data/test/dummy/tmp/cache/assets/D3E/880/sprockets%2Fb745e535cb3165fc1882efcd903ed034 +0 -0
  1696. data/test/dummy/tmp/cache/assets/D3E/A00/sprockets%2F5f0492202676cecb4d3ffa49d610d65e +0 -0
  1697. data/test/dummy/tmp/cache/assets/D3E/A50/sprockets%2F1b32762a6614ecff6b77934ff9b0a5a1 +0 -0
  1698. data/test/dummy/tmp/cache/assets/D3E/AD0/sprockets%2F933941a230bea56ca69e1df56d5f07f2 +0 -0
  1699. data/test/dummy/tmp/cache/assets/D3E/ED0/sprockets%2F3d738409aa99ac466e77d0aeb2cd6150 +0 -0
  1700. data/test/dummy/tmp/cache/assets/D3E/F00/sprockets%2F8f159505cdb7a6e1170b91ff5c2c18e3 +0 -0
  1701. data/test/dummy/tmp/cache/assets/D3F/280/sprockets%2F13e050b7a477cc5fd1ee4083bd599e71 +0 -0
  1702. data/test/dummy/tmp/cache/assets/D3F/3E0/sprockets%2Fef152ffc3b86506be616e326f20c27f5 +0 -0
  1703. data/test/dummy/tmp/cache/assets/D3F/570/sprockets%2Fa33a6f2619d9e53bad331f8e04b738a9 +0 -0
  1704. data/test/dummy/tmp/cache/assets/D3F/590/sprockets%2F94fabee73d36410bdd216a2547f99b16 +0 -0
  1705. data/test/dummy/tmp/cache/assets/D3F/5E0/sprockets%2Fcbf1d7fac4114ec9059f87f2a0936342 +0 -0
  1706. data/test/dummy/tmp/cache/assets/D3F/B90/sprockets%2Fb98ad8b0651a07fa27790a1cc977be16 +0 -0
  1707. data/test/dummy/tmp/cache/assets/D40/2A0/sprockets%2F6e3ea5fbeff0a58c3782e181e5430472 +0 -0
  1708. data/test/dummy/tmp/cache/assets/D40/350/sprockets%2Fb8d0e083f40a26ff64f605285045fcef +0 -0
  1709. data/test/dummy/tmp/cache/assets/D40/740/sprockets%2F263bd7c97b6f2a3f3c82c6c1d6a41873 +0 -0
  1710. data/test/dummy/tmp/cache/assets/D40/810/sprockets%2F6003489e39c622ea2527b9ec61e7ecbb +0 -0
  1711. data/test/dummy/tmp/cache/assets/D40/880/sprockets%2F7813c7a2e234b7d2dcca77bff3315587 +0 -0
  1712. data/test/dummy/tmp/cache/assets/D40/9A0/sprockets%2Fb09fd34326b7d7a238e247c9f2aa2b87 +0 -0
  1713. data/test/dummy/tmp/cache/assets/D40/D20/sprockets%2F47e105703f9f1ea7c8da4508b7763cca +0 -0
  1714. data/test/dummy/tmp/cache/assets/D40/F10/sprockets%2F8149df5844bbe3a8205c469a29b3c2eb +0 -0
  1715. data/test/dummy/tmp/cache/assets/D41/410/sprockets%2F22edb903fc08a47f75beb47d5e096361 +0 -0
  1716. data/test/dummy/tmp/cache/assets/D41/540/sprockets%2Ff05b4b5481ce50788dd254f33bd77aa7 +0 -0
  1717. data/test/dummy/tmp/cache/assets/D41/5E0/sprockets%2F79d1b0f2ef48f72114cfc1e7189f41c1 +0 -0
  1718. data/test/dummy/tmp/cache/assets/D41/C00/sprockets%2F08791f8723ba99285dc032a1febcfe05 +0 -0
  1719. data/test/dummy/tmp/cache/assets/D41/E30/sprockets%2F0a50215c4d6fb949f17fa6c69c05e4e5 +0 -0
  1720. data/test/dummy/tmp/cache/assets/D41/F00/sprockets%2Ff9b62079e2c23fb68ec4e34b2f52921b +0 -0
  1721. data/test/dummy/tmp/cache/assets/D42/0C0/sprockets%2Fae17be1f5b63976f45fdb0d45e240287 +0 -0
  1722. data/test/dummy/tmp/cache/assets/D42/180/sprockets%2F9f136ad5150d873084dfc8fc4ef20e52 +0 -0
  1723. data/test/dummy/tmp/cache/assets/D42/6C0/sprockets%2Feefb3bf65b9531ae414d60991a54a568 +0 -0
  1724. data/test/dummy/tmp/cache/assets/D42/740/sprockets%2Fd671638ace8452e53de83b0b8f21dc73 +0 -0
  1725. data/test/dummy/tmp/cache/assets/D42/AC0/sprockets%2Fc5ae257ce91660cf1d694bd7f283180b +0 -0
  1726. data/test/dummy/tmp/cache/assets/D43/010/sprockets%2F99f2034c5afbf60c8d6d7a9b52615b80 +0 -0
  1727. data/test/dummy/tmp/cache/assets/D43/180/sprockets%2F77aa2f22b06e86bde4652662f7f3fb44 +0 -0
  1728. data/test/dummy/tmp/cache/assets/D43/3C0/sprockets%2F0bbea991fc5823892656b5cf52a26bf3 +0 -0
  1729. data/test/dummy/tmp/cache/assets/D43/770/sprockets%2F54f1826aad6b2ffd39e74741a4567a1f +0 -0
  1730. data/test/dummy/tmp/cache/assets/D44/2B0/sprockets%2F3ad39d2fc61e52af9f763e55526ae811 +0 -0
  1731. data/test/dummy/tmp/cache/assets/D44/410/sprockets%2Faff2c973a38dda06b82fe9250757c146 +0 -0
  1732. data/test/dummy/tmp/cache/assets/D44/500/sprockets%2F21a29ea628b20f49e94865c60bcb8dd7 +0 -0
  1733. data/test/dummy/tmp/cache/assets/D44/610/sprockets%2F015d093ebf54e2bd91f81f7c4c85a098 +0 -0
  1734. data/test/dummy/tmp/cache/assets/D44/740/sprockets%2F3ab786df73a67cab584b9e533f634d11 +0 -0
  1735. data/test/dummy/tmp/cache/assets/D44/840/sprockets%2F9fbf3c57246341509cc2b79b1ca4f9c6 +0 -0
  1736. data/test/dummy/tmp/cache/assets/D44/970/sprockets%2F648de6a616d5c62248ffe00859dc0c1e +0 -0
  1737. data/test/dummy/tmp/cache/assets/D44/CF0/sprockets%2F612899c13686e28debad09c5df15c2d1 +0 -0
  1738. data/test/dummy/tmp/cache/assets/D45/0C0/sprockets%2F516fc9d887a1ad9640352f26fcd2a90e +0 -0
  1739. data/test/dummy/tmp/cache/assets/D45/3D0/sprockets%2F55e171c4e73a7d6485c6ba5c1663afe8 +0 -0
  1740. data/test/dummy/tmp/cache/assets/D45/630/sprockets%2F4057a5865c88d6bff9e4ff43f50a1b10 +0 -0
  1741. data/test/dummy/tmp/cache/assets/D45/7F0/sprockets%2F204e7166ba9740fdd44ecf84ff4d4470 +0 -0
  1742. data/test/dummy/tmp/cache/assets/D45/BD0/sprockets%2Fbc5657521c68a4d1a48decf5649365da +0 -0
  1743. data/test/dummy/tmp/cache/assets/D46/0B0/sprockets%2Fe25e1919f53af4fe48caa29a4039719c +0 -0
  1744. data/test/dummy/tmp/cache/assets/D46/2A0/sprockets%2F298292c84f0e15f90bfc6aa75cd039f3 +0 -0
  1745. data/test/dummy/tmp/cache/assets/D46/5B0/sprockets%2F5d006b6678e543be4caf73ac762d755f +0 -0
  1746. data/test/dummy/tmp/cache/assets/D46/610/sprockets%2F0f7fe1a1c4c86f26d477a1a4f4c88906 +0 -0
  1747. data/test/dummy/tmp/cache/assets/D46/6D0/sprockets%2F5c5c2ed4c5b6ef33d157f955d7e41902 +0 -0
  1748. data/test/dummy/tmp/cache/assets/D46/890/sprockets%2F5ca5e9e8272bf7e14e20f4ea81078d91 +0 -0
  1749. data/test/dummy/tmp/cache/assets/D46/910/sprockets%2F8953f1c40aae7d8a9a7196e34b3148de +0 -0
  1750. data/test/dummy/tmp/cache/assets/D46/A00/sprockets%2Fd15c6cb08ebf8797713e952ab6f154d1 +0 -0
  1751. data/test/dummy/tmp/cache/assets/D46/C30/sprockets%2Ff5ac37c7c007684e128ebb4c387f8b09 +0 -0
  1752. data/test/dummy/tmp/cache/assets/D46/D20/sprockets%2Fafcff74e0c596d4014caf09274253e89 +0 -0
  1753. data/test/dummy/tmp/cache/assets/D46/E30/sprockets%2F2743604000c3caab937a02accd3c71bb +0 -0
  1754. data/test/dummy/tmp/cache/assets/D46/E90/sprockets%2F2c2cf7b08d87d19e01573e9c0d972af5 +0 -0
  1755. data/test/dummy/tmp/cache/assets/D47/250/sprockets%2Ff454a48261a92c98e55a9b2e9acff430 +0 -0
  1756. data/test/dummy/tmp/cache/assets/D47/2E0/sprockets%2F704ecaf274e48a7580b3aae979a97c50 +0 -0
  1757. data/test/dummy/tmp/cache/assets/D47/3B0/sprockets%2F7ff55581118e0181ecf59a7a5cb3cf48 +0 -0
  1758. data/test/dummy/tmp/cache/assets/D47/5C0/sprockets%2F68f9e6a027bd2b7aeb7751454d7af247 +0 -0
  1759. data/test/dummy/tmp/cache/assets/D47/A40/sprockets%2F8f06e434276a6eced1522deb9d9d8027 +0 -0
  1760. data/test/dummy/tmp/cache/assets/D47/D90/sprockets%2Fe1c556e7d92e1d2b512e547746d73bef +0 -0
  1761. data/test/dummy/tmp/cache/assets/D47/F30/sprockets%2F95b3748e9aae1797d3cb5cc720c1f266 +0 -0
  1762. data/test/dummy/tmp/cache/assets/D48/0B0/sprockets%2F30a04c89c989d773b306c21bf8d64def +0 -0
  1763. data/test/dummy/tmp/cache/assets/D48/140/sprockets%2Fe57106ab8293a7f3d776e690bbd447dc +0 -0
  1764. data/test/dummy/tmp/cache/assets/D48/180/sprockets%2F760b662df9e52cdf625807f2d5a51a9e +0 -0
  1765. data/test/dummy/tmp/cache/assets/D48/210/sprockets%2F32168c495dbc6784b0f398dc9a8cae12 +0 -0
  1766. data/test/dummy/tmp/cache/assets/D48/2D0/sprockets%2F0be50e01c1aee3d2e4b1167bc704b150 +0 -0
  1767. data/test/dummy/tmp/cache/assets/D48/3B0/sprockets%2Fd8418ab89f1d64859a83ed83bde050a3 +0 -0
  1768. data/test/dummy/tmp/cache/assets/D48/3F0/sprockets%2F95af62f8399e2434dddaa8e622073b3f +0 -0
  1769. data/test/dummy/tmp/cache/assets/D48/610/sprockets%2F04cb90fbd5ec4f92106f6268f2987b2e +0 -0
  1770. data/test/dummy/tmp/cache/assets/D48/F10/sprockets%2Fb3111df9478d4ad38897db3a4fb286c5 +0 -0
  1771. data/test/dummy/tmp/cache/assets/D48/F70/sprockets%2F773649806672f43eb7429cdfac0febb1 +0 -0
  1772. data/test/dummy/tmp/cache/assets/D49/000/sprockets%2Fd94896eee0f35a0a966393090fcc3fc1 +0 -0
  1773. data/test/dummy/tmp/cache/assets/D49/370/sprockets%2F56bf43f01cedd6c95f90f37cd5331757 +0 -0
  1774. data/test/dummy/tmp/cache/assets/D49/D70/sprockets%2Fb9e7a4cd11a1fbd665187834e795b44f +0 -0
  1775. data/test/dummy/tmp/cache/assets/D49/F00/sprockets%2F6a89ca8c96f50072b95d70df61cc7b80 +0 -0
  1776. data/test/dummy/tmp/cache/assets/D4A/0B0/sprockets%2Fa339d447533dfdab55192ed95e5e91c6 +0 -0
  1777. data/test/dummy/tmp/cache/assets/D4A/580/sprockets%2F9ec98f3f247fb14bf451730449d1cb7e +0 -0
  1778. data/test/dummy/tmp/cache/assets/D4A/650/sprockets%2F824d6a94276cdd80a615348f4cb7dfe5 +0 -0
  1779. data/test/dummy/tmp/cache/assets/D4A/9C0/sprockets%2Fb33796ae4af40993b4e8c7ef324f06f3 +0 -0
  1780. data/test/dummy/tmp/cache/assets/D4A/B40/sprockets%2Fbf77934b4ad18295b9eae7a5f32c9316 +0 -0
  1781. data/test/dummy/tmp/cache/assets/D4A/BF0/sprockets%2Fc564d4cc768137c7f5a3ffad2166684c +0 -0
  1782. data/test/dummy/tmp/cache/assets/D4A/CE0/sprockets%2Fc6f977bde89d1a1910507fa495290bcf +0 -0
  1783. data/test/dummy/tmp/cache/assets/D4A/EF0/sprockets%2Fb6b3aa8642c8fa584f0376d4648d7c8b +0 -0
  1784. data/test/dummy/tmp/cache/assets/D4B/3C0/sprockets%2F26891ba685ff4c6f9d4f2f1c6242f03f +0 -0
  1785. data/test/dummy/tmp/cache/assets/D4B/430/sprockets%2F3717d58544de674bf0f87b1fd67a45ac +0 -0
  1786. data/test/dummy/tmp/cache/assets/D4B/440/sprockets%2F0f661ce7dd63adff2444327c83c5f678 +0 -0
  1787. data/test/dummy/tmp/cache/assets/D4B/4F0/sprockets%2Fd57bb48b0c6ea8859a4fda0d88592624 +0 -0
  1788. data/test/dummy/tmp/cache/assets/D4B/920/sprockets%2F3f9aa27e107a5a864ed768825d47bbe7 +0 -0
  1789. data/test/dummy/tmp/cache/assets/D4B/CE0/sprockets%2F2e96cfae6d4a435e37970c055ac589e4 +0 -0
  1790. data/test/dummy/tmp/cache/assets/D4B/D30/sprockets%2Ff7549dc58e2b8520272e8db83ea6ac65 +0 -0
  1791. data/test/dummy/tmp/cache/assets/D4B/EB0/sprockets%2F90e1f184458ccb432d9fddb8994423af +0 -0
  1792. data/test/dummy/tmp/cache/assets/D4B/F30/sprockets%2F87e2067c8a98c80860ca18525aefaff4 +0 -0
  1793. data/test/dummy/tmp/cache/assets/D4C/B10/sprockets%2F8885160be6866e27b6e5fa2c49a4c5da +0 -0
  1794. data/test/dummy/tmp/cache/assets/D4D/6B0/sprockets%2F42f643654eb2b4737e87decb738fc6a5 +0 -0
  1795. data/test/dummy/tmp/cache/assets/D4D/8F0/sprockets%2F81f8c1d4e17c7829dbdef5171e84d561 +0 -0
  1796. data/test/dummy/tmp/cache/assets/D4E/0F0/sprockets%2F1ec59da25b29654f5ce86a66c999ba22 +0 -0
  1797. data/test/dummy/tmp/cache/assets/D4E/110/sprockets%2Fcf0a2ac2c576aa71029323062dfb5a1c +0 -0
  1798. data/test/dummy/tmp/cache/assets/D4E/4C0/sprockets%2Ff1bec818b617e964d6a5f1ef8f339540 +0 -0
  1799. data/test/dummy/tmp/cache/assets/D4E/8E0/sprockets%2F0d70620be0274ccaa6743a0b2092bded +0 -0
  1800. data/test/dummy/tmp/cache/assets/D4E/DD0/sprockets%2F287ba626c4f5b4639b2890e9d8f5eb2c +0 -0
  1801. data/test/dummy/tmp/cache/assets/D4E/DE0/sprockets%2F382aafa1acb033c709e7789d9878bd59 +0 -0
  1802. data/test/dummy/tmp/cache/assets/D4F/360/sprockets%2F91ecbdd16b46d37e46b95d95347b68f1 +0 -0
  1803. data/test/dummy/tmp/cache/assets/D4F/400/sprockets%2Fa39424f3692471f84bf5f4ca5d3f92ff +0 -0
  1804. data/test/dummy/tmp/cache/assets/D4F/470/sprockets%2F3370d5f56c376be2ee02890a6a7f9f9f +0 -0
  1805. data/test/dummy/tmp/cache/assets/D4F/A60/sprockets%2F7e7b2a309fe6c9274de094b52d7399cc +0 -0
  1806. data/test/dummy/tmp/cache/assets/D4F/AD0/sprockets%2F4940ada070aac964e8964c9429c9ff7c +0 -0
  1807. data/test/dummy/tmp/cache/assets/D4F/AF0/sprockets%2F7c58e3c84ea677f3767d4e2b44d02c6f +0 -0
  1808. data/test/dummy/tmp/cache/assets/D4F/D40/sprockets%2Fc00fd09b0c72bd4124b2509ccab6d252 +0 -0
  1809. data/test/dummy/tmp/cache/assets/D50/1C0/sprockets%2Ff3d4c379e548c6a635cf4c71959be1c5 +0 -0
  1810. data/test/dummy/tmp/cache/assets/D50/3F0/sprockets%2F10bbd58b768f6ca68f89872d5ca21c59 +0 -0
  1811. data/test/dummy/tmp/cache/assets/D50/9E0/sprockets%2F8a6f447c87a7b29a5cfe7f6a631563d5 +0 -0
  1812. data/test/dummy/tmp/cache/assets/D50/BB0/sprockets%2F4544b5c9d81fdc942637568eefe0a17f +0 -0
  1813. data/test/dummy/tmp/cache/assets/D50/DE0/sprockets%2F4fb7cab2cc42720412e2831b096bcac0 +0 -0
  1814. data/test/dummy/tmp/cache/assets/D50/EB0/sprockets%2Fb1701915ee2cfa8987fa97f45d757ca3 +0 -0
  1815. data/test/dummy/tmp/cache/assets/D50/F40/sprockets%2F0a264e8ef7b828ffbc499e545d1d3554 +0 -0
  1816. data/test/dummy/tmp/cache/assets/D51/0C0/sprockets%2F4c68994d9a5d43eeaa94f0bf98c35162 +0 -0
  1817. data/test/dummy/tmp/cache/assets/D51/5A0/sprockets%2F5f73f98cef4232f98131ab3c913f7e9c +0 -0
  1818. data/test/dummy/tmp/cache/assets/D51/6A0/sprockets%2F46a61332ec4d9db317f5981f96f5e4ef +0 -0
  1819. data/test/dummy/tmp/cache/assets/D51/860/sprockets%2F0559a601f98ad9e14ad85d9e9866bc3b +0 -0
  1820. data/test/dummy/tmp/cache/assets/D51/A80/sprockets%2F0e4ebc3cb443fe89e96507429a729ed8 +0 -0
  1821. data/test/dummy/tmp/cache/assets/D51/EC0/sprockets%2F741e01ffc618da7e6ee5a5f3945c5499 +0 -0
  1822. data/test/dummy/tmp/cache/assets/D51/FD0/sprockets%2F8f7fe2bcf6a3682bfe40832d8d258098 +0 -0
  1823. data/test/dummy/tmp/cache/assets/D52/210/sprockets%2F0c6c258182a5a7ee4fb499eff8545a68 +0 -0
  1824. data/test/dummy/tmp/cache/assets/D52/3A0/sprockets%2F1f04f799cc97cceef1c984f78120441f +0 -0
  1825. data/test/dummy/tmp/cache/assets/D52/7B0/sprockets%2F7222c931fe78519f9cc9ccf345e6b7e1 +0 -0
  1826. data/test/dummy/tmp/cache/assets/D52/C10/sprockets%2Fdf92f8b92422d0c6196e986b0fa84d8d +0 -0
  1827. data/test/dummy/tmp/cache/assets/D52/D80/sprockets%2F5138aadb7a52a3ad1d4af165703360bd +0 -0
  1828. data/test/dummy/tmp/cache/assets/D53/070/sprockets%2F29887b939a9adbb8873cfb30b56c3e56 +0 -0
  1829. data/test/dummy/tmp/cache/assets/D53/0B0/sprockets%2F3ce0380426fadc73b3e4b21a4b305d6a +0 -0
  1830. data/test/dummy/tmp/cache/assets/D54/580/sprockets%2F69ee693f2337e2f1728399dcafe06b6c +0 -0
  1831. data/test/dummy/tmp/cache/assets/D54/590/sprockets%2F8a3d4f1829a4de0f63886028ef75efe6 +0 -0
  1832. data/test/dummy/tmp/cache/assets/D54/6D0/sprockets%2Fb6963f0e4a080df49a6956dff72591ff +0 -0
  1833. data/test/dummy/tmp/cache/assets/D54/6F0/sprockets%2F1d0a638a1dd4b3b5810da3be81d02e29 +0 -0
  1834. data/test/dummy/tmp/cache/assets/D54/860/sprockets%2F1f59eedd506ee9d285b6c631f87e2348 +0 -0
  1835. data/test/dummy/tmp/cache/assets/D54/D40/sprockets%2F8bf7c2fe4d4a3b4379ce3509ce827598 +0 -0
  1836. data/test/dummy/tmp/cache/assets/D54/E60/sprockets%2Fc730209ccf9b67f94d9da6252738dff6 +0 -0
  1837. data/test/dummy/tmp/cache/assets/D55/050/sprockets%2Ff8a1519f64f695a48b04fc494d7fce19 +0 -0
  1838. data/test/dummy/tmp/cache/assets/D55/3B0/sprockets%2F44413599bec29f9eef497bec466b91a3 +0 -0
  1839. data/test/dummy/tmp/cache/assets/D55/4E0/sprockets%2F5a973d4e0e4688e594eb63cfa5f2649c +0 -0
  1840. data/test/dummy/tmp/cache/assets/D55/880/sprockets%2F34928d8459d36e97d1eded237f5c3bf3 +0 -0
  1841. data/test/dummy/tmp/cache/assets/D55/AB0/sprockets%2F78cc27be14be303abe1e433ff002271b +0 -0
  1842. data/test/dummy/tmp/cache/assets/D55/BD0/sprockets%2Fb0f1d009a6c45a8184050ccaad0f625f +0 -0
  1843. data/test/dummy/tmp/cache/assets/D57/5C0/sprockets%2F2da710dd9256d942b03cfcac3602ca16 +0 -0
  1844. data/test/dummy/tmp/cache/assets/D57/730/sprockets%2F40eb1d78a46bf0f79687cf21d959ee85 +0 -0
  1845. data/test/dummy/tmp/cache/assets/D57/AC0/sprockets%2F33ea84ea0fb3021aa76691135ac4de0f +0 -0
  1846. data/test/dummy/tmp/cache/assets/D57/D80/sprockets%2F5ab6d5ee29c4c9d4e9652b8c50488a99 +0 -0
  1847. data/test/dummy/tmp/cache/assets/D57/D90/sprockets%2F263b732a422b1beaac8e30dbda198076 +0 -0
  1848. data/test/dummy/tmp/cache/assets/D58/8C0/sprockets%2F513d20cb6d72b9f39bbf979ff682d696 +0 -0
  1849. data/test/dummy/tmp/cache/assets/D58/DA0/sprockets%2F21200e25aa4eb27fe8bc2d5a25a874f0 +0 -0
  1850. data/test/dummy/tmp/cache/assets/D59/110/sprockets%2F2ec0c121af2f7eb46d4a164c3fd75032 +0 -0
  1851. data/test/dummy/tmp/cache/assets/D59/930/sprockets%2F220a1dbf7192adca0582f12665ceba47 +0 -0
  1852. data/test/dummy/tmp/cache/assets/D59/A10/sprockets%2Fb5b42410db439e79bbbc0dd4413c181d +0 -0
  1853. data/test/dummy/tmp/cache/assets/D59/C80/sprockets%2Fe8f792ea1f2a5de6742e7df3856494f4 +0 -0
  1854. data/test/dummy/tmp/cache/assets/D59/F50/sprockets%2F9f2c7e737ba13a57c6ff589292d86fa7 +0 -0
  1855. data/test/dummy/tmp/cache/assets/D5A/430/sprockets%2Fac7b33b9eb700ba71fa400a4552cf495 +0 -0
  1856. data/test/dummy/tmp/cache/assets/D5B/130/sprockets%2Fcef83ae8e7e6449d6eca77c857293055 +0 -0
  1857. data/test/dummy/tmp/cache/assets/D5B/260/sprockets%2F6879e30caa1f296ed0c48e8469989fbb +0 -0
  1858. data/test/dummy/tmp/cache/assets/D5B/9C0/sprockets%2Fca567b8e449bf9f055ae5bd9e7593359 +0 -0
  1859. data/test/dummy/tmp/cache/assets/D5B/BF0/sprockets%2F333e7d5ac1b4a512eee0f75f3a253b60 +0 -0
  1860. data/test/dummy/tmp/cache/assets/D5B/CD0/sprockets%2F6d8f1d103ecb952adc2baa442720692b +0 -0
  1861. data/test/dummy/tmp/cache/assets/D5B/E70/sprockets%2F1d7605e68cbf7122108b1dbbe2a24a6e +0 -0
  1862. data/test/dummy/tmp/cache/assets/D5C/060/sprockets%2F37c94f0ca9c109c8e7ec4698883eaf49 +0 -0
  1863. data/test/dummy/tmp/cache/assets/D5C/370/sprockets%2Ff6f72925d6c49e05e66faa4765fe8c57 +0 -0
  1864. data/test/dummy/tmp/cache/assets/D5C/430/sprockets%2F957422a30de2a26d2dae2def5c2b9320 +0 -0
  1865. data/test/dummy/tmp/cache/assets/D5C/7C0/sprockets%2F15ecba65509f6d4dc40d0d30b132bf39 +0 -0
  1866. data/test/dummy/tmp/cache/assets/D5C/AF0/sprockets%2Fd78d099f5f2b643966ae56fb9c94b38a +0 -0
  1867. data/test/dummy/tmp/cache/assets/D5C/F90/sprockets%2Fee2c3661a4544caac83916b15db071ae +0 -0
  1868. data/test/dummy/tmp/cache/assets/D5D/3B0/sprockets%2Fd5471e7133cf16e6a11bbee20f2a0b79 +0 -0
  1869. data/test/dummy/tmp/cache/assets/D5D/6A0/sprockets%2F6f3ce4b9a631e869f04f1f88e4f6783f +0 -0
  1870. data/test/dummy/tmp/cache/assets/D5D/6F0/sprockets%2F4d0b9aae508a3e10ecdd0b2f36283727 +0 -0
  1871. data/test/dummy/tmp/cache/assets/D5D/E70/sprockets%2F14c8120abdb1d9e80d0e71f7553aa84a +0 -0
  1872. data/test/dummy/tmp/cache/assets/D5E/470/sprockets%2Fed21b8ab1bd015d1eb827132abe96765 +0 -0
  1873. data/test/dummy/tmp/cache/assets/D5E/540/sprockets%2F989fc9956e6f8db3448a45ffca0e2834 +0 -0
  1874. data/test/dummy/tmp/cache/assets/D5E/7F0/sprockets%2F1ce2528ff4137bc28b310d70192ccdaf +0 -0
  1875. data/test/dummy/tmp/cache/assets/D5E/F40/sprockets%2F796de867fd6629cdddac27c884f77042 +0 -0
  1876. data/test/dummy/tmp/cache/assets/D5E/FF0/sprockets%2F16a29a82bcd0a5fc4eeba77012b60594 +0 -0
  1877. data/test/dummy/tmp/cache/assets/D5F/860/sprockets%2F2d0c3d64d14c238086a2ea4be4b15fd8 +0 -0
  1878. data/test/dummy/tmp/cache/assets/D5F/A40/sprockets%2F210ff6cd4eb7b47969889b99ed462cf5 +0 -0
  1879. data/test/dummy/tmp/cache/assets/D5F/DE0/sprockets%2Fe3e9357da07a01a5624f34f90b4cac2c +0 -0
  1880. data/test/dummy/tmp/cache/assets/D5F/F10/sprockets%2F1561addd40bda45d5c5c66f106f0157e +0 -0
  1881. data/test/dummy/tmp/cache/assets/D60/150/sprockets%2F43ad144a2b48d3a43acf3c8a26f5d393 +0 -0
  1882. data/test/dummy/tmp/cache/assets/D60/550/sprockets%2F7f69dde6b042535a50e04be0ef504db0 +0 -0
  1883. data/test/dummy/tmp/cache/assets/D60/760/sprockets%2Ff2488acab1571bcae10c7c23d5f64606 +0 -0
  1884. data/test/dummy/tmp/cache/assets/D60/7F0/sprockets%2F1b74fae303ee4342b07f231ccb853b9e +0 -0
  1885. data/test/dummy/tmp/cache/assets/D61/0A0/sprockets%2F379b37d8874599b67afd82ecfd3c892a +0 -0
  1886. data/test/dummy/tmp/cache/assets/D61/1E0/sprockets%2F2525c7f31cf412e0259a1feb68dc2c2c +0 -0
  1887. data/test/dummy/tmp/cache/assets/D61/290/sprockets%2Fc9f8e96feacec3e16f533698428348e7 +0 -0
  1888. data/test/dummy/tmp/cache/assets/D61/500/sprockets%2F2d4aaa4e27206670c2f90c48bfc33c6d +0 -0
  1889. data/test/dummy/tmp/cache/assets/D61/550/sprockets%2Fad72362d0158ce06f1d5b3bb95a3c18e +0 -0
  1890. data/test/dummy/tmp/cache/assets/D61/590/sprockets%2F10b1195e9b551779d1a1f41ac5dde5ab +0 -0
  1891. data/test/dummy/tmp/cache/assets/D61/A70/sprockets%2F80d5badad75248c606accd813d27235a +0 -0
  1892. data/test/dummy/tmp/cache/assets/D62/AC0/sprockets%2Fe923a17641d1cdb9a430439e4dabd2f4 +0 -0
  1893. data/test/dummy/tmp/cache/assets/D62/D00/sprockets%2Fbb112cb101c984bf728881d13ddc7d3d +0 -0
  1894. data/test/dummy/tmp/cache/assets/D62/D60/sprockets%2F445fcd788beb7311a3e01c084554cacb +0 -0
  1895. data/test/dummy/tmp/cache/assets/D62/E40/sprockets%2F20ec5093a0bdf38b6a0dc4136729f5dd +0 -0
  1896. data/test/dummy/tmp/cache/assets/D62/E70/sprockets%2F0777c54fb10d608e142dbdc660fae80a +0 -0
  1897. data/test/dummy/tmp/cache/assets/D63/190/sprockets%2Fbd70e9419cd66b14aa1bb3b0d616e783 +0 -0
  1898. data/test/dummy/tmp/cache/assets/D63/2C0/sprockets%2Fb29b4f22c11cdf82445a279ce2b3e08b +0 -0
  1899. data/test/dummy/tmp/cache/assets/D63/580/sprockets%2F03cf42442c9a0f798d2e3bb265b6dca1 +0 -0
  1900. data/test/dummy/tmp/cache/assets/D63/5B0/sprockets%2Fde6d630c9345ce06a5bf31c3f2d2a482 +0 -0
  1901. data/test/dummy/tmp/cache/assets/D63/C60/sprockets%2F232faf0ad8939d4700feb135e3b22bf6 +0 -0
  1902. data/test/dummy/tmp/cache/assets/D63/CF0/sprockets%2Fc2365f12ddb086ab82c1855e8a11e5ea +0 -0
  1903. data/test/dummy/tmp/cache/assets/D63/E80/sprockets%2F73ef5a22222bb8eb6077a1fa57da08d5 +0 -0
  1904. data/test/dummy/tmp/cache/assets/D64/0E0/sprockets%2Fa2d2eccd78b41ae522541165640efed7 +0 -0
  1905. data/test/dummy/tmp/cache/assets/D64/0F0/sprockets%2F4dab4a89380cac7b55ffc425c247103d +0 -0
  1906. data/test/dummy/tmp/cache/assets/D64/200/sprockets%2F76e44dde04df41070e90db2d4f3de232 +0 -0
  1907. data/test/dummy/tmp/cache/assets/D64/2C0/sprockets%2Fbe3e2f353562d4e253db14b4942cc9ba +0 -0
  1908. data/test/dummy/tmp/cache/assets/D64/3E0/sprockets%2F0a6e1743aaa90ed05f89e69db02fd042 +0 -0
  1909. data/test/dummy/tmp/cache/assets/D64/470/sprockets%2F64fc35191d5a0ea77ee0a5b16b1c9f51 +0 -0
  1910. data/test/dummy/tmp/cache/assets/D64/EC0/sprockets%2Febd1142b05d915ae2188315d4e6bee9a +0 -0
  1911. data/test/dummy/tmp/cache/assets/D64/FB0/sprockets%2F0a322e44c856469dc2aac61b4e8ac0f8 +0 -0
  1912. data/test/dummy/tmp/cache/assets/D65/0D0/sprockets%2F67a08a07bbdfa66813323ebdf632f4d2 +0 -0
  1913. data/test/dummy/tmp/cache/assets/D65/390/sprockets%2F5a8932bfeba07d1607613f62bf1b9e1b +0 -0
  1914. data/test/dummy/tmp/cache/assets/D65/760/sprockets%2F2a2bda980cf5457127a83de17ea4c3c4 +0 -0
  1915. data/test/dummy/tmp/cache/assets/D65/790/sprockets%2F2af45a2e4693e5d26d2aab1606f3a4f8 +0 -0
  1916. data/test/dummy/tmp/cache/assets/D65/7A0/sprockets%2F4e227e9ffe7b3dab051940801cd2fb42 +0 -0
  1917. data/test/dummy/tmp/cache/assets/D65/AB0/sprockets%2F6e53b6197c5eb11f5bc0ca1bf430b589 +0 -0
  1918. data/test/dummy/tmp/cache/assets/D65/F00/sprockets%2F3e71c0da28fc232d8817c52481ddc4cb +0 -0
  1919. data/test/dummy/tmp/cache/assets/D66/150/sprockets%2Fe66cc7f2bdbbc467b20a58f00812a936 +0 -0
  1920. data/test/dummy/tmp/cache/assets/D66/580/sprockets%2F6a12a93be78ba78bc1b4d8a532392da5 +0 -0
  1921. data/test/dummy/tmp/cache/assets/D66/610/sprockets%2Fcb8fee59849ef8f859aa853d091e2938 +0 -0
  1922. data/test/dummy/tmp/cache/assets/D66/680/sprockets%2Feac220c53d6b904767a143f4fd1f66cb +0 -0
  1923. data/test/dummy/tmp/cache/assets/D66/AA0/sprockets%2Fec6cda6a541188dc413a263fd6424c7c +0 -0
  1924. data/test/dummy/tmp/cache/assets/D66/B30/sprockets%2F6992569d033bfa4f4beb0af2132ce4b5 +0 -0
  1925. data/test/dummy/tmp/cache/assets/D66/BD0/sprockets%2F6a4c066ff4c7ce5e545a7c3133a31de3 +0 -0
  1926. data/test/dummy/tmp/cache/assets/D66/D60/sprockets%2Fd116910cf8d03281dfa078d9c81af3ca +0 -0
  1927. data/test/dummy/tmp/cache/assets/D66/F50/sprockets%2F3f8db65ac02247d21db75d02af68e9b1 +0 -0
  1928. data/test/dummy/tmp/cache/assets/D66/FF0/sprockets%2Fa7b86be98c5a2d12a8c24023e8ae26a5 +0 -0
  1929. data/test/dummy/tmp/cache/assets/D67/370/sprockets%2Facdaf6f0e62abf292b09712d9045e517 +0 -0
  1930. data/test/dummy/tmp/cache/assets/D67/4D0/sprockets%2F3e38546657770aba0636bc5bdfee1da0 +0 -0
  1931. data/test/dummy/tmp/cache/assets/D67/540/sprockets%2F2451fa1457a12b81ae27acc885d1cf9f +0 -0
  1932. data/test/dummy/tmp/cache/assets/D67/B20/sprockets%2F21d840a6b2f0d40810f667fd47affaf4 +0 -0
  1933. data/test/dummy/tmp/cache/assets/D67/F30/sprockets%2Fa1c2a19503d7136786bf4c98fdb0cda3 +0 -0
  1934. data/test/dummy/tmp/cache/assets/D68/4E0/sprockets%2F013c5d547bd5e3350f8f5fe1f4eb03e3 +0 -0
  1935. data/test/dummy/tmp/cache/assets/D68/7B0/sprockets%2F01f91bbce586ad5a7181d176fa5bc454 +0 -0
  1936. data/test/dummy/tmp/cache/assets/D68/A40/sprockets%2Fbcbde6fb3133581e518637e4fab224d5 +0 -0
  1937. data/test/dummy/tmp/cache/assets/D68/AC0/sprockets%2Fbe5cf99c151ee682d96f9588d57866cc +0 -0
  1938. data/test/dummy/tmp/cache/assets/D68/BA0/sprockets%2F5f1ba7106c2c359ba063f98f1dba38a9 +0 -0
  1939. data/test/dummy/tmp/cache/assets/D68/BB0/sprockets%2F5ee24cf41716a40da7a8c8dd1cc21488 +0 -0
  1940. data/test/dummy/tmp/cache/assets/D69/720/sprockets%2Fcfca87f8a37e2336a3b36d231326f7bb +0 -0
  1941. data/test/dummy/tmp/cache/assets/D69/E80/sprockets%2F1223e38f9d64debba29b6de61af70441 +0 -0
  1942. data/test/dummy/tmp/cache/assets/D6A/3D0/sprockets%2Fcf97f9bd0e343d50ae3b006654b65bd5 +0 -0
  1943. data/test/dummy/tmp/cache/assets/D6A/410/sprockets%2F8003e6c1bfdd8215d846b4a9b2d8d15d +0 -0
  1944. data/test/dummy/tmp/cache/assets/D6A/4F0/sprockets%2Fe4fa6346422a8dce6bad5025dd95a059 +0 -0
  1945. data/test/dummy/tmp/cache/assets/D6A/DF0/sprockets%2F44fc4a3f2b6657a6d1369aab8a3356cd +0 -0
  1946. data/test/dummy/tmp/cache/assets/D6B/110/sprockets%2Fdd0933d445b1d5fcb5c3718b956bb46a +0 -0
  1947. data/test/dummy/tmp/cache/assets/D6B/550/sprockets%2F11c395f147e050afeefb528d228ec4e4 +0 -0
  1948. data/test/dummy/tmp/cache/assets/D6B/950/sprockets%2F088ce0fca047df84da4162b4a57197ae +0 -0
  1949. data/test/dummy/tmp/cache/assets/D6B/960/sprockets%2Fa94ad11312cbf8b365c85da4c79f6a80 +0 -0
  1950. data/test/dummy/tmp/cache/assets/D6B/970/sprockets%2F1d2049a78db9cb5f916bc1123a785edb +0 -0
  1951. data/test/dummy/tmp/cache/assets/D6B/990/sprockets%2F24de0146ba11805f7ed595d1e19dfdf2 +0 -0
  1952. data/test/dummy/tmp/cache/assets/D6B/AD0/sprockets%2F6f2bc7cfcfc77277a912a6216db416d0 +0 -0
  1953. data/test/dummy/tmp/cache/assets/D6B/CB0/sprockets%2F17feb2110d6ccedb3694d955515b6a8b +0 -0
  1954. data/test/dummy/tmp/cache/assets/D6B/ED0/sprockets%2F0d47f0db16fd911acd461da4f6690d67 +0 -0
  1955. data/test/dummy/tmp/cache/assets/D6B/FF0/sprockets%2Ff807f9367e272ada8d2e137e31bbb5a2 +0 -0
  1956. data/test/dummy/tmp/cache/assets/D6C/4D0/sprockets%2F56c8e1e02c020eb9e6a54e4827dbe74c +0 -0
  1957. data/test/dummy/tmp/cache/assets/D6D/000/sprockets%2Fbf8570a4b7a458df4b0d8a190c9b38b3 +0 -0
  1958. data/test/dummy/tmp/cache/assets/D6D/5A0/sprockets%2F93cdc99cc7adf79210460311d71cfae4 +0 -0
  1959. data/test/dummy/tmp/cache/assets/D6D/5B0/sprockets%2F99c1095648b73ceac5e30e9b40fdb20d +0 -0
  1960. data/test/dummy/tmp/cache/assets/D6D/AB0/sprockets%2F3c94b5eff3b7d0b9750583b08240cfcc +0 -0
  1961. data/test/dummy/tmp/cache/assets/D6D/DF0/sprockets%2F839c9b7b20c2a49bd9516a84bec6a61a +0 -0
  1962. data/test/dummy/tmp/cache/assets/D6E/260/sprockets%2F9e08f2ce1f70279b622b9e1dfda1642c +0 -0
  1963. data/test/dummy/tmp/cache/assets/D6E/300/sprockets%2F3ad5a388b388247dd303bdbbf73b3f57 +0 -0
  1964. data/test/dummy/tmp/cache/assets/D6E/3D0/sprockets%2F2de147b15cce533a83e64b8ea6492ff1 +0 -0
  1965. data/test/dummy/tmp/cache/assets/D6E/470/sprockets%2F71df3138a1fe8b97f7fadb7dc1203714 +0 -0
  1966. data/test/dummy/tmp/cache/assets/D6E/6D0/sprockets%2Ffc7d3ba0ef7c52a8455bf1268a29623e +0 -0
  1967. data/test/dummy/tmp/cache/assets/D6F/0C0/sprockets%2F877dcbc20a7c9c5290c2430dc8cf2d95 +0 -0
  1968. data/test/dummy/tmp/cache/assets/D6F/590/sprockets%2F8944d5a80e04dc5ffc31a0e96f8c1f21 +0 -0
  1969. data/test/dummy/tmp/cache/assets/D6F/840/sprockets%2F6ab574d92e8d730d1b2c4afc5c6635b8 +0 -0
  1970. data/test/dummy/tmp/cache/assets/D6F/9D0/sprockets%2F175ffadaff090cf9a26072c1191ef476 +0 -0
  1971. data/test/dummy/tmp/cache/assets/D6F/B30/sprockets%2F891af7ae615030666e4a3d6d3beb9f2d +0 -0
  1972. data/test/dummy/tmp/cache/assets/D6F/FF0/sprockets%2Fc74fa24a4bb8a8c9e77cfd024536324e +0 -0
  1973. data/test/dummy/tmp/cache/assets/D70/1F0/sprockets%2F33fed3bb84d5fc46d5768330d03e5ef0 +0 -0
  1974. data/test/dummy/tmp/cache/assets/D70/710/sprockets%2F4ffb8a8a4d611869018aae84f17a2d4d +0 -0
  1975. data/test/dummy/tmp/cache/assets/D71/180/sprockets%2F2574c07ca5ce6516e7813cfc4327ffae +0 -0
  1976. data/test/dummy/tmp/cache/assets/D71/1B0/sprockets%2F6292986fc0a384bdb1bed92a6c6a294c +0 -0
  1977. data/test/dummy/tmp/cache/assets/D71/B60/sprockets%2F32bc9f57ad1fe2d506fd74cc913b8633 +0 -0
  1978. data/test/dummy/tmp/cache/assets/D72/210/sprockets%2F601cebd8e41a363fe7522e78a814bfd9 +0 -0
  1979. data/test/dummy/tmp/cache/assets/D72/260/sprockets%2F805c75a5e038c51b5bab63f7af785ef3 +0 -0
  1980. data/test/dummy/tmp/cache/assets/D72/530/sprockets%2F7aa68b6e5a14184724c816b06f8fdebd +0 -0
  1981. data/test/dummy/tmp/cache/assets/D72/550/sprockets%2Fdc8a1e3cc36d42587cd9c5750e703e4d +0 -0
  1982. data/test/dummy/tmp/cache/assets/D72/A70/sprockets%2F36ee7d5d6c2a8f6e74cfa1cd25259105 +0 -0
  1983. data/test/dummy/tmp/cache/assets/D72/AD0/sprockets%2F73ce023923f93c1f4dd858d329d4adda +0 -0
  1984. data/test/dummy/tmp/cache/assets/D72/B60/sprockets%2Ff4caba13e07f3458c6c603ca9de96098 +0 -0
  1985. data/test/dummy/tmp/cache/assets/D72/BE0/sprockets%2F88fc2b40cd6bb985b28a0c16808ade85 +0 -0
  1986. data/test/dummy/tmp/cache/assets/D72/CE0/sprockets%2Fbcea4cc992dbbf24281d0e85292667b6 +0 -0
  1987. data/test/dummy/tmp/cache/assets/D72/DF0/sprockets%2Ff47176999aaa4b50b1e4b3ffa58c255d +0 -0
  1988. data/test/dummy/tmp/cache/assets/D73/1B0/sprockets%2F75c7059fe58fbcc1cb01309e6aed7923 +0 -0
  1989. data/test/dummy/tmp/cache/assets/D73/1E0/sprockets%2F2028a62d96b8b021e87ea2c9dded688a +0 -0
  1990. data/test/dummy/tmp/cache/assets/D73/400/sprockets%2F0dc6b3f8a8f917a2d8f3923cd952ba43 +0 -0
  1991. data/test/dummy/tmp/cache/assets/D73/600/sprockets%2F7e3978b4100bece3fc9d5c61c31fc729 +0 -0
  1992. data/test/dummy/tmp/cache/assets/D73/830/sprockets%2F14dea579703e5a5dcc0f680a9b9c763c +0 -0
  1993. data/test/dummy/tmp/cache/assets/D73/920/sprockets%2F77a5d5acdcd4b3629277aa338f8d7e12 +0 -0
  1994. data/test/dummy/tmp/cache/assets/D73/B20/sprockets%2Fce034e90f2e3d630d09ac39e8782f6db +0 -0
  1995. data/test/dummy/tmp/cache/assets/D73/C10/sprockets%2Fe4408813823d9a881c9b12eaefdb5ef2 +0 -0
  1996. data/test/dummy/tmp/cache/assets/D74/730/sprockets%2F4ff3e7892bfe3b71c2813a34ffe2a654 +0 -0
  1997. data/test/dummy/tmp/cache/assets/D74/A30/sprockets%2Fb9a16284ea2f906ecfe15f36a88fb612 +0 -0
  1998. data/test/dummy/tmp/cache/assets/D74/AF0/sprockets%2Fac41667bf3be098b78246d4a741faf9a +0 -0
  1999. data/test/dummy/tmp/cache/assets/D74/BD0/sprockets%2F8cc50b95ff7a60e1b5628a2c883db54f +0 -0
  2000. data/test/dummy/tmp/cache/assets/D74/F00/sprockets%2F35bfb58f60c6bdd9076b5319d09d4b3f +0 -0
  2001. data/test/dummy/tmp/cache/assets/D74/FD0/sprockets%2F64dbb94566f1a107a8a455fa7cb76ff4 +0 -0
  2002. data/test/dummy/tmp/cache/assets/D75/2B0/sprockets%2F960435d4e7acc5e18decf3134e5df258 +0 -0
  2003. data/test/dummy/tmp/cache/assets/D75/2C0/sprockets%2F5580e9bd1b1d8e6bf3ea14e7b3568d73 +0 -0
  2004. data/test/dummy/tmp/cache/assets/D75/2D0/sprockets%2Fe39e053e9582b104e24e9b7d2edcb7a9 +0 -0
  2005. data/test/dummy/tmp/cache/assets/D75/420/sprockets%2F8fd813d3c06bf1cb2727c578384cfba9 +0 -0
  2006. data/test/dummy/tmp/cache/assets/D75/7B0/sprockets%2F2537b4b5fdfadf6053ce17e04f4f8890 +0 -0
  2007. data/test/dummy/tmp/cache/assets/D75/BB0/sprockets%2Feb3518880cfef75fa6a3873b0c3f307f +0 -0
  2008. data/test/dummy/tmp/cache/assets/D76/0E0/sprockets%2F33f18c25f3ed89ad276e43c3dae675d2 +0 -0
  2009. data/test/dummy/tmp/cache/assets/D76/670/sprockets%2F63bc78b4f8df84d0e1bc584fc636802a +0 -0
  2010. data/test/dummy/tmp/cache/assets/D76/6C0/sprockets%2F619dedc58b2e260e9b216ae485e34fd6 +0 -0
  2011. data/test/dummy/tmp/cache/assets/D76/740/sprockets%2F4b1a5581b16ee55d84da6f0d929ede65 +0 -0
  2012. data/test/dummy/tmp/cache/assets/D76/7B0/sprockets%2F58ef2a5a5d3c11dbd386ff366768be24 +0 -0
  2013. data/test/dummy/tmp/cache/assets/D76/7E0/sprockets%2F650e53bd32a8419c790dc9ef01ef7e9a +0 -0
  2014. data/test/dummy/tmp/cache/assets/D76/920/sprockets%2Ff7e0984c14c72fe461748e6bcc82c0bd +0 -0
  2015. data/test/dummy/tmp/cache/assets/D76/AF0/sprockets%2F2ce576e1efea17e381f625a88df04e16 +0 -0
  2016. data/test/dummy/tmp/cache/assets/D76/C20/sprockets%2Fc67cdf7b14fc589f68b2cb349b124c43 +0 -0
  2017. data/test/dummy/tmp/cache/assets/D77/010/sprockets%2F5beb73eeeb35746142ffc7497d4d2a54 +0 -0
  2018. data/test/dummy/tmp/cache/assets/D77/090/sprockets%2F73f172c5a4c42c57d53ed87cded7d427 +0 -0
  2019. data/test/dummy/tmp/cache/assets/D77/190/sprockets%2Fbbe597fc66514ba44231e1a83fd8ce98 +0 -0
  2020. data/test/dummy/tmp/cache/assets/D77/430/sprockets%2Fed6b89a0c3f2b7153d1937a99ffd360d +0 -0
  2021. data/test/dummy/tmp/cache/assets/D77/450/sprockets%2F5e321bdeefaf01a41af98f3e58824859 +0 -0
  2022. data/test/dummy/tmp/cache/assets/D77/5B0/sprockets%2F4f5ccf72b681c291f2f3c7d929a35bb7 +0 -0
  2023. data/test/dummy/tmp/cache/assets/D77/9B0/sprockets%2F9c114f8c77c699c1c75155d15ab6dfbb +0 -0
  2024. data/test/dummy/tmp/cache/assets/D77/AE0/sprockets%2F5668bbe7bf9792cfd8da59d01b7a1061 +0 -0
  2025. data/test/dummy/tmp/cache/assets/D77/C20/sprockets%2Fa02eda53d75b86e6c7429f8ea538e04e +0 -0
  2026. data/test/dummy/tmp/cache/assets/D78/1A0/sprockets%2F48db88a2a7fbc0c663be27cc938552c9 +0 -0
  2027. data/test/dummy/tmp/cache/assets/D78/780/sprockets%2Fdeeca354e12c8ebcd89967558b2b4505 +0 -0
  2028. data/test/dummy/tmp/cache/assets/D78/7B0/sprockets%2F26b674a8dec384b76fc39ee7241ddc06 +0 -0
  2029. data/test/dummy/tmp/cache/assets/D78/AF0/sprockets%2F99e5bb91d87451ad1e01fe3fe9ef4017 +0 -0
  2030. data/test/dummy/tmp/cache/assets/D79/4F0/sprockets%2Ff0b9f7193991dc74a2a2dec06eaf7990 +0 -0
  2031. data/test/dummy/tmp/cache/assets/D79/550/sprockets%2Ff3f804b18df8bd2952d33b5ff26c7d28 +0 -0
  2032. data/test/dummy/tmp/cache/assets/D79/740/sprockets%2F9026180d0eee8e48c1cf6c4be16d59f7 +0 -0
  2033. data/test/dummy/tmp/cache/assets/D7A/3F0/sprockets%2Fbf3d583f5ba468586a1db5f56e52ef61 +0 -0
  2034. data/test/dummy/tmp/cache/assets/D7B/0E0/sprockets%2F76df5edda070b0c17b5caa61132a303a +0 -0
  2035. data/test/dummy/tmp/cache/assets/D7B/230/sprockets%2F4e473cebde712a45d9879939c2e2bec1 +0 -0
  2036. data/test/dummy/tmp/cache/assets/D7B/260/sprockets%2F0d277dabe82a3ad3ec30ce2a14a52303 +0 -0
  2037. data/test/dummy/tmp/cache/assets/D7B/8B0/sprockets%2F17fce732f3ce6957611ea1f69cedd571 +0 -0
  2038. data/test/dummy/tmp/cache/assets/D7B/9C0/sprockets%2Ff3ce94c1f45e20a6f74da8fb849e5353 +0 -0
  2039. data/test/dummy/tmp/cache/assets/D7B/F40/sprockets%2Fb0ea1b768efb8e8e732928bcf530379c +0 -0
  2040. data/test/dummy/tmp/cache/assets/D7C/510/sprockets%2F51792eee7e8f3e3c4b3983fc4e0b96a0 +0 -0
  2041. data/test/dummy/tmp/cache/assets/D7C/530/sprockets%2F185e7a53a16cf20abab0b1013da4a9c7 +0 -0
  2042. data/test/dummy/tmp/cache/assets/D7C/C40/sprockets%2Fbc948d13a994b95d1f250eb7cdea1799 +0 -0
  2043. data/test/dummy/tmp/cache/assets/D7C/FB0/sprockets%2Fe8f0b9a5d83e431c3d687b93bd59e34c +0 -0
  2044. data/test/dummy/tmp/cache/assets/D7C/FD0/sprockets%2Fcd25fd762489e5a66a627b705a7fae8c +0 -0
  2045. data/test/dummy/tmp/cache/assets/D7D/680/sprockets%2F70e6dd79d693fca593c6e42a42534fde +0 -0
  2046. data/test/dummy/tmp/cache/assets/D7D/6B0/sprockets%2Fffb153cefdcc93107bb26ee973299377 +0 -0
  2047. data/test/dummy/tmp/cache/assets/D7D/920/sprockets%2F0300aeaf0de1fa392f1025d1f258bb3c +0 -0
  2048. data/test/dummy/tmp/cache/assets/D7D/B10/sprockets%2Fd9a65b96e6fabd9d045d957eb910c165 +0 -0
  2049. data/test/dummy/tmp/cache/assets/D7D/B10/sprockets%2Fe2e97e13d5d14ac9f868a362ef7d50c7 +0 -0
  2050. data/test/dummy/tmp/cache/assets/D7D/EA0/sprockets%2F538fa5b5f9fd9825a1c8f0ec03915ee6 +0 -0
  2051. data/test/dummy/tmp/cache/assets/D7D/EB0/sprockets%2F14fa9ab07afd1b4052fd1aa23b143f61 +0 -0
  2052. data/test/dummy/tmp/cache/assets/D7E/0B0/sprockets%2F643779cbba8d11c9e2eb528ffd5a4588 +0 -0
  2053. data/test/dummy/tmp/cache/assets/D7E/0D0/sprockets%2Fab73d771fed0a1998e9fe9514ce645b2 +0 -0
  2054. data/test/dummy/tmp/cache/assets/D7E/1A0/sprockets%2Fdf486db981c919371a42cc58caffd717 +0 -0
  2055. data/test/dummy/tmp/cache/assets/D7E/2E0/sprockets%2Fc7778ea99de21bd0506ad2d88b7772ed +0 -0
  2056. data/test/dummy/tmp/cache/assets/D7E/560/sprockets%2Fe54ec5189221ce385cdcd73eb9c3889a +0 -0
  2057. data/test/dummy/tmp/cache/assets/D7E/850/sprockets%2Fdb6ad325585d3ff7b7d446575e17dd9a +0 -0
  2058. data/test/dummy/tmp/cache/assets/D7E/D70/sprockets%2F91e9640cd916be3c33ecd97cf4376fe2 +0 -0
  2059. data/test/dummy/tmp/cache/assets/D7E/E60/sprockets%2Fe9c9bfeabf98e3403ff02021c677a898 +0 -0
  2060. data/test/dummy/tmp/cache/assets/D7F/080/sprockets%2F7511d57cb850c808dcda48e7bfb6e968 +0 -0
  2061. data/test/dummy/tmp/cache/assets/D7F/5C0/sprockets%2Fdf992dbdcd26ad9963f461f9b570270e +0 -0
  2062. data/test/dummy/tmp/cache/assets/D7F/A00/sprockets%2Fa938e14849c6af6006d4fd18e9f63deb +0 -0
  2063. data/test/dummy/tmp/cache/assets/D7F/AB0/sprockets%2F3af0782e9feb5df9e522505fd783f54b +0 -0
  2064. data/test/dummy/tmp/cache/assets/D7F/AC0/sprockets%2F29f29d0d2da6f272ca5dbf8826ed5787 +0 -0
  2065. data/test/dummy/tmp/cache/assets/D7F/B50/sprockets%2F68870658f9d7af2ea3cd8ead3a4346f3 +0 -0
  2066. data/test/dummy/tmp/cache/assets/D80/000/sprockets%2F77deac6031fb485e38f2ecf0f84677c7 +0 -0
  2067. data/test/dummy/tmp/cache/assets/D80/100/sprockets%2F7659e9f48a711ecf468fc5c2e3d3a42f +0 -0
  2068. data/test/dummy/tmp/cache/assets/D80/4A0/sprockets%2Fc0322f552fc7ddecd97889feaf544660 +0 -0
  2069. data/test/dummy/tmp/cache/assets/D80/720/sprockets%2Fedc921d9f96f2b7d68b2312f0347d9ff +0 -0
  2070. data/test/dummy/tmp/cache/assets/D80/730/sprockets%2F3f9f174f1045e0bddcf4ce3887596f7a +0 -0
  2071. data/test/dummy/tmp/cache/assets/D80/A00/sprockets%2Fdcdd788a82dd3d594a7a95089372fec0 +0 -0
  2072. data/test/dummy/tmp/cache/assets/D80/F00/sprockets%2F99f3e81bfe55e0a17f38598c4a4e7c0d +0 -0
  2073. data/test/dummy/tmp/cache/assets/D80/FA0/sprockets%2F3ef6904ed431cff977ca415fd457ec75 +0 -0
  2074. data/test/dummy/tmp/cache/assets/D81/200/sprockets%2Fcde5804f6925f2aa9d8f82bdb9e80960 +0 -0
  2075. data/test/dummy/tmp/cache/assets/D81/3B0/sprockets%2Fe2694a510e4ee49c9c3682bd4c8e76ef +0 -0
  2076. data/test/dummy/tmp/cache/assets/D81/A80/sprockets%2Fbeed9454c399e752c2bd365e58f8a4e1 +0 -0
  2077. data/test/dummy/tmp/cache/assets/D82/510/sprockets%2Ffc2d84d9484e82de8bd3204edc4558d9 +0 -0
  2078. data/test/dummy/tmp/cache/assets/D82/9C0/sprockets%2Fc5ffb04889e82819aeb546956da7ca5b +0 -0
  2079. data/test/dummy/tmp/cache/assets/D82/B60/sprockets%2Feda7e9086b9d09ed40ccb598e8a20994 +0 -0
  2080. data/test/dummy/tmp/cache/assets/D83/B30/sprockets%2F99bf9d4676359727ea4c7c91c71bbadc +0 -0
  2081. data/test/dummy/tmp/cache/assets/D83/FD0/sprockets%2F0f6d83f8774197ccf51bcfa3b73887cd +0 -0
  2082. data/test/dummy/tmp/cache/assets/D84/2E0/sprockets%2F65d3cce2c12c7ff8864738c338acff88 +0 -0
  2083. data/test/dummy/tmp/cache/assets/D85/050/sprockets%2Fd5cf44ed1bc6b22a2da566f014181b0d +0 -0
  2084. data/test/dummy/tmp/cache/assets/D85/3C0/sprockets%2F505849fee2f95e1c009dc56b859cff7b +0 -0
  2085. data/test/dummy/tmp/cache/assets/D85/460/sprockets%2F9692ef5b8c5e2f3352659f6a64baff7b +0 -0
  2086. data/test/dummy/tmp/cache/assets/D85/4F0/sprockets%2F0c5495b8ef9e647ac6b68efc85155f0e +0 -0
  2087. data/test/dummy/tmp/cache/assets/D85/9A0/sprockets%2F8c7269a7c4a7f26474a48fafdaf7f943 +0 -0
  2088. data/test/dummy/tmp/cache/assets/D86/6D0/sprockets%2Fdfcd0a634b6506b2339e7a13c160acdb +0 -0
  2089. data/test/dummy/tmp/cache/assets/D86/8B0/sprockets%2Ff347b2ca9e265abe21b3eedda2325004 +0 -0
  2090. data/test/dummy/tmp/cache/assets/D86/8D0/sprockets%2F01297d1e51cdfbcce40ca119a6af0291 +0 -0
  2091. data/test/dummy/tmp/cache/assets/D86/A60/sprockets%2F8332efdcd639e759be83060dd8b8d59d +0 -0
  2092. data/test/dummy/tmp/cache/assets/D87/470/sprockets%2F87dbc8969c4a3129ab6bc6d1599e7d7e +0 -0
  2093. data/test/dummy/tmp/cache/assets/D87/6A0/sprockets%2F3024cda74ce7bdc0ba63109371bca58c +0 -0
  2094. data/test/dummy/tmp/cache/assets/D87/CA0/sprockets%2F7acb8148c7874a46f4ae6f5f75c939ea +0 -0
  2095. data/test/dummy/tmp/cache/assets/D87/DE0/sprockets%2F7bc000a5f5d8b65381a03a0c0eafc9a8 +0 -0
  2096. data/test/dummy/tmp/cache/assets/D87/DE0/sprockets%2Fc5f4e0bb142bc8012baa649fe1b7804a +0 -0
  2097. data/test/dummy/tmp/cache/assets/D88/6E0/sprockets%2F2d8c8f5d9e37f75a0a9b68b5cb9485e4 +0 -0
  2098. data/test/dummy/tmp/cache/assets/D88/FF0/sprockets%2F3eef071767aaed7df6558367a9a94c8f +0 -0
  2099. data/test/dummy/tmp/cache/assets/D89/800/sprockets%2Fdb9ee8f27df0f998275d5683d5fb07a2 +0 -0
  2100. data/test/dummy/tmp/cache/assets/D89/A50/sprockets%2F41cb1394fafc7abb3bc2b4c2824647a1 +0 -0
  2101. data/test/dummy/tmp/cache/assets/D89/DF0/sprockets%2Fb8ca8ddcdf983496f377059c08f04e6f +0 -0
  2102. data/test/dummy/tmp/cache/assets/D8A/310/sprockets%2Fd0e01c2266c1b24db1bc158e2ad689ec +0 -0
  2103. data/test/dummy/tmp/cache/assets/D8B/150/sprockets%2F4fd00aad1dc612897da021f51761cdde +0 -0
  2104. data/test/dummy/tmp/cache/assets/D8B/600/sprockets%2F9eca92c03896a5795e29dae9549b4def +0 -0
  2105. data/test/dummy/tmp/cache/assets/D8B/830/sprockets%2F8ac41fd80222d4c3fcea24c74e01c24f +0 -0
  2106. data/test/dummy/tmp/cache/assets/D8B/F60/sprockets%2Fa9def494f7c9af6b76470759db7d75c0 +0 -0
  2107. data/test/dummy/tmp/cache/assets/D8C/040/sprockets%2Faf41f9126938112fcfbb0aa0e1d4f35c +0 -0
  2108. data/test/dummy/tmp/cache/assets/D8C/4A0/sprockets%2F6690479190c88cefdafc6fa781f93fe4 +0 -0
  2109. data/test/dummy/tmp/cache/assets/D8C/730/sprockets%2Fee55e710a1ca60d3e1b16ce45fd72a80 +0 -0
  2110. data/test/dummy/tmp/cache/assets/D8C/8D0/sprockets%2F86b26909aa44e265f9e7f7ddc89f3d7b +0 -0
  2111. data/test/dummy/tmp/cache/assets/D8C/DF0/sprockets%2F9913ce78d96ec81886b1dc37dee17af8 +0 -0
  2112. data/test/dummy/tmp/cache/assets/D8D/190/sprockets%2F81a3e60dea0c6e6a27930ba0d4d557bc +0 -0
  2113. data/test/dummy/tmp/cache/assets/D8D/1D0/sprockets%2F0106dd9cc3e02cfb7b7ea5a95a4a2561 +0 -0
  2114. data/test/dummy/tmp/cache/assets/D8D/1D0/sprockets%2F4a0deb3ad4d6092ff232e0b2d0787cb5 +0 -0
  2115. data/test/dummy/tmp/cache/assets/D8D/3D0/sprockets%2Fa8544ad386345d5602b5ecaebbea0f21 +0 -0
  2116. data/test/dummy/tmp/cache/assets/D8D/520/sprockets%2Fa63eeeb1e03332dbc79b344dc8ba2650 +0 -0
  2117. data/test/dummy/tmp/cache/assets/D8D/690/sprockets%2Ff1c775ec217ba4a2a4826cd7a5c3a4b2 +0 -0
  2118. data/test/dummy/tmp/cache/assets/D8E/050/sprockets%2Fa10db95bdc04a123f348f9c5b4b66fa1 +0 -0
  2119. data/test/dummy/tmp/cache/assets/D8E/490/sprockets%2Fb3bbafaeec7ec0d139168652b6a30660 +0 -0
  2120. data/test/dummy/tmp/cache/assets/D8E/5F0/sprockets%2F123b3f0aaa8ab1864ed5d6e29d2167ca +0 -0
  2121. data/test/dummy/tmp/cache/assets/D8E/7D0/sprockets%2F3b423339b9a58aa6dc2d31c6a65ba7ca +0 -0
  2122. data/test/dummy/tmp/cache/assets/D8E/8E0/sprockets%2Fb0085b1cac2fa3c4dd069337f6f3cb08 +0 -0
  2123. data/test/dummy/tmp/cache/assets/D8F/880/sprockets%2F1aea781830ad62c59bfdb0105c2d7cb9 +0 -0
  2124. data/test/dummy/tmp/cache/assets/D8F/880/sprockets%2F6142d4acf06317a0e6bd7eaedc630d74 +0 -0
  2125. data/test/dummy/tmp/cache/assets/D8F/910/sprockets%2F7d5608304cdbab9a0268c0aeff125aa9 +0 -0
  2126. data/test/dummy/tmp/cache/assets/D8F/950/sprockets%2F7e9bec4920660226bb1fbcca051ad4d8 +0 -0
  2127. data/test/dummy/tmp/cache/assets/D90/240/sprockets%2Fcf46450118b8f3035dbdfe16d0eea3b3 +0 -0
  2128. data/test/dummy/tmp/cache/assets/D90/980/sprockets%2F2f09c8074c7a0ae04c15ea39cb660fea +0 -0
  2129. data/test/dummy/tmp/cache/assets/D90/9F0/sprockets%2Fde504d63ac1099d80ce9ce127cb21b2c +0 -0
  2130. data/test/dummy/tmp/cache/assets/D90/C00/sprockets%2Fab691533f1127900c07c2debabd7ff5c +0 -0
  2131. data/test/dummy/tmp/cache/assets/D90/D90/sprockets%2F04de7f181beb223838a0749abccc1d6a +0 -0
  2132. data/test/dummy/tmp/cache/assets/D90/D90/sprockets%2Fd83620dddcc6284fa7a3cf29e1c0a232 +0 -0
  2133. data/test/dummy/tmp/cache/assets/D91/8C0/sprockets%2F69a1d40bebf6a37342dd10ff2140ee9d +0 -0
  2134. data/test/dummy/tmp/cache/assets/D91/B00/sprockets%2F0ef14a0b942c845028bae00ff7dcfb83 +0 -0
  2135. data/test/dummy/tmp/cache/assets/D92/040/sprockets%2F0552b8b24c29c61b4d7c4ab1f348edea +0 -0
  2136. data/test/dummy/tmp/cache/assets/D92/350/sprockets%2Fe4d921372a1656b3c0cbca2ff9a60ee5 +0 -0
  2137. data/test/dummy/tmp/cache/assets/D92/6A0/sprockets%2F3f4a4fe919134a90fa8ebb33a58b40aa +0 -0
  2138. data/test/dummy/tmp/cache/assets/D92/720/sprockets%2F5b4face0a381590dcceb7193e3343d2d +0 -0
  2139. data/test/dummy/tmp/cache/assets/D92/890/sprockets%2F62fb2a4be25fd586be41b0dba2c49922 +0 -0
  2140. data/test/dummy/tmp/cache/assets/D92/A70/sprockets%2F2bcbeb2844be03b4b7e8360c15f98b2a +0 -0
  2141. data/test/dummy/tmp/cache/assets/D92/F40/sprockets%2Fed082888eb327fe45fef49d795af1f87 +0 -0
  2142. data/test/dummy/tmp/cache/assets/D93/090/sprockets%2F156a2a85d3d5e762c16aefdd6fa2b313 +0 -0
  2143. data/test/dummy/tmp/cache/assets/D93/5E0/sprockets%2Fbbf15a3789bac5f814c71ba5ca20e465 +0 -0
  2144. data/test/dummy/tmp/cache/assets/D93/F00/sprockets%2F2ba869ab341ca37f23fad244dde2a279 +0 -0
  2145. data/test/dummy/tmp/cache/assets/D94/2F0/sprockets%2Fa2c5fc3aeb5c324d627c470d5ec1646e +0 -0
  2146. data/test/dummy/tmp/cache/assets/D94/890/sprockets%2F2b94cea2022c41c5dede8ae3e3b97281 +0 -0
  2147. data/test/dummy/tmp/cache/assets/D94/CA0/sprockets%2F75e7eecfe153f1887f36dff6784fd159 +0 -0
  2148. data/test/dummy/tmp/cache/assets/D94/DD0/sprockets%2F5daec387012d6ac7fa18308f72de0b6a +0 -0
  2149. data/test/dummy/tmp/cache/assets/D95/520/sprockets%2F33bd6dfe5c00aa43d1ea876bb44a6578 +0 -0
  2150. data/test/dummy/tmp/cache/assets/D95/740/sprockets%2Fcd50ae7710f3d5fe0a830bc9eec26039 +0 -0
  2151. data/test/dummy/tmp/cache/assets/D95/C60/sprockets%2F29af5d21e0bd908bd45226fa3de9ec11 +0 -0
  2152. data/test/dummy/tmp/cache/assets/D96/240/sprockets%2F86a05986a3bad6ea7fd18ce16c2b0b42 +0 -0
  2153. data/test/dummy/tmp/cache/assets/D96/240/sprockets%2Fff9b4efbe49d65b80d2d121640aa840a +0 -0
  2154. data/test/dummy/tmp/cache/assets/D96/580/sprockets%2F6fcae2137e71a0b9ad0c6ce48740be29 +0 -0
  2155. data/test/dummy/tmp/cache/assets/D96/5B0/sprockets%2Fbce441e010b4da916725de2ede99e1a6 +0 -0
  2156. data/test/dummy/tmp/cache/assets/D96/780/sprockets%2F3bcb836f508c1b30f559ab5bdc3f344e +0 -0
  2157. data/test/dummy/tmp/cache/assets/D96/9A0/sprockets%2Fec9907bade1891db6bc20180a843cec3 +0 -0
  2158. data/test/dummy/tmp/cache/assets/D96/B40/sprockets%2F90a85be6000c45257cc63dec8c1bcf8b +0 -0
  2159. data/test/dummy/tmp/cache/assets/D96/BD0/sprockets%2Febabcba3d82ef0278f9402ba24f29950 +0 -0
  2160. data/test/dummy/tmp/cache/assets/D96/E80/sprockets%2Fbd9f655dd12709f8b5aadfa16b0f0720 +0 -0
  2161. data/test/dummy/tmp/cache/assets/D96/EE0/sprockets%2Fdaf746b24a37f32faf161e018f93ca4c +0 -0
  2162. data/test/dummy/tmp/cache/assets/D97/150/sprockets%2F50048750bbbe1bb32fe83a8a6f9cd52f +0 -0
  2163. data/test/dummy/tmp/cache/assets/D97/3D0/sprockets%2F44b63b15cae4c6f7d5b04ed3754f41be +0 -0
  2164. data/test/dummy/tmp/cache/assets/D97/420/sprockets%2F8e834e0e5c0fd8de55d5a45200ad91ac +0 -0
  2165. data/test/dummy/tmp/cache/assets/D97/520/sprockets%2Fbfb270b07453b284dca3ecdb95ca7179 +0 -0
  2166. data/test/dummy/tmp/cache/assets/D97/680/sprockets%2F45bdc5ddcb2f81c449e13a775b2bc651 +0 -0
  2167. data/test/dummy/tmp/cache/assets/D97/8E0/sprockets%2F00fa20f763bafd6ae82c8f3d1c70d774 +0 -0
  2168. data/test/dummy/tmp/cache/assets/D97/A10/sprockets%2Ff1fe3b6160ec3da42f287aed3d3235c9 +0 -0
  2169. data/test/dummy/tmp/cache/assets/D97/C80/sprockets%2F5e0eb6a40b9b9d214d8cb3935c8dad41 +0 -0
  2170. data/test/dummy/tmp/cache/assets/D97/F90/sprockets%2F4ed9ede531aa0b2b7ae19ec6a6783530 +0 -0
  2171. data/test/dummy/tmp/cache/assets/D98/0E0/sprockets%2Fde97f1af4c83632e5a03dc3043c8b5af +0 -0
  2172. data/test/dummy/tmp/cache/assets/D98/620/sprockets%2F4739cf0d47eb5ca845b2e43bfc7d0c21 +0 -0
  2173. data/test/dummy/tmp/cache/assets/D98/6E0/sprockets%2F05b7f7fbcaf3804c457ae14c0bb285c9 +0 -0
  2174. data/test/dummy/tmp/cache/assets/D98/A50/sprockets%2F0523ed18a9ed1f98e35ba5f38c1fab20 +0 -0
  2175. data/test/dummy/tmp/cache/assets/D98/E50/sprockets%2Faef92317051bbb1338e0ffd234d99daf +0 -0
  2176. data/test/dummy/tmp/cache/assets/D99/270/sprockets%2Fb6e2851b3cb1de64b763a733fb2d73df +0 -0
  2177. data/test/dummy/tmp/cache/assets/D99/3B0/sprockets%2Ff16c9f0ce8f0ad8036433b8ddc30fe41 +0 -0
  2178. data/test/dummy/tmp/cache/assets/D99/540/sprockets%2F54daaf4bbbfb679b5175a258f0580c5a +0 -0
  2179. data/test/dummy/tmp/cache/assets/D99/550/sprockets%2F4f1ced696bba05434d705a9e16bbf34e +0 -0
  2180. data/test/dummy/tmp/cache/assets/D99/9F0/sprockets%2Fa0d4d37b20b6df5f06092917eb7febe3 +0 -0
  2181. data/test/dummy/tmp/cache/assets/D99/B80/sprockets%2F51f06ed4d0554dd5b308a8a70fc7dad8 +0 -0
  2182. data/test/dummy/tmp/cache/assets/D9A/CD0/sprockets%2F8de942d2fae072b4bda81e0f0570d95d +0 -0
  2183. data/test/dummy/tmp/cache/assets/D9B/500/sprockets%2F19629c0bef01845ebb045a81d7cfe6dc +0 -0
  2184. data/test/dummy/tmp/cache/assets/D9B/830/sprockets%2Fb6c854eff56bcf61aa456259233c2aea +0 -0
  2185. data/test/dummy/tmp/cache/assets/D9B/890/sprockets%2F5fbe783dc1df2d081a95b1fea3700a89 +0 -0
  2186. data/test/dummy/tmp/cache/assets/D9B/C30/sprockets%2F16ae5460a9ba6ac7d19afd0c50f953d9 +0 -0
  2187. data/test/dummy/tmp/cache/assets/D9B/D60/sprockets%2Fcfedc7bc416b3291dcb16761509eb8d3 +0 -0
  2188. data/test/dummy/tmp/cache/assets/D9B/D80/sprockets%2Faba1c493f2a8d60f352727aedf4b557e +0 -0
  2189. data/test/dummy/tmp/cache/assets/D9B/EB0/sprockets%2Fbccb6fe3223846961bdabb25a4095fe8 +0 -0
  2190. data/test/dummy/tmp/cache/assets/D9C/230/sprockets%2F5126f140ae32b9557afd23d7f8cbdbc9 +0 -0
  2191. data/test/dummy/tmp/cache/assets/D9C/3B0/sprockets%2F753bd274643e017fee5cbe0ec9ee04d2 +0 -0
  2192. data/test/dummy/tmp/cache/assets/D9C/830/sprockets%2F262d680e9978a830c4b9db0ccac64cba +0 -0
  2193. data/test/dummy/tmp/cache/assets/D9C/920/sprockets%2F8fdd5d884c80b3ff0b5e63ccc0453e11 +0 -0
  2194. data/test/dummy/tmp/cache/assets/D9C/A00/sprockets%2F693526f5730d6efccbae008e0c348fca +0 -0
  2195. data/test/dummy/tmp/cache/assets/D9C/CA0/sprockets%2F38552a482bd034bdebb8dafe16b8e448 +0 -0
  2196. data/test/dummy/tmp/cache/assets/D9C/CA0/sprockets%2F81e4c6aa40ffcb2dd9a756391fac5660 +0 -0
  2197. data/test/dummy/tmp/cache/assets/D9C/E60/sprockets%2Fec59dcd3aa8d87bf031a0cf41a084995 +0 -0
  2198. data/test/dummy/tmp/cache/assets/D9C/F80/sprockets%2F92177152ae69fdafa3d0446ebb7ac71f +0 -0
  2199. data/test/dummy/tmp/cache/assets/D9D/240/sprockets%2Fabd46ee901845237db0ead67fce673d0 +0 -0
  2200. data/test/dummy/tmp/cache/assets/D9D/450/sprockets%2Fcc373a7814f46e9e68d3cb8ab0ec6a20 +0 -0
  2201. data/test/dummy/tmp/cache/assets/D9D/660/sprockets%2F72b3ef3c70cb276766e5fb2d2bff2e14 +0 -0
  2202. data/test/dummy/tmp/cache/assets/D9D/700/sprockets%2F7843bf281aaa9b81391767dbb3fabca8 +0 -0
  2203. data/test/dummy/tmp/cache/assets/D9D/940/sprockets%2Fafb8efc8d08a26c3335ff3640db8b074 +0 -0
  2204. data/test/dummy/tmp/cache/assets/D9D/D20/sprockets%2F8905ebdedf20eb708ab7c2445b3833df +0 -0
  2205. data/test/dummy/tmp/cache/assets/D9D/DF0/sprockets%2F14d420aaa32413baa042bddcad2811ee +0 -0
  2206. data/test/dummy/tmp/cache/assets/D9D/E00/sprockets%2F62f7d32b35fb23cc6360fbedd75c6e17 +0 -0
  2207. data/test/dummy/tmp/cache/assets/D9D/E10/sprockets%2F75f56ca3a7a4b2b2e57ea289ec91a62c +0 -0
  2208. data/test/dummy/tmp/cache/assets/D9D/ED0/sprockets%2F823cdb7734aa042f363e8befdbc8367a +0 -0
  2209. data/test/dummy/tmp/cache/assets/D9D/ED0/sprockets%2Ff6d62e6a1bf51a917bed5a28184e53fa +0 -0
  2210. data/test/dummy/tmp/cache/assets/D9E/190/sprockets%2F2ee4d943af5dd25b6a9cf42a4f4d6306 +0 -0
  2211. data/test/dummy/tmp/cache/assets/D9E/5E0/sprockets%2F468b16b0cb34e9d09ac36ff74180bcff +0 -0
  2212. data/test/dummy/tmp/cache/assets/D9E/690/sprockets%2F68ab8c1d75a9b4a2ae4b123e77be99c1 +0 -0
  2213. data/test/dummy/tmp/cache/assets/D9E/750/sprockets%2F3ab32a9aab15487d6b9be355c37dfe92 +0 -0
  2214. data/test/dummy/tmp/cache/assets/D9E/7A0/sprockets%2Fb11b94cd6be9b556afbc550e1438e9b5 +0 -0
  2215. data/test/dummy/tmp/cache/assets/D9F/280/sprockets%2F35ad5fcec037a9fcdf43a55c925a9730 +0 -0
  2216. data/test/dummy/tmp/cache/assets/D9F/680/sprockets%2Fedd2d4c5656b3b159d6eb04bef0289a7 +0 -0
  2217. data/test/dummy/tmp/cache/assets/D9F/6B0/sprockets%2Fc8fc14cce588a0bb6514e68c43d15b6f +0 -0
  2218. data/test/dummy/tmp/cache/assets/D9F/6E0/sprockets%2Fbb0a236a70758a95bbcb8e66e588c2cd +0 -0
  2219. data/test/dummy/tmp/cache/assets/D9F/700/sprockets%2F2588f3481ab1859aff3cbc0e9dd0c2d5 +0 -0
  2220. data/test/dummy/tmp/cache/assets/D9F/790/sprockets%2F4d9649c0c0fdecf285b30fa1474b59db +0 -0
  2221. data/test/dummy/tmp/cache/assets/D9F/9C0/sprockets%2Fffc7d816802d6a5085e5b3e3f93bb4aa +0 -0
  2222. data/test/dummy/tmp/cache/assets/D9F/A40/sprockets%2Fda603c8efc43cd83b238627eebf591c1 +0 -0
  2223. data/test/dummy/tmp/cache/assets/DA0/120/sprockets%2F1dae5fb238ce54be6de6f83f3c302628 +0 -0
  2224. data/test/dummy/tmp/cache/assets/DA0/2C0/sprockets%2Fc509492337bcf5c07fd36f1d55ccc4fb +0 -0
  2225. data/test/dummy/tmp/cache/assets/DA0/6A0/sprockets%2F64ef7b9a2cab3451d2256c5be08fb7f8 +0 -0
  2226. data/test/dummy/tmp/cache/assets/DA0/730/sprockets%2F06dc5952fd6bd4577e9ea2b800cc3b5e +0 -0
  2227. data/test/dummy/tmp/cache/assets/DA0/AF0/sprockets%2Ffd5bb98b534294f62b14ee8cd1b0e29b +0 -0
  2228. data/test/dummy/tmp/cache/assets/DA1/330/sprockets%2Fc31e85029f1c94c22757fffa32e7abfc +0 -0
  2229. data/test/dummy/tmp/cache/assets/DA1/480/sprockets%2Fe751abde7804d66263e93ee7e1bbf03d +0 -0
  2230. data/test/dummy/tmp/cache/assets/DA1/4C0/sprockets%2Fe2f4888fb4302a6bfe7f729ccb074aa3 +0 -0
  2231. data/test/dummy/tmp/cache/assets/DA1/4E0/sprockets%2F25ee9aeeca7f9706b117dae5f79152a0 +0 -0
  2232. data/test/dummy/tmp/cache/assets/DA1/620/sprockets%2Ff46117893705b0f59fae35babd8cc1ee +0 -0
  2233. data/test/dummy/tmp/cache/assets/DA1/AC0/sprockets%2Fd0938e403e53c41dd397bebfc38c3ae8 +0 -0
  2234. data/test/dummy/tmp/cache/assets/DA1/BE0/sprockets%2F4571a9660eeadd8a7dbc0977b0ddb564 +0 -0
  2235. data/test/dummy/tmp/cache/assets/DA2/210/sprockets%2Fcf1005ebeb968dc1a3ecd75b93391c79 +0 -0
  2236. data/test/dummy/tmp/cache/assets/DA2/250/sprockets%2Fd07b798cc1eda20971c7f55c843eeea1 +0 -0
  2237. data/test/dummy/tmp/cache/assets/DA2/4A0/sprockets%2F670f4ee452da78be3f04a9a2b13f76ff +0 -0
  2238. data/test/dummy/tmp/cache/assets/DA2/720/sprockets%2F5839bafde83c10bce89de12e12f884c0 +0 -0
  2239. data/test/dummy/tmp/cache/assets/DA2/900/sprockets%2F1cbafbc425d5ab9ea9052687c35a98f6 +0 -0
  2240. data/test/dummy/tmp/cache/assets/DA2/990/sprockets%2F41dbab3891e458ea9da2ee49acd08295 +0 -0
  2241. data/test/dummy/tmp/cache/assets/DA2/A00/sprockets%2Fbba663f59b4fb86f900bd856bfcb5125 +0 -0
  2242. data/test/dummy/tmp/cache/assets/DA2/C20/sprockets%2Fd1af091c8ebf55de949cfb5b431167e2 +0 -0
  2243. data/test/dummy/tmp/cache/assets/DA3/310/sprockets%2F81215b7f845fbe20efd6db7f15c1dc77 +0 -0
  2244. data/test/dummy/tmp/cache/assets/DA3/7B0/sprockets%2Fb20f9d42c879feea70b12b6fe9a7443c +0 -0
  2245. data/test/dummy/tmp/cache/assets/DA3/BE0/sprockets%2F77794cc60c4f48ea4b38e1f3cfbee230 +0 -0
  2246. data/test/dummy/tmp/cache/assets/DA4/160/sprockets%2Fa219e9635b17ec93e0bc88fe03aae4f8 +0 -0
  2247. data/test/dummy/tmp/cache/assets/DA4/210/sprockets%2Fe226ea6c238496afd62bb59d6b93af2d +0 -0
  2248. data/test/dummy/tmp/cache/assets/DA4/440/sprockets%2Ff72d59f3ce546ce02fedb09f6423cc71 +0 -0
  2249. data/test/dummy/tmp/cache/assets/DA4/570/sprockets%2F9cb40f555575a9ebc3df1fc70ff350a9 +0 -0
  2250. data/test/dummy/tmp/cache/assets/DA4/7D0/sprockets%2Ff785329b1ea2cd8b6aecafb93316892c +0 -0
  2251. data/test/dummy/tmp/cache/assets/DA4/E60/sprockets%2F9cc625acbeceed27b29b6240774f564e +0 -0
  2252. data/test/dummy/tmp/cache/assets/DA5/4E0/sprockets%2F7ee781cfeeb8b125b6449b27ace16a84 +0 -0
  2253. data/test/dummy/tmp/cache/assets/DA5/670/sprockets%2Faf276cef126bb7e149702ae3e4d9ed49 +0 -0
  2254. data/test/dummy/tmp/cache/assets/DA5/7D0/sprockets%2F9e21aaec784efd03d75b6260c838f9ca +0 -0
  2255. data/test/dummy/tmp/cache/assets/DA5/850/sprockets%2Fd349efeb6bc4a914c6c961bea4f56408 +0 -0
  2256. data/test/dummy/tmp/cache/assets/DA5/B00/sprockets%2F9a65bfffad606825b2df851d823b77ba +0 -0
  2257. data/test/dummy/tmp/cache/assets/DA5/D50/sprockets%2F506747a2fdb15aacde9e38e4398f3a5d +0 -0
  2258. data/test/dummy/tmp/cache/assets/DA6/AF0/sprockets%2F6e8c46cad9893b1bd8af6e35130dee26 +0 -0
  2259. data/test/dummy/tmp/cache/assets/DA6/B40/sprockets%2Fb8d0ca6785a2c51f875de5ebf5e760b4 +0 -0
  2260. data/test/dummy/tmp/cache/assets/DA6/E70/sprockets%2F9b696267509c0edcbd4d5fe5b39da42b +0 -0
  2261. data/test/dummy/tmp/cache/assets/DA6/FC0/sprockets%2Fa9a778bdcdfa61b7a896175bece25271 +0 -0
  2262. data/test/dummy/tmp/cache/assets/DA7/180/sprockets%2Fd73e504186ef5af78cdf7c24cfc3f620 +0 -0
  2263. data/test/dummy/tmp/cache/assets/DA7/2E0/sprockets%2F4ad87d35f9e6da4d35a39e9d503cc1a9 +0 -0
  2264. data/test/dummy/tmp/cache/assets/DA7/670/sprockets%2F7b1860c85ed37bbedb85689652dae2bb +0 -0
  2265. data/test/dummy/tmp/cache/assets/DA7/690/sprockets%2Fc49a7fa0c7dc57f03aa9f4fdb3994291 +0 -0
  2266. data/test/dummy/tmp/cache/assets/DA7/E80/sprockets%2Fa0227f61714ce886a5ee8c2dafed6e75 +0 -0
  2267. data/test/dummy/tmp/cache/assets/DA7/EC0/sprockets%2Fb6fb402b414a93e9155ff708edbf99ea +0 -0
  2268. data/test/dummy/tmp/cache/assets/DA8/670/sprockets%2F7fa8cffb6c3f4080dc45367eb638b80e +0 -0
  2269. data/test/dummy/tmp/cache/assets/DA8/7A0/sprockets%2Febee8835fef38639b31ed381026aeb4f +0 -0
  2270. data/test/dummy/tmp/cache/assets/DA8/9D0/sprockets%2Fcae25fa34b675c9c4c476bcc58e73c57 +0 -0
  2271. data/test/dummy/tmp/cache/assets/DA8/B70/sprockets%2F3ddd853d4c7253dc5ab53748cc7e4f5f +0 -0
  2272. data/test/dummy/tmp/cache/assets/DA9/0F0/sprockets%2Fc5ee1745b2af4a8400b8ffd943e89cf5 +0 -0
  2273. data/test/dummy/tmp/cache/assets/DA9/520/sprockets%2Feb3fb449864678a9bf1b81fd651aa4fc +0 -0
  2274. data/test/dummy/tmp/cache/assets/DA9/6C0/sprockets%2Fcab86eb3c55f4cec292978700c79bfb4 +0 -0
  2275. data/test/dummy/tmp/cache/assets/DA9/6C0/sprockets%2Fff22f389eaabe920d9917593f53d0add +0 -0
  2276. data/test/dummy/tmp/cache/assets/DA9/B10/sprockets%2Feee74b1f0ee7c04ce8a936a84634f9b4 +0 -0
  2277. data/test/dummy/tmp/cache/assets/DA9/B50/sprockets%2F33bf06585f1ea78e692c673fbd5fddc0 +0 -0
  2278. data/test/dummy/tmp/cache/assets/DAA/3C0/sprockets%2Fd98d9a4aacaf34f7c2c80215ee96a588 +0 -0
  2279. data/test/dummy/tmp/cache/assets/DAA/A70/sprockets%2Ff91185ef25f2a8cc36a7ec6f9f6114fa +0 -0
  2280. data/test/dummy/tmp/cache/assets/DAA/AC0/sprockets%2F3c3b0b95fdbaa97909ef9294cb5465dc +0 -0
  2281. data/test/dummy/tmp/cache/assets/DAA/D30/sprockets%2Fba92440f66d3ab82ccfcd4f86e899a16 +0 -0
  2282. data/test/dummy/tmp/cache/assets/DAA/FD0/sprockets%2Fed079f328d7bec564dc4ce6c43792dd1 +0 -0
  2283. data/test/dummy/tmp/cache/assets/DAB/300/sprockets%2Fe822e0c7ed2416485de1f78ded67ed0f +0 -0
  2284. data/test/dummy/tmp/cache/assets/DAB/5A0/sprockets%2F567452effadda63e1508f90dbbd749d8 +0 -0
  2285. data/test/dummy/tmp/cache/assets/DAB/6A0/sprockets%2F12f3e9f27333f32b79e8bc767becabe8 +0 -0
  2286. data/test/dummy/tmp/cache/assets/DAB/B40/sprockets%2Fe7a1c88beb7a5f83f45fb0e891d7238a +0 -0
  2287. data/test/dummy/tmp/cache/assets/DAC/C10/sprockets%2Fcaf97fa0f6dc423148fc81fcc9a95745 +0 -0
  2288. data/test/dummy/tmp/cache/assets/DAC/F40/sprockets%2F3fe1cc6f892dead945802da28ef59e05 +0 -0
  2289. data/test/dummy/tmp/cache/assets/DAD/170/sprockets%2F33a1add4ee0283afc041dc1f00089bbc +0 -0
  2290. data/test/dummy/tmp/cache/assets/DAD/970/sprockets%2Ff79fae2ac5d828366ed1bf9c37c90a19 +0 -0
  2291. data/test/dummy/tmp/cache/assets/DAD/C30/sprockets%2Fc367fd7fbb14376f138cb80c5e8dfd84 +0 -0
  2292. data/test/dummy/tmp/cache/assets/DAD/D40/sprockets%2F6d8bbc6aa4f33f5a67f0890b89a8da96 +0 -0
  2293. data/test/dummy/tmp/cache/assets/DAE/8E0/sprockets%2Faee3dc2a887eeee336ef1893818372bd +0 -0
  2294. data/test/dummy/tmp/cache/assets/DAE/EC0/sprockets%2F709cc8de3d84dd37b9f9890b46ba2ec2 +0 -0
  2295. data/test/dummy/tmp/cache/assets/DAE/F00/sprockets%2F872b872dfa0f87e987bff32f5a1a54be +0 -0
  2296. data/test/dummy/tmp/cache/assets/DAF/0B0/sprockets%2F127d0c8a454b2b959c5effcc6ff7d829 +0 -0
  2297. data/test/dummy/tmp/cache/assets/DAF/250/sprockets%2Fbea10954ca85a6d397d894df6c8b8ed2 +0 -0
  2298. data/test/dummy/tmp/cache/assets/DAF/790/sprockets%2F87f6dce871aee8d0ae1345c1dd799b56 +0 -0
  2299. data/test/dummy/tmp/cache/assets/DB0/5E0/sprockets%2F111dcb8dd1015bcb905d15ca50d5ef3b +0 -0
  2300. data/test/dummy/tmp/cache/assets/DB0/960/sprockets%2Fdca36b7d8f8dc27d38094987cf2aae55 +0 -0
  2301. data/test/dummy/tmp/cache/assets/DB0/D90/sprockets%2Fc73eda334eac400b1cc12732b90dde0f +0 -0
  2302. data/test/dummy/tmp/cache/assets/DB1/010/sprockets%2Fe4b277e9d34f824ce15c697ff7d1aca9 +0 -0
  2303. data/test/dummy/tmp/cache/assets/DB2/A30/sprockets%2Fdf6f888ba2c274b3982978dc7b30dbfd +0 -0
  2304. data/test/dummy/tmp/cache/assets/DB2/FF0/sprockets%2F42d355fbbe8da4ff9d9c27695194dc5c +0 -0
  2305. data/test/dummy/tmp/cache/assets/DB3/2B0/sprockets%2F89f4a28a5f96c6c9dd5043abe7c5ed85 +0 -0
  2306. data/test/dummy/tmp/cache/assets/DB3/2E0/sprockets%2F67b0e900efa0080eaa416eb03cd2db8c +0 -0
  2307. data/test/dummy/tmp/cache/assets/DB3/3A0/sprockets%2F0fec5ca6626996faa5b0d6569fc98e5c +0 -0
  2308. data/test/dummy/tmp/cache/assets/DB3/3F0/sprockets%2F8b3975e48c4b9ca4685fbd9d0ca595eb +0 -0
  2309. data/test/dummy/tmp/cache/assets/DB3/400/sprockets%2Fb34576fbf3a08f9e99aed924aa68b79a +0 -0
  2310. data/test/dummy/tmp/cache/assets/DB3/560/sprockets%2F09265ecfe8875619e47c3f4deda73cdc +0 -0
  2311. data/test/dummy/tmp/cache/assets/DB3/9C0/sprockets%2Ff15f826b5db25c2055ce9dff84898eeb +0 -0
  2312. data/test/dummy/tmp/cache/assets/DB3/B20/sprockets%2F2c83285ff94ab2f4a688c71eafffa399 +0 -0
  2313. data/test/dummy/tmp/cache/assets/DB4/4F0/sprockets%2F296e2f64ef5c7fe29d69fbac5cb29714 +0 -0
  2314. data/test/dummy/tmp/cache/assets/DB4/5A0/sprockets%2Ff6c4c504c300bcf2baa95ca8923dcb10 +0 -0
  2315. data/test/dummy/tmp/cache/assets/DB4/670/sprockets%2F2b5f4f8f5ad218e9ec53f9fde943254e +0 -0
  2316. data/test/dummy/tmp/cache/assets/DB4/730/sprockets%2F22a0f9985f2ee491b998e9a3dfbbb7c6 +0 -0
  2317. data/test/dummy/tmp/cache/assets/DB4/A70/sprockets%2F11aaa7b192ebb5a461e5bed0138e4a7b +0 -0
  2318. data/test/dummy/tmp/cache/assets/DB4/F60/sprockets%2F60712b2ed0cb5fc6cb6442fae3cd203b +0 -0
  2319. data/test/dummy/tmp/cache/assets/DB5/460/sprockets%2Fd2eaa3b6abf0aded1e25055b303b9691 +0 -0
  2320. data/test/dummy/tmp/cache/assets/DB5/F30/sprockets%2Fd5925f7c79df0ad0e8d956eed84483ab +0 -0
  2321. data/test/dummy/tmp/cache/assets/DB6/320/sprockets%2Fe559edb9cc5663f6d55937a68eb4d4bc +0 -0
  2322. data/test/dummy/tmp/cache/assets/DB6/860/sprockets%2F1081c1eb464dd58cacda381baed4b314 +0 -0
  2323. data/test/dummy/tmp/cache/assets/DB6/AB0/sprockets%2F3e996efd32efb4a9e4d66b63ee960e90 +0 -0
  2324. data/test/dummy/tmp/cache/assets/DB6/DF0/sprockets%2Ff660ad1581acfc05d77bd33fa14bb1a2 +0 -0
  2325. data/test/dummy/tmp/cache/assets/DB7/BB0/sprockets%2Fde6bb518e6ea4e2e15095c2ba0f01ba3 +0 -0
  2326. data/test/dummy/tmp/cache/assets/DB7/D70/sprockets%2F4f4fff578c1ce749a4765f8a896aa4ca +0 -0
  2327. data/test/dummy/tmp/cache/assets/DB8/2C0/sprockets%2F9e22b0c5e3ecd370519aa5bf003bdaa9 +0 -0
  2328. data/test/dummy/tmp/cache/assets/DB9/3C0/sprockets%2Fdba147ede0e572d80d29cf00bc52c2c1 +0 -0
  2329. data/test/dummy/tmp/cache/assets/DB9/430/sprockets%2F6f49fd89105cc57e75ce798e62a9aaeb +0 -0
  2330. data/test/dummy/tmp/cache/assets/DB9/990/sprockets%2F2b66d14fe1dcac5ca8f422b112af50e7 +0 -0
  2331. data/test/dummy/tmp/cache/assets/DB9/9A0/sprockets%2F24cedfba35e2cda224264eda76d120a8 +0 -0
  2332. data/test/dummy/tmp/cache/assets/DB9/BC0/sprockets%2F48ba40ced57f11b12ceae162c9bef050 +0 -0
  2333. data/test/dummy/tmp/cache/assets/DBA/3B0/sprockets%2Ffd06bc030bc3ae7a13682ad3ce3e37f4 +0 -0
  2334. data/test/dummy/tmp/cache/assets/DBA/E30/sprockets%2F6542cedc93fecba4076b31ea1221aae7 +0 -0
  2335. data/test/dummy/tmp/cache/assets/DBB/3C0/sprockets%2Fa56fb241a0612acb8b6b88ae23c6ce5a +0 -0
  2336. data/test/dummy/tmp/cache/assets/DBB/450/sprockets%2F4d412bacafeebff011918e21e201de68 +0 -0
  2337. data/test/dummy/tmp/cache/assets/DBB/950/sprockets%2Fbb3a309979ecb4dbf669f6fe2778e5c7 +0 -0
  2338. data/test/dummy/tmp/cache/assets/DBB/B70/sprockets%2Fd1997fbb98dd249b8586fe8e127bc4af +0 -0
  2339. data/test/dummy/tmp/cache/assets/DBB/FF0/sprockets%2F071723b7dec01ca21f5d72c4d7b3cfea +0 -0
  2340. data/test/dummy/tmp/cache/assets/DBC/A70/sprockets%2F0f7da71f1d2e23fc55bc2441e0efa41f +0 -0
  2341. data/test/dummy/tmp/cache/assets/DBC/C20/sprockets%2Ffb9d59e753f1e696fc861e74a6cf0d6f +0 -0
  2342. data/test/dummy/tmp/cache/assets/DBC/D60/sprockets%2Fa5d629edbdaa0ee111fe4170093a6de4 +0 -0
  2343. data/test/dummy/tmp/cache/assets/DBC/FD0/sprockets%2Fcb32366dc0b2c1f2a69ebe48dbb139c0 +0 -0
  2344. data/test/dummy/tmp/cache/assets/DBC/FE0/sprockets%2Fe78f2cc2dd0bd01854bf2bb3bd1e0276 +0 -0
  2345. data/test/dummy/tmp/cache/assets/DBD/040/sprockets%2Fbab3c9aeedf12b684be7a100458ad308 +0 -0
  2346. data/test/dummy/tmp/cache/assets/DBD/3E0/sprockets%2Fdee13da1110dd9fafe3495e91da40d03 +0 -0
  2347. data/test/dummy/tmp/cache/assets/DBD/B10/sprockets%2Ff56450f3fc25ab33ef1114be384acafb +0 -0
  2348. data/test/dummy/tmp/cache/assets/DBD/C00/sprockets%2Fc10a55b9aebe3ad6d5730d08c029bb7d +0 -0
  2349. data/test/dummy/tmp/cache/assets/DBD/DF0/sprockets%2F687f97d06e7aab4e768668ffbe5f2f0d +0 -0
  2350. data/test/dummy/tmp/cache/assets/DBE/150/sprockets%2F2b5bf9bf22a03d0919cf1bab468a8a2d +0 -0
  2351. data/test/dummy/tmp/cache/assets/DBE/2C0/sprockets%2F551e2bb3e1bc603f1d8e829b24bf4ada +0 -0
  2352. data/test/dummy/tmp/cache/assets/DBE/3F0/sprockets%2F98ba39074d64ed3c3d0ab1a8adc3f13a +0 -0
  2353. data/test/dummy/tmp/cache/assets/DBE/880/sprockets%2F90cda2c525af06a2df3314ff03fe8e0d +0 -0
  2354. data/test/dummy/tmp/cache/assets/DBE/EB0/sprockets%2F472ff473ee0da1ca1f0ab06578b38bca +0 -0
  2355. data/test/dummy/tmp/cache/assets/DBE/EF0/sprockets%2Fab6106e1a9bb5bcda65cb06d8e9801c3 +0 -0
  2356. data/test/dummy/tmp/cache/assets/DBF/060/sprockets%2Ff0805abfb20e90ee57bc466cab5cb514 +0 -0
  2357. data/test/dummy/tmp/cache/assets/DBF/290/sprockets%2F8acf830eb40f48cfb303c151edb4b25f +0 -0
  2358. data/test/dummy/tmp/cache/assets/DBF/A50/sprockets%2Fb61db5cd1576d6aacf374dbcd02a8217 +0 -0
  2359. data/test/dummy/tmp/cache/assets/DBF/B00/sprockets%2Fec730ac85ab0e8ccfaf212b57b083f07 +0 -0
  2360. data/test/dummy/tmp/cache/assets/DC0/1A0/sprockets%2Fc9de417a45eea1220205b4ecdc5e7d7a +0 -0
  2361. data/test/dummy/tmp/cache/assets/DC0/8A0/sprockets%2F923f5de8d5a0de54dec61b9002cdad11 +0 -0
  2362. data/test/dummy/tmp/cache/assets/DC0/A30/sprockets%2F2e07ac4a2323f9fca40c5defbc8a6317 +0 -0
  2363. data/test/dummy/tmp/cache/assets/DC0/D50/sprockets%2Fa097614dbabbcbf1b8cd36b662d64c24 +0 -0
  2364. data/test/dummy/tmp/cache/assets/DC0/E00/sprockets%2Ffc5fa9a7e991958a6576b725fdbdcc89 +0 -0
  2365. data/test/dummy/tmp/cache/assets/DC0/F50/sprockets%2Fcec2b1e1bda6d7a4b0ef3a381837f930 +0 -0
  2366. data/test/dummy/tmp/cache/assets/DC1/610/sprockets%2Fec13df1137f894b0c53bdbb8751abaa7 +0 -0
  2367. data/test/dummy/tmp/cache/assets/DC2/120/sprockets%2Fec38aced45c12d13f8c60e0b4dc36d45 +0 -0
  2368. data/test/dummy/tmp/cache/assets/DC2/330/sprockets%2Fbd56a181b5c2e63215f0b46acc9fdd3e +0 -0
  2369. data/test/dummy/tmp/cache/assets/DC2/4A0/sprockets%2Fbb9ede156dcc1c81616c9a4fa033ee03 +0 -0
  2370. data/test/dummy/tmp/cache/assets/DC2/940/sprockets%2F8d48c857f51edc4c3c0fd1a0cf0514ab +0 -0
  2371. data/test/dummy/tmp/cache/assets/DC2/C00/sprockets%2Fa12e90d33a80cdc4ffe1f2ea012689cf +0 -0
  2372. data/test/dummy/tmp/cache/assets/DC3/160/sprockets%2F129f0ad08b545cfedaf5ab12c5059de5 +0 -0
  2373. data/test/dummy/tmp/cache/assets/DC3/530/sprockets%2F757efdc940de1fa101dda5fb836140bd +0 -0
  2374. data/test/dummy/tmp/cache/assets/DC3/5C0/sprockets%2F555de405a7c6e58ba794dbf1d01b4aba +0 -0
  2375. data/test/dummy/tmp/cache/assets/DC3/D20/sprockets%2Fcb4fb9601f3ed45b1a50ed39ee614a2e +0 -0
  2376. data/test/dummy/tmp/cache/assets/DC3/D20/sprockets%2Ff2e1a2c5129bce4971a7af2c0eeae546 +0 -0
  2377. data/test/dummy/tmp/cache/assets/DC3/FA0/sprockets%2Fd25ccfdee31d877151b24a9dab2a90b6 +0 -0
  2378. data/test/dummy/tmp/cache/assets/DC4/310/sprockets%2Feb91f4262ece3b0f3cc25e48fd254ab2 +0 -0
  2379. data/test/dummy/tmp/cache/assets/DC4/A20/sprockets%2Fb9ca8fae522bc3346e01cce6a5c1974b +0 -0
  2380. data/test/dummy/tmp/cache/assets/DC4/E50/sprockets%2F8de30090e0349c483201dcf3dfddecdc +0 -0
  2381. data/test/dummy/tmp/cache/assets/DC6/BB0/sprockets%2Fc650cd342bf1d6306bf614ebcebe56f6 +0 -0
  2382. data/test/dummy/tmp/cache/assets/DC6/CA0/sprockets%2Fdc3aa6f23c59d97b11825af4ef3c0a3e +0 -0
  2383. data/test/dummy/tmp/cache/assets/DC6/F20/sprockets%2F472c8761d34a4a0af40eebf8b9d6b0af +0 -0
  2384. data/test/dummy/tmp/cache/assets/DC7/280/sprockets%2F270ea0cbdfd05cc48eff704780066cdd +0 -0
  2385. data/test/dummy/tmp/cache/assets/DC7/780/sprockets%2Fc21ca53b58d0e0754def4bfefa7a5076 +0 -0
  2386. data/test/dummy/tmp/cache/assets/DC7/7D0/sprockets%2F69e6da13074b1135afe6ff8cadd2be15 +0 -0
  2387. data/test/dummy/tmp/cache/assets/DC7/8F0/sprockets%2Fc7f71dae2d71a0dec9ceb9237f16124b +0 -0
  2388. data/test/dummy/tmp/cache/assets/DC7/BC0/sprockets%2Fa6b9f243219b55edccdc362a64cb4ed4 +0 -0
  2389. data/test/dummy/tmp/cache/assets/DC7/EE0/sprockets%2Fbcfa5f1dd43080040d9f06cddf0d95c9 +0 -0
  2390. data/test/dummy/tmp/cache/assets/DC8/3A0/sprockets%2F0a82147fab265bfcb884f782beafc0b4 +0 -0
  2391. data/test/dummy/tmp/cache/assets/DC8/410/sprockets%2Fcddde980ab9e710d80161e09fa3dba92 +0 -0
  2392. data/test/dummy/tmp/cache/assets/DC8/4D0/sprockets%2Fda2a6be6764d1e4fbfbd95e8d821111a +0 -0
  2393. data/test/dummy/tmp/cache/assets/DC8/590/sprockets%2F804613cab66aacfd4fae5f0ea275692e +0 -0
  2394. data/test/dummy/tmp/cache/assets/DC8/670/sprockets%2F47b5310b4dbf58b2b8dcd6ba98c05db6 +0 -0
  2395. data/test/dummy/tmp/cache/assets/DC8/9E0/sprockets%2F0fad3b3f1ed38ea3041c6f6f382c79da +0 -0
  2396. data/test/dummy/tmp/cache/assets/DC8/B00/sprockets%2F6f814a096f8ae113dbede4cdf243fb31 +0 -0
  2397. data/test/dummy/tmp/cache/assets/DC8/D80/sprockets%2Ff4236d1b64f8ea9ebc1a1aea0d596b38 +0 -0
  2398. data/test/dummy/tmp/cache/assets/DC8/E20/sprockets%2F3a5db4f8c6a4749fd24a05f1e062eebc +0 -0
  2399. data/test/dummy/tmp/cache/assets/DC8/FF0/sprockets%2F10f2f3fdbf1f2a8c0cac8d6394cf8207 +0 -0
  2400. data/test/dummy/tmp/cache/assets/DC9/3C0/sprockets%2F7c707b5f3a1c6bc1fd26ea9f8a2b9b32 +0 -0
  2401. data/test/dummy/tmp/cache/assets/DC9/7E0/sprockets%2Fa4efa2a36e1a334fb529dd5a909f6fb3 +0 -0
  2402. data/test/dummy/tmp/cache/assets/DC9/BC0/sprockets%2F42d9ff9f511d0c7e072f24bbfc305cce +0 -0
  2403. data/test/dummy/tmp/cache/assets/DCA/2C0/sprockets%2Fb48833de6cb1db246ca8fbaae441848c +0 -0
  2404. data/test/dummy/tmp/cache/assets/DCA/310/sprockets%2F032481b7ad8da4f7ecc2ea13fd7497ac +0 -0
  2405. data/test/dummy/tmp/cache/assets/DCA/920/sprockets%2Ff39dbfc5b7b633a9a1dd3653a64cd5b3 +0 -0
  2406. data/test/dummy/tmp/cache/assets/DCB/620/sprockets%2Ff03f8d235d0b22d486dfd1f3dddf0f19 +0 -0
  2407. data/test/dummy/tmp/cache/assets/DCB/7F0/sprockets%2F7e1ceccd440d8b325b15b95ee45af1f7 +0 -0
  2408. data/test/dummy/tmp/cache/assets/DCB/950/sprockets%2F39a5640eb2a1fe3e354d2fef56a5f6da +0 -0
  2409. data/test/dummy/tmp/cache/assets/DCB/D50/sprockets%2F285bfff127e41bfcab2ce7941eba9343 +0 -0
  2410. data/test/dummy/tmp/cache/assets/DCC/0E0/sprockets%2F3a58dd8b234afe2902cf72f8eaa3d6f1 +0 -0
  2411. data/test/dummy/tmp/cache/assets/DCC/490/sprockets%2Fef191a783bb65fade10ba88a9a43e1f6 +0 -0
  2412. data/test/dummy/tmp/cache/assets/DCC/610/sprockets%2F7e59dfc897a88b7e96d649cdf0d1e6f9 +0 -0
  2413. data/test/dummy/tmp/cache/assets/DCC/F20/sprockets%2Fd01120eaba8c37dcc74adc56996cf8b7 +0 -0
  2414. data/test/dummy/tmp/cache/assets/DCD/090/sprockets%2Fe46caf85209b6ebb213aeafe63cf0687 +0 -0
  2415. data/test/dummy/tmp/cache/assets/DCD/290/sprockets%2Ffdfdf7ac4922a4fc2be372d4125726fc +0 -0
  2416. data/test/dummy/tmp/cache/assets/DCD/6C0/sprockets%2Fe0d70bd50ef15ccf46fad2cb6629687a +0 -0
  2417. data/test/dummy/tmp/cache/assets/DCD/9B0/sprockets%2F2d5cfcb4da95df6b3ea2821f43336ed7 +0 -0
  2418. data/test/dummy/tmp/cache/assets/DCD/C10/sprockets%2Fdaff331d5829710b1fd4fc6b95cb62ce +0 -0
  2419. data/test/dummy/tmp/cache/assets/DCD/DE0/sprockets%2F8ac7911da2d373a2ea6dadc78d5e77d1 +0 -0
  2420. data/test/dummy/tmp/cache/assets/DCD/F50/sprockets%2Fcfbad427aaa6d9e29757650fa417ece0 +0 -0
  2421. data/test/dummy/tmp/cache/assets/DCE/120/sprockets%2F2717e6fdc18f2a78ec7ad543cada554a +0 -0
  2422. data/test/dummy/tmp/cache/assets/DCE/560/sprockets%2F612c2e344718626fca3be27ccff6bdef +0 -0
  2423. data/test/dummy/tmp/cache/assets/DCE/BB0/sprockets%2F3d240ff1ffacfc5a8a42832554dfcb88 +0 -0
  2424. data/test/dummy/tmp/cache/assets/DCE/BF0/sprockets%2Ff2114c9c5f93cd1afbe449b6f2b3ce55 +0 -0
  2425. data/test/dummy/tmp/cache/assets/DCE/D80/sprockets%2Fa8e3b62e0d5bd2a64fb78e1990eb73bd +0 -0
  2426. data/test/dummy/tmp/cache/assets/DCE/E50/sprockets%2Fd1ea6e93b6e9769ac6efb0d1b03c5e24 +0 -0
  2427. data/test/dummy/tmp/cache/assets/DCE/E70/sprockets%2Fa3de81b32c9ba72be70ed91fbd48638c +0 -0
  2428. data/test/dummy/tmp/cache/assets/DCF/100/sprockets%2Fcf70cfe01aee0b6c8725e39eec353e46 +0 -0
  2429. data/test/dummy/tmp/cache/assets/DCF/180/sprockets%2Fa0fb6e0ea7cad056e5e49e3d875c40d8 +0 -0
  2430. data/test/dummy/tmp/cache/assets/DCF/310/sprockets%2F4cb6d36bdf46eb44c23df73ff6127b6b +0 -0
  2431. data/test/dummy/tmp/cache/assets/DCF/5D0/sprockets%2F95dcbbc1e3f58076e0fbc297cbaf9124 +0 -0
  2432. data/test/dummy/tmp/cache/assets/DCF/6B0/sprockets%2F6039db30eee2cb1da99f025e7d1e6f7d +0 -0
  2433. data/test/dummy/tmp/cache/assets/DCF/6F0/sprockets%2Fb35295b9c0ed38dd040ea475edfea37f +0 -0
  2434. data/test/dummy/tmp/cache/assets/DCF/AC0/sprockets%2Fca3f2c931d05fd9271edb9db0f19c92f +0 -0
  2435. data/test/dummy/tmp/cache/assets/DCF/AE0/sprockets%2F900dedad9af2bf2a03f65987d776aa0e +0 -0
  2436. data/test/dummy/tmp/cache/assets/DCF/DB0/sprockets%2F7fe8eb0dc1c379b7c5a2a5c9ca3592e2 +0 -0
  2437. data/test/dummy/tmp/cache/assets/DD0/790/sprockets%2Fadd5869be41bfaf62ef0904173eeae36 +0 -0
  2438. data/test/dummy/tmp/cache/assets/DD0/DB0/sprockets%2Fa560efdeac84f667d861e99f12a1aa1c +0 -0
  2439. data/test/dummy/tmp/cache/assets/DD1/0F0/sprockets%2F2d5d6f23b583efe3a07a5ecd89fb192a +0 -0
  2440. data/test/dummy/tmp/cache/assets/DD1/170/sprockets%2F152cb8bdf7b33b44e8d9aad9e33e7f14 +0 -0
  2441. data/test/dummy/tmp/cache/assets/DD1/430/sprockets%2F6fab6dee09e2a1fa196299e026b61efd +0 -0
  2442. data/test/dummy/tmp/cache/assets/DD1/4D0/sprockets%2Fdce63533526a840e5c29ae9cfdab4ef5 +0 -0
  2443. data/test/dummy/tmp/cache/assets/DD1/5E0/sprockets%2F55e02d2a574d7be1a47dffd6e61cfb85 +0 -0
  2444. data/test/dummy/tmp/cache/assets/DD1/920/sprockets%2F38abeb9c5dcfe1cd075d87e82246b8a0 +0 -0
  2445. data/test/dummy/tmp/cache/assets/DD1/E40/sprockets%2Fd589cebd39090ef2d2c01ce821f6ffb4 +0 -0
  2446. data/test/dummy/tmp/cache/assets/DD1/F00/sprockets%2Fc1fcf69ebbcac068cdde63655c183634 +0 -0
  2447. data/test/dummy/tmp/cache/assets/DD2/0D0/sprockets%2F88ac4db9ccf889dbf2b241ef205b643b +0 -0
  2448. data/test/dummy/tmp/cache/assets/DD2/330/sprockets%2Fd469365fcbc57cbef0adf2a6661190ff +0 -0
  2449. data/test/dummy/tmp/cache/assets/DD2/690/sprockets%2F1af8faaf194cf7b22c403e20d7f98de8 +0 -0
  2450. data/test/dummy/tmp/cache/assets/DD2/720/sprockets%2Fa7e3feaca76d2fd8f11d79a30938b70d +0 -0
  2451. data/test/dummy/tmp/cache/assets/DD2/790/sprockets%2F5a497b1a59b46ddbf649e70e1adf5c0f +0 -0
  2452. data/test/dummy/tmp/cache/assets/DD2/A10/sprockets%2F141ae3d75a58f3f39b0e8fa0fa7ed77c +0 -0
  2453. data/test/dummy/tmp/cache/assets/DD2/D70/sprockets%2F471feef5b3f8b0eabe323a799a257c5d +0 -0
  2454. data/test/dummy/tmp/cache/assets/DD2/E70/sprockets%2Fe730043939f99ffbd01c5ed4cace55ad +0 -0
  2455. data/test/dummy/tmp/cache/assets/DD3/110/sprockets%2F209deabb73d6ffa92664ad4959ebde11 +0 -0
  2456. data/test/dummy/tmp/cache/assets/DD3/150/sprockets%2Fbae8affcbd247de88930e215e7d4d460 +0 -0
  2457. data/test/dummy/tmp/cache/assets/DD3/320/sprockets%2F5bee8af9a92d83b7e208c81bfff60b12 +0 -0
  2458. data/test/dummy/tmp/cache/assets/DD3/3C0/sprockets%2F670f4b0d3e1cd2c7e5edbd9a8b489b46 +0 -0
  2459. data/test/dummy/tmp/cache/assets/DD4/C60/sprockets%2Fa8943e2bebcb9b6e254b3864ec8b3e5c +0 -0
  2460. data/test/dummy/tmp/cache/assets/DD5/0C0/sprockets%2F0e99e7247af82993003fcaeeb5ddc3cd +0 -0
  2461. data/test/dummy/tmp/cache/assets/DD5/340/sprockets%2Fa6ce8c348d5365e9eb5f9eaaa047d71a +0 -0
  2462. data/test/dummy/tmp/cache/assets/DD5/8B0/sprockets%2F91d4cd95cbcbc61b897ca2843a80f6fd +0 -0
  2463. data/test/dummy/tmp/cache/assets/DD5/930/sprockets%2F5d0bf5434925565bcc5ac9ffb49c1ffc +0 -0
  2464. data/test/dummy/tmp/cache/assets/DD6/1E0/sprockets%2Fdd47599b50e574a8ade74c55eca3d0ed +0 -0
  2465. data/test/dummy/tmp/cache/assets/DD6/8F0/sprockets%2Fbe18b83b44e3d85159fbd32deccfc756 +0 -0
  2466. data/test/dummy/tmp/cache/assets/DD6/B10/sprockets%2F1b4327737f681cbdf081ff9bcfe54edb +0 -0
  2467. data/test/dummy/tmp/cache/assets/DD6/B60/sprockets%2F86be7769ab1b85b52fa1c6dedc66db72 +0 -0
  2468. data/test/dummy/tmp/cache/assets/DD7/0E0/sprockets%2F52cf53fdfc217fc4cb025d7877da97cd +0 -0
  2469. data/test/dummy/tmp/cache/assets/DD7/730/sprockets%2F80efa66fc9dc27c8b6384a360b8a7eae +0 -0
  2470. data/test/dummy/tmp/cache/assets/DD7/C10/sprockets%2Fa1637f48f8aece1606cc2729aed6f9cb +0 -0
  2471. data/test/dummy/tmp/cache/assets/DD7/F60/sprockets%2F391f7279bfdbfc62e910e2a1ff75f1fc +0 -0
  2472. data/test/dummy/tmp/cache/assets/DD7/FC0/sprockets%2Fe552dc00585585fbcafc89d98af2b2fa +0 -0
  2473. data/test/dummy/tmp/cache/assets/DD8/980/sprockets%2Feef46de7ca33f529ce7adb095169e3b4 +0 -0
  2474. data/test/dummy/tmp/cache/assets/DD9/000/sprockets%2Ffc576d5de3f0907dad48e0fc5df43a49 +0 -0
  2475. data/test/dummy/tmp/cache/assets/DD9/1A0/sprockets%2F2f65b9e64e6fe4fe309aaeaf5a14c865 +0 -0
  2476. data/test/dummy/tmp/cache/assets/DD9/6F0/sprockets%2Fc265e624ee5dd27cda3868aaa8495fec +0 -0
  2477. data/test/dummy/tmp/cache/assets/DDA/500/sprockets%2F103ae3c64e8c9af97ddfdf278f661b1e +0 -0
  2478. data/test/dummy/tmp/cache/assets/DDB/330/sprockets%2F33596dfd43de9f36bfa8dd47bd408da4 +0 -0
  2479. data/test/dummy/tmp/cache/assets/DDB/E40/sprockets%2Fb413afa11a2c4cbf2ec4a23e45e036db +0 -0
  2480. data/test/dummy/tmp/cache/assets/DDC/C00/sprockets%2F05cf75fea285df8f82c3682eaca89b1e +0 -0
  2481. data/test/dummy/tmp/cache/assets/DDD/370/sprockets%2F016219ffdd478c3c40e6f4efee84da9f +0 -0
  2482. data/test/dummy/tmp/cache/assets/DDD/B00/sprockets%2Fff4d19b3dd289880e7a618fd9aa3cac8 +0 -0
  2483. data/test/dummy/tmp/cache/assets/DDE/860/sprockets%2F8c57c9956b38b6572a9dcd1a6fcbeaf4 +0 -0
  2484. data/test/dummy/tmp/cache/assets/DDE/D00/sprockets%2F74c27cac3ef959ecc8cfd9327b7fa334 +0 -0
  2485. data/test/dummy/tmp/cache/assets/DE0/EA0/sprockets%2Fdbeee979d2b1e6d6b28cde425f84b737 +0 -0
  2486. data/test/dummy/tmp/cache/assets/DE1/390/sprockets%2F1d6b3e8d0c351b537faa02cc1ccc4bd3 +0 -0
  2487. data/test/dummy/tmp/cache/assets/DE1/490/sprockets%2Fced4bd89388e3be73a96b67af27e0cb9 +0 -0
  2488. data/test/dummy/tmp/cache/assets/DE1/DA0/sprockets%2Ffc904392efc8ad2959bb95c14bdaff79 +0 -0
  2489. data/test/dummy/tmp/cache/assets/DE3/310/sprockets%2Fa88eabb20e2ecca3230d5c1a8aa1e485 +0 -0
  2490. data/test/dummy/tmp/cache/assets/DE3/310/sprockets%2Fdd26e8d4e2ba0972c50eba4baa0d134b +0 -0
  2491. data/test/dummy/tmp/cache/assets/DE4/630/sprockets%2F3fbaa3b49828d89831cef787bf9ade6a +0 -0
  2492. data/test/dummy/tmp/cache/assets/DE4/790/sprockets%2Fde774ff5425bb9f0dad9a954ef4ef726 +0 -0
  2493. data/test/dummy/tmp/cache/assets/DE5/610/sprockets%2F9ab8e1cb0f8f692cbb8a387957f3d7fd +0 -0
  2494. data/test/dummy/tmp/cache/assets/DE5/6D0/sprockets%2F6e6fdbc91e3f5879c8c092bab7ff581e +0 -0
  2495. data/test/dummy/tmp/cache/assets/DE5/F60/sprockets%2F20d60b0f1cfaf7c27d5e0ee4c1e21fc0 +0 -0
  2496. data/test/dummy/tmp/cache/assets/DE6/230/sprockets%2Fcfdab95d58360b61999eb6fae7deb649 +0 -0
  2497. data/test/dummy/tmp/cache/assets/DE6/920/sprockets%2Fbf9feba9970af2ae25844f64f6e94f6b +0 -0
  2498. data/test/dummy/tmp/cache/assets/DE6/C60/sprockets%2Faadf89e09dc9d89db8b60fa5d66d6824 +0 -0
  2499. data/test/dummy/tmp/cache/assets/DE6/FF0/sprockets%2F993388d5d17cecccf692ad3e9f8dcc70 +0 -0
  2500. data/test/dummy/tmp/cache/assets/DE7/180/sprockets%2Fa5f5aaa04c00e4fce24c97cbf5411cc4 +0 -0
  2501. data/test/dummy/tmp/cache/assets/DE7/450/sprockets%2F0ff422cad3faf40e061e51edebb321c9 +0 -0
  2502. data/test/dummy/tmp/cache/assets/DE7/750/sprockets%2Fdddda1271b2572dbb85ae180fb21a9bb +0 -0
  2503. data/test/dummy/tmp/cache/assets/DE7/B20/sprockets%2Fa8a0a74dd4ea466074cbdeebf340a1a3 +0 -0
  2504. data/test/dummy/tmp/cache/assets/DE8/A30/sprockets%2F3c1c2c8aab9ef12043bdc6a307bf82eb +0 -0
  2505. data/test/dummy/tmp/cache/assets/DE8/F10/sprockets%2F8beab679ebe7f05e9d4f8b546e0ee279 +0 -0
  2506. data/test/dummy/tmp/cache/assets/DE8/FA0/sprockets%2F93ca8a8d6919cace4cc9d8e69ff82d23 +0 -0
  2507. data/test/dummy/tmp/cache/assets/DE9/340/sprockets%2Fe57938b0cff9802d1e7aebe2cef798e9 +0 -0
  2508. data/test/dummy/tmp/cache/assets/DEA/980/sprockets%2Fc5897a1f996aafff34f555f76a39fbbd +0 -0
  2509. data/test/dummy/tmp/cache/assets/DEA/DF0/sprockets%2Fbda59ab08df48c989fa5ff7de993336b +0 -0
  2510. data/test/dummy/tmp/cache/assets/DEB/340/sprockets%2F0bd787c4c2a1dc1fd7605abf1e53bbb4 +0 -0
  2511. data/test/dummy/tmp/cache/assets/DEB/B70/sprockets%2F03ccc43525fa4dfdd1603a6d4ac8ac6d +0 -0
  2512. data/test/dummy/tmp/cache/assets/DEB/E30/sprockets%2Fcb8889cff8b8fe8b171b93d647deaf07 +0 -0
  2513. data/test/dummy/tmp/cache/assets/DEC/5F0/sprockets%2F410f8c0c1dcf61a1d2dc2a7d3e5bd5e8 +0 -0
  2514. data/test/dummy/tmp/cache/assets/DEE/930/sprockets%2F8e899ec8a7afe2577634ef981ccabcc9 +0 -0
  2515. data/test/dummy/tmp/cache/assets/DEE/C00/sprockets%2Ff040b0f7cea1235fc5f3dc1db8b16e9a +0 -0
  2516. data/test/dummy/tmp/cache/assets/DF0/710/sprockets%2F57eceb7a040cb74c96bde000cc9a8ce0 +0 -0
  2517. data/test/dummy/tmp/cache/assets/DF1/820/sprockets%2F5e1f6fa6109bbba3f92d23bed60d2f1e +0 -0
  2518. data/test/dummy/tmp/cache/assets/DF1/850/sprockets%2Fce67eaf0bbcc74a4d003c2ef0bf54558 +0 -0
  2519. data/test/dummy/tmp/cache/assets/DF2/940/sprockets%2F0ba96f7c7a30ba087e1c1f4c6b4bf2ee +0 -0
  2520. data/test/dummy/tmp/cache/assets/DF2/A10/sprockets%2F081cbd1c386eca6abacfdc8515f34d53 +0 -0
  2521. data/test/dummy/tmp/cache/assets/DF3/7B0/sprockets%2Fbe3e96d12fac88a1e35da10fad9722ca +0 -0
  2522. data/test/dummy/tmp/cache/assets/DF4/0E0/sprockets%2Ffcdd82e15975e6d9ac2bcaa3d0f01a27 +0 -0
  2523. data/test/dummy/tmp/cache/assets/DF4/2C0/sprockets%2F33f40add4c7a49d56dedd7a31dd3bc34 +0 -0
  2524. data/test/dummy/tmp/cache/assets/DF5/1D0/sprockets%2Fa2721b94a4d43f7caab1e8eebe5465ae +0 -0
  2525. data/test/dummy/tmp/cache/assets/DF5/5F0/sprockets%2F21f5be1d0fb58cc648f3f1e106df3fba +0 -0
  2526. data/test/dummy/tmp/cache/assets/DF5/7A0/sprockets%2Fea6fcce2a4274dc6dd8216ebc31c319d +0 -0
  2527. data/test/dummy/tmp/cache/assets/DF5/920/sprockets%2Fa371cd46590babfadb09d81728ea0cff +0 -0
  2528. data/test/dummy/tmp/cache/assets/DF6/880/sprockets%2Fed15aedc9c0ded3a58b4954bcc3222b9 +0 -0
  2529. data/test/dummy/tmp/cache/assets/DF6/CD0/sprockets%2Fd6e3ce6a1e92bef3c6806bb1e24d6d1b +0 -0
  2530. data/test/dummy/tmp/cache/assets/DF8/350/sprockets%2F0e8e61549bcb7ceb12cb02cf7dafc782 +0 -0
  2531. data/test/dummy/tmp/cache/assets/DF8/B00/sprockets%2F3996526da65e50caedbb2d7bc8abe2d1 +0 -0
  2532. data/test/dummy/tmp/cache/assets/DF8/B50/sprockets%2Fcf8e79edfe8092bcd084d3aa2d323ab0 +0 -0
  2533. data/test/dummy/tmp/cache/assets/DF8/CE0/sprockets%2Fb3ab656dfab979e2e7a0082c4a2fe0df +0 -0
  2534. data/test/dummy/tmp/cache/assets/DF8/E50/sprockets%2F13385f98ce306faeb14c3fdd4dbbd3a5 +0 -0
  2535. data/test/dummy/tmp/cache/assets/DF9/120/sprockets%2F27f205fbbf2b0bb9c624d7dc41fec6e7 +0 -0
  2536. data/test/dummy/tmp/cache/assets/DF9/700/sprockets%2Ff30deccfda011d97ad3f63c90d49b5f3 +0 -0
  2537. data/test/dummy/tmp/cache/assets/DF9/7B0/sprockets%2F26fbd83e4add33750acbc4f5ff1b7f51 +0 -0
  2538. data/test/dummy/tmp/cache/assets/DFA/E50/sprockets%2Fc948a8cdd056abf24bcb9351c81fa5fa +0 -0
  2539. data/test/dummy/tmp/cache/assets/DFB/AB0/sprockets%2Ff5d4fbb5ca58aed3c46e1462d3a7bf45 +0 -0
  2540. data/test/dummy/tmp/cache/assets/DFD/910/sprockets%2F6e4aeb3cfdb2adf8086199e003bd4ce8 +0 -0
  2541. data/test/dummy/tmp/cache/assets/DFD/F40/sprockets%2F2c1baed96c603fd0746aed6b9d427cfd +0 -0
  2542. data/test/dummy/tmp/cache/assets/DFE/4F0/sprockets%2F4695a10bc9aa0c898cf21dec63bcc7ff +0 -0
  2543. data/test/dummy/tmp/cache/assets/DFE/6D0/sprockets%2F5ed9adae017357437e0cf4efffb12fb5 +0 -0
  2544. data/test/dummy/tmp/cache/assets/DFF/B90/sprockets%2F9bf7f6a7b2f42f6c25336cffb1c7aa3d +0 -0
  2545. data/test/dummy/tmp/cache/assets/E00/630/sprockets%2Fead43f2cf9d3f3a37a590e212e8fc9ea +0 -0
  2546. data/test/dummy/tmp/cache/assets/E01/250/sprockets%2Fe4282269fdedfc1d2bd08e9d7433ceab +0 -0
  2547. data/test/dummy/tmp/cache/assets/E01/7D0/sprockets%2F771e23888dbed36f017cbb35acdbc8df +0 -0
  2548. data/test/dummy/tmp/cache/assets/E01/E30/sprockets%2Fea636d9c8b493cced44c9eed11d50d1e +0 -0
  2549. data/test/dummy/tmp/cache/assets/E02/270/sprockets%2F5381b3fbea0bdffe7f60e7a68c9d3b44 +0 -0
  2550. data/test/dummy/tmp/cache/assets/E02/2E0/sprockets%2Fb29204c6ef5e6c80fa6a76aec3bf64ef +0 -0
  2551. data/test/dummy/tmp/cache/assets/E02/460/sprockets%2Febdaa5d81edadcf19f17470971a692df +0 -0
  2552. data/test/dummy/tmp/cache/assets/E02/470/sprockets%2F09b78eecc03a56bf09cbe5d73a49a8ce +0 -0
  2553. data/test/dummy/tmp/cache/assets/E02/560/sprockets%2Fc9835ca26fea59cccb5eb03865cbad58 +0 -0
  2554. data/test/dummy/tmp/cache/assets/E02/6B0/sprockets%2Fb0c6cb515e5ef58ec2b8c40f9c75dad7 +0 -0
  2555. data/test/dummy/tmp/cache/assets/E02/9E0/sprockets%2F3be9c22c954bbcea0c7ef648e5d3ff15 +0 -0
  2556. data/test/dummy/tmp/cache/assets/E03/520/sprockets%2Fb0bc6a9ad234b985b729bdecbc93c7d9 +0 -0
  2557. data/test/dummy/tmp/cache/assets/E03/8C0/sprockets%2Fdddca472be9884cdfe6af78222bad074 +0 -0
  2558. data/test/dummy/tmp/cache/assets/E03/E10/sprockets%2Ff973aa441beed766f88d05a5afe3b4ae +0 -0
  2559. data/test/dummy/tmp/cache/assets/E04/2F0/sprockets%2Fa16d6dfb55f306bacadfcc65ba936989 +0 -0
  2560. data/test/dummy/tmp/cache/assets/E04/730/sprockets%2F583c8db59edef3f0c5b7e336e284babb +0 -0
  2561. data/test/dummy/tmp/cache/assets/E04/780/sprockets%2F3cacfdba6603ee6a76d7626e6d9ad53f +0 -0
  2562. data/test/dummy/tmp/cache/assets/E04/B60/sprockets%2F67fde7c8e76f5ea08e905cc2b641caab +0 -0
  2563. data/test/dummy/tmp/cache/assets/E04/BB0/sprockets%2F27aa47e7bad23d38389eae6a436efdfc +0 -0
  2564. data/test/dummy/tmp/cache/assets/E05/2A0/sprockets%2Fde0ab0df6698a6bc364e6c9e847bcc3c +0 -0
  2565. data/test/dummy/tmp/cache/assets/E05/940/sprockets%2Fa7342fe6aaeca22f6f9474c16f77dfcc +0 -0
  2566. data/test/dummy/tmp/cache/assets/E05/9A0/sprockets%2Ffbf122467d4e4b4d1bbc6fdc78a85d8f +0 -0
  2567. data/test/dummy/tmp/cache/assets/E06/710/sprockets%2Fee1f8c455d6c11ac74bf1eef2d3c799d +0 -0
  2568. data/test/dummy/tmp/cache/assets/E06/B20/sprockets%2Fba3bff72fd31e9b292e1626efff5d82d +0 -0
  2569. data/test/dummy/tmp/cache/assets/E06/BC0/sprockets%2F0e410c76d8b9975ac0e8ed9dfbcad4f3 +0 -0
  2570. data/test/dummy/tmp/cache/assets/E06/C00/sprockets%2F454dec05493096cc77cae8bfef7a7cba +0 -0
  2571. data/test/dummy/tmp/cache/assets/E07/F70/sprockets%2F482a5de5a6dadcc2b4d8778a8faf0e86 +0 -0
  2572. data/test/dummy/tmp/cache/assets/E09/210/sprockets%2Fa1e78b1bf197e2c7d2dea09ade69fd68 +0 -0
  2573. data/test/dummy/tmp/cache/assets/E09/290/sprockets%2F1d76236f1ae4e9f939daf9d4fe0b5eab +0 -0
  2574. data/test/dummy/tmp/cache/assets/E09/550/sprockets%2F0bbdef332e5e3c32f4ffd8989c6c7ad4 +0 -0
  2575. data/test/dummy/tmp/cache/assets/E0A/330/sprockets%2Fb889aacf3c5b1287fa490ae24ee9d8df +0 -0
  2576. data/test/dummy/tmp/cache/assets/E0B/200/sprockets%2Ff177bd5ef30963eeefc8d15d0eff354d +0 -0
  2577. data/test/dummy/tmp/cache/assets/E0B/CD0/sprockets%2Feb97c4db2f3b997e9500fbcd840fcee4 +0 -0
  2578. data/test/dummy/tmp/cache/assets/E0D/350/sprockets%2Fc6edebe6ed17558da6ed0ee584914ee3 +0 -0
  2579. data/test/dummy/tmp/cache/assets/E0D/8B0/sprockets%2Ffbca95fe1efe7e13f7970a654886aacc +0 -0
  2580. data/test/dummy/tmp/cache/assets/E0E/850/sprockets%2F9e16585b5e9e67d2ad3bfc79fe3c3cbb +0 -0
  2581. data/test/dummy/tmp/cache/assets/E0F/4F0/sprockets%2Fa3272540abfe5c98fe7e63a98fde7fcc +0 -0
  2582. data/test/dummy/tmp/cache/assets/E0F/5D0/sprockets%2F8f5ef8baff83ddff0818be088bbb1853 +0 -0
  2583. data/test/dummy/tmp/cache/assets/E11/EC0/sprockets%2Fd75c4edbd1e28d4f149e777df905ebdf +0 -0
  2584. data/test/dummy/tmp/cache/assets/E13/A80/sprockets%2Fbac5968b0fd53fd82c909858adfeac9f +0 -0
  2585. data/test/dummy/tmp/cache/assets/E13/DA0/sprockets%2Fc5017eb7eedaca0008cf0fb35ea37b1b +0 -0
  2586. data/test/dummy/tmp/cache/assets/E13/DA0/sprockets%2Febedc0c00a2810be6e2dfaa6b155ca95 +0 -0
  2587. data/test/dummy/tmp/cache/assets/E16/0C0/sprockets%2F2bccb375c7950ce793eebff682d8fe7f +0 -0
  2588. data/test/dummy/tmp/cache/assets/E16/890/sprockets%2F25d48ca77decab21aa4e144a30aed4ed +0 -0
  2589. data/test/dummy/tmp/cache/assets/E16/E40/sprockets%2Fbb69b561797ceeecead7925783b6feaf +0 -0
  2590. data/test/dummy/tmp/cache/assets/E19/800/sprockets%2F3283b2bd65f095fded0b1aaaeda19ea1 +0 -0
  2591. data/test/dummy/tmp/cache/assets/E19/BE0/sprockets%2F4d4cd0209cbbd0a14c6bb7ceeab97b62 +0 -0
  2592. data/test/dummy/tmp/cache/assets/E1A/330/sprockets%2F5d3fee1ad3cab203a53ee8c7aa3428db +0 -0
  2593. data/test/dummy/tmp/cache/assets/E1C/EF0/sprockets%2F6bfdb8efbdf13897c99efc9944a7ad34 +0 -0
  2594. data/test/dummy/tmp/cache/assets/E1C/FC0/sprockets%2F589c8b2bb3d0ef15abcda1e262b07dcd +0 -0
  2595. data/test/dummy/tmp/cache/assets/E1D/8F0/sprockets%2Febcd95ad06f1ab89fe54aa1b0aca1448 +0 -0
  2596. data/test/dummy/tmp/cache/assets/E1F/CA0/sprockets%2Ffb153c81fcdff3d13c8fa84c1f20caa3 +0 -0
  2597. data/test/dummy/tmp/cache/assets/E20/010/sprockets%2F8cb66cce4dde9b6a6e89f19e86fe096d +0 -0
  2598. data/test/dummy/tmp/cache/assets/E20/FA0/sprockets%2Fd6da9bcad0bfd4362f1726adda8b1d62 +0 -0
  2599. data/test/dummy/tmp/cache/assets/E20/FE0/sprockets%2F0fdc8a5cb3bb74767d15fb2b0feaf1d1 +0 -0
  2600. data/test/dummy/tmp/cache/assets/E22/0C0/sprockets%2Fd2cafc37db0bfb5cfd12ed623fb90681 +0 -0
  2601. data/test/dummy/tmp/cache/assets/E22/640/sprockets%2Fa79cffda9ea30a3c7a346db03f6eb30d +0 -0
  2602. data/test/dummy/tmp/cache/assets/E24/0F0/sprockets%2F2fd0d00a336b9aadafdcd036597ff9bc +0 -0
  2603. data/test/dummy/tmp/cache/assets/E24/2B0/sprockets%2Fd48b5664b861eaba2cd9aef35ebab2a4 +0 -0
  2604. data/test/dummy/tmp/cache/assets/E24/BE0/sprockets%2Fa312aeac9f17cbfcfb3ea0c0de779509 +0 -0
  2605. data/test/dummy/tmp/cache/assets/E24/C30/sprockets%2Fab80a42e61baf5bc74ec668ed4d3a6bc +0 -0
  2606. data/test/dummy/tmp/cache/assets/E26/6A0/sprockets%2Fcf2fb4bac4d1e8b2a5b5b9a8f85c361b +0 -0
  2607. data/test/dummy/tmp/cache/assets/E28/120/sprockets%2F1eb7accde46b360442adaf08beaf789d +0 -0
  2608. data/test/dummy/tmp/cache/assets/E28/290/sprockets%2Ffdb3a8a37fb515b9dc90614b4dab7bdf +0 -0
  2609. data/test/dummy/tmp/cache/assets/E28/A80/sprockets%2F34a8d9e9cbd7a2a5178da0afbf4e10fd +0 -0
  2610. data/test/dummy/tmp/cache/assets/E28/D00/sprockets%2Fcb82c1534ddccee2fa79b6a84e1d3ae4 +0 -0
  2611. data/test/dummy/tmp/cache/assets/E29/5D0/sprockets%2F5c50c8b4fb7b4604db1d8f2bc7ddea9b +0 -0
  2612. data/test/dummy/tmp/cache/assets/E29/E20/sprockets%2F1da1cf4f8fb0b07de5540dcf72ebea79 +0 -0
  2613. data/test/dummy/tmp/cache/assets/E29/FA0/sprockets%2Ffabb9a9e2898ac07e5aec5a3dc1173cb +0 -0
  2614. data/test/dummy/tmp/cache/assets/E2A/2F0/sprockets%2Fc19ab67c37ebb29d3155cacee4fa49bc +0 -0
  2615. data/test/dummy/tmp/cache/assets/E2A/570/sprockets%2Fc8c8f0c4ff9cdaa029e206e60bfcc47a +0 -0
  2616. data/test/dummy/tmp/cache/assets/E2A/FC0/sprockets%2Fa90fba67cf290f1ae5d51b9ccd74fbb4 +0 -0
  2617. data/test/dummy/tmp/cache/assets/E2D/020/sprockets%2F57300cdaee8dec0f1aff7408a9f28cfb +0 -0
  2618. data/test/dummy/tmp/cache/assets/E2D/2F0/sprockets%2F6db7e742b38bbafd7e971dbdbab350c9 +0 -0
  2619. data/test/dummy/tmp/cache/assets/E2D/600/sprockets%2F40ae8adc98c5e01ce0cf4b8fc0d967ea +0 -0
  2620. data/test/dummy/tmp/cache/assets/E2E/360/sprockets%2F9a2b86a5c0eae250bcdf72eedf958ac5 +0 -0
  2621. data/test/dummy/tmp/cache/assets/E2E/5A0/sprockets%2F82621e8fafb4f8ffbca15a74b6cc5d1e +0 -0
  2622. data/test/dummy/tmp/cache/assets/E2E/9A0/sprockets%2Ff35bacb57bb882a5f7f8f220eebadd91 +0 -0
  2623. data/test/dummy/tmp/cache/assets/E2E/9F0/sprockets%2Fd0f6b8cb9b7091c6ba6d05fb8adadf66 +0 -0
  2624. data/test/dummy/tmp/cache/assets/E2F/3D0/sprockets%2F3d8aa6ffceaf05eefca73ce469e71222 +0 -0
  2625. data/test/dummy/tmp/cache/assets/E2F/8C0/sprockets%2Fb333cacd9aae969cf4e25ce0dddd4277 +0 -0
  2626. data/test/dummy/tmp/cache/assets/E2F/E50/sprockets%2Fcf2e5ab5e03d797bcfbbb558d38b35af +0 -0
  2627. data/test/dummy/tmp/cache/assets/E30/D40/sprockets%2F18d6abe9e22e7e22ceaf2ee8f108ad5f +0 -0
  2628. data/test/dummy/tmp/cache/assets/E31/6E0/sprockets%2Ff305b61e7fa499ad2504bfebb9e7edea +0 -0
  2629. data/test/dummy/tmp/cache/assets/E32/A20/sprockets%2F9de0fd05844dd0acb4eca4e3ed8ff917 +0 -0
  2630. data/test/dummy/tmp/cache/assets/E35/4C0/sprockets%2Fe7a4909adc7a80fd85ea1eb9b55fdd1e +0 -0
  2631. data/test/dummy/tmp/cache/assets/E36/E00/sprockets%2F56ae6c5d1c3ecc2c9cceb813c8b998eb +0 -0
  2632. data/test/dummy/tmp/cache/assets/E38/1B0/sprockets%2Ffcb2daabef4cb855fef8866c245a637e +0 -0
  2633. data/test/dummy/tmp/cache/assets/E39/760/sprockets%2Feaefb1f9a06b9989f418edb1db2ef7c2 +0 -0
  2634. data/test/dummy/tmp/cache/assets/E3A/7B0/sprockets%2Ff97762db911d9badaeae98af6bf128dc +0 -0
  2635. data/test/dummy/tmp/cache/assets/E3A/C40/sprockets%2Fa4fffedf4d4bf3ec8597f2581c0a87ab +0 -0
  2636. data/test/dummy/tmp/cache/assets/E3B/340/sprockets%2Fdbc7eef48e00def6bd3e64ecd8954c44 +0 -0
  2637. data/test/dummy/tmp/cache/assets/E3E/2D0/sprockets%2F4e7fda6ffbcb5a5f816cf91cd5d723f9 +0 -0
  2638. data/test/dummy/tmp/cache/assets/E3E/7F0/sprockets%2F5eaeea01d1e91c54fcbc0ccbd1004d6b +0 -0
  2639. data/test/dummy/tmp/cache/assets/E3E/AC0/sprockets%2Fa90ce5acf76adb824efaad100a041dba +0 -0
  2640. data/test/dummy/tmp/cache/assets/E43/4F0/sprockets%2Fdcecff17c38b49f56d79da2df807cfa8 +0 -0
  2641. data/test/dummy/tmp/cache/assets/E44/340/sprockets%2F7e85e986e305dedde1f6facedf2c07e9 +0 -0
  2642. data/test/dummy/tmp/cache/assets/E48/A90/sprockets%2Fa3d1dbca7b4efb41f7161b1ccd72cdb6 +0 -0
  2643. data/test/dummy/tmp/cache/assets/E4C/650/sprockets%2Fcb056fbabd058c22885aabfabc5d6d3b +0 -0
  2644. data/test/dummy/tmp/cache/assets/E4D/6F0/sprockets%2F2fff12c7ef5fed2e65ee89ec5395f6ee +0 -0
  2645. data/test/dummy/tmp/cache/assets/E4D/980/sprockets%2Fbbbe61cb3ecb82cb4fbff3a8a0c04684 +0 -0
  2646. data/test/dummy/tmp/cache/assets/E4D/B10/sprockets%2F11a1f50de2df1f43bca44cfdb8cbbe86 +0 -0
  2647. data/test/dummy/tmp/cache/assets/E4E/470/sprockets%2F1d0cddc56a9072ffcd7be4db3a02ca8d +0 -0
  2648. data/test/dummy/tmp/cache/assets/E4F/A80/sprockets%2F811cebd4c603ffcdec7ba7f670db0b3a +0 -0
  2649. data/test/dummy/tmp/cache/assets/E51/3A0/sprockets%2F920a82be7aebe4bdf7bfe13a2e9a0b6b +0 -0
  2650. data/test/dummy/tmp/cache/assets/E51/480/sprockets%2Ffd0d14acc0f5f69ccdc1526ddb8a1da7 +0 -0
  2651. data/test/dummy/tmp/cache/assets/E51/8C0/sprockets%2F21366bb0cb72acda7aebe1feb7f7cd38 +0 -0
  2652. data/test/dummy/tmp/cache/assets/E55/220/sprockets%2Fad2dd26bc3fd1e2bfdb7b8ba8a44854d +0 -0
  2653. data/test/dummy/tmp/cache/assets/E55/520/sprockets%2Febd22b7b53c1fcd59aacc1d4ae3797eb +0 -0
  2654. data/test/dummy/tmp/cache/assets/E5D/240/sprockets%2Ff5afbd4e941cfabbdf5b4803e3ae1e88 +0 -0
  2655. data/test/dummy/tmp/cache/assets/E5D/6B0/sprockets%2Fdef6eaba54c5749f8bb0d9c14be4d3cb +0 -0
  2656. data/test/dummy/tmp/cache/assets/E5E/350/sprockets%2Fd68af9fb3aae95a0a79ca12bd1edd69d +0 -0
  2657. data/test/dummy/tmp/cache/assets/E5E/3A0/sprockets%2Fedf4ef7fdfa720cf0e6ca1e215c4ff91 +0 -0
  2658. data/test/dummy/tmp/cache/assets/E5F/DA0/sprockets%2Ffe0d5fd3b2dccdd3f59710b9dba49b9c +0 -0
  2659. data/test/dummy/tmp/cache/assets/E5F/F90/sprockets%2Fd4c59e3e7d005abceea7f7ec20df5c7e +0 -0
  2660. data/test/dummy/tmp/cache/assets/E62/280/sprockets%2Feac41dd5eb4b65a4d33af7ff7c4d8c9d +0 -0
  2661. data/test/dummy/tmp/cache/assets/E62/400/sprockets%2F64e9bdfb83d53acc66b63ebc88bbd6ba +0 -0
  2662. data/test/dummy/tmp/cache/assets/E62/790/sprockets%2Fcc9cdebfc45e1e9e40f59d45244cabcf +0 -0
  2663. data/test/dummy/tmp/cache/assets/E64/F30/sprockets%2F1de08065449c2cdc6cfcf8dccf47fdcc +0 -0
  2664. data/test/dummy/tmp/cache/assets/E65/BB0/sprockets%2F6d3ef3fcfef1fbf001c9dcce78fd6208 +0 -0
  2665. data/test/dummy/tmp/cache/assets/E67/7C0/sprockets%2F5fdef75e5fc94f4672cbbce2d4bde3a4 +0 -0
  2666. data/test/dummy/tmp/cache/assets/E68/940/sprockets%2Fde64d61ec0d2e5c8fad88fbecfd94a35 +0 -0
  2667. data/test/dummy/tmp/cache/assets/E6A/070/sprockets%2F17edc5ef63f8db0c2d8cf66b57ccea8e +0 -0
  2668. data/test/dummy/tmp/cache/assets/E6D/020/sprockets%2F9ece9c4c2e5b8ec1eececcea9d624198 +0 -0
  2669. data/test/dummy/tmp/cache/assets/E6E/9C0/sprockets%2Ffa55f351fcecf1bc2ba6ba1310cbfaa5 +0 -0
  2670. data/test/dummy/tmp/cache/assets/E6E/D70/sprockets%2Ff854d53e9df9fa1bf725dadd7e0f2cff +0 -0
  2671. data/test/dummy/tmp/cache/assets/E6F/7F0/sprockets%2F7a185c9f3999fec67aeddbfb23dea2de +0 -0
  2672. data/test/dummy/tmp/cache/assets/E79/F50/sprockets%2Ffa2b3f5c123a6ec5bfcdd35db4dd6ba1 +0 -0
  2673. data/test/dummy/tmp/cache/assets/E80/170/sprockets%2Fa0c50f15b9cdb1af4c2dfbcf90fe7ce2 +0 -0
  2674. data/test/dummy/tmp/cache/assets/E82/D10/sprockets%2F06afa77b0aacab9b76cb6e6318decfca +0 -0
  2675. data/test/dummy/tmp/cache/assets/E87/7D0/sprockets%2Ffe93f8ccabbebc20f353f51f5a4fe1cc +0 -0
  2676. data/test/dummy/tmp/cache/assets/E8A/370/sprockets%2Fba6cd8430accc5ffa10ff6eeb7aa939f +0 -0
  2677. data/test/dummy/tmp/cache/assets/E8C/D10/sprockets%2F956badfdacc7f96fb3bbf36dcc0b317c +0 -0
  2678. data/test/dummy/tmp/cache/assets/E91/7C0/sprockets%2Fef3c30e9c07b8affa4e39fceb6cb3e7b +0 -0
  2679. data/test/dummy/tmp/cache/assets/E93/EC0/sprockets%2Fe2f9ce9b0cbf7c9b0935ce1bfafe24ee +0 -0
  2680. data/test/dummy/tmp/cache/assets/E96/510/sprockets%2Ff3dd99b915fbacd1c6e7ebcf916b5abf +0 -0
  2681. data/test/dummy/tmp/cache/assets/E9A/790/sprockets%2Ffece53daabdeb86f6a4996af4dc99d0a +0 -0
  2682. data/test/dummy/tmp/cache/assets/EA6/850/sprockets%2Ff2eaf24266aaa0f2adeb0ffe01e5fdad +0 -0
  2683. data/test/dummy/tmp/cache/assets/EB0/300/sprockets%2Fe4bacccace2941a1a8ddfbdd97b2ad82 +0 -0
  2684. data/test/dummy/tmp/cache/assets/EB6/E70/sprockets%2F76a6b2ceb48abb4ddaca9bef2fce155e +0 -0
  2685. data/test/dummy/tmp/cache/assets/EC3/EF0/sprockets%2Fd4e09aca6af1fb9fbf6f86bbcca4e59c +0 -0
  2686. data/test/dummy/tmp/data/meta_request/055bf7bc695a78c99960938def7e04ed.json +1 -0
  2687. metadata +180 -8
  2688. data/app/assets/javascripts/Cesium/Core/definedNotNull.js +0 -23
  2689. data/app/assets/javascripts/Cesium/Scene/OpenStreetMapImageryProvider.js +0 -415
  2690. data/app/assets/javascripts/Cesium/Scene/TileMapServiceImageryProvider.js +0 -580
  2691. data/app/assets/javascripts/Cesium/ThirdParty/knockout-3.2.0.js +0 -112
  2692. data/test/dummy/tmp/pids/server.pid +0 -1
@@ -20,9 +20,10 @@
20
20
  * Portions licensed separately.
21
21
  * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details.
22
22
  */
23
- (function () {/*global define*/
23
+ (function () {
24
+ /*global define*/
24
25
  define('Core/defined',[],function() {
25
- "use strict";
26
+ 'use strict';
26
27
 
27
28
  /**
28
29
  * @exports defined
@@ -38,7 +39,7 @@ define('Core/defined',[],function() {
38
39
  * }
39
40
  */
40
41
  function defined(value) {
41
- return value !== undefined;
42
+ return value !== undefined && value !== null;
42
43
  }
43
44
 
44
45
  return defined;
@@ -49,7 +50,7 @@ define('Core/freezeObject',[
49
50
  './defined'
50
51
  ], function(
51
52
  defined) {
52
- "use strict";
53
+ 'use strict';
53
54
 
54
55
  /**
55
56
  * Freezes an object, using Object.freeze if available, otherwise returns
@@ -74,7 +75,7 @@ define('Core/defaultValue',[
74
75
  './freezeObject'
75
76
  ], function(
76
77
  freezeObject) {
77
- "use strict";
78
+ 'use strict';
78
79
 
79
80
  /**
80
81
  * Returns the first parameter if not undefined, otherwise the second parameter.
@@ -110,7 +111,7 @@ define('Core/DeveloperError',[
110
111
  './defined'
111
112
  ], function(
112
113
  defined) {
113
- "use strict";
114
+ 'use strict';
114
115
 
115
116
  /**
116
117
  * Constructs an exception object that is thrown due to a developer error, e.g., invalid argument,
@@ -124,6 +125,7 @@ define('Core/DeveloperError',[
124
125
  *
125
126
  * @alias DeveloperError
126
127
  * @constructor
128
+ * @extends Error
127
129
  *
128
130
  * @param {String} [message] The error message for this exception.
129
131
  *
@@ -160,6 +162,11 @@ define('Core/DeveloperError',[
160
162
  this.stack = stack;
161
163
  }
162
164
 
165
+ if (defined(Object.create)) {
166
+ DeveloperError.prototype = Object.create(Error.prototype);
167
+ DeveloperError.prototype.constructor = DeveloperError;
168
+ }
169
+
163
170
  DeveloperError.prototype.toString = function() {
164
171
  var str = this.name + ': ' + this.message;
165
172
 
@@ -394,7 +401,7 @@ define('Core/Math',[
394
401
  defaultValue,
395
402
  defined,
396
403
  DeveloperError) {
397
- "use strict";
404
+ 'use strict';
398
405
 
399
406
  /**
400
407
  * Math functions.
@@ -1174,7 +1181,7 @@ define('Core/Cartesian3',[
1174
1181
  DeveloperError,
1175
1182
  freezeObject,
1176
1183
  CesiumMath) {
1177
- "use strict";
1184
+ 'use strict';
1178
1185
 
1179
1186
  /**
1180
1187
  * A 3D Cartesian point.
@@ -1343,6 +1350,63 @@ define('Core/Cartesian3',[
1343
1350
  return result;
1344
1351
  };
1345
1352
 
1353
+ /**
1354
+ * Flattens an array of Cartesian3s into an array of components.
1355
+ *
1356
+ * @param {Cartesian3[]} array The array of cartesians to pack.
1357
+ * @param {Number[]} result The array onto which to store the result.
1358
+ * @returns {Number[]} The packed array.
1359
+ */
1360
+ Cartesian3.packArray = function(array, result) {
1361
+ if (!defined(array)) {
1362
+ throw new DeveloperError('array is required');
1363
+ }
1364
+
1365
+ var length = array.length;
1366
+ if (!defined(result)) {
1367
+ result = new Array(length * 3);
1368
+ } else {
1369
+ result.length = length * 3;
1370
+ }
1371
+
1372
+ for (var i = 0; i < length; ++i) {
1373
+ Cartesian3.pack(array[i], result, i * 3);
1374
+ }
1375
+ return result;
1376
+ };
1377
+
1378
+ /**
1379
+ * Unpacks an array of cartesian components into an array of Cartesian3s.
1380
+ *
1381
+ * @param {Number[]} array The array of components to unpack.
1382
+ * @param {Cartesian3[]} result The array onto which to store the result.
1383
+ * @returns {Cartesian3[]} The unpacked array.
1384
+ */
1385
+ Cartesian3.unpackArray = function(array, result) {
1386
+ if (!defined(array)) {
1387
+ throw new DeveloperError('array is required');
1388
+ }
1389
+ if (array.length < 3) {
1390
+ throw new DeveloperError('array length cannot be less than 3.');
1391
+ }
1392
+ if (array.length % 3 !== 0) {
1393
+ throw new DeveloperError('array length must be a multiple of 3.');
1394
+ }
1395
+
1396
+ var length = array.length;
1397
+ if (!defined(result)) {
1398
+ result = new Array(length / 3);
1399
+ } else {
1400
+ result.length = length / 3;
1401
+ }
1402
+
1403
+ for (var i = 0; i < length; i += 3) {
1404
+ var index = i / 3;
1405
+ result[index] = Cartesian3.unpack(array, i, result[index]);
1406
+ }
1407
+ return result;
1408
+ };
1409
+
1346
1410
  /**
1347
1411
  * Creates a Cartesian3 from three consecutive elements in an array.
1348
1412
  * @function
@@ -1909,9 +1973,9 @@ define('Core/Cartesian3',[
1909
1973
  throw new DeveloperError('latitude is required');
1910
1974
  }
1911
1975
 
1912
- var lon = CesiumMath.toRadians(longitude);
1913
- var lat = CesiumMath.toRadians(latitude);
1914
- return Cartesian3.fromRadians(lon, lat, height, ellipsoid, result);
1976
+ longitude = CesiumMath.toRadians(longitude);
1977
+ latitude = CesiumMath.toRadians(latitude);
1978
+ return Cartesian3.fromRadians(longitude, latitude, height, ellipsoid, result);
1915
1979
  };
1916
1980
 
1917
1981
  var scratchN = new Cartesian3();
@@ -1972,15 +2036,30 @@ define('Core/Cartesian3',[
1972
2036
  */
1973
2037
  Cartesian3.fromDegreesArray = function(coordinates, ellipsoid, result) {
1974
2038
  if (!defined(coordinates)) {
1975
- throw new DeveloperError('positions is required.');
2039
+ throw new DeveloperError('coordinates is required.');
2040
+ }
2041
+ if (coordinates.length < 2) {
2042
+ throw new DeveloperError('coordinates length cannot be less than 2.');
2043
+ }
2044
+ if (coordinates.length % 2 !== 0) {
2045
+ throw new DeveloperError('coordinates length must be a multiple of 2.');
1976
2046
  }
1977
2047
 
1978
- var pos = new Array(coordinates.length);
1979
- for (var i = 0; i < coordinates.length; i++) {
1980
- pos[i] = CesiumMath.toRadians(coordinates[i]);
2048
+ var length = coordinates.length;
2049
+ if (!defined(result)) {
2050
+ result = new Array(length / 2);
2051
+ } else {
2052
+ result.length = length / 2;
2053
+ }
2054
+
2055
+ for (var i = 0; i < length; i += 2) {
2056
+ var longitude = coordinates[i];
2057
+ var latitude = coordinates[i + 1];
2058
+ var index = i / 2;
2059
+ result[index] = Cartesian3.fromDegrees(longitude, latitude, 0, ellipsoid, result[index]);
1981
2060
  }
1982
2061
 
1983
- return Cartesian3.fromRadiansArray(pos, ellipsoid, result);
2062
+ return result;
1984
2063
  };
1985
2064
 
1986
2065
  /**
@@ -1996,26 +2075,27 @@ define('Core/Cartesian3',[
1996
2075
  */
1997
2076
  Cartesian3.fromRadiansArray = function(coordinates, ellipsoid, result) {
1998
2077
  if (!defined(coordinates)) {
1999
- throw new DeveloperError('positions is required.');
2078
+ throw new DeveloperError('coordinates is required.');
2000
2079
  }
2001
2080
  if (coordinates.length < 2) {
2002
- throw new DeveloperError('positions length cannot be less than 2.');
2081
+ throw new DeveloperError('coordinates length cannot be less than 2.');
2003
2082
  }
2004
2083
  if (coordinates.length % 2 !== 0) {
2005
- throw new DeveloperError('positions length must be a multiple of 2.');
2084
+ throw new DeveloperError('coordinates length must be a multiple of 2.');
2006
2085
  }
2007
2086
 
2008
2087
  var length = coordinates.length;
2009
2088
  if (!defined(result)) {
2010
- result = new Array(length/2);
2089
+ result = new Array(length / 2);
2011
2090
  } else {
2012
- result.length = length/2;
2091
+ result.length = length / 2;
2013
2092
  }
2014
2093
 
2015
- for ( var i = 0; i < length; i+=2) {
2016
- var lon = coordinates[i];
2017
- var lat = coordinates[i+1];
2018
- result[i/2] = Cartesian3.fromRadians(lon, lat, 0, ellipsoid, result[i/2]);
2094
+ for (var i = 0; i < length; i += 2) {
2095
+ var longitude = coordinates[i];
2096
+ var latitude = coordinates[i + 1];
2097
+ var index = i / 2;
2098
+ result[index] = Cartesian3.fromRadians(longitude, latitude, 0, ellipsoid, result[index]);
2019
2099
  }
2020
2100
 
2021
2101
  return result;
@@ -2024,7 +2104,7 @@ define('Core/Cartesian3',[
2024
2104
  /**
2025
2105
  * Returns an array of Cartesian3 positions given an array of longitude, latitude and height values where longitude and latitude are given in degrees.
2026
2106
  *
2027
- * @param {Number[]} coordinates A list of longitude, latitude and height values. Values alternate [longitude, latitude, height,, longitude, latitude, height...].
2107
+ * @param {Number[]} coordinates A list of longitude, latitude and height values. Values alternate [longitude, latitude, height, longitude, latitude, height...].
2028
2108
  * @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid on which the position lies.
2029
2109
  * @param {Cartesian3[]} [result] An array of Cartesian3 objects to store the result.
2030
2110
  * @returns {Cartesian3[]} The array of positions.
@@ -2034,29 +2114,37 @@ define('Core/Cartesian3',[
2034
2114
  */
2035
2115
  Cartesian3.fromDegreesArrayHeights = function(coordinates, ellipsoid, result) {
2036
2116
  if (!defined(coordinates)) {
2037
- throw new DeveloperError('positions is required.');
2117
+ throw new DeveloperError('coordinates is required.');
2038
2118
  }
2039
2119
  if (coordinates.length < 3) {
2040
- throw new DeveloperError('positions length cannot be less than 3.');
2120
+ throw new DeveloperError('coordinates length cannot be less than 3.');
2041
2121
  }
2042
2122
  if (coordinates.length % 3 !== 0) {
2043
- throw new DeveloperError('positions length must be a multiple of 3.');
2123
+ throw new DeveloperError('coordinates length must be a multiple of 3.');
2044
2124
  }
2045
2125
 
2046
- var pos = new Array(coordinates.length);
2047
- for (var i = 0; i < coordinates.length; i+=3) {
2048
- pos[i] = CesiumMath.toRadians(coordinates[i]);
2049
- pos[i+1] = CesiumMath.toRadians(coordinates[i+1]);
2050
- pos[i+2] = coordinates[i+2];
2126
+ var length = coordinates.length;
2127
+ if (!defined(result)) {
2128
+ result = new Array(length / 3);
2129
+ } else {
2130
+ result.length = length / 3;
2131
+ }
2132
+
2133
+ for (var i = 0; i < length; i += 3) {
2134
+ var longitude = coordinates[i];
2135
+ var latitude = coordinates[i + 1];
2136
+ var height = coordinates[i + 2];
2137
+ var index = i / 3;
2138
+ result[index] = Cartesian3.fromDegrees(longitude, latitude, height, ellipsoid, result[index]);
2051
2139
  }
2052
2140
 
2053
- return Cartesian3.fromRadiansArrayHeights(pos, ellipsoid, result);
2141
+ return result;
2054
2142
  };
2055
2143
 
2056
2144
  /**
2057
2145
  * Returns an array of Cartesian3 positions given an array of longitude, latitude and height values where longitude and latitude are given in radians.
2058
2146
  *
2059
- * @param {Number[]} coordinates A list of longitude, latitude and height values. Values alternate [longitude, latitude, height,, longitude, latitude, height...].
2147
+ * @param {Number[]} coordinates A list of longitude, latitude and height values. Values alternate [longitude, latitude, height, longitude, latitude, height...].
2060
2148
  * @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid on which the position lies.
2061
2149
  * @param {Cartesian3[]} [result] An array of Cartesian3 objects to store the result.
2062
2150
  * @returns {Cartesian3[]} The array of positions.
@@ -2066,27 +2154,28 @@ define('Core/Cartesian3',[
2066
2154
  */
2067
2155
  Cartesian3.fromRadiansArrayHeights = function(coordinates, ellipsoid, result) {
2068
2156
  if (!defined(coordinates)) {
2069
- throw new DeveloperError('positions is required.');
2157
+ throw new DeveloperError('coordinates is required.');
2070
2158
  }
2071
2159
  if (coordinates.length < 3) {
2072
- throw new DeveloperError('positions length cannot be less than 3.');
2160
+ throw new DeveloperError('coordinates length cannot be less than 3.');
2073
2161
  }
2074
2162
  if (coordinates.length % 3 !== 0) {
2075
- throw new DeveloperError('positions length must be a multiple of 3.');
2163
+ throw new DeveloperError('coordinates length must be a multiple of 3.');
2076
2164
  }
2077
2165
 
2078
2166
  var length = coordinates.length;
2079
2167
  if (!defined(result)) {
2080
- result = new Array(length/3);
2168
+ result = new Array(length / 3);
2081
2169
  } else {
2082
- result.length = length/3;
2170
+ result.length = length / 3;
2083
2171
  }
2084
2172
 
2085
- for ( var i = 0; i < length; i+=3) {
2086
- var lon = coordinates[i];
2087
- var lat = coordinates[i+1];
2088
- var alt = coordinates[i+2];
2089
- result[i/3] = Cartesian3.fromRadians(lon, lat, alt, ellipsoid, result[i/3]);
2173
+ for (var i = 0; i < length; i += 3) {
2174
+ var longitude = coordinates[i];
2175
+ var latitude = coordinates[i + 1];
2176
+ var height = coordinates[i + 2];
2177
+ var index = i / 3;
2178
+ result[index] = Cartesian3.fromRadians(longitude, latitude, height, ellipsoid, result[index]);
2090
2179
  }
2091
2180
 
2092
2181
  return result;
@@ -2182,7 +2271,7 @@ define('Core/scaleToGeodeticSurface',[
2182
2271
  defined,
2183
2272
  DeveloperError,
2184
2273
  CesiumMath) {
2185
- "use strict";
2274
+ 'use strict';
2186
2275
 
2187
2276
  var scaleToGeodeticSurfaceIntersection = new Cartesian3();
2188
2277
  var scaleToGeodeticSurfaceGradient = new Cartesian3();
@@ -2323,7 +2412,7 @@ define('Core/Cartographic',[
2323
2412
  freezeObject,
2324
2413
  CesiumMath,
2325
2414
  scaleToGeodeticSurface) {
2326
- "use strict";
2415
+ 'use strict';
2327
2416
 
2328
2417
  /**
2329
2418
  * A position defined by longitude, latitude, and height.
@@ -2578,7 +2667,7 @@ define('Core/defineProperties',[
2578
2667
  './defined'
2579
2668
  ], function(
2580
2669
  defined) {
2581
- "use strict";
2670
+ 'use strict';
2582
2671
 
2583
2672
  var definePropertyWorks = (function() {
2584
2673
  try {
@@ -2628,7 +2717,7 @@ define('Core/Ellipsoid',[
2628
2717
  freezeObject,
2629
2718
  CesiumMath,
2630
2719
  scaleToGeodeticSurface) {
2631
- "use strict";
2720
+ 'use strict';
2632
2721
 
2633
2722
  function initialize(ellipsoid, x, y, z) {
2634
2723
  x = defaultValue(x, 0.0);
@@ -3221,7 +3310,7 @@ define('Core/Rectangle',[
3221
3310
  Ellipsoid,
3222
3311
  freezeObject,
3223
3312
  CesiumMath) {
3224
- "use strict";
3313
+ 'use strict';
3225
3314
 
3226
3315
  /**
3227
3316
  * A two dimensional region specified as longitude and latitude coordinates.
@@ -3464,6 +3553,61 @@ define('Core/Rectangle',[
3464
3553
  return result;
3465
3554
  };
3466
3555
 
3556
+ /**
3557
+ * Creates the smallest possible Rectangle that encloses all positions in the provided array.
3558
+ *
3559
+ * @param {Cartesian[]} cartesians The list of Cartesian instances.
3560
+ * @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid the cartesians are on.
3561
+ * @param {Rectangle} [result] The object onto which to store the result, or undefined if a new instance should be created.
3562
+ * @returns {Rectangle} The modified result parameter or a new Rectangle instance if none was provided.
3563
+ */
3564
+ Rectangle.fromCartesianArray = function(cartesians, ellipsoid, result) {
3565
+ if (!defined(cartesians)) {
3566
+ throw new DeveloperError('cartesians is required.');
3567
+ }
3568
+
3569
+ var west = Number.MAX_VALUE;
3570
+ var east = -Number.MAX_VALUE;
3571
+ var westOverIDL = Number.MAX_VALUE;
3572
+ var eastOverIDL = -Number.MAX_VALUE;
3573
+ var south = Number.MAX_VALUE;
3574
+ var north = -Number.MAX_VALUE;
3575
+
3576
+ for ( var i = 0, len = cartesians.length; i < len; i++) {
3577
+ var position = ellipsoid.cartesianToCartographic(cartesians[i]);
3578
+ west = Math.min(west, position.longitude);
3579
+ east = Math.max(east, position.longitude);
3580
+ south = Math.min(south, position.latitude);
3581
+ north = Math.max(north, position.latitude);
3582
+
3583
+ var lonAdjusted = position.longitude >= 0 ? position.longitude : position.longitude + CesiumMath.TWO_PI;
3584
+ westOverIDL = Math.min(westOverIDL, lonAdjusted);
3585
+ eastOverIDL = Math.max(eastOverIDL, lonAdjusted);
3586
+ }
3587
+
3588
+ if(east - west > eastOverIDL - westOverIDL) {
3589
+ west = westOverIDL;
3590
+ east = eastOverIDL;
3591
+
3592
+ if (east > CesiumMath.PI) {
3593
+ east = east - CesiumMath.TWO_PI;
3594
+ }
3595
+ if (west > CesiumMath.PI) {
3596
+ west = west - CesiumMath.TWO_PI;
3597
+ }
3598
+ }
3599
+
3600
+ if (!defined(result)) {
3601
+ return new Rectangle(west, south, east, north);
3602
+ }
3603
+
3604
+ result.west = west;
3605
+ result.south = south;
3606
+ result.east = east;
3607
+ result.north = north;
3608
+ return result;
3609
+ };
3610
+
3467
3611
  /**
3468
3612
  * Duplicates an Rectangle.
3469
3613
  *
@@ -3968,7 +4112,7 @@ define('Core/GeographicProjection',[
3968
4112
  defineProperties,
3969
4113
  DeveloperError,
3970
4114
  Ellipsoid) {
3971
- "use strict";
4115
+ 'use strict';
3972
4116
 
3973
4117
  /**
3974
4118
  * A simple map projection where longitude and latitude are linearly mapped to X and Y by multiplying
@@ -4074,7 +4218,7 @@ define('Core/Intersect',[
4074
4218
  './freezeObject'
4075
4219
  ], function(
4076
4220
  freezeObject) {
4077
- "use strict";
4221
+ 'use strict';
4078
4222
 
4079
4223
  /**
4080
4224
  * This enumerated type is used in determining where, relative to the frustum, an
@@ -4117,7 +4261,7 @@ define('Core/Interval',[
4117
4261
  './defaultValue'
4118
4262
  ], function(
4119
4263
  defaultValue) {
4120
- "use strict";
4264
+ 'use strict';
4121
4265
 
4122
4266
  /**
4123
4267
  * Represents the closed interval [start, stop].
@@ -4150,6 +4294,7 @@ define('Core/Matrix3',[
4150
4294
  './Cartesian3',
4151
4295
  './defaultValue',
4152
4296
  './defined',
4297
+ './defineProperties',
4153
4298
  './DeveloperError',
4154
4299
  './freezeObject',
4155
4300
  './Math'
@@ -4157,10 +4302,11 @@ define('Core/Matrix3',[
4157
4302
  Cartesian3,
4158
4303
  defaultValue,
4159
4304
  defined,
4305
+ defineProperties,
4160
4306
  DeveloperError,
4161
4307
  freezeObject,
4162
4308
  CesiumMath) {
4163
- "use strict";
4309
+ 'use strict';
4164
4310
 
4165
4311
  /**
4166
4312
  * A 3x3 matrix, indexable as a column-major order array.
@@ -5562,6 +5708,20 @@ define('Core/Matrix3',[
5562
5708
  */
5563
5709
  Matrix3.COLUMN2ROW2 = 8;
5564
5710
 
5711
+ defineProperties(Matrix3.prototype, {
5712
+ /**
5713
+ * Gets the number of items in the collection.
5714
+ * @memberof Matrix3.prototype
5715
+ *
5716
+ * @type {Number}
5717
+ */
5718
+ length : {
5719
+ get : function() {
5720
+ return Matrix3.packedLength;
5721
+ }
5722
+ }
5723
+ });
5724
+
5565
5725
  /**
5566
5726
  * Duplicates the provided Matrix3 instance.
5567
5727
  *
@@ -5639,7 +5799,7 @@ define('Core/Cartesian4',[
5639
5799
  DeveloperError,
5640
5800
  freezeObject,
5641
5801
  CesiumMath) {
5642
- "use strict";
5802
+ 'use strict';
5643
5803
 
5644
5804
  /**
5645
5805
  * A 4D Cartesian point.
@@ -5808,6 +5968,57 @@ define('Core/Cartesian4',[
5808
5968
  return result;
5809
5969
  };
5810
5970
 
5971
+ /**
5972
+ * Flattens an array of Cartesian4s into and array of components.
5973
+ *
5974
+ * @param {Cartesian4[]} array The array of cartesians to pack.
5975
+ * @param {Number[]} result The array onto which to store the result.
5976
+ * @returns {Number[]} The packed array.
5977
+ */
5978
+ Cartesian4.packArray = function(array, result) {
5979
+ if (!defined(array)) {
5980
+ throw new DeveloperError('array is required');
5981
+ }
5982
+
5983
+ var length = array.length;
5984
+ if (!defined(result)) {
5985
+ result = new Array(length * 4);
5986
+ } else {
5987
+ result.length = length * 4;
5988
+ }
5989
+
5990
+ for (var i = 0; i < length; ++i) {
5991
+ Cartesian4.pack(array[i], result, i * 4);
5992
+ }
5993
+ return result;
5994
+ };
5995
+
5996
+ /**
5997
+ * Unpacks an array of cartesian components into and array of Cartesian4s.
5998
+ *
5999
+ * @param {Number[]} array The array of components to unpack.
6000
+ * @param {Cartesian4[]} result The array onto which to store the result.
6001
+ * @returns {Cartesian4[]} The unpacked array.
6002
+ */
6003
+ Cartesian4.unpackArray = function(array, result) {
6004
+ if (!defined(array)) {
6005
+ throw new DeveloperError('array is required');
6006
+ }
6007
+
6008
+ var length = array.length;
6009
+ if (!defined(result)) {
6010
+ result = new Array(length / 4);
6011
+ } else {
6012
+ result.length = length / 4;
6013
+ }
6014
+
6015
+ for (var i = 0; i < length; i += 4) {
6016
+ var index = i / 4;
6017
+ result[index] = Cartesian4.unpack(array, i, result[index]);
6018
+ }
6019
+ return result;
6020
+ };
6021
+
5811
6022
  /**
5812
6023
  * Creates a Cartesian4 from four consecutive elements in an array.
5813
6024
  * @function
@@ -6413,7 +6624,7 @@ define('Core/RuntimeError',[
6413
6624
  './defined'
6414
6625
  ], function(
6415
6626
  defined) {
6416
- "use strict";
6627
+ 'use strict';
6417
6628
 
6418
6629
  /**
6419
6630
  * Constructs an exception object that is thrown due to an error that can occur at runtime, e.g.,
@@ -6426,6 +6637,7 @@ define('Core/RuntimeError',[
6426
6637
  *
6427
6638
  * @alias RuntimeError
6428
6639
  * @constructor
6640
+ * @extends Error
6429
6641
  *
6430
6642
  * @param {String} [message] The error message for this exception.
6431
6643
  *
@@ -6461,6 +6673,12 @@ define('Core/RuntimeError',[
6461
6673
  */
6462
6674
  this.stack = stack;
6463
6675
  }
6676
+
6677
+ if (defined(Object.create)) {
6678
+ RuntimeError.prototype = Object.create(Error.prototype);
6679
+ RuntimeError.prototype.constructor = RuntimeError;
6680
+ }
6681
+
6464
6682
  RuntimeError.prototype.toString = function() {
6465
6683
  var str = this.name + ': ' + this.message;
6466
6684
 
@@ -6480,6 +6698,7 @@ define('Core/Matrix4',[
6480
6698
  './Cartesian4',
6481
6699
  './defaultValue',
6482
6700
  './defined',
6701
+ './defineProperties',
6483
6702
  './DeveloperError',
6484
6703
  './freezeObject',
6485
6704
  './Math',
@@ -6490,12 +6709,13 @@ define('Core/Matrix4',[
6490
6709
  Cartesian4,
6491
6710
  defaultValue,
6492
6711
  defined,
6712
+ defineProperties,
6493
6713
  DeveloperError,
6494
6714
  freezeObject,
6495
6715
  CesiumMath,
6496
6716
  Matrix3,
6497
6717
  RuntimeError) {
6498
- "use strict";
6718
+ 'use strict';
6499
6719
 
6500
6720
  /**
6501
6721
  * A 4x4 matrix, indexable as a column-major order array.
@@ -6534,6 +6754,7 @@ define('Core/Matrix4',[
6534
6754
  * @see Matrix4.computePerspectiveOffCenter
6535
6755
  * @see Matrix4.computeInfinitePerspectiveOffCenter
6536
6756
  * @see Matrix4.computeViewportTransformation
6757
+ * @see Matrix4.computeView
6537
6758
  * @see Matrix2
6538
6759
  * @see Matrix3
6539
6760
  * @see Packable
@@ -7001,7 +7222,7 @@ define('Core/Matrix4',[
7001
7222
  };
7002
7223
 
7003
7224
  var fromCameraF = new Cartesian3();
7004
- var fromCameraS = new Cartesian3();
7225
+ var fromCameraR = new Cartesian3();
7005
7226
  var fromCameraU = new Cartesian3();
7006
7227
 
7007
7228
  /**
@@ -7016,55 +7237,55 @@ define('Core/Matrix4',[
7016
7237
  throw new DeveloperError('camera is required.');
7017
7238
  }
7018
7239
 
7019
- var eye = camera.eye;
7020
- var target = camera.target;
7240
+ var position = camera.position;
7241
+ var direction = camera.direction;
7021
7242
  var up = camera.up;
7022
7243
 
7023
- if (!defined(eye)) {
7024
- throw new DeveloperError('camera.eye is required.');
7244
+ if (!defined(position)) {
7245
+ throw new DeveloperError('camera.position is required.');
7025
7246
  }
7026
- if (!defined(target)) {
7027
- throw new DeveloperError('camera.target is required.');
7247
+ if (!defined(direction)) {
7248
+ throw new DeveloperError('camera.direction is required.');
7028
7249
  }
7029
7250
  if (!defined(up)) {
7030
7251
  throw new DeveloperError('camera.up is required.');
7031
7252
  }
7032
7253
 
7033
- Cartesian3.normalize(Cartesian3.subtract(target, eye, fromCameraF), fromCameraF);
7034
- Cartesian3.normalize(Cartesian3.cross(fromCameraF, up, fromCameraS), fromCameraS);
7035
- Cartesian3.normalize(Cartesian3.cross(fromCameraS, fromCameraF, fromCameraU), fromCameraU);
7254
+ Cartesian3.normalize(direction, fromCameraF);
7255
+ Cartesian3.normalize(Cartesian3.cross(fromCameraF, up, fromCameraR), fromCameraR);
7256
+ Cartesian3.normalize(Cartesian3.cross(fromCameraR, fromCameraF, fromCameraU), fromCameraU);
7036
7257
 
7037
- var sX = fromCameraS.x;
7038
- var sY = fromCameraS.y;
7039
- var sZ = fromCameraS.z;
7258
+ var sX = fromCameraR.x;
7259
+ var sY = fromCameraR.y;
7260
+ var sZ = fromCameraR.z;
7040
7261
  var fX = fromCameraF.x;
7041
7262
  var fY = fromCameraF.y;
7042
7263
  var fZ = fromCameraF.z;
7043
7264
  var uX = fromCameraU.x;
7044
7265
  var uY = fromCameraU.y;
7045
7266
  var uZ = fromCameraU.z;
7046
- var eyeX = eye.x;
7047
- var eyeY = eye.y;
7048
- var eyeZ = eye.z;
7049
- var t0 = sX * -eyeX + sY * -eyeY+ sZ * -eyeZ;
7050
- var t1 = uX * -eyeX + uY * -eyeY+ uZ * -eyeZ;
7051
- var t2 = fX * eyeX + fY * eyeY + fZ * eyeZ;
7052
-
7053
- //The code below this comment is an optimized
7054
- //version of the commented lines.
7055
- //Rather that create two matrices and then multiply,
7056
- //we just bake in the multiplcation as part of creation.
7057
- //var rotation = new Matrix4(
7058
- // sX, sY, sZ, 0.0,
7059
- // uX, uY, uZ, 0.0,
7060
- // -fX, -fY, -fZ, 0.0,
7061
- // 0.0, 0.0, 0.0, 1.0);
7062
- //var translation = new Matrix4(
7063
- // 1.0, 0.0, 0.0, -eye.x,
7064
- // 0.0, 1.0, 0.0, -eye.y,
7065
- // 0.0, 0.0, 1.0, -eye.z,
7066
- // 0.0, 0.0, 0.0, 1.0);
7067
- //return rotation.multiply(translation);
7267
+ var positionX = position.x;
7268
+ var positionY = position.y;
7269
+ var positionZ = position.z;
7270
+ var t0 = sX * -positionX + sY * -positionY+ sZ * -positionZ;
7271
+ var t1 = uX * -positionX + uY * -positionY+ uZ * -positionZ;
7272
+ var t2 = fX * positionX + fY * positionY + fZ * positionZ;
7273
+
7274
+ // The code below this comment is an optimized
7275
+ // version of the commented lines.
7276
+ // Rather that create two matrices and then multiply,
7277
+ // we just bake in the multiplcation as part of creation.
7278
+ // var rotation = new Matrix4(
7279
+ // sX, sY, sZ, 0.0,
7280
+ // uX, uY, uZ, 0.0,
7281
+ // -fX, -fY, -fZ, 0.0,
7282
+ // 0.0, 0.0, 0.0, 1.0);
7283
+ // var translation = new Matrix4(
7284
+ // 1.0, 0.0, 0.0, -position.x,
7285
+ // 0.0, 1.0, 0.0, -position.y,
7286
+ // 0.0, 0.0, 1.0, -position.z,
7287
+ // 0.0, 0.0, 0.0, 1.0);
7288
+ // return rotation.multiply(translation);
7068
7289
  if (!defined(result)) {
7069
7290
  return new Matrix4(
7070
7291
  sX, sY, sZ, t0,
@@ -7089,7 +7310,6 @@ define('Core/Matrix4',[
7089
7310
  result[14] = t2;
7090
7311
  result[15] = 1.0;
7091
7312
  return result;
7092
-
7093
7313
  };
7094
7314
 
7095
7315
  /**
@@ -7102,14 +7322,14 @@ define('Core/Matrix4',[
7102
7322
  * @param {Matrix4} result The object in which the result will be stored.
7103
7323
  * @returns {Matrix4} The modified result parameter.
7104
7324
  *
7105
- * @exception {DeveloperError} fovY must be in [0, PI).
7325
+ * @exception {DeveloperError} fovY must be in (0, PI].
7106
7326
  * @exception {DeveloperError} aspectRatio must be greater than zero.
7107
7327
  * @exception {DeveloperError} near must be greater than zero.
7108
7328
  * @exception {DeveloperError} far must be greater than zero.
7109
7329
  */
7110
7330
  Matrix4.computePerspectiveFieldOfView = function(fovY, aspectRatio, near, far, result) {
7111
7331
  if (fovY <= 0.0 || fovY > Math.PI) {
7112
- throw new DeveloperError('fovY must be in [0, PI).');
7332
+ throw new DeveloperError('fovY must be in (0, PI].');
7113
7333
  }
7114
7334
  if (aspectRatio <= 0.0) {
7115
7335
  throw new DeveloperError('aspectRatio must be greater than zero.');
@@ -7285,7 +7505,6 @@ define('Core/Matrix4',[
7285
7505
  * @param {Number} bottom The number of meters below of the camera that will be in view.
7286
7506
  * @param {Number} top The number of meters above of the camera that will be in view.
7287
7507
  * @param {Number} near The distance to the near plane in meters.
7288
- * @param {Number} far The distance to the far plane in meters.
7289
7508
  * @param {Matrix4} result The object in which the result will be stored.
7290
7509
  * @returns {Matrix4} The modified result parameter.
7291
7510
  */
@@ -7398,6 +7617,52 @@ define('Core/Matrix4',[
7398
7617
  return result;
7399
7618
  };
7400
7619
 
7620
+ /**
7621
+ * Computes a Matrix4 instance that transforms from world space to view space.
7622
+ *
7623
+ * @param {Cartesian3} position The position of the camera.
7624
+ * @param {Cartesian3} direction The forward direction.
7625
+ * @param {Cartesian3} up The up direction.
7626
+ * @param {Cartesian3} right The right direction.
7627
+ * @param {Matrix4} result The object in which the result will be stored.
7628
+ * @returns {Matrix4} The modified result parameter.
7629
+ */
7630
+ Matrix4.computeView = function(position, direction, up, right, result) {
7631
+ if (!defined(position)) {
7632
+ throw new DeveloperError('position is required');
7633
+ }
7634
+ if (!defined(direction)) {
7635
+ throw new DeveloperError('direction is required');
7636
+ }
7637
+ if (!defined(up)) {
7638
+ throw new DeveloperError('up is required');
7639
+ }
7640
+ if (!defined(right)) {
7641
+ throw new DeveloperError('right is required');
7642
+ }
7643
+ if (!defined(result)) {
7644
+ throw new DeveloperError('result is required');
7645
+ }
7646
+
7647
+ result[0] = right.x;
7648
+ result[1] = up.x;
7649
+ result[2] = -direction.x;
7650
+ result[3] = 0.0;
7651
+ result[4] = right.y;
7652
+ result[5] = up.y;
7653
+ result[6] = -direction.y;
7654
+ result[7] = 0.0;
7655
+ result[8] = right.z;
7656
+ result[9] = up.z;
7657
+ result[10] = -direction.z;
7658
+ result[11] = 0.0;
7659
+ result[12] = -Cartesian3.dot(right, position);
7660
+ result[13] = -Cartesian3.dot(up, position);
7661
+ result[14] = Cartesian3.dot(direction, position);
7662
+ result[15] = 1.0;
7663
+ return result;
7664
+ };
7665
+
7401
7666
  /**
7402
7667
  * Computes an Array from the provided Matrix4 instance.
7403
7668
  * The array will be in column-major order.
@@ -9090,6 +9355,20 @@ define('Core/Matrix4',[
9090
9355
  */
9091
9356
  Matrix4.COLUMN3ROW3 = 15;
9092
9357
 
9358
+ defineProperties(Matrix4.prototype, {
9359
+ /**
9360
+ * Gets the number of items in the collection.
9361
+ * @memberof Matrix4.prototype
9362
+ *
9363
+ * @type {Number}
9364
+ */
9365
+ length : {
9366
+ get : function() {
9367
+ return Matrix4.packedLength;
9368
+ }
9369
+ }
9370
+ });
9371
+
9093
9372
  /**
9094
9373
  * Duplicates the provided Matrix4 instance.
9095
9374
  *
@@ -9173,7 +9452,7 @@ define('Core/Plane',[
9173
9452
  defined,
9174
9453
  DeveloperError,
9175
9454
  freezeObject) {
9176
- "use strict";
9455
+ 'use strict';
9177
9456
 
9178
9457
  /**
9179
9458
  * A plane in Hessian Normal Form defined by
@@ -9360,7 +9639,7 @@ define('Core/BoundingSphere',[
9360
9639
  Matrix4,
9361
9640
  Plane,
9362
9641
  Rectangle) {
9363
- "use strict";
9642
+ 'use strict';
9364
9643
 
9365
9644
  /**
9366
9645
  * A bounding sphere with a center and a radius.
@@ -10656,7 +10935,7 @@ define('Renderer/WebGLConstants',[
10656
10935
  '../Core/freezeObject'
10657
10936
  ], function(
10658
10937
  freezeObject) {
10659
- "use strict";
10938
+ 'use strict';
10660
10939
 
10661
10940
  /**
10662
10941
  * WebGL constants.
@@ -11252,7 +11531,7 @@ define('Core/Fullscreen',[
11252
11531
  ], function(
11253
11532
  defined,
11254
11533
  defineProperties) {
11255
- "use strict";
11534
+ 'use strict';
11256
11535
 
11257
11536
  var _supportsFullscreen;
11258
11537
  var _names = {
@@ -11420,22 +11699,22 @@ define('Core/Fullscreen',[
11420
11699
 
11421
11700
  // casing of Fullscreen differs across browsers
11422
11701
  name = prefix + 'FullscreenEnabled';
11423
- if (defined(document[name])) {
11702
+ if (document[name] !== undefined) {
11424
11703
  _names.fullscreenEnabled = name;
11425
11704
  } else {
11426
11705
  name = prefix + 'FullScreenEnabled';
11427
- if (defined(document[name])) {
11706
+ if (document[name] !== undefined) {
11428
11707
  _names.fullscreenEnabled = name;
11429
11708
  }
11430
11709
  }
11431
11710
 
11432
11711
  // casing of Fullscreen differs across browsers
11433
11712
  name = prefix + 'FullscreenElement';
11434
- if (defined(document[name])) {
11713
+ if (document[name] !== undefined) {
11435
11714
  _names.fullscreenElement = name;
11436
11715
  } else {
11437
11716
  name = prefix + 'FullScreenElement';
11438
- if (defined(document[name])) {
11717
+ if (document[name] !== undefined) {
11439
11718
  _names.fullscreenElement = name;
11440
11719
  }
11441
11720
  }
@@ -11443,7 +11722,7 @@ define('Core/Fullscreen',[
11443
11722
  // thankfully, event names are all lowercase per spec
11444
11723
  name = prefix + 'fullscreenchange';
11445
11724
  // event names do not have 'on' in the front, but the property on the document does
11446
- if (defined(document['on' + name])) {
11725
+ if (document['on' + name] !== undefined) {
11447
11726
  //except on IE
11448
11727
  if (prefix === 'ms') {
11449
11728
  name = 'MSFullscreenChange';
@@ -11452,7 +11731,7 @@ define('Core/Fullscreen',[
11452
11731
  }
11453
11732
 
11454
11733
  name = prefix + 'fullscreenerror';
11455
- if (defined(document['on' + name])) {
11734
+ if (document['on' + name] !== undefined) {
11456
11735
  //except on IE
11457
11736
  if (prefix === 'ms') {
11458
11737
  name = 'MSFullscreenError';
@@ -11469,7 +11748,7 @@ define('Core/Fullscreen',[
11469
11748
  * If fullscreen mode is not supported by the browser, does nothing.
11470
11749
  *
11471
11750
  * @param {Object} element The HTML element which will be placed into fullscreen mode.
11472
- * @param {HMDVRDevice} vrDevice The VR device.
11751
+ * @param {HMDVRDevice} [vrDevice] The VR device.
11473
11752
  *
11474
11753
  * @example
11475
11754
  * // Put the entire page into fullscreen.
@@ -11500,6 +11779,7 @@ define('Core/Fullscreen',[
11500
11779
 
11501
11780
  return Fullscreen;
11502
11781
  });
11782
+
11503
11783
  /*global define*/
11504
11784
  define('Core/FeatureDetection',[
11505
11785
  './defaultValue',
@@ -11509,7 +11789,7 @@ define('Core/FeatureDetection',[
11509
11789
  defaultValue,
11510
11790
  defined,
11511
11791
  Fullscreen) {
11512
- "use strict";
11792
+ 'use strict';
11513
11793
 
11514
11794
  var theNavigator;
11515
11795
  if (typeof navigator !== 'undefined') {
@@ -11756,7 +12036,7 @@ define('Core/ComponentDatatype',[
11756
12036
  DeveloperError,
11757
12037
  FeatureDetection,
11758
12038
  freezeObject) {
11759
- "use strict";
12039
+ 'use strict';
11760
12040
 
11761
12041
  // Bail out if the browser doesn't support typed arrays, to prevent the setup function
11762
12042
  // from failing, since we won't be able to create a WebGL context anyway.
@@ -12000,7 +12280,7 @@ define('Core/GeometryType',[
12000
12280
  './freezeObject'
12001
12281
  ], function(
12002
12282
  freezeObject) {
12003
- "use strict";
12283
+ 'use strict';
12004
12284
 
12005
12285
  /**
12006
12286
  * @private
@@ -12022,7 +12302,7 @@ define('Core/PrimitiveType',[
12022
12302
  ], function(
12023
12303
  WebGLConstants,
12024
12304
  freezeObject) {
12025
- "use strict";
12305
+ 'use strict';
12026
12306
 
12027
12307
  /**
12028
12308
  * The type of a geometric primitive, i.e., points, lines, and triangles.
@@ -12120,7 +12400,7 @@ define('Core/Geometry',[
12120
12400
  DeveloperError,
12121
12401
  GeometryType,
12122
12402
  PrimitiveType) {
12123
- "use strict";
12403
+ 'use strict';
12124
12404
 
12125
12405
  /**
12126
12406
  * A geometry representation with attributes forming vertices and optional index data
@@ -12313,7 +12593,7 @@ define('Core/GeometryAttribute',[
12313
12593
  defaultValue,
12314
12594
  defined,
12315
12595
  DeveloperError) {
12316
- "use strict";
12596
+ 'use strict';
12317
12597
 
12318
12598
  /**
12319
12599
  * Values and type information for geometry attributes. A {@link Geometry}
@@ -12450,7 +12730,7 @@ define('Core/GeometryAttributes',[
12450
12730
  './defaultValue'
12451
12731
  ], function(
12452
12732
  defaultValue) {
12453
- "use strict";
12733
+ 'use strict';
12454
12734
 
12455
12735
  /**
12456
12736
  * Attributes, which make up a geometry's vertices. Each property in this object corresponds to a
@@ -12554,7 +12834,7 @@ define('Core/IndexDatatype',[
12554
12834
  DeveloperError,
12555
12835
  freezeObject,
12556
12836
  CesiumMath) {
12557
- "use strict";
12837
+ 'use strict';
12558
12838
 
12559
12839
  /**
12560
12840
  * Constants for WebGL index datatypes. These corresponds to the
@@ -12687,72 +12967,722 @@ define('Core/IndexDatatype',[
12687
12967
  return freezeObject(IndexDatatype);
12688
12968
  });
12689
12969
 
12690
- /*global define*/
12691
- define('Core/Cartesian2',[
12692
- './defaultValue',
12693
- './defined',
12694
- './DeveloperError',
12695
- './freezeObject',
12696
- './Math'
12697
- ], function(
12698
- defaultValue,
12699
- defined,
12700
- DeveloperError,
12701
- freezeObject,
12702
- CesiumMath) {
12703
- "use strict";
12970
+ (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define('ThirdParty/earcut-2.1.1',[],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.earcut = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
12971
+ 'use strict';
12704
12972
 
12705
- /**
12706
- * A 2D Cartesian point.
12707
- * @alias Cartesian2
12708
- * @constructor
12709
- *
12710
- * @param {Number} [x=0.0] The X component.
12711
- * @param {Number} [y=0.0] The Y component.
12712
- *
12713
- * @see Cartesian3
12714
- * @see Cartesian4
12715
- * @see Packable
12716
- */
12717
- function Cartesian2(x, y) {
12718
- /**
12719
- * The X component.
12720
- * @type {Number}
12721
- * @default 0.0
12722
- */
12723
- this.x = defaultValue(x, 0.0);
12973
+ module.exports = earcut;
12724
12974
 
12725
- /**
12726
- * The Y component.
12727
- * @type {Number}
12728
- * @default 0.0
12729
- */
12730
- this.y = defaultValue(y, 0.0);
12731
- }
12975
+ function earcut(data, holeIndices, dim) {
12732
12976
 
12733
- /**
12734
- * Creates a Cartesian2 instance from x and y coordinates.
12735
- *
12736
- * @param {Number} x The x coordinate.
12737
- * @param {Number} y The y coordinate.
12738
- * @param {Cartesian2} [result] The object onto which to store the result.
12739
- * @returns {Cartesian2} The modified result parameter or a new Cartesian2 instance if one was not provided.
12740
- */
12741
- Cartesian2.fromElements = function(x, y, result) {
12742
- if (!defined(result)) {
12743
- return new Cartesian2(x, y);
12744
- }
12977
+ dim = dim || 2;
12745
12978
 
12746
- result.x = x;
12747
- result.y = y;
12748
- return result;
12749
- };
12979
+ var hasHoles = holeIndices && holeIndices.length,
12980
+ outerLen = hasHoles ? holeIndices[0] * dim : data.length,
12981
+ outerNode = linkedList(data, 0, outerLen, dim, true),
12982
+ triangles = [];
12750
12983
 
12751
- /**
12752
- * Duplicates a Cartesian2 instance.
12753
- *
12754
- * @param {Cartesian2} cartesian The Cartesian to duplicate.
12755
- * @param {Cartesian2} [result] The object onto which to store the result.
12984
+ if (!outerNode) return triangles;
12985
+
12986
+ var minX, minY, maxX, maxY, x, y, size;
12987
+
12988
+ if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);
12989
+
12990
+ // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox
12991
+ if (data.length > 80 * dim) {
12992
+ minX = maxX = data[0];
12993
+ minY = maxY = data[1];
12994
+
12995
+ for (var i = dim; i < outerLen; i += dim) {
12996
+ x = data[i];
12997
+ y = data[i + 1];
12998
+ if (x < minX) minX = x;
12999
+ if (y < minY) minY = y;
13000
+ if (x > maxX) maxX = x;
13001
+ if (y > maxY) maxY = y;
13002
+ }
13003
+
13004
+ // minX, minY and size are later used to transform coords into integers for z-order calculation
13005
+ size = Math.max(maxX - minX, maxY - minY);
13006
+ }
13007
+
13008
+ earcutLinked(outerNode, triangles, dim, minX, minY, size);
13009
+
13010
+ return triangles;
13011
+ }
13012
+
13013
+ // create a circular doubly linked list from polygon points in the specified winding order
13014
+ function linkedList(data, start, end, dim, clockwise) {
13015
+ var i, last;
13016
+
13017
+ if (clockwise === (signedArea(data, start, end, dim) > 0)) {
13018
+ for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);
13019
+ } else {
13020
+ for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);
13021
+ }
13022
+
13023
+ if (last && equals(last, last.next)) {
13024
+ removeNode(last);
13025
+ last = last.next;
13026
+ }
13027
+
13028
+ return last;
13029
+ }
13030
+
13031
+ // eliminate colinear or duplicate points
13032
+ function filterPoints(start, end) {
13033
+ if (!start) return start;
13034
+ if (!end) end = start;
13035
+
13036
+ var p = start,
13037
+ again;
13038
+ do {
13039
+ again = false;
13040
+
13041
+ if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {
13042
+ removeNode(p);
13043
+ p = end = p.prev;
13044
+ if (p === p.next) return null;
13045
+ again = true;
13046
+
13047
+ } else {
13048
+ p = p.next;
13049
+ }
13050
+ } while (again || p !== end);
13051
+
13052
+ return end;
13053
+ }
13054
+
13055
+ // main ear slicing loop which triangulates a polygon (given as a linked list)
13056
+ function earcutLinked(ear, triangles, dim, minX, minY, size, pass) {
13057
+ if (!ear) return;
13058
+
13059
+ // interlink polygon nodes in z-order
13060
+ if (!pass && size) indexCurve(ear, minX, minY, size);
13061
+
13062
+ var stop = ear,
13063
+ prev, next;
13064
+
13065
+ // iterate through ears, slicing them one by one
13066
+ while (ear.prev !== ear.next) {
13067
+ prev = ear.prev;
13068
+ next = ear.next;
13069
+
13070
+ if (size ? isEarHashed(ear, minX, minY, size) : isEar(ear)) {
13071
+ // cut off the triangle
13072
+ triangles.push(prev.i / dim);
13073
+ triangles.push(ear.i / dim);
13074
+ triangles.push(next.i / dim);
13075
+
13076
+ removeNode(ear);
13077
+
13078
+ // skipping the next vertice leads to less sliver triangles
13079
+ ear = next.next;
13080
+ stop = next.next;
13081
+
13082
+ continue;
13083
+ }
13084
+
13085
+ ear = next;
13086
+
13087
+ // if we looped through the whole remaining polygon and can't find any more ears
13088
+ if (ear === stop) {
13089
+ // try filtering points and slicing again
13090
+ if (!pass) {
13091
+ earcutLinked(filterPoints(ear), triangles, dim, minX, minY, size, 1);
13092
+
13093
+ // if this didn't work, try curing all small self-intersections locally
13094
+ } else if (pass === 1) {
13095
+ ear = cureLocalIntersections(ear, triangles, dim);
13096
+ earcutLinked(ear, triangles, dim, minX, minY, size, 2);
13097
+
13098
+ // as a last resort, try splitting the remaining polygon into two
13099
+ } else if (pass === 2) {
13100
+ splitEarcut(ear, triangles, dim, minX, minY, size);
13101
+ }
13102
+
13103
+ break;
13104
+ }
13105
+ }
13106
+ }
13107
+
13108
+ // check whether a polygon node forms a valid ear with adjacent nodes
13109
+ function isEar(ear) {
13110
+ var a = ear.prev,
13111
+ b = ear,
13112
+ c = ear.next;
13113
+
13114
+ if (area(a, b, c) >= 0) return false; // reflex, can't be an ear
13115
+
13116
+ // now make sure we don't have other points inside the potential ear
13117
+ var p = ear.next.next;
13118
+
13119
+ while (p !== ear.prev) {
13120
+ if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&
13121
+ area(p.prev, p, p.next) >= 0) return false;
13122
+ p = p.next;
13123
+ }
13124
+
13125
+ return true;
13126
+ }
13127
+
13128
+ function isEarHashed(ear, minX, minY, size) {
13129
+ var a = ear.prev,
13130
+ b = ear,
13131
+ c = ear.next;
13132
+
13133
+ if (area(a, b, c) >= 0) return false; // reflex, can't be an ear
13134
+
13135
+ // triangle bbox; min & max are calculated like this for speed
13136
+ var minTX = a.x < b.x ? (a.x < c.x ? a.x : c.x) : (b.x < c.x ? b.x : c.x),
13137
+ minTY = a.y < b.y ? (a.y < c.y ? a.y : c.y) : (b.y < c.y ? b.y : c.y),
13138
+ maxTX = a.x > b.x ? (a.x > c.x ? a.x : c.x) : (b.x > c.x ? b.x : c.x),
13139
+ maxTY = a.y > b.y ? (a.y > c.y ? a.y : c.y) : (b.y > c.y ? b.y : c.y);
13140
+
13141
+ // z-order range for the current triangle bbox;
13142
+ var minZ = zOrder(minTX, minTY, minX, minY, size),
13143
+ maxZ = zOrder(maxTX, maxTY, minX, minY, size);
13144
+
13145
+ // first look for points inside the triangle in increasing z-order
13146
+ var p = ear.nextZ;
13147
+
13148
+ while (p && p.z <= maxZ) {
13149
+ if (p !== ear.prev && p !== ear.next &&
13150
+ pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&
13151
+ area(p.prev, p, p.next) >= 0) return false;
13152
+ p = p.nextZ;
13153
+ }
13154
+
13155
+ // then look for points in decreasing z-order
13156
+ p = ear.prevZ;
13157
+
13158
+ while (p && p.z >= minZ) {
13159
+ if (p !== ear.prev && p !== ear.next &&
13160
+ pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&
13161
+ area(p.prev, p, p.next) >= 0) return false;
13162
+ p = p.prevZ;
13163
+ }
13164
+
13165
+ return true;
13166
+ }
13167
+
13168
+ // go through all polygon nodes and cure small local self-intersections
13169
+ function cureLocalIntersections(start, triangles, dim) {
13170
+ var p = start;
13171
+ do {
13172
+ var a = p.prev,
13173
+ b = p.next.next;
13174
+
13175
+ if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {
13176
+
13177
+ triangles.push(a.i / dim);
13178
+ triangles.push(p.i / dim);
13179
+ triangles.push(b.i / dim);
13180
+
13181
+ // remove two nodes involved
13182
+ removeNode(p);
13183
+ removeNode(p.next);
13184
+
13185
+ p = start = b;
13186
+ }
13187
+ p = p.next;
13188
+ } while (p !== start);
13189
+
13190
+ return p;
13191
+ }
13192
+
13193
+ // try splitting polygon into two and triangulate them independently
13194
+ function splitEarcut(start, triangles, dim, minX, minY, size) {
13195
+ // look for a valid diagonal that divides the polygon into two
13196
+ var a = start;
13197
+ do {
13198
+ var b = a.next.next;
13199
+ while (b !== a.prev) {
13200
+ if (a.i !== b.i && isValidDiagonal(a, b)) {
13201
+ // split the polygon in two by the diagonal
13202
+ var c = splitPolygon(a, b);
13203
+
13204
+ // filter colinear points around the cuts
13205
+ a = filterPoints(a, a.next);
13206
+ c = filterPoints(c, c.next);
13207
+
13208
+ // run earcut on each half
13209
+ earcutLinked(a, triangles, dim, minX, minY, size);
13210
+ earcutLinked(c, triangles, dim, minX, minY, size);
13211
+ return;
13212
+ }
13213
+ b = b.next;
13214
+ }
13215
+ a = a.next;
13216
+ } while (a !== start);
13217
+ }
13218
+
13219
+ // link every hole into the outer loop, producing a single-ring polygon without holes
13220
+ function eliminateHoles(data, holeIndices, outerNode, dim) {
13221
+ var queue = [],
13222
+ i, len, start, end, list;
13223
+
13224
+ for (i = 0, len = holeIndices.length; i < len; i++) {
13225
+ start = holeIndices[i] * dim;
13226
+ end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;
13227
+ list = linkedList(data, start, end, dim, false);
13228
+ if (list === list.next) list.steiner = true;
13229
+ queue.push(getLeftmost(list));
13230
+ }
13231
+
13232
+ queue.sort(compareX);
13233
+
13234
+ // process holes from left to right
13235
+ for (i = 0; i < queue.length; i++) {
13236
+ eliminateHole(queue[i], outerNode);
13237
+ outerNode = filterPoints(outerNode, outerNode.next);
13238
+ }
13239
+
13240
+ return outerNode;
13241
+ }
13242
+
13243
+ function compareX(a, b) {
13244
+ return a.x - b.x;
13245
+ }
13246
+
13247
+ // find a bridge between vertices that connects hole with an outer ring and and link it
13248
+ function eliminateHole(hole, outerNode) {
13249
+ outerNode = findHoleBridge(hole, outerNode);
13250
+ if (outerNode) {
13251
+ var b = splitPolygon(outerNode, hole);
13252
+ filterPoints(b, b.next);
13253
+ }
13254
+ }
13255
+
13256
+ // David Eberly's algorithm for finding a bridge between hole and outer polygon
13257
+ function findHoleBridge(hole, outerNode) {
13258
+ var p = outerNode,
13259
+ hx = hole.x,
13260
+ hy = hole.y,
13261
+ qx = -Infinity,
13262
+ m;
13263
+
13264
+ // find a segment intersected by a ray from the hole's leftmost point to the left;
13265
+ // segment's endpoint with lesser x will be potential connection point
13266
+ do {
13267
+ if (hy <= p.y && hy >= p.next.y) {
13268
+ var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);
13269
+ if (x <= hx && x > qx) {
13270
+ qx = x;
13271
+ if (x === hx) {
13272
+ if (hy === p.y) return p;
13273
+ if (hy === p.next.y) return p.next;
13274
+ }
13275
+ m = p.x < p.next.x ? p : p.next;
13276
+ }
13277
+ }
13278
+ p = p.next;
13279
+ } while (p !== outerNode);
13280
+
13281
+ if (!m) return null;
13282
+
13283
+ if (hx === qx) return m.prev; // hole touches outer segment; pick lower endpoint
13284
+
13285
+ // look for points inside the triangle of hole point, segment intersection and endpoint;
13286
+ // if there are no points found, we have a valid connection;
13287
+ // otherwise choose the point of the minimum angle with the ray as connection point
13288
+
13289
+ var stop = m,
13290
+ mx = m.x,
13291
+ my = m.y,
13292
+ tanMin = Infinity,
13293
+ tan;
13294
+
13295
+ p = m.next;
13296
+
13297
+ while (p !== stop) {
13298
+ if (hx >= p.x && p.x >= mx &&
13299
+ pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {
13300
+
13301
+ tan = Math.abs(hy - p.y) / (hx - p.x); // tangential
13302
+
13303
+ if ((tan < tanMin || (tan === tanMin && p.x > m.x)) && locallyInside(p, hole)) {
13304
+ m = p;
13305
+ tanMin = tan;
13306
+ }
13307
+ }
13308
+
13309
+ p = p.next;
13310
+ }
13311
+
13312
+ return m;
13313
+ }
13314
+
13315
+ // interlink polygon nodes in z-order
13316
+ function indexCurve(start, minX, minY, size) {
13317
+ var p = start;
13318
+ do {
13319
+ if (p.z === null) p.z = zOrder(p.x, p.y, minX, minY, size);
13320
+ p.prevZ = p.prev;
13321
+ p.nextZ = p.next;
13322
+ p = p.next;
13323
+ } while (p !== start);
13324
+
13325
+ p.prevZ.nextZ = null;
13326
+ p.prevZ = null;
13327
+
13328
+ sortLinked(p);
13329
+ }
13330
+
13331
+ // Simon Tatham's linked list merge sort algorithm
13332
+ // http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html
13333
+ function sortLinked(list) {
13334
+ var i, p, q, e, tail, numMerges, pSize, qSize,
13335
+ inSize = 1;
13336
+
13337
+ do {
13338
+ p = list;
13339
+ list = null;
13340
+ tail = null;
13341
+ numMerges = 0;
13342
+
13343
+ while (p) {
13344
+ numMerges++;
13345
+ q = p;
13346
+ pSize = 0;
13347
+ for (i = 0; i < inSize; i++) {
13348
+ pSize++;
13349
+ q = q.nextZ;
13350
+ if (!q) break;
13351
+ }
13352
+
13353
+ qSize = inSize;
13354
+
13355
+ while (pSize > 0 || (qSize > 0 && q)) {
13356
+
13357
+ if (pSize === 0) {
13358
+ e = q;
13359
+ q = q.nextZ;
13360
+ qSize--;
13361
+ } else if (qSize === 0 || !q) {
13362
+ e = p;
13363
+ p = p.nextZ;
13364
+ pSize--;
13365
+ } else if (p.z <= q.z) {
13366
+ e = p;
13367
+ p = p.nextZ;
13368
+ pSize--;
13369
+ } else {
13370
+ e = q;
13371
+ q = q.nextZ;
13372
+ qSize--;
13373
+ }
13374
+
13375
+ if (tail) tail.nextZ = e;
13376
+ else list = e;
13377
+
13378
+ e.prevZ = tail;
13379
+ tail = e;
13380
+ }
13381
+
13382
+ p = q;
13383
+ }
13384
+
13385
+ tail.nextZ = null;
13386
+ inSize *= 2;
13387
+
13388
+ } while (numMerges > 1);
13389
+
13390
+ return list;
13391
+ }
13392
+
13393
+ // z-order of a point given coords and size of the data bounding box
13394
+ function zOrder(x, y, minX, minY, size) {
13395
+ // coords are transformed into non-negative 15-bit integer range
13396
+ x = 32767 * (x - minX) / size;
13397
+ y = 32767 * (y - minY) / size;
13398
+
13399
+ x = (x | (x << 8)) & 0x00FF00FF;
13400
+ x = (x | (x << 4)) & 0x0F0F0F0F;
13401
+ x = (x | (x << 2)) & 0x33333333;
13402
+ x = (x | (x << 1)) & 0x55555555;
13403
+
13404
+ y = (y | (y << 8)) & 0x00FF00FF;
13405
+ y = (y | (y << 4)) & 0x0F0F0F0F;
13406
+ y = (y | (y << 2)) & 0x33333333;
13407
+ y = (y | (y << 1)) & 0x55555555;
13408
+
13409
+ return x | (y << 1);
13410
+ }
13411
+
13412
+ // find the leftmost node of a polygon ring
13413
+ function getLeftmost(start) {
13414
+ var p = start,
13415
+ leftmost = start;
13416
+ do {
13417
+ if (p.x < leftmost.x) leftmost = p;
13418
+ p = p.next;
13419
+ } while (p !== start);
13420
+
13421
+ return leftmost;
13422
+ }
13423
+
13424
+ // check if a point lies within a convex triangle
13425
+ function pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {
13426
+ return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 &&
13427
+ (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 &&
13428
+ (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;
13429
+ }
13430
+
13431
+ // check if a diagonal between two polygon nodes is valid (lies in polygon interior)
13432
+ function isValidDiagonal(a, b) {
13433
+ return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) &&
13434
+ locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b);
13435
+ }
13436
+
13437
+ // signed area of a triangle
13438
+ function area(p, q, r) {
13439
+ return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);
13440
+ }
13441
+
13442
+ // check if two points are equal
13443
+ function equals(p1, p2) {
13444
+ return p1.x === p2.x && p1.y === p2.y;
13445
+ }
13446
+
13447
+ // check if two segments intersect
13448
+ function intersects(p1, q1, p2, q2) {
13449
+ if ((equals(p1, q1) && equals(p2, q2)) ||
13450
+ (equals(p1, q2) && equals(p2, q1))) return true;
13451
+ return area(p1, q1, p2) > 0 !== area(p1, q1, q2) > 0 &&
13452
+ area(p2, q2, p1) > 0 !== area(p2, q2, q1) > 0;
13453
+ }
13454
+
13455
+ // check if a polygon diagonal intersects any polygon segments
13456
+ function intersectsPolygon(a, b) {
13457
+ var p = a;
13458
+ do {
13459
+ if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&
13460
+ intersects(p, p.next, a, b)) return true;
13461
+ p = p.next;
13462
+ } while (p !== a);
13463
+
13464
+ return false;
13465
+ }
13466
+
13467
+ // check if a polygon diagonal is locally inside the polygon
13468
+ function locallyInside(a, b) {
13469
+ return area(a.prev, a, a.next) < 0 ?
13470
+ area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 :
13471
+ area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;
13472
+ }
13473
+
13474
+ // check if the middle point of a polygon diagonal is inside the polygon
13475
+ function middleInside(a, b) {
13476
+ var p = a,
13477
+ inside = false,
13478
+ px = (a.x + b.x) / 2,
13479
+ py = (a.y + b.y) / 2;
13480
+ do {
13481
+ if (((p.y > py) !== (p.next.y > py)) && (px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x))
13482
+ inside = !inside;
13483
+ p = p.next;
13484
+ } while (p !== a);
13485
+
13486
+ return inside;
13487
+ }
13488
+
13489
+ // link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;
13490
+ // if one belongs to the outer ring and another to a hole, it merges it into a single ring
13491
+ function splitPolygon(a, b) {
13492
+ var a2 = new Node(a.i, a.x, a.y),
13493
+ b2 = new Node(b.i, b.x, b.y),
13494
+ an = a.next,
13495
+ bp = b.prev;
13496
+
13497
+ a.next = b;
13498
+ b.prev = a;
13499
+
13500
+ a2.next = an;
13501
+ an.prev = a2;
13502
+
13503
+ b2.next = a2;
13504
+ a2.prev = b2;
13505
+
13506
+ bp.next = b2;
13507
+ b2.prev = bp;
13508
+
13509
+ return b2;
13510
+ }
13511
+
13512
+ // create a node and optionally link it with previous one (in a circular doubly linked list)
13513
+ function insertNode(i, x, y, last) {
13514
+ var p = new Node(i, x, y);
13515
+
13516
+ if (!last) {
13517
+ p.prev = p;
13518
+ p.next = p;
13519
+
13520
+ } else {
13521
+ p.next = last.next;
13522
+ p.prev = last;
13523
+ last.next.prev = p;
13524
+ last.next = p;
13525
+ }
13526
+ return p;
13527
+ }
13528
+
13529
+ function removeNode(p) {
13530
+ p.next.prev = p.prev;
13531
+ p.prev.next = p.next;
13532
+
13533
+ if (p.prevZ) p.prevZ.nextZ = p.nextZ;
13534
+ if (p.nextZ) p.nextZ.prevZ = p.prevZ;
13535
+ }
13536
+
13537
+ function Node(i, x, y) {
13538
+ // vertice index in coordinates array
13539
+ this.i = i;
13540
+
13541
+ // vertex coordinates
13542
+ this.x = x;
13543
+ this.y = y;
13544
+
13545
+ // previous and next vertice nodes in a polygon ring
13546
+ this.prev = null;
13547
+ this.next = null;
13548
+
13549
+ // z-order curve value
13550
+ this.z = null;
13551
+
13552
+ // previous and next nodes in z-order
13553
+ this.prevZ = null;
13554
+ this.nextZ = null;
13555
+
13556
+ // indicates whether this is a steiner point
13557
+ this.steiner = false;
13558
+ }
13559
+
13560
+ // return a percentage difference between the polygon area and its triangulation area;
13561
+ // used to verify correctness of triangulation
13562
+ earcut.deviation = function (data, holeIndices, dim, triangles) {
13563
+ var hasHoles = holeIndices && holeIndices.length;
13564
+ var outerLen = hasHoles ? holeIndices[0] * dim : data.length;
13565
+
13566
+ var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));
13567
+ if (hasHoles) {
13568
+ for (var i = 0, len = holeIndices.length; i < len; i++) {
13569
+ var start = holeIndices[i] * dim;
13570
+ var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;
13571
+ polygonArea -= Math.abs(signedArea(data, start, end, dim));
13572
+ }
13573
+ }
13574
+
13575
+ var trianglesArea = 0;
13576
+ for (i = 0; i < triangles.length; i += 3) {
13577
+ var a = triangles[i] * dim;
13578
+ var b = triangles[i + 1] * dim;
13579
+ var c = triangles[i + 2] * dim;
13580
+ trianglesArea += Math.abs(
13581
+ (data[a] - data[c]) * (data[b + 1] - data[a + 1]) -
13582
+ (data[a] - data[b]) * (data[c + 1] - data[a + 1]));
13583
+ }
13584
+
13585
+ return polygonArea === 0 && trianglesArea === 0 ? 0 :
13586
+ Math.abs((trianglesArea - polygonArea) / polygonArea);
13587
+ };
13588
+
13589
+ function signedArea(data, start, end, dim) {
13590
+ var sum = 0;
13591
+ for (var i = start, j = end - dim; i < end; i += dim) {
13592
+ sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);
13593
+ j = i;
13594
+ }
13595
+ return sum;
13596
+ }
13597
+
13598
+ // turn a polygon in a multi-dimensional array form (e.g. as in GeoJSON) into a form Earcut accepts
13599
+ earcut.flatten = function (data) {
13600
+ var dim = data[0][0].length,
13601
+ result = {vertices: [], holes: [], dimensions: dim},
13602
+ holeIndex = 0;
13603
+
13604
+ for (var i = 0; i < data.length; i++) {
13605
+ for (var j = 0; j < data[i].length; j++) {
13606
+ for (var d = 0; d < dim; d++) result.vertices.push(data[i][j][d]);
13607
+ }
13608
+ if (i > 0) {
13609
+ holeIndex += data[i - 1].length;
13610
+ result.holes.push(holeIndex);
13611
+ }
13612
+ }
13613
+ return result;
13614
+ };
13615
+
13616
+ },{}]},{},[1])(1)
13617
+ });
13618
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJzcmMvZWFyY3V0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsIid1c2Ugc3RyaWN0JztcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZWFyY3V0O1xyXG5cclxuZnVuY3Rpb24gZWFyY3V0KGRhdGEsIGhvbGVJbmRpY2VzLCBkaW0pIHtcclxuXHJcbiAgICBkaW0gPSBkaW0gfHwgMjtcclxuXHJcbiAgICB2YXIgaGFzSG9sZXMgPSBob2xlSW5kaWNlcyAmJiBob2xlSW5kaWNlcy5sZW5ndGgsXHJcbiAgICAgICAgb3V0ZXJMZW4gPSBoYXNIb2xlcyA/IGhvbGVJbmRpY2VzWzBdICogZGltIDogZGF0YS5sZW5ndGgsXHJcbiAgICAgICAgb3V0ZXJOb2RlID0gbGlua2VkTGlzdChkYXRhLCAwLCBvdXRlckxlbiwgZGltLCB0cnVlKSxcclxuICAgICAgICB0cmlhbmdsZXMgPSBbXTtcclxuXHJcbiAgICBpZiAoIW91dGVyTm9kZSkgcmV0dXJuIHRyaWFuZ2xlcztcclxuXHJcbiAgICB2YXIgbWluWCwgbWluWSwgbWF4WCwgbWF4WSwgeCwgeSwgc2l6ZTtcclxuXHJcbiAgICBpZiAoaGFzSG9sZXMpIG91dGVyTm9kZSA9IGVsaW1pbmF0ZUhvbGVzKGRhdGEsIGhvbGVJbmRpY2VzLCBvdXRlck5vZGUsIGRpbSk7XHJcblxyXG4gICAgLy8gaWYgdGhlIHNoYXBlIGlzIG5vdCB0b28gc2ltcGxlLCB3ZSdsbCB1c2Ugei1vcmRlciBjdXJ2ZSBoYXNoIGxhdGVyOyBjYWxjdWxhdGUgcG9seWdvbiBiYm94XHJcbiAgICBpZiAoZGF0YS5sZW5ndGggPiA4MCAqIGRpbSkge1xyXG4gICAgICAgIG1pblggPSBtYXhYID0gZGF0YVswXTtcclxuICAgICAgICBtaW5ZID0gbWF4WSA9IGRhdGFbMV07XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSBkaW07IGkgPCBvdXRlckxlbjsgaSArPSBkaW0pIHtcclxuICAgICAgICAgICAgeCA9IGRhdGFbaV07XHJcbiAgICAgICAgICAgIHkgPSBkYXRhW2kgKyAxXTtcclxuICAgICAgICAgICAgaWYgKHggPCBtaW5YKSBtaW5YID0geDtcclxuICAgICAgICAgICAgaWYgKHkgPCBtaW5ZKSBtaW5ZID0geTtcclxuICAgICAgICAgICAgaWYgKHggPiBtYXhYKSBtYXhYID0geDtcclxuICAgICAgICAgICAgaWYgKHkgPiBtYXhZKSBtYXhZID0geTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIG1pblgsIG1pblkgYW5kIHNpemUgYXJlIGxhdGVyIHVzZWQgdG8gdHJhbnNmb3JtIGNvb3JkcyBpbnRvIGludGVnZXJzIGZvciB6LW9yZGVyIGNhbGN1bGF0aW9uXHJcbiAgICAgICAgc2l6ZSA9IE1hdGgubWF4KG1heFggLSBtaW5YLCBtYXhZIC0gbWluWSk7XHJcbiAgICB9XHJcblxyXG4gICAgZWFyY3V0TGlua2VkKG91dGVyTm9kZSwgdHJpYW5nbGVzLCBkaW0sIG1pblgsIG1pblksIHNpemUpO1xyXG5cclxuICAgIHJldHVybiB0cmlhbmdsZXM7XHJcbn1cclxuXHJcbi8vIGNyZWF0ZSBhIGNpcmN1bGFyIGRvdWJseSBsaW5rZWQgbGlzdCBmcm9tIHBvbHlnb24gcG9pbnRzIGluIHRoZSBzcGVjaWZpZWQgd2luZGluZyBvcmRlclxyXG5mdW5jdGlvbiBsaW5rZWRMaXN0KGRhdGEsIHN0YXJ0LCBlbmQsIGRpbSwgY2xvY2t3aXNlKSB7XHJcbiAgICB2YXIgaSwgbGFzdDtcclxuXHJcbiAgICBpZiAoY2xvY2t3aXNlID09PSAoc2lnbmVkQXJlYShkYXRhLCBzdGFydCwgZW5kLCBkaW0pID4gMCkpIHtcclxuICAgICAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGVuZDsgaSArPSBkaW0pIGxhc3QgPSBpbnNlcnROb2RlKGksIGRhdGFbaV0sIGRhdGFbaSArIDFdLCBsYXN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZm9yIChpID0gZW5kIC0gZGltOyBpID49IHN0YXJ0OyBpIC09IGRpbSkgbGFzdCA9IGluc2VydE5vZGUoaSwgZGF0YVtpXSwgZGF0YVtpICsgMV0sIGxhc3QpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChsYXN0ICYmIGVxdWFscyhsYXN0LCBsYXN0Lm5leHQpKSB7XHJcbiAgICAgICAgcmVtb3ZlTm9kZShsYXN0KTtcclxuICAgICAgICBsYXN0ID0gbGFzdC5uZXh0O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBsYXN0O1xyXG59XHJcblxyXG4vLyBlbGltaW5hdGUgY29saW5lYXIgb3IgZHVwbGljYXRlIHBvaW50c1xyXG5mdW5jdGlvbiBmaWx0ZXJQb2ludHMoc3RhcnQsIGVuZCkge1xyXG4gICAgaWYgKCFzdGFydCkgcmV0dXJuIHN0YXJ0O1xyXG4gICAgaWYgKCFlbmQpIGVuZCA9IHN0YXJ0O1xyXG5cclxuICAgIHZhciBwID0gc3RhcnQsXHJcbiAgICAgICAgYWdhaW47XHJcbiAgICBkbyB7XHJcbiAgICAgICAgYWdhaW4gPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYgKCFwLnN0ZWluZXIgJiYgKGVxdWFscyhwLCBwLm5leHQpIHx8IGFyZWEocC5wcmV2LCBwLCBwLm5leHQpID09PSAwKSkge1xyXG4gICAgICAgICAgICByZW1vdmVOb2RlKHApO1xyXG4gICAgICAgICAgICBwID0gZW5kID0gcC5wcmV2O1xyXG4gICAgICAgICAgICBpZiAocCA9PT0gcC5uZXh0KSByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgYWdhaW4gPSB0cnVlO1xyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBwID0gcC5uZXh0O1xyXG4gICAgICAgIH1cclxuICAgIH0gd2hpbGUgKGFnYWluIHx8IHAgIT09IGVuZCk7XHJcblxyXG4gICAgcmV0dXJuIGVuZDtcclxufVxyXG5cclxuLy8gbWFpbiBlYXIgc2xpY2luZyBsb29wIHdoaWNoIHRyaWFuZ3VsYXRlcyBhIHBvbHlnb24gKGdpdmVuIGFzIGEgbGlua2VkIGxpc3QpXHJcbmZ1bmN0aW9uIGVhcmN1dExpbmtlZChlYXIsIHRyaWFuZ2xlcywgZGltLCBtaW5YLCBtaW5ZLCBzaXplLCBwYXNzKSB7XHJcbiAgICBpZiAoIWVhcikgcmV0dXJuO1xyXG5cclxuICAgIC8vIGludGVybGluayBwb2x5Z29uIG5vZGVzIGluIHotb3JkZXJcclxuICAgIGlmICghcGFzcyAmJiBzaXplKSBpbmRleEN1cnZlKGVhciwgbWluWCwgbWluWSwgc2l6ZSk7XHJcblxyXG4gICAgdmFyIHN0b3AgPSBlYXIsXHJcbiAgICAgICAgcHJldiwgbmV4dDtcclxuXHJcbiAgICAvLyBpdGVyYXRlIHRocm91Z2ggZWFycywgc2xpY2luZyB0aGVtIG9uZSBieSBvbmVcclxuICAgIHdoaWxlIChlYXIucHJldiAhPT0gZWFyLm5leHQpIHtcclxuICAgICAgICBwcmV2ID0gZWFyLnByZXY7XHJcbiAgICAgICAgbmV4dCA9IGVhci5uZXh0O1xyXG5cclxuICAgICAgICBpZiAoc2l6ZSA/IGlzRWFySGFzaGVkKGVhciwgbWluWCwgbWluWSwgc2l6ZSkgOiBpc0VhcihlYXIpKSB7XHJcbiAgICAgICAgICAgIC8vIGN1dCBvZmYgdGhlIHRyaWFuZ2xlXHJcbiAgICAgICAgICAgIHRyaWFuZ2xlcy5wdXNoKHByZXYuaSAvIGRpbSk7XHJcbiAgICAgICAgICAgIHRyaWFuZ2xlcy5wdXNoKGVhci5pIC8gZGltKTtcclxuICAgICAgICAgICAgdHJpYW5nbGVzLnB1c2gobmV4dC5pIC8gZGltKTtcclxuXHJcbiAgICAgICAgICAgIHJlbW92ZU5vZGUoZWFyKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHNraXBwaW5nIHRoZSBuZXh0IHZlcnRpY2UgbGVhZHMgdG8gbGVzcyBzbGl2ZXIgdHJpYW5nbGVzXHJcbiAgICAgICAgICAgIGVhciA9IG5leHQubmV4dDtcclxuICAgICAgICAgICAgc3RvcCA9IG5leHQubmV4dDtcclxuXHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWFyID0gbmV4dDtcclxuXHJcbiAgICAgICAgLy8gaWYgd2UgbG9vcGVkIHRocm91Z2ggdGhlIHdob2xlIHJlbWFpbmluZyBwb2x5Z29uIGFuZCBjYW4ndCBmaW5kIGFueSBtb3JlIGVhcnNcclxuICAgICAgICBpZiAoZWFyID09PSBzdG9wKSB7XHJcbiAgICAgICAgICAgIC8vIHRyeSBmaWx0ZXJpbmcgcG9pbnRzIGFuZCBzbGljaW5nIGFnYWluXHJcbiAgICAgICAgICAgIGlmICghcGFzcykge1xyXG4gICAgICAgICAgICAgICAgZWFyY3V0TGlua2VkKGZpbHRlclBvaW50cyhlYXIpLCB0cmlhbmdsZXMsIGRpbSwgbWluWCwgbWluWSwgc2l6ZSwgMSk7XHJcblxyXG4gICAgICAgICAgICAvLyBpZiB0aGlzIGRpZG4ndCB3b3JrLCB0cnkgY3VyaW5nIGFsbCBzbWFsbCBzZWxmLWludGVyc2VjdGlvbnMgbG9jYWxseVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBhc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgICAgIGVhciA9IGN1cmVMb2NhbEludGVyc2VjdGlvbnMoZWFyLCB0cmlhbmdsZXMsIGRpbSk7XHJcbiAgICAgICAgICAgICAgICBlYXJjdXRMaW5rZWQoZWFyLCB0cmlhbmdsZXMsIGRpbSwgbWluWCwgbWluWSwgc2l6ZSwgMik7XHJcblxyXG4gICAgICAgICAgICAvLyBhcyBhIGxhc3QgcmVzb3J0LCB0cnkgc3BsaXR0aW5nIHRoZSByZW1haW5pbmcgcG9seWdvbiBpbnRvIHR3b1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBhc3MgPT09IDIpIHtcclxuICAgICAgICAgICAgICAgIHNwbGl0RWFyY3V0KGVhciwgdHJpYW5nbGVzLCBkaW0sIG1pblgsIG1pblksIHNpemUpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIGNoZWNrIHdoZXRoZXIgYSBwb2x5Z29uIG5vZGUgZm9ybXMgYSB2YWxpZCBlYXIgd2l0aCBhZGphY2VudCBub2Rlc1xyXG5mdW5jdGlvbiBpc0VhcihlYXIpIHtcclxuICAgIHZhciBhID0gZWFyLnByZXYsXHJcbiAgICAgICAgYiA9IGVhcixcclxuICAgICAgICBjID0gZWFyLm5leHQ7XHJcblxyXG4gICAgaWYgKGFyZWEoYSwgYiwgYykgPj0gMCkgcmV0dXJuIGZhbHNlOyAvLyByZWZsZXgsIGNhbid0IGJlIGFuIGVhclxyXG5cclxuICAgIC8vIG5vdyBtYWtlIHN1cmUgd2UgZG9uJ3QgaGF2ZSBvdGhlciBwb2ludHMgaW5zaWRlIHRoZSBwb3RlbnRpYWwgZWFyXHJcbiAgICB2YXIgcCA9IGVhci5uZXh0Lm5leHQ7XHJcblxyXG4gICAgd2hpbGUgKHAgIT09IGVhci5wcmV2KSB7XHJcbiAgICAgICAgaWYgKHBvaW50SW5UcmlhbmdsZShhLngsIGEueSwgYi54LCBiLnksIGMueCwgYy55LCBwLngsIHAueSkgJiZcclxuICAgICAgICAgICAgYXJlYShwLnByZXYsIHAsIHAubmV4dCkgPj0gMCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIHAgPSBwLm5leHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzRWFySGFzaGVkKGVhciwgbWluWCwgbWluWSwgc2l6ZSkge1xyXG4gICAgdmFyIGEgPSBlYXIucHJldixcclxuICAgICAgICBiID0gZWFyLFxyXG4gICAgICAgIGMgPSBlYXIubmV4dDtcclxuXHJcbiAgICBpZiAoYXJlYShhLCBiLCBjKSA+PSAwKSByZXR1cm4gZmFsc2U7IC8vIHJlZmxleCwgY2FuJ3QgYmUgYW4gZWFyXHJcblxyXG4gICAgLy8gdHJpYW5nbGUgYmJveDsgbWluICYgbWF4IGFyZSBjYWxjdWxhdGVkIGxpa2UgdGhpcyBmb3Igc3BlZWRcclxuICAgIHZhciBtaW5UWCA9IGEueCA8IGIueCA/IChhLnggPCBjLnggPyBhLnggOiBjLngpIDogKGIueCA8IGMueCA/IGIueCA6IGMueCksXHJcbiAgICAgICAgbWluVFkgPSBhLnkgPCBiLnkgPyAoYS55IDwgYy55ID8gYS55IDogYy55KSA6IChiLnkgPCBjLnkgPyBiLnkgOiBjLnkpLFxyXG4gICAgICAgIG1heFRYID0gYS54ID4gYi54ID8gKGEueCA+IGMueCA/IGEueCA6IGMueCkgOiAoYi54ID4gYy54ID8gYi54IDogYy54KSxcclxuICAgICAgICBtYXhUWSA9IGEueSA+IGIueSA/IChhLnkgPiBjLnkgPyBhLnkgOiBjLnkpIDogKGIueSA+IGMueSA/IGIueSA6IGMueSk7XHJcblxyXG4gICAgLy8gei1vcmRlciByYW5nZSBmb3IgdGhlIGN1cnJlbnQgdHJpYW5nbGUgYmJveDtcclxuICAgIHZhciBtaW5aID0gek9yZGVyKG1pblRYLCBtaW5UWSwgbWluWCwgbWluWSwgc2l6ZSksXHJcbiAgICAgICAgbWF4WiA9IHpPcmRlcihtYXhUWCwgbWF4VFksIG1pblgsIG1pblksIHNpemUpO1xyXG5cclxuICAgIC8vIGZpcnN0IGxvb2sgZm9yIHBvaW50cyBpbnNpZGUgdGhlIHRyaWFuZ2xlIGluIGluY3JlYXNpbmcgei1vcmRlclxyXG4gICAgdmFyIHAgPSBlYXIubmV4dFo7XHJcblxyXG4gICAgd2hpbGUgKHAgJiYgcC56IDw9IG1heFopIHtcclxuICAgICAgICBpZiAocCAhPT0gZWFyLnByZXYgJiYgcCAhPT0gZWFyLm5leHQgJiZcclxuICAgICAgICAgICAgcG9pbnRJblRyaWFuZ2xlKGEueCwgYS55LCBiLngsIGIueSwgYy54LCBjLnksIHAueCwgcC55KSAmJlxyXG4gICAgICAgICAgICBhcmVhKHAucHJldiwgcCwgcC5uZXh0KSA+PSAwKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgcCA9IHAubmV4dFo7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdGhlbiBsb29rIGZvciBwb2ludHMgaW4gZGVjcmVhc2luZyB6LW9yZGVyXHJcbiAgICBwID0gZWFyLnByZXZaO1xyXG5cclxuICAgIHdoaWxlIChwICYmIHAueiA+PSBtaW5aKSB7XHJcbiAgICAgICAgaWYgKHAgIT09IGVhci5wcmV2ICYmIHAgIT09IGVhci5uZXh0ICYmXHJcbiAgICAgICAgICAgIHBvaW50SW5UcmlhbmdsZShhLngsIGEueSwgYi54LCBiLnksIGMueCwgYy55LCBwLngsIHAueSkgJiZcclxuICAgICAgICAgICAgYXJlYShwLnByZXYsIHAsIHAubmV4dCkgPj0gMCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIHAgPSBwLnByZXZaO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG59XHJcblxyXG4vLyBnbyB0aHJvdWdoIGFsbCBwb2x5Z29uIG5vZGVzIGFuZCBjdXJlIHNtYWxsIGxvY2FsIHNlbGYtaW50ZXJzZWN0aW9uc1xyXG5mdW5jdGlvbiBjdXJlTG9jYWxJbnRlcnNlY3Rpb25zKHN0YXJ0LCB0cmlhbmdsZXMsIGRpbSkge1xyXG4gICAgdmFyIHAgPSBzdGFydDtcclxuICAgIGRvIHtcclxuICAgICAgICB2YXIgYSA9IHAucHJldixcclxuICAgICAgICAgICAgYiA9IHAubmV4dC5uZXh0O1xyXG5cclxuICAgICAgICBpZiAoIWVxdWFscyhhLCBiKSAmJiBpbnRlcnNlY3RzKGEsIHAsIHAubmV4dCwgYikgJiYgbG9jYWxseUluc2lkZShhLCBiKSAmJiBsb2NhbGx5SW5zaWRlKGIsIGEpKSB7XHJcblxyXG4gICAgICAgICAgICB0cmlhbmdsZXMucHVzaChhLmkgLyBkaW0pO1xyXG4gICAgICAgICAgICB0cmlhbmdsZXMucHVzaChwLmkgLyBkaW0pO1xyXG4gICAgICAgICAgICB0cmlhbmdsZXMucHVzaChiLmkgLyBkaW0pO1xyXG5cclxuICAgICAgICAgICAgLy8gcmVtb3ZlIHR3byBub2RlcyBpbnZvbHZlZFxyXG4gICAgICAgICAgICByZW1vdmVOb2RlKHApO1xyXG4gICAgICAgICAgICByZW1vdmVOb2RlKHAubmV4dCk7XHJcblxyXG4gICAgICAgICAgICBwID0gc3RhcnQgPSBiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwID0gcC5uZXh0O1xyXG4gICAgfSB3aGlsZSAocCAhPT0gc3RhcnQpO1xyXG5cclxuICAgIHJldHVybiBwO1xyXG59XHJcblxyXG4vLyB0cnkgc3BsaXR0aW5nIHBvbHlnb24gaW50byB0d28gYW5kIHRyaWFuZ3VsYXRlIHRoZW0gaW5kZXBlbmRlbnRseVxyXG5mdW5jdGlvbiBzcGxpdEVhcmN1dChzdGFydCwgdHJpYW5nbGVzLCBkaW0sIG1pblgsIG1pblksIHNpemUpIHtcclxuICAgIC8vIGxvb2sgZm9yIGEgdmFsaWQgZGlhZ29uYWwgdGhhdCBkaXZpZGVzIHRoZSBwb2x5Z29uIGludG8gdHdvXHJcbiAgICB2YXIgYSA9IHN0YXJ0O1xyXG4gICAgZG8ge1xyXG4gICAgICAgIHZhciBiID0gYS5uZXh0Lm5leHQ7XHJcbiAgICAgICAgd2hpbGUgKGIgIT09IGEucHJldikge1xyXG4gICAgICAgICAgICBpZiAoYS5pICE9PSBiLmkgJiYgaXNWYWxpZERpYWdvbmFsKGEsIGIpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBzcGxpdCB0aGUgcG9seWdvbiBpbiB0d28gYnkgdGhlIGRpYWdvbmFsXHJcbiAgICAgICAgICAgICAgICB2YXIgYyA9IHNwbGl0UG9seWdvbihhLCBiKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBmaWx0ZXIgY29saW5lYXIgcG9pbnRzIGFyb3VuZCB0aGUgY3V0c1xyXG4gICAgICAgICAgICAgICAgYSA9IGZpbHRlclBvaW50cyhhLCBhLm5leHQpO1xyXG4gICAgICAgICAgICAgICAgYyA9IGZpbHRlclBvaW50cyhjLCBjLm5leHQpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIHJ1biBlYXJjdXQgb24gZWFjaCBoYWxmXHJcbiAgICAgICAgICAgICAgICBlYXJjdXRMaW5rZWQoYSwgdHJpYW5nbGVzLCBkaW0sIG1pblgsIG1pblksIHNpemUpO1xyXG4gICAgICAgICAgICAgICAgZWFyY3V0TGlua2VkKGMsIHRyaWFuZ2xlcywgZGltLCBtaW5YLCBtaW5ZLCBzaXplKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBiID0gYi5uZXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBhID0gYS5uZXh0O1xyXG4gICAgfSB3aGlsZSAoYSAhPT0gc3RhcnQpO1xyXG59XHJcblxyXG4vLyBsaW5rIGV2ZXJ5IGhvbGUgaW50byB0aGUgb3V0ZXIgbG9vcCwgcHJvZHVjaW5nIGEgc2luZ2xlLXJpbmcgcG9seWdvbiB3aXRob3V0IGhvbGVzXHJcbmZ1bmN0aW9uIGVsaW1pbmF0ZUhvbGVzKGRhdGEsIGhvbGVJbmRpY2VzLCBvdXRlck5vZGUsIGRpbSkge1xyXG4gICAgdmFyIHF1ZXVlID0gW10sXHJcbiAgICAgICAgaSwgbGVuLCBzdGFydCwgZW5kLCBsaXN0O1xyXG5cclxuICAgIGZvciAoaSA9IDAsIGxlbiA9IGhvbGVJbmRpY2VzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgc3RhcnQgPSBob2xlSW5kaWNlc1tpXSAqIGRpbTtcclxuICAgICAgICBlbmQgPSBpIDwgbGVuIC0gMSA/IGhvbGVJbmRpY2VzW2kgKyAxXSAqIGRpbSA6IGRhdGEubGVuZ3RoO1xyXG4gICAgICAgIGxpc3QgPSBsaW5rZWRMaXN0KGRhdGEsIHN0YXJ0LCBlbmQsIGRpbSwgZmFsc2UpO1xyXG4gICAgICAgIGlmIChsaXN0ID09PSBsaXN0Lm5leHQpIGxpc3Quc3RlaW5lciA9IHRydWU7XHJcbiAgICAgICAgcXVldWUucHVzaChnZXRMZWZ0bW9zdChsaXN0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgcXVldWUuc29ydChjb21wYXJlWCk7XHJcblxyXG4gICAgLy8gcHJvY2VzcyBob2xlcyBmcm9tIGxlZnQgdG8gcmlnaHRcclxuICAgIGZvciAoaSA9IDA7IGkgPCBxdWV1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGVsaW1pbmF0ZUhvbGUocXVldWVbaV0sIG91dGVyTm9kZSk7XHJcbiAgICAgICAgb3V0ZXJOb2RlID0gZmlsdGVyUG9pbnRzKG91dGVyTm9kZSwgb3V0ZXJOb2RlLm5leHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvdXRlck5vZGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvbXBhcmVYKGEsIGIpIHtcclxuICAgIHJldHVybiBhLnggLSBiLng7XHJcbn1cclxuXHJcbi8vIGZpbmQgYSBicmlkZ2UgYmV0d2VlbiB2ZXJ0aWNlcyB0aGF0IGNvbm5lY3RzIGhvbGUgd2l0aCBhbiBvdXRlciByaW5nIGFuZCBhbmQgbGluayBpdFxyXG5mdW5jdGlvbiBlbGltaW5hdGVIb2xlKGhvbGUsIG91dGVyTm9kZSkge1xyXG4gICAgb3V0ZXJOb2RlID0gZmluZEhvbGVCcmlkZ2UoaG9sZSwgb3V0ZXJOb2RlKTtcclxuICAgIGlmIChvdXRlck5vZGUpIHtcclxuICAgICAgICB2YXIgYiA9IHNwbGl0UG9seWdvbihvdXRlck5vZGUsIGhvbGUpO1xyXG4gICAgICAgIGZpbHRlclBvaW50cyhiLCBiLm5leHQpO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyBEYXZpZCBFYmVybHkncyBhbGdvcml0aG0gZm9yIGZpbmRpbmcgYSBicmlkZ2UgYmV0d2VlbiBob2xlIGFuZCBvdXRlciBwb2x5Z29uXHJcbmZ1bmN0aW9uIGZpbmRIb2xlQnJpZGdlKGhvbGUsIG91dGVyTm9kZSkge1xyXG4gICAgdmFyIHAgPSBvdXRlck5vZGUsXHJcbiAgICAgICAgaHggPSBob2xlLngsXHJcbiAgICAgICAgaHkgPSBob2xlLnksXHJcbiAgICAgICAgcXggPSAtSW5maW5pdHksXHJcbiAgICAgICAgbTtcclxuXHJcbiAgICAvLyBmaW5kIGEgc2VnbWVudCBpbnRlcnNlY3RlZCBieSBhIHJheSBmcm9tIHRoZSBob2xlJ3MgbGVmdG1vc3QgcG9pbnQgdG8gdGhlIGxlZnQ7XHJcbiAgICAvLyBzZWdtZW50J3MgZW5kcG9pbnQgd2l0aCBsZXNzZXIgeCB3aWxsIGJlIHBvdGVudGlhbCBjb25uZWN0aW9uIHBvaW50XHJcbiAgICBkbyB7XHJcbiAgICAgICAgaWYgKGh5IDw9IHAueSAmJiBoeSA+PSBwLm5leHQueSkge1xyXG4gICAgICAgICAgICB2YXIgeCA9IHAueCArIChoeSAtIHAueSkgKiAocC5uZXh0LnggLSBwLngpIC8gKHAubmV4dC55IC0gcC55KTtcclxuICAgICAgICAgICAgaWYgKHggPD0gaHggJiYgeCA+IHF4KSB7XHJcbiAgICAgICAgICAgICAgICBxeCA9IHg7XHJcbiAgICAgICAgICAgICAgICBpZiAoeCA9PT0gaHgpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaHkgPT09IHAueSkgcmV0dXJuIHA7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGh5ID09PSBwLm5leHQueSkgcmV0dXJuIHAubmV4dDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG0gPSBwLnggPCBwLm5leHQueCA/IHAgOiBwLm5leHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcCA9IHAubmV4dDtcclxuICAgIH0gd2hpbGUgKHAgIT09IG91dGVyTm9kZSk7XHJcblxyXG4gICAgaWYgKCFtKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICBpZiAoaHggPT09IHF4KSByZXR1cm4gbS5wcmV2OyAvLyBob2xlIHRvdWNoZXMgb3V0ZXIgc2VnbWVudDsgcGljayBsb3dlciBlbmRwb2ludFxyXG5cclxuICAgIC8vIGxvb2sgZm9yIHBvaW50cyBpbnNpZGUgdGhlIHRyaWFuZ2xlIG9mIGhvbGUgcG9pbnQsIHNlZ21lbnQgaW50ZXJzZWN0aW9uIGFuZCBlbmRwb2ludDtcclxuICAgIC8vIGlmIHRoZXJlIGFyZSBubyBwb2ludHMgZm91bmQsIHdlIGhhdmUgYSB2YWxpZCBjb25uZWN0aW9uO1xyXG4gICAgLy8gb3RoZXJ3aXNlIGNob29zZSB0aGUgcG9pbnQgb2YgdGhlIG1pbmltdW0gYW5nbGUgd2l0aCB0aGUgcmF5IGFzIGNvbm5lY3Rpb24gcG9pbnRcclxuXHJcbiAgICB2YXIgc3RvcCA9IG0sXHJcbiAgICAgICAgbXggPSBtLngsXHJcbiAgICAgICAgbXkgPSBtLnksXHJcbiAgICAgICAgdGFuTWluID0gSW5maW5pdHksXHJcbiAgICAgICAgdGFuO1xyXG5cclxuICAgIHAgPSBtLm5leHQ7XHJcblxyXG4gICAgd2hpbGUgKHAgIT09IHN0b3ApIHtcclxuICAgICAgICBpZiAoaHggPj0gcC54ICYmIHAueCA+PSBteCAmJlxyXG4gICAgICAgICAgICAgICAgcG9pbnRJblRyaWFuZ2xlKGh5IDwgbXkgPyBoeCA6IHF4LCBoeSwgbXgsIG15LCBoeSA8IG15ID8gcXggOiBoeCwgaHksIHAueCwgcC55KSkge1xyXG5cclxuICAgICAgICAgICAgdGFuID0gTWF0aC5hYnMoaHkgLSBwLnkpIC8gKGh4IC0gcC54KTsgLy8gdGFuZ2VudGlhbFxyXG5cclxuICAgICAgICAgICAgaWYgKCh0YW4gPCB0YW5NaW4gfHwgKHRhbiA9PT0gdGFuTWluICYmIHAueCA+IG0ueCkpICYmIGxvY2FsbHlJbnNpZGUocCwgaG9sZSkpIHtcclxuICAgICAgICAgICAgICAgIG0gPSBwO1xyXG4gICAgICAgICAgICAgICAgdGFuTWluID0gdGFuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwID0gcC5uZXh0O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtO1xyXG59XHJcblxyXG4vLyBpbnRlcmxpbmsgcG9seWdvbiBub2RlcyBpbiB6LW9yZGVyXHJcbmZ1bmN0aW9uIGluZGV4Q3VydmUoc3RhcnQsIG1pblgsIG1pblksIHNpemUpIHtcclxuICAgIHZhciBwID0gc3RhcnQ7XHJcbiAgICBkbyB7XHJcbiAgICAgICAgaWYgKHAueiA9PT0gbnVsbCkgcC56ID0gek9yZGVyKHAueCwgcC55LCBtaW5YLCBtaW5ZLCBzaXplKTtcclxuICAgICAgICBwLnByZXZaID0gcC5wcmV2O1xyXG4gICAgICAgIHAubmV4dFogPSBwLm5leHQ7XHJcbiAgICAgICAgcCA9IHAubmV4dDtcclxuICAgIH0gd2hpbGUgKHAgIT09IHN0YXJ0KTtcclxuXHJcbiAgICBwLnByZXZaLm5leHRaID0gbnVsbDtcclxuICAgIHAucHJldlogPSBudWxsO1xyXG5cclxuICAgIHNvcnRMaW5rZWQocCk7XHJcbn1cclxuXHJcbi8vIFNpbW9uIFRhdGhhbSdzIGxpbmtlZCBsaXN0IG1lcmdlIHNvcnQgYWxnb3JpdGhtXHJcbi8vIGh0dHA6Ly93d3cuY2hpYXJrLmdyZWVuZW5kLm9yZy51ay9+c2d0YXRoYW0vYWxnb3JpdGhtcy9saXN0c29ydC5odG1sXHJcbmZ1bmN0aW9uIHNvcnRMaW5rZWQobGlzdCkge1xyXG4gICAgdmFyIGksIHAsIHEsIGUsIHRhaWwsIG51bU1lcmdlcywgcFNpemUsIHFTaXplLFxyXG4gICAgICAgIGluU2l6ZSA9IDE7XHJcblxyXG4gICAgZG8ge1xyXG4gICAgICAgIHAgPSBsaXN0O1xyXG4gICAgICAgIGxpc3QgPSBudWxsO1xyXG4gICAgICAgIHRhaWwgPSBudWxsO1xyXG4gICAgICAgIG51bU1lcmdlcyA9IDA7XHJcblxyXG4gICAgICAgIHdoaWxlIChwKSB7XHJcbiAgICAgICAgICAgIG51bU1lcmdlcysrO1xyXG4gICAgICAgICAgICBxID0gcDtcclxuICAgICAgICAgICAgcFNpemUgPSAwO1xyXG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgaW5TaXplOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHBTaXplKys7XHJcbiAgICAgICAgICAgICAgICBxID0gcS5uZXh0WjtcclxuICAgICAgICAgICAgICAgIGlmICghcSkgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHFTaXplID0gaW5TaXplO1xyXG5cclxuICAgICAgICAgICAgd2hpbGUgKHBTaXplID4gMCB8fCAocVNpemUgPiAwICYmIHEpKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHBTaXplID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZSA9IHE7XHJcbiAgICAgICAgICAgICAgICAgICAgcSA9IHEubmV4dFo7XHJcbiAgICAgICAgICAgICAgICAgICAgcVNpemUtLTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocVNpemUgPT09IDAgfHwgIXEpIHtcclxuICAgICAgICAgICAgICAgICAgICBlID0gcDtcclxuICAgICAgICAgICAgICAgICAgICBwID0gcC5uZXh0WjtcclxuICAgICAgICAgICAgICAgICAgICBwU2l6ZS0tO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwLnogPD0gcS56KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZSA9IHA7XHJcbiAgICAgICAgICAgICAgICAgICAgcCA9IHAubmV4dFo7XHJcbiAgICAgICAgICAgICAgICAgICAgcFNpemUtLTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZSA9IHE7XHJcbiAgICAgICAgICAgICAgICAgICAgcSA9IHEubmV4dFo7XHJcbiAgICAgICAgICAgICAgICAgICAgcVNpemUtLTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodGFpbCkgdGFpbC5uZXh0WiA9IGU7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGxpc3QgPSBlO1xyXG5cclxuICAgICAgICAgICAgICAgIGUucHJldlogPSB0YWlsO1xyXG4gICAgICAgICAgICAgICAgdGFpbCA9IGU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHAgPSBxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGFpbC5uZXh0WiA9IG51bGw7XHJcbiAgICAgICAgaW5TaXplICo9IDI7XHJcblxyXG4gICAgfSB3aGlsZSAobnVtTWVyZ2VzID4gMSk7XHJcblxyXG4gICAgcmV0dXJuIGxpc3Q7XHJcbn1cclxuXHJcbi8vIHotb3JkZXIgb2YgYSBwb2ludCBnaXZlbiBjb29yZHMgYW5kIHNpemUgb2YgdGhlIGRhdGEgYm91bmRpbmcgYm94XHJcbmZ1bmN0aW9uIHpPcmRlcih4LCB5LCBtaW5YLCBtaW5ZLCBzaXplKSB7XHJcbiAgICAvLyBjb29yZHMgYXJlIHRyYW5zZm9ybWVkIGludG8gbm9uLW5lZ2F0aXZlIDE1LWJpdCBpbnRlZ2VyIHJhbmdlXHJcbiAgICB4ID0gMzI3NjcgKiAoeCAtIG1pblgpIC8gc2l6ZTtcclxuICAgIHkgPSAzMjc2NyAqICh5IC0gbWluWSkgLyBzaXplO1xyXG5cclxuICAgIHggPSAoeCB8ICh4IDw8IDgpKSAmIDB4MDBGRjAwRkY7XHJcbiAgICB4ID0gKHggfCAoeCA8PCA0KSkgJiAweDBGMEYwRjBGO1xyXG4gICAgeCA9ICh4IHwgKHggPDwgMikpICYgMHgzMzMzMzMzMztcclxuICAgIHggPSAoeCB8ICh4IDw8IDEpKSAmIDB4NTU1NTU1NTU7XHJcblxyXG4gICAgeSA9ICh5IHwgKHkgPDwgOCkpICYgMHgwMEZGMDBGRjtcclxuICAgIHkgPSAoeSB8ICh5IDw8IDQpKSAmIDB4MEYwRjBGMEY7XHJcbiAgICB5ID0gKHkgfCAoeSA8PCAyKSkgJiAweDMzMzMzMzMzO1xyXG4gICAgeSA9ICh5IHwgKHkgPDwgMSkpICYgMHg1NTU1NTU1NTtcclxuXHJcbiAgICByZXR1cm4geCB8ICh5IDw8IDEpO1xyXG59XHJcblxyXG4vLyBmaW5kIHRoZSBsZWZ0bW9zdCBub2RlIG9mIGEgcG9seWdvbiByaW5nXHJcbmZ1bmN0aW9uIGdldExlZnRtb3N0KHN0YXJ0KSB7XHJcbiAgICB2YXIgcCA9IHN0YXJ0LFxyXG4gICAgICAgIGxlZnRtb3N0ID0gc3RhcnQ7XHJcbiAgICBkbyB7XHJcbiAgICAgICAgaWYgKHAueCA8IGxlZnRtb3N0LngpIGxlZnRtb3N0ID0gcDtcclxuICAgICAgICBwID0gcC5uZXh0O1xyXG4gICAgfSB3aGlsZSAocCAhPT0gc3RhcnQpO1xyXG5cclxuICAgIHJldHVybiBsZWZ0bW9zdDtcclxufVxyXG5cclxuLy8gY2hlY2sgaWYgYSBwb2ludCBsaWVzIHdpdGhpbiBhIGNvbnZleCB0cmlhbmdsZVxyXG5mdW5jdGlvbiBwb2ludEluVHJpYW5nbGUoYXgsIGF5LCBieCwgYnksIGN4LCBjeSwgcHgsIHB5KSB7XHJcbiAgICByZXR1cm4gKGN4IC0gcHgpICogKGF5IC0gcHkpIC0gKGF4IC0gcHgpICogKGN5IC0gcHkpID49IDAgJiZcclxuICAgICAgICAgICAoYXggLSBweCkgKiAoYnkgLSBweSkgLSAoYnggLSBweCkgKiAoYXkgLSBweSkgPj0gMCAmJlxyXG4gICAgICAgICAgIChieCAtIHB4KSAqIChjeSAtIHB5KSAtIChjeCAtIHB4KSAqIChieSAtIHB5KSA+PSAwO1xyXG59XHJcblxyXG4vLyBjaGVjayBpZiBhIGRpYWdvbmFsIGJldHdlZW4gdHdvIHBvbHlnb24gbm9kZXMgaXMgdmFsaWQgKGxpZXMgaW4gcG9seWdvbiBpbnRlcmlvcilcclxuZnVuY3Rpb24gaXNWYWxpZERpYWdvbmFsKGEsIGIpIHtcclxuICAgIHJldHVybiBhLm5leHQuaSAhPT0gYi5pICYmIGEucHJldi5pICE9PSBiLmkgJiYgIWludGVyc2VjdHNQb2x5Z29uKGEsIGIpICYmXHJcbiAgICAgICAgICAgbG9jYWxseUluc2lkZShhLCBiKSAmJiBsb2NhbGx5SW5zaWRlKGIsIGEpICYmIG1pZGRsZUluc2lkZShhLCBiKTtcclxufVxyXG5cclxuLy8gc2lnbmVkIGFyZWEgb2YgYSB0cmlhbmdsZVxyXG5mdW5jdGlvbiBhcmVhKHAsIHEsIHIpIHtcclxuICAgIHJldHVybiAocS55IC0gcC55KSAqIChyLnggLSBxLngpIC0gKHEueCAtIHAueCkgKiAoci55IC0gcS55KTtcclxufVxyXG5cclxuLy8gY2hlY2sgaWYgdHdvIHBvaW50cyBhcmUgZXF1YWxcclxuZnVuY3Rpb24gZXF1YWxzKHAxLCBwMikge1xyXG4gICAgcmV0dXJuIHAxLnggPT09IHAyLnggJiYgcDEueSA9PT0gcDIueTtcclxufVxyXG5cclxuLy8gY2hlY2sgaWYgdHdvIHNlZ21lbnRzIGludGVyc2VjdFxyXG5mdW5jdGlvbiBpbnRlcnNlY3RzKHAxLCBxMSwgcDIsIHEyKSB7XHJcbiAgICBpZiAoKGVxdWFscyhwMSwgcTEpICYmIGVxdWFscyhwMiwgcTIpKSB8fFxyXG4gICAgICAgIChlcXVhbHMocDEsIHEyKSAmJiBlcXVhbHMocDIsIHExKSkpIHJldHVybiB0cnVlO1xyXG4gICAgcmV0dXJuIGFyZWEocDEsIHExLCBwMikgPiAwICE9PSBhcmVhKHAxLCBxMSwgcTIpID4gMCAmJlxyXG4gICAgICAgICAgIGFyZWEocDIsIHEyLCBwMSkgPiAwICE9PSBhcmVhKHAyLCBxMiwgcTEpID4gMDtcclxufVxyXG5cclxuLy8gY2hlY2sgaWYgYSBwb2x5Z29uIGRpYWdvbmFsIGludGVyc2VjdHMgYW55IHBvbHlnb24gc2VnbWVudHNcclxuZnVuY3Rpb24gaW50ZXJzZWN0c1BvbHlnb24oYSwgYikge1xyXG4gICAgdmFyIHAgPSBhO1xyXG4gICAgZG8ge1xyXG4gICAgICAgIGlmIChwLmkgIT09IGEuaSAmJiBwLm5leHQuaSAhPT0gYS5pICYmIHAuaSAhPT0gYi5pICYmIHAubmV4dC5pICE9PSBiLmkgJiZcclxuICAgICAgICAgICAgICAgIGludGVyc2VjdHMocCwgcC5uZXh0LCBhLCBiKSkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgcCA9IHAubmV4dDtcclxuICAgIH0gd2hpbGUgKHAgIT09IGEpO1xyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuLy8gY2hlY2sgaWYgYSBwb2x5Z29uIGRpYWdvbmFsIGlzIGxvY2FsbHkgaW5zaWRlIHRoZSBwb2x5Z29uXHJcbmZ1bmN0aW9uIGxvY2FsbHlJbnNpZGUoYSwgYikge1xyXG4gICAgcmV0dXJuIGFyZWEoYS5wcmV2LCBhLCBhLm5leHQpIDwgMCA/XHJcbiAgICAgICAgYXJlYShhLCBiLCBhLm5leHQpID49IDAgJiYgYXJlYShhLCBhLnByZXYsIGIpID49IDAgOlxyXG4gICAgICAgIGFyZWEoYSwgYiwgYS5wcmV2KSA8IDAgfHwgYXJlYShhLCBhLm5leHQsIGIpIDwgMDtcclxufVxyXG5cclxuLy8gY2hlY2sgaWYgdGhlIG1pZGRsZSBwb2ludCBvZiBhIHBvbHlnb24gZGlhZ29uYWwgaXMgaW5zaWRlIHRoZSBwb2x5Z29uXHJcbmZ1bmN0aW9uIG1pZGRsZUluc2lkZShhLCBiKSB7XHJcbiAgICB2YXIgcCA9IGEsXHJcbiAgICAgICAgaW5zaWRlID0gZmFsc2UsXHJcbiAgICAgICAgcHggPSAoYS54ICsgYi54KSAvIDIsXHJcbiAgICAgICAgcHkgPSAoYS55ICsgYi55KSAvIDI7XHJcbiAgICBkbyB7XHJcbiAgICAgICAgaWYgKCgocC55ID4gcHkpICE9PSAocC5uZXh0LnkgPiBweSkpICYmIChweCA8IChwLm5leHQueCAtIHAueCkgKiAocHkgLSBwLnkpIC8gKHAubmV4dC55IC0gcC55KSArIHAueCkpXHJcbiAgICAgICAgICAgIGluc2lkZSA9ICFpbnNpZGU7XHJcbiAgICAgICAgcCA9IHAubmV4dDtcclxuICAgIH0gd2hpbGUgKHAgIT09IGEpO1xyXG5cclxuICAgIHJldHVybiBpbnNpZGU7XHJcbn1cclxuXHJcbi8vIGxpbmsgdHdvIHBvbHlnb24gdmVydGljZXMgd2l0aCBhIGJyaWRnZTsgaWYgdGhlIHZlcnRpY2VzIGJlbG9uZyB0byB0aGUgc2FtZSByaW5nLCBpdCBzcGxpdHMgcG9seWdvbiBpbnRvIHR3bztcclxuLy8gaWYgb25lIGJlbG9uZ3MgdG8gdGhlIG91dGVyIHJpbmcgYW5kIGFub3RoZXIgdG8gYSBob2xlLCBpdCBtZXJnZXMgaXQgaW50byBhIHNpbmdsZSByaW5nXHJcbmZ1bmN0aW9uIHNwbGl0UG9seWdvbihhLCBiKSB7XHJcbiAgICB2YXIgYTIgPSBuZXcgTm9kZShhLmksIGEueCwgYS55KSxcclxuICAgICAgICBiMiA9IG5ldyBOb2RlKGIuaSwgYi54LCBiLnkpLFxyXG4gICAgICAgIGFuID0gYS5uZXh0LFxyXG4gICAgICAgIGJwID0gYi5wcmV2O1xyXG5cclxuICAgIGEubmV4dCA9IGI7XHJcbiAgICBiLnByZXYgPSBhO1xyXG5cclxuICAgIGEyLm5leHQgPSBhbjtcclxuICAgIGFuLnByZXYgPSBhMjtcclxuXHJcbiAgICBiMi5uZXh0ID0gYTI7XHJcbiAgICBhMi5wcmV2ID0gYjI7XHJcblxyXG4gICAgYnAubmV4dCA9IGIyO1xyXG4gICAgYjIucHJldiA9IGJwO1xyXG5cclxuICAgIHJldHVybiBiMjtcclxufVxyXG5cclxuLy8gY3JlYXRlIGEgbm9kZSBhbmQgb3B0aW9uYWxseSBsaW5rIGl0IHdpdGggcHJldmlvdXMgb25lIChpbiBhIGNpcmN1bGFyIGRvdWJseSBsaW5rZWQgbGlzdClcclxuZnVuY3Rpb24gaW5zZXJ0Tm9kZShpLCB4LCB5LCBsYXN0KSB7XHJcbiAgICB2YXIgcCA9IG5ldyBOb2RlKGksIHgsIHkpO1xyXG5cclxuICAgIGlmICghbGFzdCkge1xyXG4gICAgICAgIHAucHJldiA9IHA7XHJcbiAgICAgICAgcC5uZXh0ID0gcDtcclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHAubmV4dCA9IGxhc3QubmV4dDtcclxuICAgICAgICBwLnByZXYgPSBsYXN0O1xyXG4gICAgICAgIGxhc3QubmV4dC5wcmV2ID0gcDtcclxuICAgICAgICBsYXN0Lm5leHQgPSBwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHA7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJlbW92ZU5vZGUocCkge1xyXG4gICAgcC5uZXh0LnByZXYgPSBwLnByZXY7XHJcbiAgICBwLnByZXYubmV4dCA9IHAubmV4dDtcclxuXHJcbiAgICBpZiAocC5wcmV2WikgcC5wcmV2Wi5uZXh0WiA9IHAubmV4dFo7XHJcbiAgICBpZiAocC5uZXh0WikgcC5uZXh0Wi5wcmV2WiA9IHAucHJldlo7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIE5vZGUoaSwgeCwgeSkge1xyXG4gICAgLy8gdmVydGljZSBpbmRleCBpbiBjb29yZGluYXRlcyBhcnJheVxyXG4gICAgdGhpcy5pID0gaTtcclxuXHJcbiAgICAvLyB2ZXJ0ZXggY29vcmRpbmF0ZXNcclxuICAgIHRoaXMueCA9IHg7XHJcbiAgICB0aGlzLnkgPSB5O1xyXG5cclxuICAgIC8vIHByZXZpb3VzIGFuZCBuZXh0IHZlcnRpY2Ugbm9kZXMgaW4gYSBwb2x5Z29uIHJpbmdcclxuICAgIHRoaXMucHJldiA9IG51bGw7XHJcbiAgICB0aGlzLm5leHQgPSBudWxsO1xyXG5cclxuICAgIC8vIHotb3JkZXIgY3VydmUgdmFsdWVcclxuICAgIHRoaXMueiA9IG51bGw7XHJcblxyXG4gICAgLy8gcHJldmlvdXMgYW5kIG5leHQgbm9kZXMgaW4gei1vcmRlclxyXG4gICAgdGhpcy5wcmV2WiA9IG51bGw7XHJcbiAgICB0aGlzLm5leHRaID0gbnVsbDtcclxuXHJcbiAgICAvLyBpbmRpY2F0ZXMgd2hldGhlciB0aGlzIGlzIGEgc3RlaW5lciBwb2ludFxyXG4gICAgdGhpcy5zdGVpbmVyID0gZmFsc2U7XHJcbn1cclxuXHJcbi8vIHJldHVybiBhIHBlcmNlbnRhZ2UgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBwb2x5Z29uIGFyZWEgYW5kIGl0cyB0cmlhbmd1bGF0aW9uIGFyZWE7XHJcbi8vIHVzZWQgdG8gdmVyaWZ5IGNvcnJlY3RuZXNzIG9mIHRyaWFuZ3VsYXRpb25cclxuZWFyY3V0LmRldmlhdGlvbiA9IGZ1bmN0aW9uIChkYXRhLCBob2xlSW5kaWNlcywgZGltLCB0cmlhbmdsZXMpIHtcclxuICAgIHZhciBoYXNIb2xlcyA9IGhvbGVJbmRpY2VzICYmIGhvbGVJbmRpY2VzLmxlbmd0aDtcclxuICAgIHZhciBvdXRlckxlbiA9IGhhc0hvbGVzID8gaG9sZUluZGljZXNbMF0gKiBkaW0gOiBkYXRhLmxlbmd0aDtcclxuXHJcbiAgICB2YXIgcG9seWdvbkFyZWEgPSBNYXRoLmFicyhzaWduZWRBcmVhKGRhdGEsIDAsIG91dGVyTGVuLCBkaW0pKTtcclxuICAgIGlmIChoYXNIb2xlcykge1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBob2xlSW5kaWNlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICB2YXIgc3RhcnQgPSBob2xlSW5kaWNlc1tpXSAqIGRpbTtcclxuICAgICAgICAgICAgdmFyIGVuZCA9IGkgPCBsZW4gLSAxID8gaG9sZUluZGljZXNbaSArIDFdICogZGltIDogZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgICAgIHBvbHlnb25BcmVhIC09IE1hdGguYWJzKHNpZ25lZEFyZWEoZGF0YSwgc3RhcnQsIGVuZCwgZGltKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHZhciB0cmlhbmdsZXNBcmVhID0gMDtcclxuICAgIGZvciAoaSA9IDA7IGkgPCB0cmlhbmdsZXMubGVuZ3RoOyBpICs9IDMpIHtcclxuICAgICAgICB2YXIgYSA9IHRyaWFuZ2xlc1tpXSAqIGRpbTtcclxuICAgICAgICB2YXIgYiA9IHRyaWFuZ2xlc1tpICsgMV0gKiBkaW07XHJcbiAgICAgICAgdmFyIGMgPSB0cmlhbmdsZXNbaSArIDJdICogZGltO1xyXG4gICAgICAgIHRyaWFuZ2xlc0FyZWEgKz0gTWF0aC5hYnMoXHJcbiAgICAgICAgICAgIChkYXRhW2FdIC0gZGF0YVtjXSkgKiAoZGF0YVtiICsgMV0gLSBkYXRhW2EgKyAxXSkgLVxyXG4gICAgICAgICAgICAoZGF0YVthXSAtIGRhdGFbYl0pICogKGRhdGFbYyArIDFdIC0gZGF0YVthICsgMV0pKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcG9seWdvbkFyZWEgPT09IDAgJiYgdHJpYW5nbGVzQXJlYSA9PT0gMCA/IDAgOlxyXG4gICAgICAgIE1hdGguYWJzKCh0cmlhbmdsZXNBcmVhIC0gcG9seWdvbkFyZWEpIC8gcG9seWdvbkFyZWEpO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gc2lnbmVkQXJlYShkYXRhLCBzdGFydCwgZW5kLCBkaW0pIHtcclxuICAgIHZhciBzdW0gPSAwO1xyXG4gICAgZm9yICh2YXIgaSA9IHN0YXJ0LCBqID0gZW5kIC0gZGltOyBpIDwgZW5kOyBpICs9IGRpbSkge1xyXG4gICAgICAgIHN1bSArPSAoZGF0YVtqXSAtIGRhdGFbaV0pICogKGRhdGFbaSArIDFdICsgZGF0YVtqICsgMV0pO1xyXG4gICAgICAgIGogPSBpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN1bTtcclxufVxyXG5cclxuLy8gdHVybiBhIHBvbHlnb24gaW4gYSBtdWx0aS1kaW1lbnNpb25hbCBhcnJheSBmb3JtIChlLmcuIGFzIGluIEdlb0pTT04pIGludG8gYSBmb3JtIEVhcmN1dCBhY2NlcHRzXHJcbmVhcmN1dC5mbGF0dGVuID0gZnVuY3Rpb24gKGRhdGEpIHtcclxuICAgIHZhciBkaW0gPSBkYXRhWzBdWzBdLmxlbmd0aCxcclxuICAgICAgICByZXN1bHQgPSB7dmVydGljZXM6IFtdLCBob2xlczogW10sIGRpbWVuc2lvbnM6IGRpbX0sXHJcbiAgICAgICAgaG9sZUluZGV4ID0gMDtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGRhdGFbaV0ubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgZm9yICh2YXIgZCA9IDA7IGQgPCBkaW07IGQrKykgcmVzdWx0LnZlcnRpY2VzLnB1c2goZGF0YVtpXVtqXVtkXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpID4gMCkge1xyXG4gICAgICAgICAgICBob2xlSW5kZXggKz0gZGF0YVtpIC0gMV0ubGVuZ3RoO1xyXG4gICAgICAgICAgICByZXN1bHQuaG9sZXMucHVzaChob2xlSW5kZXgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn07XHJcbiJdfQ==
13619
+ ;
13620
+ /*global define*/
13621
+ define('Core/Cartesian2',[
13622
+ './defaultValue',
13623
+ './defined',
13624
+ './DeveloperError',
13625
+ './freezeObject',
13626
+ './Math'
13627
+ ], function(
13628
+ defaultValue,
13629
+ defined,
13630
+ DeveloperError,
13631
+ freezeObject,
13632
+ CesiumMath) {
13633
+ 'use strict';
13634
+
13635
+ /**
13636
+ * A 2D Cartesian point.
13637
+ * @alias Cartesian2
13638
+ * @constructor
13639
+ *
13640
+ * @param {Number} [x=0.0] The X component.
13641
+ * @param {Number} [y=0.0] The Y component.
13642
+ *
13643
+ * @see Cartesian3
13644
+ * @see Cartesian4
13645
+ * @see Packable
13646
+ */
13647
+ function Cartesian2(x, y) {
13648
+ /**
13649
+ * The X component.
13650
+ * @type {Number}
13651
+ * @default 0.0
13652
+ */
13653
+ this.x = defaultValue(x, 0.0);
13654
+
13655
+ /**
13656
+ * The Y component.
13657
+ * @type {Number}
13658
+ * @default 0.0
13659
+ */
13660
+ this.y = defaultValue(y, 0.0);
13661
+ }
13662
+
13663
+ /**
13664
+ * Creates a Cartesian2 instance from x and y coordinates.
13665
+ *
13666
+ * @param {Number} x The x coordinate.
13667
+ * @param {Number} y The y coordinate.
13668
+ * @param {Cartesian2} [result] The object onto which to store the result.
13669
+ * @returns {Cartesian2} The modified result parameter or a new Cartesian2 instance if one was not provided.
13670
+ */
13671
+ Cartesian2.fromElements = function(x, y, result) {
13672
+ if (!defined(result)) {
13673
+ return new Cartesian2(x, y);
13674
+ }
13675
+
13676
+ result.x = x;
13677
+ result.y = y;
13678
+ return result;
13679
+ };
13680
+
13681
+ /**
13682
+ * Duplicates a Cartesian2 instance.
13683
+ *
13684
+ * @param {Cartesian2} cartesian The Cartesian to duplicate.
13685
+ * @param {Cartesian2} [result] The object onto which to store the result.
12756
13686
  * @returns {Cartesian2} The modified result parameter or a new Cartesian2 instance if one was not provided. (Returns undefined if cartesian is undefined)
12757
13687
  */
12758
13688
  Cartesian2.clone = function(cartesian, result) {
@@ -12841,10 +13771,61 @@ define('Core/Cartesian2',[
12841
13771
  };
12842
13772
 
12843
13773
  /**
12844
- * Creates a Cartesian2 from two consecutive elements in an array.
12845
- * @function
13774
+ * Flattens an array of Cartesian2s into and array of components.
12846
13775
  *
12847
- * @param {Number[]} array The array whose two consecutive elements correspond to the x and y components, respectively.
13776
+ * @param {Cartesian2[]} array The array of cartesians to pack.
13777
+ * @param {Number[]} result The array onto which to store the result.
13778
+ * @returns {Number[]} The packed array.
13779
+ */
13780
+ Cartesian2.packArray = function(array, result) {
13781
+ if (!defined(array)) {
13782
+ throw new DeveloperError('array is required');
13783
+ }
13784
+
13785
+ var length = array.length;
13786
+ if (!defined(result)) {
13787
+ result = new Array(length * 2);
13788
+ } else {
13789
+ result.length = length * 2;
13790
+ }
13791
+
13792
+ for (var i = 0; i < length; ++i) {
13793
+ Cartesian2.pack(array[i], result, i * 2);
13794
+ }
13795
+ return result;
13796
+ };
13797
+
13798
+ /**
13799
+ * Unpacks an array of cartesian components into and array of Cartesian2s.
13800
+ *
13801
+ * @param {Number[]} array The array of components to unpack.
13802
+ * @param {Cartesian2[]} result The array onto which to store the result.
13803
+ * @returns {Cartesian2[]} The unpacked array.
13804
+ */
13805
+ Cartesian2.unpackArray = function(array, result) {
13806
+ if (!defined(array)) {
13807
+ throw new DeveloperError('array is required');
13808
+ }
13809
+
13810
+ var length = array.length;
13811
+ if (!defined(result)) {
13812
+ result = new Array(length / 2);
13813
+ } else {
13814
+ result.length = length / 2;
13815
+ }
13816
+
13817
+ for (var i = 0; i < length; i += 2) {
13818
+ var index = i / 2;
13819
+ result[index] = Cartesian2.unpack(array, i, result[index]);
13820
+ }
13821
+ return result;
13822
+ };
13823
+
13824
+ /**
13825
+ * Creates a Cartesian2 from two consecutive elements in an array.
13826
+ * @function
13827
+ *
13828
+ * @param {Number[]} array The array whose two consecutive elements correspond to the x and y components, respectively.
12848
13829
  * @param {Number} [startingIndex=0] The offset into the array of the first element, which corresponds to the x component.
12849
13830
  * @param {Cartesian2} [result] The object onto which to store the result.
12850
13831
  * @returns {Cartesian2} The modified result parameter or a new Cartesian2 instance if one was not provided.
@@ -13411,7 +14392,7 @@ define('Core/AxisAlignedBoundingBox',[
13411
14392
  defined,
13412
14393
  DeveloperError,
13413
14394
  Intersect) {
13414
- "use strict";
14395
+ 'use strict';
13415
14396
 
13416
14397
  /**
13417
14398
  * Creates an instance of an AxisAlignedBoundingBox from the minimum and maximum points along the x, y, and z axes.
@@ -13638,7 +14619,7 @@ define('Core/QuadraticRealPolynomial',[
13638
14619
  ], function(
13639
14620
  DeveloperError,
13640
14621
  CesiumMath) {
13641
- "use strict";
14622
+ 'use strict';
13642
14623
 
13643
14624
  /**
13644
14625
  * Defines functions for 2nd order polynomial functions of one variable with only real coefficients.
@@ -13773,7 +14754,7 @@ define('Core/CubicRealPolynomial',[
13773
14754
  ], function(
13774
14755
  DeveloperError,
13775
14756
  QuadraticRealPolynomial) {
13776
- "use strict";
14757
+ 'use strict';
13777
14758
 
13778
14759
  /**
13779
14760
  * Defines functions for 3rd order polynomial functions of one variable with only real coefficients.
@@ -14013,7 +14994,7 @@ define('Core/QuarticRealPolynomial',[
14013
14994
  DeveloperError,
14014
14995
  CesiumMath,
14015
14996
  QuadraticRealPolynomial) {
14016
- "use strict";
14997
+ 'use strict';
14017
14998
 
14018
14999
  /**
14019
15000
  * Defines functions for 4th order polynomial functions of one variable with only real coefficients.
@@ -14337,7 +15318,7 @@ define('Core/Ray',[
14337
15318
  defaultValue,
14338
15319
  defined,
14339
15320
  DeveloperError) {
14340
- "use strict";
15321
+ 'use strict';
14341
15322
 
14342
15323
  /**
14343
15324
  * Represents a ray that extends infinitely from the provided origin in the provided direction.
@@ -14423,7 +15404,7 @@ define('Core/IntersectionTests',[
14423
15404
  QuadraticRealPolynomial,
14424
15405
  QuarticRealPolynomial,
14425
15406
  Ray) {
14426
- "use strict";
15407
+ 'use strict';
14427
15408
 
14428
15409
  /**
14429
15410
  * Functions for computing the intersection between geometries such as rays, planes, triangles, and ellipsoids.
@@ -14478,7 +15459,19 @@ define('Core/IntersectionTests',[
14478
15459
  var scratchTVec = new Cartesian3();
14479
15460
  var scratchQVec = new Cartesian3();
14480
15461
 
14481
- function rayTriangle(ray, p0, p1, p2, cullBackFaces) {
15462
+ /**
15463
+ * Computes the intersection of a ray and a triangle as a parametric distance along the input ray.
15464
+ * @memberof IntersectionTests
15465
+ *
15466
+ * @param {Ray} ray The ray.
15467
+ * @param {Cartesian3} p0 The first vertex of the triangle.
15468
+ * @param {Cartesian3} p1 The second vertex of the triangle.
15469
+ * @param {Cartesian3} p2 The third vertex of the triangle.
15470
+ * @param {Boolean} [cullBackFaces=false] If <code>true</code>, will only compute an intersection with the front face of the triangle
15471
+ * and return undefined for intersections with the back face.
15472
+ * @returns {Number} The intersection as a parametric distance along the ray, or undefined if there is no intersection.
15473
+ */
15474
+ IntersectionTests.rayTriangleParametric = function(ray, p0, p1, p2, cullBackFaces) {
14482
15475
  if (!defined(ray)) {
14483
15476
  throw new DeveloperError('ray is required.');
14484
15477
  }
@@ -14552,10 +15545,10 @@ define('Core/IntersectionTests',[
14552
15545
  }
14553
15546
 
14554
15547
  return t;
14555
- }
15548
+ };
14556
15549
 
14557
15550
  /**
14558
- * Computes the intersection of a ray and a triangle.
15551
+ * Computes the intersection of a ray and a triangle as a Cartesian3 coordinate.
14559
15552
  * @memberof IntersectionTests
14560
15553
  *
14561
15554
  * @param {Ray} ray The ray.
@@ -14568,7 +15561,7 @@ define('Core/IntersectionTests',[
14568
15561
  * @returns {Cartesian3} The intersection point or undefined if there is no intersections.
14569
15562
  */
14570
15563
  IntersectionTests.rayTriangle = function(ray, p0, p1, p2, cullBackFaces, result) {
14571
- var t = rayTriangle(ray, p0, p1, p2, cullBackFaces);
15564
+ var t = IntersectionTests.rayTriangleParametric(ray, p0, p1, p2, cullBackFaces);
14572
15565
  if (!defined(t) || t < 0.0) {
14573
15566
  return undefined;
14574
15567
  }
@@ -14610,7 +15603,7 @@ define('Core/IntersectionTests',[
14610
15603
  Cartesian3.subtract(v1, v0, ray.direction);
14611
15604
  Cartesian3.normalize(ray.direction, ray.direction);
14612
15605
 
14613
- var t = rayTriangle(ray, p0, p1, p2, cullBackFaces);
15606
+ var t = IntersectionTests.rayTriangleParametric(ray, p0, p1, p2, cullBackFaces);
14614
15607
  if (!defined(t) || t < 0.0 || t > Cartesian3.distance(v0, v1)) {
14615
15608
  return undefined;
14616
15609
  }
@@ -14735,6 +15728,7 @@ define('Core/IntersectionTests',[
14735
15728
  }
14736
15729
 
14737
15730
  var ray = scratchLineSegmentRay;
15731
+ Cartesian3.clone(p0, ray.origin);
14738
15732
  var direction = Cartesian3.subtract(p1, p0, ray.direction);
14739
15733
 
14740
15734
  var maxT = Cartesian3.magnitude(direction);
@@ -16026,7 +17020,7 @@ define('Core/binarySearch',[
16026
17020
  ], function(
16027
17021
  defined,
16028
17022
  DeveloperError) {
16029
- "use strict";
17023
+ 'use strict';
16030
17024
 
16031
17025
  /**
16032
17026
  * Finds an item in a sorted array.
@@ -16103,7 +17097,7 @@ define('Core/binarySearch',[
16103
17097
 
16104
17098
  /*global define*/
16105
17099
  define('Core/EarthOrientationParametersSample',[],function() {
16106
- "use strict";
17100
+ 'use strict';
16107
17101
 
16108
17102
  /**
16109
17103
  * A set of Earth Orientation Parameters (EOP) sampled at a time.
@@ -16477,7 +17471,7 @@ return sprintf;
16477
17471
 
16478
17472
  /*global define*/
16479
17473
  define('Core/GregorianDate',[],function() {
16480
- "use strict";
17474
+ 'use strict';
16481
17475
 
16482
17476
  /**
16483
17477
  * Represents a Gregorian date in a more precise format than the JavaScript Date object.
@@ -16538,7 +17532,7 @@ define('Core/isLeapYear',[
16538
17532
  './DeveloperError'
16539
17533
  ], function(
16540
17534
  DeveloperError) {
16541
- "use strict";
17535
+ 'use strict';
16542
17536
 
16543
17537
  /**
16544
17538
  * Determines if a given date is a leap year.
@@ -16564,7 +17558,7 @@ define('Core/isLeapYear',[
16564
17558
 
16565
17559
  /*global define*/
16566
17560
  define('Core/LeapSecond',[],function() {
16567
- "use strict";
17561
+ 'use strict';
16568
17562
 
16569
17563
  /**
16570
17564
  * Describes a single leap second, which is constructed from a {@link JulianDate} and a
@@ -16598,7 +17592,7 @@ define('Core/TimeConstants',[
16598
17592
  './freezeObject'
16599
17593
  ], function(
16600
17594
  freezeObject) {
16601
- "use strict";
17595
+ 'use strict';
16602
17596
 
16603
17597
  /**
16604
17598
  * Constants for time conversions like those done by {@link JulianDate}.
@@ -16691,7 +17685,7 @@ define('Core/TimeStandard',[
16691
17685
  './freezeObject'
16692
17686
  ], function(
16693
17687
  freezeObject) {
16694
- "use strict";
17688
+ 'use strict';
16695
17689
 
16696
17690
  /**
16697
17691
  * Provides the type of time standards which JulianDate can take as input.
@@ -16743,7 +17737,7 @@ define('Core/JulianDate',[
16743
17737
  LeapSecond,
16744
17738
  TimeConstants,
16745
17739
  TimeStandard) {
16746
- "use strict";
17740
+ 'use strict';
16747
17741
 
16748
17742
  var gregorianDateScratch = new GregorianDate();
16749
17743
  var daysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
@@ -16892,8 +17886,8 @@ define('Core/JulianDate',[
16892
17886
  * @alias JulianDate
16893
17887
  * @constructor
16894
17888
  *
16895
- * @param {Number} julianDayNumber The Julian Day Number representing the number of whole days. Fractional days will also be handled correctly.
16896
- * @param {Number} secondsOfDay The number of seconds into the current Julian Day Number. Fractional seconds, negative seconds and seconds greater than a day will be handled correctly.
17889
+ * @param {Number} [julianDayNumber=0.0] The Julian Day Number representing the number of whole days. Fractional days will also be handled correctly.
17890
+ * @param {Number} [secondsOfDay=0.0] The number of seconds into the current Julian Day Number. Fractional seconds, negative seconds and seconds greater than a day will be handled correctly.
16897
17891
  * @param {TimeStandard} [timeStandard=TimeStandard.UTC] The time standard in which the first two parameters are defined.
16898
17892
  */
16899
17893
  function JulianDate(julianDayNumber, secondsOfDay, timeStandard) {
@@ -17716,7 +18710,7 @@ define('Core/clone',[
17716
18710
  './defaultValue'
17717
18711
  ], function(
17718
18712
  defaultValue) {
17719
- "use strict";
18713
+ 'use strict';
17720
18714
 
17721
18715
  /**
17722
18716
  * Clones an object, returning a new object containing the same properties.
@@ -17753,7 +18747,7 @@ define('Core/clone',[
17753
18747
 
17754
18748
  /*global define*/
17755
18749
  define('Core/parseResponseHeaders',[], function() {
17756
- "use strict";
18750
+ 'use strict';
17757
18751
 
17758
18752
  /**
17759
18753
  * Parses the result of XMLHttpRequest's getAllResponseHeaders() method into
@@ -17802,7 +18796,7 @@ define('Core/RequestErrorEvent',[
17802
18796
  ], function(
17803
18797
  defined,
17804
18798
  parseResponseHeaders) {
17805
- "use strict";
18799
+ 'use strict';
17806
18800
 
17807
18801
  /**
17808
18802
  * An event that is raised when a request encounters an error.
@@ -17877,7 +18871,7 @@ define('Core/loadWithXhr',[
17877
18871
  DeveloperError,
17878
18872
  RequestErrorEvent,
17879
18873
  RuntimeError) {
17880
- "use strict";
18874
+ 'use strict';
17881
18875
 
17882
18876
  /**
17883
18877
  * Asynchronously loads the given URL. Returns a promise that will resolve to
@@ -18048,7 +19042,7 @@ define('Core/loadText',[
18048
19042
  './loadWithXhr'
18049
19043
  ], function(
18050
19044
  loadWithXhr) {
18051
- "use strict";
19045
+ 'use strict';
18052
19046
 
18053
19047
  /**
18054
19048
  * Asynchronously loads the given URL as text. Returns a promise that will resolve to
@@ -18098,7 +19092,7 @@ define('Core/loadJson',[
18098
19092
  defined,
18099
19093
  DeveloperError,
18100
19094
  loadText) {
18101
- "use strict";
19095
+ 'use strict';
18102
19096
 
18103
19097
  var defaultHeaders = {
18104
19098
  Accept : 'application/json,*/*;q=0.01'
@@ -18181,7 +19175,7 @@ define('Core/EarthOrientationParameters',[
18181
19175
  RuntimeError,
18182
19176
  TimeConstants,
18183
19177
  TimeStandard) {
18184
- "use strict";
19178
+ 'use strict';
18185
19179
 
18186
19180
  /**
18187
19181
  * Specifies Earth polar motion coordinates and the difference between UT1 and UTC.
@@ -18826,7 +19820,7 @@ define('Core/getAbsoluteUri',[
18826
19820
  defaultValue,
18827
19821
  defined,
18828
19822
  DeveloperError) {
18829
- "use strict";
19823
+ 'use strict';
18830
19824
 
18831
19825
  /**
18832
19826
  * Given a relative Uri and a base Uri, returns the absolute Uri of the relative Uri.
@@ -18853,20 +19847,127 @@ define('Core/getAbsoluteUri',[
18853
19847
  return getAbsoluteUri;
18854
19848
  });
18855
19849
 
19850
+ /*global define*/
19851
+ define('Core/joinUrls',[
19852
+ '../ThirdParty/Uri',
19853
+ './defaultValue',
19854
+ './defined',
19855
+ './DeveloperError'
19856
+ ], function(
19857
+ Uri,
19858
+ defaultValue,
19859
+ defined,
19860
+ DeveloperError) {
19861
+ 'use strict';
19862
+
19863
+ /**
19864
+ * Function for joining URLs in a manner that is aware of query strings and fragments.
19865
+ * This is useful when the base URL has a query string that needs to be maintained
19866
+ * (e.g. a presigned base URL).
19867
+ * @param {String|Uri} first The base URL.
19868
+ * @param {String|Uri} second The URL path to join to the base URL. If this URL is absolute, it is returned unmodified.
19869
+ * @param {Boolean} [appendSlash=true] The boolean determining whether there should be a forward slash between first and second.
19870
+ * @private
19871
+ */
19872
+ function joinUrls(first, second, appendSlash) {
19873
+ if (!defined(first)) {
19874
+ throw new DeveloperError('first is required');
19875
+ }
19876
+ if (!defined(second)) {
19877
+ throw new DeveloperError('second is required');
19878
+ }
19879
+
19880
+ appendSlash = defaultValue(appendSlash, true);
19881
+
19882
+ if (!(first instanceof Uri)) {
19883
+ first = new Uri(first);
19884
+ }
19885
+
19886
+ if (!(second instanceof Uri)) {
19887
+ second = new Uri(second);
19888
+ }
19889
+
19890
+ // Uri.isAbsolute returns false for a URL like '//foo.com'. So if we have an authority but
19891
+ // not a scheme, add a scheme matching the page's scheme.
19892
+ if (defined(second.authority) && !defined(second.scheme)) {
19893
+ if (typeof document !== 'undefined' && defined(document.location) && defined(document.location.href)) {
19894
+ second.scheme = new Uri(document.location.href).scheme;
19895
+ } else {
19896
+ // Not in a browser? Use the first URL's scheme instead.
19897
+ second.scheme = first.scheme;
19898
+ }
19899
+ }
19900
+
19901
+ // If the second URL is absolute, use it for the scheme, authority, and path.
19902
+ var baseUri = first;
19903
+ if (second.isAbsolute()) {
19904
+ baseUri = second;
19905
+ }
19906
+
19907
+ var url = '';
19908
+ if (defined(baseUri.scheme)) {
19909
+ url += baseUri.scheme + ':';
19910
+ }
19911
+ if (defined(baseUri.authority)) {
19912
+ url += '//' + baseUri.authority;
19913
+
19914
+ if (baseUri.path !== '' && baseUri.path !== '/') {
19915
+ url = url.replace(/\/?$/, '/');
19916
+ baseUri.path = baseUri.path.replace(/^\/?/g, '');
19917
+ }
19918
+ }
19919
+
19920
+ // Combine the paths (only if second is relative).
19921
+ if (baseUri === first) {
19922
+ if (appendSlash) {
19923
+ url += first.path.replace(/\/?$/, '/') + second.path.replace(/^\/?/g, '');
19924
+ } else {
19925
+ url += first.path + second.path;
19926
+ }
19927
+ } else {
19928
+ url += second.path;
19929
+ }
19930
+
19931
+ // Combine the queries and fragments.
19932
+ var hasFirstQuery = defined(first.query);
19933
+ var hasSecondQuery = defined(second.query);
19934
+ if (hasFirstQuery && hasSecondQuery) {
19935
+ url += '?' + first.query + '&' + second.query;
19936
+ } else if (hasFirstQuery && !hasSecondQuery) {
19937
+ url += '?' + first.query;
19938
+ } else if (!hasFirstQuery && hasSecondQuery) {
19939
+ url += '?' + second.query;
19940
+ }
19941
+
19942
+ var hasSecondFragment = defined(second.fragment);
19943
+ if (defined(first.fragment) && !hasSecondFragment) {
19944
+ url += '#' + first.fragment;
19945
+ } else if (hasSecondFragment) {
19946
+ url += '#' + second.fragment;
19947
+ }
19948
+
19949
+ return url;
19950
+ }
19951
+
19952
+ return joinUrls;
19953
+ });
19954
+
18856
19955
  /*global define*/
18857
19956
  define('Core/buildModuleUrl',[
18858
19957
  '../ThirdParty/Uri',
18859
19958
  './defined',
18860
19959
  './DeveloperError',
18861
19960
  './getAbsoluteUri',
19961
+ './joinUrls',
18862
19962
  'require'
18863
19963
  ], function(
18864
19964
  Uri,
18865
19965
  defined,
18866
19966
  DeveloperError,
18867
19967
  getAbsoluteUri,
19968
+ joinUrls,
18868
19969
  require) {
18869
- "use strict";
19970
+ 'use strict';
18870
19971
  /*global CESIUM_BASE_URL*/
18871
19972
 
18872
19973
  var cesiumScriptRegex = /((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;
@@ -18910,7 +20011,7 @@ define('Core/buildModuleUrl',[
18910
20011
  }
18911
20012
 
18912
20013
  function buildModuleUrlFromBaseUrl(moduleID) {
18913
- return new Uri(moduleID).resolve(getCesiumBaseUrl()).toString();
20014
+ return joinUrls(getCesiumBaseUrl(), moduleID);
18914
20015
  }
18915
20016
 
18916
20017
  var implementation;
@@ -18961,7 +20062,7 @@ define('Core/buildModuleUrl',[
18961
20062
 
18962
20063
  /*global define*/
18963
20064
  define('Core/Iau2006XysSample',[],function() {
18964
- "use strict";
20065
+ 'use strict';
18965
20066
 
18966
20067
  /**
18967
20068
  * An IAU 2006 XYS value sampled at a particular time.
@@ -19017,7 +20118,7 @@ define('Core/Iau2006XysData',[
19017
20118
  JulianDate,
19018
20119
  loadJson,
19019
20120
  TimeStandard) {
19020
- "use strict";
20121
+ 'use strict';
19021
20122
 
19022
20123
  /**
19023
20124
  * A set of IAU2006 XYS data that is used to evaluate the transformation between the International
@@ -19283,7 +20384,7 @@ define('Core/Quaternion',[
19283
20384
  freezeObject,
19284
20385
  CesiumMath,
19285
20386
  Matrix3) {
19286
- "use strict";
20387
+ 'use strict';
19287
20388
 
19288
20389
  /**
19289
20390
  * A set of 4-dimensional coordinates used to represent rotation in 3-dimensional space.
@@ -20365,6 +21466,7 @@ define('Core/Transforms',[
20365
21466
  './Cartesian2',
20366
21467
  './Cartesian3',
20367
21468
  './Cartesian4',
21469
+ './Cartographic',
20368
21470
  './defaultValue',
20369
21471
  './defined',
20370
21472
  './DeveloperError',
@@ -20384,6 +21486,7 @@ define('Core/Transforms',[
20384
21486
  Cartesian2,
20385
21487
  Cartesian3,
20386
21488
  Cartesian4,
21489
+ Cartographic,
20387
21490
  defaultValue,
20388
21491
  defined,
20389
21492
  DeveloperError,
@@ -20398,7 +21501,7 @@ define('Core/Transforms',[
20398
21501
  Matrix4,
20399
21502
  Quaternion,
20400
21503
  TimeConstants) {
20401
- "use strict";
21504
+ 'use strict';
20402
21505
 
20403
21506
  /**
20404
21507
  * Contains functions for transforming positions to various reference frames.
@@ -20734,6 +21837,38 @@ define('Core/Transforms',[
20734
21837
  return Matrix4.multiply(result, hprMatrix, result);
20735
21838
  };
20736
21839
 
21840
+ /**
21841
+ * Computes a 4x4 transformation matrix from a reference frame with axes computed from the heading-pitch-roll angles
21842
+ * centered at the provided origin to the provided ellipsoid's fixed reference frame. Heading is the rotation from the local north
21843
+ * direction where a positive angle is increasing eastward. Pitch is the rotation from the local east-north plane. Positive pitch angles
21844
+ * are above the plane. Negative pitch angles are below the plane. Roll is the first rotation applied about the local east axis.
21845
+ *
21846
+ * @param {Cartesian3} origin The center point of the local reference frame.
21847
+ * @param {Number} heading The heading angle in radians.
21848
+ * @param {Number} pitch The pitch angle in radians.
21849
+ * @param {Number} roll The roll angle in radians.
21850
+ * @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid whose fixed frame is used in the transformation.
21851
+ * @param {Matrix4} [result] The object onto which to store the result.
21852
+ * @returns {Matrix4} The modified result parameter or a new Matrix4 instance if none was provided.
21853
+ *
21854
+ * @example
21855
+ * // Get the transform from local heading-pitch-roll at cartographic (0.0, 0.0) to Earth's fixed frame.
21856
+ * var center = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
21857
+ * var heading = -Cesium.Math.PI_OVER_TWO;
21858
+ * var pitch = Cesium.Math.PI_OVER_FOUR;
21859
+ * var roll = 0.0;
21860
+ * var transform = Cesium.Transforms.aircraftHeadingPitchRollToFixedFrame(center, heading, pitch, roll);
21861
+ *
21862
+ * @private
21863
+ */
21864
+ Transforms.aircraftHeadingPitchRollToFixedFrame = function(origin, heading, pitch, roll, ellipsoid, result) {
21865
+ // checks for required parameters happen in the called functions
21866
+ var hprQuaternion = Quaternion.fromHeadingPitchRoll(heading, pitch, roll, scratchHPRQuaternion);
21867
+ var hprMatrix = Matrix4.fromTranslationQuaternionRotationScale(Cartesian3.ZERO, hprQuaternion, scratchScale, scratchHPRMatrix4);
21868
+ result = Transforms.northEastDownToFixedFrame(origin, ellipsoid, result);
21869
+ return Matrix4.multiply(result, hprMatrix, result);
21870
+ };
21871
+
20737
21872
  var scratchENUMatrix4 = new Matrix4();
20738
21873
  var scratchHPRMatrix3 = new Matrix3();
20739
21874
 
@@ -20766,6 +21901,37 @@ define('Core/Transforms',[
20766
21901
  return Quaternion.fromRotationMatrix(rotation, result);
20767
21902
  };
20768
21903
 
21904
+ /**
21905
+ * Computes a quaternion from a reference frame with axes computed from the heading-pitch-roll angles
21906
+ * centered at the provided origin. Heading is the rotation from the local north
21907
+ * direction where a positive angle is increasing eastward. Pitch is the rotation from the local east-north plane. Positive pitch angles
21908
+ * are above the plane. Negative pitch angles are below the plane. Roll is the first rotation applied about the local east axis.
21909
+ *
21910
+ * @param {Cartesian3} origin The center point of the local reference frame.
21911
+ * @param {Number} heading The heading angle in radians.
21912
+ * @param {Number} pitch The pitch angle in radians.
21913
+ * @param {Number} roll The roll angle in radians.
21914
+ * @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid whose fixed frame is used in the transformation.
21915
+ * @param {Quaternion} [result] The object onto which to store the result.
21916
+ * @returns {Quaternion} The modified result parameter or a new Quaternion instance if none was provided.
21917
+ *
21918
+ * @example
21919
+ * // Get the quaternion from local heading-pitch-roll at cartographic (0.0, 0.0) to Earth's fixed frame.
21920
+ * var center = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
21921
+ * var heading = -Cesium.Math.PI_OVER_TWO;
21922
+ * var pitch = Cesium.Math.PI_OVER_FOUR;
21923
+ * var roll = 0.0;
21924
+ * var quaternion = Cesium.Transforms.aircraftHeadingPitchRollQuaternion(center, heading, pitch, roll);
21925
+ *
21926
+ * @private
21927
+ */
21928
+ Transforms.aircraftHeadingPitchRollQuaternion = function(origin, heading, pitch, roll, ellipsoid, result) {
21929
+ // checks for required parameters happen in the called functions
21930
+ var transform = Transforms.aircraftHeadingPitchRollToFixedFrame(origin, heading, pitch, roll, ellipsoid, scratchENUMatrix4);
21931
+ var rotation = Matrix4.getRotation(transform, scratchHPRMatrix3);
21932
+ return Quaternion.fromRotationMatrix(rotation, result);
21933
+ };
21934
+
20769
21935
 
20770
21936
  var gmstConstant0 = 6 * 3600 + 41 * 60 + 50.54841;
20771
21937
  var gmstConstant1 = 8640184.812866;
@@ -21165,6 +22331,79 @@ define('Core/Transforms',[
21165
22331
  return result;
21166
22332
  };
21167
22333
 
22334
+ var scratchCartographic = new Cartographic();
22335
+ var scratchCartesian3Projection = new Cartesian3();
22336
+ var scratchCartesian3 = new Cartesian3();
22337
+ var scratchCartesian4Origin = new Cartesian4();
22338
+ var scratchCartesian4NewOrigin = new Cartesian4();
22339
+ var scratchCartesian4NewXAxis = new Cartesian4();
22340
+ var scratchCartesian4NewYAxis = new Cartesian4();
22341
+ var scratchCartesian4NewZAxis = new Cartesian4();
22342
+ var scratchFromENU = new Matrix4();
22343
+ var scratchToENU = new Matrix4();
22344
+
22345
+ /**
22346
+ * @private
22347
+ */
22348
+ Transforms.basisTo2D = function(projection, matrix, result) {
22349
+ if (!defined(projection)) {
22350
+ throw new DeveloperError('projection is required.');
22351
+ }
22352
+ if (!defined(matrix)) {
22353
+ throw new DeveloperError('matrix is required.');
22354
+ }
22355
+ if (!defined(result)) {
22356
+ throw new DeveloperError('result is required.');
22357
+ }
22358
+
22359
+ var ellipsoid = projection.ellipsoid;
22360
+
22361
+ var origin = Matrix4.getColumn(matrix, 3, scratchCartesian4Origin);
22362
+ var cartographic = ellipsoid.cartesianToCartographic(origin, scratchCartographic);
22363
+
22364
+ var fromENU = Transforms.eastNorthUpToFixedFrame(origin, ellipsoid, scratchFromENU);
22365
+ var toENU = Matrix4.inverseTransformation(fromENU, scratchToENU);
22366
+
22367
+ var projectedPosition = projection.project(cartographic, scratchCartesian3Projection);
22368
+ var newOrigin = scratchCartesian4NewOrigin;
22369
+ newOrigin.x = projectedPosition.z;
22370
+ newOrigin.y = projectedPosition.x;
22371
+ newOrigin.z = projectedPosition.y;
22372
+ newOrigin.w = 1.0;
22373
+
22374
+ var xAxis = Matrix4.getColumn(matrix, 0, scratchCartesian3);
22375
+ var xScale = Cartesian3.magnitude(xAxis);
22376
+ var newXAxis = Matrix4.multiplyByVector(toENU, xAxis, scratchCartesian4NewXAxis);
22377
+ Cartesian4.fromElements(newXAxis.z, newXAxis.x, newXAxis.y, 0.0, newXAxis);
22378
+
22379
+ var yAxis = Matrix4.getColumn(matrix, 1, scratchCartesian3);
22380
+ var yScale = Cartesian3.magnitude(yAxis);
22381
+ var newYAxis = Matrix4.multiplyByVector(toENU, yAxis, scratchCartesian4NewYAxis);
22382
+ Cartesian4.fromElements(newYAxis.z, newYAxis.x, newYAxis.y, 0.0, newYAxis);
22383
+
22384
+ var zAxis = Matrix4.getColumn(matrix, 2, scratchCartesian3);
22385
+ var zScale = Cartesian3.magnitude(zAxis);
22386
+
22387
+ var newZAxis = scratchCartesian4NewZAxis;
22388
+ Cartesian3.cross(newXAxis, newYAxis, newZAxis);
22389
+ Cartesian3.normalize(newZAxis, newZAxis);
22390
+ Cartesian3.cross(newYAxis, newZAxis, newXAxis);
22391
+ Cartesian3.normalize(newXAxis, newXAxis);
22392
+ Cartesian3.cross(newZAxis, newXAxis, newYAxis);
22393
+ Cartesian3.normalize(newYAxis, newYAxis);
22394
+
22395
+ Cartesian3.multiplyByScalar(newXAxis, xScale, newXAxis);
22396
+ Cartesian3.multiplyByScalar(newYAxis, yScale, newYAxis);
22397
+ Cartesian3.multiplyByScalar(newZAxis, zScale, newZAxis);
22398
+
22399
+ Matrix4.setColumn(result, 0, newXAxis, result);
22400
+ Matrix4.setColumn(result, 1, newYAxis, result);
22401
+ Matrix4.setColumn(result, 2, newZAxis, result);
22402
+ Matrix4.setColumn(result, 3, newOrigin, result);
22403
+
22404
+ return result;
22405
+ };
22406
+
21168
22407
  return Transforms;
21169
22408
  });
21170
22409
 
@@ -21201,7 +22440,7 @@ define('Core/EllipsoidTangentPlane',[
21201
22440
  Plane,
21202
22441
  Ray,
21203
22442
  Transforms) {
21204
- "use strict";
22443
+ 'use strict';
21205
22444
 
21206
22445
  var scratchCart4 = new Cartesian4();
21207
22446
  /**
@@ -21515,7 +22754,7 @@ define('Core/barycentricCoordinates',[
21515
22754
  Cartesian3,
21516
22755
  defined,
21517
22756
  DeveloperError) {
21518
- "use strict";
22757
+ 'use strict';
21519
22758
 
21520
22759
  var scratchCartesian1 = new Cartesian3();
21521
22760
  var scratchCartesian2 = new Cartesian3();
@@ -21594,7 +22833,7 @@ define('Core/pointInsideTriangle',[
21594
22833
  ], function(
21595
22834
  barycentricCoordinates,
21596
22835
  Cartesian3) {
21597
- "use strict";
22836
+ 'use strict';
21598
22837
 
21599
22838
  var coords = new Cartesian3();
21600
22839
 
@@ -21626,1688 +22865,219 @@ define('Core/pointInsideTriangle',[
21626
22865
  });
21627
22866
 
21628
22867
  /*global define*/
21629
- define('Core/EllipsoidGeodesic',[
21630
- './Cartesian3',
21631
- './Cartographic',
21632
- './defaultValue',
21633
- './defined',
21634
- './defineProperties',
21635
- './DeveloperError',
21636
- './Ellipsoid',
21637
- './Math'
22868
+ define('Core/Queue',[
22869
+ '../Core/defineProperties'
21638
22870
  ], function(
21639
- Cartesian3,
21640
- Cartographic,
21641
- defaultValue,
21642
- defined,
21643
- defineProperties,
21644
- DeveloperError,
21645
- Ellipsoid,
21646
- CesiumMath) {
21647
- "use strict";
21648
-
21649
- function setConstants(ellipsoidGeodesic) {
21650
- var uSquared = ellipsoidGeodesic._uSquared;
21651
- var a = ellipsoidGeodesic._ellipsoid.maximumRadius;
21652
- var b = ellipsoidGeodesic._ellipsoid.minimumRadius;
21653
- var f = (a - b) / a;
21654
-
21655
- var cosineHeading = Math.cos(ellipsoidGeodesic._startHeading);
21656
- var sineHeading = Math.sin(ellipsoidGeodesic._startHeading);
21657
-
21658
- var tanU = (1 - f) * Math.tan(ellipsoidGeodesic._start.latitude);
21659
-
21660
- var cosineU = 1.0 / Math.sqrt(1.0 + tanU * tanU);
21661
- var sineU = cosineU * tanU;
21662
-
21663
- var sigma = Math.atan2(tanU, cosineHeading);
21664
-
21665
- var sineAlpha = cosineU * sineHeading;
21666
- var sineSquaredAlpha = sineAlpha * sineAlpha;
21667
-
21668
- var cosineSquaredAlpha = 1.0 - sineSquaredAlpha;
21669
- var cosineAlpha = Math.sqrt(cosineSquaredAlpha);
21670
-
21671
- var u2Over4 = uSquared / 4.0;
21672
- var u4Over16 = u2Over4 * u2Over4;
21673
- var u6Over64 = u4Over16 * u2Over4;
21674
- var u8Over256 = u4Over16 * u4Over16;
21675
-
21676
- var a0 = (1.0 + u2Over4 - 3.0 * u4Over16 / 4.0 + 5.0 * u6Over64 / 4.0 - 175.0 * u8Over256 / 64.0);
21677
- var a1 = (1.0 - u2Over4 + 15.0 * u4Over16 / 8.0 - 35.0 * u6Over64 / 8.0);
21678
- var a2 = (1.0 - 3.0 * u2Over4 + 35.0 * u4Over16 / 4.0);
21679
- var a3 = (1.0 - 5.0 * u2Over4);
21680
-
21681
- var distanceRatio = a0 * sigma - a1 * Math.sin(2.0 * sigma) * u2Over4 / 2.0 - a2 * Math.sin(4.0 * sigma) * u4Over16 / 16.0 -
21682
- a3 * Math.sin(6.0 * sigma) * u6Over64 / 48.0 - Math.sin(8.0 * sigma) * 5.0 * u8Over256 / 512;
21683
-
21684
- var constants = ellipsoidGeodesic._constants;
21685
-
21686
- constants.a = a;
21687
- constants.b = b;
21688
- constants.f = f;
21689
- constants.cosineHeading = cosineHeading;
21690
- constants.sineHeading = sineHeading;
21691
- constants.tanU = tanU;
21692
- constants.cosineU = cosineU;
21693
- constants.sineU = sineU;
21694
- constants.sigma = sigma;
21695
- constants.sineAlpha = sineAlpha;
21696
- constants.sineSquaredAlpha = sineSquaredAlpha;
21697
- constants.cosineSquaredAlpha = cosineSquaredAlpha;
21698
- constants.cosineAlpha = cosineAlpha;
21699
- constants.u2Over4 = u2Over4;
21700
- constants.u4Over16 = u4Over16;
21701
- constants.u6Over64 = u6Over64;
21702
- constants.u8Over256 = u8Over256;
21703
- constants.a0 = a0;
21704
- constants.a1 = a1;
21705
- constants.a2 = a2;
21706
- constants.a3 = a3;
21707
- constants.distanceRatio = distanceRatio;
21708
- }
21709
-
21710
- function computeC(f, cosineSquaredAlpha) {
21711
- return f * cosineSquaredAlpha * (4.0 + f * (4.0 - 3.0 * cosineSquaredAlpha)) / 16.0;
21712
- }
21713
-
21714
- function computeDeltaLambda(f, sineAlpha, cosineSquaredAlpha, sigma, sineSigma, cosineSigma, cosineTwiceSigmaMidpoint) {
21715
- var C = computeC(f, cosineSquaredAlpha);
21716
-
21717
- return (1.0 - C) * f * sineAlpha * (sigma + C * sineSigma * (cosineTwiceSigmaMidpoint +
21718
- C * cosineSigma * (2.0 * cosineTwiceSigmaMidpoint * cosineTwiceSigmaMidpoint - 1.0)));
21719
- }
21720
-
21721
- function vincentyInverseFormula(ellipsoidGeodesic, major, minor, firstLongitude, firstLatitude, secondLongitude, secondLatitude) {
21722
- var eff = (major - minor) / major;
21723
- var l = secondLongitude - firstLongitude;
21724
-
21725
- var u1 = Math.atan((1 - eff) * Math.tan(firstLatitude));
21726
- var u2 = Math.atan((1 - eff) * Math.tan(secondLatitude));
21727
-
21728
- var cosineU1 = Math.cos(u1);
21729
- var sineU1 = Math.sin(u1);
21730
- var cosineU2 = Math.cos(u2);
21731
- var sineU2 = Math.sin(u2);
21732
-
21733
- var cc = cosineU1 * cosineU2;
21734
- var cs = cosineU1 * sineU2;
21735
- var ss = sineU1 * sineU2;
21736
- var sc = sineU1 * cosineU2;
21737
-
21738
- var lambda = l;
21739
- var lambdaDot = CesiumMath.TWO_PI;
21740
-
21741
- var cosineLambda = Math.cos(lambda);
21742
- var sineLambda = Math.sin(lambda);
21743
-
21744
- var sigma;
21745
- var cosineSigma;
21746
- var sineSigma;
21747
- var cosineSquaredAlpha;
21748
- var cosineTwiceSigmaMidpoint;
21749
-
21750
- do {
21751
- cosineLambda = Math.cos(lambda);
21752
- sineLambda = Math.sin(lambda);
21753
-
21754
- var temp = cs - sc * cosineLambda;
21755
- sineSigma = Math.sqrt(cosineU2 * cosineU2 * sineLambda * sineLambda + temp * temp);
21756
- cosineSigma = ss + cc * cosineLambda;
21757
-
21758
- sigma = Math.atan2(sineSigma, cosineSigma);
21759
-
21760
- var sineAlpha;
21761
-
21762
- if (sineSigma === 0.0) {
21763
- sineAlpha = 0.0;
21764
- cosineSquaredAlpha = 1.0;
21765
- } else {
21766
- sineAlpha = cc * sineLambda / sineSigma;
21767
- cosineSquaredAlpha = 1.0 - sineAlpha * sineAlpha;
21768
- }
21769
-
21770
- lambdaDot = lambda;
21771
-
21772
- cosineTwiceSigmaMidpoint = cosineSigma - 2.0 * ss / cosineSquaredAlpha;
21773
-
21774
- if (isNaN(cosineTwiceSigmaMidpoint)) {
21775
- cosineTwiceSigmaMidpoint = 0.0;
21776
- }
21777
-
21778
- lambda = l + computeDeltaLambda(eff, sineAlpha, cosineSquaredAlpha,
21779
- sigma, sineSigma, cosineSigma, cosineTwiceSigmaMidpoint);
21780
- } while (Math.abs(lambda - lambdaDot) > CesiumMath.EPSILON12);
21781
-
21782
- var uSquared = cosineSquaredAlpha * (major * major - minor * minor) / (minor * minor);
21783
- var A = 1.0 + uSquared * (4096.0 + uSquared * (uSquared * (320.0 - 175.0 * uSquared) - 768.0)) / 16384.0;
21784
- var B = uSquared * (256.0 + uSquared * (uSquared * (74.0 - 47.0 * uSquared) - 128.0)) / 1024.0;
21785
-
21786
- var cosineSquaredTwiceSigmaMidpoint = cosineTwiceSigmaMidpoint * cosineTwiceSigmaMidpoint;
21787
- var deltaSigma = B * sineSigma * (cosineTwiceSigmaMidpoint + B * (cosineSigma *
21788
- (2.0 * cosineSquaredTwiceSigmaMidpoint - 1.0) - B * cosineTwiceSigmaMidpoint *
21789
- (4.0 * sineSigma * sineSigma - 3.0) * (4.0 * cosineSquaredTwiceSigmaMidpoint - 3.0) / 6.0) / 4.0);
21790
-
21791
- var distance = minor * A * (sigma - deltaSigma);
21792
-
21793
- var startHeading = Math.atan2(cosineU2 * sineLambda, cs - sc * cosineLambda);
21794
- var endHeading = Math.atan2(cosineU1 * sineLambda, cs * cosineLambda - sc);
21795
-
21796
- ellipsoidGeodesic._distance = distance;
21797
- ellipsoidGeodesic._startHeading = startHeading;
21798
- ellipsoidGeodesic._endHeading = endHeading;
21799
- ellipsoidGeodesic._uSquared = uSquared;
21800
- }
21801
-
21802
- function computeProperties(ellipsoidGeodesic, start, end, ellipsoid) {
21803
- var firstCartesian = Cartesian3.normalize(ellipsoid.cartographicToCartesian(start, scratchCart2), scratchCart1);
21804
- var lastCartesian = Cartesian3.normalize(ellipsoid.cartographicToCartesian(end, scratchCart2), scratchCart2);
21805
-
21806
- if (Math.abs(Math.abs(Cartesian3.angleBetween(firstCartesian, lastCartesian)) - Math.PI) < 0.0125) {
21807
- throw new DeveloperError('geodesic position is not unique');
21808
- }
21809
-
21810
- vincentyInverseFormula(ellipsoidGeodesic, ellipsoid.maximumRadius, ellipsoid.minimumRadius,
21811
- start.longitude, start.latitude, end.longitude, end.latitude);
21812
-
21813
- ellipsoidGeodesic._start = Cartographic.clone(start, ellipsoidGeodesic._start);
21814
- ellipsoidGeodesic._end = Cartographic.clone(end, ellipsoidGeodesic._end);
21815
- ellipsoidGeodesic._start.height = 0;
21816
- ellipsoidGeodesic._end.height = 0;
21817
-
21818
- setConstants(ellipsoidGeodesic);
21819
- }
22871
+ defineProperties) {
22872
+ 'use strict';
21820
22873
 
21821
- var scratchCart1 = new Cartesian3();
21822
- var scratchCart2 = new Cartesian3();
21823
22874
  /**
21824
- * Initializes a geodesic on the ellipsoid connecting the two provided planetodetic points.
22875
+ * A queue that can enqueue items at the end, and dequeue items from the front.
21825
22876
  *
21826
- * @alias EllipsoidGeodesic
22877
+ * @alias Queue
21827
22878
  * @constructor
21828
- *
21829
- * @param {Cartographic} [start] The initial planetodetic point on the path.
21830
- * @param {Cartographic} [end] The final planetodetic point on the path.
21831
- * @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid on which the geodesic lies.
21832
22879
  */
21833
- function EllipsoidGeodesic(start, end, ellipsoid) {
21834
- var e = defaultValue(ellipsoid, Ellipsoid.WGS84);
21835
- this._ellipsoid = e;
21836
- this._start = new Cartographic();
21837
- this._end = new Cartographic();
21838
-
21839
- this._constants = {};
21840
- this._startHeading = undefined;
21841
- this._endHeading = undefined;
21842
- this._distance = undefined;
21843
- this._uSquared = undefined;
21844
-
21845
- if (defined(start) && defined(end)) {
21846
- computeProperties(this, start, end, e);
21847
- }
22880
+ function Queue() {
22881
+ this._array = [];
22882
+ this._offset = 0;
22883
+ this._length = 0;
21848
22884
  }
21849
22885
 
21850
- defineProperties(EllipsoidGeodesic.prototype, {
21851
- /**
21852
- * Gets the ellipsoid.
21853
- * @memberof EllipsoidGeodesic.prototype
21854
- * @type {Ellipsoid}
21855
- * @readonly
21856
- */
21857
- ellipsoid : {
21858
- get : function() {
21859
- return this._ellipsoid;
21860
- }
21861
- },
21862
-
22886
+ defineProperties(Queue.prototype, {
21863
22887
  /**
21864
- * Gets the surface distance between the start and end point
21865
- * @memberof EllipsoidGeodesic.prototype
22888
+ * The length of the queue.
22889
+ *
22890
+ * @memberof Queue.prototype
22891
+ *
21866
22892
  * @type {Number}
21867
22893
  * @readonly
21868
22894
  */
21869
- surfaceDistance : {
21870
- get : function() {
21871
- if (!defined(this._distance)) {
21872
- throw new DeveloperError('set end positions before getting surfaceDistance');
21873
- }
21874
-
21875
- return this._distance;
21876
- }
21877
- },
21878
-
21879
- /**
21880
- * Gets the initial planetodetic point on the path.
21881
- * @memberof EllipsoidGeodesic.prototype
21882
- * @type {Cartographic}
21883
- * @readonly
21884
- */
21885
- start : {
21886
- get : function() {
21887
- return this._start;
21888
- }
21889
- },
21890
-
21891
- /**
21892
- * Gets the final planetodetic point on the path.
21893
- * @memberof EllipsoidGeodesic.prototype
21894
- * @type {Cartographic}
21895
- * @readonly
21896
- */
21897
- end : {
21898
- get : function() {
21899
- return this._end;
21900
- }
21901
- },
21902
-
21903
- /**
21904
- * Gets the heading at the initial point.
21905
- * @memberof EllipsoidGeodesic.prototype
21906
- * @type {Number}
21907
- * @readonly
21908
- */
21909
- startHeading : {
21910
- get : function() {
21911
- if (!defined(this._distance)) {
21912
- throw new DeveloperError('set end positions before getting startHeading');
21913
- }
21914
-
21915
- return this._startHeading;
21916
- }
21917
- },
21918
-
21919
- /**
21920
- * Gets the heading at the final point.
21921
- * @memberof EllipsoidGeodesic.prototype
21922
- * @type {Number}
21923
- * @readonly
21924
- */
21925
- endHeading : {
22895
+ length : {
21926
22896
  get : function() {
21927
- if (!defined(this._distance)) {
21928
- throw new DeveloperError('set end positions before getting endHeading');
21929
- }
21930
-
21931
- return this._endHeading;
21932
- }
21933
- }
21934
- });
21935
-
21936
- /**
21937
- * Sets the start and end points of the geodesic
21938
- *
21939
- * @param {Cartographic} start The initial planetodetic point on the path.
21940
- * @param {Cartographic} end The final planetodetic point on the path.
21941
- */
21942
- EllipsoidGeodesic.prototype.setEndPoints = function(start, end) {
21943
- if (!defined(start)) {
21944
- throw new DeveloperError('start cartographic position is required');
21945
- }
21946
- if (!defined(end)) {
21947
- throw new DeveloperError('end cartgraphic position is required');
21948
- }
21949
-
21950
- computeProperties(this, start, end, this._ellipsoid);
21951
- };
21952
-
21953
- /**
21954
- * Provides the location of a point at the indicated portion along the geodesic.
21955
- *
21956
- * @param {Number} fraction The portion of the distance between the initial and final points.
21957
- * @returns {Cartographic} The location of the point along the geodesic.
21958
- */
21959
- EllipsoidGeodesic.prototype.interpolateUsingFraction = function(fraction, result) {
21960
- return this.interpolateUsingSurfaceDistance(this._distance * fraction, result);
21961
- };
21962
-
21963
- /**
21964
- * Provides the location of a point at the indicated distance along the geodesic.
21965
- *
21966
- * @param {Number} distance The distance from the inital point to the point of interest along the geodesic
21967
- * @returns {Cartographic} The location of the point along the geodesic.
21968
- *
21969
- * @exception {DeveloperError} start and end must be set before calling funciton interpolateUsingSurfaceDistance
21970
- */
21971
- EllipsoidGeodesic.prototype.interpolateUsingSurfaceDistance = function(distance, result) {
21972
- if (!defined(this._distance)) {
21973
- throw new DeveloperError('start and end must be set before calling funciton interpolateUsingSurfaceDistance');
21974
- }
21975
-
21976
- var constants = this._constants;
21977
-
21978
- var s = constants.distanceRatio + distance / constants.b;
21979
-
21980
- var cosine2S = Math.cos(2.0 * s);
21981
- var cosine4S = Math.cos(4.0 * s);
21982
- var cosine6S = Math.cos(6.0 * s);
21983
- var sine2S = Math.sin(2.0 * s);
21984
- var sine4S = Math.sin(4.0 * s);
21985
- var sine6S = Math.sin(6.0 * s);
21986
- var sine8S = Math.sin(8.0 * s);
21987
-
21988
- var s2 = s * s;
21989
- var s3 = s * s2;
21990
-
21991
- var u8Over256 = constants.u8Over256;
21992
- var u2Over4 = constants.u2Over4;
21993
- var u6Over64 = constants.u6Over64;
21994
- var u4Over16 = constants.u4Over16;
21995
- var sigma = 2.0 * s3 * u8Over256 * cosine2S / 3.0 +
21996
- s * (1.0 - u2Over4 + 7.0 * u4Over16 / 4.0 - 15.0 * u6Over64 / 4.0 + 579.0 * u8Over256 / 64.0 -
21997
- (u4Over16 - 15.0 * u6Over64 / 4.0 + 187.0 * u8Over256 / 16.0) * cosine2S -
21998
- (5.0 * u6Over64 / 4.0 - 115.0 * u8Over256 / 16.0) * cosine4S -
21999
- 29.0 * u8Over256 * cosine6S / 16.0) +
22000
- (u2Over4 / 2.0 - u4Over16 + 71.0 * u6Over64 / 32.0 - 85.0 * u8Over256 / 16.0) * sine2S +
22001
- (5.0 * u4Over16 / 16.0 - 5.0 * u6Over64 / 4.0 + 383.0 * u8Over256 / 96.0) * sine4S -
22002
- s2 * ((u6Over64 - 11.0 * u8Over256 / 2.0) * sine2S + 5.0 * u8Over256 * sine4S / 2.0) +
22003
- (29.0 * u6Over64 / 96.0 - 29.0 * u8Over256 / 16.0) * sine6S +
22004
- 539.0 * u8Over256 * sine8S / 1536.0;
22005
-
22006
- var theta = Math.asin(Math.sin(sigma) * constants.cosineAlpha);
22007
- var latitude = Math.atan(constants.a / constants.b * Math.tan(theta));
22008
-
22009
- // Redefine in terms of relative argument of latitude.
22010
- sigma = sigma - constants.sigma;
22011
-
22012
- var cosineTwiceSigmaMidpoint = Math.cos(2.0 * constants.sigma + sigma);
22013
-
22014
- var sineSigma = Math.sin(sigma);
22015
- var cosineSigma = Math.cos(sigma);
22016
-
22017
- var cc = constants.cosineU * cosineSigma;
22018
- var ss = constants.sineU * sineSigma;
22019
-
22020
- var lambda = Math.atan2(sineSigma * constants.sineHeading, cc - ss * constants.cosineHeading);
22021
-
22022
- var l = lambda - computeDeltaLambda(constants.f, constants.sineAlpha, constants.cosineSquaredAlpha,
22023
- sigma, sineSigma, cosineSigma, cosineTwiceSigmaMidpoint);
22024
-
22025
- if (defined(result)) {
22026
- result.longitude = this._start.longitude + l;
22027
- result.latitude = latitude;
22028
- result.height = 0.0;
22029
- return result;
22030
- }
22031
-
22032
- return new Cartographic(this._start.longitude + l, latitude, 0.0);
22033
- };
22034
-
22035
- return EllipsoidGeodesic;
22036
- });
22037
-
22038
- /*global define*/
22039
- define('Core/isArray',[
22040
- './defined'
22041
- ], function(
22042
- defined) {
22043
- "use strict";
22044
-
22045
- /**
22046
- * Tests an object to see if it is an array.
22047
- * @exports isArray
22048
- *
22049
- * @param {Object} value The value to test.
22050
- * @returns {Boolean} true if the value is an array, false otherwise.
22051
- */
22052
- var isArray = Array.isArray;
22053
- if (!defined(isArray)) {
22054
- isArray = function(value) {
22055
- return Object.prototype.toString.call(value) === '[object Array]';
22056
- };
22057
- }
22058
-
22059
- return isArray;
22060
- });
22061
- /*global define*/
22062
- define('Core/PolylinePipeline',[
22063
- './Cartesian3',
22064
- './Cartographic',
22065
- './defaultValue',
22066
- './defined',
22067
- './DeveloperError',
22068
- './Ellipsoid',
22069
- './EllipsoidGeodesic',
22070
- './IntersectionTests',
22071
- './isArray',
22072
- './Math',
22073
- './Matrix4',
22074
- './Plane'
22075
- ], function(
22076
- Cartesian3,
22077
- Cartographic,
22078
- defaultValue,
22079
- defined,
22080
- DeveloperError,
22081
- Ellipsoid,
22082
- EllipsoidGeodesic,
22083
- IntersectionTests,
22084
- isArray,
22085
- CesiumMath,
22086
- Matrix4,
22087
- Plane) {
22088
- "use strict";
22089
-
22090
- /**
22091
- * @private
22092
- */
22093
- var PolylinePipeline = {};
22094
-
22095
- PolylinePipeline.numberOfPoints = function(p0, p1, minDistance) {
22096
- var distance = Cartesian3.distance(p0, p1);
22097
- return Math.ceil(distance / minDistance);
22098
- };
22099
-
22100
- var cartoScratch = new Cartographic();
22101
- PolylinePipeline.extractHeights = function(positions, ellipsoid) {
22102
- var length = positions.length;
22103
- var heights = new Array(length);
22104
- for (var i = 0; i < length; i++) {
22105
- var p = positions[i];
22106
- heights[i] = ellipsoid.cartesianToCartographic(p, cartoScratch).height;
22107
- }
22108
- return heights;
22109
- };
22110
-
22111
- var wrapLongitudeInversMatrix = new Matrix4();
22112
- var wrapLongitudeOrigin = new Cartesian3();
22113
- var wrapLongitudeXZNormal = new Cartesian3();
22114
- var wrapLongitudeXZPlane = new Plane(Cartesian3.ZERO, 0.0);
22115
- var wrapLongitudeYZNormal = new Cartesian3();
22116
- var wrapLongitudeYZPlane = new Plane(Cartesian3.ZERO, 0.0);
22117
- var wrapLongitudeIntersection = new Cartesian3();
22118
- var wrapLongitudeOffset = new Cartesian3();
22119
-
22120
- var subdivideHeightsScratchArray = [];
22121
-
22122
- function subdivideHeights(numPoints, h0, h1) {
22123
- var heights = subdivideHeightsScratchArray;
22124
- heights.length = numPoints;
22125
-
22126
- var i;
22127
- if (h0 === h1) {
22128
- for (i = 0; i < numPoints; i++) {
22129
- heights[i] = h0;
22130
- }
22131
- return heights;
22132
- }
22133
-
22134
- var dHeight = h1 - h0;
22135
- var heightPerVertex = dHeight / numPoints;
22136
-
22137
- for (i = 0; i < numPoints; i++) {
22138
- var h = h0 + i*heightPerVertex;
22139
- heights[i] = h;
22140
- }
22141
-
22142
- return heights;
22143
- }
22144
-
22145
- var carto1 = new Cartographic();
22146
- var carto2 = new Cartographic();
22147
- var cartesian = new Cartesian3();
22148
- var scaleFirst = new Cartesian3();
22149
- var scaleLast = new Cartesian3();
22150
- var ellipsoidGeodesic = new EllipsoidGeodesic();
22151
-
22152
- //Returns subdivided line scaled to ellipsoid surface starting at p1 and ending at p2.
22153
- //Result includes p1, but not include p2. This function is called for a sequence of line segments,
22154
- //and this prevents duplication of end point.
22155
- function generateCartesianArc(p0, p1, minDistance, ellipsoid, h0, h1, array, offset) {
22156
- var first = ellipsoid.scaleToGeodeticSurface(p0, scaleFirst);
22157
- var last = ellipsoid.scaleToGeodeticSurface(p1, scaleLast);
22158
- var numPoints = PolylinePipeline.numberOfPoints(p0, p1, minDistance);
22159
- var start = ellipsoid.cartesianToCartographic(first, carto1);
22160
- var end = ellipsoid.cartesianToCartographic(last, carto2);
22161
- var heights = subdivideHeights(numPoints, h0, h1);
22162
-
22163
- ellipsoidGeodesic.setEndPoints(start, end);
22164
- var surfaceDistanceBetweenPoints = ellipsoidGeodesic.surfaceDistance / numPoints;
22165
-
22166
- var index = offset;
22167
- start.height = h0;
22168
- var cart = ellipsoid.cartographicToCartesian(start, cartesian);
22169
- Cartesian3.pack(cart, array, index);
22170
- index += 3;
22171
-
22172
- for (var i = 1; i < numPoints; i++) {
22173
- var carto = ellipsoidGeodesic.interpolateUsingSurfaceDistance(i * surfaceDistanceBetweenPoints, carto2);
22174
- carto.height = heights[i];
22175
- cart = ellipsoid.cartographicToCartesian(carto, cartesian);
22176
- Cartesian3.pack(cart, array, index);
22177
- index += 3;
22178
- }
22179
-
22180
- return index;
22181
- }
22182
-
22183
- /**
22184
- * Breaks a {@link Polyline} into segments such that it does not cross the &plusmn;180 degree meridian of an ellipsoid.
22185
- *
22186
- * @param {Cartesian3[]} positions The polyline's Cartesian positions.
22187
- * @param {Matrix4} [modelMatrix=Matrix4.IDENTITY] The polyline's model matrix. Assumed to be an affine
22188
- * transformation matrix, where the upper left 3x3 elements are a rotation matrix, and
22189
- * the upper three elements in the fourth column are the translation. The bottom row is assumed to be [0, 0, 0, 1].
22190
- * The matrix is not verified to be in the proper form.
22191
- * @returns {Object} An object with a <code>positions</code> property that is an array of positions and a
22192
- * <code>segments</code> property.
22193
- *
22194
- *
22195
- * @example
22196
- * var polylines = new Cesium.PolylineCollection();
22197
- * var polyline = polylines.add(...);
22198
- * var positions = polyline.positions;
22199
- * var modelMatrix = polylines.modelMatrix;
22200
- * var segments = Cesium.PolylinePipeline.wrapLongitude(positions, modelMatrix);
22201
- *
22202
- * @see PolygonPipeline.wrapLongitude
22203
- * @see Polyline
22204
- * @see PolylineCollection
22205
- */
22206
- PolylinePipeline.wrapLongitude = function(positions, modelMatrix) {
22207
- var cartesians = [];
22208
- var segments = [];
22209
-
22210
- if (defined(positions) && positions.length > 0) {
22211
- modelMatrix = defaultValue(modelMatrix, Matrix4.IDENTITY);
22212
- var inverseModelMatrix = Matrix4.inverseTransformation(modelMatrix, wrapLongitudeInversMatrix);
22213
-
22214
- var origin = Matrix4.multiplyByPoint(inverseModelMatrix, Cartesian3.ZERO, wrapLongitudeOrigin);
22215
- var xzNormal = Matrix4.multiplyByPointAsVector(inverseModelMatrix, Cartesian3.UNIT_Y, wrapLongitudeXZNormal);
22216
- var xzPlane = Plane.fromPointNormal(origin, xzNormal, wrapLongitudeXZPlane);
22217
- var yzNormal = Matrix4.multiplyByPointAsVector(inverseModelMatrix, Cartesian3.UNIT_X, wrapLongitudeYZNormal);
22218
- var yzPlane = Plane.fromPointNormal(origin, yzNormal, wrapLongitudeYZPlane);
22219
-
22220
- var count = 1;
22221
- cartesians.push(Cartesian3.clone(positions[0]));
22222
- var prev = cartesians[0];
22223
-
22224
- var length = positions.length;
22225
- for (var i = 1; i < length; ++i) {
22226
- var cur = positions[i];
22227
-
22228
- // intersects the IDL if either endpoint is on the negative side of the yz-plane
22229
- if (Plane.getPointDistance(yzPlane, prev) < 0.0 || Plane.getPointDistance(yzPlane, cur) < 0.0) {
22230
- // and intersects the xz-plane
22231
- var intersection = IntersectionTests.lineSegmentPlane(prev, cur, xzPlane, wrapLongitudeIntersection);
22232
- if (defined(intersection)) {
22233
- // move point on the xz-plane slightly away from the plane
22234
- var offset = Cartesian3.multiplyByScalar(xzNormal, 5.0e-9, wrapLongitudeOffset);
22235
- if (Plane.getPointDistance(xzPlane, prev) < 0.0) {
22236
- Cartesian3.negate(offset, offset);
22237
- }
22238
-
22239
- cartesians.push(Cartesian3.add(intersection, offset, new Cartesian3()));
22240
- segments.push(count + 1);
22241
-
22242
- Cartesian3.negate(offset, offset);
22243
- cartesians.push(Cartesian3.add(intersection, offset, new Cartesian3()));
22244
- count = 1;
22245
- }
22246
- }
22247
-
22248
- cartesians.push(Cartesian3.clone(positions[i]));
22249
- count++;
22250
-
22251
- prev = cur;
22252
- }
22253
-
22254
- segments.push(count);
22255
- }
22256
-
22257
- return {
22258
- positions : cartesians,
22259
- lengths : segments
22260
- };
22261
- };
22262
-
22263
- var removeDuplicatesEpsilon = CesiumMath.EPSILON10;
22264
-
22265
- /**
22266
- * Removes adjacent duplicate positions in an array of positions.
22267
- *
22268
- * @param {Cartesian3[]} positions The array of positions.
22269
- * @returns {Cartesian3[]|undefined} A new array of positions with no adjacent duplicate positions or the input array if no duplicates were found.
22270
- *
22271
- * @example
22272
- * // Returns [(1.0, 1.0, 1.0), (2.0, 2.0, 2.0)]
22273
- * var positions = [
22274
- * new Cesium.Cartesian3(1.0, 1.0, 1.0),
22275
- * new Cesium.Cartesian3(1.0, 1.0, 1.0),
22276
- * new Cesium.Cartesian3(2.0, 2.0, 2.0)];
22277
- * var nonDuplicatePositions = Cesium.PolylinePipeline.removeDuplicates(positions);
22278
- */
22279
- PolylinePipeline.removeDuplicates = function(positions) {
22280
- if (!defined(positions)) {
22281
- throw new DeveloperError('positions is required.');
22282
- }
22283
-
22284
- var length = positions.length;
22285
- if (length < 2) {
22286
- return positions;
22287
- }
22288
-
22289
- var i;
22290
- var v0;
22291
- var v1;
22292
-
22293
- for (i = 1; i < length; ++i) {
22294
- v0 = positions[i - 1];
22295
- v1 = positions[i];
22296
- if (Cartesian3.equalsEpsilon(v0, v1, removeDuplicatesEpsilon)) {
22297
- break;
22298
- }
22299
- }
22300
-
22301
- if (i === length) {
22302
- return positions;
22303
- }
22304
-
22305
- var cleanedPositions = positions.slice(0, i);
22306
- for (; i < length; ++i) {
22307
- // v0 is set by either the previous loop, or the previous clean point.
22308
- v1 = positions[i];
22309
- if (!Cartesian3.equalsEpsilon(v0, v1, removeDuplicatesEpsilon)) {
22310
- cleanedPositions.push(Cartesian3.clone(v1));
22311
- v0 = v1;
22312
- }
22313
- }
22314
-
22315
- return cleanedPositions;
22316
- };
22317
-
22318
- /**
22319
- * Subdivides polyline and raises all points to the specified height. Returns an array of numbers to represent the positions.
22320
- * @param {Cartesian3[]} positions The array of type {Cartesian3} representing positions.
22321
- * @param {Number|Number[]} [height=0.0] A number or array of numbers representing the heights of each position.
22322
- * @param {Number} [granularity = CesiumMath.RADIANS_PER_DEGREE] The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
22323
- * @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid on which the positions lie.
22324
- * @returns {Number[]} A new array of positions of type {Number} that have been subdivided and raised to the surface of the ellipsoid.
22325
- *
22326
- * @example
22327
- * var positions = Cesium.Cartesian3.fromDegreesArray([
22328
- * -105.0, 40.0,
22329
- * -100.0, 38.0,
22330
- * -105.0, 35.0,
22331
- * -100.0, 32.0
22332
- * ]);
22333
- * var surfacePositions = Cesium.PolylinePipeline.generateArc({
22334
- * positons: positions
22335
- * });
22336
- */
22337
- PolylinePipeline.generateArc = function(options) {
22338
- if (!defined(options)) {
22339
- options = {};
22340
- }
22341
- var positions = options.positions;
22342
- if (!defined(positions)) {
22343
- throw new DeveloperError('options.positions is required.');
22344
- }
22345
-
22346
- var length = positions.length;
22347
- var ellipsoid = defaultValue(options.ellipsoid, Ellipsoid.WGS84);
22348
- var height = defaultValue(options.height, 0);
22349
-
22350
- if (length < 1) {
22351
- return [];
22352
- } else if (length === 1) {
22353
- var p = ellipsoid.scaleToGeodeticSurface(positions[0], scaleFirst);
22354
- if (height !== 0) {
22355
- var n = ellipsoid.geodeticSurfaceNormal(p, cartesian);
22356
- Cartesian3.multiplyByScalar(n, height, n);
22357
- Cartesian3.add(p, n, p);
22358
- }
22359
-
22360
- return [p.x, p.y, p.z];
22361
- }
22362
-
22363
- var minDistance = options.minDistance;
22364
- if (!defined(minDistance)) {
22365
- var granularity = defaultValue(options.granularity, CesiumMath.RADIANS_PER_DEGREE);
22366
- minDistance = CesiumMath.chordLength(granularity, ellipsoid.maximumRadius);
22367
- }
22368
-
22369
- var numPoints = 0;
22370
- var i;
22371
-
22372
- for (i = 0; i < length -1; i++) {
22373
- numPoints += PolylinePipeline.numberOfPoints(positions[i], positions[i+1], minDistance);
22374
- }
22375
-
22376
- var arrayLength = (numPoints + 1) * 3;
22377
- var newPositions = new Array(arrayLength);
22378
- var offset = 0;
22379
- var hasHeightArray = isArray(height);
22380
-
22381
- for (i = 0; i < length - 1; i++) {
22382
- var p0 = positions[i];
22383
- var p1 = positions[i + 1];
22384
-
22385
- var h0 = hasHeightArray ? height[i] : height;
22386
- var h1 = hasHeightArray ? height[i + 1] : height;
22387
-
22388
- offset = generateCartesianArc(p0, p1, minDistance, ellipsoid, h0, h1, newPositions, offset);
22389
- }
22390
-
22391
- subdivideHeightsScratchArray.length = 0;
22392
-
22393
- var lastPoint = positions[length - 1];
22394
- var carto = ellipsoid.cartesianToCartographic(lastPoint, carto1);
22395
- carto.height = hasHeightArray ? height[length - 1] : height;
22396
- var cart = ellipsoid.cartographicToCartesian(carto, cartesian);
22397
- Cartesian3.pack(cart, newPositions, arrayLength - 3);
22398
-
22399
- return newPositions;
22400
- };
22401
-
22402
- /**
22403
- * Subdivides polyline and raises all points to the specified height. Returns an array of new {Cartesian3} positions.
22404
- * @param {Cartesian3[]} positions The array of type {Cartesian3} representing positions.
22405
- * @param {Number|Number[]} [height=0.0] A number or array of numbers representing the heights of each position.
22406
- * @param {Number} [granularity = CesiumMath.RADIANS_PER_DEGREE] The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
22407
- * @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid on which the positions lie.
22408
- * @returns {Cartesian3[]} A new array of cartesian3 positions that have been subdivided and raised to the surface of the ellipsoid.
22409
- *
22410
- * @example
22411
- * var positions = Cesium.Cartesian3.fromDegreesArray([
22412
- * -105.0, 40.0,
22413
- * -100.0, 38.0,
22414
- * -105.0, 35.0,
22415
- * -100.0, 32.0
22416
- * ]);
22417
- * var surfacePositions = Cesium.PolylinePipeline.generateCartesianArc({
22418
- * positons: positions
22419
- * });
22420
- */
22421
- PolylinePipeline.generateCartesianArc = function(options) {
22422
- var numberArray = PolylinePipeline.generateArc(options);
22423
- var size = numberArray.length/3;
22424
- var newPositions = new Array(size);
22425
- for (var i = 0; i < size; i++) {
22426
- newPositions[i] = Cartesian3.unpack(numberArray, i*3);
22427
- }
22428
- return newPositions;
22429
- };
22430
-
22431
- return PolylinePipeline;
22432
- });
22433
-
22434
- /*global define*/
22435
- define('Core/Queue',[
22436
- '../Core/defineProperties'
22437
- ], function(
22438
- defineProperties) {
22439
- "use strict";
22440
-
22441
- /**
22442
- * A queue that can enqueue items at the end, and dequeue items from the front.
22443
- *
22444
- * @alias Queue
22445
- * @constructor
22446
- */
22447
- function Queue() {
22448
- this._array = [];
22449
- this._offset = 0;
22450
- this._length = 0;
22451
- }
22452
-
22453
- defineProperties(Queue.prototype, {
22454
- /**
22455
- * The length of the queue.
22456
- *
22457
- * @memberof Queue.prototype
22458
- *
22459
- * @type {Number}
22460
- * @readonly
22461
- */
22462
- length : {
22463
- get : function() {
22464
- return this._length;
22465
- }
22466
- }
22467
- });
22468
-
22469
- /**
22470
- * Enqueues the specified item.
22471
- *
22472
- * @param {Object} item The item to enqueue.
22473
- */
22474
- Queue.prototype.enqueue = function(item) {
22475
- this._array.push(item);
22476
- this._length++;
22477
- };
22478
-
22479
- /**
22480
- * Dequeues an item. Returns undefined if the queue is empty.
22481
- *
22482
- * @returns {Object} The the dequeued item.
22483
- */
22484
- Queue.prototype.dequeue = function() {
22485
- if (this._length === 0) {
22486
- return undefined;
22487
- }
22488
-
22489
- var array = this._array;
22490
- var offset = this._offset;
22491
- var item = array[offset];
22492
- array[offset] = undefined;
22493
-
22494
- offset++;
22495
- if ((offset > 10) && (offset * 2 > array.length)) {
22496
- //compact array
22497
- this._array = array.slice(offset);
22498
- offset = 0;
22499
- }
22500
-
22501
- this._offset = offset;
22502
- this._length--;
22503
-
22504
- return item;
22505
- };
22506
-
22507
- /**
22508
- * Returns the item at the front of the queue. Returns undefined if the queue is empty.
22509
- *
22510
- * @returns {Object} The item at the front of the queue.
22511
- */
22512
- Queue.prototype.peek = function() {
22513
- if (this._length === 0) {
22514
- return undefined;
22515
- }
22516
-
22517
- return this._array[this._offset];
22518
- };
22519
-
22520
- /**
22521
- * Check whether this queue contains the specified item.
22522
- *
22523
- * @param {Object} item The item to search for.
22524
- */
22525
- Queue.prototype.contains = function(item) {
22526
- return this._array.indexOf(item) !== -1;
22527
- };
22528
-
22529
- /**
22530
- * Remove all items from the queue.
22531
- */
22532
- Queue.prototype.clear = function() {
22533
- this._array.length = this._offset = this._length = 0;
22534
- };
22535
-
22536
- /**
22537
- * Sort the items in the queue in-place.
22538
- *
22539
- * @param {Queue~Comparator} compareFunction A function that defines the sort order.
22540
- */
22541
- Queue.prototype.sort = function(compareFunction) {
22542
- if (this._offset > 0) {
22543
- //compact array
22544
- this._array = this._array.slice(this._offset);
22545
- this._offset = 0;
22546
- }
22547
-
22548
- this._array.sort(compareFunction);
22549
- };
22550
-
22551
- /**
22552
- * A function used to compare two items while sorting a queue.
22553
- * @callback Queue~Comparator
22554
- *
22555
- * @param {Object} a An item in the array.
22556
- * @param {Object} b An item in the array.
22557
- * @returns {Number} Returns a negative value if <code>a</code> is less than <code>b</code>,
22558
- * a positive value if <code>a</code> is greater than <code>b</code>, or
22559
- * 0 if <code>a</code> is equal to <code>b</code>.
22560
- *
22561
- * @example
22562
- * function compareNumbers(a, b) {
22563
- * return a - b;
22564
- * }
22565
- */
22566
-
22567
- return Queue;
22568
- });
22569
-
22570
- /*global define*/
22571
- define('Core/WindingOrder',[
22572
- '../Renderer/WebGLConstants',
22573
- './freezeObject'
22574
- ], function(
22575
- WebGLConstants,
22576
- freezeObject) {
22577
- "use strict";
22578
-
22579
- /**
22580
- * Winding order defines the order of vertices for a triangle to be considered front-facing.
22581
- *
22582
- * @exports WindingOrder
22583
- */
22584
- var WindingOrder = {
22585
- /**
22586
- * Vertices are in clockwise order.
22587
- *
22588
- * @type {Number}
22589
- * @constant
22590
- */
22591
- CLOCKWISE : WebGLConstants.CW,
22592
-
22593
- /**
22594
- * Vertices are in counter-clockwise order.
22595
- *
22596
- * @type {Number}
22597
- * @constant
22598
- */
22599
- COUNTER_CLOCKWISE : WebGLConstants.CCW,
22600
-
22601
- /**
22602
- * @private
22603
- */
22604
- validate : function(windingOrder) {
22605
- return windingOrder === WindingOrder.CLOCKWISE ||
22606
- windingOrder === WindingOrder.COUNTER_CLOCKWISE;
22607
- }
22608
- };
22609
-
22610
- return freezeObject(WindingOrder);
22611
- });
22612
- /*global define*/
22613
- define('Core/PolygonPipeline',[
22614
- './Cartesian2',
22615
- './Cartesian3',
22616
- './ComponentDatatype',
22617
- './defaultValue',
22618
- './defined',
22619
- './DeveloperError',
22620
- './Ellipsoid',
22621
- './EllipsoidTangentPlane',
22622
- './Geometry',
22623
- './GeometryAttribute',
22624
- './Math',
22625
- './pointInsideTriangle',
22626
- './PolylinePipeline',
22627
- './PrimitiveType',
22628
- './Queue',
22629
- './WindingOrder'
22630
- ], function(
22631
- Cartesian2,
22632
- Cartesian3,
22633
- ComponentDatatype,
22634
- defaultValue,
22635
- defined,
22636
- DeveloperError,
22637
- Ellipsoid,
22638
- EllipsoidTangentPlane,
22639
- Geometry,
22640
- GeometryAttribute,
22641
- CesiumMath,
22642
- pointInsideTriangle,
22643
- PolylinePipeline,
22644
- PrimitiveType,
22645
- Queue,
22646
- WindingOrder) {
22647
- "use strict";
22648
-
22649
- var uScratch = new Cartesian2();
22650
- var vScratch = new Cartesian2();
22651
- function isTipConvex(p0, p1, p2) {
22652
- var u = Cartesian2.subtract(p1, p0, uScratch);
22653
- var v = Cartesian2.subtract(p2, p1, vScratch);
22654
-
22655
- // Use the sign of the z component of the cross product
22656
- return ((u.x * v.y) - (u.y * v.x)) >= 0.0;
22657
- }
22658
-
22659
- /**
22660
- * Returns the index of the vertex with the maximum X value.
22661
- *
22662
- * @param {Cartesian2[]} positions An array of the Cartesian points defining the polygon's vertices.
22663
- * @returns {Number} The index of the positions with the maximum X value.
22664
- *
22665
- * @private
22666
- */
22667
- function getRightmostPositionIndex(positions) {
22668
- var maximumX = positions[0].x;
22669
- var rightmostPositionIndex = 0;
22670
- for ( var i = 0; i < positions.length; i++) {
22671
- if (positions[i].x > maximumX) {
22672
- maximumX = positions[i].x;
22673
- rightmostPositionIndex = i;
22674
- }
22675
- }
22676
- return rightmostPositionIndex;
22677
- }
22678
-
22679
- /**
22680
- * Returns the index of the ring that contains the rightmost vertex.
22681
- *
22682
- * @param {Cartesian2[]} rings An array of arrays of Cartesians. Each array contains the vertices defining a polygon.
22683
- * @returns {Number} The index of the ring containing the rightmost vertex.
22684
- *
22685
- * @private
22686
- */
22687
- function getRightmostRingIndex(rings) {
22688
- var rightmostX = rings[0][0].x;
22689
- var rightmostRingIndex = 0;
22690
- for ( var ring = 0; ring < rings.length; ring++) {
22691
- var maximumX = rings[ring][getRightmostPositionIndex(rings[ring])].x;
22692
- if (maximumX > rightmostX) {
22693
- rightmostX = maximumX;
22694
- rightmostRingIndex = ring;
22695
- }
22696
- }
22697
-
22698
- return rightmostRingIndex;
22699
- }
22700
-
22701
- /**
22702
- * Returns a list containing the reflex vertices for a given polygon.
22703
- *
22704
- * @param {Cartesian2[]} polygon An array of Cartesian elements defining the polygon.
22705
- * @returns {Cartesian2[]}
22706
- *
22707
- * @private
22708
- */
22709
- function getReflexVertices(polygon) {
22710
- var reflexVertices = [];
22711
- for ( var i = 0; i < polygon.length; i++) {
22712
- var p0 = polygon[((i - 1) + polygon.length) % polygon.length];
22713
- var p1 = polygon[i];
22714
- var p2 = polygon[(i + 1) % polygon.length];
22715
-
22716
- if (!isTipConvex(p0, p1, p2)) {
22717
- reflexVertices.push(p1);
22718
- }
22719
- }
22720
- return reflexVertices;
22721
- }
22722
-
22723
- /**
22724
- * Returns true if the given point is contained in the list of positions.
22725
- *
22726
- * @param {Cartesian2[]} positions A list of Cartesian elements defining a polygon.
22727
- * @param {Cartesian2} point The point to check.
22728
- * @returns {Number} The index of <code>point</code> in <code>positions</code> or -1 if it was not found.
22729
- *
22730
- * @private
22731
- */
22732
- function isVertex(positions, point) {
22733
- for ( var i = 0; i < positions.length; i++) {
22734
- if (Cartesian2.equals(point, positions[i])) {
22735
- return i;
22736
- }
22737
- }
22738
- return -1;
22739
- }
22740
-
22741
- /**
22742
- * Given a point inside a polygon, find the nearest point directly to the right that lies on one of the polygon's edges.
22743
- *
22744
- * @param {Cartesian2} point A point inside the polygon defined by <code>ring</code>.
22745
- * @param {Cartesian2[]} ring A list of Cartesian points defining a polygon.
22746
- * @param {Number[]} [edgeIndices] An array containing the indices two endpoints of the edge containing the intersection.
22747
- * @returns {Cartesian2} The intersection point.
22748
- *
22749
- * @private
22750
- */
22751
- var distScratch = new Cartesian2();
22752
- function intersectPointWithRing(point, ring, edgeIndices) {
22753
- edgeIndices = defaultValue(edgeIndices, []);
22754
-
22755
- var minDistance = Number.MAX_VALUE;
22756
- var rightmostVertexIndex = getRightmostPositionIndex(ring);
22757
- var intersection = new Cartesian2(ring[rightmostVertexIndex].x, point.y);
22758
- edgeIndices.push(rightmostVertexIndex);
22759
- edgeIndices.push((rightmostVertexIndex + 1) % ring.length);
22760
-
22761
- var boundaryMinX = ring[0].x;
22762
- var boundaryMaxX = boundaryMinX;
22763
- for ( var i = 1; i < ring.length; ++i) {
22764
- if (ring[i].x < boundaryMinX) {
22765
- boundaryMinX = ring[i].x;
22766
- } else if (ring[i].x > boundaryMaxX) {
22767
- boundaryMaxX = ring[i].x;
22768
- }
22769
- }
22770
- boundaryMaxX += (boundaryMaxX - boundaryMinX);
22771
- var point2 = new Cartesian3(boundaryMaxX, point.y, 0.0);
22772
-
22773
- // Find the nearest intersection.
22774
- for (i = 0; i < ring.length; i++) {
22775
- var v1 = ring[i];
22776
- var v2 = ring[(i + 1) % ring.length];
22777
-
22778
- if (((v1.x >= point.x) || (v2.x >= point.x)) && (((v1.y >= point.y) && (v2.y <= point.y)) || ((v1.y <= point.y) && (v2.y >= point.y)))) {
22779
- var temp = ((v2.y - v1.y) * (point2.x - point.x)) - ((v2.x - v1.x) * (point2.y - point.y));
22780
- if (temp !== 0.0) {
22781
- temp = 1.0 / temp;
22782
- var ua = (((v2.x - v1.x) * (point.y - v1.y)) - ((v2.y - v1.y) * (point.x - v1.x))) * temp;
22783
- var ub = (((point2.x - point.x) * (point.y - v1.y)) - ((point2.y - point.y) * (point.x - v1.x))) * temp;
22784
- if ((ua >= 0.0) && (ua <= 1.0) && (ub >= 0.0) && (ub <= 1.0)) {
22785
- var tempIntersection = new Cartesian2(point.x + ua * (point2.x - point.x), point.y + ua * (point2.y - point.y));
22786
- var dist = Cartesian2.subtract(tempIntersection, point, distScratch);
22787
- temp = Cartesian2.magnitudeSquared(dist);
22788
- if (temp < minDistance) {
22789
- intersection = tempIntersection;
22790
- minDistance = temp;
22791
- edgeIndices[0] = i;
22792
- edgeIndices[1] = (i + 1) % ring.length;
22793
- }
22794
- }
22795
- }
22796
- }
22797
- }
22798
-
22799
- return intersection;
22800
- }
22801
-
22802
- /**
22803
- * Given an outer ring and multiple inner rings, determine the point on the outer ring that is visible
22804
- * to the rightmost vertex of the rightmost inner ring.
22805
- *
22806
- * @param {Cartesian2[]} outerRing An array of Cartesian points defining the outer boundary of the polygon.
22807
- * @param {Cartesian2[]} innerRings An array of arrays of Cartesian points, where each array represents a hole in the polygon.
22808
- * @returns {Number} The index of the vertex in <code>outerRing</code> that is mutually visible to the rightmost vertex in <code>inenrRing</code>.
22809
- *
22810
- * @private
22811
- */
22812
- var v1Scratch = new Cartesian2(1.0, 0.0);
22813
- var v2Scratch = new Cartesian2();
22814
- function getMutuallyVisibleVertexIndex(outerRing, innerRings) {
22815
- var innerRingIndex = getRightmostRingIndex(innerRings);
22816
- var innerRing = innerRings[innerRingIndex];
22817
- var innerRingVertexIndex = getRightmostPositionIndex(innerRing);
22818
- var innerRingVertex = innerRing[innerRingVertexIndex];
22819
- var edgeIndices = [];
22820
- var intersection = intersectPointWithRing(innerRingVertex, outerRing, edgeIndices);
22821
-
22822
- var visibleVertex = isVertex(outerRing, intersection);
22823
- if (visibleVertex !== -1) {
22824
- return visibleVertex;
22825
- }
22826
-
22827
- // Set P to be the edge endpoint closest to the inner ring vertex
22828
- var d1 = Cartesian2.magnitudeSquared(Cartesian2.subtract(outerRing[edgeIndices[0]], innerRingVertex, v1Scratch));
22829
- var d2 = Cartesian2.magnitudeSquared(Cartesian2.subtract(outerRing[edgeIndices[1]], innerRingVertex, v1Scratch));
22830
- var p = (d1 < d2) ? outerRing[edgeIndices[0]] : outerRing[edgeIndices[1]];
22831
-
22832
- var reflexVertices = getReflexVertices(outerRing);
22833
- var reflexIndex = reflexVertices.indexOf(p);
22834
- if (reflexIndex !== -1) {
22835
- reflexVertices.splice(reflexIndex, 1); // Do not include p if it happens to be reflex.
22836
- }
22837
-
22838
- var pointsInside = [];
22839
- for ( var i = 0; i < reflexVertices.length; i++) {
22840
- var vertex = reflexVertices[i];
22841
- if (pointInsideTriangle(vertex, innerRingVertex, intersection, p)) {
22842
- pointsInside.push(vertex);
22843
- }
22844
- }
22845
-
22846
- // If all reflexive vertices are outside the triangle formed by points
22847
- // innerRingVertex, intersection and P, then P is the visible vertex.
22848
- // Otherwise, return the reflex vertex that minimizes the angle between <1,0> and <k, reflex>.
22849
- var minAngle = Number.MAX_VALUE;
22850
- if (pointsInside.length > 0) {
22851
- var v1 = Cartesian2.fromElements(1.0, 0.0, v1Scratch);
22852
- for (i = 0; i < pointsInside.length; i++) {
22853
- var v2 = Cartesian2.subtract(pointsInside[i], innerRingVertex, v2Scratch);
22854
- var denominator = Cartesian2.magnitude(v1) * Cartesian2.magnitudeSquared(v2);
22855
- if (denominator !== 0) {
22856
- var angle = Math.abs(CesiumMath.acosClamped(Cartesian2.dot(v1, v2) / denominator));
22857
- if (angle < minAngle) {
22858
- minAngle = angle;
22859
- p = pointsInside[i];
22860
- }
22861
- }
22862
- }
22863
- }
22864
-
22865
- return outerRing.indexOf(p);
22866
- }
22867
-
22868
- /**
22869
- * Given a polygon defined by an outer ring with one or more inner rings (holes), return a single list of points representing
22870
- * a polygon with the rightmost hole added to it. The added hole is removed from <code>innerRings</code>.
22871
- *
22872
- * @param {Cartesian2[]} outerRing An array of Cartesian points defining the outer boundary of the polygon.
22873
- * @param {Cartesian2[]} innerRings An array of arrays of Cartesian points, where each array represents a hole in the polygon.
22874
- * @returns {Cartesian2[]} A single list of Cartesian points defining the polygon, including the eliminated inner ring.
22875
- *
22876
- * @private
22877
- */
22878
- function eliminateHole(outerRing, innerRings, ellipsoid) {
22879
- // Check that the holes are defined in the winding order opposite that of the outer ring.
22880
- var windingOrder = PolygonPipeline.computeWindingOrder2D(outerRing);
22881
- for ( var i = 0; i < innerRings.length; i++) {
22882
- var ring = innerRings[i];
22883
-
22884
- // Ensure each hole's first and last points are the same.
22885
- if (!Cartesian3.equals(ring[0], ring[ring.length - 1])) {
22886
- ring.push(ring[0]);
22887
- }
22888
-
22889
- var innerWindingOrder = PolygonPipeline.computeWindingOrder2D(ring);
22890
- if (innerWindingOrder === windingOrder) {
22891
- ring.reverse();
22892
- }
22893
- }
22894
-
22895
- // Project points onto a tangent plane to find the mutually visible vertex.
22896
- var tangentPlane = EllipsoidTangentPlane.fromPoints(outerRing, ellipsoid);
22897
- var tangentOuterRing = tangentPlane.projectPointsOntoPlane(outerRing);
22898
- var tangentInnerRings = [];
22899
- for (i = 0; i < innerRings.length; i++) {
22900
- tangentInnerRings.push(tangentPlane.projectPointsOntoPlane(innerRings[i]));
22901
- }
22902
-
22903
- var visibleVertexIndex = getMutuallyVisibleVertexIndex(tangentOuterRing, tangentInnerRings);
22904
- var innerRingIndex = getRightmostRingIndex(tangentInnerRings);
22905
- var innerRingVertexIndex = getRightmostPositionIndex(tangentInnerRings[innerRingIndex]);
22906
-
22907
- var innerRing = innerRings[innerRingIndex];
22908
- var newPolygonVertices = [];
22909
-
22910
- for (i = 0; i < outerRing.length; i++) {
22911
- newPolygonVertices.push(outerRing[i]);
22912
- }
22913
-
22914
- var j;
22915
- var holeVerticesToAdd = [];
22916
-
22917
- // If the rightmost inner vertex is not the starting and ending point of the ring,
22918
- // then some other point is duplicated in the inner ring and should be skipped once.
22919
- if (innerRingVertexIndex !== 0) {
22920
- for (j = 0; j <= innerRing.length; j++) {
22921
- var index = (j + innerRingVertexIndex) % innerRing.length;
22922
- if (index !== 0) {
22923
- holeVerticesToAdd.push(innerRing[index]);
22924
- }
22925
- }
22926
- } else {
22927
- for (j = 0; j < innerRing.length; j++) {
22928
- holeVerticesToAdd.push(innerRing[(j + innerRingVertexIndex) % innerRing.length]);
22929
- }
22930
- }
22931
-
22932
- var lastVisibleVertexIndex = newPolygonVertices.lastIndexOf(outerRing[visibleVertexIndex]);
22933
-
22934
- holeVerticesToAdd.push(outerRing[lastVisibleVertexIndex]);
22935
-
22936
- var front = newPolygonVertices.slice(0, lastVisibleVertexIndex + 1);
22937
- var back = newPolygonVertices.slice(lastVisibleVertexIndex + 1);
22938
- newPolygonVertices = front.concat(holeVerticesToAdd, back);
22939
-
22940
- innerRings.splice(innerRingIndex, 1);
22941
-
22942
- return newPolygonVertices;
22943
- }
22944
-
22945
- function getRandomIndex(length) {
22946
- var random = CesiumMath.nextRandomNumber();
22947
- var i = Math.floor(random * length);
22948
- if (i === length) {
22949
- i--;
22950
- }
22951
- return i;
22952
- }
22953
-
22954
- function indexedEdgeCrossZ(p0Index, p1Index, vertexIndex, array) {
22955
- var p0 = array[p0Index].position;
22956
- var p1 = array[p1Index].position;
22957
- var v = array[vertexIndex].position;
22958
-
22959
- var vx = v.x;
22960
- var vy = v.y;
22961
-
22962
- // (p0 - v).cross(p1 - v).z
22963
- var leftX = p0.x - vx;
22964
- var leftY = p0.y - vy;
22965
- var rightX = p1.x - vx;
22966
- var rightY = p1.y - vy;
22967
-
22968
- return leftX * rightY - leftY * rightX;
22969
- }
22970
-
22971
- function crossZ(p0, p1) {
22972
- // p0.cross(p1).z
22973
- return p0.x * p1.y - p0.y * p1.x;
22974
- }
22975
-
22976
- /**
22977
- * Checks to make sure vertex is not superfluous.
22978
- *
22979
- * @param {Number} index Index of vertex.
22980
- * @param {Number} pArray Array of vertices.
22981
- *
22982
- * @exception {DeveloperError} Superfluous vertex found.
22983
- *
22984
- * @private
22985
- */
22986
- function validateVertex(index, pArray) {
22987
- var length = pArray.length;
22988
- var before = CesiumMath.mod(index - 1, length);
22989
- var after = CesiumMath.mod(index + 1, length);
22990
-
22991
- // check if adjacent edges are parallel
22992
- if (indexedEdgeCrossZ(before, after, index, pArray) === 0.0) {
22993
- return false;
22994
- }
22995
-
22996
- return true;
22997
- }
22998
-
22999
- /**
23000
- * Checks whether cut parallel to side is internal.
23001
- *
23002
- * e.g.
23003
- *
23004
- * 7_________6
23005
- * | |
23006
- * | 4 ______|
23007
- * | | 5
23008
- * | |______2 Is cut from 1 to 6 internal? No.
23009
- * | 3 |
23010
- * |_________|
23011
- * 0 1
23012
- *
23013
- * Note that this function simply checks whether the cut is longer or shorter.
23014
- *
23015
- * An important valid cut:
23016
- *
23017
- * Polygon:
23018
- *
23019
- * 0 ___2__4
23020
- * | /\ |
23021
- * | / \ | Is cut 0 to 2 or 2 to 4 internal? Yes.
23022
- * |/ \|
23023
- * 1 3
23024
- *
23025
- * This situation can occur and the only solution is a cut along a parallel
23026
- * side.
23027
- *
23028
- * This method is technically incomplete, however, for the following case:
23029
- *
23030
- * 7_________6
23031
- * | |
23032
- * | |______4
23033
- * | 5 | Now is 1 to 6 internal? Yes, but we'll never need it.
23034
- * | 2______|
23035
- * | | 5
23036
- * |_________|
23037
- * 0 1
23038
- *
23039
- * In this case, although the cut from 1 to 6 is valid, the side 1-2 is
23040
- * shorter and thus this cut will be called invalid. Assuming there are no
23041
- * superfluous vertices (a requirement for this method to work), however,
23042
- * we'll never need this cut because we can always find cut 2-5 as a substitute.
23043
- *
23044
- * @param {Cartesian2} side
23045
- * @param {Cartesian2} cut
23046
- * @returns {Boolean}
22897
+ return this._length;
22898
+ }
22899
+ }
22900
+ });
22901
+
22902
+ /**
22903
+ * Enqueues the specified item.
23047
22904
  *
23048
- * @private
22905
+ * @param {Object} item The item to enqueue.
23049
22906
  */
23050
- function isInternalToParallelSide(side, cut) {
23051
- return Cartesian2.magnitudeSquared(cut) < Cartesian2.magnitudeSquared(side);
23052
- }
23053
-
23054
- var INTERNAL = -1;
23055
- var EXTERNAL = -2;
22907
+ Queue.prototype.enqueue = function(item) {
22908
+ this._array.push(item);
22909
+ this._length++;
22910
+ };
23056
22911
 
23057
22912
  /**
23058
- * Determine whether the cut formed between the two vertices is internal
23059
- * to the angle formed by the sides connecting at the first vertex.
23060
- *
23061
- * @param {Number} a1i Index of first vertex.
23062
- * @param {Number} a2i Index of second vertex.
23063
- * @param {Array} pArray Array of <code>{ position, index }</code> objects representing the polygon.
23064
- * @returns {Number} If INTERNAL, the cut formed between the two vertices is internal to the angle at vertex 1.
23065
- * If EXTERNAL, then the cut formed between the two vertices is external to the angle at vertex 1. If the value
23066
- * is greater than or equal to zero, then the value is the index of an invalid vertex.
22913
+ * Dequeues an item. Returns undefined if the queue is empty.
23067
22914
  *
23068
- * @private
22915
+ * @returns {Object} The the dequeued item.
23069
22916
  */
23070
- var s1Scratch = new Cartesian3();
23071
- var s2Scratch = new Cartesian3();
23072
- var cutScratch = new Cartesian3();
23073
- function internalCut(a1i, a2i, pArray) {
23074
- // Make sure vertex is valid
23075
- if (!validateVertex(a1i, pArray)) {
23076
- return a1i;
22917
+ Queue.prototype.dequeue = function() {
22918
+ if (this._length === 0) {
22919
+ return undefined;
23077
22920
  }
23078
22921
 
23079
- // Get the nodes from the array
23080
- var a1Position = pArray[a1i].position;
23081
- var a2Position = pArray[a2i].position;
23082
- var length = pArray.length;
23083
-
23084
- // Define side and cut vectors
23085
- var before = CesiumMath.mod(a1i - 1, length);
23086
- if (!validateVertex(before, pArray)) {
23087
- return before;
23088
- }
22922
+ var array = this._array;
22923
+ var offset = this._offset;
22924
+ var item = array[offset];
22925
+ array[offset] = undefined;
23089
22926
 
23090
- var after = CesiumMath.mod(a1i + 1, length);
23091
- if (!validateVertex(after, pArray)) {
23092
- return after;
22927
+ offset++;
22928
+ if ((offset > 10) && (offset * 2 > array.length)) {
22929
+ //compact array
22930
+ this._array = array.slice(offset);
22931
+ offset = 0;
23093
22932
  }
23094
22933
 
23095
- var s1 = Cartesian2.subtract(pArray[before].position, a1Position, s1Scratch);
23096
- var s2 = Cartesian2.subtract(pArray[after].position, a1Position, s2Scratch);
23097
- var cut = Cartesian2.subtract(a2Position, a1Position, cutScratch);
23098
-
23099
- var leftEdgeCutZ = crossZ(s1, cut);
23100
- var rightEdgeCutZ = crossZ(s2, cut);
22934
+ this._offset = offset;
22935
+ this._length--;
23101
22936
 
23102
- if (leftEdgeCutZ === 0.0) { // cut is parallel to (a1i - 1, a1i) edge
23103
- return isInternalToParallelSide(s1, cut) ? INTERNAL : EXTERNAL;
23104
- } else if (rightEdgeCutZ === 0.0) { // cut is parallel to (a1i + 1, a1i) edge
23105
- return isInternalToParallelSide(s2, cut) ? INTERNAL : EXTERNAL;
23106
- } else {
23107
- var z = crossZ(s1, s2);
23108
- if (z < 0.0) { // angle at a1i is less than 180 degrees
23109
- return leftEdgeCutZ < 0.0 && rightEdgeCutZ > 0.0 ? INTERNAL : EXTERNAL; // Cut is in-between sides
23110
- } else if (z > 0.0) { // angle at a1i is greater than 180 degrees
23111
- return leftEdgeCutZ > 0.0 && rightEdgeCutZ < 0.0 ? EXTERNAL : INTERNAL; // Cut is in-between sides
23112
- }
23113
- }
23114
- }
22937
+ return item;
22938
+ };
23115
22939
 
23116
22940
  /**
23117
- * Determine whether number is between n1 and n2.
23118
- * Do not include number === n1 or number === n2.
23119
- * Do include n1 === n2 === number.
23120
- *
23121
- * @param {Number} number The number tested.
23122
- * @param {Number} n1 First bound.
23123
- * @param {Number} n2 Secound bound.
23124
- * @returns {Boolean} number is between n1 and n2.
22941
+ * Returns the item at the front of the queue. Returns undefined if the queue is empty.
23125
22942
  *
23126
- * @private
22943
+ * @returns {Object} The item at the front of the queue.
23127
22944
  */
23128
- function isBetween(number, n1, n2) {
23129
- return ((number > n1 || number > n2) && (number < n1 || number < n2)) || (n1 === n2 && n1 === number);
23130
- }
23131
-
23132
- var sqrEpsilon = CesiumMath.EPSILON14;
23133
- var eScratch = new Cartesian2();
23134
-
23135
- function linesIntersection(p0, d0, p1, d1) {
23136
- var e = Cartesian2.subtract(p1, p0, eScratch);
23137
- var cross = d0.x * d1.y - d0.y * d1.x;
23138
- var sqrCross = cross * cross;
23139
- var sqrLen0 = Cartesian2.magnitudeSquared(d0);
23140
- var sqrLen1 = Cartesian2.magnitudeSquared(d1);
23141
- if (sqrCross > sqrEpsilon * sqrLen0 * sqrLen1) {
23142
- // lines of the segments are not parallel
23143
- var s = (e.x * d1.y - e.y * d1.x) / cross;
23144
- return Cartesian2.add(p0, Cartesian2.multiplyByScalar(d0, s, eScratch), eScratch);
22945
+ Queue.prototype.peek = function() {
22946
+ if (this._length === 0) {
22947
+ return undefined;
23145
22948
  }
23146
22949
 
23147
- // lines of the segments are parallel (they cannot be the same line)
23148
- return undefined;
23149
- }
22950
+ return this._array[this._offset];
22951
+ };
23150
22952
 
23151
22953
  /**
23152
- * Determine whether this segment intersects any other polygon sides.
23153
- *
23154
- * @param {Cartesian2} a1 Position of first vertex.
23155
- * @param {Cartesian2} a2 Position of second vertex.
23156
- * @param {Array} pArray Array of <code>{ position, index }</code> objects representing polygon.
23157
- * @returns {Boolean} The segment between a1 and a2 intersect another polygon side.
22954
+ * Check whether this queue contains the specified item.
23158
22955
  *
23159
- * @private
22956
+ * @param {Object} item The item to search for.
23160
22957
  */
23161
- var aDirectionScratch = new Cartesian2();
23162
- var bDirectionScratch = new Cartesian2();
23163
-
23164
- function intersectsSide(a1, a2, pArray) {
23165
- var aDirection = Cartesian2.subtract(a2, a1, aDirectionScratch);
23166
-
23167
- var length = pArray.length;
23168
- for (var i = 0; i < length; i++) {
23169
- var b1 = pArray[i].position;
23170
- var b2 = pArray[CesiumMath.mod(i + 1, length)].position;
23171
-
23172
- // If there's a duplicate point, there's no intersection here.
23173
- if (Cartesian2.equals(a1, b1) || Cartesian2.equals(a2, b2) || Cartesian2.equals(a1, b2) || Cartesian2.equals(a2, b1)) {
23174
- continue;
23175
- }
23176
-
23177
- var bDirection = Cartesian2.subtract(b2, b1, bDirectionScratch);
23178
- var intersection = linesIntersection(a1, aDirection, b1, bDirection);
23179
- if (!defined(intersection)) {
23180
- continue;
23181
- }
23182
-
23183
- // If intersection is on an endpoint, count no intersection
23184
- if (Cartesian2.equals(intersection, a1) || Cartesian2.equals(intersection, a2) || Cartesian2.equals(intersection, b1) || Cartesian2.equals(intersection, b2)) {
23185
- continue;
23186
- }
23187
-
23188
- // Is intersection point between segments?
23189
- var intX = intersection.x;
23190
- var intY = intersection.y;
23191
- var intersects = isBetween(intX, a1.x, a2.x) && isBetween(intY, a1.y, a2.y) && isBetween(intX, b1.x, b2.x) && isBetween(intY, b1.y, b2.y);
23192
-
23193
- // If intersecting, the cut is not clean
23194
- if (intersects) {
23195
- return true;
23196
- }
23197
- }
23198
- return false;
23199
- }
22958
+ Queue.prototype.contains = function(item) {
22959
+ return this._array.indexOf(item) !== -1;
22960
+ };
23200
22961
 
23201
- var CLEAN_CUT = -1;
23202
- var INVALID_CUT = -2;
22962
+ /**
22963
+ * Remove all items from the queue.
22964
+ */
22965
+ Queue.prototype.clear = function() {
22966
+ this._array.length = this._offset = this._length = 0;
22967
+ };
23203
22968
 
23204
22969
  /**
23205
- * Determine whether a cut between two polygon vertices is clean.
23206
- *
23207
- * @param {Number} a1i Index of first vertex.
23208
- * @param {Number} a2i Index of second vertex.
23209
- * @param {Array} pArray Array of <code>{ position, index }</code> objects representing the polygon.
23210
- * @returns {Number} If CLEAN_CUT, a cut from the first vertex to the second is internal and does not cross any other sides.
23211
- * If INVALID_CUT, then the vertices were valid but a cut could not be made. If the value is greater than or equal to zero,
23212
- * then the value is the index of an invalid vertex.
22970
+ * Sort the items in the queue in-place.
23213
22971
  *
23214
- * @private
22972
+ * @param {Queue~Comparator} compareFunction A function that defines the sort order.
23215
22973
  */
23216
- function cleanCut(a1i, a2i, pArray) {
23217
- var internalCut12 = internalCut(a1i, a2i, pArray);
23218
- if (internalCut12 >= 0) {
23219
- return internalCut12;
23220
- }
23221
-
23222
- var internalCut21 = internalCut(a2i, a1i, pArray);
23223
- if (internalCut21 >= 0) {
23224
- return internalCut21;
23225
- }
23226
-
23227
- if (internalCut12 === INTERNAL && internalCut21 === INTERNAL &&
23228
- !intersectsSide(pArray[a1i].position, pArray[a2i].position, pArray) &&
23229
- !Cartesian2.equals(pArray[a1i].position, pArray[a2i].position)) {
23230
- return CLEAN_CUT;
22974
+ Queue.prototype.sort = function(compareFunction) {
22975
+ if (this._offset > 0) {
22976
+ //compact array
22977
+ this._array = this._array.slice(this._offset);
22978
+ this._offset = 0;
23231
22979
  }
23232
22980
 
23233
- return INVALID_CUT;
23234
- }
23235
-
23236
- function triangleInLine(pArray) {
23237
- // Get two sides. If they're parallel, so is the last.
23238
- return indexedEdgeCrossZ(1, 2, 0, pArray) === 0.0;
23239
- }
22981
+ this._array.sort(compareFunction);
22982
+ };
23240
22983
 
23241
22984
  /**
23242
- * This recursive algorithm takes a polygon, randomly selects two vertices
23243
- * which form a clean cut through the polygon, and divides the polygon
23244
- * then continues to "chop" the two resulting polygons.
23245
- *
23246
- * @param {Array} nodeArray Array of <code>{ position, index }</code> objects representing polygon
23247
- * @returns {Number[]} Index array representing triangles that fill the polygon
22985
+ * A function used to compare two items while sorting a queue.
22986
+ * @callback Queue~Comparator
23248
22987
  *
23249
- * @exception {DeveloperError} Invalid polygon: must have at least three vertices.
22988
+ * @param {Object} a An item in the array.
22989
+ * @param {Object} b An item in the array.
22990
+ * @returns {Number} Returns a negative value if <code>a</code> is less than <code>b</code>,
22991
+ * a positive value if <code>a</code> is greater than <code>b</code>, or
22992
+ * 0 if <code>a</code> is equal to <code>b</code>.
23250
22993
  *
23251
- * @private
22994
+ * @example
22995
+ * function compareNumbers(a, b) {
22996
+ * return a - b;
22997
+ * }
23252
22998
  */
23253
- function randomChop(nodeArray) {
23254
- // Determine & verify number of vertices
23255
- var numVertices = nodeArray.length;
23256
-
23257
- // Is it already a triangle?
23258
- if (numVertices === 3) {
23259
- // Only return triangle if it has area (not a line)
23260
- if (!triangleInLine(nodeArray)) {
23261
- return [nodeArray[0].index, nodeArray[1].index, nodeArray[2].index];
23262
- }
23263
22999
 
23264
- // If it's a line, we don't need it.
23265
- return [];
23266
- } else if (nodeArray.length < 3) {
23267
- throw new DeveloperError('Invalid polygon: must have at least three vertices.');
23268
- }
23269
-
23270
- // Search for clean cut
23271
- var tries = 0;
23272
- var maxTries = nodeArray.length * 10;
23273
-
23274
- var cutResult = INVALID_CUT;
23275
- var index1;
23276
- var index2;
23277
-
23278
- while (cutResult < CLEAN_CUT && tries++ < maxTries) {
23279
- // Generate random indices
23280
- index1 = getRandomIndex(nodeArray.length);
23281
- index2 = index1 + 1;
23282
- while (Math.abs(index1 - index2) < 2 || Math.abs(index1 - index2) > nodeArray.length - 2) {
23283
- index2 = getRandomIndex(nodeArray.length);
23284
- }
23000
+ return Queue;
23001
+ });
23285
23002
 
23286
- // Make sure index2 is bigger
23287
- if (index1 > index2) {
23288
- var index = index1;
23289
- index1 = index2;
23290
- index2 = index;
23291
- }
23003
+ /*global define*/
23004
+ define('Core/WindingOrder',[
23005
+ '../Renderer/WebGLConstants',
23006
+ './freezeObject'
23007
+ ], function(
23008
+ WebGLConstants,
23009
+ freezeObject) {
23010
+ 'use strict';
23292
23011
 
23293
- cutResult = cleanCut(index1, index2, nodeArray);
23294
- }
23012
+ /**
23013
+ * Winding order defines the order of vertices for a triangle to be considered front-facing.
23014
+ *
23015
+ * @exports WindingOrder
23016
+ */
23017
+ var WindingOrder = {
23018
+ /**
23019
+ * Vertices are in clockwise order.
23020
+ *
23021
+ * @type {Number}
23022
+ * @constant
23023
+ */
23024
+ CLOCKWISE : WebGLConstants.CW,
23295
23025
 
23296
- if (cutResult === CLEAN_CUT) {
23297
- // Divide polygon
23298
- var nodeArray2 = nodeArray.splice(index1, (index2 - index1 + 1), nodeArray[index1], nodeArray[index2]);
23026
+ /**
23027
+ * Vertices are in counter-clockwise order.
23028
+ *
23029
+ * @type {Number}
23030
+ * @constant
23031
+ */
23032
+ COUNTER_CLOCKWISE : WebGLConstants.CCW,
23299
23033
 
23300
- // Chop up resulting polygons
23301
- return randomChop(nodeArray).concat(randomChop(nodeArray2));
23302
- } else if (cutResult >= 0) {
23303
- // Eliminate superfluous vertex and start over
23304
- nodeArray.splice(cutResult, 1);
23305
- return randomChop(nodeArray);
23034
+ /**
23035
+ * @private
23036
+ */
23037
+ validate : function(windingOrder) {
23038
+ return windingOrder === WindingOrder.CLOCKWISE ||
23039
+ windingOrder === WindingOrder.COUNTER_CLOCKWISE;
23306
23040
  }
23041
+ };
23307
23042
 
23308
- // No clean cut could be found
23309
- return [];
23310
- }
23043
+ return freezeObject(WindingOrder);
23044
+ });
23045
+ /*global define*/
23046
+ define('Core/PolygonPipeline',[
23047
+ '../ThirdParty/earcut-2.1.1',
23048
+ './Cartesian2',
23049
+ './Cartesian3',
23050
+ './ComponentDatatype',
23051
+ './defaultValue',
23052
+ './defined',
23053
+ './DeveloperError',
23054
+ './Ellipsoid',
23055
+ './EllipsoidTangentPlane',
23056
+ './Geometry',
23057
+ './GeometryAttribute',
23058
+ './Math',
23059
+ './pointInsideTriangle',
23060
+ './PrimitiveType',
23061
+ './Queue',
23062
+ './WindingOrder'
23063
+ ], function(
23064
+ earcut,
23065
+ Cartesian2,
23066
+ Cartesian3,
23067
+ ComponentDatatype,
23068
+ defaultValue,
23069
+ defined,
23070
+ DeveloperError,
23071
+ Ellipsoid,
23072
+ EllipsoidTangentPlane,
23073
+ Geometry,
23074
+ GeometryAttribute,
23075
+ CesiumMath,
23076
+ pointInsideTriangle,
23077
+ PrimitiveType,
23078
+ Queue,
23079
+ WindingOrder) {
23080
+ 'use strict';
23311
23081
 
23312
23082
  var scaleToGeodeticHeightN = new Cartesian3();
23313
23083
  var scaleToGeodeticHeightP = new Cartesian3();
@@ -23317,24 +23087,6 @@ define('Core/PolygonPipeline',[
23317
23087
  */
23318
23088
  var PolygonPipeline = {};
23319
23089
 
23320
- /**
23321
- * Cleans up a simple polygon by removing duplicate adjacent positions and making
23322
- * the first position not equal the last position.
23323
- *
23324
- * @exception {DeveloperError} At least three positions are required.
23325
- */
23326
- PolygonPipeline.removeDuplicates = function(positions) {
23327
- if (!defined(positions)) {
23328
- throw new DeveloperError('positions is required.');
23329
- }
23330
-
23331
- var cleanedPositions = PolylinePipeline.removeDuplicates(positions);
23332
- if (Cartesian3.equals(cleanedPositions[0], cleanedPositions[cleanedPositions.length - 1])) {
23333
- return cleanedPositions.slice(1);
23334
- }
23335
- return cleanedPositions;
23336
- };
23337
-
23338
23090
  /**
23339
23091
  * @exception {DeveloperError} At least three positions are required.
23340
23092
  */
@@ -23372,31 +23124,17 @@ define('Core/PolygonPipeline',[
23372
23124
  /**
23373
23125
  * Triangulate a polygon.
23374
23126
  *
23375
- * @param {Cartesian2[]} positions - Cartesian2 array containing the vertices of the polygon
23376
- * @returns {Number[]} - Index array representing triangles that fill the polygon
23377
- *
23378
- * @exception {DeveloperError} At least three positions are required.
23127
+ * @param {Cartesian2[]} positions Cartesian2 array containing the vertices of the polygon
23128
+ * @param {Number[]} [holes] An array of the staring indices of the holes.
23129
+ * @returns {Number[]} Index array representing triangles that fill the polygon
23379
23130
  */
23380
- PolygonPipeline.triangulate = function(positions) {
23131
+ PolygonPipeline.triangulate = function(positions, holes) {
23381
23132
  if (!defined(positions)) {
23382
23133
  throw new DeveloperError('positions is required.');
23383
23134
  }
23384
- if (positions.length < 3) {
23385
- throw new DeveloperError('At least three positions are required.');
23386
- }
23387
23135
 
23388
- var length = positions.length;
23389
- // Keep track of indices for later
23390
- var nodeArray = [];
23391
- for ( var i = 0; i < length; ++i) {
23392
- nodeArray[i] = {
23393
- position : positions[i],
23394
- index : i
23395
- };
23396
- }
23397
-
23398
- // Recursive chop
23399
- return randomChop(nodeArray);
23136
+ var flattenedPositions = Cartesian2.packArray(positions);
23137
+ return earcut(flattenedPositions, holes, 2);
23400
23138
  };
23401
23139
 
23402
23140
  var subdivisionV0Scratch = new Cartesian3();
@@ -23555,13 +23293,13 @@ define('Core/PolygonPipeline',[
23555
23293
  /**
23556
23294
  * Scales each position of a geometry's position attribute to a height, in place.
23557
23295
  *
23558
- * @param {Geometry} geometry The geometry whose positions are to be scaled.
23559
- * @param {Number} [height=0.0] The desired height to add to the positions of the geometry.
23296
+ * @param {Number[]} positions The array of numbers representing the positions to be scaled
23297
+ * @param {Number} [height=0.0] The desired height to add to the positions
23560
23298
  * @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid on which the positions lie.
23561
23299
  * @param {Boolean} [scaleToSurface=true] <code>true</code> if the positions need to be scaled to the surface before the height is added.
23562
- * @returns {Geometry} The same geometry whose positions where scaled.
23300
+ * @returns {Number[]} The input array of positions, scaled to height
23563
23301
  */
23564
- PolygonPipeline.scaleToGeodeticHeight = function(geometry, height, ellipsoid, scaleToSurface) {
23302
+ PolygonPipeline.scaleToGeodeticHeight = function(positions, height, ellipsoid, scaleToSurface) {
23565
23303
  ellipsoid = defaultValue(ellipsoid, Ellipsoid.WGS84);
23566
23304
 
23567
23305
  var n = scaleToGeodeticHeightN;
@@ -23570,8 +23308,7 @@ define('Core/PolygonPipeline',[
23570
23308
  height = defaultValue(height, 0.0);
23571
23309
  scaleToSurface = defaultValue(scaleToSurface, true);
23572
23310
 
23573
- if (defined(geometry) && defined(geometry.attributes) && defined(geometry.attributes.position)) {
23574
- var positions = geometry.attributes.position.values;
23311
+ if (defined(positions)) {
23575
23312
  var length = positions.length;
23576
23313
 
23577
23314
  for ( var i = 0; i < length; i += 3) {
@@ -23594,51 +23331,7 @@ define('Core/PolygonPipeline',[
23594
23331
  }
23595
23332
  }
23596
23333
 
23597
- return geometry;
23598
- };
23599
-
23600
- /**
23601
- * Given a polygon defined by an outer ring with one or more inner rings (holes), return a single list of points representing
23602
- * a polygon defined by the outer ring with the inner holes removed.
23603
- *
23604
- * @param {Cartesian2[]} outerRing An array of Cartesian points defining the outer boundary of the polygon.
23605
- * @param {Cartesian2[]} innerRings An array of arrays of Cartesian points, where each array represents a hole in the polygon.
23606
- * @returns {Cartesian2[]} A single list of Cartesian points defining the polygon, including the eliminated inner ring.
23607
- *
23608
- * @exception {DeveloperError} <code>outerRing</code> must not be empty.
23609
- *
23610
- * @example
23611
- * // Simplifying a polygon with multiple holes.
23612
- * outerRing = Cesium.PolygonPipeline.eliminateHoles(outerRing, innerRings);
23613
- * polygon.positions = outerRing;
23614
- */
23615
- PolygonPipeline.eliminateHoles = function(outerRing, innerRings, ellipsoid) {
23616
- if (!defined(outerRing)) {
23617
- throw new DeveloperError('outerRing is required.');
23618
- }
23619
- if (outerRing.length === 0) {
23620
- throw new DeveloperError('outerRing must not be empty.');
23621
- }
23622
- if (!defined(innerRings)) {
23623
- throw new DeveloperError('innerRings is required.');
23624
- }
23625
-
23626
- ellipsoid = defaultValue(ellipsoid, Ellipsoid.WGS84);
23627
-
23628
- var innerRingsCopy = [];
23629
- for ( var i = 0; i < innerRings.length; i++) {
23630
- var innerRing = [];
23631
- for ( var j = 0; j < innerRings[i].length; j++) {
23632
- innerRing.push(Cartesian3.clone(innerRings[i][j]));
23633
- }
23634
- innerRingsCopy.push(innerRing);
23635
- }
23636
-
23637
- var newPolygonVertices = outerRing;
23638
- while (innerRingsCopy.length > 0) {
23639
- newPolygonVertices = eliminateHole(newPolygonVertices, innerRingsCopy, ellipsoid);
23640
- }
23641
- return newPolygonVertices;
23334
+ return positions;
23642
23335
  };
23643
23336
 
23644
23337
  return PolygonPipeline;
@@ -23649,15 +23342,17 @@ define('Core/Matrix2',[
23649
23342
  './Cartesian2',
23650
23343
  './defaultValue',
23651
23344
  './defined',
23345
+ './defineProperties',
23652
23346
  './DeveloperError',
23653
23347
  './freezeObject'
23654
23348
  ], function(
23655
23349
  Cartesian2,
23656
23350
  defaultValue,
23657
23351
  defined,
23352
+ defineProperties,
23658
23353
  DeveloperError,
23659
23354
  freezeObject) {
23660
- "use strict";
23355
+ 'use strict';
23661
23356
 
23662
23357
  /**
23663
23358
  * A 2x2 matrix, indexable as a column-major order array.
@@ -24502,6 +24197,20 @@ define('Core/Matrix2',[
24502
24197
  */
24503
24198
  Matrix2.COLUMN1ROW1 = 3;
24504
24199
 
24200
+ defineProperties(Matrix2.prototype, {
24201
+ /**
24202
+ * Gets the number of items in the collection.
24203
+ * @memberof Matrix2.prototype
24204
+ *
24205
+ * @type {Number}
24206
+ */
24207
+ length : {
24208
+ get : function() {
24209
+ return Matrix2.packedLength;
24210
+ }
24211
+ }
24212
+ });
24213
+
24505
24214
  /**
24506
24215
  * Duplicates the provided Matrix2 instance.
24507
24216
  *
@@ -24569,7 +24278,7 @@ define('Core/RectangleGeometryLibrary',[
24569
24278
  CesiumMath,
24570
24279
  Matrix2,
24571
24280
  Rectangle) {
24572
- "use strict";
24281
+ 'use strict';
24573
24282
 
24574
24283
  var cos = Math.cos;
24575
24284
  var sin = Math.sin;
@@ -24763,7 +24472,7 @@ define('Core/RectangleOutlineGeometry',[
24763
24472
  PrimitiveType,
24764
24473
  Rectangle,
24765
24474
  RectangleGeometryLibrary) {
24766
- "use strict";
24475
+ 'use strict';
24767
24476
 
24768
24477
  var bottomBoundingSphere = new BoundingSphere();
24769
24478
  var topBoundingSphere = new BoundingSphere();
@@ -24850,13 +24559,11 @@ define('Core/RectangleOutlineGeometry',[
24850
24559
  var height = options.height;
24851
24560
  var width = options.width;
24852
24561
 
24853
- geo = PolygonPipeline.scaleToGeodeticHeight(geo, maxHeight, ellipsoid, false);
24854
- var topPositions = geo.attributes.position.values;
24562
+ var topPositions = PolygonPipeline.scaleToGeodeticHeight(geo.attributes.position.values, maxHeight, ellipsoid, false);
24855
24563
  var length = topPositions.length;
24856
24564
  var positions = new Float64Array(length*2);
24857
24565
  positions.set(topPositions);
24858
- geo = PolygonPipeline.scaleToGeodeticHeight(geo, minHeight, ellipsoid);
24859
- var bottomPositions = geo.attributes.position.values;
24566
+ var bottomPositions = PolygonPipeline.scaleToGeodeticHeight(geo.attributes.position.values, minHeight, ellipsoid);
24860
24567
  positions.set(bottomPositions, length);
24861
24568
  geo.attributes.position.values = positions;
24862
24569
 
@@ -25043,7 +24750,7 @@ define('Core/RectangleOutlineGeometry',[
25043
24750
  * Computes the geometric representation of an outline of an rectangle, including its vertices, indices, and a bounding sphere.
25044
24751
  *
25045
24752
  * @param {RectangleOutlineGeometry} rectangleGeometry A description of the rectangle outline.
25046
- * @returns {Geometry} The computed vertices and indices.
24753
+ * @returns {Geometry|undefined} The computed vertices and indices.
25047
24754
  *
25048
24755
  * @exception {DeveloperError} Rotated rectangle is invalid.
25049
24756
  */
@@ -25059,6 +24766,11 @@ define('Core/RectangleOutlineGeometry',[
25059
24766
  var geometry;
25060
24767
  var boundingSphere;
25061
24768
  rectangle = rectangleGeometry._rectangle;
24769
+
24770
+ if ((CesiumMath.equalsEpsilon(rectangle.north, rectangle.south, CesiumMath.EPSILON10) ||
24771
+ (CesiumMath.equalsEpsilon(rectangle.east, rectangle.west, CesiumMath.EPSILON10)))) {
24772
+ return undefined;
24773
+ }
25062
24774
  if (defined(extrudedHeight)) {
25063
24775
  geometry = constructExtrudedRectangle(options);
25064
24776
  var topBS = BoundingSphere.fromRectangle3D(rectangle, ellipsoid, surfaceHeight, topBoundingSphere);
@@ -25066,7 +24778,7 @@ define('Core/RectangleOutlineGeometry',[
25066
24778
  boundingSphere = BoundingSphere.union(topBS, bottomBS);
25067
24779
  } else {
25068
24780
  geometry = constructRectangle(options);
25069
- geometry = PolygonPipeline.scaleToGeodeticHeight(geometry, surfaceHeight, ellipsoid, false);
24781
+ geometry.attributes.position.values = PolygonPipeline.scaleToGeodeticHeight(geometry.attributes.position.values, surfaceHeight, ellipsoid, false);
25070
24782
  boundingSphere = BoundingSphere.fromRectangle3D(rectangle, ellipsoid, surfaceHeight);
25071
24783
  }
25072
24784
 
@@ -25092,7 +24804,7 @@ define('Workers/createRectangleOutlineGeometry',[
25092
24804
  Ellipsoid,
25093
24805
  Rectangle,
25094
24806
  RectangleOutlineGeometry) {
25095
- "use strict";
24807
+ 'use strict';
25096
24808
 
25097
24809
  function createRectangleOutlineGeometry(rectangleGeometry, offset) {
25098
24810
  if (defined(offset)) {